# atmos aws cloudformation delete

Delete the CloudFormation stack for a component (`DeleteStack`), then stream
stack events until the stack is gone. Termination protection is always
respected — Atmos never disables it silently.

> ⚠️ Experimental

## Usage

```shell
atmos aws cloudformation delete <component> --stack <stack> [options]
```

```shell
atmos aws cloudformation delete vpc -s plat-ue2-dev
```

Skip the interactive confirmation prompt:

```shell
atmos aws cloudformation delete vpc -s plat-ue2-dev --auto-approve
```

Retry a `DELETE_FAILED` stack, retaining resources that could not be deleted:

```shell
atmos aws cloudformation delete vpc -s plat-ue2-dev --retain-resources=SecurityGroup,ManualDbSnapshot
```

Delete a stack protected by `termination_protection: true`:

```shell
atmos aws cloudformation delete vpc -s plat-ue2-dev --disable-termination-protection
```

Delete components filtered by tags or labels (composes with `--all`/`--affected` to narrow the selected set further):

```shell
atmos aws cloudformation delete --all --tags production,tier-1
atmos aws cloudformation delete --affected --labels cost-center=platform
```

## Flags

- **`--stack`, `-s` (required for a single component)**
  Atmos stack. Required when operating on a single component; optional (and used only to narrow the selected set) with 
  `--all`
  /
  `--affected`
  .
- **`--auto-approve` (optional)**
  Skip the interactive confirmation prompt. Without it, 
  `delete`
   prompts for confirmation on a TTY before deleting the stack.
- **`--retain-resources` (optional)**
  Comma-separated logical IDs of resources to retain. Only valid when the stack is in 
  `DELETE_FAILED`
   status — CloudFormation rejects it otherwise.
- **`--disable-termination-protection` (optional)**

  Disable termination protection before deleting. If the component's
  `termination_protection` is `true`, `delete` fails with an actionable hint
  instead of silently disabling protection — pass this flag as an explicit
  escape hatch. Setting `termination_protection: false` in the stack
  configuration and re-applying does not disable protection: apply only
  ever turns protection on, never off.
- **`--all` (optional)**
  Delete all 
  `aws/cloudformation`
   components in dependency order.
- **`--affected` (optional)**
  Delete affected 
  `aws/cloudformation`
   components and their dependencies.
- **`--include-dependents` (optional)**
  With 
  `--affected`
  , include dependent 
  `aws/cloudformation`
   components.
- **`--tags` (optional)**
  Filter by tags (comma-separated, matches any): 
  `--tags=production,tier-1`
  . Composes with 
  `--all`
  /
  `--affected`
   to narrow the selected set further; cannot be combined with a single component argument.
- **`--labels` (optional)**
  Filter by labels (comma-separated 
  `key=value`
   or 
  `key:value`
   pairs, matches all): 
  `--labels=cost-center=platform,compliance=sox`
  . Composes with 
  `--all`
  /
  `--affected`
  /
  `--tags`
  ; cannot be combined with a single component argument.

:::note
`delete` fires the `before.aws/cloudformation.delete`/`after.aws/cloudformation.delete` hook events.
:::
