module Aws.Ses.Commands.SetIdentityNotificationTopic
( SetIdentityNotificationTopic(..)
, SetIdentityNotificationTopicResponse(..)
, NotificationType(..)
) where
import Data.Text (Text)
import Control.Applicative
import Data.Maybe (maybeToList)
import Data.Text.Encoding as T (encodeUtf8)
import Data.Typeable
import Prelude
import Aws.Core
import Aws.Ses.Core
data NotificationType = Bounce | Complaint
deriving (NotificationType -> NotificationType -> Bool
(NotificationType -> NotificationType -> Bool)
-> (NotificationType -> NotificationType -> Bool)
-> Eq NotificationType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NotificationType -> NotificationType -> Bool
== :: NotificationType -> NotificationType -> Bool
$c/= :: NotificationType -> NotificationType -> Bool
/= :: NotificationType -> NotificationType -> Bool
Eq, Eq NotificationType
Eq NotificationType =>
(NotificationType -> NotificationType -> Ordering)
-> (NotificationType -> NotificationType -> Bool)
-> (NotificationType -> NotificationType -> Bool)
-> (NotificationType -> NotificationType -> Bool)
-> (NotificationType -> NotificationType -> Bool)
-> (NotificationType -> NotificationType -> NotificationType)
-> (NotificationType -> NotificationType -> NotificationType)
-> Ord NotificationType
NotificationType -> NotificationType -> Bool
NotificationType -> NotificationType -> Ordering
NotificationType -> NotificationType -> NotificationType
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: NotificationType -> NotificationType -> Ordering
compare :: NotificationType -> NotificationType -> Ordering
$c< :: NotificationType -> NotificationType -> Bool
< :: NotificationType -> NotificationType -> Bool
$c<= :: NotificationType -> NotificationType -> Bool
<= :: NotificationType -> NotificationType -> Bool
$c> :: NotificationType -> NotificationType -> Bool
> :: NotificationType -> NotificationType -> Bool
$c>= :: NotificationType -> NotificationType -> Bool
>= :: NotificationType -> NotificationType -> Bool
$cmax :: NotificationType -> NotificationType -> NotificationType
max :: NotificationType -> NotificationType -> NotificationType
$cmin :: NotificationType -> NotificationType -> NotificationType
min :: NotificationType -> NotificationType -> NotificationType
Ord, Int -> NotificationType -> ShowS
[NotificationType] -> ShowS
NotificationType -> String
(Int -> NotificationType -> ShowS)
-> (NotificationType -> String)
-> ([NotificationType] -> ShowS)
-> Show NotificationType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NotificationType -> ShowS
showsPrec :: Int -> NotificationType -> ShowS
$cshow :: NotificationType -> String
show :: NotificationType -> String
$cshowList :: [NotificationType] -> ShowS
showList :: [NotificationType] -> ShowS
Show, Typeable)
data SetIdentityNotificationTopic =
SetIdentityNotificationTopic
{ SetIdentityNotificationTopic -> Text
sntIdentity :: Text
, SetIdentityNotificationTopic -> NotificationType
sntNotificationType :: NotificationType
, SetIdentityNotificationTopic -> Maybe Text
sntSnsTopic :: Maybe Text
}
deriving (SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
(SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool)
-> (SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool)
-> Eq SetIdentityNotificationTopic
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
== :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
$c/= :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
/= :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
Eq, Eq SetIdentityNotificationTopic
Eq SetIdentityNotificationTopic =>
(SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Ordering)
-> (SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool)
-> (SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool)
-> (SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool)
-> (SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool)
-> (SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> SetIdentityNotificationTopic)
-> (SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> SetIdentityNotificationTopic)
-> Ord SetIdentityNotificationTopic
SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Ordering
SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> SetIdentityNotificationTopic
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Ordering
compare :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Ordering
$c< :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
< :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
$c<= :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
<= :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
$c> :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
> :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
$c>= :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
>= :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> Bool
$cmax :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> SetIdentityNotificationTopic
max :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> SetIdentityNotificationTopic
$cmin :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> SetIdentityNotificationTopic
min :: SetIdentityNotificationTopic
-> SetIdentityNotificationTopic -> SetIdentityNotificationTopic
Ord, Int -> SetIdentityNotificationTopic -> ShowS
[SetIdentityNotificationTopic] -> ShowS
SetIdentityNotificationTopic -> String
(Int -> SetIdentityNotificationTopic -> ShowS)
-> (SetIdentityNotificationTopic -> String)
-> ([SetIdentityNotificationTopic] -> ShowS)
-> Show SetIdentityNotificationTopic
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SetIdentityNotificationTopic -> ShowS
showsPrec :: Int -> SetIdentityNotificationTopic -> ShowS
$cshow :: SetIdentityNotificationTopic -> String
show :: SetIdentityNotificationTopic -> String
$cshowList :: [SetIdentityNotificationTopic] -> ShowS
showList :: [SetIdentityNotificationTopic] -> ShowS
Show, Typeable)
instance SignQuery SetIdentityNotificationTopic where
type ServiceConfiguration SetIdentityNotificationTopic = SesConfiguration
signQuery :: forall queryType.
SetIdentityNotificationTopic
-> ServiceConfiguration SetIdentityNotificationTopic queryType
-> SignatureData
-> SignedQuery
signQuery SetIdentityNotificationTopic{Maybe Text
Text
NotificationType
sntIdentity :: SetIdentityNotificationTopic -> Text
sntNotificationType :: SetIdentityNotificationTopic -> NotificationType
sntSnsTopic :: SetIdentityNotificationTopic -> Maybe Text
sntIdentity :: Text
sntNotificationType :: NotificationType
sntSnsTopic :: Maybe Text
..} =
let notificationType :: ByteString
notificationType = case NotificationType
sntNotificationType of
NotificationType
Bounce -> ByteString
"Bounce"
NotificationType
Complaint -> ByteString
"Complaint"
snsTopic :: Maybe (ByteString, ByteString)
snsTopic = (ByteString
"SnsTopic",) (ByteString -> (ByteString, ByteString))
-> (Text -> ByteString) -> Text -> (ByteString, ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> ByteString
T.encodeUtf8 (Text -> (ByteString, ByteString))
-> Maybe Text -> Maybe (ByteString, ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
sntSnsTopic
in [(ByteString, ByteString)]
-> SesConfiguration queryType -> SignatureData -> SignedQuery
forall qt.
[(ByteString, ByteString)]
-> SesConfiguration qt -> SignatureData -> SignedQuery
sesSignQuery ([(ByteString, ByteString)]
-> SesConfiguration queryType -> SignatureData -> SignedQuery)
-> [(ByteString, ByteString)]
-> SesConfiguration queryType
-> SignatureData
-> SignedQuery
forall a b. (a -> b) -> a -> b
$ [ (ByteString
"Action", ByteString
"SetIdentityNotificationTopic")
, (ByteString
"Identity", Text -> ByteString
T.encodeUtf8 Text
sntIdentity)
, (ByteString
"NotificationType", ByteString
notificationType)
] [(ByteString, ByteString)]
-> [(ByteString, ByteString)] -> [(ByteString, ByteString)]
forall a. [a] -> [a] -> [a]
++ Maybe (ByteString, ByteString) -> [(ByteString, ByteString)]
forall a. Maybe a -> [a]
maybeToList Maybe (ByteString, ByteString)
snsTopic
data SetIdentityNotificationTopicResponse = SetIdentityNotificationTopicResponse
deriving (SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
(SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool)
-> (SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool)
-> Eq SetIdentityNotificationTopicResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
== :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
$c/= :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
/= :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
Eq, Eq SetIdentityNotificationTopicResponse
Eq SetIdentityNotificationTopicResponse =>
(SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Ordering)
-> (SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool)
-> (SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool)
-> (SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool)
-> (SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool)
-> (SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse)
-> (SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse)
-> Ord SetIdentityNotificationTopicResponse
SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Ordering
SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Ordering
compare :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Ordering
$c< :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
< :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
$c<= :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
<= :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
$c> :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
> :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
$c>= :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
>= :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse -> Bool
$cmax :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
max :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
$cmin :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
min :: SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
-> SetIdentityNotificationTopicResponse
Ord, Int -> SetIdentityNotificationTopicResponse -> ShowS
[SetIdentityNotificationTopicResponse] -> ShowS
SetIdentityNotificationTopicResponse -> String
(Int -> SetIdentityNotificationTopicResponse -> ShowS)
-> (SetIdentityNotificationTopicResponse -> String)
-> ([SetIdentityNotificationTopicResponse] -> ShowS)
-> Show SetIdentityNotificationTopicResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SetIdentityNotificationTopicResponse -> ShowS
showsPrec :: Int -> SetIdentityNotificationTopicResponse -> ShowS
$cshow :: SetIdentityNotificationTopicResponse -> String
show :: SetIdentityNotificationTopicResponse -> String
$cshowList :: [SetIdentityNotificationTopicResponse] -> ShowS
showList :: [SetIdentityNotificationTopicResponse] -> ShowS
Show, Typeable)
instance ResponseConsumer SetIdentityNotificationTopic SetIdentityNotificationTopicResponse where
type ResponseMetadata SetIdentityNotificationTopicResponse = SesMetadata
responseConsumer :: Request
-> SetIdentityNotificationTopic
-> IORef (ResponseMetadata SetIdentityNotificationTopicResponse)
-> HTTPResponseConsumer SetIdentityNotificationTopicResponse
responseConsumer Request
_ SetIdentityNotificationTopic
_
= (Cursor
-> Response SesMetadata SetIdentityNotificationTopicResponse)
-> IORef SesMetadata
-> HTTPResponseConsumer SetIdentityNotificationTopicResponse
forall a.
(Cursor -> Response SesMetadata a)
-> IORef SesMetadata -> HTTPResponseConsumer a
sesResponseConsumer ((Cursor
-> Response SesMetadata SetIdentityNotificationTopicResponse)
-> IORef SesMetadata
-> HTTPResponseConsumer SetIdentityNotificationTopicResponse)
-> (Cursor
-> Response SesMetadata SetIdentityNotificationTopicResponse)
-> IORef SesMetadata
-> HTTPResponseConsumer SetIdentityNotificationTopicResponse
forall a b. (a -> b) -> a -> b
$ \Cursor
_ -> SetIdentityNotificationTopicResponse
-> Response SesMetadata SetIdentityNotificationTopicResponse
forall a. a -> Response SesMetadata a
forall (m :: * -> *) a. Monad m => a -> m a
return SetIdentityNotificationTopicResponse
SetIdentityNotificationTopicResponse
instance Transaction SetIdentityNotificationTopic SetIdentityNotificationTopicResponse
instance AsMemoryResponse SetIdentityNotificationTopicResponse where
type MemoryResponse SetIdentityNotificationTopicResponse = SetIdentityNotificationTopicResponse
loadToMemory :: SetIdentityNotificationTopicResponse
-> ResourceT
IO (MemoryResponse SetIdentityNotificationTopicResponse)
loadToMemory = SetIdentityNotificationTopicResponse
-> ResourceT
IO (MemoryResponse SetIdentityNotificationTopicResponse)
SetIdentityNotificationTopicResponse
-> ResourceT IO SetIdentityNotificationTopicResponse
forall a. a -> ResourceT IO a
forall (m :: * -> *) a. Monad m => a -> m a
return