2014-12-30 17:25:09 -05:00
module Fog
module AWS
class IAM
class Real
require 'fog/aws/parsers/iam/get_group_policy'
# Get Group Policy
#
# ==== Parameters
# * 'PolicyName'<~String>: Name of the policy to get
# * 'GroupName'<~String>: Name of the Group who the policy is associated with.
#
# ==== Returns
# * response<~Excon::Response>:
# * body<~Hash>:
# * PolicyDocument<~String> The policy document.
# * PolicyName<~String> The name of the policy.
# * GroupName<~String> The Group the policy is associated with.
#
# ==== See Also
# http://docs.amazonwebservices.com/IAM/latest/APIReference/API_GetGroupPolicy.html
#
def get_group_policy ( policy_name , group_name )
request ( {
2015-05-21 12:30:27 -04:00
'Action' = > 'GetGroupPolicy' ,
'PolicyName' = > policy_name ,
'GroupName' = > group_name ,
:parser = > Fog :: Parsers :: AWS :: IAM :: GetGroupPolicy . new
2014-12-30 17:25:09 -05:00
} )
end
end
class Mock
def get_group_policy ( policy_name , group_name )
raise Fog :: AWS :: IAM :: NotFound . new ( " The group with name #{ group_name } cannot be found. " ) unless self . data [ :groups ] . key? ( group_name )
raise Fog :: AWS :: IAM :: NotFound . new ( " The policy with name #{ policy_name } cannot be found. " ) unless self . data [ :groups ] [ group_name ] [ :policies ] . key? ( policy_name )
Excon :: Response . new . tap do | response |
response . body = { 'Policy' = > {
'PolicyName' = > policy_name ,
'GroupName' = > group_name ,
'PolicyDocument' = > data [ :groups ] [ group_name ] [ :policies ] [ policy_name ]
} ,
'IsTruncated' = > false ,
'RequestId' = > Fog :: AWS :: Mock . request_id
}
response . status = 200
end
end
end
end
end
end