content: {-# LANGUAGE MultiParamTypeClasses #-}
  {-# LANGUAGE TypeFamilies          #-}
  module Aws.Iam.Commands.DeleteUser
      ( DeleteUser(..)
      , DeleteUserResponse(..)
      ) where
  
  import           Aws.Core
  import           Aws.Iam.Core
  import           Aws.Iam.Internal
  import           Data.Text          (Text)
  import           Data.Typeable
  
  -- | Deletes the specified user.
  --
  -- <http://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteUser.html>
  data DeleteUser = DeleteUser Text
      deriving (Eq, Ord, Show, Typeable)
  
  instance SignQuery DeleteUser where
      type ServiceConfiguration DeleteUser = IamConfiguration
      signQuery (DeleteUser userName)
          = iamAction "DeleteUser" [("UserName", userName)]
  
  data DeleteUserResponse = DeleteUserResponse
      deriving (Eq, Ord, Show, Typeable)
  
  instance ResponseConsumer DeleteUser DeleteUserResponse where
      type ResponseMetadata DeleteUserResponse = IamMetadata
      responseConsumer _ _
          = iamResponseConsumer (const $ return DeleteUserResponse)
  
  instance Transaction DeleteUser DeleteUserResponse
  
  instance AsMemoryResponse DeleteUserResponse where
      type MemoryResponse DeleteUserResponse = DeleteUserResponse
      loadToMemory = return
  