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
}