aws-0.8.3: Aws/Iam/Commands/PutUserPolicy.hs
{-# 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.
--
-- <http://docs.aws.amazon.com/IAM/latest/APIReference/API_PutUserPolicy.html>
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