import { EventBridgeEvent, EventBridgeHandler } from './eventbridge'; export type CodeBuildCloudWatchStateHandler = EventBridgeHandler<'CodeBuild Build State Change', CodeBuildStateEventDetail, void>; export type CodeBuildStateType = 'IN_PROGRESS' | 'SUCCEEDED' | 'FAILED' | 'STOPPED'; export type CodeBuildPhaseType = | 'COMPLETED' | 'FINALIZING' | 'UPLOAD_ARTIFACTS' | 'POST_BUILD' | 'BUILD' | 'PRE_BUILD' | 'INSTALL' | 'QUEUED' | 'DOWNLOAD_SOURCE' | 'PROVISIONING' | 'SUBMITTED'; export type CodeBuildPhaseStatusType = | 'TIMED_OUT' | 'STOPPED' | 'FAILED' | 'SUCCEEDED' | 'FAULT' | 'CLIENT_ERROR'; export type CodeBuildCacheType = 'NO_CACHE' | 'LOCAL' | 'S3'; export type CodeBuildSourceLocationType = | 'CODECOMMIT' | 'CODEPIPELINE' | 'GITHUB' | 'GITHUB_ENTERPRISE' | 'BITBUCKET' | 'S3' | 'NO_SOURCE'; export type CodeBuildEnvironmentType = | 'LINUX_CONTAINER' | 'LINUX_GPU_CONTAINER' | 'WINDOWS_CONTAINER' | 'ARM_CONTAINER'; export type CodeBuildEnvironmentPullCredentialsType = 'CODEBUILD' | 'SERVICE_ROLE'; export type CodeBuildEnvironmentComputeType = | 'BUILD_GENERAL1_SMALL' | 'BUILD_GENERAL1_MEDIUM' | 'BUILD_GENERAL1_LARGE' | 'BUILD_GENERAL1_2XLARGE'; export type CodeBuildEnvironmentVariableType = 'PARAMETER_STORE' | 'PLAINTEXT' | 'SECRETS_MANAGER'; export interface CodeBuildStateEventDetail { 'build-status': CodeBuildStateType; 'project-name': string; 'build-id': string; 'current-phase': CodeBuildPhaseType; 'current-phase-context': string; version: string; 'additional-information': { cache: { type: CodeBuildCacheType; }; 'build-number': number; 'timeout-in-minutes': number; 'build-complete': boolean; initiator: string; 'build-start-time': string; source: { buildspec: string; location: string; type: CodeBuildSourceLocationType; }; 'source-version': string; artifact: { location: string; }; environment: { image: string; 'privileged-mode': boolean; 'image-pull-credentials-type'?: CodeBuildEnvironmentPullCredentialsType | undefined; 'compute-type': CodeBuildEnvironmentComputeType; type: CodeBuildEnvironmentType; 'environment-variables': Array<{ name: string; type?: CodeBuildEnvironmentVariableType | undefined; value: string; }>; }; 'project-file-system-locations': []; logs: { 'group-name': string; 'stream-name': string; 'deep-link': string; }; phases: Array<{ 'phase-context'?: string[] | undefined; // Not available for COMPLETED phase-type 'start-time': string; 'end-time'?: string | undefined; // Not available for COMPLETED phase-type 'duration-in-seconds'?: number | undefined; // Not available for COMPLETED phase-type 'phase-type': CodeBuildPhaseType; 'phase-status'?: CodeBuildPhaseStatusType | undefined; // Not available for COMPLETED phase-type }>; 'queued-timeout-in-minutes': number; }; } export interface CodeBuildCloudWatchStateEvent extends EventBridgeEvent<'CodeBuild Build State Change', CodeBuildStateEventDetail> { source: 'aws.codebuild'; }