 Source Files
      ¶
      Source Files
      ¶
    
  
       Directories
      ¶
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| internal
       | |
| 
          
            addrs
            
            
          
           Package addrs contains types that represent "addresses", which are references to specific objects within a Terraform configuration or state. | Package addrs contains types that represent "addresses", which are references to specific objects within a Terraform configuration or state. | 
| 
          
            backend
            
            
          
           Package backend provides interfaces that the CLI uses to interact with Terraform. | Package backend provides interfaces that the CLI uses to interact with Terraform. | 
| 
          
            backend/init
            
            
          
           Package init contains the list of backends that can be initialized and basic helper functions for initializing those backends. | Package init contains the list of backends that can be initialized and basic helper functions for initializing those backends. | 
| 
          
            backend/remote-state/gcs
            
            
          
           Package gcs implements remote storage of state on Google Cloud Storage (GCS). | Package gcs implements remote storage of state on Google Cloud Storage (GCS). | 
| 
          
            checks
            
            
          
           Package checks contains the models for representing various kinds of declarative condition checks that can be defined in a Terraform module and then evaluated and reported by Terraform Core during plan and apply operations. | Package checks contains the models for representing various kinds of declarative condition checks that can be defined in a Terraform module and then evaluated and reported by Terraform Core during plan and apply operations. | 
| 
          
            command/cliconfig
            
            
          
           Package cliconfig has the types representing and the logic to load CLI-level configuration settings. | Package cliconfig has the types representing and the logic to load CLI-level configuration settings. | 
| 
          
            command/clistate
            
            
          
           Package state exposes common helpers for working with state from the CLI. | Package state exposes common helpers for working with state from the CLI. | 
| 
          
            command/e2etest
            
            
          
           Package e2etest contains a set of tests that run against a real Terraform binary, compiled on the fly at the start of the test run. | Package e2etest contains a set of tests that run against a real Terraform binary, compiled on the fly at the start of the test run. | 
| 
          
            command/format
            
            
          
           Package format contains helpers for formatting various Terraform structures for human-readabout output. | Package format contains helpers for formatting various Terraform structures for human-readabout output. | 
| 
          
            command/jsonchecks
            
            
          
           Package jsonchecks implements the common JSON representation of check results/statuses that we use across both the JSON plan and JSON state representations. | Package jsonchecks implements the common JSON representation of check results/statuses that we use across both the JSON plan and JSON state representations. | 
| 
          
            command/jsonconfig
            
            
          
           Package jsonconfig implements methods for outputting a configuration snapshot in machine-readable json format | Package jsonconfig implements methods for outputting a configuration snapshot in machine-readable json format | 
| 
          
            command/jsonformat/computed
            
            
          
           Package computed contains types that represent the computed diffs for Terraform blocks, attributes, and outputs. | Package computed contains types that represent the computed diffs for Terraform blocks, attributes, and outputs. | 
| 
          
            command/jsonplan
            
            
          
           Package jsonplan implements methods for outputting a plan in a machine-readable json format | Package jsonplan implements methods for outputting a plan in a machine-readable json format | 
| 
          
            command/jsonprovider
            
            
          
           Package jsonprovider contains types and functions to marshal terraform provider schemas into a json formatted output. | Package jsonprovider contains types and functions to marshal terraform provider schemas into a json formatted output. | 
| 
          
            command/jsonstate
            
            
          
           Package jsonstate implements methods for outputting a state in a machine-readable json format | Package jsonstate implements methods for outputting a state in a machine-readable json format | 
| 
          
            command/workdir
            
            
          
           Package workdir models the various local artifacts and state we keep inside a Terraform "working directory". | Package workdir models the various local artifacts and state we keep inside a Terraform "working directory". | 
| 
          
            configs
            
            
          
           Package configs contains types that represent Terraform configurations and the different elements thereof. | Package configs contains types that represent Terraform configurations and the different elements thereof. | 
| 
          
            configs/configload
            
            
          
           Package configload knows how to install modules into the .terraform/modules directory and to load modules from those installed locations. | Package configload knows how to install modules into the .terraform/modules directory and to load modules from those installed locations. | 
| 
          
            configs/configschema
            
            
          
           Package configschema contains types for describing the expected structure of a configuration block whose shape is not known until runtime. | Package configschema contains types for describing the expected structure of a configuration block whose shape is not known until runtime. | 
| 
          
            depsfile
            
            
          
           Package depsfile contains the logic for reading and writing Terraform's dependency lock and development override configuration files. | Package depsfile contains the logic for reading and writing Terraform's dependency lock and development override configuration files. | 
| 
          
            earlyconfig
            
            
          
           Package earlyconfig is a specialized alternative to the top-level "configs" package that does only shallow processing of configuration and is therefore able to be much more liberal than the full config loader in what it accepts. | Package earlyconfig is a specialized alternative to the top-level "configs" package that does only shallow processing of configuration and is therefore able to be much more liberal than the full config loader in what it accepts. | 
| 
          
            experiments
            
            
          
           Package experiments contains the models and logic for opt-in experiments that can be activated for a particular Terraform module. | Package experiments contains the models and logic for opt-in experiments that can be activated for a particular Terraform module. | 
| 
          
            getmodules
            
            
          
           Package getmodules contains the low-level functionality for fetching remote module packages. | Package getmodules contains the low-level functionality for fetching remote module packages. | 
| 
          
            getproviders
            
            
          
           Package getproviders is the lowest-level provider automatic installation functionality. | Package getproviders is the lowest-level provider automatic installation functionality. | 
| 
          
            initwd
            
            
          
           Package initwd contains various helper functions used by the "terraform init" command to initialize a working directory. | Package initwd contains various helper functions used by the "terraform init" command to initialize a working directory. | 
| 
          
            ipaddr
            
            
          
           Package ipaddr is a fork of a subset of the Go standard "net" package which retains parsing behaviors from Go 1.16 or earlier. | Package ipaddr is a fork of a subset of the Go standard "net" package which retains parsing behaviors from Go 1.16 or earlier. | 
| 
          
            lang
            
            
          
           Package lang deals with the runtime aspects of Terraform's configuration language, with concerns such as expression evaluation. | Package lang deals with the runtime aspects of Terraform's configuration language, with concerns such as expression evaluation. | 
| 
          
            lang/blocktoattr
            
            
          
           Package blocktoattr includes some helper functions that can perform preprocessing on a HCL body where a configschema.Block schema is available in order to allow list and set attributes defined in the schema to be optionally written by the user as block syntax. | Package blocktoattr includes some helper functions that can perform preprocessing on a HCL body where a configschema.Block schema is available in order to allow list and set attributes defined in the schema to be optionally written by the user as block syntax. | 
| 
          
            lang/globalref
            
            
          
           Package globalref is home to some analysis algorithms that aim to answer questions about references between objects and object attributes across an entire configuration. | Package globalref is home to some analysis algorithms that aim to answer questions about references between objects and object attributes across an entire configuration. | 
| 
          
            lang/types
            
            
          
           Package types contains non-standard cty types used only within Terraform. | Package types contains non-standard cty types used only within Terraform. | 
| 
          
            legacy/helper/acctest
            
            
          
           Package acctest contains for Terraform Acceptance Tests | Package acctest contains for Terraform Acceptance Tests | 
| 
          
            legacy/helper/schema
            
            
          
           Package schema is a legacy package that used to represent the SDK, which is now its own library external to Terraform Core https://github.com/hashicorp/terraform-plugin-sdk Some of it is still used by Terraform's remote state backends, but this entire package should be removed in the future. | Package schema is a legacy package that used to represent the SDK, which is now its own library external to Terraform Core https://github.com/hashicorp/terraform-plugin-sdk Some of it is still used by Terraform's remote state backends, but this entire package should be removed in the future. | 
| 
          
            modsdir
            
            
          
           Package modsdir is an internal package containing the model types used to represent the manifest of modules in a local modules cache directory. | Package modsdir is an internal package containing the model types used to represent the manifest of modules in a local modules cache directory. | 
| 
          
            moduledeps
            
            
          
           Package moduledeps contains types that can be used to describe the providers required for all of the modules in a module tree. | Package moduledeps contains types that can be used to describe the providers required for all of the modules in a module tree. | 
| 
          
            moduletest
            
            
          
           Package moduletest contains the support code for some experimental features we're using to evaluate strategies for having an opinionated approach to testing of Terraform modules. | Package moduletest contains the support code for some experimental features we're using to evaluate strategies for having an opinionated approach to testing of Terraform modules. | 
| 
          
            plans
            
            
          
           Package plans contains the types that are used to represent Terraform plans. | Package plans contains the types that are used to represent Terraform plans. | 
| 
          
            plans/internal/planproto
            
            
          
           Package planproto is home to the Go stubs generated from the tfplan protobuf schema. | Package planproto is home to the Go stubs generated from the tfplan protobuf schema. | 
| 
          
            plans/objchange
            
            
          
           Package objchange deals with the business logic of taking a prior state value and a config value and producing a proposed new merged value, along with other related rules in this domain. | Package objchange deals with the business logic of taking a prior state value and a config value and producing a proposed new merged value, along with other related rules in this domain. | 
| 
          
            plans/planfile
            
            
          
           Package planfile deals with the file format used to serialize plans to disk and then deserialize them back into memory later. | Package planfile deals with the file format used to serialize plans to disk and then deserialize them back into memory later. | 
| 
          
            plugin/mock_proto
            
            
          
           Package mock_tfplugin5 is a generated GoMock package. | Package mock_tfplugin5 is a generated GoMock package. | 
| 
          
            plugin6/mock_proto
            
            
          
           Package mock_tfplugin6 is a generated GoMock package. | Package mock_tfplugin6 is a generated GoMock package. | 
| 
          
            provider-simple
            
            
          
           simple provider a minimal provider implementation for testing | simple provider a minimal provider implementation for testing | 
| 
          
            provider-simple-v6
            
            
          
           simple provider a minimal provider implementation for testing | simple provider a minimal provider implementation for testing | 
| 
          
            provider-simple-v6/main
            
            command
          
          
         | |
| 
          
            provider-simple/main
            
            command
          
          
         | |
| 
          
            provider-terraform/main
            
            command
          
          
         | |
| 
          
            providercache
            
            
          
           Package providercache contains the logic for auto-installing providers from packages obtained elsewhere, and for managing the local directories that serve as global or single-configuration caches of those auto-installed providers. | Package providercache contains the logic for auto-installing providers from packages obtained elsewhere, and for managing the local directories that serve as global or single-configuration caches of those auto-installed providers. | 
| 
          
            providers
            
            
          
           Package providers contains the interface and primary types required to implement a Terraform resource provider. | Package providers contains the interface and primary types required to implement a Terraform resource provider. | 
| 
          
            provisioner-local-exec/main
            
            command
          
          
         | |
| 
          
            provisioners
            
            
          
           Package provisioners contains the interface and primary types to implement a Terraform resource provisioner. | Package provisioners contains the interface and primary types to implement a Terraform resource provisioner. | 
| 
          
            registry/regsrc
            
            
          
           Package regsrc provides helpers for working with source strings that identify resources within a Terraform registry. | Package regsrc provides helpers for working with source strings that identify resources within a Terraform registry. | 
| 
          
            repl
            
            
          
           Package repl provides the structs and functions necessary to run REPL for Terraform. | Package repl provides the structs and functions necessary to run REPL for Terraform. | 
| 
          
            replacefile
            
            
          
           Package replacefile is a small helper package focused directly at the problem of atomically "renaming" one file over another one. | Package replacefile is a small helper package focused directly at the problem of atomically "renaming" one file over another one. | 
| 
          
            states
            
            
          
           Package states contains the types that are used to represent Terraform states. | Package states contains the types that are used to represent Terraform states. | 
| 
          
            states/statefile
            
            
          
           Package statefile deals with the file format used to serialize states for persistent storage and then deserialize them into memory again later. | Package statefile deals with the file format used to serialize states for persistent storage and then deserialize them into memory again later. | 
| 
          
            states/statemgr
            
            
          
           Package statemgr defines the interfaces and some supporting functionality for "state managers", which are components responsible for writing state to some persistent storage and then later retrieving it. | Package statemgr defines the interfaces and some supporting functionality for "state managers", which are components responsible for writing state to some persistent storage and then later retrieving it. | 
| 
          
            terminal
            
            
          
           Package terminal encapsulates some platform-specific logic for detecting if we're running in a terminal and, if so, properly configuring that terminal to meet the assumptions that the rest of Terraform makes. | Package terminal encapsulates some platform-specific logic for detecting if we're running in a terminal and, if so, properly configuring that terminal to meet the assumptions that the rest of Terraform makes. | 
| 
          
            tfdiags
            
            
          
           Package tfdiags is a utility package for representing errors and warnings in a manner that allows us to produce good messages for the user. | Package tfdiags is a utility package for representing errors and warnings in a manner that allows us to produce good messages for the user. | 
| 
          
            backend/remote-state/oci
            module
            
          
          
         | |
| 
          
            legacy
            module
            
          
          
         | |
| 
          
            terraform-ng
            module
            
          
          
         | |
| tools
       | |
| 
          
            loggraphdiff
            
            command
          
          
         | |
| 
          
            protobuf-compile
            
            command
          
           protobuf-compile is a helper tool for running protoc against all of the .proto files in this repository using specific versions of protoc and protoc-gen-go, to ensure consistent results across all development environments. | protobuf-compile is a helper tool for running protoc against all of the .proto files in this repository using specific versions of protoc and protoc-gen-go, to ensure consistent results across all development environments. | 
| The version package provides a location to set the release versions for all packages to consume, without creating import cycles. | The version package provides a location to set the release versions for all packages to consume, without creating import cycles. | 
 Click to show internal directories. 
   Click to hide internal directories.