diff --git a/lib/fog/aws/iam.rb b/lib/fog/aws/iam.rb index 548aab157..c61381dcd 100644 --- a/lib/fog/aws/iam.rb +++ b/lib/fog/aws/iam.rb @@ -17,6 +17,7 @@ module Fog request :delete_user request :delete_user_policy request :get_user + request :get_user_policy request :get_group request :list_access_keys request :list_groups diff --git a/lib/fog/aws/parsers/iam/get_user_policy.rb b/lib/fog/aws/parsers/iam/get_user_policy.rb new file mode 100644 index 000000000..76438bb31 --- /dev/null +++ b/lib/fog/aws/parsers/iam/get_user_policy.rb @@ -0,0 +1,27 @@ +module Fog + module Parsers + module AWS + module IAM + + class GetUserPolicy < Fog::Parsers::Base + # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_GetUserPolicy.html + + def reset + @response = {} + end + + def end_element(name) + case name + when 'UserName', 'PolicyName', 'PolicyDocument' + @response[name] = @value + when 'RequestId' + @response[name] = @value + end + end + + end + + end + end + end +end diff --git a/lib/fog/aws/requests/iam/get_user_policy.rb b/lib/fog/aws/requests/iam/get_user_policy.rb new file mode 100644 index 000000000..87bf73d61 --- /dev/null +++ b/lib/fog/aws/requests/iam/get_user_policy.rb @@ -0,0 +1,36 @@ +module Fog + module AWS + class IAM + class Real + + require 'fog/aws/parsers/iam/get_user_policy' + + # Get User Policy + # + # ==== 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 + end + end +end