events/codepipeline_cloudwatch.go (69 lines of code) (raw):
package events
import (
"time"
)
const (
CodePipelineEventSource = "aws.codepipeline"
CodePipelineExecutionEventDetailType = "CodePipeline Pipeline Execution State Change"
CodePipelineActionEventDetailType = "CodePipeline Action Execution State Change"
CodePipelineStageEventDetailType = "CodePipeline Stage Execution State Change"
)
type CodePipelineStageState string
const (
CodePipelineStageStateStarted CodePipelineStageState = "STARTED"
CodePipelineStageStateSucceeded CodePipelineStageState = "SUCCEEDED"
CodePipelineStageStateResumed CodePipelineStageState = "RESUMED"
CodePipelineStageStateFailed CodePipelineStageState = "FAILED"
CodePipelineStageStateCanceled CodePipelineStageState = "CANCELED"
)
type CodePipelineState string
const (
CodePipelineStateStarted CodePipelineState = "STARTED"
CodePipelineStateSucceeded CodePipelineState = "SUCCEEDED"
CodePipelineStateResumed CodePipelineState = "RESUMED"
CodePipelineStateFailed CodePipelineState = "FAILED"
CodePipelineStateCanceled CodePipelineState = "CANCELED"
CodePipelineStateSuperseded CodePipelineState = "SUPERSEDED"
)
type CodePipelineActionState string
const (
CodePipelineActionStateStarted CodePipelineActionState = "STARTED"
CodePipelineActionStateSucceeded CodePipelineActionState = "SUCCEEDED"
CodePipelineActionStateFailed CodePipelineActionState = "FAILED"
CodePipelineActionStateCanceled CodePipelineActionState = "CANCELED"
)
type CodePipelineCloudWatchEvent struct {
// Version is the version of the event's schema.
Version string `json:"version"`
// ID is the GUID of this event.
ID string `json:"id"`
// DetailType informs the schema of the Detail field. For deployment state-change
// events, the value should be equal to CodePipelineDeploymentEventDetailType.
// For instance state-change events, the value should be equal to
// CodePipelineInstanceEventDetailType.
DetailType string `json:"detail-type"`
// Source should be equal to CodePipelineEventSource.
Source string `json:"source"`
// AccountID is the id of the AWS account from which the event originated.
AccountID string `json:"account"`
// Time is the event's timestamp.
Time time.Time `json:"time"`
// Region is the AWS region from which the event originated.
Region string `json:"region"`
// Resources is a list of ARNs of CodePipeline applications and deployment
// groups that this event pertains to.
Resources []string `json:"resources"`
// Detail contains information specific to a deployment event.
Detail CodePipelineEventDetail `json:"detail"`
}
type CodePipelineEventBridgeEvent = CodePipelineCloudWatchEvent
type CodePipelineEventDetail struct {
Pipeline string `json:"pipeline"`
// From live testing this is always int64 not string as documented
Version int64 `json:"version"`
ExecutionID string `json:"execution-id"`
Stage string `json:"stage"`
Action string `json:"action"`
State CodePipelineState `json:"state"`
Region string `json:"region"`
Type CodePipelineEventDetailType `json:"type,omitempty"`
ExecutionResult CodePipelineEventDetailExecutionResult `json:"execution-result,omitempty"`
}
type CodePipelineEventDetailType struct {
Owner string `json:"owner"`
Category string `json:"category"`
Provider string `json:"provider"`
// From published EventBridge schema registry this is always int64 not string as documented
Version int64 `json:"version"`
}
type CodePipelineEventDetailExecutionResult struct {
ExternalExecutionURL string `json:"external-execution-url"`
ExternalExecutionSummary string `json:"external-execution-summary"`
ExternalExecutionID string `json:"external-execution-id"`
ErrorCode string `json:"error-code,omitempty"`
}