diff --git a/lib/fog/aws/iam.rb b/lib/fog/aws/iam.rb index 43c02515a..62fbbbe33 100644 --- a/lib/fog/aws/iam.rb +++ b/lib/fog/aws/iam.rb @@ -22,6 +22,7 @@ module Fog request :put_group_policy request :put_user_policy request :remove_user_from_group + request :update_access_key class Mock diff --git a/lib/fog/aws/requests/iam/update_access_key.rb b/lib/fog/aws/requests/iam/update_access_key.rb new file mode 100644 index 000000000..5e2d79d0c --- /dev/null +++ b/lib/fog/aws/requests/iam/update_access_key.rb @@ -0,0 +1,44 @@ +module Fog + module AWS + class IAM + class Real + + require 'fog/aws/parsers/iam/basic' + + # Update an access key for a user + # + # ==== Parameters + # * access_key_id<~String> - Access key id to delete + # * status<~String> - status of keys in ['Active', 'Inactive'] + # * options<~Hash>: + # * 'UserName'<~String> - name of the user to create (do not include path) + # + # ==== Returns + # * response<~Excon::Response>: + # * body<~Hash>: + # * 'RequestId'<~String> - Id of the request + # + # ==== See Also + # http://docs.amazonwebservices.com/IAM/latest/APIReference/API_UpdateAccessKey.html + # + def update_access_key(access_key_id, status, options = {}) + request({ + 'AccessKeyId' => access_key_id, + 'Action' => 'UpdateAccessKey', + 'Status' => status, + :parser => Fog::Parsers::AWS::IAM::Basic.new + }.merge!(options)) + end + + end + + class Mock + + def update_access_key(access_key_id, status, user_name = nil) + Fog::Mock.not_implemented + end + + end + end + end +end diff --git a/tests/aws/requests/iam/access_key_tests.rb b/tests/aws/requests/iam/access_key_tests.rb index 2c3370e81..e4a80aa06 100644 --- a/tests/aws/requests/iam/access_key_tests.rb +++ b/tests/aws/requests/iam/access_key_tests.rb @@ -33,6 +33,10 @@ Shindo.tests('AWS::IAM | access key requests', ['aws']) do AWS[:iam].list_access_keys('UserName' => 'fog_access_key_tests').body end + tests("#update_access_key('#{@access_key_id}', 'Inactive', 'UserName' => 'fog_access_key_tests')").formats(AWS::IAM::Formats::BASIC) do + AWS[:iam].update_access_key(@access_key_id, 'Inactive', 'UserName' => 'fog_access_key_tests').body + end + tests("#delete_access_key('#{@access_key_id}', 'UserName' => 'fog_access_key_tests)").formats(AWS::IAM::Formats::BASIC) do AWS[:iam].delete_access_key(@access_key_id, 'UserName' => 'fog_access_key_tests').body end