2011-02-28 13:29:34 -05:00
module Fog
module AWS
class IAM
class Real
require 'fog/aws/parsers/iam/get_user_policy'
# Get User Policy
2013-10-07 17:10:51 -04:00
#
2011-02-28 13:29:34 -05:00
# ==== Parameters
# * 'PolicyName'<~String>: Name of the policy to get
# * 'UserName'<~String>: Name of the User who the policy is associated with.
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
# * PolicyDocument<~String> The policy document.
# * PolicyName<~String> The name of the policy.
# * UserName<~String> The User the policy is associated with.
#
# ==== See Also
# http://docs.amazonwebservices.com/IAM/latest/APIReference/API_GetUserPolicy.html
#
def get_user_policy ( policy_name , user_name )
request ( {
'Action' = > 'GetUserPolicy' ,
'PolicyName' = > policy_name ,
'UserName' = > user_name ,
:parser = > Fog :: Parsers :: AWS :: IAM :: GetUserPolicy . new
} )
end
end
2012-06-05 09:03:14 -04:00
class Mock
def get_user_policy ( policy_name , user_name )
2013-10-07 17:10:51 -04:00
raise Fog :: AWS :: IAM :: NotFound . new ( " The user with name #{ user_name } cannot be found. " ) unless self . data [ :users ] . key? ( user_name )
2012-06-05 09:03:14 -04:00
raise Fog :: AWS :: IAM :: NotFound . new ( " The policy with name #{ policy_name } cannot be found. " ) unless self . data [ :users ] [ user_name ] [ :policies ] . key? ( policy_name )
Excon :: Response . new . tap do | response |
2013-10-07 17:10:51 -04:00
response . body = { 'Policy' = > {
2012-06-07 08:40:34 -04:00
'PolicyName' = > policy_name ,
'UserName' = > user_name ,
'PolicyDocument' = > data [ :users ] [ user_name ] [ :policies ] [ policy_name ]
} ,
2012-06-05 09:03:14 -04:00
'IsTruncated' = > false ,
2013-10-07 17:10:51 -04:00
'RequestId' = > Fog :: AWS :: Mock . request_id
2012-06-05 09:03:14 -04:00
}
response . status = 200
end
end
end
2011-02-28 13:29:34 -05:00
end
end
end