Terraform
Moved block configuration reference
This topic provides reference information for the moved
block.
Introduction
The moved
block programmatically changes the address of a resource. Refer to Refactoring for details about how to use the moved
block in your Terraform configurations.
Configuration model
The following list outlines field hierarchy, language-specific data types, and requirements in the moved
block.
Complete configuration
When every field is defined, a moved
block has the following form:
moved {
from = <old address for the resource>
to = <new address for the resource>
}
Specification
This section provides details about the fields you can configure in the moved
block.
moved
Map that specifies addresses for the resource. The following table describes the fields you can set in the moved
block.
Field | Description | Type | Required |
---|---|---|---|
from | Specifies a resource's previous address. The syntax allows Terraform to select modules, resources, and resources inside child modules. | string | required |
to | Specifies the new address to relocate the resource to. The syntax allows Terraform to select modules, resources, and resources inside child modules. | string | required |
Before creating a new plan for the resource specified in the to
field, Terraform checks the state for an existing object at the address specified in the from
field. Terraform renames existing objects to the string specified in the to
field and then creates a plan. The plan directs Terraform to provision the resource specified in the from
field as the resource specified in the to
field. As a result, Terraform does not destroy the resource during the Terraform run.
Example
The following example moves an AWS instance from address aws_instance.a
to aws_instance.b
:
moved {
from = aws_instance.a
to = aws_instance.b
}