# Functions

NewAttributePath returns an empty AttributePath, ready to have steps added to it using WithElementKeyString, WithElementKeyInt, WithElementKeyValue, or WithAttributeName.
NewAttributePathWithSteps returns an AttributePath populated with the passed AttributePathSteps.
NewValue returns a Value constructed using the specified Type and stores the passed value in it.
ParseJSONType returns a Type from its JSON representation.
Transform uses a callback to mutate a Value.
TypeFromElements returns the common type that the passed elements all have in common.
ValidateValue checks that the Go type passed as `val` can be used as a value for the Type passed as `t`.
ValueFromJSON returns a Value from the JSON-encoded bytes, using the provided Type to determine what shape the Value should be.
ValueFromJSONWithOpts is identical to ValueFromJSON with the exception that it accepts ValueFromJSONOpts which can be used to modify the unmarshalling behaviour, such as ignoring undefined attributes, for instance.
ValueFromMsgPack returns a Value from the MsgPack-encoded bytes, using the provided Type to determine what shape the Value should be.
Walk traverses a Value, calling the passed function for every element and attribute in the Value.
WalkAttributePath will return the Type or Value that `path` is pointing to, using `in` as the root.

# Constants

UnknownValue represents a value that is not yet known.

# Variables

Bool is a primitive type in Terraform that represents a true or false boolean value.
DynamicPseudoType is a pseudo-type in Terraform's type system that is used as a wildcard type.
ErrInvalidStep is returned when an AttributePath has the wrong kind of AttributePathStep for the type that WalkAttributePath is operating on.
ErrNotAttributePathStepper is returned when a type that doesn't full the AttributePathStepper interface is passed to WalkAttributePath.
Number is a primitive type in Terraform that represents a real number.
String is a primitive type in Terraform that represents a UTF-8 string of bytes.

# Structs

AttributePath is a type that can point to a specific value within an aggregate Terraform value.
AttributePathError represents an error associated with part of a tftypes.Value, indicated by the Path property.
List is a Terraform type representing an ordered collection of elements, all of the same type.
Map is a Terraform type representing an unordered collection of elements, all of the same type, each identifiable with a unique string key.
Object is a Terraform type representing an unordered collection of attributes, potentially of differing types, each identifiable with a unique string name.
Set is a Terraform type representing an unordered collection of unique elements, all of the same type.
Tuple is a Terraform type representing an ordered collection of elements, potentially of differing types.
Value is a piece of data from Terraform or being returned to Terraform.
ValueDiff expresses a subset of a Value that is different between two Values.
ValueFromJSONOpts contains options that can be used to modify the behaviour when unmarshalling JSON.

# Interfaces

AttributePathStep is an intentionally unimplementable interface that functions as an enum, allowing us to use different strongly-typed step types as a generic "step" type.
AttributePathStepper is an interface that types can implement to make them traversable by WalkAttributePath, allowing providers to retrieve the specific value an AttributePath is pointing to.
Type is an interface representing a Terraform type.
ValueConverter is an interface that provider-defined types can implement to control how Value.As will convert a Value into that type.
ValueCreator is an interface that provider-defined types can implement to control how NewValue will convert that type into a Value.

# Type aliases

AttributeName is an AttributePathStep implementation that indicates the next step in the AttributePath is to select an attribute.
ElementKeyInt is an AttributePathStep implementation that indicates the next step in the AttributePath is to select an element using an int64 key.
ElementKeyString is an AttributePathStep implementation that indicates the next step in the AttributePath is to select an element using a string key.
ElementKeyValue is an AttributePathStep implementation that indicates the next step in the AttributePath is to select an element using the element itself as a key.