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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
$c/= :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
== :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
$c== :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
Eq, Eq 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
min :: SetIdentityDkimEnabled
-> SetIdentityDkimEnabled -> SetIdentityDkimEnabled
$cmin :: SetIdentityDkimEnabled
-> SetIdentityDkimEnabled -> SetIdentityDkimEnabled
max :: SetIdentityDkimEnabled
-> SetIdentityDkimEnabled -> SetIdentityDkimEnabled
$cmax :: SetIdentityDkimEnabled
-> SetIdentityDkimEnabled -> SetIdentityDkimEnabled
>= :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Bool
$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
compare :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Ordering
$ccompare :: SetIdentityDkimEnabled -> SetIdentityDkimEnabled -> Ordering
Ord, Int -> SetIdentityDkimEnabled -> ShowS
[SetIdentityDkimEnabled] -> ShowS
SetIdentityDkimEnabled -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetIdentityDkimEnabled] -> ShowS
$cshowList :: [SetIdentityDkimEnabled] -> ShowS
show :: SetIdentityDkimEnabled -> String
$cshow :: SetIdentityDkimEnabled -> String
showsPrec :: Int -> SetIdentityDkimEnabled -> ShowS
$cshowsPrec :: Int -> 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
sdIdentity :: Text
sdDkimEnabled :: Bool
sdIdentity :: SetIdentityDkimEnabled -> Text
sdDkimEnabled :: SetIdentityDkimEnabled -> Bool
..} =
        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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
$c/= :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
== :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
$c== :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
Eq, Eq 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
min :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> SetIdentityDkimEnabledResponse
$cmin :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> SetIdentityDkimEnabledResponse
max :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> SetIdentityDkimEnabledResponse
$cmax :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> SetIdentityDkimEnabledResponse
>= :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Bool
$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
compare :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Ordering
$ccompare :: SetIdentityDkimEnabledResponse
-> SetIdentityDkimEnabledResponse -> Ordering
Ord, Int -> SetIdentityDkimEnabledResponse -> ShowS
[SetIdentityDkimEnabledResponse] -> ShowS
SetIdentityDkimEnabledResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SetIdentityDkimEnabledResponse] -> ShowS
$cshowList :: [SetIdentityDkimEnabledResponse] -> ShowS
show :: SetIdentityDkimEnabledResponse -> String
$cshow :: SetIdentityDkimEnabledResponse -> String
showsPrec :: Int -> SetIdentityDkimEnabledResponse -> ShowS
$cshowsPrec :: Int -> SetIdentityDkimEnabledResponse -> ShowS
Show, Typeable)

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