# Wave

Multiple stages that are deployed in parallel.

- Source: [`pipelines/lib/blueprint/wave.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/pipelines/lib/blueprint/wave.ts#L27)

## Example

```ts
declare const pipeline: pipelines.CodePipeline;
const europeWave = pipeline.addWave('Europe');
europeWave.addStage(
  new MyApplicationStage(this, 'Ireland', {
    env: { region: 'eu-west-1' },
  })
);
europeWave.addStage(
  new MyApplicationStage(this, 'Germany', {
    env: { region: 'eu-central-1' },
  })
);
```

## Initializer

```ts
new Wave(id: string, props?: WaveProps)
```

## Properties

- `id`: string — Identifier for this Wave.

- `post`: [Step](/cdk/api/v2/docs/aws-cdk-lib.pipelines.Step.html)[] — Additional steps that are run after all of the stages in the wave.

- `pre`: [Step](/cdk/api/v2/docs/aws-cdk-lib.pipelines.Step.html)[] — Additional steps that are run before any of the stages in the wave.

- `stages`: [StageDeployment](/cdk/api/v2/docs/aws-cdk-lib.pipelines.StageDeployment.html)[] — The stages that are deployed in this wave.

## Methods

- `addPost(...steps: Step[]): void` — Add an additional step to run after all of the stages in this wave.

- `addPre(...steps: Step[]): void` — Add an additional step to run before any of the stages in this wave.

- `addStage(stage: Stage, options?: AddStageOpts): StageDeployment` — Add a Stage to this wave.

  It will be deployed in parallel with all other stages in this
  wave.
