# Packages

Package fwxschema implements extra framework-based schema functionality on top of base Terraform attribute functionality.

# Functions

No description provided by the author
No description provided by the author
AttributeMissingAttributeTypesDiag returns an error diagnostic to provider developers about missing the AttributeTypes field on an Attribute implementation.
AttributeMissingElementTypeDiag returns an error diagnostic to provider developers about missing the ElementType field on an Attribute implementation.
AttributesEqual is a helper function to perform equality testing on two Attribute.
BlockPathExpressions recursively returns a slice of the current path expression and all underlying path expressions which represent a Block.
BlocksEqual is a helper function to perform equality testing on two Block.
IsReservedProviderAttributeName returns an error diagnostic if the given attribute path represents a root attribute name in ReservedProviderAttributeNames.
IsReservedResourceAttributeName returns an error diagnostic if the given attribute path represents a root attribute name in ReservedResourceAttributeNames.
IsValidAttributeName returns an error diagnostic if the given attribute path has an invalid attribute name according to ValidAttributeNameRegex.
NestedAttributeObjectApplyTerraform5AttributePathStep is a helper function to perform base tftypes.AttributePathStepper handling using the GetAttributes method.
NestedAttributeObjectEqual is a helper function to perform base equality testing on two NestedAttributeObject.
NestedAttributeObjectType is a helper function to perform base type handling using the GetAttributes and GetBlocks methods.
NestedAttributesEqual is a helper function to perform equality testing on two NestedAttribute.
NestedBlockObjectApplyTerraform5AttributePathStep is a helper function to perform base tftypes.AttributePathStepper handling using the GetAttributes and GetBlocks methods.
NestedBlockObjectEqual is a helper function to perform base equality testing on two NestedBlockObject.
NestedBlockObjectType is a helper function to perform base type handling using the GetAttributes and GetBlocks methods.
SchemaApplyTerraform5AttributePathStep is a helper function to perform base tftypes.AttributePathStepper handling using the GetAttributes and GetBlocks methods.
SchemaAttributeAtPath is a helper function to perform base type handling using the AttributeAtTerraformPath method.
SchemaAttributeAtTerraformPath is a helper function to perform base type handling using the tftypes.AttributePathStepper interface.
SchemaBlockPathExpressions returns a slice of all path expressions which represent a Block according to the Schema.
SchemaType is a helper function to perform base type handling using the GetAttributes and GetBlocks methods.
SchemaTypeAtPath is a helper function to perform base type handling using the TypeAtTerraformPath method.
SchemaTypeAtTerraformPath is a helper function to perform base type handling using the tftypes.AttributePathStepper interface.
ValidateImplementation contains the generic Attribute implementation validation logic for all types.
ValidateBlockImplementation contains the generic Block implementation validation logic for all types.

# Constants

BlockNestingModeList is for attributes that represent a list of objects, with multiple instances of those attributes nested inside a list under another attribute.
BlockNestingModeSet is for attributes that represent a set of objects, with multiple, unique instances of those attributes nested inside a set under another attribute.
BlockNestingModeSingle is for attributes that represent a single object.
BlockNestingModeUnknown is an invalid nesting mode, used to catch when a nesting mode is expected and not set.
NestingModeList is for attributes that represent a list of objects, with multiple instances of those attributes nested inside a list under another attribute.
NestingModeMap is for attributes that represent a map of objects, with multiple instances of those attributes, each associated with a unique string key, nested inside a map under another attribute.
NestingModeSet is for attributes that represent a set of objects, with multiple, unique instances of those attributes nested inside a set under another attribute.
NestingModeSingle is for attributes that represent a struct or object, a single instance of those attributes directly nested under another attribute.
NestingModeUnknown is an invalid nesting mode, used to catch when a nesting mode is expected and not set.

# Variables

ErrPathInsideAtomicAttribute is used when AttributeAtPath is called on a path that doesn't have a schema associated with it, because it's an element, attribute, or block of a complex type, not a nested attribute.
ErrPathInsideDynamicAttribute is used when AttributeAtPath is called on a path that doesn't have a schema associated with it because it's nested in a dynamic attribute.
ErrPathIsBlock is used when AttributeAtPath is called on a path is a block, not an attribute.
NumericPrefixRegex is a regular expression which matches whether a string begins with a numeric (0-9).
ReservedProviderAttributeNames contains the list of root attribute names which should not be included in provider-defined provider schemas since they require practitioners to implement special syntax in their configurations to be usable by the provider.
ReservedResourceAttributeNames contains the list of root attribute names which should not be included in provider-defined managed resource and data source schemas since they require practitioners to implement special syntax in their configurations to be usable by the provider resource.
ValidAttributeNameRegex contains the regular expression to validate attribute names, which are considered [identifiers] in the Terraform configuration language.

# Structs

ValidateImplementationRequest contains the information available during a ValidateImplementation call to validate the Attribute definition.
ValidateImplementationResponse contains the returned data from a ValidateImplementation method call to validate the Attribute implementation.

# Interfaces

Attribute is the core interface required for implementing Terraform schema functionality that can accept a value.
AttributeWithBoolDefaultValue is an optional interface on Attribute which enables Bool default value support.
AttributeWithDynamicDefaultValue is an optional interface on Attribute which enables Dynamic default value support.
AttributeWithFloat32DefaultValue is an optional interface on Attribute which enables Float32 default value support.
AttributeWithFloat64DefaultValue is an optional interface on Attribute which enables Float64 default value support.
AttributeWithInt32DefaultValue is an optional interface on Attribute which enables Int32 default value support.
AttributeWithInt64DefaultValue is an optional interface on Attribute which enables Int64 default value support.
AttributeWithListDefaultValue is an optional interface on Attribute which enables List default value support.
AttributeWithMapDefaultValue is an optional interface on Attribute which enables Map default value support.
AttributeWithNumberDefaultValue is an optional interface on Attribute which enables Number default value support.
AttributeWithObjectDefaultValue is an optional interface on Attribute which enables Object default value support.
AttributeWithSetDefaultValue is an optional interface on Attribute which enables Set default value support.
AttributeWithStringDefaultValue is an optional interface on Attribute which enables String default value support.
AttributeWithValidateImplementation is an optional interface on Attribute which enables validation of the provider-defined implementation for the Attribute.
Block is the core interface required for implementing Terraform schema functionality that structurally holds attributes and blocks.
BlockWithValidateImplementation is an optional interface on Block which enables validation of the provider-defined implementation for the Block.
NestedAttribute defines a schema attribute that contains nested attributes.
NestedAttributeObject represents the Object inside a NestedAttribute.
NestedBlockObject represents the Object inside a Block.
Schema is the core interface required for data sources, providers, and resources.

# Type aliases

BlockNestingMode is an enum type of the ways attributes and blocks can be nested in a block.
NestingMode is an enum type of the ways nested attributes can be nested in an attribute.
UnderlyingAttributes represents attributes under a nested attribute.