{-# 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.SES.Types.ReceiptAction where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.SES.Types.AddHeaderAction
import Amazonka.SES.Types.BounceAction
import Amazonka.SES.Types.LambdaAction
import Amazonka.SES.Types.S3Action
import Amazonka.SES.Types.SNSAction
import Amazonka.SES.Types.StopAction
import Amazonka.SES.Types.WorkmailAction
data ReceiptAction = ReceiptAction'
{
:: Prelude.Maybe AddHeaderAction,
ReceiptAction -> Maybe BounceAction
bounceAction :: Prelude.Maybe BounceAction,
ReceiptAction -> Maybe LambdaAction
lambdaAction :: Prelude.Maybe LambdaAction,
ReceiptAction -> Maybe S3Action
s3Action :: Prelude.Maybe S3Action,
ReceiptAction -> Maybe SNSAction
sNSAction :: Prelude.Maybe SNSAction,
ReceiptAction -> Maybe StopAction
stopAction :: Prelude.Maybe StopAction,
ReceiptAction -> Maybe WorkmailAction
workmailAction :: Prelude.Maybe WorkmailAction
}
deriving (ReceiptAction -> ReceiptAction -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ReceiptAction -> ReceiptAction -> Bool
$c/= :: ReceiptAction -> ReceiptAction -> Bool
== :: ReceiptAction -> ReceiptAction -> Bool
$c== :: ReceiptAction -> ReceiptAction -> Bool
Prelude.Eq, ReadPrec [ReceiptAction]
ReadPrec ReceiptAction
Int -> ReadS ReceiptAction
ReadS [ReceiptAction]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ReceiptAction]
$creadListPrec :: ReadPrec [ReceiptAction]
readPrec :: ReadPrec ReceiptAction
$creadPrec :: ReadPrec ReceiptAction
readList :: ReadS [ReceiptAction]
$creadList :: ReadS [ReceiptAction]
readsPrec :: Int -> ReadS ReceiptAction
$creadsPrec :: Int -> ReadS ReceiptAction
Prelude.Read, Int -> ReceiptAction -> ShowS
[ReceiptAction] -> ShowS
ReceiptAction -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ReceiptAction] -> ShowS
$cshowList :: [ReceiptAction] -> ShowS
show :: ReceiptAction -> String
$cshow :: ReceiptAction -> String
showsPrec :: Int -> ReceiptAction -> ShowS
$cshowsPrec :: Int -> ReceiptAction -> ShowS
Prelude.Show, forall x. Rep ReceiptAction x -> ReceiptAction
forall x. ReceiptAction -> Rep ReceiptAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ReceiptAction x -> ReceiptAction
$cfrom :: forall x. ReceiptAction -> Rep ReceiptAction x
Prelude.Generic)
newReceiptAction ::
ReceiptAction
newReceiptAction :: ReceiptAction
newReceiptAction =
ReceiptAction'
{ $sel:addHeaderAction:ReceiptAction' :: Maybe AddHeaderAction
addHeaderAction = forall a. Maybe a
Prelude.Nothing,
$sel:bounceAction:ReceiptAction' :: Maybe BounceAction
bounceAction = forall a. Maybe a
Prelude.Nothing,
$sel:lambdaAction:ReceiptAction' :: Maybe LambdaAction
lambdaAction = forall a. Maybe a
Prelude.Nothing,
$sel:s3Action:ReceiptAction' :: Maybe S3Action
s3Action = forall a. Maybe a
Prelude.Nothing,
$sel:sNSAction:ReceiptAction' :: Maybe SNSAction
sNSAction = forall a. Maybe a
Prelude.Nothing,
$sel:stopAction:ReceiptAction' :: Maybe StopAction
stopAction = forall a. Maybe a
Prelude.Nothing,
$sel:workmailAction:ReceiptAction' :: Maybe WorkmailAction
workmailAction = forall a. Maybe a
Prelude.Nothing
}
receiptAction_addHeaderAction :: Lens.Lens' ReceiptAction (Prelude.Maybe AddHeaderAction)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReceiptAction' {Maybe AddHeaderAction
addHeaderAction :: Maybe AddHeaderAction
$sel:addHeaderAction:ReceiptAction' :: ReceiptAction -> Maybe AddHeaderAction
addHeaderAction} -> Maybe AddHeaderAction
addHeaderAction) (\s :: ReceiptAction
s@ReceiptAction' {} Maybe AddHeaderAction
a -> ReceiptAction
s {$sel:addHeaderAction:ReceiptAction' :: Maybe AddHeaderAction
addHeaderAction = Maybe AddHeaderAction
a} :: ReceiptAction)
receiptAction_bounceAction :: Lens.Lens' ReceiptAction (Prelude.Maybe BounceAction)
receiptAction_bounceAction :: Lens' ReceiptAction (Maybe BounceAction)
receiptAction_bounceAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReceiptAction' {Maybe BounceAction
bounceAction :: Maybe BounceAction
$sel:bounceAction:ReceiptAction' :: ReceiptAction -> Maybe BounceAction
bounceAction} -> Maybe BounceAction
bounceAction) (\s :: ReceiptAction
s@ReceiptAction' {} Maybe BounceAction
a -> ReceiptAction
s {$sel:bounceAction:ReceiptAction' :: Maybe BounceAction
bounceAction = Maybe BounceAction
a} :: ReceiptAction)
receiptAction_lambdaAction :: Lens.Lens' ReceiptAction (Prelude.Maybe LambdaAction)
receiptAction_lambdaAction :: Lens' ReceiptAction (Maybe LambdaAction)
receiptAction_lambdaAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReceiptAction' {Maybe LambdaAction
lambdaAction :: Maybe LambdaAction
$sel:lambdaAction:ReceiptAction' :: ReceiptAction -> Maybe LambdaAction
lambdaAction} -> Maybe LambdaAction
lambdaAction) (\s :: ReceiptAction
s@ReceiptAction' {} Maybe LambdaAction
a -> ReceiptAction
s {$sel:lambdaAction:ReceiptAction' :: Maybe LambdaAction
lambdaAction = Maybe LambdaAction
a} :: ReceiptAction)
receiptAction_s3Action :: Lens.Lens' ReceiptAction (Prelude.Maybe S3Action)
receiptAction_s3Action :: Lens' ReceiptAction (Maybe S3Action)
receiptAction_s3Action = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReceiptAction' {Maybe S3Action
s3Action :: Maybe S3Action
$sel:s3Action:ReceiptAction' :: ReceiptAction -> Maybe S3Action
s3Action} -> Maybe S3Action
s3Action) (\s :: ReceiptAction
s@ReceiptAction' {} Maybe S3Action
a -> ReceiptAction
s {$sel:s3Action:ReceiptAction' :: Maybe S3Action
s3Action = Maybe S3Action
a} :: ReceiptAction)
receiptAction_sNSAction :: Lens.Lens' ReceiptAction (Prelude.Maybe SNSAction)
receiptAction_sNSAction :: Lens' ReceiptAction (Maybe SNSAction)
receiptAction_sNSAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReceiptAction' {Maybe SNSAction
sNSAction :: Maybe SNSAction
$sel:sNSAction:ReceiptAction' :: ReceiptAction -> Maybe SNSAction
sNSAction} -> Maybe SNSAction
sNSAction) (\s :: ReceiptAction
s@ReceiptAction' {} Maybe SNSAction
a -> ReceiptAction
s {$sel:sNSAction:ReceiptAction' :: Maybe SNSAction
sNSAction = Maybe SNSAction
a} :: ReceiptAction)
receiptAction_stopAction :: Lens.Lens' ReceiptAction (Prelude.Maybe StopAction)
receiptAction_stopAction :: Lens' ReceiptAction (Maybe StopAction)
receiptAction_stopAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReceiptAction' {Maybe StopAction
stopAction :: Maybe StopAction
$sel:stopAction:ReceiptAction' :: ReceiptAction -> Maybe StopAction
stopAction} -> Maybe StopAction
stopAction) (\s :: ReceiptAction
s@ReceiptAction' {} Maybe StopAction
a -> ReceiptAction
s {$sel:stopAction:ReceiptAction' :: Maybe StopAction
stopAction = Maybe StopAction
a} :: ReceiptAction)
receiptAction_workmailAction :: Lens.Lens' ReceiptAction (Prelude.Maybe WorkmailAction)
receiptAction_workmailAction :: Lens' ReceiptAction (Maybe WorkmailAction)
receiptAction_workmailAction = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ReceiptAction' {Maybe WorkmailAction
workmailAction :: Maybe WorkmailAction
$sel:workmailAction:ReceiptAction' :: ReceiptAction -> Maybe WorkmailAction
workmailAction} -> Maybe WorkmailAction
workmailAction) (\s :: ReceiptAction
s@ReceiptAction' {} Maybe WorkmailAction
a -> ReceiptAction
s {$sel:workmailAction:ReceiptAction' :: Maybe WorkmailAction
workmailAction = Maybe WorkmailAction
a} :: ReceiptAction)
instance Data.FromXML ReceiptAction where
parseXML :: [Node] -> Either String ReceiptAction
parseXML [Node]
x =
Maybe AddHeaderAction
-> Maybe BounceAction
-> Maybe LambdaAction
-> Maybe S3Action
-> Maybe SNSAction
-> Maybe StopAction
-> Maybe WorkmailAction
-> ReceiptAction
ReceiptAction'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"AddHeaderAction")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"BounceAction")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"LambdaAction")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"S3Action")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"SNSAction")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"StopAction")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"WorkmailAction")
instance Prelude.Hashable ReceiptAction where
hashWithSalt :: Int -> ReceiptAction -> Int
hashWithSalt Int
_salt ReceiptAction' {Maybe AddHeaderAction
Maybe BounceAction
Maybe LambdaAction
Maybe S3Action
Maybe SNSAction
Maybe StopAction
Maybe WorkmailAction
workmailAction :: Maybe WorkmailAction
stopAction :: Maybe StopAction
sNSAction :: Maybe SNSAction
s3Action :: Maybe S3Action
lambdaAction :: Maybe LambdaAction
bounceAction :: Maybe BounceAction
addHeaderAction :: Maybe AddHeaderAction
$sel:workmailAction:ReceiptAction' :: ReceiptAction -> Maybe WorkmailAction
$sel:stopAction:ReceiptAction' :: ReceiptAction -> Maybe StopAction
$sel:sNSAction:ReceiptAction' :: ReceiptAction -> Maybe SNSAction
$sel:s3Action:ReceiptAction' :: ReceiptAction -> Maybe S3Action
$sel:lambdaAction:ReceiptAction' :: ReceiptAction -> Maybe LambdaAction
$sel:bounceAction:ReceiptAction' :: ReceiptAction -> Maybe BounceAction
$sel:addHeaderAction:ReceiptAction' :: ReceiptAction -> Maybe AddHeaderAction
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe AddHeaderAction
addHeaderAction
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe BounceAction
bounceAction
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LambdaAction
lambdaAction
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe S3Action
s3Action
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SNSAction
sNSAction
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe StopAction
stopAction
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe WorkmailAction
workmailAction
instance Prelude.NFData ReceiptAction where
rnf :: ReceiptAction -> ()
rnf ReceiptAction' {Maybe AddHeaderAction
Maybe BounceAction
Maybe LambdaAction
Maybe S3Action
Maybe SNSAction
Maybe StopAction
Maybe WorkmailAction
workmailAction :: Maybe WorkmailAction
stopAction :: Maybe StopAction
sNSAction :: Maybe SNSAction
s3Action :: Maybe S3Action
lambdaAction :: Maybe LambdaAction
bounceAction :: Maybe BounceAction
addHeaderAction :: Maybe AddHeaderAction
$sel:workmailAction:ReceiptAction' :: ReceiptAction -> Maybe WorkmailAction
$sel:stopAction:ReceiptAction' :: ReceiptAction -> Maybe StopAction
$sel:sNSAction:ReceiptAction' :: ReceiptAction -> Maybe SNSAction
$sel:s3Action:ReceiptAction' :: ReceiptAction -> Maybe S3Action
$sel:lambdaAction:ReceiptAction' :: ReceiptAction -> Maybe LambdaAction
$sel:bounceAction:ReceiptAction' :: ReceiptAction -> Maybe BounceAction
$sel:addHeaderAction:ReceiptAction' :: ReceiptAction -> Maybe AddHeaderAction
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe AddHeaderAction
addHeaderAction
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe BounceAction
bounceAction
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LambdaAction
lambdaAction
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe S3Action
s3Action
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SNSAction
sNSAction
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StopAction
stopAction
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe WorkmailAction
workmailAction
instance Data.ToQuery ReceiptAction where
toQuery :: ReceiptAction -> QueryString
toQuery ReceiptAction' {Maybe AddHeaderAction
Maybe BounceAction
Maybe LambdaAction
Maybe S3Action
Maybe SNSAction
Maybe StopAction
Maybe WorkmailAction
workmailAction :: Maybe WorkmailAction
stopAction :: Maybe StopAction
sNSAction :: Maybe SNSAction
s3Action :: Maybe S3Action
lambdaAction :: Maybe LambdaAction
bounceAction :: Maybe BounceAction
addHeaderAction :: Maybe AddHeaderAction
$sel:workmailAction:ReceiptAction' :: ReceiptAction -> Maybe WorkmailAction
$sel:stopAction:ReceiptAction' :: ReceiptAction -> Maybe StopAction
$sel:sNSAction:ReceiptAction' :: ReceiptAction -> Maybe SNSAction
$sel:s3Action:ReceiptAction' :: ReceiptAction -> Maybe S3Action
$sel:lambdaAction:ReceiptAction' :: ReceiptAction -> Maybe LambdaAction
$sel:bounceAction:ReceiptAction' :: ReceiptAction -> Maybe BounceAction
$sel:addHeaderAction:ReceiptAction' :: ReceiptAction -> Maybe AddHeaderAction
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"AddHeaderAction" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe AddHeaderAction
addHeaderAction,
ByteString
"BounceAction" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe BounceAction
bounceAction,
ByteString
"LambdaAction" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe LambdaAction
lambdaAction,
ByteString
"S3Action" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe S3Action
s3Action,
ByteString
"SNSAction" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe SNSAction
sNSAction,
ByteString
"StopAction" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe StopAction
stopAction,
ByteString
"WorkmailAction" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Maybe WorkmailAction
workmailAction
]