# Functions
ParseInstanceKey returns the instance key corresponding to the given value, which must be known and non-null.
ParseRef attempts to extract a referencable address from the prefix of the given traversal, which must be an absolute traversal or this function will panic.
# Constants
DataResourceMode indicates a data resource, as defined by "data" blocks in configuration.
IntKeyType is a type of IntKey instance key.
InvalidResourceMode is the zero value of ResourceMode and is not a valid resource mode.
ManagedResourceMode indicates a managed resource, as defined by "resource" blocks in configuration.
NoKeyType is a type of NoKey instance key.
Self is the address of the special object "self" that behaves as an alias for a containing object currently in scope.
StringKeyType is a type of StringKey instance key.
# Variables
NoKey represents the absense of an InstanceKey, for the single instance of a configuration object that does not use "count" or "for_each" at all.
# Structs
CountAttr is the address of an attribute of the "count" object in the interpolation scope, like "count.index".
ForEachAttr is the address of an attribute referencing the current "for_each" object in the interpolation scope, addressed using the "each" keyword, ex.
InputVariable is the address of an input variable.
LocalValue is the address of a local value.
ModuleCall is the address of a call from the current module to a child module.
ModuleCallInstance is the address of one instance of a module created from a module call, which might create multiple instances using "count" or "for_each" arguments.
ModuleCallInstanceOutput is the address of a particular named output produced by an instance of a module call.
PathAttr is the address of an attribute of the "path" object in the interpolation scope, like "path.module".
Reference describes a reference to an address with source location information.
Resource is an address for a resource block within configuration, which contains potentially-multiple resource instances if that configuration block uses "count" or "for_each".
ResourceInstance is an address for a specific instance of a resource.
TerraformAttr is the address of an attribute of the "terraform" object in the interpolation scope, like "terraform.workspace".
# Interfaces
InstanceKey represents the key of an instance within an object that contains multiple instances due to using "count" or "for_each" arguments in configuration.
Referenceable is an interface implemented by all address types that can appear as references in configuration language expressions.
# Type aliases
InstanceKeyType represents the different types of instance key that are supported.
IntKey is the InstanceKey representation representing integer indices, as used when the "count" argument is specified or if for_each is used with a sequence type.
Module represents the structure of the module tree.
ResourceMode defines which lifecycle applies to a given resource.
StringKey is the InstanceKey representation representing string indices, as used when the "for_each" argument is specified with a map or object type.