UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

207 lines (206 loc) 5.52 kB
import { AssetType } from './asset-type'; import { Step } from './step'; import * as cxapi from '../../../cx-api'; /** * Properties for a `StackDeployment` */ export interface StackDeploymentProps { /** * Artifact ID for this stack */ readonly stackArtifactId: string; /** * Construct path for this stack */ readonly constructPath: string; /** * Name for this stack */ readonly stackName: string; /** * Region where the stack should be deployed * * @default - Pipeline region */ readonly region?: string; /** * Account where the stack should be deployed * * @default - Pipeline account */ readonly account?: string; /** * Role to assume before deploying this stack * * @default - Don't assume any role */ readonly assumeRoleArn?: string; /** * Execution role to pass to CloudFormation * * @default - No execution role */ readonly executionRoleArn?: string; /** * Tags to apply to the stack * * @default - No tags */ readonly tags?: Record<string, string>; /** * Template path on disk to cloud assembly (cdk.out) */ readonly absoluteTemplatePath: string; /** * Assets referenced by this stack * * @default - No assets */ readonly assets?: StackAsset[]; /** * The S3 URL which points to the template asset location in the publishing * bucket. * * @default - Stack template is not published */ readonly templateS3Uri?: string; } /** * Deployment of a single Stack * * You don't need to instantiate this class -- it will * be automatically instantiated as necessary when you * add a `Stage` to a pipeline. */ export declare class StackDeployment { /** * Build a `StackDeployment` from a Stack Artifact in a Cloud Assembly. */ static fromArtifact(stackArtifact: cxapi.CloudFormationStackArtifact): StackDeployment; /** * Artifact ID for this stack */ readonly stackArtifactId: string; /** * Construct path for this stack */ readonly constructPath: string; /** * Name for this stack */ readonly stackName: string; /** * Region where the stack should be deployed * * @default - Pipeline region */ readonly region?: string; /** * Account where the stack should be deployed * * @default - Pipeline account */ readonly account?: string; /** * Role to assume before deploying this stack * * @default - Don't assume any role */ readonly assumeRoleArn?: string; /** * Execution role to pass to CloudFormation * * @default - No execution role */ readonly executionRoleArn?: string; /** * Tags to apply to the stack */ readonly tags: Record<string, string>; /** * Assets referenced by this stack */ readonly assets: StackAsset[]; /** * Other stacks this stack depends on */ readonly stackDependencies: StackDeployment[]; /** * The asset that represents the CloudFormation template for this stack. */ readonly templateAsset?: StackAsset; /** * The S3 URL which points to the template asset location in the publishing * bucket. * * This is `undefined` if the stack template is not published. Use the * `DefaultStackSynthesizer` to ensure it is. * * Example value: `https://bucket.s3.amazonaws.com/object/key` */ readonly templateUrl?: string; /** * Template path on disk to CloudAssembly */ readonly absoluteTemplatePath: string; /** * Steps that take place before stack is prepared. If your pipeline engine disables 'prepareStep', then this will happen before stack deploys */ readonly pre: Step[]; /** * Steps that take place after stack is prepared but before stack deploys. Your pipeline engine may not disable `prepareStep`. */ readonly changeSet: Step[]; /** * Steps to execute after stack deploys */ readonly post: Step[]; private constructor(); /** * Add a dependency on another stack */ addStackDependency(stackDeployment: StackDeployment): void; /** * Adds steps to each phase of the stack * @param pre steps executed before stack.prepare * @param changeSet steps executed after stack.prepare and before stack.deploy * @param post steps executed after stack.deploy */ addStackSteps(pre: Step[], changeSet: Step[], post: Step[]): void; } /** * An asset used by a Stack */ export interface StackAsset { /** * Absolute asset manifest path * * This needs to be made relative at a later point in time, but when this * information is parsed we don't know about the root cloud assembly yet. */ readonly assetManifestPath: string; /** * Asset identifier */ readonly assetId: string; /** * Asset selector to pass to `cdk-assets`. */ readonly assetSelector: string; /** * Type of asset to publish */ readonly assetType: AssetType; /** * Role ARN to assume to publish * * @default - No need to assume any role */ readonly assetPublishingRoleArn?: string; /** * Does this asset represent the CloudFormation template for the stack * * @default false */ readonly isTemplate: boolean; }