# atmos aws cloudformation validate

Validate the component's template with CloudFormation's server-side
`ValidateTemplate` API — a syntax and capability-discovery check, not a local
linter.

> ⚠️ Experimental

**CloudFormation Configuration**

Configure templates, parameters, and delivery targets for your component.
Configuration Reference[Read more](/stacks/components/aws-cloudformation)

## Usage

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

## Examples

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

Validate all or affected components in dependency order:

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

Validate components selected by tags or labels:

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

## Arguments

- **`component` (required unless selecting multiple components)**
  CloudFormation component name in the Atmos stack.

## Flags

- **`--stack`, `-s` (required for a single component)**
  Atmos stack. With bulk selection flags, limits the selected components to this stack.

:::note
`validate` only checks template syntax and discovers required capabilities
(e.g. `CAPABILITY_IAM`) via the AWS API. It does not run local linters such as
`cfn-lint` or `cfn-guard` — declare those tools via the
[toolchain subsystem](/cli/configuration/toolchain) and run them from
[hooks](/stacks/hooks) or workflow steps if you want that check.
:::

## Try it out

Requires Docker or Podman, Python 3, and network access for the emulator image. Run against the local AWS emulator; the final commands clean up. No AWS account is needed.

```shell
atmos config set aliases.cft "aws cloudformation"
atmos emulator up aws -s local
atmos cft validate demo -s local
atmos emulator down aws -s local
```
