Terraform
moved block reference
This topic provides reference information for the moved block. Use this block to programmatically change the address of a resource. Refer to Refactoring for details about how to use the moved block in your Terraform configurations.
Configuration model
The moved block supports the following arguments:
Complete configuration
The following moved block defines all of the supported built-in arguments you can set:
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
The moved block specifies the previous address and the new address for the resource. The following table describes the arguments you can set in the moved block.
| Arbument | 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
}