{-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} module Aws.Iam.Commands.PutUserPolicy ( PutUserPolicy(..) , PutUserPolicyResponse(..) ) where import Aws.Core import Aws.Iam.Core import Aws.Iam.Internal import Data.Text (Text) import Data.Typeable -- | Adds a policy document with the specified name, associated with the -- specified user. -- -- data PutUserPolicy = PutUserPolicy { pupPolicyDocument :: Text -- ^ The policy document. , pupPolicyName :: Text -- ^ Name of the policy. , pupUserName :: Text -- ^ Name of the user with whom this policy is associated. } deriving (Eq, Ord, Show, Typeable) instance SignQuery PutUserPolicy where type ServiceConfiguration PutUserPolicy = IamConfiguration signQuery PutUserPolicy{..} = iamAction "PutUserPolicy" [ ("PolicyDocument", pupPolicyDocument) , ("PolicyName" , pupPolicyName) , ("UserName" , pupUserName) ] data PutUserPolicyResponse = PutUserPolicyResponse deriving (Eq, Ord, Show, Typeable) instance ResponseConsumer PutUserPolicy PutUserPolicyResponse where type ResponseMetadata PutUserPolicyResponse = IamMetadata responseConsumer _ = iamResponseConsumer (const $ return PutUserPolicyResponse) instance Transaction PutUserPolicy PutUserPolicyResponse instance AsMemoryResponse PutUserPolicyResponse where type MemoryResponse PutUserPolicyResponse = PutUserPolicyResponse loadToMemory = return