98 lines
2.8 KiB
TypeScript
98 lines
2.8 KiB
TypeScript
import type { IConstruct } from 'constructs';
|
|
import * as iam from '../../aws-iam';
|
|
import type * as lambda from '../../aws-lambda';
|
|
/**
|
|
* Deployment lifecycle stages where hooks can be executed
|
|
*/
|
|
export declare enum DeploymentLifecycleStage {
|
|
/**
|
|
* Execute during service reconciliation
|
|
*/
|
|
RECONCILE_SERVICE = "RECONCILE_SERVICE",
|
|
/**
|
|
* Execute before scaling up tasks
|
|
*/
|
|
PRE_SCALE_UP = "PRE_SCALE_UP",
|
|
/**
|
|
* Execute after scaling up tasks
|
|
*/
|
|
POST_SCALE_UP = "POST_SCALE_UP",
|
|
/**
|
|
* Execute during test traffic shift
|
|
*/
|
|
TEST_TRAFFIC_SHIFT = "TEST_TRAFFIC_SHIFT",
|
|
/**
|
|
* Execute after test traffic shift
|
|
*/
|
|
POST_TEST_TRAFFIC_SHIFT = "POST_TEST_TRAFFIC_SHIFT",
|
|
/**
|
|
* Execute during production traffic shift
|
|
*/
|
|
PRODUCTION_TRAFFIC_SHIFT = "PRODUCTION_TRAFFIC_SHIFT",
|
|
/**
|
|
* Execute after production traffic shift
|
|
*/
|
|
POST_PRODUCTION_TRAFFIC_SHIFT = "POST_PRODUCTION_TRAFFIC_SHIFT"
|
|
}
|
|
/**
|
|
* Configuration for a deployment lifecycle hook target
|
|
*/
|
|
export interface DeploymentLifecycleHookTargetConfig {
|
|
/**
|
|
* The ARN of the target resource
|
|
*/
|
|
readonly targetArn: string;
|
|
/**
|
|
* The IAM role that grants permissions to invoke the target
|
|
* @default - a role will be created automatically
|
|
*/
|
|
readonly role?: iam.IRole;
|
|
/**
|
|
* The lifecycle stages when this hook should be executed
|
|
*/
|
|
readonly lifecycleStages: DeploymentLifecycleStage[];
|
|
}
|
|
/**
|
|
* Interface for deployment lifecycle hook targets
|
|
*/
|
|
export interface IDeploymentLifecycleHookTarget {
|
|
/**
|
|
* Bind this target to a deployment lifecycle hook
|
|
*
|
|
* @param scope The construct scope
|
|
*/
|
|
bind(scope: IConstruct): DeploymentLifecycleHookTargetConfig;
|
|
}
|
|
/**
|
|
* Configuration for a lambda deployment lifecycle hook
|
|
*/
|
|
export interface DeploymentLifecycleLambdaTargetProps {
|
|
/**
|
|
* The IAM role that grants permissions to invoke the lambda target
|
|
* @default - A unique role will be generated for this lambda function.
|
|
*/
|
|
readonly role?: iam.IRole;
|
|
/**
|
|
* The lifecycle stages when this hook should be executed
|
|
*/
|
|
readonly lifecycleStages: DeploymentLifecycleStage[];
|
|
}
|
|
/**
|
|
* Use an AWS Lambda function as a deployment lifecycle hook target
|
|
*/
|
|
export declare class DeploymentLifecycleLambdaTarget implements IDeploymentLifecycleHookTarget {
|
|
private readonly handler;
|
|
private readonly id;
|
|
private readonly props;
|
|
private _role?;
|
|
constructor(handler: lambda.IFunction, id: string, props: DeploymentLifecycleLambdaTargetProps);
|
|
/**
|
|
* The IAM role for the deployment lifecycle hook target
|
|
*/
|
|
get role(): iam.IRole;
|
|
/**
|
|
* Bind this target to a deployment lifecycle hook
|
|
*/
|
|
bind(scope: IConstruct): DeploymentLifecycleHookTargetConfig;
|
|
}
|