package events import ( "time" ) const ( CodeDeployEventSource = "aws.codedeploy" CodeDeployDeploymentEventDetailType = "CodeDeploy Deployment State-change Notification" CodeDeployInstanceEventDetailType = "CodeDeploy Instance State-change Notification" ) type CodeDeployDeploymentState string const ( CodeDeployDeploymentStateFailure CodeDeployDeploymentState = "FAILURE" CodeDeployDeploymentStateReady = "READY" CodeDeployDeploymentStateStart = "START" CodeDeployDeploymentStateStop = "STOP" CodeDeployDeploymentStateSuccess = "SUCCESS" ) // CodeDeployEvent is documented at: // https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/EventTypes.html#acd_event_types type CodeDeployEvent struct { // AccountID is the id of the AWS account from which the event originated. AccountID string `json:"account"` // Region is the AWS region from which the event originated. Region string `json:"region"` // DetailType informs the schema of the Detail field. For deployment state-change // events, the value should be equal to CodeDeployDeploymentEventDetailType. // For instance state-change events, the value should be equal to // CodeDeployInstanceEventDetailType. DetailType string `json:"detail-type"` // Source should be equal to CodeDeployEventSource. Source string `json:"source"` // Version is the version of the event's schema. Version string `json:"version"` // Time is the event's timestamp. Time time.Time `json:"time"` // ID is the GUID of this event. ID string `json:"id"` // Resources is a list of ARNs of CodeDeploy applications and deployment // groups that this event pertains to. Resources []string `json:"resources"` // Detail contains information specific to a deployment event. Detail CodeDeployEventDetail `json:"detail"` } type CodeDeployEventDetail struct { // InstanceGroupID is the ID of the instance group. InstanceGroupID string `json:"instanceGroupId"` // InstanceID is the id of the instance. This field is non-empty only if // the DetailType of the complete event is CodeDeployInstanceEventDetailType. InstanceID string `json:"instanceId,omitempty"` // Region is the AWS region that the event originated from. Region string `json:"region"` // Application is the name of the CodeDeploy application. Application string `json:"application"` // DeploymentID is the id of the deployment. DeploymentID string `json:"deploymentId"` // State is the new state of the deployment. State CodeDeployDeploymentState `json:"state"` // DeploymentGroup is the name of the deployment group. DeploymentGroup string `json:"deploymentGroup"` }