Class: Fog::AWS::IAM::Real
- Inherits:
-
Object
- Object
- Fog::AWS::IAM::Real
- Defined in:
- lib/fog/aws/iam.rb,
lib/fog/aws/requests/iam/get_user.rb,
lib/fog/aws/requests/iam/list_users.rb,
lib/fog/aws/requests/iam/create_user.rb,
lib/fog/aws/requests/iam/delete_user.rb,
lib/fog/aws/requests/iam/list_groups.rb,
lib/fog/aws/requests/iam/create_group.rb,
lib/fog/aws/requests/iam/delete_group.rb,
lib/fog/aws/requests/iam/put_user_policy.rb,
lib/fog/aws/requests/iam/list_access_keys.rb,
lib/fog/aws/requests/iam/put_group_policy.rb,
lib/fog/aws/requests/iam/add_user_to_group.rb,
lib/fog/aws/requests/iam/create_access_key.rb,
lib/fog/aws/requests/iam/delete_access_key.rb,
lib/fog/aws/requests/iam/update_access_key.rb,
lib/fog/aws/requests/iam/delete_user_policy.rb,
lib/fog/aws/requests/iam/list_user_policies.rb,
lib/fog/aws/requests/iam/delete_group_policy.rb,
lib/fog/aws/requests/iam/list_group_policies.rb,
lib/fog/aws/requests/iam/remove_user_from_group.rb
Instance Method Summary collapse
-
#add_user_to_group(group_name, user_name) ⇒ Object
Add a user to a group.
-
#create_access_key(options = {}) ⇒ Object
Create a access keys for user (by default detects user from access credentials).
-
#create_group(group_name, path = '/') ⇒ Object
Create a new group.
-
#create_user(user_name, path = '/') ⇒ Object
Create a new user.
-
#delete_access_key(access_key_id, options = {}) ⇒ Object
Delete an access key.
-
#delete_group(group_name) ⇒ Object
Delete a group.
-
#delete_group_policy(group_name, policy_name) ⇒ Object
Remove a policy from a group.
-
#delete_user(user_name) ⇒ Object
Delete a user.
-
#delete_user_policy(user_name, policy_name) ⇒ Object
Remove a policy from a user.
-
#get_user(options = {}) ⇒ Object
Get User.
-
#initialize(options = {}) ⇒ Real
constructor
Initialize connection to IAM.
-
#list_access_keys(options = {}) ⇒ Object
List access_keys.
-
#list_group_policies(group_name, options = {}) ⇒ Object
List policies for a group.
-
#list_groups(options = {}) ⇒ Object
List groups.
-
#list_user_policies(user_name, options = {}) ⇒ Object
List policies for a user.
-
#list_users(options = {}) ⇒ Object
List users.
-
#put_group_policy(group_name, policy_name, policy_document) ⇒ Object
Add or update a policy for a group.
-
#put_user_policy(user_name, policy_name, policy_document) ⇒ Object
Add or update a policy for a user.
- #reload ⇒ Object
-
#remove_user_from_group(group_name, user_name) ⇒ Object
Remove a user from a group.
-
#update_access_key(access_key_id, status, options = {}) ⇒ Object
Update an access key for a user.
Constructor Details
#initialize(options = {}) ⇒ Real
Initialize connection to IAM
Notes
options parameter must include values for :aws_access_key_id and :aws_secret_access_key in order to create a connection
Examples
iam = IAM.new( :aws_access_key_id => your_aws_access_key_id, :aws_secret_access_key => your_aws_secret_access_key )
Parameters
- options<~Hash> - config arguments for connection. Defaults to {}.
Returns
- IAM object with connection to AWS.
55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/fog/aws/iam.rb', line 55 def initialize(={}) require 'json' @aws_access_key_id = [:aws_access_key_id] @aws_secret_access_key = [:aws_secret_access_key] @hmac = Fog::HMAC.new('sha256', @aws_secret_access_key) @host = [:host] || 'iam.amazonaws.com' @path = [:path] || '/' @port = [:port] || 443 @scheme = [:scheme] || 'https' @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", [:persistent]) end |
Instance Method Details
#add_user_to_group(group_name, user_name) ⇒ Object
Add a user to a group
Parameters
- group_name<~String>: name of the group
- user_name<~String>: name of user to add
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_AddUserToGroup.html
22 23 24 25 26 27 28 29 |
# File 'lib/fog/aws/requests/iam/add_user_to_group.rb', line 22 def add_user_to_group(group_name, user_name) request( 'Action' => 'AddUserToGroup', 'GroupName' => group_name, 'UserName' => user_name, :parser => Fog::Parsers::AWS::IAM::Basic.new ) end |
#create_access_key(options = {}) ⇒ Object
Create a access keys for user (by default detects user from access credentials)
Parameters
- options<~Hash>:
- 'UserName'<~String> - name of the user to create (do not include path)
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'AccessKey'<~Hash>:
- 'AccessKeyId'<~String> -
- 'Username'<~String> -
- 'SecretAccessKey'<~String> -
- 'Status'<~String> -
- 'RequestId'<~String> - Id of the request
- 'AccessKey'<~Hash>:
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateAccessKey.html
27 28 29 30 31 32 |
# File 'lib/fog/aws/requests/iam/create_access_key.rb', line 27 def create_access_key( = {}) request({ 'Action' => 'CreateAccessKey', :parser => Fog::Parsers::AWS::IAM::CreateAccessKey.new }.merge!()) end |
#create_group(group_name, path = '/') ⇒ Object
Create a new group
Parameters
- group_name<~String>: name of the group to create (do not include path)
- path<~String>: optional path to group, defaults to '/'
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'Group'<~Hash>:
- Arn<~String> -
- GroupId<~String> -
- GroupName<~String> -
- Path<~String> -
- 'RequestId'<~String> - Id of the request
- 'Group'<~Hash>:
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateGroup.html
27 28 29 30 31 32 33 34 |
# File 'lib/fog/aws/requests/iam/create_group.rb', line 27 def create_group(group_name, path = '/') request( 'Action' => 'CreateGroup', 'GroupName' => group_name, 'Path' => path, :parser => Fog::Parsers::AWS::IAM::CreateGroup.new ) end |
#create_user(user_name, path = '/') ⇒ Object
Create a new user
Parameters
- user_name<~String>: name of the user to create (do not include path)
- path<~String>: optional path to group, defaults to '/'
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'User'<~Hash>:
- 'Arn'<~String> -
- 'Path'<~String> -
- 'UserId'<~String> -
- 'UserName'<~String> -
- 'RequestId'<~String> - Id of the request
- 'User'<~Hash>:
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateUser.html
27 28 29 30 31 32 33 34 |
# File 'lib/fog/aws/requests/iam/create_user.rb', line 27 def create_user(user_name, path = '/') request( 'Action' => 'CreateUser', 'UserName' => user_name, 'Path' => path, :parser => Fog::Parsers::AWS::IAM::CreateUser.new ) end |
#delete_access_key(access_key_id, options = {}) ⇒ Object
Delete an access key
Parameters
- access_key_id<~String> - Access key id to delete
- 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
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteAccessKey.html
23 24 25 26 27 28 29 |
# File 'lib/fog/aws/requests/iam/delete_access_key.rb', line 23 def delete_access_key(access_key_id, = {}) request({ 'AccessKeyId' => access_key_id, 'Action' => 'DeleteAccessKey', :parser => Fog::Parsers::AWS::IAM::Basic.new }.merge!()) end |
#delete_group(group_name) ⇒ Object
Delete a group
Parameters
- group_name<~String>: name of the group to delete
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteGroup.html
21 22 23 24 25 26 27 |
# File 'lib/fog/aws/requests/iam/delete_group.rb', line 21 def delete_group(group_name) request( 'Action' => 'DeleteGroup', 'GroupName' => group_name, :parser => Fog::Parsers::AWS::IAM::Basic.new ) end |
#delete_group_policy(group_name, policy_name) ⇒ Object
Remove a policy from a group
Parameters
- group_name<~String>: name of the group
- policy_name<~String>: name of policy document
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html
22 23 24 25 26 27 28 29 |
# File 'lib/fog/aws/requests/iam/delete_group_policy.rb', line 22 def delete_group_policy(group_name, policy_name) request( 'Action' => 'DeleteGroupPolicy', 'GroupName' => group_name, 'PolicyName' => policy_name, :parser => Fog::Parsers::AWS::IAM::Basic.new ) end |
#delete_user(user_name) ⇒ Object
Delete a user
Parameters
- user_name<~String>: name of the user to delete
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteUser.html
21 22 23 24 25 26 27 |
# File 'lib/fog/aws/requests/iam/delete_user.rb', line 21 def delete_user(user_name) request( 'Action' => 'DeleteUser', 'UserName' => user_name, :parser => Fog::Parsers::AWS::IAM::Basic.new ) end |
#delete_user_policy(user_name, policy_name) ⇒ Object
Remove a policy from a user
Parameters
- user_name<~String>: name of the user
- policy_name<~String>: name of policy document
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteUserPolicy.html
22 23 24 25 26 27 28 29 |
# File 'lib/fog/aws/requests/iam/delete_user_policy.rb', line 22 def delete_user_policy(user_name, policy_name) request( 'Action' => 'DeleteUserPolicy', 'PolicyName' => policy_name, 'UserName' => user_name, :parser => Fog::Parsers::AWS::IAM::Basic.new ) end |
#get_user(options = {}) ⇒ Object
Get User
Parameters
- options<~Hash>:
- 'UserName'<~String>: Name of the User. Defaults to current user
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'User'<~Hash> - User
- Arn<~String> -
- UserId<~String> -
- UserName<~String> -
- Path<~String> -
- 'User'<~Hash> - User
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_Getuser.html
26 27 28 29 30 31 |
# File 'lib/fog/aws/requests/iam/get_user.rb', line 26 def get_user( = {}) request({ 'Action' => 'GetUser', :parser => Fog::Parsers::AWS::IAM::GetUser.new }.merge!()) end |
#list_access_keys(options = {}) ⇒ Object
List access_keys
Parameters
- options<~Hash>:
- 'Marker'<~String> - used to paginate subsequent requests
- 'MaxItems'<~Integer> - limit results to this number per page
- 'UserName'<~String> - optional: username to lookup access keys for, defaults to current user
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'AccessKeys'<~Array> - Matching access keys
- access_key<~Hash>:
- AccessKeyId<~String> -
- Status<~String> -
- access_key<~Hash>:
- 'IsTruncated<~Boolean> - Whether or not results were truncated
- 'Marker'<~String> - appears when IsTruncated is true as the next marker to use
- 'RequestId'<~String> - Id of the request
- 'AccessKeys'<~Array> - Matching access keys
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_ListAccessKeys.html
30 31 32 33 34 35 |
# File 'lib/fog/aws/requests/iam/list_access_keys.rb', line 30 def list_access_keys( = {}) request({ 'Action' => 'ListAccessKeys', :parser => Fog::Parsers::AWS::IAM::ListAccessKeys.new }.merge!()) end |
#list_group_policies(group_name, options = {}) ⇒ Object
List policies for a group
Parameters
- group_name<~String> - Name of group to list policies for
- options<~Hash>: Optional
- 'Marker'<~String>: used to paginate subsequent requests
- 'MaxItems'<~Integer>: limit results to this number per page
- 'PathPrefix'<~String>: prefix for filtering results
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'PolicyNames'<~Array> - Matching policy names
- 'IsTruncated<~Boolean> - Whether or not results were truncated
- 'Marker'<~String> - appears when IsTruncated is true as the next marker to use
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_ListGroupPolicies.html
28 29 30 31 32 33 34 |
# File 'lib/fog/aws/requests/iam/list_group_policies.rb', line 28 def list_group_policies(group_name, = {}) request({ 'Action' => 'ListGroupPolicies', 'GroupName' => group_name, :parser => Fog::Parsers::AWS::IAM::ListPolicies.new }.merge!()) end |
#list_groups(options = {}) ⇒ Object
List groups
Parameters
- options<~Hash>:
- 'Marker'<~String>: used to paginate subsequent requests
- 'MaxItems'<~Integer>: limit results to this number per page
- 'PathPrefix'<~String>: prefix for filtering results
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'Groups'<~Array> - Matching groups
- group<~Hash>:
- Arn<~String> -
- GroupId<~String> -
- GroupName<~String> -
- Path<~String> -
- group<~Hash>:
- 'IsTruncated<~Boolean> - Whether or not results were truncated
- 'Marker'<~String> - appears when IsTruncated is true as the next marker to use
- 'RequestId'<~String> - Id of the request
- 'Groups'<~Array> - Matching groups
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_ListGroups.html
32 33 34 35 36 37 |
# File 'lib/fog/aws/requests/iam/list_groups.rb', line 32 def list_groups( = {}) request({ 'Action' => 'ListGroups', :parser => Fog::Parsers::AWS::IAM::ListGroups.new }.merge!()) end |
#list_user_policies(user_name, options = {}) ⇒ Object
List policies for a user
Parameters
- user_name<~String> - Name of user to list policies for
- options<~Hash>: Optional
- 'Marker'<~String>: used to paginate subsequent requests
- 'MaxItems'<~Integer>: limit results to this number per page
- 'PathPrefix'<~String>: prefix for filtering results
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'PolicyNames'<~Array> - Matching policy names
- 'IsTruncated<~Boolean> - Whether or not results were truncated
- 'Marker'<~String> - appears when IsTruncated is true as the next marker to use
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_ListUserPolicies.html
28 29 30 31 32 33 34 |
# File 'lib/fog/aws/requests/iam/list_user_policies.rb', line 28 def list_user_policies(user_name, = {}) request({ 'Action' => 'ListUserPolicies', 'UserName' => user_name, :parser => Fog::Parsers::AWS::IAM::ListPolicies.new }.merge!()) end |
#list_users(options = {}) ⇒ Object
List users
Parameters
- options<~Hash>:
- 'Marker'<~String>: used to paginate subsequent requests
- 'MaxItems'<~Integer>: limit results to this number per page
- 'PathPrefix'<~String>: prefix for filtering results
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'Users'<~Array> - Matching groups
- user<~Hash>:
- Arn<~String> -
- Path<~String> -
- UserId<~String> -
- UserName<~String> -
- user<~Hash>:
- 'IsTruncated<~Boolean> - Whether or not results were truncated
- 'Marker'<~String> - appears when IsTruncated is true as the next marker to use
- 'RequestId'<~String> - Id of the request
- 'Users'<~Array> - Matching groups
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_ListUsers.html
32 33 34 35 36 37 |
# File 'lib/fog/aws/requests/iam/list_users.rb', line 32 def list_users( = {}) request({ 'Action' => 'ListUsers', :parser => Fog::Parsers::AWS::IAM::ListUsers.new }.merge!()) end |
#put_group_policy(group_name, policy_name, policy_document) ⇒ Object
Add or update a policy for a group
Parameters
- group_name<~String>: name of the group
- policy_name<~String>: name of policy document
- policy_document<~Hash>: policy document, see: http://docs.amazonwebservices.com/IAM/latest/UserGuide/PoliciesOverview.html
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_PutGroupPolicy.html
23 24 25 26 27 28 29 30 31 |
# File 'lib/fog/aws/requests/iam/put_group_policy.rb', line 23 def put_group_policy(group_name, policy_name, policy_document) request( 'Action' => 'PutGroupPolicy', 'GroupName' => group_name, 'PolicyName' => policy_name, 'PolicyDocument' => policy_document.to_json, :parser => Fog::Parsers::AWS::IAM::Basic.new ) end |
#put_user_policy(user_name, policy_name, policy_document) ⇒ Object
Add or update a policy for a user
Parameters
- user_name<~String>: name of the user
- policy_name<~String>: name of policy document
- policy_document<~Hash>: policy document, see: http://docs.amazonwebservices.com/IAM/latest/UserGuide/PoliciesOverview.html
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_PutUserPolicy.html
23 24 25 26 27 28 29 30 31 |
# File 'lib/fog/aws/requests/iam/put_user_policy.rb', line 23 def put_user_policy(user_name, policy_name, policy_document) request( 'Action' => 'PutUserPolicy', 'PolicyName' => policy_name, 'PolicyDocument' => policy_document.to_json, 'UserName' => user_name, :parser => Fog::Parsers::AWS::IAM::Basic.new ) end |
#reload ⇒ Object
67 68 69 |
# File 'lib/fog/aws/iam.rb', line 67 def reload @connection.reset end |
#remove_user_from_group(group_name, user_name) ⇒ Object
Remove a user from a group
Parameters
- group_name<~String>: name of the group
- user_name<~String>: name of user to remove
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'RequestId'<~String> - Id of the request
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html
22 23 24 25 26 27 28 29 |
# File 'lib/fog/aws/requests/iam/remove_user_from_group.rb', line 22 def remove_user_from_group(group_name, user_name) request( 'Action' => 'RemoveUserFromGroup', 'GroupName' => group_name, 'UserName' => user_name, :parser => Fog::Parsers::AWS::IAM::Basic.new ) end |
#update_access_key(access_key_id, status, options = {}) ⇒ Object
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
- body<~Hash>:
See Also
http://docs.amazonwebservices.com/IAM/latest/APIReference/API_UpdateAccessKey.html
24 25 26 27 28 29 30 31 |
# File 'lib/fog/aws/requests/iam/update_access_key.rb', line 24 def update_access_key(access_key_id, status, = {}) request({ 'AccessKeyId' => access_key_id, 'Action' => 'UpdateAccessKey', 'Status' => status, :parser => Fog::Parsers::AWS::IAM::Basic.new }.merge!()) end |