packages/aws-cdk-lib/aws-scheduler-targets/lib/codepipeline-start-pipeline-execution.ts (18 lines of code) (raw):

import { ScheduleTargetBase, ScheduleTargetBaseProps } from './target'; import { IPipeline } from '../../aws-codepipeline'; import { IRole, PolicyStatement } from '../../aws-iam'; import { IScheduleTarget } from '../../aws-scheduler'; /** * Use an AWS CodePipeline pipeline as a target for AWS EventBridge Scheduler. */ export class CodePipelineStartPipelineExecution extends ScheduleTargetBase implements IScheduleTarget { constructor( private readonly pipeline: IPipeline, props: ScheduleTargetBaseProps = {}, ) { super(props, pipeline.pipelineArn); } protected addTargetActionToRole(role: IRole): void { role.addToPrincipalPolicy(new PolicyStatement({ actions: ['codepipeline:StartPipelineExecution'], resources: [this.pipeline.pipelineArn], })); } }