# PlanChange

> The PlanChange object in the Guv API.

## Fields

| Field | Type | Description |
| --- | --- | --- |
| `action` * | `create`, `update`, `replace`, `delete`, `orphan`, `noop` | `orphan` means removed from the manifest but retained (databases and volumes are never deleted implicitly). |
| `resource` * | [ResourceRef](/docs/api/objects/resource-ref/) |  |
| `environment` | string or null |  |
| `summary` * | string |  |
| `diff` | array of [DiffEntry](/docs/api/objects/diff-entry/) |  |
| `destructive` | boolean | Default `false`. |
| `requires_approval` | boolean | Default `false`. |
| `reason` | string | Why approval is needed, or why the change is orphaned. |

\* always present

## Example

```json
{
  "action": "create",
  "resource": {
    "type": "service",
    "id": "svc_01jbx2m9k7q4r8t5v6w3y0z1sv",
    "name": "web",
    "url": "/v1/projects/primecarers/services/web"
  },
  "environment": "production",
  "summary": "Create Postgres 18 database main (HA, 50 GB, 30 days point-in-time recovery)",
  "diff": [
    {
      "path": "/resources/memory_mb"
    }
  ],
  "destructive": false,
  "requires_approval": false,
  "reason": "string"
}
```
