{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.SES.Types.ReceiptAction
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
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

-- | An action that Amazon SES can take when it receives an email on behalf
-- of one or more email addresses or domains that you own. An instance of
-- this data type can represent only one action.
--
-- For information about setting up receipt rules, see the
-- <https://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html Amazon SES Developer Guide>.
--
-- /See:/ 'newReceiptAction' smart constructor.
data ReceiptAction = ReceiptAction'
  { -- | Adds a header to the received email.
    ReceiptAction -> Maybe AddHeaderAction
addHeaderAction :: Prelude.Maybe AddHeaderAction,
    -- | Publishes the email content within a notification to Amazon SNS.
    ReceiptAction -> Maybe SNSAction
sNSAction :: Prelude.Maybe SNSAction,
    -- | Calls Amazon WorkMail and, optionally, publishes a notification to
    -- Amazon Amazon SNS.
    ReceiptAction -> Maybe WorkmailAction
workmailAction :: Prelude.Maybe WorkmailAction,
    -- | Rejects the received email by returning a bounce response to the sender
    -- and, optionally, publishes a notification to Amazon Simple Notification
    -- Service (Amazon SNS).
    ReceiptAction -> Maybe BounceAction
bounceAction :: Prelude.Maybe BounceAction,
    -- | Calls an AWS Lambda function, and optionally, publishes a notification
    -- to Amazon SNS.
    ReceiptAction -> Maybe LambdaAction
lambdaAction :: Prelude.Maybe LambdaAction,
    -- | Terminates the evaluation of the receipt rule set and optionally
    -- publishes a notification to Amazon SNS.
    ReceiptAction -> Maybe StopAction
stopAction :: Prelude.Maybe StopAction,
    -- | Saves the received message to an Amazon Simple Storage Service (Amazon
    -- S3) bucket and, optionally, publishes a notification to Amazon SNS.
    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)

-- |
-- Create a value of 'ReceiptAction' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'addHeaderAction', 'receiptAction_addHeaderAction' - Adds a header to the received email.
--
-- 'sNSAction', 'receiptAction_sNSAction' - Publishes the email content within a notification to Amazon SNS.
--
-- 'workmailAction', 'receiptAction_workmailAction' - Calls Amazon WorkMail and, optionally, publishes a notification to
-- Amazon Amazon SNS.
--
-- 'bounceAction', 'receiptAction_bounceAction' - Rejects the received email by returning a bounce response to the sender
-- and, optionally, publishes a notification to Amazon Simple Notification
-- Service (Amazon SNS).
--
-- 'lambdaAction', 'receiptAction_lambdaAction' - Calls an AWS Lambda function, and optionally, publishes a notification
-- to Amazon SNS.
--
-- 'stopAction', 'receiptAction_stopAction' - Terminates the evaluation of the receipt rule set and optionally
-- publishes a notification to Amazon SNS.
--
-- 's3Action', 'receiptAction_s3Action' - Saves the received message to an Amazon Simple Storage Service (Amazon
-- S3) bucket and, optionally, publishes a notification to Amazon SNS.
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
    }

-- | Adds a header to the received email.
receiptAction_addHeaderAction :: Lens.Lens' ReceiptAction (Prelude.Maybe AddHeaderAction)
receiptAction_addHeaderAction :: (Maybe AddHeaderAction -> f (Maybe AddHeaderAction))
-> ReceiptAction -> f ReceiptAction
receiptAction_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)

-- | Publishes the email content within a notification to Amazon SNS.
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)

-- | Calls Amazon WorkMail and, optionally, publishes a notification to
-- Amazon Amazon SNS.
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)

-- | Rejects the received email by returning a bounce response to the sender
-- and, optionally, publishes a notification to Amazon Simple Notification
-- Service (Amazon SNS).
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)

-- | Calls an AWS Lambda function, and optionally, publishes a notification
-- to Amazon SNS.
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)

-- | Terminates the evaluation of the receipt rule set and optionally
-- publishes a notification to Amazon SNS.
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)

-- | Saves the received message to an Amazon Simple Storage Service (Amazon
-- S3) bucket and, optionally, publishes a notification to Amazon SNS.
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
      ]