    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