github.com/Foodji/aws-lambda-go@v1.20.2/events/code_commit.go (about) 1 package events 2 3 import ( 4 "errors" 5 "fmt" 6 "time" 7 ) 8 9 // CodeCommitEvent represents a CodeCommit event 10 type CodeCommitEvent struct { 11 Records []CodeCommitRecord `json:"Records"` 12 } 13 14 // String returns a string representation of this object. 15 // Useful for testing and debugging. 16 func (e CodeCommitEvent) String() string { 17 return fmt.Sprintf("{Records: %v}", e.Records) 18 } 19 20 type CodeCommitEventTime time.Time 21 22 // https://golang.org/pkg/time/#Parse 23 const codeCommitEventTimeReference = "\"2006-01-2T15:04:05.000-0700\"" 24 25 func (t *CodeCommitEventTime) MarshalJSON() ([]byte, error) { 26 if t == nil { 27 return nil, errors.New("CodeCommitEventTime cannot be nil") 28 } 29 30 gt := time.Time(*t) 31 return []byte(gt.Format(codeCommitEventTimeReference)), nil 32 } 33 34 func (t *CodeCommitEventTime) UnmarshalJSON(data []byte) error { 35 if t == nil { 36 return errors.New("CodeCommitEventTime cannot be nil") 37 } 38 39 pt, err := time.Parse(codeCommitEventTimeReference, string(data)) 40 if err == nil { 41 *t = CodeCommitEventTime(pt) 42 } 43 return err 44 } 45 46 // CodeCommitRecord represents a CodeCommit record 47 type CodeCommitRecord struct { 48 EventID string `json:"eventId"` 49 EventVersion string `json:"eventVersion"` 50 EventTime CodeCommitEventTime `json:"eventTime"` 51 EventTriggerName string `json:"eventTriggerName"` 52 EventPartNumber uint64 `json:"eventPartNumber"` 53 CodeCommit CodeCommitCodeCommit `json:"codecommit"` 54 EventName string `json:"eventName"` 55 EventTriggerConfigId string `json:"eventTriggerConfigId"` 56 EventSourceARN string `json:"eventSourceARN"` 57 UserIdentityARN string `json:"userIdentityARN"` 58 EventSource string `json:"eventSource"` 59 AWSRegion string `json:"awsRegion"` 60 EventTotalParts uint64 `json:"eventTotalParts"` 61 CustomData string `json:"customData,omitempty"` 62 } 63 64 // String returns a string representation of this object. 65 // Useful for testing and debugging. 66 func (r CodeCommitRecord) String() string { 67 return fmt.Sprintf( 68 "{eventId: %v, eventVersion: %v, eventTime: %v, eventTriggerName: %v, "+ 69 "eventPartNumber: %v, codeCommit: %v, eventName: %v, "+ 70 "eventTriggerConfigId: %v, eventSourceARN: %v, userIdentityARN: %v, "+ 71 "eventSource: %v, awsRegion: %v, eventTotalParts: %v, customData: %v}", 72 r.EventID, r.EventVersion, r.EventTime, r.EventTriggerName, 73 r.EventPartNumber, r.CodeCommit, r.EventName, 74 r.EventTriggerConfigId, r.EventSourceARN, r.UserIdentityARN, 75 r.EventSource, r.AWSRegion, r.EventTotalParts, r.CustomData) 76 } 77 78 // CodeCommitCodeCommit represents a CodeCommit object in a record 79 type CodeCommitCodeCommit struct { 80 References []CodeCommitReference `json:"references"` 81 } 82 83 // String returns a string representation of this object. 84 // Useful for testing and debugging. 85 func (c CodeCommitCodeCommit) String() string { 86 return fmt.Sprintf("{references: %v}", c.References) 87 } 88 89 // CodeCommitReference represents a Reference object in a CodeCommit object 90 type CodeCommitReference struct { 91 Commit string `json:"commit"` 92 Ref string `json:"ref"` 93 Created bool `json:"created,omitempty"` 94 } 95 96 // String returns a string representation of this object. 97 // Useful for testing and debugging. 98 func (r CodeCommitReference) String() string { 99 return fmt.Sprintf( 100 "{commit: %v, ref: %v, created: %v}", r.Commit, r.Ref, r.Created) 101 }