Documentation ¶
Index ¶
- Constants
- Variables
- type Spec
- type TerraformRegistry
- func (t *TerraformRegistry) Changelog() string
- func (t *TerraformRegistry) Condition(source string, scm scm.ScmHandler) (pass bool, message string, err error)
- func (t *TerraformRegistry) Source(workingDir string, resultSource *result.Source) error
- func (t *TerraformRegistry) Target(source string, scm scm.ScmHandler, dryRun bool, resultTarget *result.Target) error
Constants ¶
View Source
const ( TypeProvider = "provider" TypeModule = "module" )
Variables ¶
View Source
var ( AllowedTypes = []string{TypeProvider, TypeModule} // ErrSpecTypeUndefined is returned if a type wasn't specified ErrSpecTypeUndefined = errors.New("terraform/registry type undefined") // ErrSpecNamespaceUndefined is returned if a namespace wasn't specified ErrSpecNamespaceUndefined = errors.New("terraform/registry namespace undefined") // ErrSpecNameUndefined is returned if a name wasn't specified ErrSpecNameUndefined = errors.New("terraform/registry name undefined") // ErrSpecTargetSystemUndefined is returned if a targetsystem wasn't specified ErrSpecTargetSystemUndefined = errors.New("terraform/registry targetsystem undefined") // ErrSpecTypeNotAllowed is returned if a type wasn't allowed ErrSpecTypeNotAllowed = fmt.Errorf("terraform/registry type must be one of: %v", AllowedTypes) // ErrSpecRawStringAndHostnameDefined when we both spec RawString and Hostname, Namespace, Name, or TargetSystem have been specified ErrSpecRawStringAndHostnameDefined = errors.New("terraform/registry rawstring and hostname are mutually exclusive") // ErrSpecRawStringAndNamespaceDefined when we both spec RawString and Hostname, Namespace, Name, or TargetSystem have been specified ErrSpecRawStringAndNamespaceDefined = errors.New("terraform/registry rawstring and namespace are mutually exclusive") // ErrSpecRawStringAndNameDefined when we both spec RawString and Hostname, Namespace, Name, or TargetSystem have been specified ErrSpecRawStringAndNameDefined = errors.New("terraform/registry rawstring and name are mutually exclusive") // ErrSpecRawStringAndTargetSystemDefined when we both spec RawString and Hostname, Namespace, Name, or TargetSystem have been specified ErrSpecRawStringAndTargetSystemDefined = errors.New("terraform/registry rawstring and targetsystem are mutually exclusive") // ErrSpecProviderTargetSystemDefined is returned if a type wasn't specified ErrSpecProviderTargetSystemDefined = errors.New("terraform/registry type provider does not support targetsystem") // ErrWrongSpec is returned when the Spec has wrong content ErrWrongSpec error = errors.New("wrong spec content") )
Functions ¶
This section is empty.
Types ¶
type Spec ¶
type Spec struct { /* "type" defines the type registry request to look up. compatible: * source * condition Supported values: module, provider */ Type string `yaml:",omitempty"` /* "hostname" the hostname of the provider or module. compatible: * source * condition remark: * Optional * Not allowed with rawstring. * Applicable for module and provider. */ Hostname string `yaml:",omitempty"` /* "namespace" the namespace of the provider or module compatible: * source * condition remark: * Required unless using rawstring * Not allowed with rawstring. * Applicable for module and provider. */ Namespace string `yaml:",omitempty"` /* "name" the name of the provider or module. compatible: * source * condition remark: * Required unless using rawstring * Not allowed with rawstring. * Applicable for module and provider. */ Name string `yaml:",omitempty"` /* "targetsystem" the target system for the module in registry compatible: * source * condition remark: * Required for type module unless using rawstring * Not allowed with rawstring * Applicable for module. */ TargetSystem string `yaml:",omitempty"` /* "rawstring" provider reference to registry in single string. compatible: * source * condition Examples: * hashicorp/kubernetes * registry.terraform.io/hashicorp/kubernetes * terraform-aws-modules/vpc/aws * app.terraform.io/terraform-aws-modules/vpc/aws remark: * Applicable for module and provider. * Not allowed with hostname, namespace, name, and targetsystem. */ RawString string `yaml:",omitempty"` /* "version" defines a specific version to be used during condition check. compatible: * condition */ Version string `yaml:",omitempty"` /* "versionfilter" provides parameters to specify version pattern and its type like regex, semver, or just latest. compatible: * source */ VersionFilter version.Filter `yaml:",omitempty"` }
type TerraformRegistry ¶
type TerraformRegistry struct { Spec Spec Version version.Version // contains filtered or unexported fields }
func New ¶
func New(spec interface{}) (*TerraformRegistry, error)
func (*TerraformRegistry) Changelog ¶
func (t *TerraformRegistry) Changelog() string
func (*TerraformRegistry) Condition ¶
func (t *TerraformRegistry) Condition(source string, scm scm.ScmHandler) (pass bool, message string, err error)
Condition checks if a specific version is published
func (*TerraformRegistry) Source ¶
func (t *TerraformRegistry) Source(workingDir string, resultSource *result.Source) error
Source returns the latest version
func (*TerraformRegistry) Target ¶
func (t *TerraformRegistry) Target(source string, scm scm.ScmHandler, dryRun bool, resultTarget *result.Target) error
Click to show internal directories.
Click to hide internal directories.