# AwsCloudFormationStackProperties

Artifact properties for CloudFormation stacks.

- Source: [`node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/artifact-schema.d.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/node_modules/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/artifact-schema.d.ts#L45)
- Type last changed: v2.160.0 · 24 Sep 2024

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { cloud_assembly_schema } from 'aws-cdk-lib';

declare const assumeRoleAdditionalOptions: any;
const awsCloudFormationStackProperties: cloud_assembly_schema.AwsCloudFormationStackProperties = {
  templateFile: 'templateFile',

  // the properties below are optional
  assumeRoleAdditionalOptions: {
    assumeRoleAdditionalOptionsKey: assumeRoleAdditionalOptions,
  },
  assumeRoleArn: 'assumeRoleArn',
  assumeRoleExternalId: 'assumeRoleExternalId',
  bootstrapStackVersionSsmParameter: 'bootstrapStackVersionSsmParameter',
  cloudFormationExecutionRoleArn: 'cloudFormationExecutionRoleArn',
  lookupRole: {
    arn: 'arn',

    // the properties below are optional
    assumeRoleAdditionalOptions: {
      assumeRoleAdditionalOptionsKey: assumeRoleAdditionalOptions,
    },
    assumeRoleExternalId: 'assumeRoleExternalId',
    bootstrapStackVersionSsmParameter: 'bootstrapStackVersionSsmParameter',
    requiresBootstrapStackVersion: 123,
  },
  notificationArns: ['notificationArns'],
  parameters: {
    parametersKey: 'parameters',
  },
  requiresBootstrapStackVersion: 123,
  stackName: 'stackName',
  stackTemplateAssetObjectUrl: 'stackTemplateAssetObjectUrl',
  tags: {
    tagsKey: 'tags',
  },
  terminationProtection: false,
  validateOnSynth: false,
};
```

## Properties

- `assumeRoleAdditionalOptions`: { [key: string]: any } — Additional options to pass to STS when assuming the role.

  **Default:** No additional options.

  - `RoleArn` should not be used. Use the dedicated `assumeRoleArn` property instead.
  - `ExternalId` should not be used. Use the dedicated `assumeRoleExternalId` instead.

- `assumeRoleArn`: string — The role that needs to be assumed to deploy the stack.

  **Default:** No role is assumed (current credentials are used)

- `assumeRoleExternalId`: string — External ID to use when assuming role for cloudformation deployments.

  **Default:** No external ID

- `bootstrapStackVersionSsmParameter`: string — SSM parameter where the bootstrap stack version number can be found.

  **Default:** Bootstrap stack version number looked up

  Only used if `requiresBootstrapStackVersion` is set.

  - If this value is not set, the bootstrap stack name must be known at
    deployment time so the stack version can be looked up from the stack
    outputs.
  - If this value is set, the bootstrap stack can have any name because
    we won't need to look it up.

- `cloudFormationExecutionRoleArn`: string — The role that is passed to CloudFormation to execute the change set.

  **Default:** No role is passed (currently assumed role/credentials are used)

- `lookupRole`: [BootstrapRole](/cdk/api/v2/docs/aws-cdk-lib.cloud_assembly_schema.BootstrapRole.html) — The role to use to look up values from the target AWS account.

  **Default:** No role is assumed (current credentials are used)

- `notificationArns`: string[] — SNS Notification ARNs that should receive CloudFormation Stack Events.

  **Default:** No notification arns

- `parameters`: { [key: string]: string } — Values for CloudFormation stack parameters that should be passed when the stack is deployed.

  **Default:** No parameters

- `requiresBootstrapStackVersion`: number — Version of bootstrap stack required to deploy this stack.

  **Default:** No bootstrap stack required

- `stackName`: string — The name to use for the CloudFormation stack.

  **Default:** name derived from artifact ID

- `stackTemplateAssetObjectUrl`: string — If the stack template has already been included in the asset manifest, its asset URL.

  **Default:** Not uploaded yet, upload just before deploying

- `tags`: { [key: string]: string } — Values for CloudFormation stack tags that should be passed when the stack is deployed.

  **Default:** No tags

  N.B.: Tags are also written to stack metadata, under the path of the Stack
  construct. Only in CDK CLI v1 are those tags found in metadata used for
  actual deployments; in all stable versions of CDK only the stack tags
  directly found in the `tags` property of `AwsCloudFormationStack` artifact
  (i.e., this property) are used.

- `templateFile`: string (required) — A file relative to the assembly root which contains the CloudFormation template for this stack.

- `terminationProtection`: boolean = false — Whether to enable termination protection for this stack.

- `validateOnSynth`: boolean = false — Whether this stack should be validated by the CLI after synthesis.
