UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

81 lines (80 loc) 2.89 kB
import { Construct } from 'constructs'; import * as codepipeline from '../../../aws-codepipeline'; import * as s3 from '../../../aws-s3'; import { Action } from '../action'; /** * How should the S3 Action detect changes. * This is the type of the `S3SourceAction.trigger` property. */ export declare enum S3Trigger { /** * The Action will never detect changes - * the Pipeline it's part of will only begin a run when explicitly started. */ NONE = "None", /** * CodePipeline will poll S3 to detect changes. * This is the default method of detecting changes. */ POLL = "Poll", /** * CodePipeline will use CloudWatch Events to be notified of changes. * Note that the Bucket that the Action uses needs to be part of a CloudTrail Trail * for the events to be delivered. */ EVENTS = "Events" } /** * The CodePipeline variables emitted by the S3 source Action. */ export interface S3SourceVariables { /** The identifier of the S3 version of the object that triggered the build. */ readonly versionId: string; /** The e-tag of the S3 version of the object that triggered the build. */ readonly eTag: string; } /** * Construction properties of the `S3SourceAction S3 source Action`. */ export interface S3SourceActionProps extends codepipeline.CommonAwsActionProps { /** * */ readonly output: codepipeline.Artifact; /** * The key within the S3 bucket that stores the source code. * * @example 'path/to/file.zip' */ readonly bucketKey: string; /** * How should CodePipeline detect source changes for this Action. * Note that if this is S3Trigger.EVENTS, you need to make sure to include the source Bucket in a CloudTrail Trail, * as otherwise the CloudWatch Events will not be emitted. * * @default S3Trigger.POLL * @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/log-s3-data-events.html */ readonly trigger?: S3Trigger; /** * The Amazon S3 bucket that stores the source code. * * If you import an encrypted bucket in your stack, please specify * the encryption key at import time by using `Bucket.fromBucketAttributes()` method. */ readonly bucket: s3.IBucket; } /** * Source that is provided by a specific Amazon S3 object. * * Will trigger the pipeline as soon as the S3 object changes, but only if there is * a CloudTrail Trail in the account that captures the S3 event. */ export declare class S3SourceAction extends Action { private readonly props; constructor(props: S3SourceActionProps); /** The variables emitted by this action. */ get variables(): S3SourceVariables; protected bound(_scope: Construct, stage: codepipeline.IStage, options: codepipeline.ActionBindOptions): codepipeline.ActionConfig; private generateEventId; }