Documentation
¶
Overview ¶
Package schema contains all available schema functionality for state stores. State store schemas define the structure and value types for configuration data. Schemas are implemented via the statestore.StateStore type Schema method.
NOTE: State store support is experimental and exposed without compatibility promises until these notices are removed.
Index ¶
- type Attribute
- type BoolAttribute
- func (a BoolAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a BoolAttribute) BoolValidators() []validator.Bool
- func (a BoolAttribute) Equal(o fwschema.Attribute) bool
- func (a BoolAttribute) GetDeprecationMessage() string
- func (a BoolAttribute) GetDescription() string
- func (a BoolAttribute) GetMarkdownDescription() string
- func (a BoolAttribute) GetType() attr.Type
- func (a BoolAttribute) IsComputed() bool
- func (a BoolAttribute) IsOptional() bool
- func (a BoolAttribute) IsOptionalForImport() bool
- func (a BoolAttribute) IsRequired() bool
- func (a BoolAttribute) IsRequiredForImport() bool
- func (a BoolAttribute) IsSensitive() bool
- func (a BoolAttribute) IsWriteOnly() bool
- type DynamicAttribute
- func (a DynamicAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a DynamicAttribute) DynamicValidators() []validator.Dynamic
- func (a DynamicAttribute) Equal(o fwschema.Attribute) bool
- func (a DynamicAttribute) GetDeprecationMessage() string
- func (a DynamicAttribute) GetDescription() string
- func (a DynamicAttribute) GetMarkdownDescription() string
- func (a DynamicAttribute) GetType() attr.Type
- func (a DynamicAttribute) IsComputed() bool
- func (a DynamicAttribute) IsOptional() bool
- func (a DynamicAttribute) IsOptionalForImport() bool
- func (a DynamicAttribute) IsRequired() bool
- func (a DynamicAttribute) IsRequiredForImport() bool
- func (a DynamicAttribute) IsSensitive() bool
- func (a DynamicAttribute) IsWriteOnly() bool
- type Float32Attribute
- func (a Float32Attribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a Float32Attribute) Equal(o fwschema.Attribute) bool
- func (a Float32Attribute) Float32Validators() []validator.Float32
- func (a Float32Attribute) GetDeprecationMessage() string
- func (a Float32Attribute) GetDescription() string
- func (a Float32Attribute) GetMarkdownDescription() string
- func (a Float32Attribute) GetType() attr.Type
- func (a Float32Attribute) IsComputed() bool
- func (a Float32Attribute) IsOptional() bool
- func (a Float32Attribute) IsOptionalForImport() bool
- func (a Float32Attribute) IsRequired() bool
- func (a Float32Attribute) IsRequiredForImport() bool
- func (a Float32Attribute) IsSensitive() bool
- func (a Float32Attribute) IsWriteOnly() bool
- type Float64Attribute
- func (a Float64Attribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a Float64Attribute) Equal(o fwschema.Attribute) bool
- func (a Float64Attribute) Float64Validators() []validator.Float64
- func (a Float64Attribute) GetDeprecationMessage() string
- func (a Float64Attribute) GetDescription() string
- func (a Float64Attribute) GetMarkdownDescription() string
- func (a Float64Attribute) GetType() attr.Type
- func (a Float64Attribute) IsComputed() bool
- func (a Float64Attribute) IsOptional() bool
- func (a Float64Attribute) IsOptionalForImport() bool
- func (a Float64Attribute) IsRequired() bool
- func (a Float64Attribute) IsRequiredForImport() bool
- func (a Float64Attribute) IsSensitive() bool
- func (a Float64Attribute) IsWriteOnly() bool
- type Int32Attribute
- func (a Int32Attribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a Int32Attribute) Equal(o fwschema.Attribute) bool
- func (a Int32Attribute) GetDeprecationMessage() string
- func (a Int32Attribute) GetDescription() string
- func (a Int32Attribute) GetMarkdownDescription() string
- func (a Int32Attribute) GetType() attr.Type
- func (a Int32Attribute) Int32Validators() []validator.Int32
- func (a Int32Attribute) IsComputed() bool
- func (a Int32Attribute) IsOptional() bool
- func (a Int32Attribute) IsOptionalForImport() bool
- func (a Int32Attribute) IsRequired() bool
- func (a Int32Attribute) IsRequiredForImport() bool
- func (a Int32Attribute) IsSensitive() bool
- func (a Int32Attribute) IsWriteOnly() bool
- type Int64Attribute
- func (a Int64Attribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a Int64Attribute) Equal(o fwschema.Attribute) bool
- func (a Int64Attribute) GetDeprecationMessage() string
- func (a Int64Attribute) GetDescription() string
- func (a Int64Attribute) GetMarkdownDescription() string
- func (a Int64Attribute) GetType() attr.Type
- func (a Int64Attribute) Int64Validators() []validator.Int64
- func (a Int64Attribute) IsComputed() bool
- func (a Int64Attribute) IsOptional() bool
- func (a Int64Attribute) IsOptionalForImport() bool
- func (a Int64Attribute) IsRequired() bool
- func (a Int64Attribute) IsRequiredForImport() bool
- func (a Int64Attribute) IsSensitive() bool
- func (a Int64Attribute) IsWriteOnly() bool
- type ListAttribute
- func (a ListAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a ListAttribute) Equal(o fwschema.Attribute) bool
- func (a ListAttribute) GetDeprecationMessage() string
- func (a ListAttribute) GetDescription() string
- func (a ListAttribute) GetMarkdownDescription() string
- func (a ListAttribute) GetType() attr.Type
- func (a ListAttribute) IsComputed() bool
- func (a ListAttribute) IsOptional() bool
- func (a ListAttribute) IsOptionalForImport() bool
- func (a ListAttribute) IsRequired() bool
- func (a ListAttribute) IsRequiredForImport() bool
- func (a ListAttribute) IsSensitive() bool
- func (a ListAttribute) IsWriteOnly() bool
- func (a ListAttribute) ListValidators() []validator.List
- func (a ListAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, ...)
- type ListNestedAttribute
- func (a ListNestedAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a ListNestedAttribute) Equal(o fwschema.Attribute) bool
- func (a ListNestedAttribute) GetDeprecationMessage() string
- func (a ListNestedAttribute) GetDescription() string
- func (a ListNestedAttribute) GetMarkdownDescription() string
- func (a ListNestedAttribute) GetNestedObject() fwschema.NestedAttributeObject
- func (a ListNestedAttribute) GetNestingMode() fwschema.NestingMode
- func (a ListNestedAttribute) GetType() attr.Type
- func (a ListNestedAttribute) IsComputed() bool
- func (a ListNestedAttribute) IsOptional() bool
- func (a ListNestedAttribute) IsOptionalForImport() bool
- func (a ListNestedAttribute) IsRequired() bool
- func (a ListNestedAttribute) IsRequiredForImport() bool
- func (a ListNestedAttribute) IsSensitive() bool
- func (a ListNestedAttribute) IsWriteOnly() bool
- func (a ListNestedAttribute) ListValidators() []validator.List
- func (a ListNestedAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, ...)
- type MapAttribute
- func (a MapAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a MapAttribute) Equal(o fwschema.Attribute) bool
- func (a MapAttribute) GetDeprecationMessage() string
- func (a MapAttribute) GetDescription() string
- func (a MapAttribute) GetMarkdownDescription() string
- func (a MapAttribute) GetType() attr.Type
- func (a MapAttribute) IsComputed() bool
- func (a MapAttribute) IsOptional() bool
- func (a MapAttribute) IsOptionalForImport() bool
- func (a MapAttribute) IsRequired() bool
- func (a MapAttribute) IsRequiredForImport() bool
- func (a MapAttribute) IsSensitive() bool
- func (a MapAttribute) IsWriteOnly() bool
- func (a MapAttribute) MapValidators() []validator.Map
- func (a MapAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, ...)
- type MapNestedAttribute
- func (a MapNestedAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a MapNestedAttribute) Equal(o fwschema.Attribute) bool
- func (a MapNestedAttribute) GetDeprecationMessage() string
- func (a MapNestedAttribute) GetDescription() string
- func (a MapNestedAttribute) GetMarkdownDescription() string
- func (a MapNestedAttribute) GetNestedObject() fwschema.NestedAttributeObject
- func (a MapNestedAttribute) GetNestingMode() fwschema.NestingMode
- func (a MapNestedAttribute) GetType() attr.Type
- func (a MapNestedAttribute) IsComputed() bool
- func (a MapNestedAttribute) IsOptional() bool
- func (a MapNestedAttribute) IsOptionalForImport() bool
- func (a MapNestedAttribute) IsRequired() bool
- func (a MapNestedAttribute) IsRequiredForImport() bool
- func (a MapNestedAttribute) IsSensitive() bool
- func (a MapNestedAttribute) IsWriteOnly() bool
- func (a MapNestedAttribute) MapValidators() []validator.Map
- func (a MapNestedAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, ...)
- type NestedAttribute
- type NestedAttributeObject
- func (o NestedAttributeObject) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (any, error)
- func (o NestedAttributeObject) Equal(other fwschema.NestedAttributeObject) bool
- func (o NestedAttributeObject) GetAttributes() fwschema.UnderlyingAttributes
- func (o NestedAttributeObject) ObjectValidators() []validator.Object
- func (o NestedAttributeObject) Type() basetypes.ObjectTypable
- type NumberAttribute
- func (a NumberAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a NumberAttribute) Equal(o fwschema.Attribute) bool
- func (a NumberAttribute) GetDeprecationMessage() string
- func (a NumberAttribute) GetDescription() string
- func (a NumberAttribute) GetMarkdownDescription() string
- func (a NumberAttribute) GetType() attr.Type
- func (a NumberAttribute) IsComputed() bool
- func (a NumberAttribute) IsOptional() bool
- func (a NumberAttribute) IsOptionalForImport() bool
- func (a NumberAttribute) IsRequired() bool
- func (a NumberAttribute) IsRequiredForImport() bool
- func (a NumberAttribute) IsSensitive() bool
- func (a NumberAttribute) IsWriteOnly() bool
- func (a NumberAttribute) NumberValidators() []validator.Number
- type ObjectAttribute
- func (a ObjectAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a ObjectAttribute) Equal(o fwschema.Attribute) bool
- func (a ObjectAttribute) GetDeprecationMessage() string
- func (a ObjectAttribute) GetDescription() string
- func (a ObjectAttribute) GetMarkdownDescription() string
- func (a ObjectAttribute) GetType() attr.Type
- func (a ObjectAttribute) IsComputed() bool
- func (a ObjectAttribute) IsOptional() bool
- func (a ObjectAttribute) IsOptionalForImport() bool
- func (a ObjectAttribute) IsRequired() bool
- func (a ObjectAttribute) IsRequiredForImport() bool
- func (a ObjectAttribute) IsSensitive() bool
- func (a ObjectAttribute) IsWriteOnly() bool
- func (a ObjectAttribute) ObjectValidators() []validator.Object
- func (a ObjectAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, ...)
- type Schema
- func (s Schema) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (any, error)
- func (s Schema) AttributeAtPath(ctx context.Context, p path.Path) (fwschema.Attribute, diag.Diagnostics)
- func (s Schema) AttributeAtTerraformPath(ctx context.Context, p *tftypes.AttributePath) (fwschema.Attribute, error)
- func (s Schema) GetAttributes() map[string]fwschema.Attribute
- func (s Schema) GetBlocks() map[string]fwschema.Block
- func (s Schema) GetDeprecationMessage() string
- func (s Schema) GetDescription() string
- func (s Schema) GetMarkdownDescription() string
- func (s Schema) GetVersion() int64
- func (s Schema) Type() attr.Type
- func (s Schema) TypeAtPath(ctx context.Context, p path.Path) (attr.Type, diag.Diagnostics)
- func (s Schema) TypeAtTerraformPath(ctx context.Context, p *tftypes.AttributePath) (attr.Type, error)
- func (s Schema) ValidateImplementation(ctx context.Context) diag.Diagnostics
- type SetAttribute
- func (a SetAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a SetAttribute) Equal(o fwschema.Attribute) bool
- func (a SetAttribute) GetDeprecationMessage() string
- func (a SetAttribute) GetDescription() string
- func (a SetAttribute) GetMarkdownDescription() string
- func (a SetAttribute) GetType() attr.Type
- func (a SetAttribute) IsComputed() bool
- func (a SetAttribute) IsOptional() bool
- func (a SetAttribute) IsOptionalForImport() bool
- func (a SetAttribute) IsRequired() bool
- func (a SetAttribute) IsRequiredForImport() bool
- func (a SetAttribute) IsSensitive() bool
- func (a SetAttribute) IsWriteOnly() bool
- func (a SetAttribute) SetValidators() []validator.Set
- func (a SetAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, ...)
- type SetNestedAttribute
- func (a SetNestedAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a SetNestedAttribute) Equal(o fwschema.Attribute) bool
- func (a SetNestedAttribute) GetDeprecationMessage() string
- func (a SetNestedAttribute) GetDescription() string
- func (a SetNestedAttribute) GetMarkdownDescription() string
- func (a SetNestedAttribute) GetNestedObject() fwschema.NestedAttributeObject
- func (a SetNestedAttribute) GetNestingMode() fwschema.NestingMode
- func (a SetNestedAttribute) GetType() attr.Type
- func (a SetNestedAttribute) IsComputed() bool
- func (a SetNestedAttribute) IsOptional() bool
- func (a SetNestedAttribute) IsOptionalForImport() bool
- func (a SetNestedAttribute) IsRequired() bool
- func (a SetNestedAttribute) IsRequiredForImport() bool
- func (a SetNestedAttribute) IsSensitive() bool
- func (a SetNestedAttribute) IsWriteOnly() bool
- func (a SetNestedAttribute) SetValidators() []validator.Set
- func (a SetNestedAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, ...)
- type SingleNestedAttribute
- func (a SingleNestedAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a SingleNestedAttribute) Equal(o fwschema.Attribute) bool
- func (a SingleNestedAttribute) GetAttributes() fwschema.UnderlyingAttributes
- func (a SingleNestedAttribute) GetDeprecationMessage() string
- func (a SingleNestedAttribute) GetDescription() string
- func (a SingleNestedAttribute) GetMarkdownDescription() string
- func (a SingleNestedAttribute) GetNestedObject() fwschema.NestedAttributeObject
- func (a SingleNestedAttribute) GetNestingMode() fwschema.NestingMode
- func (a SingleNestedAttribute) GetType() attr.Type
- func (a SingleNestedAttribute) IsComputed() bool
- func (a SingleNestedAttribute) IsOptional() bool
- func (a SingleNestedAttribute) IsOptionalForImport() bool
- func (a SingleNestedAttribute) IsRequired() bool
- func (a SingleNestedAttribute) IsRequiredForImport() bool
- func (a SingleNestedAttribute) IsSensitive() bool
- func (a SingleNestedAttribute) IsWriteOnly() bool
- func (a SingleNestedAttribute) ObjectValidators() []validator.Object
- type StringAttribute
- func (a StringAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a StringAttribute) Equal(o fwschema.Attribute) bool
- func (a StringAttribute) GetDeprecationMessage() string
- func (a StringAttribute) GetDescription() string
- func (a StringAttribute) GetMarkdownDescription() string
- func (a StringAttribute) GetType() attr.Type
- func (a StringAttribute) IsComputed() bool
- func (a StringAttribute) IsOptional() bool
- func (a StringAttribute) IsOptionalForImport() bool
- func (a StringAttribute) IsRequired() bool
- func (a StringAttribute) IsRequiredForImport() bool
- func (a StringAttribute) IsSensitive() bool
- func (a StringAttribute) IsWriteOnly() bool
- func (a StringAttribute) StringValidators() []validator.String
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attribute ¶
Attribute define a value field inside a state store type schema. Implementations in this package include:
- BoolAttribute
- DynamicAttribute
- Float32Attribute
- Float64Attribute
- Int32Attribute
- Int64Attribute
- ListAttribute
- MapAttribute
- NumberAttribute
- ObjectAttribute
- SetAttribute
- StringAttribute
Additionally, the NestedAttribute interface extends Attribute with nested attributes, implementations in this package include:
- ListNestedAttribute
- MapNestedAttribute
- SetNestedAttribute
- SingleNestedAttribute
type BoolAttribute ¶
type BoolAttribute struct {
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.BoolType. When retrieving data, the basetypes.BoolValuable
// associated with this custom type must be used in place of types.Bool.
CustomType basetypes.BoolTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Bool
}
BoolAttribute represents a schema attribute that is a boolean. When retrieving the value for this attribute, use types.Bool as the value type unless the CustomType field is set.
Terraform configurations configure this attribute using expressions that return a boolean or directly via the true/false keywords.
example_attribute = true
Terraform configurations reference this attribute using the attribute name.
.example_attribute
func (BoolAttribute) ApplyTerraform5AttributePathStep ¶
func (a BoolAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep always returns an error as it is not possible to step further into a BoolAttribute.
func (BoolAttribute) BoolValidators ¶
func (a BoolAttribute) BoolValidators() []validator.Bool
BoolValidators returns the Validators field value.
func (BoolAttribute) Equal ¶
func (a BoolAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a BoolAttribute and all fields are equal.
func (BoolAttribute) GetDeprecationMessage ¶
func (a BoolAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (BoolAttribute) GetDescription ¶
func (a BoolAttribute) GetDescription() string
GetDescription returns the Description field value.
func (BoolAttribute) GetMarkdownDescription ¶
func (a BoolAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (BoolAttribute) GetType ¶
func (a BoolAttribute) GetType() attr.Type
GetType returns types.StringType or the CustomType field value if defined.
func (BoolAttribute) IsComputed ¶
func (a BoolAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (BoolAttribute) IsOptional ¶
func (a BoolAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (BoolAttribute) IsOptionalForImport ¶
func (a BoolAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (BoolAttribute) IsRequired ¶
func (a BoolAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (BoolAttribute) IsRequiredForImport ¶
func (a BoolAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (BoolAttribute) IsSensitive ¶
func (a BoolAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (BoolAttribute) IsWriteOnly ¶
func (a BoolAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
type DynamicAttribute ¶
type DynamicAttribute struct {
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.DynamicType. When retrieving data, the basetypes.DynamicValuable
// associated with this custom type must be used in place of types.Dynamic.
CustomType basetypes.DynamicTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Dynamic
}
DynamicAttribute represents a schema attribute that is a dynamic, rather than a single static type. Static types are always preferable over dynamic types in Terraform as practitioners will receive less helpful configuration assistance from validation error diagnostics and editor integrations. When retrieving the value for this attribute, use types.Dynamic as the value type unless the CustomType field is set.
The concrete value type for a dynamic is determined at runtime in this order:
- By Terraform, if defined in the configuration (if Required or Optional).
- By the provider (if Computed).
Once the concrete value type has been determined, it must remain consistent between plan and apply or Terraform will return an error.
func (DynamicAttribute) ApplyTerraform5AttributePathStep ¶
func (a DynamicAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep always returns an error as it is not possible to step further into a DynamicAttribute.
func (DynamicAttribute) DynamicValidators ¶
func (a DynamicAttribute) DynamicValidators() []validator.Dynamic
DynamicValidators returns the Validators field value.
func (DynamicAttribute) Equal ¶
func (a DynamicAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a DynamicAttribute and all fields are equal.
func (DynamicAttribute) GetDeprecationMessage ¶
func (a DynamicAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (DynamicAttribute) GetDescription ¶
func (a DynamicAttribute) GetDescription() string
GetDescription returns the Description field value.
func (DynamicAttribute) GetMarkdownDescription ¶
func (a DynamicAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (DynamicAttribute) GetType ¶
func (a DynamicAttribute) GetType() attr.Type
GetType returns types.DynamicType or the CustomType field value if defined.
func (DynamicAttribute) IsComputed ¶
func (a DynamicAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (DynamicAttribute) IsOptional ¶
func (a DynamicAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (DynamicAttribute) IsOptionalForImport ¶
func (a DynamicAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (DynamicAttribute) IsRequired ¶
func (a DynamicAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (DynamicAttribute) IsRequiredForImport ¶
func (a DynamicAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (DynamicAttribute) IsSensitive ¶
func (a DynamicAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (DynamicAttribute) IsWriteOnly ¶
func (a DynamicAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
type Float32Attribute ¶
type Float32Attribute struct {
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.Float32Type. When retrieving data, the basetypes.Float32Valuable
// associated with this custom type must be used in place of types.Float32.
CustomType basetypes.Float32Typable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Float32
}
Float32Attribute represents a schema attribute that is a 32-bit floating point number. When retrieving the value for this attribute, use types.Float32 as the value type unless the CustomType field is set.
Use Int32Attribute for 32-bit integer attributes or NumberAttribute for 512-bit generic number attributes.
Terraform configurations configure this attribute using expressions that return a number or directly via a floating point value.
example_attribute = 123.45
Terraform configurations reference this attribute using the attribute name.
.example_attribute
func (Float32Attribute) ApplyTerraform5AttributePathStep ¶
func (a Float32Attribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep always returns an error as it is not possible to step further into a Float32Attribute.
func (Float32Attribute) Equal ¶
func (a Float32Attribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a Float32Attribute and all fields are equal.
func (Float32Attribute) Float32Validators ¶
func (a Float32Attribute) Float32Validators() []validator.Float32
Float32Validators returns the Validators field value.
func (Float32Attribute) GetDeprecationMessage ¶
func (a Float32Attribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (Float32Attribute) GetDescription ¶
func (a Float32Attribute) GetDescription() string
GetDescription returns the Description field value.
func (Float32Attribute) GetMarkdownDescription ¶
func (a Float32Attribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (Float32Attribute) GetType ¶
func (a Float32Attribute) GetType() attr.Type
GetType returns types.Float32Type or the CustomType field value if defined.
func (Float32Attribute) IsComputed ¶
func (a Float32Attribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (Float32Attribute) IsOptional ¶
func (a Float32Attribute) IsOptional() bool
IsOptional returns the Optional field value.
func (Float32Attribute) IsOptionalForImport ¶
func (a Float32Attribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (Float32Attribute) IsRequired ¶
func (a Float32Attribute) IsRequired() bool
IsRequired returns the Required field value.
func (Float32Attribute) IsRequiredForImport ¶
func (a Float32Attribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (Float32Attribute) IsSensitive ¶
func (a Float32Attribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (Float32Attribute) IsWriteOnly ¶
func (a Float32Attribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
type Float64Attribute ¶
type Float64Attribute struct {
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.Float64Type. When retrieving data, the basetypes.Float64Valuable
// associated with this custom type must be used in place of types.Float64.
CustomType basetypes.Float64Typable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Float64
}
Float64Attribute represents a schema attribute that is a 64-bit floating point number. When retrieving the value for this attribute, use types.Float64 as the value type unless the CustomType field is set.
Use Int64Attribute for 64-bit integer attributes or NumberAttribute for 512-bit generic number attributes.
Terraform configurations configure this attribute using expressions that return a number or directly via a floating point value.
example_attribute = 123.45
Terraform configurations reference this attribute using the attribute name.
.example_attribute
func (Float64Attribute) ApplyTerraform5AttributePathStep ¶
func (a Float64Attribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep always returns an error as it is not possible to step further into a Float64Attribute.
func (Float64Attribute) Equal ¶
func (a Float64Attribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a Float64Attribute and all fields are equal.
func (Float64Attribute) Float64Validators ¶
func (a Float64Attribute) Float64Validators() []validator.Float64
Float64Validators returns the Validators field value.
func (Float64Attribute) GetDeprecationMessage ¶
func (a Float64Attribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (Float64Attribute) GetDescription ¶
func (a Float64Attribute) GetDescription() string
GetDescription returns the Description field value.
func (Float64Attribute) GetMarkdownDescription ¶
func (a Float64Attribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (Float64Attribute) GetType ¶
func (a Float64Attribute) GetType() attr.Type
GetType returns types.Float64Type or the CustomType field value if defined.
func (Float64Attribute) IsComputed ¶
func (a Float64Attribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (Float64Attribute) IsOptional ¶
func (a Float64Attribute) IsOptional() bool
IsOptional returns the Optional field value.
func (Float64Attribute) IsOptionalForImport ¶
func (a Float64Attribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (Float64Attribute) IsRequired ¶
func (a Float64Attribute) IsRequired() bool
IsRequired returns the Required field value.
func (Float64Attribute) IsRequiredForImport ¶
func (a Float64Attribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (Float64Attribute) IsSensitive ¶
func (a Float64Attribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (Float64Attribute) IsWriteOnly ¶
func (a Float64Attribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
type Int32Attribute ¶
type Int32Attribute struct {
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.Int32Type. When retrieving data, the basetypes.Int32Valuable
// associated with this custom type must be used in place of types.Int32.
CustomType basetypes.Int32Typable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Int32
}
Int32Attribute represents a schema attribute that is a 32-bit integer. When retrieving the value for this attribute, use types.Int32 as the value type unless the CustomType field is set.
Use Float32Attribute for 32-bit floating point number attributes or NumberAttribute for 512-bit generic number attributes.
Terraform configurations configure this attribute using expressions that return a number or directly via an integer value.
example_attribute = 123
Terraform configurations reference this attribute using the attribute name.
.example_attribute
func (Int32Attribute) ApplyTerraform5AttributePathStep ¶
func (a Int32Attribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep always returns an error as it is not possible to step further into a Int32Attribute.
func (Int32Attribute) Equal ¶
func (a Int32Attribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a Int32Attribute and all fields are equal.
func (Int32Attribute) GetDeprecationMessage ¶
func (a Int32Attribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (Int32Attribute) GetDescription ¶
func (a Int32Attribute) GetDescription() string
GetDescription returns the Description field value.
func (Int32Attribute) GetMarkdownDescription ¶
func (a Int32Attribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (Int32Attribute) GetType ¶
func (a Int32Attribute) GetType() attr.Type
GetType returns types.Int32Type or the CustomType field value if defined.
func (Int32Attribute) Int32Validators ¶
func (a Int32Attribute) Int32Validators() []validator.Int32
Int32Validators returns the Validators field value.
func (Int32Attribute) IsComputed ¶
func (a Int32Attribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (Int32Attribute) IsOptional ¶
func (a Int32Attribute) IsOptional() bool
IsOptional returns the Optional field value.
func (Int32Attribute) IsOptionalForImport ¶
func (a Int32Attribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (Int32Attribute) IsRequired ¶
func (a Int32Attribute) IsRequired() bool
IsRequired returns the Required field value.
func (Int32Attribute) IsRequiredForImport ¶
func (a Int32Attribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (Int32Attribute) IsSensitive ¶
func (a Int32Attribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (Int32Attribute) IsWriteOnly ¶
func (a Int32Attribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
type Int64Attribute ¶
type Int64Attribute struct {
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.Int64Type. When retrieving data, the basetypes.Int64Valuable
// associated with this custom type must be used in place of types.Int64.
CustomType basetypes.Int64Typable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Int64
}
Int64Attribute represents a schema attribute that is a 64-bit integer. When retrieving the value for this attribute, use types.Int64 as the value type unless the CustomType field is set.
Use Float64Attribute for 64-bit floating point number attributes or NumberAttribute for 512-bit generic number attributes.
Terraform configurations configure this attribute using expressions that return a number or directly via an integer value.
example_attribute = 123
Terraform configurations reference this attribute using the attribute name.
.example_attribute
func (Int64Attribute) ApplyTerraform5AttributePathStep ¶
func (a Int64Attribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep always returns an error as it is not possible to step further into a Int64Attribute.
func (Int64Attribute) Equal ¶
func (a Int64Attribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a Int64Attribute and all fields are equal.
func (Int64Attribute) GetDeprecationMessage ¶
func (a Int64Attribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (Int64Attribute) GetDescription ¶
func (a Int64Attribute) GetDescription() string
GetDescription returns the Description field value.
func (Int64Attribute) GetMarkdownDescription ¶
func (a Int64Attribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (Int64Attribute) GetType ¶
func (a Int64Attribute) GetType() attr.Type
GetType returns types.Int64Type or the CustomType field value if defined.
func (Int64Attribute) Int64Validators ¶
func (a Int64Attribute) Int64Validators() []validator.Int64
Int64Validators returns the Validators field value.
func (Int64Attribute) IsComputed ¶
func (a Int64Attribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (Int64Attribute) IsOptional ¶
func (a Int64Attribute) IsOptional() bool
IsOptional returns the Optional field value.
func (Int64Attribute) IsOptionalForImport ¶
func (a Int64Attribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (Int64Attribute) IsRequired ¶
func (a Int64Attribute) IsRequired() bool
IsRequired returns the Required field value.
func (Int64Attribute) IsRequiredForImport ¶
func (a Int64Attribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (Int64Attribute) IsSensitive ¶
func (a Int64Attribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (Int64Attribute) IsWriteOnly ¶
func (a Int64Attribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
type ListAttribute ¶
type ListAttribute struct {
// ElementType is the type for all elements of the list. This field must be
// set.
//
// Element types that contain a dynamic type (i.e. types.Dynamic) are not supported.
// If underlying dynamic values are required, replace this attribute definition with
// DynamicAttribute instead.
ElementType attr.Type
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.ListType. When retrieving data, the basetypes.ListValuable
// associated with this custom type must be used in place of types.List.
CustomType basetypes.ListTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.List
}
ListAttribute represents a schema attribute that is a list with a single element type. When retrieving the value for this attribute, use types.List as the value type unless the CustomType field is set. The ElementType field must be set.
Use ListNestedAttribute if the underlying elements should be objects and require definition beyond type information.
Terraform configurations configure this attribute using expressions that return a list or directly via square brace syntax.
# list of strings example_attribute = ["first", "second"]
Terraform configurations reference this attribute using expressions that accept a list or an element directly via square brace 0-based index syntax:
# first known element .example_attribute[0]
func (ListAttribute) ApplyTerraform5AttributePathStep ¶
func (a ListAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep returns the result of stepping into a list index or an error.
func (ListAttribute) Equal ¶
func (a ListAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a ListAttribute and all fields are equal.
func (ListAttribute) GetDeprecationMessage ¶
func (a ListAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (ListAttribute) GetDescription ¶
func (a ListAttribute) GetDescription() string
GetDescription returns the Description field value.
func (ListAttribute) GetMarkdownDescription ¶
func (a ListAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (ListAttribute) GetType ¶
func (a ListAttribute) GetType() attr.Type
GetType returns types.ListType or the CustomType field value if defined.
func (ListAttribute) IsComputed ¶
func (a ListAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (ListAttribute) IsOptional ¶
func (a ListAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (ListAttribute) IsOptionalForImport ¶
func (a ListAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (ListAttribute) IsRequired ¶
func (a ListAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (ListAttribute) IsRequiredForImport ¶
func (a ListAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (ListAttribute) IsSensitive ¶
func (a ListAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (ListAttribute) IsWriteOnly ¶
func (a ListAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (ListAttribute) ListValidators ¶
func (a ListAttribute) ListValidators() []validator.List
ListValidators returns the Validators field value.
func (ListAttribute) ValidateImplementation ¶
func (a ListAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, resp *fwschema.ValidateImplementationResponse)
ValidateImplementation contains logic for validating the provider-defined implementation of the attribute to prevent unexpected errors or panics. This logic runs during the GetProviderSchema RPC and should never include false positives.
type ListNestedAttribute ¶
type ListNestedAttribute struct {
// NestedObject is the underlying object that contains nested attributes.
// This field must be set.
//
// Nested attributes that contain a dynamic type (i.e. DynamicAttribute) are not supported.
// If underlying dynamic values are required, replace this attribute definition with
// DynamicAttribute instead.
NestedObject NestedAttributeObject
// CustomType enables the use of a custom attribute type in place of the
// default types.ListType of types.ObjectType. When retrieving data, the
// basetypes.ListValuable associated with this custom type must be used in
// place of types.List.
CustomType basetypes.ListTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.List
}
ListNestedAttribute represents an attribute that is a list of objects where the object attributes can be fully defined, including further nested attributes. When retrieving the value for this attribute, use types.List as the value type unless the CustomType field is set. The NestedObject field must be set.
Use ListAttribute if the underlying elements are of a single type and do not require definition beyond type information.
Terraform configurations configure this attribute using expressions that return a list of objects or directly via square and curly brace syntax.
# list of objects
example_attribute = [
{
nested_attribute = #...
},
]
Terraform configurations reference this attribute using expressions that accept a list of objects or an element directly via square brace 0-based index syntax:
# first known object .example_attribute[0] # first known object nested_attribute value .example_attribute[0].nested_attribute
func (ListNestedAttribute) ApplyTerraform5AttributePathStep ¶
func (a ListNestedAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep returns the Attributes field value if step is ElementKeyInt, otherwise returns an error.
func (ListNestedAttribute) Equal ¶
func (a ListNestedAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a ListNestedAttribute and all fields are equal.
func (ListNestedAttribute) GetDeprecationMessage ¶
func (a ListNestedAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (ListNestedAttribute) GetDescription ¶
func (a ListNestedAttribute) GetDescription() string
GetDescription returns the Description field value.
func (ListNestedAttribute) GetMarkdownDescription ¶
func (a ListNestedAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (ListNestedAttribute) GetNestedObject ¶
func (a ListNestedAttribute) GetNestedObject() fwschema.NestedAttributeObject
GetNestedObject returns the NestedObject field value.
func (ListNestedAttribute) GetNestingMode ¶
func (a ListNestedAttribute) GetNestingMode() fwschema.NestingMode
GetNestingMode always returns NestingModeList.
func (ListNestedAttribute) GetType ¶
func (a ListNestedAttribute) GetType() attr.Type
GetType returns ListType of ObjectType or CustomType.
func (ListNestedAttribute) IsComputed ¶
func (a ListNestedAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (ListNestedAttribute) IsOptional ¶
func (a ListNestedAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (ListNestedAttribute) IsOptionalForImport ¶
func (a ListNestedAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (ListNestedAttribute) IsRequired ¶
func (a ListNestedAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (ListNestedAttribute) IsRequiredForImport ¶
func (a ListNestedAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (ListNestedAttribute) IsSensitive ¶
func (a ListNestedAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (ListNestedAttribute) IsWriteOnly ¶
func (a ListNestedAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (ListNestedAttribute) ListValidators ¶
func (a ListNestedAttribute) ListValidators() []validator.List
ListValidators returns the Validators field value.
func (ListNestedAttribute) ValidateImplementation ¶
func (a ListNestedAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, resp *fwschema.ValidateImplementationResponse)
ValidateImplementation contains logic for validating the provider-defined implementation of the attribute to prevent unexpected errors or panics. This logic runs during the GetProviderSchema RPC and should never include false positives.
type MapAttribute ¶
type MapAttribute struct {
// ElementType is the type for all elements of the map. This field must be
// set.
//
// Element types that contain a dynamic type (i.e. types.Dynamic) are not supported.
// If underlying dynamic values are required, replace this attribute definition with
// DynamicAttribute instead.
ElementType attr.Type
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.MapType. When retrieving data, the basetypes.MapValuable
// associated with this custom type must be used in place of types.Map.
CustomType basetypes.MapTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Map
}
MapAttribute represents a schema attribute that is a map with a single element type. When retrieving the value for this attribute, use types.Map as the value type unless the CustomType field is set. The ElementType field must be set.
Use MapNestedAttribute if the underlying elements should be objects and require definition beyond type information.
Terraform configurations configure this attribute using expressions that return a map or directly via curly brace syntax.
# map of strings
example_attribute = {
key1 = "first",
key2 = "second",
}
Terraform configurations reference this attribute using expressions that accept a map or an element directly via square brace string syntax:
# key1 known element .example_attribute["key1"]
func (MapAttribute) ApplyTerraform5AttributePathStep ¶
func (a MapAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep returns the result of stepping into a map index or an error.
func (MapAttribute) Equal ¶
func (a MapAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a MapAttribute and all fields are equal.
func (MapAttribute) GetDeprecationMessage ¶
func (a MapAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (MapAttribute) GetDescription ¶
func (a MapAttribute) GetDescription() string
GetDescription returns the Description field value.
func (MapAttribute) GetMarkdownDescription ¶
func (a MapAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (MapAttribute) GetType ¶
func (a MapAttribute) GetType() attr.Type
GetType returns types.MapType or the CustomType field value if defined.
func (MapAttribute) IsComputed ¶
func (a MapAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (MapAttribute) IsOptional ¶
func (a MapAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (MapAttribute) IsOptionalForImport ¶
func (a MapAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (MapAttribute) IsRequired ¶
func (a MapAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (MapAttribute) IsRequiredForImport ¶
func (a MapAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (MapAttribute) IsSensitive ¶
func (a MapAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (MapAttribute) IsWriteOnly ¶
func (a MapAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (MapAttribute) MapValidators ¶
func (a MapAttribute) MapValidators() []validator.Map
MapValidators returns the Validators field value.
func (MapAttribute) ValidateImplementation ¶
func (a MapAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, resp *fwschema.ValidateImplementationResponse)
ValidateImplementation contains logic for validating the provider-defined implementation of the attribute to prevent unexpected errors or panics. This logic runs during the GetProviderSchema RPC and should never include false positives.
type MapNestedAttribute ¶
type MapNestedAttribute struct {
// NestedObject is the underlying object that contains nested attributes.
// This field must be set.
//
// Nested attributes that contain a dynamic type (i.e. DynamicAttribute) are not supported.
// If underlying dynamic values are required, replace this attribute definition with
// DynamicAttribute instead.
NestedObject NestedAttributeObject
// CustomType enables the use of a custom attribute type in place of the
// default types.MapType of types.ObjectType. When retrieving data, the
// basetypes.MapValuable associated with this custom type must be used in
// place of types.Map.
CustomType basetypes.MapTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Map
}
MapNestedAttribute represents an attribute that is a map of objects where the object attributes can be fully defined, including further nested attributes. When retrieving the value for this attribute, use types.Map as the value type unless the CustomType field is set. The NestedObject field must be set.
Use MapAttribute if the underlying elements are of a single type and do not require definition beyond type information.
Terraform configurations configure this attribute using expressions that return a map of objects or directly via curly brace syntax.
# map of objects
example_attribute = {
key = {
nested_attribute = #...
},
]
Terraform configurations reference this attribute using expressions that accept a map of objects or an element directly via square brace string syntax:
# known object at key .example_attribute["key"] # known object nested_attribute value at key .example_attribute["key"].nested_attribute
func (MapNestedAttribute) ApplyTerraform5AttributePathStep ¶
func (a MapNestedAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep returns the Attributes field value if step is ElementKeyString, otherwise returns an error.
func (MapNestedAttribute) Equal ¶
func (a MapNestedAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a MapNestedAttribute and all fields are equal.
func (MapNestedAttribute) GetDeprecationMessage ¶
func (a MapNestedAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (MapNestedAttribute) GetDescription ¶
func (a MapNestedAttribute) GetDescription() string
GetDescription returns the Description field value.
func (MapNestedAttribute) GetMarkdownDescription ¶
func (a MapNestedAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (MapNestedAttribute) GetNestedObject ¶
func (a MapNestedAttribute) GetNestedObject() fwschema.NestedAttributeObject
GetNestedObject returns the NestedObject field value.
func (MapNestedAttribute) GetNestingMode ¶
func (a MapNestedAttribute) GetNestingMode() fwschema.NestingMode
GetNestingMode always returns NestingModeMap.
func (MapNestedAttribute) GetType ¶
func (a MapNestedAttribute) GetType() attr.Type
GetType returns MapType of ObjectType or CustomType.
func (MapNestedAttribute) IsComputed ¶
func (a MapNestedAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (MapNestedAttribute) IsOptional ¶
func (a MapNestedAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (MapNestedAttribute) IsOptionalForImport ¶
func (a MapNestedAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (MapNestedAttribute) IsRequired ¶
func (a MapNestedAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (MapNestedAttribute) IsRequiredForImport ¶
func (a MapNestedAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (MapNestedAttribute) IsSensitive ¶
func (a MapNestedAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (MapNestedAttribute) IsWriteOnly ¶
func (a MapNestedAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (MapNestedAttribute) MapValidators ¶
func (a MapNestedAttribute) MapValidators() []validator.Map
MapValidators returns the Validators field value.
func (MapNestedAttribute) ValidateImplementation ¶
func (a MapNestedAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, resp *fwschema.ValidateImplementationResponse)
ValidateImplementation contains logic for validating the provider-defined implementation of the attribute to prevent unexpected errors or panics. This logic runs during the GetProviderSchema RPC and should never include false positives.
type NestedAttribute ¶
type NestedAttribute interface {
Attribute
fwschema.NestedAttribute
}
type NestedAttributeObject ¶
type NestedAttributeObject struct {
// Attributes is the mapping of underlying attribute names to attribute
// definitions. This field must be set.
Attributes map[string]Attribute
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.ObjectType. When retrieving data, the basetypes.ObjectValuable
// associated with this custom type must be used in place of types.Object.
CustomType basetypes.ObjectTypable
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Object
}
NestedAttributeObject is the object containing the underlying attributes for a ListNestedAttribute, MapNestedAttribute, SetNestedAttribute, or SingleNestedAttribute (automatically generated). When retrieving the value for this attribute, use types.Object as the value type unless the CustomType field is set. The Attributes field must be set.
This object enables customizing and simplifying details within its parent NestedAttribute, therefore it cannot have Terraform schema fields such as Required, Description, etc.
func (NestedAttributeObject) ApplyTerraform5AttributePathStep ¶
func (o NestedAttributeObject) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (any, error)
ApplyTerraform5AttributePathStep performs an AttributeName step on the underlying attributes or returns an error.
func (NestedAttributeObject) Equal ¶
func (o NestedAttributeObject) Equal(other fwschema.NestedAttributeObject) bool
Equal returns true if the given NestedAttributeObject is equivalent.
func (NestedAttributeObject) GetAttributes ¶
func (o NestedAttributeObject) GetAttributes() fwschema.UnderlyingAttributes
GetAttributes returns the Attributes field value.
func (NestedAttributeObject) ObjectValidators ¶
func (o NestedAttributeObject) ObjectValidators() []validator.Object
ObjectValidators returns the Validators field value.
func (NestedAttributeObject) Type ¶
func (o NestedAttributeObject) Type() basetypes.ObjectTypable
Type returns the framework type of the NestedAttributeObject.
type NumberAttribute ¶
type NumberAttribute struct {
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.NumberType. When retrieving data, the basetypes.NumberValuable
// associated with this custom type must be used in place of types.Number.
CustomType basetypes.NumberTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Number
}
NumberAttribute represents a schema attribute that is a generic number with up to 512 bits of floating point or integer precision. When retrieving the value for this attribute, use types.Number as the value type unless the CustomType field is set.
Use Float64Attribute for 64-bit floating point number attributes or Int64Attribute for 64-bit integer number attributes.
Terraform configurations configure this attribute using expressions that return a number or directly via a floating point or integer value.
example_attribute = 123
Terraform configurations reference this attribute using the attribute name.
.example_attribute
func (NumberAttribute) ApplyTerraform5AttributePathStep ¶
func (a NumberAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep always returns an error as it is not possible to step further into a NumberAttribute.
func (NumberAttribute) Equal ¶
func (a NumberAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a NumberAttribute and all fields are equal.
func (NumberAttribute) GetDeprecationMessage ¶
func (a NumberAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (NumberAttribute) GetDescription ¶
func (a NumberAttribute) GetDescription() string
GetDescription returns the Description field value.
func (NumberAttribute) GetMarkdownDescription ¶
func (a NumberAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (NumberAttribute) GetType ¶
func (a NumberAttribute) GetType() attr.Type
GetType returns types.NumberType or the CustomType field value if defined.
func (NumberAttribute) IsComputed ¶
func (a NumberAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (NumberAttribute) IsOptional ¶
func (a NumberAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (NumberAttribute) IsOptionalForImport ¶
func (a NumberAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (NumberAttribute) IsRequired ¶
func (a NumberAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (NumberAttribute) IsRequiredForImport ¶
func (a NumberAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (NumberAttribute) IsSensitive ¶
func (a NumberAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (NumberAttribute) IsWriteOnly ¶
func (a NumberAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (NumberAttribute) NumberValidators ¶
func (a NumberAttribute) NumberValidators() []validator.Number
NumberValidators returns the Validators field value.
type ObjectAttribute ¶
type ObjectAttribute struct {
// AttributeTypes is the mapping of underlying attribute names to attribute
// types. This field must be set.
//
// Attribute types that contain a collection with a nested dynamic type (i.e. types.List[types.Dynamic]) are not supported.
// If underlying dynamic collection values are required, replace this attribute definition with
// DynamicAttribute instead.
AttributeTypes map[string]attr.Type
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.ObjectType. When retrieving data, the basetypes.ObjectValuable
// associated with this custom type must be used in place of types.Object.
CustomType basetypes.ObjectTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Object
}
ObjectAttribute represents a schema attribute that is an object with only type information for underlying attributes. When retrieving the value for this attribute, use types.Object as the value type unless the CustomType field is set. The AttributeTypes field must be set.
Prefer SingleNestedAttribute over ObjectAttribute if full attribute functionality is needed.
Terraform configurations configure this attribute using expressions that return an object or directly via curly brace syntax.
# object with one attribute
example_attribute = {
underlying_attribute = #...
}
Terraform configurations reference this attribute using expressions that accept an object or an attribute directly via period syntax:
# underlying attribute .example_attribute.underlying_attribute
func (ObjectAttribute) ApplyTerraform5AttributePathStep ¶
func (a ObjectAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep returns the result of stepping into an attribute name or an error.
func (ObjectAttribute) Equal ¶
func (a ObjectAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a ObjectAttribute and all fields are equal.
func (ObjectAttribute) GetDeprecationMessage ¶
func (a ObjectAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (ObjectAttribute) GetDescription ¶
func (a ObjectAttribute) GetDescription() string
GetDescription returns the Description field value.
func (ObjectAttribute) GetMarkdownDescription ¶
func (a ObjectAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (ObjectAttribute) GetType ¶
func (a ObjectAttribute) GetType() attr.Type
GetType returns types.ObjectType or the CustomType field value if defined.
func (ObjectAttribute) IsComputed ¶
func (a ObjectAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (ObjectAttribute) IsOptional ¶
func (a ObjectAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (ObjectAttribute) IsOptionalForImport ¶
func (a ObjectAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (ObjectAttribute) IsRequired ¶
func (a ObjectAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (ObjectAttribute) IsRequiredForImport ¶
func (a ObjectAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (ObjectAttribute) IsSensitive ¶
func (a ObjectAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (ObjectAttribute) IsWriteOnly ¶
func (a ObjectAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (ObjectAttribute) ObjectValidators ¶
func (a ObjectAttribute) ObjectValidators() []validator.Object
ObjectValidators returns the Validators field value.
func (ObjectAttribute) ValidateImplementation ¶
func (a ObjectAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, resp *fwschema.ValidateImplementationResponse)
ValidateImplementation contains logic for validating the provider-defined implementation of the attribute to prevent unexpected errors or panics. This logic runs during the GetProviderSchema RPC and should never include false positives.
type Schema ¶
type Schema struct {
// Attributes is the mapping of underlying attribute names to attribute
// definitions.
//
// Names must only contain lowercase letters, numbers, and underscores.
// Names must not collide with any Blocks names.
Attributes map[string]Attribute
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this state store is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this state store is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this state store. The warning diagnostic
// summary is automatically set to "State Store Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Use examplecloud_store state store instead. This state store
// will be removed in the next major version of the provider."
// - "Remove this state store as it no longer is valid and
// will be removed in the next major version of the provider."
//
DeprecationMessage string
// Version indicates the current version of the state store schema.
// Versioning is only required if there is a breaking change involving
// existing state data, such as changing an attribute or block type in
// a manner that is incompatible with the Terraform type.
//
// Versions are conventionally only incremented by one each release.
Version int64
}
Schema defines the structure and value types of a state store.
func (Schema) ApplyTerraform5AttributePathStep ¶
func (s Schema) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (any, error)
ApplyTerraform5AttributePathStep applies the given AttributePathStep to the schema.
func (Schema) AttributeAtPath ¶
func (s Schema) AttributeAtPath(ctx context.Context, p path.Path) (fwschema.Attribute, diag.Diagnostics)
AttributeAtPath returns the Attribute at the passed path. If the path points to an element or attribute of a complex type, rather than to an Attribute, it will return an ErrPathInsideAtomicAttribute error.
func (Schema) AttributeAtTerraformPath ¶
func (s Schema) AttributeAtTerraformPath(ctx context.Context, p *tftypes.AttributePath) (fwschema.Attribute, error)
AttributeAtPath returns the Attribute at the passed path. If the path points to an element or attribute of a complex type, rather than to an Attribute, it will return an ErrPathInsideAtomicAttribute error.
func (Schema) GetAttributes ¶
GetAttributes returns the Attributes field value.
func (Schema) GetBlocks ¶
GetBlocks returns an empty map of nested blocks as they are not supported in state store schemas.
func (Schema) GetDeprecationMessage ¶
GetDeprecationMessage returns the DeprecationMessage field value.
func (Schema) GetDescription ¶
GetDescription returns the Description field value.
func (Schema) GetMarkdownDescription ¶
GetMarkdownDescription returns the MarkdownDescription field value.
func (Schema) GetVersion ¶
GetVersion returns the Version field value.
func (Schema) TypeAtPath ¶
TypeAtPath returns the framework type at the given schema path.
func (Schema) TypeAtTerraformPath ¶
func (s Schema) TypeAtTerraformPath(ctx context.Context, p *tftypes.AttributePath) (attr.Type, error)
TypeAtTerraformPath returns the framework type at the given tftypes path.
func (Schema) ValidateImplementation ¶
func (s Schema) ValidateImplementation(ctx context.Context) diag.Diagnostics
ValidateImplementation contains logic for validating the provider-defined implementation of the schema and underlying attributes and blocks to prevent unexpected errors or panics. This logic runs during the GetProviderSchema RPC, or via provider-defined unit testing, and should never include false positives.
type SetAttribute ¶
type SetAttribute struct {
// ElementType is the type for all elements of the set. This field must be
// set.
//
// Element types that contain a dynamic type (i.e. types.Dynamic) are not supported.
// If underlying dynamic values are required, replace this attribute definition with
// DynamicAttribute instead.
ElementType attr.Type
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.SetType. When retrieving data, the basetypes.SetValuable
// associated with this custom type must be used in place of types.Set.
CustomType basetypes.SetTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Set
}
SetAttribute represents a schema attribute that is a set with a single element type. When retrieving the value for this attribute, use types.Set as the value type unless the CustomType field is set. The ElementType field must be set.
Use SetNestedAttribute if the underlying elements should be objects and require definition beyond type information.
Terraform configurations configure this attribute using expressions that return a set or directly via square brace syntax.
# set of strings example_attribute = ["first", "second"]
Terraform configurations reference this attribute using expressions that accept a set. Sets cannot be indexed in Terraform, therefore an expression is required to access an explicit element.
func (SetAttribute) ApplyTerraform5AttributePathStep ¶
func (a SetAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep returns the result of stepping into a set index or an error.
func (SetAttribute) Equal ¶
func (a SetAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a SetAttribute and all fields are equal.
func (SetAttribute) GetDeprecationMessage ¶
func (a SetAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (SetAttribute) GetDescription ¶
func (a SetAttribute) GetDescription() string
GetDescription returns the Description field value.
func (SetAttribute) GetMarkdownDescription ¶
func (a SetAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (SetAttribute) GetType ¶
func (a SetAttribute) GetType() attr.Type
GetType returns types.SetType or the CustomType field value if defined.
func (SetAttribute) IsComputed ¶
func (a SetAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (SetAttribute) IsOptional ¶
func (a SetAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (SetAttribute) IsOptionalForImport ¶
func (a SetAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (SetAttribute) IsRequired ¶
func (a SetAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (SetAttribute) IsRequiredForImport ¶
func (a SetAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (SetAttribute) IsSensitive ¶
func (a SetAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (SetAttribute) IsWriteOnly ¶
func (a SetAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (SetAttribute) SetValidators ¶
func (a SetAttribute) SetValidators() []validator.Set
SetValidators returns the Validators field value.
func (SetAttribute) ValidateImplementation ¶
func (a SetAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, resp *fwschema.ValidateImplementationResponse)
ValidateImplementation contains logic for validating the provider-defined implementation of the attribute to prevent unexpected errors or panics. This logic runs during the GetProviderSchema RPC and should never include false positives.
type SetNestedAttribute ¶
type SetNestedAttribute struct {
// NestedObject is the underlying object that contains nested attributes.
// This field must be set.
//
// Nested attributes that contain a dynamic type (i.e. DynamicAttribute) are not supported.
// If underlying dynamic values are required, replace this attribute definition with
// DynamicAttribute instead.
NestedObject NestedAttributeObject
// CustomType enables the use of a custom attribute type in place of the
// default types.SetType of types.ObjectType. When retrieving data, the
// basetypes.SetValuable associated with this custom type must be used in
// place of types.Set.
CustomType basetypes.SetTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Set
}
SetNestedAttribute represents an attribute that is a set of objects where the object attributes can be fully defined, including further nested attributes. When retrieving the value for this attribute, use types.Set as the value type unless the CustomType field is set. The NestedObject field must be set.
Use SetAttribute if the underlying elements are of a single type and do not require definition beyond type information.
Terraform configurations configure this attribute using expressions that return a set of objects or directly via square and curly brace syntax.
# set of objects
example_attribute = [
{
nested_attribute = #...
},
]
Terraform configurations reference this attribute using expressions that accept a set of objects. Sets cannot be indexed in Terraform, therefore an expression is required to access an explicit element.
func (SetNestedAttribute) ApplyTerraform5AttributePathStep ¶
func (a SetNestedAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep returns the Attributes field value if step is ElementKeyValue, otherwise returns an error.
func (SetNestedAttribute) Equal ¶
func (a SetNestedAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a SetNestedAttribute and all fields are equal.
func (SetNestedAttribute) GetDeprecationMessage ¶
func (a SetNestedAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (SetNestedAttribute) GetDescription ¶
func (a SetNestedAttribute) GetDescription() string
GetDescription returns the Description field value.
func (SetNestedAttribute) GetMarkdownDescription ¶
func (a SetNestedAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (SetNestedAttribute) GetNestedObject ¶
func (a SetNestedAttribute) GetNestedObject() fwschema.NestedAttributeObject
GetNestedObject returns the NestedObject field value.
func (SetNestedAttribute) GetNestingMode ¶
func (a SetNestedAttribute) GetNestingMode() fwschema.NestingMode
GetNestingMode always returns NestingModeSet.
func (SetNestedAttribute) GetType ¶
func (a SetNestedAttribute) GetType() attr.Type
GetType returns SetType of ObjectType or CustomType.
func (SetNestedAttribute) IsComputed ¶
func (a SetNestedAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (SetNestedAttribute) IsOptional ¶
func (a SetNestedAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (SetNestedAttribute) IsOptionalForImport ¶
func (a SetNestedAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (SetNestedAttribute) IsRequired ¶
func (a SetNestedAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (SetNestedAttribute) IsRequiredForImport ¶
func (a SetNestedAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (SetNestedAttribute) IsSensitive ¶
func (a SetNestedAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (SetNestedAttribute) IsWriteOnly ¶
func (a SetNestedAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (SetNestedAttribute) SetValidators ¶
func (a SetNestedAttribute) SetValidators() []validator.Set
SetValidators returns the Validators field value.
func (SetNestedAttribute) ValidateImplementation ¶
func (a SetNestedAttribute) ValidateImplementation(ctx context.Context, req fwschema.ValidateImplementationRequest, resp *fwschema.ValidateImplementationResponse)
ValidateImplementation contains logic for validating the provider-defined implementation of the attribute to prevent unexpected errors or panics. This logic runs during the GetProviderSchema RPC and should never include false positives.
type SingleNestedAttribute ¶
type SingleNestedAttribute struct {
// Attributes is the mapping of underlying attribute names to attribute
// definitions. This field must be set.
Attributes map[string]Attribute
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.ObjectType. When retrieving data, the basetypes.ObjectValuable
// associated with this custom type must be used in place of types.Object.
CustomType basetypes.ObjectTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.Object
}
SingleNestedAttribute represents an attribute that is a single object where the object attributes can be fully defined, including further nested attributes. When retrieving the value for this attribute, use types.Object as the value type unless the CustomType field is set. The Attributes field must be set.
Use ObjectAttribute if the underlying attributes do not require definition beyond type information.
Terraform configurations configure this attribute using expressions that return an object or directly via curly brace syntax.
# single object
example_attribute = {
nested_attribute = #...
}
Terraform configurations reference this attribute using expressions that accept an object or an attribute name directly via period syntax:
# object nested_attribute value .example_attribute.nested_attribute
func (SingleNestedAttribute) ApplyTerraform5AttributePathStep ¶
func (a SingleNestedAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep returns the Attributes field value if step is AttributeName, otherwise returns an error.
func (SingleNestedAttribute) Equal ¶
func (a SingleNestedAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a SingleNestedAttribute and all fields are equal.
func (SingleNestedAttribute) GetAttributes ¶
func (a SingleNestedAttribute) GetAttributes() fwschema.UnderlyingAttributes
GetAttributes returns the Attributes field value.
func (SingleNestedAttribute) GetDeprecationMessage ¶
func (a SingleNestedAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (SingleNestedAttribute) GetDescription ¶
func (a SingleNestedAttribute) GetDescription() string
GetDescription returns the Description field value.
func (SingleNestedAttribute) GetMarkdownDescription ¶
func (a SingleNestedAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (SingleNestedAttribute) GetNestedObject ¶
func (a SingleNestedAttribute) GetNestedObject() fwschema.NestedAttributeObject
GetNestedObject returns a generated NestedAttributeObject from the Attributes, CustomType, and Validators field values.
func (SingleNestedAttribute) GetNestingMode ¶
func (a SingleNestedAttribute) GetNestingMode() fwschema.NestingMode
GetNestingMode always returns NestingModeSingle.
func (SingleNestedAttribute) GetType ¶
func (a SingleNestedAttribute) GetType() attr.Type
GetType returns ListType of ObjectType or CustomType.
func (SingleNestedAttribute) IsComputed ¶
func (a SingleNestedAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (SingleNestedAttribute) IsOptional ¶
func (a SingleNestedAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (SingleNestedAttribute) IsOptionalForImport ¶
func (a SingleNestedAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (SingleNestedAttribute) IsRequired ¶
func (a SingleNestedAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (SingleNestedAttribute) IsRequiredForImport ¶
func (a SingleNestedAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (SingleNestedAttribute) IsSensitive ¶
func (a SingleNestedAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (SingleNestedAttribute) IsWriteOnly ¶
func (a SingleNestedAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (SingleNestedAttribute) ObjectValidators ¶
func (a SingleNestedAttribute) ObjectValidators() []validator.Object
ObjectValidators returns the Validators field value.
type StringAttribute ¶
type StringAttribute struct {
// CustomType enables the use of a custom attribute type in place of the
// default basetypes.StringType. When retrieving data, the basetypes.StringValuable
// associated with this custom type must be used in place of types.String.
CustomType basetypes.StringTypable
// Required indicates whether the practitioner must enter a value for
// this attribute or not. Required and Optional cannot both be true.
Required bool
// Optional indicates whether the practitioner can choose to enter a value
// for this attribute or not. Optional and Required cannot both be true.
Optional bool
// Description is used in various tooling, like the language server, to
// give practitioners more information about what this attribute is,
// what it's for, and how it should be used. It should be written as
// plain text, with no special formatting.
Description string
// MarkdownDescription is used in various tooling, like the
// documentation generator, to give practitioners more information
// about what this attribute is, what it's for, and how it should be
// used. It should be formatted using Markdown.
MarkdownDescription string
// DeprecationMessage defines warning diagnostic details to display when
// practitioner configurations use this Attribute. The warning diagnostic
// summary is automatically set to "Attribute Deprecated" along with
// configuration source file and line information.
//
// Set this field to a practitioner actionable message such as:
//
// - "Configure other_attribute instead. This attribute will be removed
// in the next major version of the provider."
// - "Remove this attribute's configuration as it no longer is used and
// the attribute will be removed in the next major version of the
// provider."
//
// Across any Terraform version, there are no warnings raised for
// practitioner configuration values set directly to null, as there is no
// way for the framework to differentiate between an unset and null
// configuration due to how Terraform sends configuration information
// across the protocol.
DeprecationMessage string
// Validators define value validation functionality for the attribute. All
// elements of the slice of AttributeValidator are run, regardless of any
// previous error diagnostics.
//
// Many common use case validators can be found in the
// github.com/hashicorp/terraform-plugin-framework-validators Go module.
//
// If the Type field points to a custom type that implements the
// xattr.TypeWithValidate interface, the validators defined in this field
// are run in addition to the validation defined by the type.
Validators []validator.String
}
StringAttribute represents a schema attribute that is a string. When retrieving the value for this attribute, use types.String as the value type unless the CustomType field is set.
Terraform configurations configure this attribute using expressions that return a string or directly via double quote syntax.
example_attribute = "value"
Terraform configurations reference this attribute using the attribute name.
.example_attribute
func (StringAttribute) ApplyTerraform5AttributePathStep ¶
func (a StringAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
ApplyTerraform5AttributePathStep always returns an error as it is not possible to step further into a StringAttribute.
func (StringAttribute) Equal ¶
func (a StringAttribute) Equal(o fwschema.Attribute) bool
Equal returns true if the given Attribute is a StringAttribute and all fields are equal.
func (StringAttribute) GetDeprecationMessage ¶
func (a StringAttribute) GetDeprecationMessage() string
GetDeprecationMessage returns the DeprecationMessage field value.
func (StringAttribute) GetDescription ¶
func (a StringAttribute) GetDescription() string
GetDescription returns the Description field value.
func (StringAttribute) GetMarkdownDescription ¶
func (a StringAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the MarkdownDescription field value.
func (StringAttribute) GetType ¶
func (a StringAttribute) GetType() attr.Type
GetType returns types.StringType or the CustomType field value if defined.
func (StringAttribute) IsComputed ¶
func (a StringAttribute) IsComputed() bool
IsComputed always returns false as state store schema attributes cannot be Computed.
func (StringAttribute) IsOptional ¶
func (a StringAttribute) IsOptional() bool
IsOptional returns the Optional field value.
func (StringAttribute) IsOptionalForImport ¶
func (a StringAttribute) IsOptionalForImport() bool
IsOptionalForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (StringAttribute) IsRequired ¶
func (a StringAttribute) IsRequired() bool
IsRequired returns the Required field value.
func (StringAttribute) IsRequiredForImport ¶
func (a StringAttribute) IsRequiredForImport() bool
IsRequiredForImport returns false as this behavior is only relevant for managed resource identity schema attributes.
func (StringAttribute) IsSensitive ¶
func (a StringAttribute) IsSensitive() bool
IsSensitive always returns false as state store schema attributes cannot be Sensitive.
func (StringAttribute) IsWriteOnly ¶
func (a StringAttribute) IsWriteOnly() bool
IsWriteOnly always returns false as state store schema attributes cannot be WriteOnly.
func (StringAttribute) StringValidators ¶
func (a StringAttribute) StringValidators() []validator.String
StringValidators returns the Validators field value.
Source Files
¶
- attribute.go
- bool_attribute.go
- doc.go
- dynamic_attribute.go
- float32_attribute.go
- float64_attribute.go
- int32_attribute.go
- int64_attribute.go
- list_attribute.go
- list_nested_attribute.go
- map_attribute.go
- map_nested_attribute.go
- nested_attribute.go
- nested_attribute_object.go
- number_attribute.go
- object_attribute.go
- schema.go
- set_attribute.go
- set_nested_attribute.go
- single_nested_attribute.go
- string_attribute.go