Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
309 changes: 192 additions & 117 deletions content/terraform/v1.14.x/data/language-nav-data.json

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion content/terraform/v1.14.x/docs/language/block/check.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ description: How to use the `check` block to validate infrastructure outside of

Use the `check` block to validate your infrastructure outside of the typical resource lifecycle.

Terraform executes the `check` block as the last step of plan or apply operation, after Terraform has planned or provisioned your infrastructure. When a `check` block's assertion fails, Terraform reports a warning and continues executing the current operation.
Terraform executes the `check` block as the last step of plan or apply operation, after Terraform has planned or provisioned your infrastructure. When a `check` block's assertion fails, Terraform reports a warning and continues executing the current operation. Refer to [Validate your configuration](/terraform/language/validate) for more information.


## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,12 @@ description: Use the `ephemeral` block to define temporary resources that Terraf

# `ephemeral` block reference

Use the `ephemeral` block to define temporary resources that Terraform does not store in state or plan files.
Use the `ephemeral` block to define temporary resources that Terraform does not store in state or plan files. To learn more about the `ephemeral` block and its unique lifecycle and provisioning order, refer to [Manage sensitive data](/terraform/language/manage-sensitive-data).

## Background

The `ephemeral` block declares a temporary ephemeral resource that only exists during the current Terraform operation. Terraform does not store ephemeral resources in state or plan files, making them ideal for managing sensitive or temporary data that you do not want to persist, such as temporary passwords or connections to other systems.

To learn more about the `ephemeral` block and its unique lifecycle and provisioning order, refer to [Manage sensitive data](/terraform/language/manage-sensitive-data).

### Lifecycle

Ephemeral resources have a unique lifecycle compared to regular resources and data sources. Terraform performs the following lifecycle steps for each ephemeral resource:
Expand Down
6 changes: 2 additions & 4 deletions content/terraform/v1.14.x/docs/language/block/locals.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,15 @@ description: Use the `locals` block to define values and reuse them within a Ter

# `locals` block reference

Use the `locals` block to define values and reuse them within a Terraform module.

> **Hands-on:** Try the [Simplify Terraform Configuration with Locals](/terraform/tutorials/configuration-language/locals) tutorial.
Use the `locals` block to define values and reuse them within a Terraform module. To learn more about using `locals` blocks in your configurations, refer to [Use locals to reuse expressions](/terraform/language/values/locals).

## Background

The `locals` block is similar to function-scoped variables in other programming languages. Local values assign names to expressions, letting you use the name multiple times within a module instead of repeating the expression.

You can define local values in any module. Local values can be any valid Terraform expression, and can reference variables, resource attributes, function outputs, or other local values to transform or combine data.

To learn more about using `locals` blocks in your configurations, refer to [Use locals to reuse expressions](/terraform/language/values/locals).
> **Hands-on:** Try the [Simplify Terraform Configuration with Locals](/terraform/tutorials/configuration-language/locals) tutorial.

## Configuration model

Expand Down
6 changes: 1 addition & 5 deletions content/terraform/v1.14.x/docs/language/block/module.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ description: Learn how to configure a `module` block, which instructs Terraform

# `module` block reference

The `module` block instructs Terraform to create resources defined in a local or remote module.

## Introduction

A module is a collection of multiple resources that Terraform manages together. Refer to the following topics for more information:
The `module` block instructs Terraform to create resources defined in a local or remote module. A module is a collection of multiple resources that Terraform manages together. Refer to the following topics for more information:

- [Modules overview](/terraform/language/modules)
- [Use modules in your configuration](/terraform/language/modules/configuration)
Expand Down
6 changes: 2 additions & 4 deletions content/terraform/v1.14.x/docs/language/block/output.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ description: Use the `output` block to expose information about your module's in

# `output` block reference

The `output` block lets you expose information about your infrastructure.

> **Hands-on:** Try the [Output Data From Terraform](/terraform/tutorials/configuration-language/outputs) tutorial.
The `output` block lets you expose information about your infrastructure. To learn more about using `output` blocks, refer to [Use outputs to expose module data](/terraform/language/values/outputs).

## Background

Expand All @@ -20,7 +18,7 @@ The value of an `output` block is similar to a return value in other programming

In HCP Terraform, your `output` block values appear in the UI after Terraform applies your configuration. You can [mark outputs as sensitive in HCP Terraform](/terraform/cloud-docs/workspaces/variables/managing-variables#sensitive-values) to hide their values in the UI and in API responses.

To learn more about using `output` blocks, refer to [Use outputs to expose module data](/terraform/language/values/outputs).
> **Hands-on:** Try the [Output Data From Terraform](/terraform/tutorials/configuration-language/outputs) tutorial.

## Configuration model

Expand Down
8 changes: 4 additions & 4 deletions content/terraform/v1.14.x/docs/language/block/provider.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ description: Use the `provider` block to declare and configure Terraform plugins

# `provider` block reference

Use the `provider` block to declare and configure Terraform plugins, called providers. Providers let Terraform manage real-world infrastructure with provider-defined resources and data sources.

> **Hands-on:** Try the [Perform CRUD Operations with Providers](/terraform/tutorials/configuration-language/provider-use) tutorial.
Use the `provider` block to declare and configure Terraform plugins, called providers. Providers let Terraform manage real-world infrastructure with provider-defined resources and data sources. To learn how to declare providers in your configuration, refer to [Provider requirements](/terraform/language/providers/requirements).

## Background

Expand All @@ -17,7 +15,9 @@ HashiCorp's public [Terraform registry](https://registry.terraform.io/browse/pro

Anyone can develop a Terraform provider and use it locally, or publish it to the Terraform public registry or HCP Terraform private registry. To learn more about authoring providers, refer to the [Plugin framework](/terraform/plugin/framework).

Define provider configurations in the root module of your Terraform configuration. Child modules receive their provider configurations from their parent modules, so we strongly recommend against defining `provider` blocks in child modules. To learn how to declare providers in your configuration, refer to [Provider requirements](/terraform/language/providers/requirements).
Define provider configurations in the root module of your Terraform configuration. Child modules receive their provider configurations from their parent modules, so we strongly recommend against defining `provider` blocks in child modules.

> **Hands-on:** Try the [Perform CRUD Operations with Providers](/terraform/tutorials/configuration-language/provider-use) tutorial.

## Configuration model

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ description: >-

# `resource` block reference

The `resource` block defines a piece of infrastructure and specifies the settings for Terraform to create it with. The arguments that an individual resource supports are determined by the provider. Refer to the provider documentation for more information about specific resource configuration.
The `resource` block defines a piece of infrastructure and specifies the settings for Terraform to create it with. Refer to [Create and manage resources](/terraform/language/resources) for more information about using `resource` blocks in your configuration.

The arguments that an individual resource supports are determined by the provider. Refer to the provider documentation for more information about specific resource configuration.

## Configuration model

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `component` block to define infrastructure modules in your

# `component` block reference

Use the `component` block to source the individual modules that make up your Stack. You can define `component` blocks in a `<NAME>.tfcomponent.hcl` file, which is a component configuration file for your Stack. Each component represents a reusable piece of infrastructure that you can provision and manage.
Use the `component` block to source the individual modules that make up your Stack. You can define `component` blocks in a `<NAME>.tfcomponent.hcl` file, which is a component configuration file for your Stack. Each component represents a reusable piece of infrastructure that you can provision and manage. Refer to [Define configuration](/terraform/language/stacks/component/config) for more information.

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `output` block to expose information about your Stack's inf

# `output` block reference for component configurations

Use the `output` block in a Stack to expose information about your Stack's infrastructure in the HCP Terraform UI.
Use the `output` block in a Stack to expose information about your Stack's infrastructure in the HCP Terraform UI. Refer to [Define configuration](/terraform/language/stacks/component/config) for more information.

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `provider` block in component configurations to configure p

# `provider` block reference for component configurations

Terraform relies on plugins called providers to interact with cloud providers, SaaS providers, and other APIs. Use the `provider` block to configure your Stack's declared providers.
Terraform relies on plugins called providers to interact with cloud providers, SaaS providers, and other APIs. Use the `provider` block to configure your Stack's declared providers. Refer to [Define configuration](/terraform/language/stacks/component/config) for more information.

If you are declaring a `provider` block in a traditional Terraform configuration file, ending in `.tf`, refer to the Terraform configuration [`provider` block reference](/terraform/language/block/provider) instead.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `removed` block to systematically remove components from yo

# `removed` block reference for component configurations

Use the `removed` block to systematically remove components from your component configuration. Define `removed` blocks in a `<NAME>.tfcomponent.hcl` file, which is a component configuration file for your Stack.
Use the `removed` block to systematically remove components from your component configuration. Define `removed` blocks in a `<NAME>.tfcomponent.hcl` file, which is a component configuration file for your Stack. Refer to [Define configuration](/terraform/language/stacks/component/config) for more information.

If you are declaring a `removed` block in a traditional Terraform configuration file, ending in `.tf`, refer to the Terraform configuration [`removed` block reference](/terraform/language/block/removed) instead.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `required_providers` block to declare which providers your

# `required_providers` block reference

Terraform relies on plugins called providers to interact with cloud providers, SaaS providers, and other APIs. Use the `required_providers` block in your component configuration to declare which providers your Stack requires.
Terraform relies on plugins called providers to interact with cloud providers, SaaS providers, and other APIs. Use the `required_providers` block in your component configuration to declare which providers your Stack requires. Refer to [Declare providers](/terraform/language/stacks/component/declare-providers) for more information.

If you are declaring a `required_providers` block in a traditional Terraform configuration file, ending in `.tf`, refer to the Terraform configuration [`terraform` block reference](/terraform/language/block/terraform#required_providers) instead.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `variable` block to declare input variables for your compon

# `variable` block reference for component configurations

Use the `variable` block to declare input variables for your component configuration, making your components dynamic and reusable.
Use the `variable` block to declare input variables for your component configuration, making your components dynamic and reusable. Refer to [Define configuration](/terraform/language/stacks/component/config) for more information.

If you are declaring a `variable` block in a traditional Terraform configuration file, ending in `.tf`, refer to the Terraform configuration [`variable` block reference](/terraform/language/block/variable) instead.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `deployment` block to define how many times you want to dep

# `deployment` block reference

Use the `deployment` block to define how many times you want to deploy your Stack's infrastructure. You can define `deployment` blocks in a `<NAME>.tfdeploy.hcl` file, which is the deployment configuration file for your Stack.
Use the `deployment` block to define how many times you want to deploy your Stack's infrastructure. You can define `deployment` blocks in a `<NAME>.tfdeploy.hcl` file, which is the deployment configuration file for your Stack. Refer to [Define deployment configuration](/terraform/language/stacks/deploy/config) for more information.

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `deployment_auto_approve` block to define rules that automa

# `deployment_auto_approve` block reference

Use the `deployment_auto_approve` block to define rules that automatically approve deployment plans based on specific conditions.
Use the `deployment_auto_approve` block to define rules that automatically approve deployment plans based on specific conditions. Refer to [Define deployment configuration](/terraform/language/stacks/deploy/config) for more information.

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `deployment_group` block to configure shared settings and a

# `deployment_group` block reference

Use the `deployment_group` block to define a group that can manage deployments and add orchestration rules for those deployments.
Use the `deployment_group` block to define a group that can manage deployments and add orchestration rules for those deployments. Refer to [Set conditions for deployment runs](/terraform/language/stacks/deploy/conditions) for more information.

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `identity_token` block to define JSON Web Tokens (JWT) that

# `identity_token` block reference

Use the `identity_token` block to define JSON Web Tokens (JWT) that Terraform generates for OIDC authentication with cloud providers and other services.
Use the `identity_token` block to define JSON Web Tokens (JWT) that Terraform generates for OIDC authentication with cloud providers and other services. Refer to [Authenticate a Stack](/terraform/language/stacks/deploy/authenticate) for more information.

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `publish_output` block to export values from your Stack to

# `publish_output` block reference

Use the `publish_output` block to export values from your Stack to another Stack in the same project.
Use the `publish_output` block to export values from your Stack to another Stack in the same project. Refer to [Pass data from one Stack to another](/terraform/language/stacks/deploy/pass-data) for more information.

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `store` block to access the values of HCP Terraform variabl

# `store` block reference

Use the `store` block to access the values of HCP Terraform variable sets in your deployment configuration and use those secrets in deployments.
Use the `store` block to access the values of HCP Terraform variable sets in your deployment configuration and use those secrets in deployments. Refer to [Define deployment configuration](/terraform/language/stacks/deploy/config) for more information.

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use the `upstream_input` block to consume outputs from another Stac

# `upstream_input` block reference

Use the `upstream_input` block to consume outputs from another Stack in the same project to use them in your current Stack.
Use the `upstream_input` block to consume outputs from another Stack in the same project to use them in your current Stack. Refer to [Pass data from one Stack to another](/terraform/language/stacks/deploy/pass-data) for more information.

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@ description: >-

# `terraform` block reference

This topic provides reference information about the `terraform` block. The `terraform` block allows you to configure Terraform behavior, including the Terraform version, backend, integration with HCP Terraform, and required providers.
This topic provides reference information about the `terraform` block. The `terraform` block allows you to configure Terraform behavior, including the Terraform version, backend, integration with HCP Terraform, and required providers. Refer to the following topics for more information about configuring the `terraform` block:

- [Provider requirements](/terraform/language/providers/requirements)
- [Backend block configuration](/terraform/language/backend)
- [Connect to HCP Terraform](/terraform/cli/cloud/settings)

## Configuration model

Expand Down
6 changes: 2 additions & 4 deletions content/terraform/v1.14.x/docs/language/block/variable.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ description: Use variables to parameterize your configuration, making your modul

# `variable` block reference

Use the `variable` block to parameterize your configuration so that module consumers can pass custom values into the configuration at runtime.

> **Hands-on:** Try the [Customize Terraform Configuration with Variables](/terraform/tutorials/configuration-language/variables) tutorial.
Use the `variable` block to parameterize your configuration so that module consumers can pass custom values into the configuration at runtime. To learn more about the different ways to use and set values for variables, refer to [Use variables to input module arguments](/terraform/language/values/variables).

## Background

Expand All @@ -17,7 +15,7 @@ You can define variables in root modules, or in child modules:
- In the root modules, you can set variable values using CLI options, environment variables, variable definition files, or through an HCP Terraform workspace.
- In child modules, the parent module passes values to child modules as arguments to the `module` block.

To learn more about the different ways to use and set values for variables, refer to [Use variables to input module arguments](/terraform/language/values/variables).
> **Hands-on:** Try the [Customize Terraform Configuration with Variables](/terraform/tutorials/configuration-language/variables) tutorial.

## Configuration model

Expand Down
Loading
Loading