# IReusableStackSynthesizer

Interface for Stack Synthesizers that can be used for more than one stack.

Regular `IStackSynthesizer` instances can only be bound to a Stack once.
`IReusableStackSynthesizer` instances.

For backwards compatibility reasons, this class inherits from
`IStackSynthesizer`, but if an object implements `IReusableStackSynthesizer`,
no other methods than `reusableBind()` will be called.

Extends: IReusableStackSynthesizer
Extends: IStackSynthesizer
Implemented by: AppStagingSynthesizer, BootstraplessSynthesizer, CliCredentialsStackSynthesizer, DefaultStackSynthesizer, LegacyStackSynthesizer

- Source: [`core/lib/stack-synthesizers/types.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/core/lib/stack-synthesizers/types.ts#L67)
- Type last changed: v2.61.0 · 19 Jan 2023

## Properties

- `bootstrapQualifier`: string — The qualifier used to bootstrap this stack.

  **Default:** no qualifier

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

  **Default:** no role

- `lookupRole`: string — The role used to lookup for this stack.

  **Default:** no role

## Methods

- `addDockerImageAsset(asset: DockerImageAssetSource): DockerImageAssetLocation` — Register a Docker Image Asset.

  Returns the parameters that can be used to refer to the asset inside the template.

- `addFileAsset(asset: FileAssetSource): FileAssetLocation` — Register a File Asset.

  Returns the parameters that can be used to refer to the asset inside the template.

- `bind(stack: Stack): void` — Bind to the stack this environment is going to be used on.

  Must be called before any of the other methods are called, and can only be called once.

- `reusableBind(stack: Stack): IBoundStackSynthesizer` — Produce a bound Stack Synthesizer for the given stack.

  This method may be called more than once on the same object.

- `synthesize(session: ISynthesisSession): void` — Synthesize the associated stack to the session.
