diff --git a/website/docs/backends/config.html.md b/website/docs/backends/config.html.md
index 5940a82d0..ec1b017e6 100644
--- a/website/docs/backends/config.html.md
+++ b/website/docs/backends/config.html.md
@@ -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
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
you have multiple workspaces, it will ask if this is what you want to do.
diff --git a/website/docs/backends/types/index.html.md b/website/docs/backends/types/index.html.md
index 5ec60ee6f..17dcd48dd 100644
--- a/website/docs/backends/types/index.html.md
+++ b/website/docs/backends/types/index.html.md
@@ -17,7 +17,7 @@ these by calling a backend either **standard** or **enhanced**. All backends
must implement **standard** functionality. These are defined below:
* **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
[remote operations](/docs/backends/operations.html).
diff --git a/website/docs/cli-index.html.md b/website/docs/cli-index.html.md
index 43854ee7d..6d66974e5 100644
--- a/website/docs/cli-index.html.md
+++ b/website/docs/cli-index.html.md
@@ -17,4 +17,4 @@ Cloud or Terraform Enterprise.
Notably, this documentation does not cover the syntax and usage of the Terraform
language. For that, see the
-[Terraform Language Documentation](/docs/configuration/index.html).
+[Terraform Language Documentation](/docs/language/index.html).
diff --git a/website/docs/cli/code/index.html.md b/website/docs/cli/code/index.html.md
index 3c72083c4..7c3c78a01 100644
--- a/website/docs/cli/code/index.html.md
+++ b/website/docs/cli/code/index.html.md
@@ -5,7 +5,7 @@ page_title: "Writing and Modifying Code - Terraform CLI"
# 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
in the Terraform language.
@@ -15,7 +15,7 @@ potentially save you time and effort.
- [The `terraform console` command](/docs/commands/console.html) starts an
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.
diff --git a/website/docs/cli/init/index.html.md b/website/docs/cli/init/index.html.md
index f72a0921b..11bb27649 100644
--- a/website/docs/cli/init/index.html.md
+++ b/website/docs/cli/init/index.html.md
@@ -7,7 +7,7 @@ page_title: "Initializing Working Directories - Terraform CLI"
Terraform expects to be invoked from a working directory that contains
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
settings, cached plugins and modules, and sometimes state data.
diff --git a/website/docs/cli/inspect/index.html.md b/website/docs/cli/inspect/index.html.md
index de6899107..070842c69 100644
--- a/website/docs/cli/inspect/index.html.md
+++ b/website/docs/cli/inspect/index.html.md
@@ -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
representation of a configuration or a set of planned changes.
- [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
Terraform has provisioned.
- [The `terraform show` command](/docs/commands/show.html) can generate
diff --git a/website/docs/cli/plugins/index.html.md b/website/docs/cli/plugins/index.html.md
index bae835eea..f7424023c 100644
--- a/website/docs/cli/plugins/index.html.md
+++ b/website/docs/cli/plugins/index.html.md
@@ -7,7 +7,7 @@ page_title: "Managing Plugins - Terraform CLI"
Terraform relies on plugins called "providers" in order to manage various types
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.)
-> **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.
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,
this works without any additional interaction but requires network access to
download providers from their source registry.
diff --git a/website/docs/cli/run/index.html.md b/website/docs/cli/run/index.html.md
index d7fec11ce..c54c6d5a0 100644
--- a/website/docs/cli/run/index.html.md
+++ b/website/docs/cli/run/index.html.md
@@ -7,7 +7,7 @@ page_title: "Provisioning Infrastructure - Terraform CLI"
Terraform's primary function is to create, modify, and destroy infrastructure
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
provisioning actions in order to affect real infrastructure objects. The
diff --git a/website/docs/cli/state/index.html.md b/website/docs/cli/state/index.html.md
index 3a35e4fe5..63e7d0bd7 100644
--- a/website/docs/cli/state/index.html.md
+++ b/website/docs/cli/state/index.html.md
@@ -5,7 +5,7 @@ page_title: "Manipulating State - Terraform CLI"
# 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;
this allows it to modify an existing object when its resource declaration
changes.
diff --git a/website/docs/cli/state/taint.html.md b/website/docs/cli/state/taint.html.md
index 433e80591..7a9b89435 100644
--- a/website/docs/cli/state/taint.html.md
+++ b/website/docs/cli/state/taint.html.md
@@ -22,4 +22,4 @@ configuration changes.
- [The `terraform untaint` command](/docs/commands/untaint.html) undoes a
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).
diff --git a/website/docs/cli/workspaces/index.html.md b/website/docs/cli/workspaces/index.html.md
index afb7d164c..aabce80f2 100644
--- a/website/docs/cli/workspaces/index.html.md
+++ b/website/docs/cli/workspaces/index.html.md
@@ -6,7 +6,7 @@ page_title: "Managing Workspaces - Terraform CLI"
# Managing Workspaces
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
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
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
completely separate state data, Terraform can manage many non-overlapping groups
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
production deployments), and in other cases you might just want many instances
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
completely separate state data is to use multiple
[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).
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
CLI as a frontend for Terraform Cloud, you associate the current working
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
`terraform workspace` commands to select which remote workspace to use.
diff --git a/website/docs/commands/0.12upgrade.html.markdown b/website/docs/commands/0.12upgrade.html.markdown
index d5354d82a..59ff0de44 100644
--- a/website/docs/commands/0.12upgrade.html.markdown
+++ b/website/docs/commands/0.12upgrade.html.markdown
@@ -71,13 +71,13 @@ the change.
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
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
[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
change for v0.11 callers. If a module is installed directly from a version
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.
The command-line options are all optional. The available options are:
diff --git a/website/docs/commands/0.13upgrade.html.markdown b/website/docs/commands/0.13upgrade.html.markdown
index 28d948155..52ff42067 100644
--- a/website/docs/commands/0.13upgrade.html.markdown
+++ b/website/docs/commands/0.13upgrade.html.markdown
@@ -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
[`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.
diff --git a/website/docs/commands/apply.html.markdown b/website/docs/commands/apply.html.markdown
index fe15702fc..31c5b7ad1 100644
--- a/website/docs/commands/apply.html.markdown
+++ b/website/docs/commands/apply.html.markdown
@@ -56,14 +56,14 @@ The command-line flags are all optional. The list of available flags are:
apply.
* `-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
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` 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
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
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.
* `-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
directory, they will be automatically loaded. `terraform.tfvars` is loaded
first and the `.auto.tfvars` files after in alphabetical order. Any files
diff --git a/website/docs/commands/cli-config.html.markdown b/website/docs/commands/cli-config.html.markdown
index d2c4aeaaf..0f710bb10 100644
--- a/website/docs/commands/cli-config.html.markdown
+++ b/website/docs/commands/cli-config.html.markdown
@@ -11,7 +11,7 @@ description: |-
The CLI configuration file configures per-user settings for CLI behaviors,
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
@@ -394,7 +394,7 @@ provider_installation {
With development overrides in effect, the `terraform init` command will still
attempt to select a suitable published version of your provider to install and
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
`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
diff --git a/website/docs/commands/console.html.markdown b/website/docs/commands/console.html.markdown
index 5e146c791..7d300078c 100644
--- a/website/docs/commands/console.html.markdown
+++ b/website/docs/commands/console.html.markdown
@@ -10,27 +10,27 @@ description: |-
# Command: console
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: `terraform console [options]`
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,
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
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:
* `-state=path` - Path to a local state file. Expressions will be evaluated
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
or Control-D.
@@ -50,6 +50,6 @@ $ echo "1 + 5" | terraform console
## 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
before evaluating any expressions.
diff --git a/website/docs/commands/environment-variables.html.md b/website/docs/commands/environment-variables.html.md
index ed003332e..e2af8e0aa 100644
--- a/website/docs/commands/environment-variables.html.md
+++ b/website/docs/commands/environment-variables.html.md
@@ -59,7 +59,7 @@ export TF_VAR_alist='[1,2,3]'
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
@@ -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.
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
@@ -159,4 +159,4 @@ If `TF_IGNORE` is set to "trace", Terraform will output debug messages to displa
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).
diff --git a/website/docs/commands/fmt.html.markdown b/website/docs/commands/fmt.html.markdown
index 5003fe9d3..b07a97df7 100644
--- a/website/docs/commands/fmt.html.markdown
+++ b/website/docs/commands/fmt.html.markdown
@@ -10,7 +10,7 @@ description: |-
The `terraform fmt` command is used to rewrite Terraform configuration files
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.
Other Terraform commands that generate Terraform configuration will produce
diff --git a/website/docs/commands/get.html.markdown b/website/docs/commands/get.html.markdown
index 80cbf4a5e..b847fecd6 100644
--- a/website/docs/commands/get.html.markdown
+++ b/website/docs/commands/get.html.markdown
@@ -9,7 +9,7 @@ description: |-
# Command: get
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
diff --git a/website/docs/commands/import.html.md b/website/docs/commands/import.html.md
index 5a8e1b72f..20e9372cc 100644
--- a/website/docs/commands/import.html.md
+++ b/website/docs/commands/import.html.md
@@ -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.
If you import the same object multiple times, Terraform may exhibit unwanted
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:
@@ -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
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.
This is only useful with the `-config` flag.
* `-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
directory, they will be automatically loaded. `terraform.tfvars` is loaded
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
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
$ 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
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:
diff --git a/website/docs/commands/init.html.markdown b/website/docs/commands/init.html.markdown
index 3863f3ce2..840100919 100644
--- a/website/docs/commands/init.html.markdown
+++ b/website/docs/commands/init.html.markdown
@@ -98,7 +98,7 @@ be statically specified in the configuration file.
## Child Module Installation
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.
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).
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
-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
when you run `terraform init` again in future Terraform will select exactly
the same provider versions. Use the `-upgrade` option if you want Terraform
diff --git a/website/docs/commands/output.html.markdown b/website/docs/commands/output.html.markdown
index 8d58e6515..1a828612d 100644
--- a/website/docs/commands/output.html.markdown
+++ b/website/docs/commands/output.html.markdown
@@ -31,7 +31,7 @@ The command-line flags are all optional. The list of available flags are:
for processing complex data types.
* `-no-color` - If specified, output won't contain any color.
* `-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
diff --git a/website/docs/commands/plan.html.markdown b/website/docs/commands/plan.html.markdown
index 8f7f9ebe7..63d0937ca 100644
--- a/website/docs/commands/plan.html.markdown
+++ b/website/docs/commands/plan.html.markdown
@@ -70,7 +70,7 @@ The available options are:
* `-refresh=true` - Update the state prior to checking for differences.
* `-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
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
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.
* `-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
directory, they will be automatically loaded. `terraform.tfvars` is loaded
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
large configurations, prefer instead to break large configurations into
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
a complex system architecture to be broken down into more manageable parts
that can be updated independently.
diff --git a/website/docs/commands/providers.html.markdown b/website/docs/commands/providers.html.markdown
index 4da6a4e3b..3c3bb7d0b 100644
--- a/website/docs/commands/providers.html.markdown
+++ b/website/docs/commands/providers.html.markdown
@@ -10,7 +10,7 @@ description: |-
# Command: providers
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
where each requirement was detected from.
diff --git a/website/docs/commands/providers/lock.html.md b/website/docs/commands/providers/lock.html.md
index 0a570a1b4..345e591bd 100644
--- a/website/docs/commands/providers/lock.html.md
+++ b/website/docs/commands/providers/lock.html.md
@@ -11,7 +11,7 @@ description: |-
The `terraform providers lock` consults upstream registries (by default) in
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
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
to provide signed checksums using the latest hashing scheme, subsequent runs
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
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
the providers it depends on, and it will fetch the necessary data about those
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
that are covered by the provider developer's cryptographic signature.
diff --git a/website/docs/commands/push.html.markdown b/website/docs/commands/push.html.markdown
index 927920b35..bc093a85c 100644
--- a/website/docs/commands/push.html.markdown
+++ b/website/docs/commands/push.html.markdown
@@ -8,7 +8,7 @@ description: |-
# 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.
diff --git a/website/docs/commands/refresh.html.markdown b/website/docs/commands/refresh.html.markdown
index d8f44c8d7..c1ba75804 100644
--- a/website/docs/commands/refresh.html.markdown
+++ b/website/docs/commands/refresh.html.markdown
@@ -43,11 +43,11 @@ The `terraform refresh` command accepts the following options:
to 10.
* `-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` 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
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
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.
* `-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
directory, they will be automatically loaded. `terraform.tfvars` is loaded
first and the `.auto.tfvars` files after in alphabetical order. Any files
diff --git a/website/docs/commands/show.html.markdown b/website/docs/commands/show.html.markdown
index bb0cd7c41..3c78d6d00 100644
--- a/website/docs/commands/show.html.markdown
+++ b/website/docs/commands/show.html.markdown
@@ -18,7 +18,7 @@ flag.
-> **Note:** When using the `-json` command-line flag, any sensitive values in
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
diff --git a/website/docs/commands/state/index.html.md b/website/docs/commands/state/index.html.md
index e3faf2460..31d74b43b 100644
--- a/website/docs/commands/state/index.html.md
+++ b/website/docs/commands/state/index.html.md
@@ -10,7 +10,7 @@ description: |-
The `terraform state` command is used for advanced state management.
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
be used in many cases instead.
diff --git a/website/docs/commands/state/list.html.md b/website/docs/commands/state/list.html.md
index 23d637128..80210ac17 100644
--- a/website/docs/commands/state/list.html.md
+++ b/website/docs/commands/state/list.html.md
@@ -9,7 +9,7 @@ description: |-
# Command: state list
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
@@ -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:
* `-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.
## Example: All Resources
diff --git a/website/docs/commands/state/mv.html.md b/website/docs/commands/state/mv.html.md
index 683bbcbc6..ecfc64d16 100644
--- a/website/docs/commands/state/mv.html.md
+++ b/website/docs/commands/state/mv.html.md
@@ -9,7 +9,7 @@ description: |-
# Command: state mv
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.
This command can also move items to a completely different state file,
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
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`:
```shell
@@ -110,7 +110,7 @@ $ terraform state mv 'packet_device.worker[0]' 'packet_device.helper[0]'
## Example: Move a Resource configured with for_each
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`:
Linux, Mac OS, and UNIX:
diff --git a/website/docs/commands/state/pull.html.md b/website/docs/commands/state/pull.html.md
index f6aa69b97..af2122668 100644
--- a/website/docs/commands/state/pull.html.md
+++ b/website/docs/commands/state/pull.html.md
@@ -9,7 +9,7 @@ description: |-
# Command: state pull
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.
## Usage
diff --git a/website/docs/commands/state/push.html.md b/website/docs/commands/state/push.html.md
index bbd295d60..1481e6bfe 100644
--- a/website/docs/commands/state/push.html.md
+++ b/website/docs/commands/state/push.html.md
@@ -9,7 +9,7 @@ description: |-
# Command: state push
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.
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`
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
is loaded completely into memory and verified prior to being written to
diff --git a/website/docs/commands/state/replace-provider.html.md b/website/docs/commands/state/replace-provider.html.md
index f950943d2..e98373729 100644
--- a/website/docs/commands/state/replace-provider.html.md
+++ b/website/docs/commands/state/replace-provider.html.md
@@ -9,7 +9,7 @@ description: |-
# Command: state replace-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
diff --git a/website/docs/commands/state/rm.html.md b/website/docs/commands/state/rm.html.md
index 60f88f337..d3a84a0d0 100644
--- a/website/docs/commands/state/rm.html.md
+++ b/website/docs/commands/state/rm.html.md
@@ -9,7 +9,7 @@ description: |-
# Command: state rm
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,
and more.
@@ -83,7 +83,7 @@ $ terraform state rm 'module.foo.packet_device.worker'
## Example: Remove a Resource configured with count
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
$ 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
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:
diff --git a/website/docs/commands/state/show.html.md b/website/docs/commands/state/show.html.md
index 85f53d95c..d7d21dcc3 100644
--- a/website/docs/commands/state/show.html.md
+++ b/website/docs/commands/state/show.html.md
@@ -10,7 +10,7 @@ description: |-
The `terraform state show` command is used to show the attributes of a
single resource in the
-[Terraform state](/docs/state/index.html).
+[Terraform state](/docs/language/state/index.html).
## 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:
* `-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
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
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
$ 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
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:
diff --git a/website/docs/commands/taint.html.markdown b/website/docs/commands/taint.html.markdown
index 14dbf039c..5191e9699 100644
--- a/website/docs/commands/taint.html.markdown
+++ b/website/docs/commands/taint.html.markdown
@@ -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.
* `-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` 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
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
-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
address must include all of the steps to the target instance, as in the
following example:
diff --git a/website/docs/commands/untaint.html.markdown b/website/docs/commands/untaint.html.markdown
index 520795fc6..85aab17d8 100644
--- a/website/docs/commands/untaint.html.markdown
+++ b/website/docs/commands/untaint.html.markdown
@@ -52,11 +52,11 @@ certain cases, see above note). The list of available flags are:
* `-no-color` - Disables output with coloring
* `-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` 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
Terraform Cloud, continue even if remote and local Terraform versions differ.
diff --git a/website/docs/commands/workspace/index.html.md b/website/docs/commands/workspace/index.html.md
index 354d96e25..cf60ded67 100644
--- a/website/docs/commands/workspace/index.html.md
+++ b/website/docs/commands/workspace/index.html.md
@@ -9,7 +9,7 @@ description: |-
# Command: workspace
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
listed in the navigation bar.
diff --git a/website/docs/configuration-0-11/data-sources.html.md b/website/docs/configuration-0-11/data-sources.html.md
index 908a24d4b..90f3463e3 100644
--- a/website/docs/configuration-0-11/data-sources.html.md
+++ b/website/docs/configuration-0-11/data-sources.html.md
@@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
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
in Terraform configuration. Use of data sources allows a Terraform
diff --git a/website/docs/configuration-0-11/index.html.md b/website/docs/configuration-0-11/index.html.md
index f804ba11d..35982822a 100644
--- a/website/docs/configuration-0-11/index.html.md
+++ b/website/docs/configuration-0-11/index.html.md
@@ -10,7 +10,7 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
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.
These text files are called Terraform _configurations_ and end in
diff --git a/website/docs/configuration-0-11/interpolation.html.md b/website/docs/configuration-0-11/interpolation.html.md
index aac18e5af..baae61021 100644
--- a/website/docs/configuration-0-11/interpolation.html.md
+++ b/website/docs/configuration-0-11/interpolation.html.md
@@ -10,8 +10,8 @@ description: |-
-> **Note:** This page is about Terraform 0.11 and earlier. For Terraform 0.12
and later, see
-[Configuration Language: Expressions](/docs/configuration/expressions/index.html) and
-[Configuration Language: Functions](../configuration/functions.html).
+[Configuration Language: Expressions](/docs/language/expressions/index.html) and
+[Configuration Language: Functions](/docs/language/functions/index.html).
Embedded within strings in Terraform, whether you're using the
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..