Source Files
      ¶
    
  
      
      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). | 
| 
         
          
            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 small number of tests that run against a real Terraform binary, compiled on the fly at the start of the test run. 
         | 
      Package e2etest contains a small number 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/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/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. | 
| 
         
          
            typeexpr
            
            
          
           
      Package typeexpr is a fork of github.com/hashicorp/hcl/v2/ext/typeexpr which has additional experimental support for optional attributes. 
         | 
      Package typeexpr is a fork of github.com/hashicorp/hcl/v2/ext/typeexpr which has additional experimental support for optional attributes. | 
| 
         
          
            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.