aws-cdk
Version:
AWS CDK CLI, the command line tool for CDK apps
156 lines (155 loc) • 5.13 kB
TypeScript
import type * as cxapi from '@aws-cdk/cx-api';
import type { Tag } from '@aws-sdk/client-cloudformation';
import type { DeploymentMethod } from './deployment-method';
import type { DeployStackResult } from './deployment-result';
import { type IoHelper } from '../../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
import type { SDK, SdkProvider } from '../aws-auth';
import type { EnvironmentResources, StringWithoutPlaceholders } from '../environment';
import { HotswapMode, HotswapPropertyOverrides } from '../hotswap/common';
import type { ResourcesToImport } from '../resource-import';
export interface DeployStackOptions {
/**
* The stack to be deployed
*/
readonly stack: cxapi.CloudFormationStackArtifact;
/**
* The environment to deploy this stack in
*
* The environment on the stack artifact may be unresolved, this one
* must be resolved.
*/
readonly resolvedEnvironment: cxapi.Environment;
/**
* The SDK to use for deploying the stack
*
* Should have been initialized with the correct role with which
* stack operations should be performed.
*/
readonly sdk: SDK;
/**
* SDK provider (seeded with default credentials)
*
* Will be used to:
*
* - Publish assets, either legacy assets or large CFN templates
* that aren't themselves assets from a manifest. (Needs an SDK
* Provider because the file publishing role is declared as part
* of the asset).
* - Hotswap
*/
readonly sdkProvider: SdkProvider;
/**
* Information about the bootstrap stack found in the target environment
*/
readonly envResources: EnvironmentResources;
/**
* Role to pass to CloudFormation to execute the change set
*
* To obtain a `StringWithoutPlaceholders`, run a regular
* string though `TargetEnvironment.replacePlaceholders`.
*
* @default - No execution role; CloudFormation either uses the role currently associated with
* the stack, or otherwise uses current AWS credentials.
*/
readonly roleArn?: StringWithoutPlaceholders;
/**
* Notification ARNs to pass to CloudFormation to notify when the change set has completed
*
* @default - No notifications
*/
readonly notificationArns?: string[];
/**
* Name to deploy the stack under
*
* @default - Name from assembly
*/
readonly deployName?: string;
/**
* List of asset IDs which shouldn't be built
*
* @default - Build all assets
*/
readonly reuseAssets?: string[];
/**
* Tags to pass to CloudFormation to add to stack
*
* @default - No tags
*/
readonly tags?: Tag[];
/**
* What deployment method to use
*
* @default - Change set with defaults
*/
readonly deploymentMethod?: DeploymentMethod;
/**
* The collection of extra parameters
* (in addition to those used for assets)
* to pass to the deployed template.
* Note that parameters with `undefined` or empty values will be ignored,
* and not passed to the template.
*
* @default - no additional parameters will be passed to the template
*/
readonly parameters?: {
[name: string]: string | undefined;
};
/**
* Use previous values for unspecified parameters
*
* If not set, all parameters must be specified for every deployment.
*
* @default false
*/
readonly usePreviousParameters?: boolean;
/**
* Deploy even if the deployed template is identical to the one we are about to deploy.
* @default false
*/
readonly force?: boolean;
/**
* Rollback failed deployments
*
* @default true
*/
readonly rollback?: boolean;
readonly hotswap?: HotswapMode;
/**
* Extra properties that configure hotswap behavior
*/
readonly hotswapPropertyOverrides?: HotswapPropertyOverrides;
/**
* The extra string to append to the User-Agent header when performing AWS SDK calls.
*
* @default - nothing extra is appended to the User-Agent header
*/
readonly extraUserAgent?: string;
/**
* If set, change set of type IMPORT will be created, and resourcesToImport
* passed to it.
*/
readonly resourcesToImport?: ResourcesToImport;
/**
* If present, use this given template instead of the stored one
*
* @default - Use the stored template
*/
readonly overrideTemplate?: any;
/**
* Whether to build/publish assets in parallel
*
* @default true To remain backward compatible.
*/
readonly assetParallelism?: boolean;
}
export declare function deployStack(options: DeployStackOptions, ioHelper: IoHelper): Promise<DeployStackResult>;
export interface DestroyStackOptions {
/**
* The stack to be destroyed
*/
stack: cxapi.CloudFormationStackArtifact;
sdk: SDK;
roleArn?: string;
deployName?: string;
}
export declare function destroyStack(options: DestroyStackOptions, ioHelper: IoHelper): Promise<void>;