hal-0.2.0: src/AWS/Lambda/Events/S3/PutEvent.hs
module AWS.Lambda.Events.S3.PutEvent (
PutEvent,
RequestParameters(..),
Record(..)
) where
import Data.Text (Text)
import GHC.Generics (Generic)
import Data.Aeson (FromJSON)
type PutEvent = [Record]
data RequestParameters = RequestParameters { sourceIPAddress :: Text } deriving (Show, Eq, Generic)
data Record = Record {
eventVersion :: Text,
eventTime :: Text, -- Should be date
requestParameters :: RequestParameters
}
{-
{
"eventVersion": "2.0",
"eventTime": "1970-01-01T00:00:00.000Z",
"requestParameters": {
"sourceIPAddress": "127.0.0.1"
},
"s3": {
"configurationId": "testConfigRule",
"object": {
"eTag": "0123456789abcdef0123456789abcdef",
"sequencer": "0A1B2C3D4E5F678901",
"key": "HappyFace.jpg",
"size": 1024
},
"bucket": {
"arn": bucketarn,
"name": "sourcebucket",
"ownerIdentity": {
"principalId": "EXAMPLE"
}
},
"s3SchemaVersion": "1.0"
},
"responseElements": {
"x-amz-id-2": "EXAMPLE123/5678abcdefghijklambdaisawesome/mnopqrstuvwxyzABCDEFGH",
"x-amz-request-id": "EXAMPLE123456789"
},
"awsRegion": "us-east-1",
"eventName": "ObjectCreated:Put",
"userIdentity": {
"principalId": "EXAMPLE"
},
"eventSource": "aws:s3"
}
-}