{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.DynamoDBStreams.Types.Record where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.DynamoDBStreams.Internal
import Amazonka.DynamoDBStreams.Types.Identity
import Amazonka.DynamoDBStreams.Types.OperationType
import Amazonka.DynamoDBStreams.Types.StreamRecord
import qualified Amazonka.Prelude as Prelude
data Record = Record'
{
Record -> Maybe Text
awsRegion :: Prelude.Maybe Prelude.Text,
Record -> Maybe StreamRecord
dynamodb :: Prelude.Maybe StreamRecord,
Record -> Maybe Text
eventID :: Prelude.Maybe Prelude.Text,
Record -> Maybe OperationType
eventName :: Prelude.Maybe OperationType,
Record -> Maybe Text
eventSource :: Prelude.Maybe Prelude.Text,
Record -> Maybe Text
eventVersion :: Prelude.Maybe Prelude.Text,
Record -> Maybe Identity
userIdentity :: Prelude.Maybe Identity
}
deriving (Record -> Record -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Record -> Record -> Bool
$c/= :: Record -> Record -> Bool
== :: Record -> Record -> Bool
$c== :: Record -> Record -> Bool
Prelude.Eq, ReadPrec [Record]
ReadPrec Record
Int -> ReadS Record
ReadS [Record]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Record]
$creadListPrec :: ReadPrec [Record]
readPrec :: ReadPrec Record
$creadPrec :: ReadPrec Record
readList :: ReadS [Record]
$creadList :: ReadS [Record]
readsPrec :: Int -> ReadS Record
$creadsPrec :: Int -> ReadS Record
Prelude.Read, Int -> Record -> ShowS
[Record] -> ShowS
Record -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Record] -> ShowS
$cshowList :: [Record] -> ShowS
show :: Record -> String
$cshow :: Record -> String
showsPrec :: Int -> Record -> ShowS
$cshowsPrec :: Int -> Record -> ShowS
Prelude.Show, forall x. Rep Record x -> Record
forall x. Record -> Rep Record x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Record x -> Record
$cfrom :: forall x. Record -> Rep Record x
Prelude.Generic)
newRecord ::
Record
newRecord :: Record
newRecord =
Record'
{ $sel:awsRegion:Record' :: Maybe Text
awsRegion = forall a. Maybe a
Prelude.Nothing,
$sel:dynamodb:Record' :: Maybe StreamRecord
dynamodb = forall a. Maybe a
Prelude.Nothing,
$sel:eventID:Record' :: Maybe Text
eventID = forall a. Maybe a
Prelude.Nothing,
$sel:eventName:Record' :: Maybe OperationType
eventName = forall a. Maybe a
Prelude.Nothing,
$sel:eventSource:Record' :: Maybe Text
eventSource = forall a. Maybe a
Prelude.Nothing,
$sel:eventVersion:Record' :: Maybe Text
eventVersion = forall a. Maybe a
Prelude.Nothing,
$sel:userIdentity:Record' :: Maybe Identity
userIdentity = forall a. Maybe a
Prelude.Nothing
}
record_awsRegion :: Lens.Lens' Record (Prelude.Maybe Prelude.Text)
record_awsRegion :: Lens' Record (Maybe Text)
record_awsRegion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Record' {Maybe Text
awsRegion :: Maybe Text
$sel:awsRegion:Record' :: Record -> Maybe Text
awsRegion} -> Maybe Text
awsRegion) (\s :: Record
s@Record' {} Maybe Text
a -> Record
s {$sel:awsRegion:Record' :: Maybe Text
awsRegion = Maybe Text
a} :: Record)
record_dynamodb :: Lens.Lens' Record (Prelude.Maybe StreamRecord)
record_dynamodb :: Lens' Record (Maybe StreamRecord)
record_dynamodb = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Record' {Maybe StreamRecord
dynamodb :: Maybe StreamRecord
$sel:dynamodb:Record' :: Record -> Maybe StreamRecord
dynamodb} -> Maybe StreamRecord
dynamodb) (\s :: Record
s@Record' {} Maybe StreamRecord
a -> Record
s {$sel:dynamodb:Record' :: Maybe StreamRecord
dynamodb = Maybe StreamRecord
a} :: Record)
record_eventID :: Lens.Lens' Record (Prelude.Maybe Prelude.Text)
record_eventID :: Lens' Record (Maybe Text)
record_eventID = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Record' {Maybe Text
eventID :: Maybe Text
$sel:eventID:Record' :: Record -> Maybe Text
eventID} -> Maybe Text
eventID) (\s :: Record
s@Record' {} Maybe Text
a -> Record
s {$sel:eventID:Record' :: Maybe Text
eventID = Maybe Text
a} :: Record)
record_eventName :: Lens.Lens' Record (Prelude.Maybe OperationType)
record_eventName :: Lens' Record (Maybe OperationType)
record_eventName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Record' {Maybe OperationType
eventName :: Maybe OperationType
$sel:eventName:Record' :: Record -> Maybe OperationType
eventName} -> Maybe OperationType
eventName) (\s :: Record
s@Record' {} Maybe OperationType
a -> Record
s {$sel:eventName:Record' :: Maybe OperationType
eventName = Maybe OperationType
a} :: Record)
record_eventSource :: Lens.Lens' Record (Prelude.Maybe Prelude.Text)
record_eventSource :: Lens' Record (Maybe Text)
record_eventSource = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Record' {Maybe Text
eventSource :: Maybe Text
$sel:eventSource:Record' :: Record -> Maybe Text
eventSource} -> Maybe Text
eventSource) (\s :: Record
s@Record' {} Maybe Text
a -> Record
s {$sel:eventSource:Record' :: Maybe Text
eventSource = Maybe Text
a} :: Record)
record_eventVersion :: Lens.Lens' Record (Prelude.Maybe Prelude.Text)
record_eventVersion :: Lens' Record (Maybe Text)
record_eventVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Record' {Maybe Text
eventVersion :: Maybe Text
$sel:eventVersion:Record' :: Record -> Maybe Text
eventVersion} -> Maybe Text
eventVersion) (\s :: Record
s@Record' {} Maybe Text
a -> Record
s {$sel:eventVersion:Record' :: Maybe Text
eventVersion = Maybe Text
a} :: Record)
record_userIdentity :: Lens.Lens' Record (Prelude.Maybe Identity)
record_userIdentity :: Lens' Record (Maybe Identity)
record_userIdentity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Record' {Maybe Identity
userIdentity :: Maybe Identity
$sel:userIdentity:Record' :: Record -> Maybe Identity
userIdentity} -> Maybe Identity
userIdentity) (\s :: Record
s@Record' {} Maybe Identity
a -> Record
s {$sel:userIdentity:Record' :: Maybe Identity
userIdentity = Maybe Identity
a} :: Record)
instance Data.FromJSON Record where
parseJSON :: Value -> Parser Record
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"Record"
( \Object
x ->
Maybe Text
-> Maybe StreamRecord
-> Maybe Text
-> Maybe OperationType
-> Maybe Text
-> Maybe Text
-> Maybe Identity
-> Record
Record'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"awsRegion")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"dynamodb")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"eventID")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"eventName")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"eventSource")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"eventVersion")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"userIdentity")
)
instance Prelude.Hashable Record where
hashWithSalt :: Int -> Record -> Int
hashWithSalt Int
_salt Record' {Maybe Text
Maybe Identity
Maybe OperationType
Maybe StreamRecord
userIdentity :: Maybe Identity
eventVersion :: Maybe Text
eventSource :: Maybe Text
eventName :: Maybe OperationType
eventID :: Maybe Text
dynamodb :: Maybe StreamRecord
awsRegion :: Maybe Text
$sel:userIdentity:Record' :: Record -> Maybe Identity
$sel:eventVersion:Record' :: Record -> Maybe Text
$sel:eventSource:Record' :: Record -> Maybe Text
$sel:eventName:Record' :: Record -> Maybe OperationType
$sel:eventID:Record' :: Record -> Maybe Text
$sel:dynamodb:Record' :: Record -> Maybe StreamRecord
$sel:awsRegion:Record' :: Record -> Maybe Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
awsRegion
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe StreamRecord
dynamodb
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
eventID
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OperationType
eventName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
eventSource
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
eventVersion
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Identity
userIdentity
instance Prelude.NFData Record where
rnf :: Record -> ()
rnf Record' {Maybe Text
Maybe Identity
Maybe OperationType
Maybe StreamRecord
userIdentity :: Maybe Identity
eventVersion :: Maybe Text
eventSource :: Maybe Text
eventName :: Maybe OperationType
eventID :: Maybe Text
dynamodb :: Maybe StreamRecord
awsRegion :: Maybe Text
$sel:userIdentity:Record' :: Record -> Maybe Identity
$sel:eventVersion:Record' :: Record -> Maybe Text
$sel:eventSource:Record' :: Record -> Maybe Text
$sel:eventName:Record' :: Record -> Maybe OperationType
$sel:eventID:Record' :: Record -> Maybe Text
$sel:dynamodb:Record' :: Record -> Maybe StreamRecord
$sel:awsRegion:Record' :: Record -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
awsRegion
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StreamRecord
dynamodb
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eventID
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OperationType
eventName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eventSource
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
eventVersion
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Identity
userIdentity