provider

package
v0.0.0-...-59bd402 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2025 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const RESOURCE_DIRECTORY_BETA = "google-beta"
View Source
const RESOURCE_DIRECTORY_GA = "google"
View Source
const RESOURCE_DIRECTORY_PRIVATE = "google-private"
View Source
const TERRAFORM_PROVIDER_BETA = "github.com/hashicorp/terraform-provider-google-beta"
View Source
const TERRAFORM_PROVIDER_GA = "github.com/hashicorp/terraform-provider-google"
View Source
const TERRAFORM_PROVIDER_PRIVATE = "internal/terraform-next"

Variables

View Source
var ALPHA_VERSION = "alpha"
View Source
var BETA_VERSION = "beta"
View Source
var GA_VERSION = "ga"
View Source
var PRIVATE_VERSION = "private"

Functions

func FixImports

func FixImports(outputPath string, dumpDiffs bool)

func ImportPathFromVersion

func ImportPathFromVersion(v string) string

func ProviderName

func ProviderName(t Provider) string

# 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 NewCaiToTerraformConversion

func NewCaiToTerraformConversion(product *api.Product, versionName string, startTime time.Time) CaiToTerraformConversion

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 Provider

type Provider interface {
	Generate(string, string, string, bool, bool)
	CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)
	CompileCommonFiles(outputFolder string, products []*api.Product, overridePath string)
}

type ProviderWithProducts

type ProviderWithProducts struct {
	Terraform
	Products []*api.Product
}

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 NewTerraform(product *api.Product, versionName string, startTime time.Time) Terraform

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 (t Terraform) CompileFileList(outputFolder string, files map[string]string, fileTemplate TemplateData, products []*api.Product)

func (Terraform) CopyCommonFiles

func (t Terraform) CopyCommonFiles(outputFolder string, generateCode, generateDocs bool)

func (Terraform) CopyFileList

func (t Terraform) CopyFileList(outputFolder string, files map[string]string, generateCode bool)

func (Terraform) DCLVersion

func (t Terraform) DCLVersion() string

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

func (t *Terraform) FolderName() string

Finds the folder name for a given version of the terraform provider

func (*Terraform) FullResourceName

func (t *Terraform) FullResourceName(object api.Resource) string

func (Terraform) Generate

func (t Terraform) Generate(outputFolder, productPath, resourceToGenerate string, generateCode, generateDocs bool)

func (*Terraform) GenerateIamDocumentation

func (t *Terraform) GenerateIamDocumentation(object api.Resource, templateData TemplateData, outputFolder string, generateCode, generateDocs bool)

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 (t *Terraform) GenerateObject(object api.Resource, outputFolder, productPath string, generateCode, generateDocs bool)

func (*Terraform) GenerateObjects

func (t *Terraform) GenerateObjects(outputFolder, resourceToGenerate string, generateCode, generateDocs bool)

func (*Terraform) GenerateOperation

func (t *Terraform) GenerateOperation(outputFolder string)

func (*Terraform) GenerateResource

func (t *Terraform) GenerateResource(object api.Resource, templateData TemplateData, outputFolder string, generateCode, generateDocs bool)

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

func (t Terraform) GetMmv1ServicesInVersion(products []*api.Product) []string

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 (t Terraform) ProviderFromVersion() string

func (*Terraform) ResourceGoFilename

func (t *Terraform) ResourceGoFilename(object api.Resource) string

Similar to FullResourceName, but override-aware to prevent things like ending in _test. Non-Go files should just use FullResourceName.

func (Terraform) SupportedProviderVersions

func (t Terraform) SupportedProviderVersions() []string

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 NewTerraformGoogleConversion

func NewTerraformGoogleConversion(product *api.Product, versionName string, startTime time.Time) TerraformGoogleConversion

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 NewTerraformGoogleConversionNext

func NewTerraformGoogleConversionNext(product *api.Product, versionName string, startTime time.Time) TerraformGoogleConversionNext

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 NewTerraformOiCS(product *api.Product, versionName string, startTime time.Time) TerraformOiCS

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
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL