website: Language: Update links to moved pages

This commit is contained in:
Nick Fagerlund 2021-01-15 14:13:53 -08:00
parent 78dcc8dc1b
commit 7a8dd326c6
160 changed files with 491 additions and 491 deletions

View File

@ -129,7 +129,7 @@ the reinitialization process, Terraform will ask if you'd like to migrate
your existing state to the new configuration. This allows you to easily your existing state to the new configuration. This allows you to easily
switch from one backend to another. switch from one backend to another.
If you're using multiple [workspaces](/docs/state/workspaces.html), If you're using multiple [workspaces](/docs/language/state/workspaces.html),
Terraform can copy all workspaces to the destination. If Terraform detects Terraform can copy all workspaces to the destination. If Terraform detects
you have multiple workspaces, it will ask if this is what you want to do. you have multiple workspaces, it will ask if this is what you want to do.

View File

@ -17,7 +17,7 @@ these by calling a backend either **standard** or **enhanced**. All backends
must implement **standard** functionality. These are defined below: must implement **standard** functionality. These are defined below:
* **Standard**: State management, functionality covered in * **Standard**: State management, functionality covered in
[State Storage & Locking](/docs/backends/state.html) [State Storage & Locking](/docs/language/state/backends.html)
* **Enhanced**: Everything in standard plus * **Enhanced**: Everything in standard plus
[remote operations](/docs/backends/operations.html). [remote operations](/docs/backends/operations.html).

View File

@ -17,4 +17,4 @@ Cloud or Terraform Enterprise.
Notably, this documentation does not cover the syntax and usage of the Terraform Notably, this documentation does not cover the syntax and usage of the Terraform
language. For that, see the language. For that, see the
[Terraform Language Documentation](/docs/configuration/index.html). [Terraform Language Documentation](/docs/language/index.html).

View File

@ -5,7 +5,7 @@ page_title: "Writing and Modifying Code - Terraform CLI"
# Writing and Modifying Terraform Code # Writing and Modifying Terraform Code
The [Terraform language](/docs/configuration/index.html) is Terraform's primary The [Terraform language](/docs/language/index.html) is Terraform's primary
user interface, and all of Terraform's workflows rely on configurations written user interface, and all of Terraform's workflows rely on configurations written
in the Terraform language. in the Terraform language.
@ -15,7 +15,7 @@ potentially save you time and effort.
- [The `terraform console` command](/docs/commands/console.html) starts an - [The `terraform console` command](/docs/commands/console.html) starts an
interactive shell for evaluating Terraform interactive shell for evaluating Terraform
[expressions](/docs/configuration/expressions/index.html), which can be a faster way [expressions](/docs/language/expressions/index.html), which can be a faster way
to verify that a particular resource argument results in the value you expect. to verify that a particular resource argument results in the value you expect.

View File

@ -7,7 +7,7 @@ page_title: "Initializing Working Directories - Terraform CLI"
Terraform expects to be invoked from a working directory that contains Terraform expects to be invoked from a working directory that contains
configuration files written in configuration files written in
[the Terraform language](/docs/configuration/index.html). Terraform uses [the Terraform language](/docs/language/index.html). Terraform uses
configuration content from this directory, and also uses the directory to store configuration content from this directory, and also uses the directory to store
settings, cached plugins and modules, and sometimes state data. settings, cached plugins and modules, and sometimes state data.

View File

@ -18,7 +18,7 @@ or just to gain a deeper or more holistic understanding of your infrastructure.
- [The `terraform graph` command](/docs/commands/graph.html) creates a visual - [The `terraform graph` command](/docs/commands/graph.html) creates a visual
representation of a configuration or a set of planned changes. representation of a configuration or a set of planned changes.
- [The `terraform output` command](/docs/commands/output.html) can get the - [The `terraform output` command](/docs/commands/output.html) can get the
values for the top-level [output values](/docs/configuration/outputs.html) of values for the top-level [output values](/docs/language/values/outputs.html) of
a configuration, which are often helpful when making use of the infrastructure a configuration, which are often helpful when making use of the infrastructure
Terraform has provisioned. Terraform has provisioned.
- [The `terraform show` command](/docs/commands/show.html) can generate - [The `terraform show` command](/docs/commands/show.html) can generate

View File

@ -7,7 +7,7 @@ page_title: "Managing Plugins - Terraform CLI"
Terraform relies on plugins called "providers" in order to manage various types Terraform relies on plugins called "providers" in order to manage various types
of resources. (For more information about providers, see of resources. (For more information about providers, see
[Providers](/docs/configuration/blocks/providers/index.html) in the Terraform [Providers](/docs/language/providers/index.html) in the Terraform
language docs.) language docs.)
-> **Note:** Providers are currently the only plugin type most Terraform users -> **Note:** Providers are currently the only plugin type most Terraform users
@ -15,7 +15,7 @@ will interact with. Terraform also supports third-party provisioner plugins, but
we discourage their use. we discourage their use.
Terraform downloads and/or installs any providers Terraform downloads and/or installs any providers
[required](/docs/configuration/provider-requirements.html) by a configuration [required](/docs/language/providers/requirements.html) by a configuration
when [initializing](/docs/cli/init/index.html) a working directory. By default, when [initializing](/docs/cli/init/index.html) a working directory. By default,
this works without any additional interaction but requires network access to this works without any additional interaction but requires network access to
download providers from their source registry. download providers from their source registry.

View File

@ -7,7 +7,7 @@ page_title: "Provisioning Infrastructure - Terraform CLI"
Terraform's primary function is to create, modify, and destroy infrastructure Terraform's primary function is to create, modify, and destroy infrastructure
resources to match the desired state described in a resources to match the desired state described in a
[Terraform configuration](/docs/configuration/index.html). [Terraform configuration](/docs/language/index.html).
When people refer to "running Terraform," they generally mean performing these When people refer to "running Terraform," they generally mean performing these
provisioning actions in order to affect real infrastructure objects. The provisioning actions in order to affect real infrastructure objects. The

View File

@ -5,7 +5,7 @@ page_title: "Manipulating State - Terraform CLI"
# Manipulating Terraform State # Manipulating Terraform State
Terraform uses [state data](/docs/state/index.html) to remember which Terraform uses [state data](/docs/language/state/index.html) to remember which
real-world object corresponds to each resource in the configuration; real-world object corresponds to each resource in the configuration;
this allows it to modify an existing object when its resource declaration this allows it to modify an existing object when its resource declaration
changes. changes.

View File

@ -22,4 +22,4 @@ configuration changes.
- [The `terraform untaint` command](/docs/commands/untaint.html) undoes a - [The `terraform untaint` command](/docs/commands/untaint.html) undoes a
previous taint, or can preserve a resource that was automatically tainted due previous taint, or can preserve a resource that was automatically tainted due
to failed [provisioners](/docs/provisioners/index.html). to failed [provisioners](/docs/language/resources/provisioners/syntax.html).

View File

@ -6,7 +6,7 @@ page_title: "Managing Workspaces - Terraform CLI"
# Managing Workspaces # Managing Workspaces
In Terraform CLI, _workspaces_ are separate instances of In Terraform CLI, _workspaces_ are separate instances of
[state data](/docs/state/index.html) that can be used from the same working [state data](/docs/language/state/index.html) that can be used from the same working
directory. You can use workspaces to manage multiple non-overlapping groups of directory. You can use workspaces to manage multiple non-overlapping groups of
resources with the same configuration. resources with the same configuration.
@ -34,11 +34,11 @@ Since most of the resources you can manage with Terraform don't include a unique
name as part of their configuration, it's common to use the same Terraform name as part of their configuration, it's common to use the same Terraform
configuration to provision multiple groups of similar resources. configuration to provision multiple groups of similar resources.
Terraform relies on [state](/docs/state/index.html) to associate resources with Terraform relies on [state](/docs/language/state/index.html) to associate resources with
real-world objects, so if you run the same configuration multiple times with real-world objects, so if you run the same configuration multiple times with
completely separate state data, Terraform can manage many non-overlapping groups completely separate state data, Terraform can manage many non-overlapping groups
of resources. In some cases you'll want to change of resources. In some cases you'll want to change
[variable values](/docs/configuration/variables.html) for these different [variable values](/docs/language/values/variables.html) for these different
resource collections (like when specifying differences between staging and resource collections (like when specifying differences between staging and
production deployments), and in other cases you might just want many instances production deployments), and in other cases you might just want many instances
of a particular infrastructure pattern. of a particular infrastructure pattern.
@ -46,7 +46,7 @@ of a particular infrastructure pattern.
The simplest way to maintain multiple instances of a configuration with The simplest way to maintain multiple instances of a configuration with
completely separate state data is to use multiple completely separate state data is to use multiple
[working directories](/docs/cli/init/index.html) (with different [working directories](/docs/cli/init/index.html) (with different
[backend](/docs/configuration/backend.html) configurations per directory, if you [backend](/docs/language/settings/backends/configuration.html) configurations per directory, if you
aren't using the default `local` backend). aren't using the default `local` backend).
However, this isn't always the most _convenient_ way to handle separate states. However, this isn't always the most _convenient_ way to handle separate states.
@ -70,7 +70,7 @@ data, run history, and settings.
These two kinds of workspaces are different, but related. When using Terraform These two kinds of workspaces are different, but related. When using Terraform
CLI as a frontend for Terraform Cloud, you associate the current working CLI as a frontend for Terraform Cloud, you associate the current working
directory with one or more remote workspaces by configuring directory with one or more remote workspaces by configuring
[the `remote` backend](/docs/backends/types/remote.html). If you associate the [the `remote` backend](/docs/language/settings/backends/remote.html). If you associate the
directory with multiple workspaces (using a name prefix), you can use the directory with multiple workspaces (using a name prefix), you can use the
`terraform workspace` commands to select which remote workspace to use. `terraform workspace` commands to select which remote workspace to use.

View File

@ -71,13 +71,13 @@ the change.
Once upgraded the configuration will no longer be compatible with Terraform Once upgraded the configuration will no longer be compatible with Terraform
v0.11 and earlier. When upgrading a shared module that is called from multiple v0.11 and earlier. When upgrading a shared module that is called from multiple
configurations, you may need to configurations, you may need to
[fix existing configurations to a previous version](/docs/configuration/blocks/modules/syntax.html#version) [fix existing configurations to a previous version](/docs/language/modules/syntax.html#version)
to allow for a gradual upgrade. If the module is published via to allow for a gradual upgrade. If the module is published via
[a Terraform registry](/docs/registry/), assign a new _major_ version number [a Terraform registry](/docs/registry/), assign a new _major_ version number
to the upgraded module source to represent the fact that this is a breaking to the upgraded module source to represent the fact that this is a breaking
change for v0.11 callers. If a module is installed directly from a version change for v0.11 callers. If a module is installed directly from a version
control system such as Git, control system such as Git,
[use specific revisions](https://www.terraform.io/docs/modules/sources.html#selecting-a-revision) [use specific revisions](https://www.terraform.io/docs/language/modules/sources.html#selecting-a-revision)
to control which version is used by which caller. to control which version is used by which caller.
The command-line options are all optional. The available options are: The command-line options are all optional. The available options are:

View File

@ -23,7 +23,7 @@ providers are in use for a module, detect the source address for those
providers where possible, and record this information in a providers where possible, and record this information in a
[`required_providers` block][required-providers]. [`required_providers` block][required-providers].
[required-providers]: /docs/configuration/provider-requirements.html [required-providers]: /docs/language/providers/requirements.html
~> Note: the command ignores `.tf.json` files and override files in the module. ~> Note: the command ignores `.tf.json` files and override files in the module.

View File

@ -56,14 +56,14 @@ The command-line flags are all optional. The list of available flags are:
apply. apply.
* `-state=path` - Path to the state file. Defaults to "terraform.tfstate". * `-state=path` - Path to the state file. Defaults to "terraform.tfstate".
Ignored when [remote state](/docs/state/remote.html) is used. This setting Ignored when [remote state](/docs/language/state/remote.html) is used. This setting
does not persist and other commands, such as init, may not be aware of the does not persist and other commands, such as init, may not be aware of the
alternate statefile. To configure an alternate statefile path which is alternate statefile. To configure an alternate statefile path which is
available to all terraform commands, use the [local backend](/docs/backends/types/local.html). available to all terraform commands, use the [local backend](/docs/language/settings/backends/local.html).
* `-state-out=path` - Path to write updated state file. By default, the * `-state-out=path` - Path to write updated state file. By default, the
`-state` path will be used. Ignored when `-state` path will be used. Ignored when
[remote state](/docs/state/remote.html) is used. [remote state](/docs/language/state/remote.html) is used.
* `-target=resource` - A [Resource * `-target=resource` - A [Resource
Address](/docs/internals/resource-addressing.html) to target. For more Address](/docs/internals/resource-addressing.html) to target. For more
@ -72,11 +72,11 @@ The command-line flags are all optional. The list of available flags are:
* `-var 'foo=bar'` - Set a variable in the Terraform configuration. This flag * `-var 'foo=bar'` - Set a variable in the Terraform configuration. This flag
can be set multiple times. Variable values are interpreted as can be set multiple times. Variable values are interpreted as
[literal expressions](/docs/configuration/expressions/types.html) in the [literal expressions](/docs/language/expressions/types.html) in the
Terraform language, so list and map values can be specified via this flag. Terraform language, so list and map values can be specified via this flag.
* `-var-file=foo` - Set variables in the Terraform configuration from * `-var-file=foo` - Set variables in the Terraform configuration from
a [variable file](/docs/configuration/variables.html#variable-definitions-tfvars-files). If a [variable file](/docs/language/values/variables.html#variable-definitions-tfvars-files). If
a `terraform.tfvars` or any `.auto.tfvars` files are present in the current a `terraform.tfvars` or any `.auto.tfvars` files are present in the current
directory, they will be automatically loaded. `terraform.tfvars` is loaded directory, they will be automatically loaded. `terraform.tfvars` is loaded
first and the `.auto.tfvars` files after in alphabetical order. Any files first and the `.auto.tfvars` files after in alphabetical order. Any files

View File

@ -11,7 +11,7 @@ description: |-
The CLI configuration file configures per-user settings for CLI behaviors, The CLI configuration file configures per-user settings for CLI behaviors,
which apply across all Terraform working directories. This is separate from which apply across all Terraform working directories. This is separate from
[your infrastructure configuration](/docs/configuration/index.html). [your infrastructure configuration](/docs/language/index.html).
## Location ## Location
@ -394,7 +394,7 @@ provider_installation {
With development overrides in effect, the `terraform init` command will still With development overrides in effect, the `terraform init` command will still
attempt to select a suitable published version of your provider to install and attempt to select a suitable published version of your provider to install and
record in record in
[the dependency lock file](/docs/configuration/dependency-lock.html) [the dependency lock file](/docs/language/dependency-lock.html)
for future use, but other commands like for future use, but other commands like
`terraform apply` will disregard the lock file's entry for `hashicorp/null` and `terraform apply` will disregard the lock file's entry for `hashicorp/null` and
will use the given directory instead. Once your new changes are included in a will use the given directory instead. Once your new changes are included in a

View File

@ -10,27 +10,27 @@ description: |-
# Command: console # Command: console
The `terraform console` command provides an interactive console for The `terraform console` command provides an interactive console for
evaluating [expressions](/docs/configuration/expressions/index.html). evaluating [expressions](/docs/language/expressions/index.html).
## Usage ## Usage
Usage: `terraform console [options]` Usage: `terraform console [options]`
This command provides an interactive command-line console for evaluating and This command provides an interactive command-line console for evaluating and
experimenting with [expressions](/docs/configuration/expressions/index.html). experimenting with [expressions](/docs/language/expressions/index.html).
This is useful for testing interpolations before using them in configurations, This is useful for testing interpolations before using them in configurations,
and for interacting with any values currently saved in and for interacting with any values currently saved in
[state](/docs/state/index.html). [state](/docs/language/state/index.html).
If the current state is empty or has not yet been created, the console can be If the current state is empty or has not yet been created, the console can be
used to experiment with the expression syntax and used to experiment with the expression syntax and
[built-in functions](/docs/configuration/functions.html). [built-in functions](/docs/language/functions/index.html).
The supported options are: The supported options are:
* `-state=path` - Path to a local state file. Expressions will be evaluated * `-state=path` - Path to a local state file. Expressions will be evaluated
using values from this state file. If not specified, the state associated using values from this state file. If not specified, the state associated
with the current [workspace](/docs/state/workspaces.html) is used. with the current [workspace](/docs/language/state/workspaces.html) is used.
You can close the console with the `exit` command or by pressing Control-C You can close the console with the `exit` command or by pressing Control-C
or Control-D. or Control-D.
@ -50,6 +50,6 @@ $ echo "1 + 5" | terraform console
## Remote State ## Remote State
If [remote state](/docs/state/remote.html) is used by the current backend, If [remote state](/docs/language/state/remote.html) is used by the current backend,
Terraform will read the state for the current workspace from the backend Terraform will read the state for the current workspace from the backend
before evaluating any expressions. before evaluating any expressions.

View File

@ -59,7 +59,7 @@ export TF_VAR_alist='[1,2,3]'
export TF_VAR_amap='{ foo = "bar", baz = "qux" }' export TF_VAR_amap='{ foo = "bar", baz = "qux" }'
``` ```
For more on how to use `TF_VAR_name` in context, check out the section on [Variable Configuration](/docs/configuration/variables.html). For more on how to use `TF_VAR_name` in context, check out the section on [Variable Configuration](/docs/language/values/variables.html).
## TF_CLI_ARGS and TF_CLI_ARGS_name ## TF_CLI_ARGS and TF_CLI_ARGS_name
@ -114,7 +114,7 @@ export TF_WORKSPACE=your_workspace
Using this environment variable is recommended only for non-interactive usage, since in a local shell environment it can be easy to forget the variable is set and apply changes to the wrong state. Using this environment variable is recommended only for non-interactive usage, since in a local shell environment it can be easy to forget the variable is set and apply changes to the wrong state.
For more information regarding workspaces, check out the section on [Using Workspaces] For more information regarding workspaces, check out the section on [Using Workspaces]
(https://www.terraform.io/docs/state/workspaces.html). (https://www.terraform.io/docs/language/state/workspaces.html).
## TF_IN_AUTOMATION ## TF_IN_AUTOMATION
@ -159,4 +159,4 @@ If `TF_IGNORE` is set to "trace", Terraform will output debug messages to displa
export TF_IGNORE=trace export TF_IGNORE=trace
``` ```
For more details on `.terraformignore`, please see [Excluding Files from Upload with .terraformignore](/docs/backends/types/remote.html#excluding-files-from-upload-with-terraformignore). For more details on `.terraformignore`, please see [Excluding Files from Upload with .terraformignore](/docs/language/settings/backends/remote.html#excluding-files-from-upload-with-terraformignore).

View File

@ -10,7 +10,7 @@ description: |-
The `terraform fmt` command is used to rewrite Terraform configuration files The `terraform fmt` command is used to rewrite Terraform configuration files
to a canonical format and style. This command applies a subset of to a canonical format and style. This command applies a subset of
the [Terraform language style conventions](/docs/configuration/style.html), the [Terraform language style conventions](/docs/language/syntax/style.html),
along with other minor adjustments for readability. along with other minor adjustments for readability.
Other Terraform commands that generate Terraform configuration will produce Other Terraform commands that generate Terraform configuration will produce

View File

@ -9,7 +9,7 @@ description: |-
# Command: get # Command: get
The `terraform get` command is used to download and update The `terraform get` command is used to download and update
[modules](/docs/modules/index.html) mentioned in the root module. [modules](/docs/language/modules/develop/index.html) mentioned in the root module.
## Usage ## Usage

View File

@ -37,7 +37,7 @@ itself having created all objects. If you import existing objects into Terraform
be careful to import each remote object to only one Terraform resource address. be careful to import each remote object to only one Terraform resource address.
If you import the same object multiple times, Terraform may exhibit unwanted If you import the same object multiple times, Terraform may exhibit unwanted
behavior. For more information on this assumption, see behavior. For more information on this assumption, see
[the State section](/docs/state/). [the State section](/docs/language/state/index.html).
The command-line flags are all optional. The list of available flags are: The command-line flags are all optional. The list of available flags are:
@ -75,12 +75,12 @@ in the configuration for the target resource, and that is the best behavior in m
* `-var 'foo=bar'` - Set a variable in the Terraform configuration. This flag * `-var 'foo=bar'` - Set a variable in the Terraform configuration. This flag
can be set multiple times. Variable values are interpreted as can be set multiple times. Variable values are interpreted as
[literal expressions](/docs/configuration/expressions/types.html) in the [literal expressions](/docs/language/expressions/types.html) in the
Terraform language, so list and map values can be specified via this flag. Terraform language, so list and map values can be specified via this flag.
This is only useful with the `-config` flag. This is only useful with the `-config` flag.
* `-var-file=foo` - Set variables in the Terraform configuration from * `-var-file=foo` - Set variables in the Terraform configuration from
a [variable file](/docs/configuration/variables.html#variable-definitions-tfvars-files). If a [variable file](/docs/language/values/variables.html#variable-definitions-tfvars-files). If
a `terraform.tfvars` or any `.auto.tfvars` files are present in the current a `terraform.tfvars` or any `.auto.tfvars` files are present in the current
directory, they will be automatically loaded. `terraform.tfvars` is loaded directory, they will be automatically loaded. `terraform.tfvars` is loaded
first and the `.auto.tfvars` files after in alphabetical order. Any files first and the `.auto.tfvars` files after in alphabetical order. Any files
@ -139,7 +139,7 @@ $ terraform import module.foo.aws_instance.bar i-abcd1234
## Example: Import into Resource configured with count ## Example: Import into Resource configured with count
The example below will import an AWS instance into the first instance of the `aws_instance` resource named `baz` configured with The example below will import an AWS instance into the first instance of the `aws_instance` resource named `baz` configured with
[`count`](/docs/configuration/meta-arguments/count.html): [`count`](/docs/language/meta-arguments/count.html):
```shell ```shell
$ terraform import 'aws_instance.baz[0]' i-abcd1234 $ terraform import 'aws_instance.baz[0]' i-abcd1234
@ -148,7 +148,7 @@ $ terraform import 'aws_instance.baz[0]' i-abcd1234
## Example: Import into Resource configured with for_each ## Example: Import into Resource configured with for_each
The example below will import an AWS instance into the `"example"` instance of the `aws_instance` resource named `baz` configured with The example below will import an AWS instance into the `"example"` instance of the `aws_instance` resource named `baz` configured with
[`for_each`](/docs/configuration/meta-arguments/for_each.html): [`for_each`](/docs/language/meta-arguments/for_each.html):
Linux, Mac OS, and UNIX: Linux, Mac OS, and UNIX:

View File

@ -98,7 +98,7 @@ be statically specified in the configuration file.
## Child Module Installation ## Child Module Installation
During init, the configuration is searched for `module` blocks, and the source During init, the configuration is searched for `module` blocks, and the source
code for referenced [modules](/docs/modules/) is retrieved from the locations code for referenced [modules](/docs/language/modules/develop/index.html) is retrieved from the locations
given in their `source` arguments. given in their `source` arguments.
Re-running init with modules already installed will install the sources for Re-running init with modules already installed will install the sources for
@ -126,10 +126,10 @@ Terraform installs providers using
[the provider installation settings in the CLI configuration](./cli-config.html#provider-installation). [the provider installation settings in the CLI configuration](./cli-config.html#provider-installation).
For more information about specifying which providers are required for each For more information about specifying which providers are required for each
of your modules, see [Provider Requirements](/docs/configuration/provider-requirements.html). of your modules, see [Provider Requirements](/docs/language/providers/requirements.html).
After successful installation, Terraform writes information about the selected After successful installation, Terraform writes information about the selected
providers to [the dependency lock file](/docs/configuration/dependency-lock.html). providers to [the dependency lock file](/docs/language/dependency-lock.html).
You should commit this file to your version control system to ensure that You should commit this file to your version control system to ensure that
when you run `terraform init` again in future Terraform will select exactly when you run `terraform init` again in future Terraform will select exactly
the same provider versions. Use the `-upgrade` option if you want Terraform the same provider versions. Use the `-upgrade` option if you want Terraform

View File

@ -31,7 +31,7 @@ The command-line flags are all optional. The list of available flags are:
for processing complex data types. for processing complex data types.
* `-no-color` - If specified, output won't contain any color. * `-no-color` - If specified, output won't contain any color.
* `-state=path` - Path to the state file. Defaults to "terraform.tfstate". * `-state=path` - Path to the state file. Defaults to "terraform.tfstate".
Ignored when [remote state](/docs/state/remote.html) is used. Ignored when [remote state](/docs/language/state/remote.html) is used.
## Examples ## Examples

View File

@ -70,7 +70,7 @@ The available options are:
* `-refresh=true` - Update the state prior to checking for differences. * `-refresh=true` - Update the state prior to checking for differences.
* `-state=path` - Path to the state file. Defaults to "terraform.tfstate". * `-state=path` - Path to the state file. Defaults to "terraform.tfstate".
Ignored when [remote state](/docs/state/remote.html) is used. Ignored when [remote state](/docs/language/state/remote.html) is used.
* `-target=resource` - A [Resource * `-target=resource` - A [Resource
Address](/docs/internals/resource-addressing.html) to target. This flag can Address](/docs/internals/resource-addressing.html) to target. This flag can
@ -78,11 +78,11 @@ The available options are:
* `-var 'foo=bar'` - Set a variable in the Terraform configuration. This flag * `-var 'foo=bar'` - Set a variable in the Terraform configuration. This flag
can be set multiple times. Variable values are interpreted as can be set multiple times. Variable values are interpreted as
[literal expressions](/docs/configuration/expressions/types.html) in the [literal expressions](/docs/language/expressions/types.html) in the
Terraform language, so list and map values can be specified via this flag. Terraform language, so list and map values can be specified via this flag.
* `-var-file=foo` - Set variables in the Terraform configuration from * `-var-file=foo` - Set variables in the Terraform configuration from
a [variable file](/docs/configuration/variables.html#variable-definitions-tfvars-files). If a [variable file](/docs/language/values/variables.html#variable-definitions-tfvars-files). If
a `terraform.tfvars` or any `.auto.tfvars` files are present in the current a `terraform.tfvars` or any `.auto.tfvars` files are present in the current
directory, they will be automatically loaded. `terraform.tfvars` is loaded directory, they will be automatically loaded. `terraform.tfvars` is loaded
first and the `.auto.tfvars` files after in alphabetical order. Any files first and the `.auto.tfvars` files after in alphabetical order. Any files
@ -115,7 +115,7 @@ of resources relates to configuration.
Instead of using `-target` as a means to operate on isolated portions of very Instead of using `-target` as a means to operate on isolated portions of very
large configurations, prefer instead to break large configurations into large configurations, prefer instead to break large configurations into
several smaller configurations that can each be independently applied. several smaller configurations that can each be independently applied.
[Data sources](/docs/configuration/data-sources.html) can be used to access [Data sources](/docs/language/data-sources/index.html) can be used to access
information about resources created in other configurations, allowing information about resources created in other configurations, allowing
a complex system architecture to be broken down into more manageable parts a complex system architecture to be broken down into more manageable parts
that can be updated independently. that can be updated independently.

View File

@ -10,7 +10,7 @@ description: |-
# Command: providers # Command: providers
The `terraform providers` command shows information about the The `terraform providers` command shows information about the
[provider requirements](/docs/configuration/provider-requirements.html) of the [provider requirements](/docs/language/providers/requirements.html) of the
configuration in the current working directory, as an aid to understanding configuration in the current working directory, as an aid to understanding
where each requirement was detected from. where each requirement was detected from.

View File

@ -11,7 +11,7 @@ description: |-
The `terraform providers lock` consults upstream registries (by default) in The `terraform providers lock` consults upstream registries (by default) in
order to write provider dependency information into order to write provider dependency information into
[the dependency lock file](/docs/configuration/dependency-lock.html). [the dependency lock file](/docs/language/dependency-lock.html).
The common way to update the dependency lock file is as a side-effect of normal The common way to update the dependency lock file is as a side-effect of normal
provider installation during provider installation during
@ -35,7 +35,7 @@ automatic approach may not be sufficient:
on both Windows and Linux) and the upstream registry for a provider is unable on both Windows and Linux) and the upstream registry for a provider is unable
to provide signed checksums using the latest hashing scheme, subsequent runs to provide signed checksums using the latest hashing scheme, subsequent runs
of Terraform on other platforms may of Terraform on other platforms may
[add additional checksums to the lock file](/docs/configuration/dependency-lock.html#new-provider-package-checksums). [add additional checksums to the lock file](/docs/language/dependency-lock.html#new-provider-package-checksums).
You can avoid that by pre-populating hashes for all of the platforms you You can avoid that by pre-populating hashes for all of the platforms you
intend to use, using the `terraform providers lock` command. intend to use, using the `terraform providers lock` command.
@ -49,7 +49,7 @@ With no additional command line arguments, `terraform providers lock` will
analyze the configuration in the current working directory to find all of analyze the configuration in the current working directory to find all of
the providers it depends on, and it will fetch the necessary data about those the providers it depends on, and it will fetch the necessary data about those
providers from their origin registries and then update providers from their origin registries and then update
[the dependency lock file](/docs/configuration/dependency-lock.html) to [the dependency lock file](/docs/language/dependency-lock.html) to
include a selected version for each provider and all of the package checksums include a selected version for each provider and all of the package checksums
that are covered by the provider developer's cryptographic signature. that are covered by the provider developer's cryptographic signature.

View File

@ -8,7 +8,7 @@ description: |-
# Command: push # Command: push
!> **Important:** The `terraform push` command is no longer functional. Its functionality was replaced and surpassed by [the `remote` backend](/docs/backends/types/remote.html), which works with current versions of Terraform Cloud. The `remote` backend allows you to run remote operations directly from the command line, and displays real-time output from the remote run environment. !> **Important:** The `terraform push` command is no longer functional. Its functionality was replaced and surpassed by [the `remote` backend](/docs/language/settings/backends/remote.html), which works with current versions of Terraform Cloud. The `remote` backend allows you to run remote operations directly from the command line, and displays real-time output from the remote run environment.
The `terraform push` command was an early implementation of remote Terraform runs. It allowed teams to push a configuration to a remote run environment in a discontinued version of Terraform Enterprise. The `terraform push` command was an early implementation of remote Terraform runs. It allowed teams to push a configuration to a remote run environment in a discontinued version of Terraform Enterprise.

View File

@ -43,11 +43,11 @@ The `terraform refresh` command accepts the following options:
to 10. to 10.
* `-state=path` - Path to read and write the state file to. Defaults to "terraform.tfstate". * `-state=path` - Path to read and write the state file to. Defaults to "terraform.tfstate".
Ignored when [remote state](/docs/state/remote.html) is used. Ignored when [remote state](/docs/language/state/remote.html) is used.
* `-state-out=path` - Path to write updated state file. By default, the * `-state-out=path` - Path to write updated state file. By default, the
`-state` path will be used. Ignored when `-state` path will be used. Ignored when
[remote state](/docs/state/remote.html) is used. [remote state](/docs/language/state/remote.html) is used.
* `-target=resource` - A [Resource * `-target=resource` - A [Resource
Address](/docs/internals/resource-addressing.html) to target. Operation will Address](/docs/internals/resource-addressing.html) to target. Operation will
@ -56,11 +56,11 @@ The `terraform refresh` command accepts the following options:
* `-var 'foo=bar'` - Set a variable in the Terraform configuration. This flag * `-var 'foo=bar'` - Set a variable in the Terraform configuration. This flag
can be set multiple times. Variable values are interpreted as can be set multiple times. Variable values are interpreted as
[literal expressions](/docs/configuration/expressions/types.html) in the [literal expressions](/docs/language/expressions/types.html) in the
Terraform language, so list and map values can be specified via this flag. Terraform language, so list and map values can be specified via this flag.
* `-var-file=foo` - Set variables in the Terraform configuration from * `-var-file=foo` - Set variables in the Terraform configuration from
a [variable file](/docs/configuration/variables.html#variable-definitions-tfvars-files). If a [variable file](/docs/language/values/variables.html#variable-definitions-tfvars-files). If
a `terraform.tfvars` or any `.auto.tfvars` files are present in the current a `terraform.tfvars` or any `.auto.tfvars` files are present in the current
directory, they will be automatically loaded. `terraform.tfvars` is loaded directory, they will be automatically loaded. `terraform.tfvars` is loaded
first and the `.auto.tfvars` files after in alphabetical order. Any files first and the `.auto.tfvars` files after in alphabetical order. Any files

View File

@ -18,7 +18,7 @@ flag.
-> **Note:** When using the `-json` command-line flag, any sensitive values in -> **Note:** When using the `-json` command-line flag, any sensitive values in
Terraform state will be displayed in plain text. For more information, see Terraform state will be displayed in plain text. For more information, see
[Sensitive Data in State](/docs/state/sensitive-data.html). [Sensitive Data in State](/docs/language/state/sensitive-data.html).
## JSON Output ## JSON Output

View File

@ -10,7 +10,7 @@ description: |-
The `terraform state` command is used for advanced state management. The `terraform state` command is used for advanced state management.
As your Terraform usage becomes more advanced, there are some cases where As your Terraform usage becomes more advanced, there are some cases where
you may need to modify the [Terraform state](/docs/state/index.html). you may need to modify the [Terraform state](/docs/language/state/index.html).
Rather than modify the state directly, the `terraform state` commands can Rather than modify the state directly, the `terraform state` commands can
be used in many cases instead. be used in many cases instead.

View File

@ -9,7 +9,7 @@ description: |-
# Command: state list # Command: state list
The `terraform state list` command is used to list resources within a The `terraform state list` command is used to list resources within a
[Terraform state](/docs/state/index.html). [Terraform state](/docs/language/state/index.html).
## Usage ## Usage
@ -30,7 +30,7 @@ in [resource addressing format](/docs/commands/state/addressing.html).
The command-line flags are all optional. The list of available flags are: The command-line flags are all optional. The list of available flags are:
* `-state=path` - Path to the state file. Defaults to "terraform.tfstate". * `-state=path` - Path to the state file. Defaults to "terraform.tfstate".
Ignored when [remote state](/docs/state/remote.html) is used. Ignored when [remote state](/docs/language/state/remote.html) is used.
* `-id=id` - ID of resources to show. Ignored when unset. * `-id=id` - ID of resources to show. Ignored when unset.
## Example: All Resources ## Example: All Resources

View File

@ -9,7 +9,7 @@ description: |-
# Command: state mv # Command: state mv
The `terraform state mv` command is used to move items in a The `terraform state mv` command is used to move items in a
[Terraform state](/docs/state/index.html). This command can move [Terraform state](/docs/language/state/index.html). This command can move
single resources, single instances of a resource, entire modules, and more. single resources, single instances of a resource, entire modules, and more.
This command can also move items to a completely different state file, This command can also move items to a completely different state file,
enabling efficient refactoring. enabling efficient refactoring.
@ -100,7 +100,7 @@ $ terraform state mv -state-out=other.tfstate 'module.app' 'module.app'
## Example: Move a Resource configured with count ## Example: Move a Resource configured with count
The example below moves the first instance of a `packet_device` resource named `worker` configured with The example below moves the first instance of a `packet_device` resource named `worker` configured with
[`count`](/docs/configuration/meta-arguments/count.html) to [`count`](/docs/language/meta-arguments/count.html) to
the first instance of a resource named `helper` also configured with `count`: the first instance of a resource named `helper` also configured with `count`:
```shell ```shell
@ -110,7 +110,7 @@ $ terraform state mv 'packet_device.worker[0]' 'packet_device.helper[0]'
## Example: Move a Resource configured with for_each ## Example: Move a Resource configured with for_each
The example below moves the `"example123"` instance of a `packet_device` resource named `worker` configured with The example below moves the `"example123"` instance of a `packet_device` resource named `worker` configured with
[`for_each`](/docs/configuration/meta-arguments/for_each.html) [`for_each`](/docs/language/meta-arguments/for_each.html)
to the `"example456"` instance of a resource named `helper` also configuring `for_each`: to the `"example456"` instance of a resource named `helper` also configuring `for_each`:
Linux, Mac OS, and UNIX: Linux, Mac OS, and UNIX:

View File

@ -9,7 +9,7 @@ description: |-
# Command: state pull # Command: state pull
The `terraform state pull` command is used to manually download and output The `terraform state pull` command is used to manually download and output
the state from [remote state](/docs/state/remote.html). This command also the state from [remote state](/docs/language/state/remote.html). This command also
works with local state. works with local state.
## Usage ## Usage

View File

@ -9,7 +9,7 @@ description: |-
# Command: state push # Command: state push
The `terraform state push` command is used to manually upload a local The `terraform state push` command is used to manually upload a local
state file to [remote state](/docs/state/remote.html). This command also state file to [remote state](/docs/language/state/remote.html). This command also
works with local state. works with local state.
This command should rarely be used. It is meant only as a utility in case This command should rarely be used. It is meant only as a utility in case
@ -20,7 +20,7 @@ manual intervention is necessary with the remote state.
Usage: `terraform state push [options] PATH` Usage: `terraform state push [options] PATH`
This command will push the state specified by PATH to the currently This command will push the state specified by PATH to the currently
configured [backend](/docs/configuration/blocks/backends/index.html). configured [backend](/docs/language/settings/backends/index.html).
If PATH is "-" then the state data to push is read from stdin. This data If PATH is "-" then the state data to push is read from stdin. This data
is loaded completely into memory and verified prior to being written to is loaded completely into memory and verified prior to being written to

View File

@ -9,7 +9,7 @@ description: |-
# Command: state replace-provider # Command: state replace-provider
The `terraform state replace-provider` command is used to replace the provider The `terraform state replace-provider` command is used to replace the provider
for resources in a [Terraform state](/docs/state/index.html). for resources in a [Terraform state](/docs/language/state/index.html).
## Usage ## Usage

View File

@ -9,7 +9,7 @@ description: |-
# Command: state rm # Command: state rm
The `terraform state rm` command is used to remove items from the The `terraform state rm` command is used to remove items from the
[Terraform state](/docs/state/index.html). This command can remove [Terraform state](/docs/language/state/index.html). This command can remove
single resources, single instances of a resource, entire modules, single resources, single instances of a resource, entire modules,
and more. and more.
@ -83,7 +83,7 @@ $ terraform state rm 'module.foo.packet_device.worker'
## Example: Remove a Resource configured with count ## Example: Remove a Resource configured with count
The example below removes the first instance of a `packet_device` resource named `worker` configured with The example below removes the first instance of a `packet_device` resource named `worker` configured with
[`count`](/docs/configuration/meta-arguments/count.html): [`count`](/docs/language/meta-arguments/count.html):
```shell ```shell
$ terraform state rm 'packet_device.worker[0]' $ terraform state rm 'packet_device.worker[0]'
@ -92,7 +92,7 @@ $ terraform state rm 'packet_device.worker[0]'
## Example: Remove a Resource configured with for_each ## Example: Remove a Resource configured with for_each
The example below removes the `"example"` instance of a `packet_device` resource named `worker` configured with The example below removes the `"example"` instance of a `packet_device` resource named `worker` configured with
[`for_each`](/docs/configuration/meta-arguments/for_each.html): [`for_each`](/docs/language/meta-arguments/for_each.html):
Linux, Mac OS, and UNIX: Linux, Mac OS, and UNIX:

View File

@ -10,7 +10,7 @@ description: |-
The `terraform state show` command is used to show the attributes of a The `terraform state show` command is used to show the attributes of a
single resource in the single resource in the
[Terraform state](/docs/state/index.html). [Terraform state](/docs/language/state/index.html).
## Usage ## Usage
@ -26,7 +26,7 @@ in [resource addressing format](/docs/commands/state/addressing.html).
The command-line flags are all optional. The list of available flags are: The command-line flags are all optional. The list of available flags are:
* `-state=path` - Path to the state file. Defaults to "terraform.tfstate". * `-state=path` - Path to the state file. Defaults to "terraform.tfstate".
Ignored when [remote state](/docs/state/remote.html) is used. Ignored when [remote state](/docs/language/state/remote.html) is used.
The output of `terraform state show` is intended for human consumption, not The output of `terraform state show` is intended for human consumption, not
programmatic consumption. To extract state data for use in other software, use programmatic consumption. To extract state data for use in other software, use
@ -61,7 +61,7 @@ $ terraform state show 'module.foo.packet_device.worker'
## Example: Show a Resource configured with count ## Example: Show a Resource configured with count
The example below shows the first instance of a `packet_device` resource named `worker` configured with The example below shows the first instance of a `packet_device` resource named `worker` configured with
[`count`](/docs/configuration/meta-arguments/count.html): [`count`](/docs/language/meta-arguments/count.html):
```shell ```shell
$ terraform state show 'packet_device.worker[0]' $ terraform state show 'packet_device.worker[0]'
@ -70,7 +70,7 @@ $ terraform state show 'packet_device.worker[0]'
## Example: Show a Resource configured with for_each ## Example: Show a Resource configured with for_each
The example below shows the `"example"` instance of a `packet_device` resource named `worker` configured with The example below shows the `"example"` instance of a `packet_device` resource named `worker` configured with
[`for_each`](/docs/configuration/meta-arguments/for_each.html): [`for_each`](/docs/language/meta-arguments/for_each.html):
Linux, Mac OS, and UNIX: Linux, Mac OS, and UNIX:

View File

@ -59,11 +59,11 @@ The command-line flags are all optional. The list of available flags are:
* `-lock-timeout=0s` - Duration to retry a state lock. * `-lock-timeout=0s` - Duration to retry a state lock.
* `-state=path` - Path to read and write the state file to. Defaults to "terraform.tfstate". * `-state=path` - Path to read and write the state file to. Defaults to "terraform.tfstate".
Ignored when [remote state](/docs/state/remote.html) is used. Ignored when [remote state](/docs/language/state/remote.html) is used.
* `-state-out=path` - Path to write updated state file. By default, the * `-state-out=path` - Path to write updated state file. By default, the
`-state` path will be used. Ignored when `-state` path will be used. Ignored when
[remote state](/docs/state/remote.html) is used. [remote state](/docs/language/state/remote.html) is used.
* `-ignore-remote-version` - When using the enhanced remote backend with * `-ignore-remote-version` - When using the enhanced remote backend with
Terraform Cloud, continue even if remote and local Terraform versions differ. Terraform Cloud, continue even if remote and local Terraform versions differ.
@ -104,7 +104,7 @@ Resource instance module.couchbase.aws_instance.cb_node[9] has been marked as ta
``` ```
Although we recommend that most configurations use only one level of nesting Although we recommend that most configurations use only one level of nesting
and employ [module composition](/docs/modules/composition.html), it's possible and employ [module composition](/docs/language/modules/develop/composition.html), it's possible
to have multiple levels of nested modules. In that case the resource instance to have multiple levels of nested modules. In that case the resource instance
address must include all of the steps to the target instance, as in the address must include all of the steps to the target instance, as in the
following example: following example:

View File

@ -52,11 +52,11 @@ certain cases, see above note). The list of available flags are:
* `-no-color` - Disables output with coloring * `-no-color` - Disables output with coloring
* `-state=path` - Path to read and write the state file to. Defaults to "terraform.tfstate". * `-state=path` - Path to read and write the state file to. Defaults to "terraform.tfstate".
Ignored when [remote state](/docs/state/remote.html) is used. Ignored when [remote state](/docs/language/state/remote.html) is used.
* `-state-out=path` - Path to write updated state file. By default, the * `-state-out=path` - Path to write updated state file. By default, the
`-state` path will be used. Ignored when `-state` path will be used. Ignored when
[remote state](/docs/state/remote.html) is used. [remote state](/docs/language/state/remote.html) is used.
* `-ignore-remote-version` - When using the enhanced remote backend with * `-ignore-remote-version` - When using the enhanced remote backend with
Terraform Cloud, continue even if remote and local Terraform versions differ. Terraform Cloud, continue even if remote and local Terraform versions differ.

View File

@ -9,7 +9,7 @@ description: |-
# Command: workspace # Command: workspace
The `terraform workspace` command is used to manage The `terraform workspace` command is used to manage
[workspaces](/docs/state/workspaces.html). [workspaces](/docs/language/state/workspaces.html).
This command is a container for further subcommands. These subcommands are This command is a container for further subcommands. These subcommands are
listed in the navigation bar. listed in the navigation bar.

View File

@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Configuring Data Sources](../configuration/data-sources.html). [Configuration Language: Configuring Data Sources](/docs/language/data-sources/index.html).
*Data sources* allow data to be fetched or computed for use elsewhere *Data sources* allow data to be fetched or computed for use elsewhere
in Terraform configuration. Use of data sources allows a Terraform in Terraform configuration. Use of data sources allows a Terraform

View File

@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language](../configuration/index.html). [Configuration Language](/docs/language/index.html).
Terraform uses text files to describe infrastructure and to set variables. Terraform uses text files to describe infrastructure and to set variables.
These text files are called Terraform _configurations_ and end in These text files are called Terraform _configurations_ and end in

View File

@ -10,8 +10,8 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Expressions](/docs/configuration/expressions/index.html) and [Configuration Language: Expressions](/docs/language/expressions/index.html) and
[Configuration Language: Functions](../configuration/functions.html). [Configuration Language: Functions](/docs/language/functions/index.html).
Embedded within strings in Terraform, whether you're using the Embedded within strings in Terraform, whether you're using the
Terraform syntax or JSON syntax, you can interpolate other values. These Terraform syntax or JSON syntax, you can interpolate other values. These
@ -77,7 +77,7 @@ syntax to get a list of all the attributes: `${data.aws_subnet.example.*.cidr_bl
The syntax is `module.<NAME>.<OUTPUT>`. For example `${module.foo.bar}` will The syntax is `module.<NAME>.<OUTPUT>`. For example `${module.foo.bar}` will
interpolate the `bar` output from the `foo` interpolate the `bar` output from the `foo`
[module](/docs/modules/index.html). [module](/docs/language/modules/develop/index.html).
#### Count information #### Count information

View File

@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language](../configuration/index.html). [Configuration Language](/docs/language/index.html).
When invoking any command that loads the Terraform configuration, When invoking any command that loads the Terraform configuration,
Terraform loads all configuration files within the directory Terraform loads all configuration files within the directory

View File

@ -11,7 +11,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Configuring Local Values](../configuration/locals.html). [Configuration Language: Configuring Local Values](/docs/language/values/locals.html).
Local values assign a name to an expression, that can then be used multiple Local values assign a name to an expression, that can then be used multiple
times within a module. times within a module.

View File

@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Modules](../configuration/modules.html). [Configuration Language: Modules](/docs/language/modules/index.html).
A _module_ is a container for multiple resources that are used together. A _module_ is a container for multiple resources that are used together.
@ -27,7 +27,7 @@ and re-used.
This page describes how to call one module from another. Other pages in this This page describes how to call one module from another. Other pages in this
section of the documentation describe the different elements that make up section of the documentation describe the different elements that make up
modules, and there is further information about how modules can be used, modules, and there is further information about how modules can be used,
created, and published in [the dedicated _Modules_ section](/docs/modules/index.html). created, and published in [the dedicated _Modules_ section](/docs/language/modules/develop/index.html).
## Calling a Child Module ## Calling a Child Module
@ -62,7 +62,7 @@ Terraform CLI. Its value is either the path to a local directory of the
module's configuration files, or a remote module source that Terraform should module's configuration files, or a remote module source that Terraform should
download and use. This value must be a literal string with no template download and use. This value must be a literal string with no template
sequences; interpolations are not allowed. For more information on sequences; interpolations are not allowed. For more information on
possible values for this argument, see [Module Sources](/docs/modules/sources.html). possible values for this argument, see [Module Sources](/docs/language/modules/sources.html).
The same source address can be specified in multiple `module` blocks to create The same source address can be specified in multiple `module` blocks to create
multiple copies of the resources defined within, possibly with different multiple copies of the resources defined within, possibly with different
@ -161,7 +161,7 @@ future features.
Since modules are a complex feature in their own right, further detail Since modules are a complex feature in their own right, further detail
about how modules can be used, created, and published is included in about how modules can be used, created, and published is included in
[the dedicated section on modules](/docs/modules/index.html). [the dedicated section on modules](/docs/language/modules/develop/index.html).
## Providers within Modules ## Providers within Modules

View File

@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Output Values](../configuration/outputs.html). [Configuration Language: Output Values](/docs/language/values/outputs.html).
Outputs define values that will be highlighted to the user Outputs define values that will be highlighted to the user
when Terraform applies, and can be queried easily using the when Terraform applies, and can be queried easily using the

View File

@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Override Files](../configuration/override.html). [Configuration Language: Override Files](/docs/language/files/override.html).
Terraform loads all configuration files within a directory and Terraform loads all configuration files within a directory and
appends them together. Terraform also has a concept of _overrides_, appends them together. Terraform also has a concept of _overrides_,

View File

@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Providers](../configuration/providers.html). [Configuration Language: Providers](/docs/language/providers/index.html).
Providers are responsible in Terraform for managing the lifecycle Providers are responsible in Terraform for managing the lifecycle
of a [resource](./resources.html): create, of a [resource](./resources.html): create,

View File

@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Resources](../configuration/resources.html). [Configuration Language: Resources](/docs/language/resources/index.html).
The most important thing you'll configure with Terraform are The most important thing you'll configure with Terraform are
resources. Resources are a component of your infrastructure. resources. Resources are a component of your infrastructure.
@ -176,7 +176,7 @@ could automatically do this a better way.
Within a resource, you can optionally have a **connection block**. Within a resource, you can optionally have a **connection block**.
Connection blocks describe to Terraform how to connect to the Connection blocks describe to Terraform how to connect to the
resource for resource for
[provisioning](/docs/provisioners/index.html). This block doesn't [provisioning](/docs/language/resources/provisioners/syntax.html). This block doesn't
need to be present if you're using only local provisioners, or need to be present if you're using only local provisioners, or
if you're not provisioning at all. if you're not provisioning at all.
@ -184,13 +184,13 @@ Resources provide some data on their own, such as an IP address,
but other data must be specified by the user. but other data must be specified by the user.
The full list of settings that can be specified are listed on The full list of settings that can be specified are listed on
the [provisioner connection page](/docs/provisioners/connection.html). the [provisioner connection page](/docs/language/resources/provisioners/connection.html).
### Provisioners ### Provisioners
Within a resource, you can specify zero or more **provisioner Within a resource, you can specify zero or more **provisioner
blocks**. Provisioner blocks configure blocks**. Provisioner blocks configure
[provisioners](/docs/provisioners/index.html). [provisioners](/docs/language/resources/provisioners/syntax.html).
Within the provisioner block is provisioner-specific configuration, Within the provisioner block is provisioner-specific configuration,
much like resource-specific configuration. much like resource-specific configuration.

View File

@ -14,7 +14,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Syntax](../configuration/syntax.html). [Configuration Language: Syntax](/docs/language/syntax/configuration.html).
The syntax of Terraform configurations is called [HashiCorp Configuration The syntax of Terraform configurations is called [HashiCorp Configuration
Language (HCL)](https://github.com/hashicorp/hcl). It is meant to strike a Language (HCL)](https://github.com/hashicorp/hcl). It is meant to strike a

View File

@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Terraform Settings](../configuration/terraform.html). [Configuration Language: Terraform Settings](/docs/language/settings/index.html).
The `terraform` configuration section is used to configure Terraform itself, The `terraform` configuration section is used to configure Terraform itself,
such as requiring a minimum Terraform version to execute a configuration. such as requiring a minimum Terraform version to execute a configuration.

View File

@ -11,7 +11,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12 -> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see and later, see
[Configuration Language: Input Variables](../configuration/variables.html). [Configuration Language: Input Variables](/docs/language/values/variables.html).
Input variables serve as parameters for a Terraform module. Input variables serve as parameters for a Terraform module.

View File

@ -25,14 +25,14 @@ is set to an empty list (`<ATTR> = []`).
Most users do not need to know any further details of this "nested block or Most users do not need to know any further details of this "nested block or
empty list" behavior. However, read further if you need to: empty list" behavior. However, read further if you need to:
- Use Terraform's [JSON syntax](/docs/configuration/syntax-json.html) with this - Use Terraform's [JSON syntax](/docs/language/syntax/json.html) with this
type of resource. type of resource.
- Create a reusable module that wraps this type of resource. - Create a reusable module that wraps this type of resource.
## Details ## Details
In Terraform v0.12 and later, the language makes a distinction between In Terraform v0.12 and later, the language makes a distinction between
[argument syntax and nested block syntax](/docs/configuration/syntax.html#arguments-and-blocks) [argument syntax and nested block syntax](/docs/language/syntax/configuration.html#arguments-and-blocks)
within blocks: within blocks:
* Argument syntax sets a named argument for the containing object. If the * Argument syntax sets a named argument for the containing object. If the
@ -46,7 +46,7 @@ within blocks:
merging in with any explicitly-defined arguments. merging in with any explicitly-defined arguments.
The distinction between these is particularly important for The distinction between these is particularly important for
[JSON syntax](/docs/configuration/syntax-json.html) [JSON syntax](/docs/language/syntax/json.html)
because the same primitive JSON constructs (lists and objects) will be because the same primitive JSON constructs (lists and objects) will be
interpreted differently depending on whether a particular name is an argument interpreted differently depending on whether a particular name is an argument
or a nested block type. or a nested block type.
@ -153,7 +153,7 @@ example = [
For the arguments that use the attributes-as-blocks usage mode, the above is For the arguments that use the attributes-as-blocks usage mode, the above is
a better pattern than using a better pattern than using
[`dynamic` blocks](/docs/configuration/expressions/dynamic-blocks.html) [`dynamic` blocks](/docs/language/expressions/dynamic-blocks.html)
because the case where the because the case where the
caller provides an empty list will result in explicitly assigning an empty caller provides an empty list will result in explicitly assigning an empty
list value, rather than assigning no value at all and thus retaining and list value, rather than assigning no value at all and thus retaining and
@ -163,7 +163,7 @@ dynamically-generating _normal_ nested blocks, though.
## In JSON syntax ## In JSON syntax
Arguments that use this special mode are specified in JSON syntax always using Arguments that use this special mode are specified in JSON syntax always using
the [JSON expression mapping](/docs/configuration/syntax-json.html#expression-mapping) the [JSON expression mapping](/docs/language/syntax/json.html#expression-mapping)
to produce a list of objects. to produce a list of objects.
The interpretation of these values in JSON syntax is, therefore, equivalent The interpretation of these values in JSON syntax is, therefore, equivalent

View File

@ -21,7 +21,7 @@ Terraform's types are `string`, `number`, `bool`, `list`, `tuple`, `map`,
`object`, and `null`. `object`, and `null`.
This information has moved to This information has moved to
[Types and Values](/docs/configuration/expressions/types.html). [Types and Values](/docs/language/expressions/types.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -40,7 +40,7 @@ You can refer to certain values by name, like `var.some_variable` or
`aws_instance.example.ami`. `aws_instance.example.ami`.
This information has moved to This information has moved to
[References to Values](/docs/configuration/expressions/references.html). [References to Values](/docs/language/expressions/references.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -57,7 +57,7 @@ Operators are expressions that transform other expressions, like adding two
numbers (`+`) or comparing two values to get a bool (`==`, `>=`, etc.). numbers (`+`) or comparing two values to get a bool (`==`, `>=`, etc.).
This information has moved to This information has moved to
[Operators](/docs/configuration/expressions/references.html). [Operators](/docs/language/expressions/references.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -69,7 +69,7 @@ The `condition ? true_val : false_val` expression chooses between two
expressions based on a bool condition. expressions based on a bool condition.
This information has moved to This information has moved to
[Conditional Expressions](/docs/configuration/expressions/conditionals.html). [Conditional Expressions](/docs/language/expressions/conditionals.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -83,7 +83,7 @@ This information has moved to
Terraform's functions can be called like `function_name(arg1, arg2)`. Terraform's functions can be called like `function_name(arg1, arg2)`.
This information has moved to This information has moved to
[Function Calls](/docs/configuration/expressions/function-calls.html). [Function Calls](/docs/language/expressions/function-calls.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -97,7 +97,7 @@ Expressions like `[for s in var.list : upper(s)]` can transform a complex type
value into another complex type value. value into another complex type value.
This information has moved to This information has moved to
[For Expressions](/docs/configuration/expressions/for.html). [For Expressions](/docs/language/expressions/for.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -112,7 +112,7 @@ Expressions like `var.list[*].id` can extract simpler collections from complex
collections. collections.
This information has moved to This information has moved to
[Splat Expressions](/docs/configuration/expressions/splat.html). [Splat Expressions](/docs/language/expressions/splat.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -127,7 +127,7 @@ The special `dynamic` block type serves the same purpose as a `for` expression,
except it creates multiple repeatable nested blocks instead of a complex value. except it creates multiple repeatable nested blocks instead of a complex value.
This information has moved to This information has moved to
[Dynamic Blocks](/docs/configuration/expressions/dynamic-blocks.html). [Dynamic Blocks](/docs/language/expressions/dynamic-blocks.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -152,6 +152,6 @@ Strings can also include escape sequences like `\n`, interpolation sequences
(`${ ... }`), and template sequences (`%{ ... }`). (`${ ... }`), and template sequences (`%{ ... }`).
This information has moved to This information has moved to
[Strings and Templates](/docs/configuration/expressions/strings.html). [Strings and Templates](/docs/language/expressions/strings.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>

View File

@ -18,7 +18,7 @@ pages.
## Syntax and Elements of Module Blocks ## Syntax and Elements of Module Blocks
This information has moved to This information has moved to
[Module Blocks](/docs/configuration/blocks/modules/syntax.html). [Module Blocks](/docs/language/modules/syntax.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -29,8 +29,8 @@ This information has moved to
## Multiple Instances with `count` and `for_each` ## Multiple Instances with `count` and `for_each`
This information has moved to This information has moved to
[`count`](/docs/configuration/meta-arguments/count.html) and [`count`](/docs/language/meta-arguments/count.html) and
[`for_each`](/docs/configuration/meta-arguments/for_each.html). [`for_each`](/docs/language/meta-arguments/for_each.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -46,9 +46,9 @@ This information has moved to
## Handling Provider Configurations in Re-usable Modules ## Handling Provider Configurations in Re-usable Modules
This information has moved to This information has moved to
[The `providers` Meta-Argument](/docs/configuration/meta-arguments/module-providers.html) [The `providers` Meta-Argument](/docs/language/meta-arguments/module-providers.html)
(for users of re-usable modules) and (for users of re-usable modules) and
[Providers Within Modules](/docs/modules/providers.html) [Providers Within Modules](/docs/language/modules/develop/providers.html)
(for module developers). (for module developers).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>

View File

@ -20,7 +20,7 @@ pages.
## Syntax and Elements of Resource Blocks ## Syntax and Elements of Resource Blocks
This information has moved to This information has moved to
[Resource Blocks](/docs/configuration/blocks/resources/syntax.html). [Resource Blocks](/docs/language/resources/syntax.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -34,7 +34,7 @@ This information has moved to
## Details of Resource Behavior ## Details of Resource Behavior
This information has moved to This information has moved to
[Resource Behavior](/docs/configuration/blocks/resources/behavior.html). [Resource Behavior](/docs/language/resources/behavior.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -44,12 +44,12 @@ This information has moved to
Each resource meta-argument has moved to its own page: Each resource meta-argument has moved to its own page:
- [`depends_on`](/docs/configuration/meta-arguments/depends_on.html) - [`depends_on`](/docs/language/meta-arguments/depends_on.html)
- [`count`](/docs/configuration/meta-arguments/count.html) - [`count`](/docs/language/meta-arguments/count.html)
- [`for_each`](/docs/configuration/meta-arguments/for_each.html) - [`for_each`](/docs/language/meta-arguments/for_each.html)
- [`provider`](/docs/configuration/meta-arguments/resource-provider.html) - [`provider`](/docs/language/meta-arguments/resource-provider.html)
- [`lifecycle`](/docs/configuration/meta-arguments/lifecycle.html) - [`lifecycle`](/docs/language/meta-arguments/lifecycle.html)
- [Provisioners](/docs/configuration/blocks/resources/provisioners/index.html) - [Provisioners](/docs/language/resources/provisioners/index.html)
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -60,7 +60,7 @@ Each resource meta-argument has moved to its own page:
### `depends_on` ### `depends_on`
This information has moved to This information has moved to
[`depends_on`](/docs/configuration/meta-arguments/depends_on.html). [`depends_on`](/docs/language/meta-arguments/depends_on.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -77,7 +77,7 @@ This information has moved to
### `count` ### `count`
This information has moved to This information has moved to
[`count`](/docs/configuration/meta-arguments/count.html). [`count`](/docs/language/meta-arguments/count.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -94,7 +94,7 @@ This information has moved to
### `for_each` ### `for_each`
This information has moved to This information has moved to
[`for_each`](/docs/configuration/meta-arguments/for_each.html). [`for_each`](/docs/language/meta-arguments/for_each.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -105,7 +105,7 @@ This information has moved to
### `provider` ### `provider`
This information has moved to This information has moved to
[`provider`](/docs/configuration/meta-arguments/resource-provider.html). [`provider`](/docs/language/meta-arguments/resource-provider.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -119,7 +119,7 @@ This information has moved to
### `lifecycle` ### `lifecycle`
This information has moved to This information has moved to
[`lifecycle`](/docs/configuration/meta-arguments/lifecycle.html). [`lifecycle`](/docs/language/meta-arguments/lifecycle.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>
@ -130,6 +130,6 @@ This information has moved to
### Provisioners ### Provisioners
This information has moved to This information has moved to
[Provisioners](/docs/configuration/blocks/resources/provisioners/index.html). [Provisioners](/docs/language/resources/provisioners/index.html).
<div style="height: 100vh; margin: 0; padding: 0;"></div> <div style="height: 100vh; margin: 0; padding: 0;"></div>

View File

@ -26,12 +26,12 @@ itself having created all objects. If you import existing objects into Terraform
be careful to import each remote object to only one Terraform resource address. be careful to import each remote object to only one Terraform resource address.
If you import the same object multiple times, Terraform may exhibit unwanted If you import the same object multiple times, Terraform may exhibit unwanted
behavior. For more information on this assumption, see behavior. For more information on this assumption, see
[the State section](/docs/state/). [the State section](/docs/language/state/index.html).
## Currently State Only ## Currently State Only
The current implementation of Terraform import can only import resources The current implementation of Terraform import can only import resources
into the [state](/docs/state/). It does not generate configuration. A future into the [state](/docs/language/state/index.html). It does not generate configuration. A future
version of Terraform will also generate configuration. version of Terraform will also generate configuration.
Because of this, prior to running `terraform import` it is necessary to write Because of this, prior to running `terraform import` it is necessary to write
@ -44,7 +44,7 @@ importing existing resources.
## Remote Backends ## Remote Backends
When using Terraform import on the command line with a [remote When using Terraform import on the command line with a [remote
backend](/docs/backends/types/remote.html), such as Terraform Cloud, the import backend](/docs/language/settings/backends/remote.html), such as Terraform Cloud, the import
command runs locally, unlike commands such as apply, which run inside your command runs locally, unlike commands such as apply, which run inside your
Terraform Cloud environment. Because of this, the import command will not have Terraform Cloud environment. Because of this, the import command will not have
access to information from the remote backend, such as workspace variables. access to information from the remote backend, such as workspace variables.

View File

@ -23,7 +23,7 @@ itself having created all objects. If you import existing objects into Terraform
be careful to import each remote object to only one Terraform resource address. be careful to import each remote object to only one Terraform resource address.
If you import the same object multiple times, Terraform may exhibit unwanted If you import the same object multiple times, Terraform may exhibit unwanted
behavior. For more information on this assumption, see behavior. For more information on this assumption, see
[the State section](/docs/state/). [the State section](/docs/language/state/index.html).
To import a resource, first write a resource block for it in your To import a resource, first write a resource block for it in your
configuration, establishing the name by which it will be known to Terraform: configuration, establishing the name by which it will be known to Terraform:

View File

@ -244,7 +244,7 @@ The following example illustrates the structure of a `<values-representation>`:
} }
``` ```
The translation of attribute and output values is the same intuitive mapping from HCL types to JSON types used by Terraform's [`jsonencode`](/docs/configuration/functions/jsonencode.html) function. This mapping does lose some information: lists, sets, and tuples all lower to JSON arrays while maps and objects both lower to JSON objects. Unknown values and null values are both treated as absent or null. The translation of attribute and output values is the same intuitive mapping from HCL types to JSON types used by Terraform's [`jsonencode`](/docs/language/functions/jsonencode.html) function. This mapping does lose some information: lists, sets, and tuples all lower to JSON arrays while maps and objects both lower to JSON objects. Unknown values and null values are both treated as absent or null.
Only the "current" object for each resource instance is described. "Deposed" objects are not reflected in this structure at all; in plan representations, you can refer to the change representations for further details. Only the "current" object for each resource instance is described. "Deposed" objects are not reflected in this structure at all; in plan representations, you can refer to the change representations for further details.

View File

@ -213,10 +213,10 @@ A successful response has no body, and includes the location from which the
module version's source can be downloaded in the `X-Terraform-Get` header. module version's source can be downloaded in the `X-Terraform-Get` header.
The value of this header accepts the same values as the `source` argument The value of this header accepts the same values as the `source` argument
in a `module` block in Terraform configuration, as described in in a `module` block in Terraform configuration, as described in
[Module Sources](https://www.terraform.io/docs/modules/sources.html), [Module Sources](https://www.terraform.io/docs/language/modules/sources.html),
except that it may not recursively refer to another module registry address. except that it may not recursively refer to another module registry address.
The value of `X-Terraform-Get` may instead be a relative URL, indicated by The value of `X-Terraform-Get` may instead be a relative URL, indicated by
beginning with `/`, `./` or `../`, in which case it is resolved relative to beginning with `/`, `./` or `../`, in which case it is resolved relative to
the full URL of the download endpoint to produce the full URL of the download endpoint to produce
[an HTTP URL module source](/docs/modules/sources.html#http-urls). [an HTTP URL module source](/docs/language/modules/sources.html#http-urls).

View File

@ -36,7 +36,7 @@ instead.
Each Terraform provider has an associated address which uniquely identifies it Each Terraform provider has an associated address which uniquely identifies it
within Terraform. A provider address has the syntax `hostname/namespace/type`, within Terraform. A provider address has the syntax `hostname/namespace/type`,
which is described in more detail in which is described in more detail in
[the Provider Requirements documentation](/docs/configuration/provider-requirements.html). [the Provider Requirements documentation](/docs/language/providers/requirements.html).
By default, the `hostname` portion of a provider address serves both as part By default, the `hostname` portion of a provider address serves both as part
of its unique identifier _and_ as the location of the registry to retrieve it of its unique identifier _and_ as the location of the registry to retrieve it

View File

@ -13,8 +13,8 @@ in Terraform configuration. Use of data sources allows a Terraform
configuration to make use of information defined outside of Terraform, configuration to make use of information defined outside of Terraform,
or defined by another separate Terraform configuration. or defined by another separate Terraform configuration.
Each [provider](./providers.html) may offer data sources Each [provider](/docs/language/providers/index.html) may offer data sources
alongside its set of [resource](/docs/configuration/blocks/resources/index.html) alongside its set of [resource](/docs/language/resources/index.html)
types. types.
## Using Data Sources ## Using Data Sources
@ -61,14 +61,14 @@ Each data resource is associated with a single data source, which determines
the kind of object (or objects) it reads and what query constraint arguments the kind of object (or objects) it reads and what query constraint arguments
are available. are available.
Each data source in turn belongs to a [provider](./providers.html), Each data source in turn belongs to a [provider](/docs/language/providers/index.html),
which is a plugin for Terraform that offers a collection of resource types and which is a plugin for Terraform that offers a collection of resource types and
data sources that most often belong to a single cloud or on-premises data sources that most often belong to a single cloud or on-premises
infrastructure platform. infrastructure platform.
Most of the items within the body of a `data` block are defined by and Most of the items within the body of a `data` block are defined by and
specific to the selected data source, and these arguments can make full specific to the selected data source, and these arguments can make full
use of [expressions](/docs/configuration/expressions/index.html) and other dynamic use of [expressions](/docs/language/expressions/index.html) and other dynamic
Terraform language features. Terraform language features.
However, there are some "meta-arguments" that are defined by Terraform itself However, there are some "meta-arguments" that are defined by Terraform itself
@ -110,7 +110,7 @@ operation, and is re-calculated each time a new plan is created.
## Data Resource Dependencies ## Data Resource Dependencies
Data resources have the same dependency resolution behavior Data resources have the same dependency resolution behavior
[as defined for managed resources](/docs/configuration/blocks/resources/behavior.html#resource-dependencies). [as defined for managed resources](/docs/language/resources/behavior.html#resource-dependencies).
Setting the `depends_on` meta-argument within `data` blocks defers reading of Setting the `depends_on` meta-argument within `data` blocks defers reading of
the data source until after all changes to the dependencies have been applied. the data source until after all changes to the dependencies have been applied.
@ -125,8 +125,8 @@ referencing the managed resource values through a `local` value.
## Multiple Resource Instances ## Multiple Resource Instances
Data resources support [`count`](/docs/configuration/meta-arguments/count.html) Data resources support [`count`](/docs/language/meta-arguments/count.html)
and [`for_each`](/docs/configuration/meta-arguments/for_each.html) and [`for_each`](/docs/language/meta-arguments/for_each.html)
meta-arguments as defined for managed resources, with the same syntax and behavior. meta-arguments as defined for managed resources, with the same syntax and behavior.
As with managed resources, when `count` or `for_each` is present it is important to As with managed resources, when `count` or `for_each` is present it is important to
@ -136,7 +136,7 @@ own variant of the constraint arguments, producing an indexed result.
## Selecting a Non-default Provider Configuration ## Selecting a Non-default Provider Configuration
Data resources support [the `provider` meta-argument](/docs/configuration/meta-arguments/resource-provider.html) Data resources support [the `provider` meta-argument](/docs/language/meta-arguments/resource-provider.html)
as defined for managed resources, with the same syntax and behavior. as defined for managed resources, with the same syntax and behavior.
## Lifecycle Customizations ## Lifecycle Customizations
@ -190,13 +190,13 @@ resource "aws_instance" "web" {
## Meta-Arguments ## Meta-Arguments
As data sources are essentially a read only subset of resources, they also As data sources are essentially a read only subset of resources, they also
support the same [meta-arguments](/docs/configuration/blocks/resources/syntax.html#meta-arguments) of resources support the same [meta-arguments](/docs/language/resources/syntax.html#meta-arguments) of resources
with the exception of the with the exception of the
[`lifecycle` configuration block](/docs/configuration/meta-arguments/lifecycle.html). [`lifecycle` configuration block](/docs/language/meta-arguments/lifecycle.html).
### Non-Default Provider Configurations ### Non-Default Provider Configurations
Similarly to [resources](/docs/configuration/blocks/resources/index.html), when Similarly to [resources](/docs/language/resources/index.html), when
a module has multiple configurations for the same provider you can specify which a module has multiple configurations for the same provider you can specify which
configuration to use with the `provider` meta-argument: configuration to use with the `provider` meta-argument:
@ -209,7 +209,7 @@ data "aws_ami" "web" {
``` ```
See See
[The Resource `provider` Meta-Argument](/docs/configuration/meta-arguments/resource-provider.html) [The Resource `provider` Meta-Argument](/docs/language/meta-arguments/resource-provider.html)
for more information. for more information.
## Data Source Lifecycle ## Data Source Lifecycle

View File

@ -14,9 +14,9 @@ information here is not relevant to those versions.
A Terraform configuration may refer to two different kinds of external A Terraform configuration may refer to two different kinds of external
dependency that come from outside of its own codebase: dependency that come from outside of its own codebase:
* [Providers](./provider-requirements.html), which are plugins for Terraform * [Providers](/docs/language/providers/requirements.html), which are plugins for Terraform
that extend it with support for interacting with various external systems. that extend it with support for interacting with various external systems.
* [Modules](/docs/configuration/blocks/modules/index.html), which allow * [Modules](/docs/language/modules/index.html), which allow
splitting out groups of Terraform configuration constructs (written in the splitting out groups of Terraform configuration constructs (written in the
Terraform language) into reusable abstractions. Terraform language) into reusable abstractions.
@ -26,7 +26,7 @@ reason, Terraform must determine which versions of those dependencies are
potentially compatible with the current configuration and which versions are potentially compatible with the current configuration and which versions are
currently selected for use. currently selected for use.
[Version constraints](./version-constraints.html) within the configuration [Version constraints](/docs/language/expressions/version-constraints.html) within the configuration
itself determine which versions of dependencies are _potentially_ compatible, itself determine which versions of dependencies are _potentially_ compatible,
but after selecting a specific version of each dependency Terraform remembers but after selecting a specific version of each dependency Terraform remembers
the decisions it made in a _dependency lock file_ so that it can (by default) the decisions it made in a _dependency lock file_ so that it can (by default)
@ -157,7 +157,7 @@ propsed changes. The following sections will describe these common situations.
### Dependency on a new provider ### Dependency on a new provider
If you add a new entry to the If you add a new entry to the
[provider requirements](./provider-requirements.html) for any module in your [provider requirements](/docs/language/providers/requirements.html) for any module in your
configuration, or if you add an external module that includes a new provider configuration, or if you add an external module that includes a new provider
dependency itself, `terraform init` will respond to that by selecting the dependency itself, `terraform init` will respond to that by selecting the
newest version of that provider which meets all of the version constraints newest version of that provider which meets all of the version constraints

View File

@ -60,7 +60,7 @@ be some uncertainty about the expected result type.
The following example is contrived because it would be easier to write the The following example is contrived because it would be easier to write the
constant `"12"` instead of the type conversion in this case, but shows how to constant `"12"` instead of the type conversion in this case, but shows how to
use [`tostring`](../functions/tostring.html) to explicitly convert a number to use [`tostring`](/docs/language/functions/tostring.html) to explicitly convert a number to
a string. a string.
```hcl ```hcl

View File

@ -83,9 +83,9 @@ nested block. If you need to declare resource instances based on a nested
data structure or combinations of elements from multiple data structures you data structure or combinations of elements from multiple data structures you
can use Terraform expressions and functions to derive a suitable value. can use Terraform expressions and functions to derive a suitable value.
For some common examples of such situations, see the For some common examples of such situations, see the
[`flatten`](/docs/configuration/functions/flatten.html) [`flatten`](/docs/language/functions/flatten.html)
and and
[`setproduct`](/docs/configuration/functions/setproduct.html) [`setproduct`](/docs/language/functions/setproduct.html)
functions. functions.
## Multi-level Nested Block Structures ## Multi-level Nested Block Structures
@ -150,5 +150,5 @@ nested blocks using directly-corresponding attributes from an input variable
then that might suggest that your module is not creating a useful abstraction. then that might suggest that your module is not creating a useful abstraction.
It may be better for the calling module to define the resource itself then It may be better for the calling module to define the resource itself then
pass information about it into your module. For more information on this design pass information about it into your module. For more information on this design
tradeoff, see [When to Write a Module](/docs/modules/#when-to-write-a-module) tradeoff, see [When to Write a Module](/docs/language/modules/develop/index.html#when-to-write-a-module)
and [Module Composition](/docs/modules/composition.html). and [Module Composition](/docs/language/modules/develop/composition.html).

View File

@ -129,7 +129,7 @@ For sets of other types, Terraform uses an arbitrary ordering that may change
in future versions of Terraform. For that reason, we recommend converting the in future versions of Terraform. For that reason, we recommend converting the
result of such an expression to itself be a set so that it's clear elsewhere result of such an expression to itself be a set so that it's clear elsewhere
in the configuration that the result is unordered. You can use in the configuration that the result is unordered. You can use
[the `toset` function](../functions/toset.html) [the `toset` function](/docs/language/functions/toset.html)
to concisely convert a `for` expression result to be of a set type. to concisely convert a `for` expression result to be of a set type.
```hcl ```hcl

View File

@ -8,7 +8,7 @@ page_title: "Function Calls - Configuration Language"
> **Hands-on:** Try the [Perform Dynamic Operations with Functions](https://learn.hashicorp.com/tutorials/terraform/functions?in=terraform/configuration-language&utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) tutorial on HashiCorp Learn. > **Hands-on:** Try the [Perform Dynamic Operations with Functions](https://learn.hashicorp.com/tutorials/terraform/functions?in=terraform/configuration-language&utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) tutorial on HashiCorp Learn.
The Terraform language has a number of The Terraform language has a number of
[built-in functions](/docs/configuration/functions.html) that can be used [built-in functions](/docs/language/functions/index.html) that can be used
in expressions to transform and combine values. These in expressions to transform and combine values. These
are similar to the operators but all follow a common syntax: are similar to the operators but all follow a common syntax:
@ -33,7 +33,7 @@ A function call expression evaluates to the function's return value.
## Available Functions ## Available Functions
For a full list of available functions, see For a full list of available functions, see
[the function reference](/docs/configuration/functions.html). [the function reference](/docs/language/functions/index.html).
## Expanding Function Arguments ## Expanding Function Arguments
@ -50,8 +50,8 @@ The expansion symbol is three periods (`...`), not a Unicode ellipsis character
## Using Sensitive Data as Function Arguments ## Using Sensitive Data as Function Arguments
When using sensitive data, such as [an input variable](https://www.terraform.io/docs/configuration/variables.html#suppressing-values-in-cli-output) When using sensitive data, such as [an input variable](https://www.terraform.io/docs/language/values/variables.html#suppressing-values-in-cli-output)
or [an output defined](https://www.terraform.io/docs/configuration/outputs.html#sensitive-suppressing-values-in-cli-output) as sensitive or [an output defined](https://www.terraform.io/docs/language/values/outputs.html#sensitive-suppressing-values-in-cli-output) as sensitive
as function arguments, the result of the function call will be marked as sensitive. as function arguments, the result of the function call will be marked as sensitive.
This is a conservative behavior that is true irrespective of the function being This is a conservative behavior that is true irrespective of the function being
@ -80,10 +80,10 @@ those it can be helpful to know when Terraform will call them in relation to
other events that occur in a Terraform run. other events that occur in a Terraform run.
The small set of special functions includes The small set of special functions includes
[`file`](../functions/file.html), [`file`](/docs/language/functions/file.html),
[`templatefile`](../functions/templatefile.html), [`templatefile`](/docs/language/functions/templatefile.html),
[`timestamp`](../functions/timestamp.html), [`timestamp`](/docs/language/functions/timestamp.html),
and [`uuid`](../functions/uuid.html). and [`uuid`](/docs/language/functions/uuid.html).
If you are not working with these functions then you don't need If you are not working with these functions then you don't need
to read this section, although the information here may still be interesting to read this section, although the information here may still be interesting
background information. background information.

View File

@ -16,7 +16,7 @@ and a number of built-in functions.
Expressions can be used in a number of places in the Terraform language, Expressions can be used in a number of places in the Terraform language,
but some contexts limit which expression constructs are allowed, but some contexts limit which expression constructs are allowed,
such as requiring a literal value of a particular type or forbidding such as requiring a literal value of a particular type or forbidding
[references to resource attributes](/docs/configuration/expressions/references.html#references-to-resource-attributes). [references to resource attributes](/docs/language/expressions/references.html#references-to-resource-attributes).
Each language feature's documentation describes any restrictions it places on Each language feature's documentation describes any restrictions it places on
expressions. expressions.
@ -27,43 +27,43 @@ the Terraform expression console, by running
The other pages in this section describe the features of Terraform's The other pages in this section describe the features of Terraform's
expression syntax. expression syntax.
- [Types and Values](/docs/configuration/expressions/types.html) - [Types and Values](/docs/language/expressions/types.html)
documents the data types that Terraform expressions can resolve to, and the documents the data types that Terraform expressions can resolve to, and the
literal syntaxes for values of those types. literal syntaxes for values of those types.
- [Strings and Templates](/docs/configuration/expressions/strings.html) - [Strings and Templates](/docs/language/expressions/strings.html)
documents the syntaxes for string literals, including interpolation sequences documents the syntaxes for string literals, including interpolation sequences
and template directives. and template directives.
- [References to Values](/docs/configuration/expressions/references.html) - [References to Values](/docs/language/expressions/references.html)
documents how to refer to named values like variables and resource attributes. documents how to refer to named values like variables and resource attributes.
- [Operators](/docs/configuration/expressions/operators.html) - [Operators](/docs/language/expressions/operators.html)
documents the arithmetic, comparison, and logical operators. documents the arithmetic, comparison, and logical operators.
- [Function Calls](/docs/configuration/expressions/function-calls.html) - [Function Calls](/docs/language/expressions/function-calls.html)
documents the syntax for calling Terraform's built-in functions. documents the syntax for calling Terraform's built-in functions.
- [Conditional Expressions](/docs/configuration/expressions/conditionals.html) - [Conditional Expressions](/docs/language/expressions/conditionals.html)
documents the `<CONDITION> ? <TRUE VAL> : <FALSE VAL>` expression, which documents the `<CONDITION> ? <TRUE VAL> : <FALSE VAL>` expression, which
chooses between two values based on a bool condition. chooses between two values based on a bool condition.
- [For Expressions](/docs/configuration/expressions/for.html) - [For Expressions](/docs/language/expressions/for.html)
documents expressions like `[for s in var.list : upper(s)]`, which can documents expressions like `[for s in var.list : upper(s)]`, which can
transform a complex type value into another complex type value. transform a complex type value into another complex type value.
- [Splat Expressions](/docs/configuration/expressions/splat.html) - [Splat Expressions](/docs/language/expressions/splat.html)
documents expressions like `var.list[*].id`, which can extract simpler documents expressions like `var.list[*].id`, which can extract simpler
collections from more complicated expressions. collections from more complicated expressions.
- [Dynamic Blocks](/docs/configuration/expressions/dynamic-blocks.html) - [Dynamic Blocks](/docs/language/expressions/dynamic-blocks.html)
documents a way to create multiple repeatable nested blocks within a resource documents a way to create multiple repeatable nested blocks within a resource
or other construct. or other construct.
- [Type Constraints](/docs/configuration/types.html) - [Type Constraints](/docs/language/expressions/type-constraints.html)
documents the syntax for referring to a type, rather than a value of that documents the syntax for referring to a type, rather than a value of that
type. Input variables expect this syntax in their `type` argument. type. Input variables expect this syntax in their `type` argument.
- [Version Constraints](/docs/configuration/version-constraints.html) - [Version Constraints](/docs/language/expressions/version-constraints.html)
documents the syntax of special strings that define a set of allowed software documents the syntax of special strings that define a set of allowed software
versions. Terraform uses version constraints in several places. versions. Terraform uses version constraints in several places.

View File

@ -56,7 +56,7 @@ as results:
Terraform supports some other less-common numeric operations as Terraform supports some other less-common numeric operations as
[functions](function-calls.html). For example, you can calculate exponents [functions](function-calls.html). For example, you can calculate exponents
using using
[the `pow` function](../functions/pow.html). [the `pow` function](/docs/language/functions/pow.html).
## Equality Operators ## Equality Operators

View File

@ -36,7 +36,7 @@ instance resource.
### Resources ### Resources
`<RESOURCE TYPE>.<NAME>` represents a [managed resource](/docs/configuration/blocks/resources/index.html) of `<RESOURCE TYPE>.<NAME>` represents a [managed resource](/docs/language/resources/index.html) of
the given type and name. the given type and name.
The value of a resource reference can vary, depending on whether the resource The value of a resource reference can vary, depending on whether the resource
@ -58,7 +58,7 @@ For more information about how to use resource references, see
### Input Variables ### Input Variables
`var.<NAME>` is the value of the [input variable](/docs/configuration/variables.html) of the given name. `var.<NAME>` is the value of the [input variable](/docs/language/values/variables.html) of the given name.
If the variable has a type constraint (`type` argument) as part of its If the variable has a type constraint (`type` argument) as part of its
declaration, Terraform will automatically convert the caller's given value declaration, Terraform will automatically convert the caller's given value
@ -76,7 +76,7 @@ constraint all of the attributes you intend to use elsewhere in your module.
### Local Values ### Local Values
`local.<NAME>` is the value of the [local value](/docs/configuration/locals.html) of the given name. `local.<NAME>` is the value of the [local value](/docs/language/values/locals.html) of the given name.
Local values can refer to other local values, even within the same `locals` Local values can refer to other local values, even within the same `locals`
block, as long as you don't introduce circular dependencies. block, as long as you don't introduce circular dependencies.
@ -84,12 +84,12 @@ block, as long as you don't introduce circular dependencies.
### Child Module Outputs ### Child Module Outputs
`module.<MODULE NAME>` is an value representing the results of `module.<MODULE NAME>` is an value representing the results of
[a `module` block](../blocks/modules/). [a `module` block](/docs/language/modules/syntax.html).
If the corresponding `module` block does not have either `count` nor `for_each` If the corresponding `module` block does not have either `count` nor `for_each`
set then the value will be an object with one attribute for each output value set then the value will be an object with one attribute for each output value
defined in the child module. To access one of the module's defined in the child module. To access one of the module's
[output values](../outputs.html), use `module.<MODULE NAME>.<OUTPUT NAME>`. [output values](/docs/language/values/outputs.html), use `module.<MODULE NAME>.<OUTPUT NAME>`.
If the corresponding `module` uses `for_each` then the value will be a map If the corresponding `module` uses `for_each` then the value will be a map
of objects whose keys correspond with the keys in the `for_each` expression, of objects whose keys correspond with the keys in the `for_each` expression,
@ -103,7 +103,7 @@ elements, each one representing one module instance.
### Data Sources ### Data Sources
`data.<DATA TYPE>.<NAME>` is an object representing a `data.<DATA TYPE>.<NAME>` is an object representing a
[data resource](/docs/configuration/data-sources.html) of the given data [data resource](/docs/language/data-sources/index.html) of the given data
source type and name. If the resource has the `count` argument set, the value source type and name. If the resource has the `count` argument set, the value
is a list of objects representing its instances. If the resource has the `for_each` is a list of objects representing its instances. If the resource has the `for_each`
argument set, the value is a map of objects representing its instances. argument set, the value is a map of objects representing its instances.
@ -123,7 +123,7 @@ to mark the reference as for a data resource.
uses of Terraform run it from a directory other than the root module uses of Terraform run it from a directory other than the root module
directory, causing these paths to be different. directory, causing these paths to be different.
* `terraform.workspace` is the name of the currently selected * `terraform.workspace` is the name of the currently selected
[workspace](/docs/state/workspaces.html). [workspace](/docs/language/state/workspaces.html).
Use the values in this section carefully, because they include information Use the values in this section carefully, because they include information
about the context in which a configuration is being applied and so may about the context in which a configuration is being applied and so may
@ -163,15 +163,15 @@ These local names are described in the documentation for the specific contexts
where they appear. Some of most common local names are: where they appear. Some of most common local names are:
- `count.index`, in resources that use - `count.index`, in resources that use
[the `count` meta-argument](/docs/configuration/meta-arguments/count.html). [the `count` meta-argument](/docs/language/meta-arguments/count.html).
- `each.key` / `each.value`, in resources that use - `each.key` / `each.value`, in resources that use
[the `for_each` meta-argument](/docs/configuration/meta-arguments/for_each.html). [the `for_each` meta-argument](/docs/language/meta-arguments/for_each.html).
- `self`, in [provisioner](/docs/provisioners/index.html) and - `self`, in [provisioner](/docs/language/resources/provisioners/syntax.html) and
[connection](/docs/provisioners/connection.html) blocks. [connection](/docs/language/resources/provisioners/connection.html) blocks.
-> **Note:** Local names are often referred to as _variables_ or -> **Note:** Local names are often referred to as _variables_ or
_temporary variables_ in their documentation. These are not [input _temporary variables_ in their documentation. These are not [input
variables](/docs/configuration/variables.html); they are just arbitrary names variables](/docs/language/values/variables.html); they are just arbitrary names
that temporarily represent a value. that temporarily represent a value.
The names in this section relate to top-level configuration blocks only. The names in this section relate to top-level configuration blocks only.
@ -254,7 +254,7 @@ for use in references, as follows:
`{for k, device in aws_instance.example.device : k => device.size}`. `{for k, device in aws_instance.example.device : k => device.size}`.
When a resource has the When a resource has the
[`count`](/docs/configuration/meta-arguments/count.html) [`count`](/docs/language/meta-arguments/count.html)
argument set, the resource itself becomes a _list_ of instance objects rather than argument set, the resource itself becomes a _list_ of instance objects rather than
a single object. In that case, access the attributes of the instances using a single object. In that case, access the attributes of the instances using
either [splat expressions](./splat.html) or index syntax: either [splat expressions](./splat.html) or index syntax:
@ -264,7 +264,7 @@ either [splat expressions](./splat.html) or index syntax:
* `aws_instance.example[0].id` returns just the id of the first instance. * `aws_instance.example[0].id` returns just the id of the first instance.
When a resource has the When a resource has the
[`for_each`](/docs/configuration/meta-arguments/for_each.html) [`for_each`](/docs/language/meta-arguments/for_each.html)
argument set, the resource itself becomes a _map_ of instance objects rather than argument set, the resource itself becomes a _map_ of instance objects rather than
a single object, and attributes of instances must be specified by key, or can a single object, and attributes of instances must be specified by key, or can
be accessed using a [`for` expression](./for.html). be accessed using a [`for` expression](./for.html).
@ -327,9 +327,9 @@ a plan involving that attribute.
The treatment of these particular sensitive values is currently different than The treatment of these particular sensitive values is currently different than
for values in for values in
[input variables](/docs/configuration/variables.html) [input variables](/docs/language/values/variables.html)
and and
[output values](/docs/configuration/outputs.html) [output values](/docs/language/values/outputs.html)
that have `sensitive = true` set. Sensitive resource attributes will be that have `sensitive = true` set. Sensitive resource attributes will be
obscured in the plan when they appear directly, but other values that you obscured in the plan when they appear directly, but other values that you
_derive_ from a sensitive resource attribute will not themselves be considered _derive_ from a sensitive resource attribute will not themselves be considered
@ -337,7 +337,7 @@ sensitive, and so Terraform will include those derived values in its output
without redacting them. without redacting them.
Terraform v0.14.0 and later has an Terraform v0.14.0 and later has an
[experimental feature](/docs/configuration/terraform.html#experimental-language-features) [experimental feature](/docs/language/settings/index.html#experimental-language-features)
to treat resource attributes that are marked as sensitive in the same way as to treat resource attributes that are marked as sensitive in the same way as
sensitive input variables and output values, so that Terraform will consider sensitive input variables and output values, so that Terraform will consider
any derived values as sensitive too. You can activate that experiment for your any derived values as sensitive too. You can activate that experiment for your

View File

@ -48,7 +48,7 @@ tuples. To get a similar result with a map or object value you must use
Resources that use the `for_each` argument will appear in expressions as a map Resources that use the `for_each` argument will appear in expressions as a map
of objects, so you can't use splat expressions with those resources. of objects, so you can't use splat expressions with those resources.
For more information, see For more information, see
[Referring to Resource Instances](/docs/configuration/meta-arguments/for_each.html#referring-to-instances). [Referring to Resource Instances](/docs/language/meta-arguments/for_each.html#referring-to-instances).
## Single Values as Lists ## Single Values as Lists

View File

@ -75,8 +75,8 @@ allowed, but conventionally this identifier is in all-uppercase and begins with
### Generating JSON or YAML ### Generating JSON or YAML
Don't use "heredoc" strings to generate JSON or YAML. Instead, use Don't use "heredoc" strings to generate JSON or YAML. Instead, use
[the `jsonencode` function](../functions/jsonencode.html) or [the `jsonencode` function](/docs/language/functions/jsonencode.html) or
[the `yamlencode` function](../functions/yamlencode.html) so that Terraform [the `yamlencode` function](/docs/language/functions/yamlencode.html) so that Terraform
can be responsible for guaranteeing valid JSON or YAML syntax. can be responsible for guaranteeing valid JSON or YAML syntax.
```hcl ```hcl

View File

@ -27,9 +27,9 @@ function-like constructs called _type constructors._
represent a type; instead, it represents a _kind_ of similar types. represent a type; instead, it represents a _kind_ of similar types.
Type constraints look like other kinds of Terraform Type constraints look like other kinds of Terraform
[expressions](/docs/configuration/expressions/index.html), but are a special syntax. Within the [expressions](/docs/language/expressions/index.html), but are a special syntax. Within the
Terraform language, they are only valid in the `type` argument of an Terraform language, they are only valid in the `type` argument of an
[input variable](./variables.html). [input variable](/docs/language/values/variables.html).
## Primitive Types ## Primitive Types
@ -155,7 +155,7 @@ like the following:
The Terraform language has literal expressions for creating tuple and object The Terraform language has literal expressions for creating tuple and object
values, which are described in values, which are described in
[Expressions: Literal Expressions](/docs/configuration/expressions/types.html#literal-expressions) as [Expressions: Literal Expressions](/docs/language/expressions/types.html#literal-expressions) as
"list/tuple" literals and "map/object" literals, respectively. "list/tuple" literals and "map/object" literals, respectively.
Terraform does _not_ provide any way to directly represent lists, maps, or sets. Terraform does _not_ provide any way to directly represent lists, maps, or sets.

View File

@ -93,7 +93,7 @@ The values in a map
can be arbitrary expressions. can be arbitrary expressions.
The keys in a map must be strings; they can be left unquoted if The keys in a map must be strings; they can be left unquoted if
they are a valid [identifier](/docs/configuration/syntax.html#identifiers), but must be quoted they are a valid [identifier](/docs/language/syntax/configuration.html#identifiers), but must be quoted
otherwise. You can use a non-literal string expression as a key by wrapping it in otherwise. You can use a non-literal string expression as a key by wrapping it in
parentheses, like `(var.business_unit_tag_name) = "SRE"`. parentheses, like `(var.business_unit_tag_name) = "SRE"`.
@ -124,7 +124,7 @@ offer different ways to restrict the allowed values for input variables and
resource arguments. resource arguments.
For complete details about these types (and an explanation of why the difference For complete details about these types (and an explanation of why the difference
usually doesn't matter), see [Type Constraints](/docs/configuration/types.html). usually doesn't matter), see [Type Constraints](/docs/language/expressions/type-constraints.html).
## Type Conversion ## Type Conversion

View File

@ -9,9 +9,9 @@ Anywhere that Terraform lets you specify a range of acceptable versions for
something, it expects a specially formatted string known as a version something, it expects a specially formatted string known as a version
constraint. Version constraints are used when configuring: constraint. Version constraints are used when configuring:
- [Modules](/docs/configuration/blocks/modules/index.html) - [Modules](/docs/language/modules/index.html)
- [Provider requirements](./provider-requirements.html) - [Provider requirements](/docs/language/providers/requirements.html)
- [The `required_version` setting](./terraform.html#specifying-a-required-terraform-version) in the `terraform` block. - [The `required_version` setting](/docs/language/settings/index.html#specifying-a-required-terraform-version) in the `terraform` block.
## Version Constraint Syntax ## Version Constraint Syntax
@ -22,7 +22,7 @@ other dependency management systems like Bundler and NPM.
version = ">= 1.2.0, < 2.0.0" version = ">= 1.2.0, < 2.0.0"
``` ```
A version constraint is a [string literal](/docs/configuration/expressions/strings.html) A version constraint is a [string literal](/docs/language/expressions/strings.html)
containing one or more conditions, which are separated by commas. containing one or more conditions, which are separated by commas.
Each condition consists of an operator and a version number. Each condition consists of an operator and a version number.

View File

@ -9,7 +9,7 @@ page_title: "Files and Directories - Configuration Language"
Code in the Terraform language is stored in plain text files with the `.tf` file Code in the Terraform language is stored in plain text files with the `.tf` file
extension. There is also extension. There is also
[a JSON-based variant of the language](/docs/configuration/syntax-json.html) that is named with [a JSON-based variant of the language](/docs/language/syntax/json.html) that is named with
the `.tf.json` file extension. the `.tf.json` file extension.
Files containing Terraform code are often called _configuration files._ Files containing Terraform code are often called _configuration files._
@ -34,7 +34,7 @@ treating the entire module as a single document. Separating various blocks into
different files is purely for the convenience of readers and maintainers, and different files is purely for the convenience of readers and maintainers, and
has no effect on the module's behavior. has no effect on the module's behavior.
A Terraform module can use [module calls](/docs/configuration/blocks/modules/index.html) to A Terraform module can use [module calls](/docs/language/modules/index.html) to
explicitly include other modules into the configuration. These child modules can explicitly include other modules into the configuration. These child modules can
come from local directories (nested in the parent module's directory, or come from local directories (nested in the parent module's directory, or
anywhere else on disk), or from external sources like the anywhere else on disk), or from external sources like the

View File

@ -19,7 +19,7 @@ fallback values for failing expressions.
The primary purpose of `can` is to turn an error condition into a boolean The primary purpose of `can` is to turn an error condition into a boolean
validation result when writing validation result when writing
[custom variable validation rules](../variables.html#custom-validation-rules). [custom variable validation rules](/docs/language/values/variables.html#custom-validation-rules).
For example: For example:
``` ```

View File

@ -66,7 +66,7 @@ platforms.
``` ```
You can use nested `cidrsubnets` calls with You can use nested `cidrsubnets` calls with
[`for` expressions](/docs/configuration/expressions/for.html) [`for` expressions](/docs/language/expressions/for.html)
to concisely allocate groups of network address blocks: to concisely allocate groups of network address blocks:
``` ```

View File

@ -42,7 +42,7 @@ number of fields, or this function will produce an error.
## Use with the `for_each` meta-argument ## Use with the `for_each` meta-argument
You can use the result of `csvdecode` with You can use the result of `csvdecode` with
[the `for_each` meta-argument](/docs/configuration/meta-arguments/for_each.html) [the `for_each` meta-argument](/docs/language/meta-arguments/for_each.html)
to describe a collection of similar objects whose differences are to describe a collection of similar objects whose differences are
described by the rows in the given CSV file. described by the rows in the given CSV file.
@ -90,7 +90,7 @@ create or destroy associated instances as appropriate.
If there is no reasonable value you can use as a unique identifier in your CSV If there is no reasonable value you can use as a unique identifier in your CSV
then you could instead use then you could instead use
[the `count` meta-argument](/docs/configuration/meta-arguments/count.html) [the `count` meta-argument](/docs/language/meta-arguments/count.html)
to define an object for each CSV row, with each one identified by its index into to define an object for each CSV row, with each one identified by its index into
the list returned by `csvdecode`. However, in that case any future updates to the list returned by `csvdecode`. However, in that case any future updates to
the CSV may be disruptive if they change the positions of particular objects in the CSV may be disruptive if they change the positions of particular objects in

View File

@ -11,7 +11,7 @@ description: |-
-> **Note:** This function is available only in Terraform 0.15 and later. -> **Note:** This function is available only in Terraform 0.15 and later.
~> **Experimental:** This function is part of ~> **Experimental:** This function is part of
[the optional attributes experiment](../types.html#experimental-optional-object-type-attributes) [the optional attributes experiment](/docs/language/expressions/type-constraints.html#experimental-optional-object-type-attributes)
and is only available in modules where the `module_variable_optional_attrs` and is only available in modules where the `module_variable_optional_attrs`
experiment is explicitly enabled. experiment is explicitly enabled.
@ -30,7 +30,7 @@ defaults(input_value, defaults)
``` ```
The `defaults` function expects that the `input_value` argument will be the The `defaults` function expects that the `input_value` argument will be the
value of an input variable with an exact [type constraint](../types.html) value of an input variable with an exact [type constraint](/docs/language/expressions/types.html)
(not containing `any`). The function will then visit every attribute in (not containing `any`). The function will then visit every attribute in
the data structure, including attributes of nested objects, and apply the the data structure, including attributes of nested objects, and apply the
default values given in the defaults object. default values given in the defaults object.

View File

@ -65,7 +65,7 @@ before Terraform takes any actions.
``` ```
A common use of `fileset` is to create one resource instance per matched file, using A common use of `fileset` is to create one resource instance per matched file, using
[the `for_each` meta-argument](/docs/configuration/meta-arguments/for_each.html): [the `for_each` meta-argument](/docs/language/meta-arguments/for_each.html):
```hcl ```hcl
resource "example_thing" "example" { resource "example_thing" "example" {

View File

@ -31,9 +31,9 @@ Indirectly-nested lists, such as those in maps, are _not_ flattened.
## Flattening nested structures for `for_each` ## Flattening nested structures for `for_each`
The The
[resource `for_each`](/docs/configuration/meta-arguments/for_each.html) [resource `for_each`](/docs/language/meta-arguments/for_each.html)
and and
[`dynamic` block](/docs/configuration/expressions/dynamic-blocks.html) [`dynamic` block](/docs/language/expressions/dynamic-blocks.html)
language features both require a collection value that has one element for language features both require a collection value that has one element for
each repetition. each repetition.

View File

@ -21,7 +21,7 @@ max(5, 12, 9)
``` ```
For more details on syntax, see For more details on syntax, see
[_Function Calls_](/docs/configuration/expressions/function-calls.html) [_Function Calls_](/docs/language/expressions/function-calls.html)
in the Expressions section. in the Expressions section.
The Terraform language does not support user-defined functions, and so only The Terraform language does not support user-defined functions, and so only

View File

@ -15,7 +15,7 @@ of the result of decoding that string.
The JSON encoding is defined in [RFC 7159](https://tools.ietf.org/html/rfc7159). The JSON encoding is defined in [RFC 7159](https://tools.ietf.org/html/rfc7159).
This function maps JSON values to This function maps JSON values to
[Terraform language values](/docs/configuration/expressions/types.html) [Terraform language values](/docs/language/expressions/types.html)
in the following way: in the following way:
| JSON type | Terraform type | | JSON type | Terraform type |

View File

@ -13,7 +13,7 @@ description: |-
The JSON encoding is defined in [RFC 7159](https://tools.ietf.org/html/rfc7159). The JSON encoding is defined in [RFC 7159](https://tools.ietf.org/html/rfc7159).
This function maps This function maps
[Terraform language values](/docs/configuration/expressions/types.html) [Terraform language values](/docs/language/expressions/types.html)
to JSON values in the following way: to JSON values in the following way:
| Terraform type | JSON type | | Terraform type | JSON type |

View File

@ -20,7 +20,7 @@ tolist([a, b, c])
The `[ ... ]` brackets construct a tuple value, and then the `tolist` function The `[ ... ]` brackets construct a tuple value, and then the `tolist` function
then converts it to a list. For more information on the value types in the then converts it to a list. For more information on the value types in the
Terraform language, see [Type Constraints](../types.html). Terraform language, see [Type Constraints](/docs/language/expressions/types.html).
## Related Functions ## Related Functions

View File

@ -23,7 +23,7 @@ tomap({
The `{ ... }` braces construct an object value, and then the `tomap` function The `{ ... }` braces construct an object value, and then the `tomap` function
then converts it to a map. For more information on the value types in the then converts it to a map. For more information on the value types in the
Terraform language, see [Type Constraints](../types.html). Terraform language, see [Type Constraints](/docs/language/expressions/types.html).
## Related Functions ## Related Functions

View File

@ -117,9 +117,9 @@ elements all have a consistent type:
## Finding combinations for `for_each` ## Finding combinations for `for_each`
The The
[resource `for_each`](/docs/configuration/meta-arguments/for_each.html) [resource `for_each`](/docs/language/meta-arguments/for_each.html)
and and
[`dynamic` block](/docs/configuration/expressions/dynamic-blocks.html) [`dynamic` block](/docs/language/expressions/dynamic-blocks.html)
language features both require a collection value that has one element for language features both require a collection value that has one element for
each repetition. each repetition.

View File

@ -17,7 +17,7 @@ templatefile(path, vars)
``` ```
The template syntax is the same as for The template syntax is the same as for
[string templates](/docs/configuration/expressions/strings.html#string-templates) [string templates](/docs/language/expressions/strings.html#string-templates)
in the main Terraform language, including interpolation sequences delimited with in the main Terraform language, including interpolation sequences delimited with
`${` ... `}`. This function just allows longer template sequences to be factored `${` ... `}`. This function just allows longer template sequences to be factored
out into a separate file for readability. out into a separate file for readability.
@ -98,7 +98,7 @@ interpolation sequences and directives.
Instead, you can write a template that consists only of a single interpolated Instead, you can write a template that consists only of a single interpolated
call to either [`jsonencode`](./jsonencode.html) or call to either [`jsonencode`](./jsonencode.html) or
[`yamlencode`](./yamlencode.html), specifying the value to encode using [`yamlencode`](./yamlencode.html), specifying the value to encode using
[normal Terraform expression syntax](/docs/configuration/expressions/index.html) [normal Terraform expression syntax](/docs/language/expressions/index.html)
as in the following examples: as in the following examples:
``` ```
@ -118,9 +118,9 @@ this will produce a valid JSON or YAML representation of the given data
structure, without the need to manually handle escaping or delimiters. structure, without the need to manually handle escaping or delimiters.
In the latest examples above, the repetition based on elements of `ip_addrs` is In the latest examples above, the repetition based on elements of `ip_addrs` is
achieved by using a achieved by using a
[`for` expression](/docs/configuration/expressions/for.html) [`for` expression](/docs/language/expressions/for.html)
rather than by using rather than by using
[template directives](/docs/configuration/expressions/strings.html#directives). [template directives](/docs/language/expressions/strings.html#directives).
```json ```json
{"backends":["10.0.0.1:8080","10.0.0.2:8080"]} {"backends":["10.0.0.1:8080","10.0.0.2:8080"]}

View File

@ -20,7 +20,7 @@ The result of this function will change every second, so using this function
directly with resource attributes will cause a diff to be detected on every directly with resource attributes will cause a diff to be detected on every
Terraform run. We do not recommend using this function in resource attributes, Terraform run. We do not recommend using this function in resource attributes,
but in rare cases it can be used in conjunction with but in rare cases it can be used in conjunction with
[the `ignore_changes` lifecycle meta-argument](/docs/configuration/meta-arguments/lifecycle.html#ignore_changes) [the `ignore_changes` lifecycle meta-argument](/docs/language/meta-arguments/lifecycle.html#ignore_changes)
to take the timestamp only on initial creation of the resource. For more stable to take the timestamp only on initial creation of the resource. For more stable
time handling, see the [Time Provider](https://registry.terraform.io/providers/hashicorp/time/). time handling, see the [Time Provider](https://registry.terraform.io/providers/hashicorp/time/).

View File

@ -19,11 +19,11 @@ This function produces a new value each time it is called, and so using it
directly in resource arguments will result in spurious diffs. We do not directly in resource arguments will result in spurious diffs. We do not
recommend using the `uuid` function in resource configurations, but it can recommend using the `uuid` function in resource configurations, but it can
be used with care in conjunction with be used with care in conjunction with
[the `ignore_changes` lifecycle meta-argument](/docs/configuration/meta-arguments/lifecycle.html#ignore_changes). [the `ignore_changes` lifecycle meta-argument](/docs/language/meta-arguments/lifecycle.html#ignore_changes).
In most cases we recommend using [the `random` provider](https://registry.terraform.io/providers/hashicorp/random/latest/docs) In most cases we recommend using [the `random` provider](https://registry.terraform.io/providers/hashicorp/random/latest/docs)
instead, since it allows the one-time generation of random values that are instead, since it allows the one-time generation of random values that are
then retained in the Terraform [state](/docs/state/index.html) for use by then retained in the Terraform [state](/docs/language/state/index.html) for use by
future operations. In particular, future operations. In particular,
[`random_id`](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id) can generate results with [`random_id`](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id) can generate results with
equivalent randomness to the `uuid` function. equivalent randomness to the `uuid` function.

View File

@ -16,7 +16,7 @@ This function supports a subset of [YAML 1.2](https://yaml.org/spec/1.2/spec.htm
as described below. as described below.
This function maps YAML values to This function maps YAML values to
[Terraform language values](/docs/configuration/expressions/types.html) [Terraform language values](/docs/language/expressions/types.html)
in the following way: in the following way:
| YAML type | Terraform type | | YAML type | Terraform type |

View File

@ -29,7 +29,7 @@ results are also valid YAML because YAML is a JSON superset.
--> -->
This function maps This function maps
[Terraform language values](/docs/configuration/expressions/types.html) [Terraform language values](/docs/language/expressions/types.html)
to YAML tags in the following way: to YAML tags in the following way:
| Terraform type | YAML type | | Terraform type | YAML type |

View File

@ -19,7 +19,7 @@ heart of the workflow.
## About the Terraform Language ## About the Terraform Language
The main purpose of the Terraform language is declaring The main purpose of the Terraform language is declaring
[resources](/docs/configuration/blocks/resources/index.html), which represent infrastructure objects. All other [resources](/docs/language/resources/index.html), which represent infrastructure objects. All other
language features exist only to make the definition of resources more flexible language features exist only to make the definition of resources more flexible
and convenient. and convenient.

View File

@ -12,14 +12,14 @@ previous versions can only use it with resources.
> **Hands-on:** Try the [Manage Similar Resources With Count](https://learn.hashicorp.com/tutorials/terraform/count?in=terraform/0-13&utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) tutorial on HashiCorp Learn. > **Hands-on:** Try the [Manage Similar Resources With Count](https://learn.hashicorp.com/tutorials/terraform/count?in=terraform/0-13&utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) tutorial on HashiCorp Learn.
By default, a [resource block](/docs/configuration/blocks/resources/syntax.html) configures one real By default, a [resource block](/docs/language/resources/syntax.html) configures one real
infrastructure object. (Similarly, a infrastructure object. (Similarly, a
[module block](/docs/configuration/blocks/modules/syntax.html) includes a [module block](/docs/language/modules/syntax.html) includes a
child module's contents into the configuration one time.) child module's contents into the configuration one time.)
However, sometimes you want to manage several similar objects (like a fixed However, sometimes you want to manage several similar objects (like a fixed
pool of compute instances) without writing a separate block for each one. pool of compute instances) without writing a separate block for each one.
Terraform has two ways to do this: Terraform has two ways to do this:
`count` and [`for_each`](/docs/configuration/meta-arguments/for_each.html). `count` and [`for_each`](/docs/language/meta-arguments/for_each.html).
If a resource or module block includes a `count` argument whose value is a whole number, If a resource or module block includes a `count` argument whose value is a whole number,
Terraform will create that many instances. Terraform will create that many instances.
@ -58,7 +58,7 @@ This object has one attribute:
## Using Expressions in `count` ## Using Expressions in `count`
The `count` meta-argument accepts numeric [expressions](/docs/configuration/expressions/index.html). The `count` meta-argument accepts numeric [expressions](/docs/language/expressions/index.html).
However, unlike most arguments, the `count` value must be known However, unlike most arguments, the `count` value must be known
_before_ Terraform performs any remote resource actions. This means `count` _before_ Terraform performs any remote resource actions. This means `count`
can't refer to any resource attributes that aren't known until after a can't refer to any resource attributes that aren't known until after a

View File

@ -13,14 +13,14 @@ it with resources.
> **Hands-on:** Try the [Manage Similar Resources With For Each](https://learn.hashicorp.com/tutorials/terraform/for-each?in=terraform/0-13&utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) tutorial on HashiCorp Learn. > **Hands-on:** Try the [Manage Similar Resources With For Each](https://learn.hashicorp.com/tutorials/terraform/for-each?in=terraform/0-13&utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS) tutorial on HashiCorp Learn.
By default, a [resource block](/docs/configuration/blocks/resources/syntax.html) configures one real By default, a [resource block](/docs/language/resources/syntax.html) configures one real
infrastructure object (and similarly, a infrastructure object (and similarly, a
[module block](/docs/configuration/blocks/modules/syntax.html) includes a [module block](/docs/language/modules/syntax.html) includes a
child module's contents into the configuration one time). child module's contents into the configuration one time).
However, sometimes you want to manage several similar objects (like a fixed However, sometimes you want to manage several similar objects (like a fixed
pool of compute instances) without writing a separate block for each one. pool of compute instances) without writing a separate block for each one.
Terraform has two ways to do this: Terraform has two ways to do this:
[`count`](/docs/configuration/meta-arguments/count.html) and `for_each`. [`count`](/docs/language/meta-arguments/count.html) and `for_each`.
If a resource or module block includes a `for_each` argument whose value is a map or If a resource or module block includes a `for_each` argument whose value is a map or
a set of strings, Terraform will create one instance for each member of a set of strings, Terraform will create one instance for each member of
@ -107,16 +107,16 @@ that cannot be determined before apply, and a `-target` may be needed.
including `uuid`, `bcrypt`, or `timestamp`, as their evaluation is deferred during the including `uuid`, `bcrypt`, or `timestamp`, as their evaluation is deferred during the
main evaluation step. main evaluation step.
Sensitive values, such as [sensitive input variables](https://www.terraform.io/docs/configuration/variables.html#suppressing-values-in-cli-output), Sensitive values, such as [sensitive input variables](https://www.terraform.io/docs/language/values/variables.html#suppressing-values-in-cli-output),
[sensitive outputs](https://www.terraform.io/docs/configuration/outputs.html#sensitive-suppressing-values-in-cli-output), [sensitive outputs](https://www.terraform.io/docs/language/values/outputs.html#sensitive-suppressing-values-in-cli-output),
or [sensitive resource attributes](https://www.terraform.io/docs/configuration/expressions/references.html#sensitive-resource-attributes) or [sensitive resource attributes](https://www.terraform.io/docs/language/expressions/references.html#sensitive-resource-attributes)
(if the `provider_sensitive_attrs` experiment is enabled), cannot be used as arguments (if the `provider_sensitive_attrs` experiment is enabled), cannot be used as arguments
to `for_each`. The value used in `for_each` is used to identify the resource instance to `for_each`. The value used in `for_each` is used to identify the resource instance
and will always be disclosed in UI output, which is why sensitive values are not allowed. and will always be disclosed in UI output, which is why sensitive values are not allowed.
Attempts to use sensitive values as `for_each` arguments will result in an error. Attempts to use sensitive values as `for_each` arguments will result in an error.
If you transform a value containing sensitive data into an argument to be used in `for_each`, be aware that If you transform a value containing sensitive data into an argument to be used in `for_each`, be aware that
[most functions in Terraform will return a sensitive result if given an argument with any sensitive content](https://www.terraform.io/docs/configuration/expressions/function-calls.html#using-sensitive-data-as-function-arguments). [most functions in Terraform will return a sensitive result if given an argument with any sensitive content](https://www.terraform.io/docs/language/expressions/function-calls.html#using-sensitive-data-as-function-arguments).
In many cases, you can achieve similar results to a function used for this purpose by In many cases, you can achieve similar results to a function used for this purpose by
using a `for` expression. For example, if you would like to call `keys(local.map)`, where using a `for` expression. For example, if you would like to call `keys(local.map)`, where
`local.map` is an object with sensitive values (but non-sensitive keys), you can create a `local.map` is an object with sensitive values (but non-sensitive keys), you can create a
@ -124,7 +124,7 @@ value to pass to `for_each` with `toset([for k,v in local.map : k])`.
## Using Expressions in `for_each` ## Using Expressions in `for_each`
The `for_each` meta-argument accepts map or set [expressions](/docs/configuration/expressions/index.html). The `for_each` meta-argument accepts map or set [expressions](/docs/language/expressions/index.html).
However, unlike most arguments, the `for_each` value must be known However, unlike most arguments, the `for_each` value must be known
_before_ Terraform performs any remote resource actions. This means `for_each` _before_ Terraform performs any remote resource actions. This means `for_each`
can't refer to any resource attributes that aren't known until after a can't refer to any resource attributes that aren't known until after a
@ -133,7 +133,7 @@ an object is created).
The `for_each` value must be a map or set with one element per desired The `for_each` value must be a map or set with one element per desired
resource instance. When providing a set, you must use an expression that resource instance. When providing a set, you must use an expression that
explicitly returns a set value, like the [`toset`](/docs/configuration/functions/toset.html) explicitly returns a set value, like the [`toset`](/docs/language/functions/toset.html)
function; to prevent unwanted surprises during conversion, the `for_each` function; to prevent unwanted surprises during conversion, the `for_each`
argument does not implicitly convert lists or tuples to sets. argument does not implicitly convert lists or tuples to sets.
If you need to declare resource instances based on a nested If you need to declare resource instances based on a nested
@ -142,10 +142,10 @@ can use Terraform expressions and functions to derive a suitable value.
For example: For example:
* Transform a multi-level nested structure into a flat list by * Transform a multi-level nested structure into a flat list by
[using nested `for` expressions with the `flatten` function](/docs/configuration/functions/flatten.html#flattening-nested-structures-for-for_each). [using nested `for` expressions with the `flatten` function](/docs/language/functions/flatten.html#flattening-nested-structures-for-for_each).
* Produce an exhaustive list of combinations of elements from two or more * Produce an exhaustive list of combinations of elements from two or more
collections by collections by
[using the `setproduct` function inside a `for` expression](/docs/configuration/functions/setproduct.html#finding-combinations-for-for_each). [using the `setproduct` function inside a `for` expression](/docs/language/functions/setproduct.html#finding-combinations-for-for_each).
## Referring to Instances ## Referring to Instances
@ -172,7 +172,7 @@ as a whole.
## Using Sets ## Using Sets
The Terraform language doesn't have a literal syntax for The Terraform language doesn't have a literal syntax for
[set values](/docs/configuration/types.html#collection-types), but you can use the `toset` [set values](/docs/language/expressions/type-constraints.html#collection-types), but you can use the `toset`
function to explicitly convert a list of strings to a set: function to explicitly convert a list of strings to a set:
```hcl ```hcl
@ -201,7 +201,7 @@ removes any duplicate elements. `toset(["b", "a", "b"])` will produce a set
containing only `"a"` and `"b"` in no particular order; the second `"b"` is containing only `"a"` and `"b"` in no particular order; the second `"b"` is
discarded. discarded.
If you are writing a module with an [input variable](/docs/configuration/variables.html) that If you are writing a module with an [input variable](/docs/language/values/variables.html) that
will be used as a set of strings for `for_each`, you can set its type to will be used as a set of strings for `for_each`, you can set its type to
`set(string)` to avoid the need for an explicit type conversion: `set(string)` to avoid the need for an explicit type conversion:

View File

@ -6,7 +6,7 @@ page_title: "The lifecycle Meta-Argument - Configuration Language"
# The `lifecycle` Meta-Argument # The `lifecycle` Meta-Argument
The general lifecycle for resources is described in the The general lifecycle for resources is described in the
[Resource Behavior](/docs/configuration/blocks/resources/behavior.html) page. Some details of [Resource Behavior](/docs/language/resources/behavior.html) page. Some details of
that behavior can be customized using the special nested `lifecycle` block that behavior can be customized using the special nested `lifecycle` block
within a resource block body: within a resource block body:

View File

@ -5,9 +5,9 @@ page_title: "The Module providers Meta-Argument - Configuration Language"
# The Module `providers` Meta-Argument # The Module `providers` Meta-Argument
In a [module call](/docs/configuration/blocks/modules/syntax.html) block, the In a [module call](/docs/language/modules/syntax.html) block, the
optional `providers` meta-argument specifies which optional `providers` meta-argument specifies which
[provider configurations](/docs/configuration/providers.html) from the parent [provider configurations](/docs/language/providers/configuration.html) from the parent
module will be available inside the child module. module will be available inside the child module.
```hcl ```hcl
@ -120,4 +120,4 @@ names it needs.
For more details and guidance about working with providers inside a re-usable For more details and guidance about working with providers inside a re-usable
child module, see child module, see
[Module Development: Providers Within Modules](/docs/modules/providers.html). [Module Development: Providers Within Modules](/docs/language/modules/develop/providers.html).

View File

@ -9,7 +9,7 @@ The `provider` meta-argument specifies which provider configuration to use for a
overriding Terraform's default behavior of selecting one based on the resource overriding Terraform's default behavior of selecting one based on the resource
type name. Its value should be an unquoted `<PROVIDER>.<ALIAS>` reference. type name. Its value should be an unquoted `<PROVIDER>.<ALIAS>` reference.
As described in [Provider Configuration](/docs/configuration/providers.html), you can optionally As described in [Provider Configuration](/docs/language/providers/configuration.html), you can optionally
create multiple configurations for a single provider (usually to manage create multiple configurations for a single provider (usually to manage
resources in different regions of multi-region services). Each provider can have resources in different regions of multi-region services). Each provider can have
one default configuration, and any number of alternate configurations that one default configuration, and any number of alternate configurations that
@ -51,7 +51,7 @@ ensure that the provider is fully configured before any resource actions
are taken. are taken.
The `provider` meta-argument expects The `provider` meta-argument expects
[a `<PROVIDER>.<ALIAS>` reference](/docs/configuration/providers.html#referring-to-alternate-provider-configurations), [a `<PROVIDER>.<ALIAS>` reference](/docs/language/providers/configuration.html#referring-to-alternate-provider-configurations),
which does not need to be quoted. Arbitrary expressions are not permitted for which does not need to be quoted. Arbitrary expressions are not permitted for
`provider` because it must be resolved while Terraform is constructing the `provider` because it must be resolved while Terraform is constructing the
dependency graph, before it is safe to evaluate expressions. dependency graph, before it is safe to evaluate expressions.

View File

@ -310,7 +310,7 @@ Most modules contain `resource` blocks and thus describe infrastructure to be
created and managed. It may sometimes be useful to write modules that do not created and managed. It may sometimes be useful to write modules that do not
describe any new infrastructure at all, but merely retrieve information about describe any new infrastructure at all, but merely retrieve information about
existing infrastructure that was created elsewhere using existing infrastructure that was created elsewhere using
[data sources](/docs/configuration/data-sources.html). [data sources](/docs/language/data-sources/index.html).
As with conventional modules, we suggest using this technique only when the As with conventional modules, we suggest using this technique only when the
module raises the level of abstraction in some way, in this case by module raises the level of abstraction in some way, in this case by
@ -346,7 +346,7 @@ data sources, or it could read saved information from a Consul cluster using
[`consul_keys`](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/data-sources/keys), [`consul_keys`](https://registry.terraform.io/providers/hashicorp/consul/latest/docs/data-sources/keys),
or it might read the outputs directly from the state of the configuration that or it might read the outputs directly from the state of the configuration that
manages the network using manages the network using
[`terraform_remote_state`](https://www.terraform.io/docs/providers/terraform/d/remote_state.html). [`terraform_remote_state`](https://www.terraform.io/docs/language/state/remote-state-data.html).
The key benefit of this approach is that the source of this information can The key benefit of this approach is that the source of this information can
change over time without updating every configuration that depends on it. change over time without updating every configuration that depends on it.

Some files were not shown because too many files have changed in this diff Show More