Documentation
¶
Index ¶
- Constants
- Variables
- func FixImports(outputPath string, dumpDiffs bool)
- func ImportPathFromVersion(v string) string
- func ProviderName(t Provider) string
- type CaiToTerraformConversion
- func (cai2hcl CaiToTerraformConversion) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
- func (cai2hcl CaiToTerraformConversion) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
- func (cai2hcl CaiToTerraformConversion) Generate(outputFolder, productPath, resourceToGenerate string, ...)
- type Provider
- type ProviderWithProducts
- type TemplateData
- func (td *TemplateData) GenerateDocumentationFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateFile(filePath, templatePath string, input any, goFormat bool, templates ...string)
- func (td *TemplateData) GenerateIamDatasourceDocumentationFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateIamPolicyFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateIamPolicyTestFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateIamResourceDocumentationFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateMetadataFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateOperationFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateResourceFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateSweeperFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateTGCIamResourceFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateTGCResourceFile(filePath string, resource api.Resource)
- func (td *TemplateData) GenerateTestFile(filePath string, resource api.Resource)
- func (td *TemplateData) ImportPath() string
- type Terraform
- func (t Terraform) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
- func (t Terraform) CompileFileList(outputFolder string, files map[string]string, fileTemplate TemplateData, ...)
- func (t Terraform) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
- func (t Terraform) CopyFileList(outputFolder string, files map[string]string, generateCode bool)
- func (t Terraform) DCLVersion() string
- func (t *Terraform) FolderName() string
- func (t *Terraform) FullResourceName(object api.Resource) string
- func (t Terraform) Generate(outputFolder, productPath, resourceToGenerate string, ...)
- func (t *Terraform) GenerateIamDocumentation(object api.Resource, templateData TemplateData, outputFolder string, ...)
- func (t *Terraform) GenerateIamPolicy(object api.Resource, templateData TemplateData, outputFolder string, ...)
- func (t *Terraform) GenerateObject(object api.Resource, outputFolder, productPath string, ...)
- func (t *Terraform) GenerateObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
- func (t *Terraform) GenerateOperation(outputFolder string)
- func (t *Terraform) GenerateResource(object api.Resource, templateData TemplateData, outputFolder string, ...)
- func (t *Terraform) GenerateResourceMetadata(object api.Resource, templateData TemplateData, outputFolder string)
- func (t *Terraform) GenerateResourceSweeper(object api.Resource, templateData TemplateData, outputFolder string)
- func (t *Terraform) GenerateResourceTests(object api.Resource, templateData TemplateData, outputFolder string)
- func (t Terraform) GetMmv1ServicesInVersion(products []*api.Product) []string
- func (t Terraform) ProviderFromVersion() string
- func (t *Terraform) ResourceGoFilename(object api.Resource) string
- func (t Terraform) SupportedProviderVersions() []string
- type TerraformGoogleConversion
- func (tgc TerraformGoogleConversion) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
- func (tgc TerraformGoogleConversion) CompileFileList(outputFolder string, files map[string]string, fileTemplate TemplateData, ...)
- func (tgc TerraformGoogleConversion) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
- func (tgc TerraformGoogleConversion) CopyFileList(outputFolder string, files map[string]string)
- func (tgc TerraformGoogleConversion) Generate(outputFolder, productPath, resourceToGenerate string, ...)
- func (tgc TerraformGoogleConversion) GenerateIamPolicy(object api.Resource, templateData TemplateData, outputFolder string, ...)
- func (tgc TerraformGoogleConversion) GenerateObject(object api.Resource, outputFolder, resourceToGenerate string, ...)
- func (tgc TerraformGoogleConversion) GenerateObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
- func (tgc TerraformGoogleConversion) GenerateResource(object api.Resource, templateData TemplateData, outputFolder string, ...)
- type TerraformGoogleConversionNext
- func (tgc TerraformGoogleConversionNext) CompileCaiToHclCommonFiles(outputFolder string, products []*api.Product)
- func (tgc TerraformGoogleConversionNext) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
- func (tgc TerraformGoogleConversionNext) CompileFileList(outputFolder string, files map[string]string, fileTemplate TemplateData, ...)
- func (tgc TerraformGoogleConversionNext) CompileTfToCaiCommonFiles(outputFolder string, products []*api.Product)
- func (tgc TerraformGoogleConversionNext) CopyCaiToHclCommonFiles(outputFolder string)
- func (tgc TerraformGoogleConversionNext) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
- func (tgc TerraformGoogleConversionNext) CopyFileList(outputFolder string, files map[string]string)
- func (tgc TerraformGoogleConversionNext) CopyTfToCaiCommonFiles(outputFolder string)
- func (tgc TerraformGoogleConversionNext) Generate(outputFolder, productPath, resourceToGenerate string, ...)
- func (tgc TerraformGoogleConversionNext) GenerateCaiToHclObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
- func (tgc TerraformGoogleConversionNext) GenerateTfToCaiObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
- type TerraformOiCS
- func (toics TerraformOiCS) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
- func (toics TerraformOiCS) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
- func (toics TerraformOiCS) Generate(outputFolder, productPath, resourceToGenerate string, ...)
- func (toics TerraformOiCS) GenerateObject(object api.Resource, outputFolder, resourceToGenerate string, ...)
- func (toics TerraformOiCS) GenerateObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
- func (toics TerraformOiCS) GenerateResource(object api.Resource, templateData TemplateData, outputFolder string, ...)
- type TestInput
Constants ¶
const RESOURCE_DIRECTORY_BETA = "google-beta"
const RESOURCE_DIRECTORY_GA = "google"
const RESOURCE_DIRECTORY_PRIVATE = "google-private"
const TERRAFORM_PROVIDER_BETA = "github.com/hashicorp/terraform-provider-google-beta"
const TERRAFORM_PROVIDER_GA = "github.com/hashicorp/terraform-provider-google"
const TERRAFORM_PROVIDER_PRIVATE = "internal/terraform-next"
Variables ¶
var ALPHA_VERSION = "alpha"
var BETA_VERSION = "beta"
var GA_VERSION = "ga"
var PRIVATE_VERSION = "private"
Functions ¶
func FixImports ¶
func ImportPathFromVersion ¶
func ProviderName ¶
# TODO(nelsonjr): Review all object interfaces and move to private methods # that should not be exposed outside the object hierarchy.
Types ¶
type CaiToTerraformConversion ¶
type CaiToTerraformConversion struct { TargetVersionName string Version product.Version Product *api.Product StartTime time.Time }
Code generator for a library converting GCP CAI objects to Terraform state.
func (CaiToTerraformConversion) CompileCommonFiles ¶
func (cai2hcl CaiToTerraformConversion) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
func (CaiToTerraformConversion) CopyCommonFiles ¶
func (cai2hcl CaiToTerraformConversion) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
func (CaiToTerraformConversion) Generate ¶
func (cai2hcl CaiToTerraformConversion) Generate(outputFolder, productPath, resourceToGenerate string, generateCode, generateDocs bool)
type ProviderWithProducts ¶
type TemplateData ¶
type TemplateData struct { OutputFolder string VersionName string TerraformResourceDirectory string TerraformProviderModule string }
func NewTemplateData ¶
func NewTemplateData(outputFolder string, versionName string) *TemplateData
func (*TemplateData) GenerateDocumentationFile ¶
func (td *TemplateData) GenerateDocumentationFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateFile ¶
func (td *TemplateData) GenerateFile(filePath, templatePath string, input any, goFormat bool, templates ...string)
func (*TemplateData) GenerateIamDatasourceDocumentationFile ¶
func (td *TemplateData) GenerateIamDatasourceDocumentationFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateIamPolicyFile ¶
func (td *TemplateData) GenerateIamPolicyFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateIamPolicyTestFile ¶
func (td *TemplateData) GenerateIamPolicyTestFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateIamResourceDocumentationFile ¶
func (td *TemplateData) GenerateIamResourceDocumentationFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateMetadataFile ¶
func (td *TemplateData) GenerateMetadataFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateOperationFile ¶
func (td *TemplateData) GenerateOperationFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateResourceFile ¶
func (td *TemplateData) GenerateResourceFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateSweeperFile ¶
func (td *TemplateData) GenerateSweeperFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateTGCIamResourceFile ¶
func (td *TemplateData) GenerateTGCIamResourceFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateTGCResourceFile ¶
func (td *TemplateData) GenerateTGCResourceFile(filePath string, resource api.Resource)
func (*TemplateData) GenerateTestFile ¶
func (td *TemplateData) GenerateTestFile(filePath string, resource api.Resource)
func (*TemplateData) ImportPath ¶
func (td *TemplateData) ImportPath() string
type Terraform ¶
type Terraform struct { ResourceCount int IAMResourceCount int ResourcesForVersion []map[string]string TargetVersionName string Version product.Version Product *api.Product StartTime time.Time }
func NewTerraform ¶
func (Terraform) CompileCommonFiles ¶
func (t Terraform) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
Compiles files that are shared at the provider level
func (Terraform) CompileFileList ¶
func (Terraform) CopyCommonFiles ¶
func (Terraform) CopyFileList ¶
func (Terraform) DCLVersion ¶
Returns the extension for DCL packages for the given version. This is needed as the DCL uses "alpha" for preview resources, while we use "private"
func (*Terraform) FolderName ¶
Finds the folder name for a given version of the terraform provider
func (*Terraform) FullResourceName ¶
func (*Terraform) GenerateIamDocumentation ¶
func (*Terraform) GenerateIamPolicy ¶
func (t *Terraform) GenerateIamPolicy(object api.Resource, templateData TemplateData, outputFolder string, generateCode, generateDocs bool)
Generate the IAM policy for this object. This is used to query and test IAM policies separately from the resource itself
func (*Terraform) GenerateObject ¶
func (*Terraform) GenerateObjects ¶
func (*Terraform) GenerateOperation ¶
func (*Terraform) GenerateResource ¶
func (*Terraform) GenerateResourceMetadata ¶
func (t *Terraform) GenerateResourceMetadata(object api.Resource, templateData TemplateData, outputFolder string)
func (*Terraform) GenerateResourceSweeper ¶
func (t *Terraform) GenerateResourceSweeper(object api.Resource, templateData TemplateData, outputFolder string)
func (*Terraform) GenerateResourceTests ¶
func (t *Terraform) GenerateResourceTests(object api.Resource, templateData TemplateData, outputFolder string)
func (Terraform) GetMmv1ServicesInVersion ¶
Gets the list of services dependent on the version ga, beta, and private If there are some resources of a servcie is in GA, then this service is in GA. Otherwise, the service is in BETA
func (Terraform) ProviderFromVersion ¶
func (*Terraform) ResourceGoFilename ¶
Similar to FullResourceName, but override-aware to prevent things like ending in _test. Non-Go files should just use FullResourceName.
func (Terraform) SupportedProviderVersions ¶
Gets the provider versions supported by a version
type TerraformGoogleConversion ¶
type TerraformGoogleConversion struct { IamResources []map[string]string NonDefinedTests []string Tests []string TargetVersionName string Version product.Version Product *api.Product StartTime time.Time }
func (TerraformGoogleConversion) CompileCommonFiles ¶
func (tgc TerraformGoogleConversion) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
func (TerraformGoogleConversion) CompileFileList ¶
func (tgc TerraformGoogleConversion) CompileFileList(outputFolder string, files map[string]string, fileTemplate TemplateData, products []*api.Product)
func (TerraformGoogleConversion) CopyCommonFiles ¶
func (tgc TerraformGoogleConversion) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
func (TerraformGoogleConversion) CopyFileList ¶
func (tgc TerraformGoogleConversion) CopyFileList(outputFolder string, files map[string]string)
func (TerraformGoogleConversion) Generate ¶
func (tgc TerraformGoogleConversion) Generate(outputFolder, productPath, resourceToGenerate string, generateCode, generateDocs bool)
func (TerraformGoogleConversion) GenerateIamPolicy ¶
func (tgc TerraformGoogleConversion) GenerateIamPolicy(object api.Resource, templateData TemplateData, outputFolder string, generateCode, generateDocs bool)
Generate the IAM policy for this object. This is used to query and test IAM policies separately from the resource itself Docs are generated for the terraform provider, not here.
func (TerraformGoogleConversion) GenerateObject ¶
func (tgc TerraformGoogleConversion) GenerateObject(object api.Resource, outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
func (TerraformGoogleConversion) GenerateObjects ¶
func (tgc TerraformGoogleConversion) GenerateObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
func (TerraformGoogleConversion) GenerateResource ¶
func (tgc TerraformGoogleConversion) GenerateResource(object api.Resource, templateData TemplateData, outputFolder string, generateCode, generateDocs bool)
type TerraformGoogleConversionNext ¶
type TerraformGoogleConversionNext struct { TargetVersionName string Version product.Version Product *api.Product StartTime time.Time }
This proivder is for both tfplan2cai and cai2hcl conversions, and copying other files, such as transport.go
func (TerraformGoogleConversionNext) CompileCaiToHclCommonFiles ¶
func (tgc TerraformGoogleConversionNext) CompileCaiToHclCommonFiles(outputFolder string, products []*api.Product)
func (TerraformGoogleConversionNext) CompileCommonFiles ¶
func (tgc TerraformGoogleConversionNext) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
func (TerraformGoogleConversionNext) CompileFileList ¶
func (tgc TerraformGoogleConversionNext) CompileFileList(outputFolder string, files map[string]string, fileTemplate TemplateData, products []*api.Product)
func (TerraformGoogleConversionNext) CompileTfToCaiCommonFiles ¶
func (tgc TerraformGoogleConversionNext) CompileTfToCaiCommonFiles(outputFolder string, products []*api.Product)
func (TerraformGoogleConversionNext) CopyCaiToHclCommonFiles ¶
func (tgc TerraformGoogleConversionNext) CopyCaiToHclCommonFiles(outputFolder string)
func (TerraformGoogleConversionNext) CopyCommonFiles ¶
func (tgc TerraformGoogleConversionNext) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
func (TerraformGoogleConversionNext) CopyFileList ¶
func (tgc TerraformGoogleConversionNext) CopyFileList(outputFolder string, files map[string]string)
func (TerraformGoogleConversionNext) CopyTfToCaiCommonFiles ¶
func (tgc TerraformGoogleConversionNext) CopyTfToCaiCommonFiles(outputFolder string)
func (TerraformGoogleConversionNext) Generate ¶
func (tgc TerraformGoogleConversionNext) Generate(outputFolder, productPath, resourceToGenerate string, generateCode, generateDocs bool)
func (TerraformGoogleConversionNext) GenerateCaiToHclObjects ¶
func (tgc TerraformGoogleConversionNext) GenerateCaiToHclObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
func (TerraformGoogleConversionNext) GenerateTfToCaiObjects ¶
func (tgc TerraformGoogleConversionNext) GenerateTfToCaiObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
type TerraformOiCS ¶
type TerraformOiCS struct { TargetVersionName string Version product.Version Product *api.Product StartTime time.Time }
func NewTerraformOiCS ¶
func (TerraformOiCS) CompileCommonFiles ¶
func (toics TerraformOiCS) CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
func (TerraformOiCS) CopyCommonFiles ¶
func (toics TerraformOiCS) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
func (TerraformOiCS) Generate ¶
func (toics TerraformOiCS) Generate(outputFolder, productPath, resourceToGenerate string, generateCode, generateDocs bool)
func (TerraformOiCS) GenerateObject ¶
func (toics TerraformOiCS) GenerateObject(object api.Resource, outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
func (TerraformOiCS) GenerateObjects ¶
func (toics TerraformOiCS) GenerateObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)
func (TerraformOiCS) GenerateResource ¶
func (toics TerraformOiCS) GenerateResource(object api.Resource, templateData TemplateData, outputFolder string, generateCode, generateDocs bool)
type TestInput ¶
type TestInput struct { Res api.Resource ImportPath string PROJECT_NAME string CREDENTIALS string REGION string ORG_ID string ORG_DOMAIN string ORG_TARGET string PROJECT_NUMBER string BILLING_ACCT string MASTER_BILLING_ACCT string SERVICE_ACCT string CUST_ID string IDENTITY_USER string PAP_DESCRIPTION string CHRONICLE_ID string VMWAREENGINE_PROJECT string }