// Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. package events import ( "time" ) // S3Event which wrap an array of S3EventRecord type S3Event struct { Records []S3EventRecord `json:"Records"` } // S3EventRecord which wrap record data type S3EventRecord struct { EventVersion string `json:"eventVersion"` EventSource string `json:"eventSource"` AWSRegion string `json:"awsRegion"` EventTime time.Time `json:"eventTime"` EventName string `json:"eventName"` PrincipalID S3UserIdentity `json:"userIdentity"` RequestParameters S3RequestParameters `json:"requestParameters"` ResponseElements map[string]string `json:"responseElements"` S3 S3Entity `json:"s3"` } type S3UserIdentity struct { PrincipalID string `json:"principalId"` } type S3RequestParameters struct { SourceIPAddress string `json:"sourceIPAddress"` } type S3Entity struct { SchemaVersion string `json:"s3SchemaVersion"` ConfigurationID string `json:"configurationId"` Bucket S3Bucket `json:"bucket"` Object S3Object `json:"object"` } type S3Bucket struct { Name string `json:"name"` OwnerIdentity S3UserIdentity `json:"ownerIdentity"` Arn string `json:"arn"` } type S3Object struct { Key string `json:"key"` Size int64 `json:"size"` URLDecodedKey string `json:"urlDecodedKey"` VersionID string `json:"versionId"` ETag string `json:"eTag"` Sequencer string `json:"sequencer"` } type S3TestEvent struct { Service string `json:"Service"` Bucket string `json:"Bucket"` Event string `json:"Event"` Time time.Time `json:"Time"` RequestID string `json:"RequestId"` HostID string `json:"HostId"` }