identityschema

package
v1.15.0 Latest Latest
Warning

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

Go to latest
Published: May 16, 2025 License: MPL-2.0 Imports: 9 Imported by: 1

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

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Attribute

type Attribute interface {
	fwschema.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

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

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

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

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

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

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

func (s Schema) GetAttributes() map[string]fwschema.Attribute

GetAttributes returns the Attributes field value.

func (Schema) GetBlocks

func (s Schema) GetBlocks() map[string]fwschema.Block

GetBlocks returns an empty map as it's not relevant for identity schemas.

func (Schema) GetDeprecationMessage

func (s Schema) GetDeprecationMessage() string

GetDeprecationMessage returns an empty string as identity schemas cannot surface deprecation messages.

func (Schema) GetDescription

func (s Schema) GetDescription() string

GetDescription returns an empty string as identity schemas cannot surface descriptions.

func (Schema) GetMarkdownDescription

func (s Schema) GetMarkdownDescription() string

GetMarkdownDescription returns an empty string as identity schemas cannot surface descriptions.

func (Schema) GetVersion

func (s Schema) GetVersion() int64

GetVersion returns the Version field value.

func (Schema) Type

func (s Schema) Type() attr.Type

Type returns the framework type of the schema.

func (Schema) TypeAtPath

func (s Schema) TypeAtPath(ctx context.Context, p path.Path) (attr.Type, diag.Diagnostics)

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

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.

Jump to

Keyboard shortcuts

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