{-# 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.Lens as Lens
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 SNSAction
sNSAction :: Prelude.Maybe SNSAction,
ReceiptAction -> Maybe WorkmailAction
workmailAction :: Prelude.Maybe WorkmailAction,
ReceiptAction -> Maybe BounceAction
bounceAction :: Prelude.Maybe BounceAction,
ReceiptAction -> Maybe LambdaAction
lambdaAction :: Prelude.Maybe LambdaAction,
ReceiptAction -> Maybe StopAction
stopAction :: Prelude.Maybe StopAction,
ReceiptAction -> Maybe S3Action
s3Action :: Prelude.Maybe S3Action
}
deriving (ReceiptAction -> ReceiptAction -> Bool
(ReceiptAction -> ReceiptAction -> Bool)
-> (ReceiptAction -> ReceiptAction -> Bool) -> Eq ReceiptAction
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]
(Int -> ReadS ReceiptAction)
-> ReadS [ReceiptAction]
-> ReadPrec ReceiptAction
-> ReadPrec [ReceiptAction]
-> Read 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
(Int -> ReceiptAction -> ShowS)
-> (ReceiptAction -> String)
-> ([ReceiptAction] -> ShowS)
-> Show ReceiptAction
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. ReceiptAction -> Rep ReceiptAction x)
-> (forall x. Rep ReceiptAction x -> ReceiptAction)
-> Generic ReceiptAction
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' :: Maybe AddHeaderAction
-> Maybe SNSAction
-> Maybe WorkmailAction
-> Maybe BounceAction
-> Maybe LambdaAction
-> Maybe StopAction
-> Maybe S3Action
-> ReceiptAction
ReceiptAction'
{ $sel:addHeaderAction:ReceiptAction' :: Maybe AddHeaderAction
addHeaderAction = Maybe AddHeaderAction
forall a. Maybe a
Prelude.Nothing,
$sel:sNSAction:ReceiptAction' :: Maybe SNSAction
sNSAction = Maybe SNSAction
forall a. Maybe a
Prelude.Nothing,
$sel:workmailAction:ReceiptAction' :: Maybe WorkmailAction
workmailAction = Maybe WorkmailAction
forall a. Maybe a
Prelude.Nothing,
$sel:bounceAction:ReceiptAction' :: Maybe BounceAction
bounceAction = Maybe BounceAction
forall a. Maybe a
Prelude.Nothing,
$sel:lambdaAction:ReceiptAction' :: Maybe LambdaAction
lambdaAction = Maybe LambdaAction
forall a. Maybe a
Prelude.Nothing,
$sel:stopAction:ReceiptAction' :: Maybe StopAction
stopAction = Maybe StopAction
forall a. Maybe a
Prelude.Nothing,
$sel:s3Action:ReceiptAction' :: Maybe S3Action
s3Action = Maybe S3Action
forall a. Maybe a
Prelude.Nothing
}
receiptAction_addHeaderAction :: Lens.Lens' ReceiptAction (Prelude.Maybe AddHeaderAction)
= (ReceiptAction -> Maybe AddHeaderAction)
-> (ReceiptAction -> Maybe AddHeaderAction -> ReceiptAction)
-> Lens
ReceiptAction
ReceiptAction
(Maybe AddHeaderAction)
(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_sNSAction :: Lens.Lens' ReceiptAction (Prelude.Maybe SNSAction)
receiptAction_sNSAction :: (Maybe SNSAction -> f (Maybe SNSAction))
-> ReceiptAction -> f ReceiptAction
receiptAction_sNSAction = (ReceiptAction -> Maybe SNSAction)
-> (ReceiptAction -> Maybe SNSAction -> ReceiptAction)
-> Lens
ReceiptAction ReceiptAction (Maybe SNSAction) (Maybe 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_workmailAction :: Lens.Lens' ReceiptAction (Prelude.Maybe WorkmailAction)
receiptAction_workmailAction :: (Maybe WorkmailAction -> f (Maybe WorkmailAction))
-> ReceiptAction -> f ReceiptAction
receiptAction_workmailAction = (ReceiptAction -> Maybe WorkmailAction)
-> (ReceiptAction -> Maybe WorkmailAction -> ReceiptAction)
-> Lens
ReceiptAction
ReceiptAction
(Maybe WorkmailAction)
(Maybe 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)
receiptAction_bounceAction :: Lens.Lens' ReceiptAction (Prelude.Maybe BounceAction)
receiptAction_bounceAction :: (Maybe BounceAction -> f (Maybe BounceAction))
-> ReceiptAction -> f ReceiptAction
receiptAction_bounceAction = (ReceiptAction -> Maybe BounceAction)
-> (ReceiptAction -> Maybe BounceAction -> ReceiptAction)
-> Lens
ReceiptAction
ReceiptAction
(Maybe BounceAction)
(Maybe 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 :: (Maybe LambdaAction -> f (Maybe LambdaAction))
-> ReceiptAction -> f ReceiptAction
receiptAction_lambdaAction = (ReceiptAction -> Maybe LambdaAction)
-> (ReceiptAction -> Maybe LambdaAction -> ReceiptAction)
-> Lens
ReceiptAction
ReceiptAction
(Maybe LambdaAction)
(Maybe 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_stopAction :: Lens.Lens' ReceiptAction (Prelude.Maybe StopAction)
receiptAction_stopAction :: (Maybe StopAction -> f (Maybe StopAction))
-> ReceiptAction -> f ReceiptAction
receiptAction_stopAction = (ReceiptAction -> Maybe StopAction)
-> (ReceiptAction -> Maybe StopAction -> ReceiptAction)
-> Lens
ReceiptAction ReceiptAction (Maybe StopAction) (Maybe 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_s3Action :: Lens.Lens' ReceiptAction (Prelude.Maybe S3Action)
receiptAction_s3Action :: (Maybe S3Action -> f (Maybe S3Action))
-> ReceiptAction -> f ReceiptAction
receiptAction_s3Action = (ReceiptAction -> Maybe S3Action)
-> (ReceiptAction -> Maybe S3Action -> ReceiptAction)
-> Lens
ReceiptAction ReceiptAction (Maybe S3Action) (Maybe 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)
instance Core.FromXML ReceiptAction where
parseXML :: [Node] -> Either String ReceiptAction
parseXML [Node]
x =
Maybe AddHeaderAction
-> Maybe SNSAction
-> Maybe WorkmailAction
-> Maybe BounceAction
-> Maybe LambdaAction
-> Maybe StopAction
-> Maybe S3Action
-> ReceiptAction
ReceiptAction'
(Maybe AddHeaderAction
-> Maybe SNSAction
-> Maybe WorkmailAction
-> Maybe BounceAction
-> Maybe LambdaAction
-> Maybe StopAction
-> Maybe S3Action
-> ReceiptAction)
-> Either String (Maybe AddHeaderAction)
-> Either
String
(Maybe SNSAction
-> Maybe WorkmailAction
-> Maybe BounceAction
-> Maybe LambdaAction
-> Maybe StopAction
-> Maybe S3Action
-> ReceiptAction)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x [Node] -> Text -> Either String (Maybe AddHeaderAction)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"AddHeaderAction")
Either
String
(Maybe SNSAction
-> Maybe WorkmailAction
-> Maybe BounceAction
-> Maybe LambdaAction
-> Maybe StopAction
-> Maybe S3Action
-> ReceiptAction)
-> Either String (Maybe SNSAction)
-> Either
String
(Maybe WorkmailAction
-> Maybe BounceAction
-> Maybe LambdaAction
-> Maybe StopAction
-> Maybe S3Action
-> ReceiptAction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe SNSAction)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"SNSAction")
Either
String
(Maybe WorkmailAction
-> Maybe BounceAction
-> Maybe LambdaAction
-> Maybe StopAction
-> Maybe S3Action
-> ReceiptAction)
-> Either String (Maybe WorkmailAction)
-> Either
String
(Maybe BounceAction
-> Maybe LambdaAction
-> Maybe StopAction
-> Maybe S3Action
-> ReceiptAction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe WorkmailAction)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"WorkmailAction")
Either
String
(Maybe BounceAction
-> Maybe LambdaAction
-> Maybe StopAction
-> Maybe S3Action
-> ReceiptAction)
-> Either String (Maybe BounceAction)
-> Either
String
(Maybe LambdaAction
-> Maybe StopAction -> Maybe S3Action -> ReceiptAction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe BounceAction)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"BounceAction")
Either
String
(Maybe LambdaAction
-> Maybe StopAction -> Maybe S3Action -> ReceiptAction)
-> Either String (Maybe LambdaAction)
-> Either
String (Maybe StopAction -> Maybe S3Action -> ReceiptAction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe LambdaAction)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"LambdaAction")
Either String (Maybe StopAction -> Maybe S3Action -> ReceiptAction)
-> Either String (Maybe StopAction)
-> Either String (Maybe S3Action -> ReceiptAction)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe StopAction)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"StopAction")
Either String (Maybe S3Action -> ReceiptAction)
-> Either String (Maybe S3Action) -> Either String ReceiptAction
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ([Node]
x [Node] -> Text -> Either String (Maybe S3Action)
forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Core..@? Text
"S3Action")
instance Prelude.Hashable ReceiptAction
instance Prelude.NFData ReceiptAction
instance Core.ToQuery ReceiptAction where
toQuery :: ReceiptAction -> QueryString
toQuery ReceiptAction' {Maybe AddHeaderAction
Maybe BounceAction
Maybe LambdaAction
Maybe S3Action
Maybe SNSAction
Maybe StopAction
Maybe WorkmailAction
s3Action :: Maybe S3Action
stopAction :: Maybe StopAction
lambdaAction :: Maybe LambdaAction
bounceAction :: Maybe BounceAction
workmailAction :: Maybe WorkmailAction
sNSAction :: Maybe SNSAction
addHeaderAction :: Maybe AddHeaderAction
$sel:s3Action:ReceiptAction' :: ReceiptAction -> Maybe S3Action
$sel:stopAction:ReceiptAction' :: ReceiptAction -> Maybe StopAction
$sel:lambdaAction:ReceiptAction' :: ReceiptAction -> Maybe LambdaAction
$sel:bounceAction:ReceiptAction' :: ReceiptAction -> Maybe BounceAction
$sel:workmailAction:ReceiptAction' :: ReceiptAction -> Maybe WorkmailAction
$sel:sNSAction:ReceiptAction' :: ReceiptAction -> Maybe SNSAction
$sel:addHeaderAction:ReceiptAction' :: ReceiptAction -> Maybe AddHeaderAction
..} =
[QueryString] -> QueryString
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"AddHeaderAction" ByteString -> Maybe AddHeaderAction -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe AddHeaderAction
addHeaderAction,
ByteString
"SNSAction" ByteString -> Maybe SNSAction -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe SNSAction
sNSAction,
ByteString
"WorkmailAction" ByteString -> Maybe WorkmailAction -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe WorkmailAction
workmailAction,
ByteString
"BounceAction" ByteString -> Maybe BounceAction -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe BounceAction
bounceAction,
ByteString
"LambdaAction" ByteString -> Maybe LambdaAction -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe LambdaAction
lambdaAction,
ByteString
"StopAction" ByteString -> Maybe StopAction -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe StopAction
stopAction,
ByteString
"S3Action" ByteString -> Maybe S3Action -> QueryString
forall a. ToQuery a => ByteString -> a -> QueryString
Core.=: Maybe S3Action
s3Action
]