# DefaultStackSynthesizerProps

Configuration properties for DefaultStackSynthesizer.

Extends: DefaultStackSynthesizerProps
Used as props by: DefaultStackSynthesizer

- Source: [`core/lib/stack-synthesizers/default-synthesizer.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/core/lib/stack-synthesizers/default-synthesizer.ts#L37)
- Type last changed: v2.160.0 · 24 Sep 2024

## Example

```ts
declare const app: App;

const prodStage = new Stage(app, 'ProdStage', {
  permissionsBoundary: PermissionsBoundary.fromName('cdk-${Qualifier}-PermissionsBoundary-${AWS::AccountId}-${AWS::Region}'),
});

new Stack(prodStage, 'ProdStack', {
  synthesizer: new DefaultStackSynthesizer({
    qualifier: 'custom',
  }),
});
```

## Properties

- `bootstrapStackVersionSsmParameter`: string — Bootstrap stack version SSM parameter.

  **Default:** DefaultStackSynthesizer.DEFAULT_BOOTSTRAP_STACK_VERSION_SSM_PARAMETER

  The placeholder `${Qualifier}` will be replaced with the value of qualifier.

- `bucketPrefix`: string — bucketPrefix to use while storing S3 Assets.

  **Default:** DefaultStackSynthesizer.DEFAULT_FILE_ASSET_PREFIX

- `cloudFormationExecutionRole`: string — The role CloudFormation will assume when deploying the Stack.

  **Default:** DefaultStackSynthesizer.DEFAULT_CLOUDFORMATION_ROLE_ARN

  You must supply this if you have given a non-standard name to the execution role.

  The placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will
  be replaced with the values of qualifier and the stack's account and region,
  respectively.

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

  **Default:** No additional options.

  - `RoleArn` should not be used. Use the dedicated `deployRoleArn` property instead.
  - `ExternalId` should not be used. Use the dedicated `deployRoleExternalId` instead.
  - `TransitiveTagKeys` defaults to use all keys (if any) specified in `Tags`. E.g, all tags are transitive by default.

- `deployRoleArn`: string — The role to assume to initiate a deployment in this environment.

  **Default:** DefaultStackSynthesizer.DEFAULT_DEPLOY_ROLE_ARN

  You must supply this if you have given a non-standard name to the publishing role.

  The placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will
  be replaced with the values of qualifier and the stack's account and region,
  respectively.

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

  **Default:** No external ID

- `dockerTagPrefix`: string — A prefix to use while tagging and uploading Docker images to ECR.

  **Default:** DefaultStackSynthesizer.DEFAULT_DOCKER_ASSET_PREFIX

  This does not add any separators - the source hash will be appended to
  this string directly.

- `fileAssetPublishingExternalId`: string — External ID to use when assuming role for file asset publishing.

  **Default:** No external ID

- `fileAssetPublishingRoleAdditionalOptions`: { [key: string]: any } — Additional options to pass to STS when assuming the file asset publishing.

  **Default:** No additional options.

  - `RoleArn` should not be used. Use the dedicated `fileAssetPublishingRoleArn` property instead.
  - `ExternalId` should not be used. Use the dedicated `fileAssetPublishingExternalId` instead.
  - `TransitiveTagKeys` defaults to use all keys (if any) specified in `Tags`. E.g, all tags are transitive by default.

- `fileAssetPublishingRoleArn`: string — The role to use to publish file assets to the S3 bucket in this environment.

  **Default:** DefaultStackSynthesizer.DEFAULT_FILE_ASSET_PUBLISHING_ROLE_ARN

  You must supply this if you have given a non-standard name to the publishing role.

  The placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will
  be replaced with the values of qualifier and the stack's account and region,
  respectively.

- `fileAssetsBucketName`: string — Name of the S3 bucket to hold file assets.

  **Default:** DefaultStackSynthesizer.DEFAULT_FILE_ASSETS_BUCKET_NAME

  You must supply this if you have given a non-standard name to the staging bucket.

  The placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will
  be replaced with the values of qualifier and the stack's account and region,
  respectively.

- `generateBootstrapVersionRule`: boolean = true — Whether to add a Rule to the stack template verifying the bootstrap stack version.

  This generally should be left set to `true`, unless you explicitly
  want to be able to deploy to an unbootstrapped environment.

- `imageAssetPublishingExternalId`: string — External ID to use when assuming role for image asset publishing.

  **Default:** No external ID

- `imageAssetPublishingRoleAdditionalOptions`: { [key: string]: any } — Additional options to pass to STS when assuming the image asset publishing.

  **Default:** No additional options.

  - `RoleArn` should not be used. Use the dedicated `imageAssetPublishingRoleArn` property instead.
  - `ExternalId` should not be used. Use the dedicated `imageAssetPublishingExternalId` instead.
  - `TransitiveTagKeys` defaults to use all keys (if any) specified in `Tags`. E.g, all tags are transitive by default.

- `imageAssetPublishingRoleArn`: string — The role to use to publish image assets to the ECR repository in this environment.

  **Default:** DefaultStackSynthesizer.DEFAULT_IMAGE_ASSET_PUBLISHING_ROLE_ARN

  You must supply this if you have given a non-standard name to the publishing role.

  The placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will
  be replaced with the values of qualifier and the stack's account and region,
  respectively.

- `imageAssetsRepositoryName`: string — Name of the ECR repository to hold Docker Image assets.

  **Default:** DefaultStackSynthesizer.DEFAULT_IMAGE_ASSETS_REPOSITORY_NAME

  You must supply this if you have given a non-standard name to the ECR repository.

  The placeholders `${Qualifier}`, `${AWS::AccountId}` and `${AWS::Region}` will
  be replaced with the values of qualifier and the stack's account and region,
  respectively.

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

  **Default:** No additional options.

  - `RoleArn` should not be used. Use the dedicated `lookupRoleArn` property instead.
  - `ExternalId` should not be used. Use the dedicated `lookupRoleExternalId` instead.
  - `TransitiveTagKeys` defaults to use all keys (if any) specified in `Tags`. E.g, all tags are transitive by default.

- `lookupRoleArn`: string = None — The role to use to look up values from the target AWS account during synthesis.

- `lookupRoleExternalId`: string — External ID to use when assuming lookup role.

  **Default:** No external ID

- `qualifier`: string — Qualifier to disambiguate multiple environments in the same account.

  **Default:** Value of context key '@aws-cdk/core:bootstrapQualifier' if set, otherwise `DefaultStackSynthesizer.DEFAULT_QUALIFIER`

  You can use this and leave the other naming properties empty if you have deployed
  the bootstrap environment with standard names but only different qualifiers.

- `useLookupRoleForStackOperations`: boolean = true — Use the bootstrapped lookup role for (read-only) stack operations.

  Use the lookup role when performing a `cdk diff`. If set to `false`, the
  `deploy role` credentials will be used to perform a `cdk diff`.

  Requires bootstrap stack version 8.
