---
page_title: moved block configuration reference
description: Learn about the `moved` block that you can specify in Terraform configurations. The `moved` block programmatically changes the location of a resource.
---

# `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](/terraform/language/modules/develop/refactoring) for details about how to use the `moved` block in your Terraform configurations.

## Configuration model

The `moved` block supports the following arguments:

- [`moved`](#moved): &nbsp block
  - [`from`](#moved):  &nbsp reference | required
  - [`to`](#moved):  &nbsp reference | required

## Complete configuration

The following `moved` block defines all of the supported built-in arguments you can set:

```hcl
moved {
    from = <old address for the resource>
    to = <new address for the resource>
}
```

## Specification

A `moved` block supports the following configuration. 

### `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.

| Argument | 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`:

```hcl
moved {
  from = aws_instance.a
  to   = aws_instance.b
}
```