Documentation
¶
Overview ¶
Package identityschema contains all available schema functionality for managed resource identity.
Resource identity schemas define the structure and value types for identity state data. Schemas are implemented via the resource.ResourceWithIdentity type IdentitySchema method.
Index ¶
- type Attribute
- type BoolAttribute
- func (a BoolAttribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- 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 Float32Attribute
- func (a Float32Attribute) ApplyTerraform5AttributePathStep(step tftypes.AttributePathStep) (interface{}, error)
- func (a Float32Attribute) Equal(o fwschema.Attribute) bool
- 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) 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) 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) 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) ValidateImplementation(_ context.Context, req fwschema.ValidateImplementationRequest, ...)
- 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
- 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) Validate() diag.Diagnosticsdeprecated
- func (s Schema) ValidateImplementation(ctx context.Context) diag.Diagnostics
- 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
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Attribute ¶
Attribute define a value field inside the Schema. Implementations in this package include:
- BoolAttribute
- Float32Attribute
- Float64Attribute
- Int32Attribute
- Int64Attribute
- ListAttribute
- NumberAttribute
- StringAttribute
The available attribute types for a resource identity schema are intentionally limited. Nested attributes and blocks are not supported in identity schemas, as well as ListAttribute definitions can only have primitive element types of:
- types.BoolType
- types.Float32Type
- types.Float64Type
- types.Int32Type
- types.Int64Type
- types.NumberType
- types.StringType
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 // RequiredForImport indicates whether the practitioner must enter a value for // this attribute when importing a managed resource by this identity. // RequiredForImport and OptionalForImport cannot both be true. RequiredForImport bool // OptionalForImport indicates whether the practitioner can choose to enter a value // for this attribute when importing a managed resource by this identity. // OptionalForImport and RequiredForImport cannot both be true. OptionalForImport bool // Description is used in various tooling, like the language server or the documentation // generator, to give practitioners more information about what this attribute is, // what it's for, and how it should be used. It can be written as plain text with no // special formatting, or formatted as Markdown. Description string }
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
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) 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 an empty string as identity attributes cannot surface deprecation messages.
func (BoolAttribute) GetDescription ¶
func (a BoolAttribute) GetDescription() string
GetDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain plaintext or Markdown.
func (BoolAttribute) GetMarkdownDescription ¶
func (a BoolAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain Markdown or plaintext.
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 returns false as it's not relevant for identity schemas.
func (BoolAttribute) IsOptional ¶
func (a BoolAttribute) IsOptional() bool
IsOptional returns false as it's not relevant for identity schemas.
func (BoolAttribute) IsOptionalForImport ¶
func (a BoolAttribute) IsOptionalForImport() bool
IsOptionalForImport returns the OptionalForImport field value.
func (BoolAttribute) IsRequired ¶
func (a BoolAttribute) IsRequired() bool
IsRequired returns false as it's not relevant for identity schemas.
func (BoolAttribute) IsRequiredForImport ¶
func (a BoolAttribute) IsRequiredForImport() bool
IsRequiredForImport returns the RequiredForImport field value.
func (BoolAttribute) IsSensitive ¶
func (a BoolAttribute) IsSensitive() bool
IsSensitive returns false as it's not relevant for identity schemas.
func (BoolAttribute) IsWriteOnly ¶
func (a BoolAttribute) IsWriteOnly() bool
IsWriteOnly returns false as it's not relevant for identity schemas.
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 // RequiredForImport indicates whether the practitioner must enter a value for // this attribute when importing a managed resource by this identity. // RequiredForImport and OptionalForImport cannot both be true. RequiredForImport bool // OptionalForImport indicates whether the practitioner can choose to enter a value // for this attribute when importing a managed resource by this identity. // OptionalForImport and RequiredForImport cannot both be true. OptionalForImport bool // Description is used in various tooling, like the language server or the documentation // generator, to give practitioners more information about what this attribute is, // what it's for, and how it should be used. It can be written as plain text with no // special formatting, or formatted as Markdown. Description string }
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
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) GetDeprecationMessage ¶
func (a Float32Attribute) GetDeprecationMessage() string
GetDeprecationMessage returns an empty string as identity attributes cannot surface deprecation messages.
func (Float32Attribute) GetDescription ¶
func (a Float32Attribute) GetDescription() string
GetDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain plaintext or Markdown.
func (Float32Attribute) GetMarkdownDescription ¶
func (a Float32Attribute) GetMarkdownDescription() string
GetMarkdownDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain Markdown or plaintext.
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 returns false as it's not relevant for identity schemas.
func (Float32Attribute) IsOptional ¶
func (a Float32Attribute) IsOptional() bool
IsOptional returns false as it's not relevant for identity schemas.
func (Float32Attribute) IsOptionalForImport ¶
func (a Float32Attribute) IsOptionalForImport() bool
IsOptionalForImport returns the OptionalForImport field value.
func (Float32Attribute) IsRequired ¶
func (a Float32Attribute) IsRequired() bool
IsRequired returns false as it's not relevant for identity schemas.
func (Float32Attribute) IsRequiredForImport ¶
func (a Float32Attribute) IsRequiredForImport() bool
IsRequiredForImport returns the RequiredForImport field value.
func (Float32Attribute) IsSensitive ¶
func (a Float32Attribute) IsSensitive() bool
IsSensitive returns false as it's not relevant for identity schemas.
func (Float32Attribute) IsWriteOnly ¶
func (a Float32Attribute) IsWriteOnly() bool
IsWriteOnly returns false as it's not relevant for identity schemas.
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 // RequiredForImport indicates whether the practitioner must enter a value for // this attribute when importing a managed resource by this identity. // RequiredForImport and OptionalForImport cannot both be true. RequiredForImport bool // OptionalForImport indicates whether the practitioner can choose to enter a value // for this attribute when importing a managed resource by this identity. // OptionalForImport and RequiredForImport cannot both be true. OptionalForImport bool // Description is used in various tooling, like the language server or the documentation // generator, to give practitioners more information about what this attribute is, // what it's for, and how it should be used. It can be written as plain text with no // special formatting, or formatted as Markdown. Description string }
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
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) GetDeprecationMessage ¶
func (a Float64Attribute) GetDeprecationMessage() string
GetDeprecationMessage returns an empty string as identity attributes cannot surface deprecation messages.
func (Float64Attribute) GetDescription ¶
func (a Float64Attribute) GetDescription() string
GetDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain plaintext or Markdown.
func (Float64Attribute) GetMarkdownDescription ¶
func (a Float64Attribute) GetMarkdownDescription() string
GetMarkdownDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain Markdown or plaintext.
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 returns false as it's not relevant for identity schemas.
func (Float64Attribute) IsOptional ¶
func (a Float64Attribute) IsOptional() bool
IsOptional returns false as it's not relevant for identity schemas.
func (Float64Attribute) IsOptionalForImport ¶
func (a Float64Attribute) IsOptionalForImport() bool
IsOptionalForImport returns the OptionalForImport field value.
func (Float64Attribute) IsRequired ¶
func (a Float64Attribute) IsRequired() bool
IsRequired returns false as it's not relevant for identity schemas.
func (Float64Attribute) IsRequiredForImport ¶
func (a Float64Attribute) IsRequiredForImport() bool
IsRequiredForImport returns the RequiredForImport field value.
func (Float64Attribute) IsSensitive ¶
func (a Float64Attribute) IsSensitive() bool
IsSensitive returns false as it's not relevant for identity schemas.
func (Float64Attribute) IsWriteOnly ¶
func (a Float64Attribute) IsWriteOnly() bool
IsWriteOnly returns false as it's not relevant for identity schemas.
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 // RequiredForImport indicates whether the practitioner must enter a value for // this attribute when importing a managed resource by this identity. // RequiredForImport and OptionalForImport cannot both be true. RequiredForImport bool // OptionalForImport indicates whether the practitioner can choose to enter a value // for this attribute when importing a managed resource by this identity. // OptionalForImport and RequiredForImport cannot both be true. OptionalForImport bool // Description is used in various tooling, like the language server or the documentation // generator, to give practitioners more information about what this attribute is, // what it's for, and how it should be used. It can be written as plain text with no // special formatting, or formatted as Markdown. Description string }
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
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 an empty string as identity attributes cannot surface deprecation messages.
func (Int32Attribute) GetDescription ¶
func (a Int32Attribute) GetDescription() string
GetDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain plaintext or Markdown.
func (Int32Attribute) GetMarkdownDescription ¶
func (a Int32Attribute) GetMarkdownDescription() string
GetMarkdownDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain Markdown or plaintext.
func (Int32Attribute) GetType ¶
func (a Int32Attribute) GetType() attr.Type
GetType returns types.Int32Type or the CustomType field value if defined.
func (Int32Attribute) IsComputed ¶
func (a Int32Attribute) IsComputed() bool
IsComputed returns false as it's not relevant for identity schemas.
func (Int32Attribute) IsOptional ¶
func (a Int32Attribute) IsOptional() bool
IsOptional returns false as it's not relevant for identity schemas.
func (Int32Attribute) IsOptionalForImport ¶
func (a Int32Attribute) IsOptionalForImport() bool
IsOptionalForImport returns the OptionalForImport field value.
func (Int32Attribute) IsRequired ¶
func (a Int32Attribute) IsRequired() bool
IsRequired returns false as it's not relevant for identity schemas.
func (Int32Attribute) IsRequiredForImport ¶
func (a Int32Attribute) IsRequiredForImport() bool
IsRequiredForImport returns the RequiredForImport field value.
func (Int32Attribute) IsSensitive ¶
func (a Int32Attribute) IsSensitive() bool
IsSensitive returns false as it's not relevant for identity schemas.
func (Int32Attribute) IsWriteOnly ¶
func (a Int32Attribute) IsWriteOnly() bool
IsWriteOnly returns false as it's not relevant for identity schemas.
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 // RequiredForImport indicates whether the practitioner must enter a value for // this attribute when importing a managed resource by this identity. // RequiredForImport and OptionalForImport cannot both be true. RequiredForImport bool // OptionalForImport indicates whether the practitioner can choose to enter a value // for this attribute when importing a managed resource by this identity. // OptionalForImport and RequiredForImport cannot both be true. OptionalForImport bool // Description is used in various tooling, like the language server or the documentation // generator, to give practitioners more information about what this attribute is, // what it's for, and how it should be used. It can be written as plain text with no // special formatting, or formatted as Markdown. Description string }
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
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 an empty string as identity attributes cannot surface deprecation messages.
func (Int64Attribute) GetDescription ¶
func (a Int64Attribute) GetDescription() string
GetDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain plaintext or Markdown.
func (Int64Attribute) GetMarkdownDescription ¶
func (a Int64Attribute) GetMarkdownDescription() string
GetMarkdownDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain Markdown or plaintext.
func (Int64Attribute) GetType ¶
func (a Int64Attribute) GetType() attr.Type
GetType returns types.Int64Type or the CustomType field value if defined.
func (Int64Attribute) IsComputed ¶
func (a Int64Attribute) IsComputed() bool
IsComputed returns false as it's not relevant for identity schemas.
func (Int64Attribute) IsOptional ¶
func (a Int64Attribute) IsOptional() bool
IsOptional returns false as it's not relevant for identity schemas.
func (Int64Attribute) IsOptionalForImport ¶
func (a Int64Attribute) IsOptionalForImport() bool
IsOptionalForImport returns the OptionalForImport field value.
func (Int64Attribute) IsRequired ¶
func (a Int64Attribute) IsRequired() bool
IsRequired returns false as it's not relevant for identity schemas.
func (Int64Attribute) IsRequiredForImport ¶
func (a Int64Attribute) IsRequiredForImport() bool
IsRequiredForImport returns the RequiredForImport field value.
func (Int64Attribute) IsSensitive ¶
func (a Int64Attribute) IsSensitive() bool
IsSensitive returns false as it's not relevant for identity schemas.
func (Int64Attribute) IsWriteOnly ¶
func (a Int64Attribute) IsWriteOnly() bool
IsWriteOnly returns false as it's not relevant for identity schemas.
type ListAttribute ¶
type ListAttribute struct { // ElementType is the type for all elements of the list. This field must be // set. // // ElementType must be a primitive, which are: // - types.BoolType // - types.Float32Type // - types.Float64Type // - types.Int32Type // - types.Int64Type // - types.NumberType // - types.StringType 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 // RequiredForImport indicates whether the practitioner must enter a value for // this attribute when importing a managed resource by this identity. // RequiredForImport and OptionalForImport cannot both be true. RequiredForImport bool // OptionalForImport indicates whether the practitioner can choose to enter a value // for this attribute when importing a managed resource by this identity. // OptionalForImport and RequiredForImport cannot both be true. OptionalForImport bool // Description is used in various tooling, like the language server or the documentation // generator, to give practitioners more information about what this attribute is, // what it's for, and how it should be used. It can be written as plain text with no // special formatting, or formatted as Markdown. Description string }
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.
In identity schemas, ListAttribute is only permitted to have a primitive ElementType, which are:
- types.BoolType
- types.Float32Type
- types.Float64Type
- types.Int32Type
- types.Int64Type
- types.NumberType
- types.StringType
Terraform configurations configure this attribute using expressions that return a list or directly via square brace syntax.
# list of strings example_attribute = ["first", "second"]
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 an empty string as identity attributes cannot surface deprecation messages.
func (ListAttribute) GetDescription ¶
func (a ListAttribute) GetDescription() string
GetDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain plaintext or Markdown.
func (ListAttribute) GetMarkdownDescription ¶
func (a ListAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain Markdown or plaintext.
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 returns false as it's not relevant for identity schemas.
func (ListAttribute) IsOptional ¶
func (a ListAttribute) IsOptional() bool
IsOptional returns false as it's not relevant for identity schemas.
func (ListAttribute) IsOptionalForImport ¶
func (a ListAttribute) IsOptionalForImport() bool
IsOptionalForImport returns the OptionalForImport field value.
func (ListAttribute) IsRequired ¶
func (a ListAttribute) IsRequired() bool
IsRequired returns false as it's not relevant for identity schemas.
func (ListAttribute) IsRequiredForImport ¶
func (a ListAttribute) IsRequiredForImport() bool
IsRequiredForImport returns the RequiredForImport field value.
func (ListAttribute) IsSensitive ¶
func (a ListAttribute) IsSensitive() bool
IsSensitive returns false as it's not relevant for identity schemas.
func (ListAttribute) IsWriteOnly ¶
func (a ListAttribute) IsWriteOnly() bool
IsWriteOnly returns false as it's not relevant for identity schemas.
func (ListAttribute) ValidateImplementation ¶
func (a ListAttribute) ValidateImplementation(_ 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 GetResourceIdentitySchemas RPC and should never include false positives.
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 // RequiredForImport indicates whether the practitioner must enter a value for // this attribute when importing a managed resource by this identity. // RequiredForImport and OptionalForImport cannot both be true. RequiredForImport bool // OptionalForImport indicates whether the practitioner can choose to enter a value // for this attribute when importing a managed resource by this identity. // OptionalForImport and RequiredForImport cannot both be true. OptionalForImport bool // Description is used in various tooling, like the language server or the documentation // generator, to give practitioners more information about what this attribute is, // what it's for, and how it should be used. It can be written as plain text with no // special formatting, or formatted as Markdown. Description string }
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
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 an empty string as identity attributes cannot surface deprecation messages.
func (NumberAttribute) GetDescription ¶
func (a NumberAttribute) GetDescription() string
GetDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain plaintext or Markdown.
func (NumberAttribute) GetMarkdownDescription ¶
func (a NumberAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain Markdown or plaintext.
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 returns false as it's not relevant for identity schemas.
func (NumberAttribute) IsOptional ¶
func (a NumberAttribute) IsOptional() bool
IsOptional returns false as it's not relevant for identity schemas.
func (NumberAttribute) IsOptionalForImport ¶
func (a NumberAttribute) IsOptionalForImport() bool
IsOptionalForImport returns the OptionalForImport field value.
func (NumberAttribute) IsRequired ¶
func (a NumberAttribute) IsRequired() bool
IsRequired returns false as it's not relevant for identity schemas.
func (NumberAttribute) IsRequiredForImport ¶
func (a NumberAttribute) IsRequiredForImport() bool
IsRequiredForImport returns the RequiredForImport field value.
func (NumberAttribute) IsSensitive ¶
func (a NumberAttribute) IsSensitive() bool
IsSensitive returns false as it's not relevant for identity schemas.
func (NumberAttribute) IsWriteOnly ¶
func (a NumberAttribute) IsWriteOnly() bool
IsWriteOnly returns false as it's not relevant for identity schemas.
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. Attributes map[string]Attribute // Version indicates the current version of the resource identity schema. Resource // identity schema versioning enables identity state upgrades in conjunction with the // [resource.ResourceWithUpgradeIdentity] interface. Versioning is only // required if there is a breaking change involving existing identity state data, // such as changing an attribute 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 resource identity data. This type is used as the resource.IdentitySchemaResponse type IdentitySchema field, which is implemented by the resource.ResourceWithIdentity type IdentitySchema method.
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) GetDeprecationMessage ¶
GetDeprecationMessage returns an empty string as identity schemas cannot surface deprecation messages.
func (Schema) GetDescription ¶
GetDescription returns an empty string as identity schemas cannot surface descriptions.
func (Schema) GetMarkdownDescription ¶
GetMarkdownDescription returns an empty string as identity schemas cannot surface descriptions.
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) Validate
deprecated
func (s Schema) Validate() diag.Diagnostics
Validate verifies that the schema is not using a reserved field name for a top-level attribute.
Deprecated: Use the ValidateImplementation method instead.
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 GetResourceIdentitySchemas RPC, or via provider-defined unit testing, and should never include false positives.
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 // RequiredForImport indicates whether the practitioner must enter a value for // this attribute when importing a managed resource by this identity. // RequiredForImport and OptionalForImport cannot both be true. RequiredForImport bool // OptionalForImport indicates whether the practitioner can choose to enter a value // for this attribute when importing a managed resource by this identity. // OptionalForImport and RequiredForImport cannot both be true. OptionalForImport bool // Description is used in various tooling, like the language server or the documentation // generator, to give practitioners more information about what this attribute is, // what it's for, and how it should be used. It can be written as plain text with no // special formatting, or formatted as Markdown. Description 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"
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 an empty string as identity attributes cannot surface deprecation messages.
func (StringAttribute) GetDescription ¶
func (a StringAttribute) GetDescription() string
GetDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain plaintext or Markdown.
func (StringAttribute) GetMarkdownDescription ¶
func (a StringAttribute) GetMarkdownDescription() string
GetMarkdownDescription returns the Description field value. For identity attributes, there is only a single description field that is permitted to contain Markdown or plaintext.
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 returns false as it's not relevant for identity schemas.
func (StringAttribute) IsOptional ¶
func (a StringAttribute) IsOptional() bool
IsOptional returns false as it's not relevant for identity schemas.
func (StringAttribute) IsOptionalForImport ¶
func (a StringAttribute) IsOptionalForImport() bool
IsOptionalForImport returns the OptionalForImport field value.
func (StringAttribute) IsRequired ¶
func (a StringAttribute) IsRequired() bool
IsRequired returns false as it's not relevant for identity schemas.
func (StringAttribute) IsRequiredForImport ¶
func (a StringAttribute) IsRequiredForImport() bool
IsRequiredForImport returns the RequiredForImport field value.
func (StringAttribute) IsSensitive ¶
func (a StringAttribute) IsSensitive() bool
IsSensitive returns false as it's not relevant for identity schemas.
func (StringAttribute) IsWriteOnly ¶
func (a StringAttribute) IsWriteOnly() bool
IsWriteOnly returns false as it's not relevant for identity schemas.