# atmos aws cloudformation tree

Render the deployed stack's nested-stack dependency tree: walk the stack's
resources, recursing into every `AWS::CloudFormation::Stack` resource, up to
10 levels deep.

> ⚠️ Experimental

## Usage

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

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

Render trees for all or affected components in dependency order:

```shell
atmos aws cloudformation tree --all -s plat-ue2-dev
atmos aws cloudformation tree --affected --base origin/main
```

## Flags

- **`--stack`, `-s` (required for a single component)**
  Atmos stack. With 
  `--all`
  , 
  `--affected`
  , 
  `--tags`
  , or 
  `--labels`
  , this is an optional stack filter; omit it to select components across stacks.

## Output

```
vpc-plat-ue2-dev
├─ NatGatewayStack (vpc-plat-ue2-dev-NatGatewayStack-AB12CD34)
└─ SubnetsStack (vpc-plat-ue2-dev-SubnetsStack-EF56GH78)
```

The root is the stack name. Each nested stack shows its logical resource ID in the parent, followed by
its stack name in parentheses; stack ARNs are not shown.

A nested stack whose `AWS::CloudFormation::Stack` resource is still
`CREATE_IN_PROGRESS` (and so has no physical resource ID yet) is not shown —
`tree` recurses only into nested stacks that have actually been created.

:::note
`tree` does not fire `before`/`after` hook events — only
[`apply`](/cli/commands/aws/cloudformation/apply),
[`diff`](/cli/commands/aws/cloudformation/diff),
[`delete`](/cli/commands/aws/cloudformation/delete),
[`drift detect`](/cli/commands/aws/cloudformation/drift/detect), and
[`drift describe`](/cli/commands/aws/cloudformation/drift/describe) do.
:::
