module Aws.Ses.Commands.SetIdentityDkimEnabled
    ( SetIdentityDkimEnabled(..)
    , SetIdentityDkimEnabledResponse(..)
    ) where

import           Aws.Core
import           Aws.Ses.Core
import           Data.Text          (Text)
import           Data.Text.Encoding as T
import           Data.Typeable

-- | Change whether bounces and complaints for the given identity will be
-- DKIM signed.
data SetIdentityDkimEnabled = SetIdentityDkimEnabled
      { SetIdentityDkimEnabled -> Bool
sdDkimEnabled :: Bool
      , SetIdentityDkimEnabled -> Text
sdIdentity    :: Text
      }
    deriving (SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
(SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool)
-> (SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool)
-> Eq SetIdentityDkimEnabled
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
== :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
$c/= :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
/= :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
Eq, Eq SetIdentityDkimEnabled
Eq SetIdentityDkimEnabled =>
(SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Ordering)
-> (SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool)
-> (SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool)
-> (SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool)
-> (SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool)
-> (SetIdentityDkimEnabled
    -> SetIdentityDkimEnabled -> SetIdentityDkimEnabled)
-> (SetIdentityDkimEnabled
    -> SetIdentityDkimEnabled -> SetIdentityDkimEnabled)
-> Ord SetIdentityDkimEnabled
SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Ordering
SetIdentityDkimEnabled
-> SetIdentityDkimEnabled -> SetIdentityDkimEnabled
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 :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Ordering
compare :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Ordering
$c< :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
< :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
$c<= :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
<= :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
$c> :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
> :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
$c>= :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
>= :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
$cmax :: SetIdentityDkimEnabled
-> SetIdentityDkimEnabled -> SetIdentityDkimEnabled
max :: SetIdentityDkimEnabled
-> SetIdentityDkimEnabled -> SetIdentityDkimEnabled
$cmin :: SetIdentityDkimEnabled
-> SetIdentityDkimEnabled -> SetIdentityDkimEnabled
min :: SetIdentityDkimEnabled
-> SetIdentityDkimEnabled -> SetIdentityDkimEnabled
Ord, Int -> SetIdentityDkimEnabled -> ShowS
[SetIdentityDkimEnabled] -> ShowS
SetIdentityDkimEnabled -> String
(Int -> SetIdentityDkimEnabled -> ShowS)
-> (SetIdentityDkimEnabled -> String)
-> ([SetIdentityDkimEnabled] -> ShowS)
-> Show SetIdentityDkimEnabled
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SetIdentityDkimEnabled -> ShowS
showsPrec :: Int -> SetIdentityDkimEnabled -> ShowS
$cshow :: SetIdentityDkimEnabled -> String
show :: SetIdentityDkimEnabled -> String
$cshowList :: [SetIdentityDkimEnabled] -> ShowS
showList :: [SetIdentityDkimEnabled] -> ShowS
Show, Typeable)

-- | ServiceConfiguration: 'SesConfiguration'
instance SignQuery SetIdentityDkimEnabled where
    type ServiceConfiguration SetIdentityDkimEnabled = SesConfiguration
    signQuery :: forall queryType.
SetIdentityDkimEnabled
-> ServiceConfiguration SetIdentityDkimEnabled queryType
-> SignatureData
-> SignedQuery
signQuery SetIdentityDkimEnabled{Bool
Text
sdDkimEnabled :: SetIdentityDkimEnabled -> Bool
sdIdentity :: SetIdentityDkimEnabled -> Text
sdDkimEnabled :: Bool
sdIdentity :: Text
..} =
        [(ByteString, ByteString)]
-> SesConfiguration queryType -> SignatureData -> SignedQuery
forall qt.
[(ByteString, ByteString)]
-> SesConfiguration qt -> SignatureData -> SignedQuery
sesSignQuery [ (ByteString
"Action",   ByteString
"SetIdentityDkimEnabled")
                     , (ByteString
"Identity",  Text -> ByteString
T.encodeUtf8 Text
sdIdentity)
                     , (ByteString
"DkimEnabled", Bool -> ByteString
awsBool Bool
sdDkimEnabled)
                     ]

-- | The response sent back by SES after the 'SetIdentityDkimEnabled' command.
data SetIdentityDkimEnabledResponse = SetIdentityDkimEnabledResponse
    deriving (SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
(SetIdentityDkimEnabledResponse
 -> SetIdentityDkimEnabledResponse -> Bool)
-> (SetIdentityDkimEnabledResponse
    -> SetIdentityDkimEnabledResponse -> Bool)
-> Eq SetIdentityDkimEnabledResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
== :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
$c/= :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
/= :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
Eq, Eq SetIdentityDkimEnabledResponse
Eq SetIdentityDkimEnabledResponse =>
(SetIdentityDkimEnabledResponse
 -> SetIdentityDkimEnabledResponse -> Ordering)
-> (SetIdentityDkimEnabledResponse
    -> SetIdentityDkimEnabledResponse -> Bool)
-> (SetIdentityDkimEnabledResponse
    -> SetIdentityDkimEnabledResponse -> Bool)
-> (SetIdentityDkimEnabledResponse
    -> SetIdentityDkimEnabledResponse -> Bool)
-> (SetIdentityDkimEnabledResponse
    -> SetIdentityDkimEnabledResponse -> Bool)
-> (SetIdentityDkimEnabledResponse
    -> SetIdentityDkimEnabledResponse
    -> SetIdentityDkimEnabledResponse)
-> (SetIdentityDkimEnabledResponse
    -> SetIdentityDkimEnabledResponse
    -> SetIdentityDkimEnabledResponse)
-> Ord SetIdentityDkimEnabledResponse
SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Ordering
SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> SetIdentityDkimEnabledResponse
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 :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Ordering
compare :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Ordering
$c< :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
< :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
$c<= :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
<= :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
$c> :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
> :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
$c>= :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
>= :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
$cmax :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> SetIdentityDkimEnabledResponse
max :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> SetIdentityDkimEnabledResponse
$cmin :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> SetIdentityDkimEnabledResponse
min :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> SetIdentityDkimEnabledResponse
Ord, Int -> SetIdentityDkimEnabledResponse -> ShowS
[SetIdentityDkimEnabledResponse] -> ShowS
SetIdentityDkimEnabledResponse -> String
(Int -> SetIdentityDkimEnabledResponse -> ShowS)
-> (SetIdentityDkimEnabledResponse -> String)
-> ([SetIdentityDkimEnabledResponse] -> ShowS)
-> Show SetIdentityDkimEnabledResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SetIdentityDkimEnabledResponse -> ShowS
showsPrec :: Int -> SetIdentityDkimEnabledResponse -> ShowS
$cshow :: SetIdentityDkimEnabledResponse -> String
show :: SetIdentityDkimEnabledResponse -> String
$cshowList :: [SetIdentityDkimEnabledResponse] -> ShowS
showList :: [SetIdentityDkimEnabledResponse] -> ShowS
Show, Typeable)

instance ResponseConsumer SetIdentityDkimEnabled SetIdentityDkimEnabledResponse where
    type ResponseMetadata SetIdentityDkimEnabledResponse = SesMetadata
    responseConsumer :: Request
-> SetIdentityDkimEnabled
-> IORef (ResponseMetadata SetIdentityDkimEnabledResponse)
-> HTTPResponseConsumer SetIdentityDkimEnabledResponse
responseConsumer Request
_ SetIdentityDkimEnabled
_
        = (Cursor -> Response SesMetadata SetIdentityDkimEnabledResponse)
-> IORef SesMetadata
-> HTTPResponseConsumer SetIdentityDkimEnabledResponse
forall a.
(Cursor -> Response SesMetadata a)
-> IORef SesMetadata -> HTTPResponseConsumer a
sesResponseConsumer ((Cursor -> Response SesMetadata SetIdentityDkimEnabledResponse)
 -> IORef SesMetadata
 -> HTTPResponseConsumer SetIdentityDkimEnabledResponse)
-> (Cursor -> Response SesMetadata SetIdentityDkimEnabledResponse)
-> IORef SesMetadata
-> HTTPResponseConsumer SetIdentityDkimEnabledResponse
forall a b. (a -> b) -> a -> b
$ \Cursor
_ -> SetIdentityDkimEnabledResponse
-> Response SesMetadata SetIdentityDkimEnabledResponse
forall a. a -> Response SesMetadata a
forall (m :: * -> *) a. Monad m => a -> m a
return SetIdentityDkimEnabledResponse
SetIdentityDkimEnabledResponse

instance Transaction SetIdentityDkimEnabled SetIdentityDkimEnabledResponse

instance AsMemoryResponse SetIdentityDkimEnabledResponse where
    type MemoryResponse SetIdentityDkimEnabledResponse = SetIdentityDkimEnabledResponse
    loadToMemory :: SetIdentityDkimEnabledResponse
-> ResourceT IO (MemoryResponse SetIdentityDkimEnabledResponse)
loadToMemory = SetIdentityDkimEnabledResponse
-> ResourceT IO (MemoryResponse SetIdentityDkimEnabledResponse)
SetIdentityDkimEnabledResponse
-> ResourceT IO SetIdentityDkimEnabledResponse
forall a. a -> ResourceT IO a
forall (m :: * -> *) a. Monad m => a -> m a
return