Class: Fog::AWS::IAM::Real

Inherits:
Object
  • Object
show all
Includes:
CredentialFetcher::ConnectionMethods
Defined in:
lib/fog/aws/iam.rb,
lib/fog/aws/requests/iam/get_role.rb,
lib/fog/aws/requests/iam/get_user.rb,
lib/fog/aws/requests/iam/get_group.rb,
lib/fog/aws/requests/iam/list_roles.rb,
lib/fog/aws/requests/iam/list_users.rb,
lib/fog/aws/requests/iam/create_role.rb,
lib/fog/aws/requests/iam/create_user.rb,
lib/fog/aws/requests/iam/delete_role.rb,
lib/fog/aws/requests/iam/delete_user.rb,
lib/fog/aws/requests/iam/list_groups.rb,
lib/fog/aws/requests/iam/update_user.rb,
lib/fog/aws/requests/iam/create_group.rb,
lib/fog/aws/requests/iam/delete_group.rb,
lib/fog/aws/requests/iam/update_group.rb,
lib/fog/aws/requests/iam/get_role_policy.rb,
lib/fog/aws/requests/iam/get_user_policy.rb,
lib/fog/aws/requests/iam/put_role_policy.rb,
lib/fog/aws/requests/iam/put_user_policy.rb,
lib/fog/aws/requests/iam/get_group_policy.rb,
lib/fog/aws/requests/iam/list_access_keys.rb,
lib/fog/aws/requests/iam/list_mfa_devices.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/get_login_profile.rb,
lib/fog/aws/requests/iam/update_access_key.rb,
lib/fog/aws/requests/iam/delete_role_policy.rb,
lib/fog/aws/requests/iam/delete_user_policy.rb,
lib/fog/aws/requests/iam/list_role_policies.rb,
lib/fog/aws/requests/iam/list_user_policies.rb,
lib/fog/aws/requests/iam/delete_group_policy.rb,
lib/fog/aws/requests/iam/get_account_summary.rb,
lib/fog/aws/requests/iam/list_group_policies.rb,
lib/fog/aws/requests/iam/create_account_alias.rb,
lib/fog/aws/requests/iam/create_login_profile.rb,
lib/fog/aws/requests/iam/delete_account_alias.rb,
lib/fog/aws/requests/iam/delete_login_profile.rb,
lib/fog/aws/requests/iam/get_instance_profile.rb,
lib/fog/aws/requests/iam/list_account_aliases.rb,
lib/fog/aws/requests/iam/list_groups_for_user.rb,
lib/fog/aws/requests/iam/update_login_profile.rb,
lib/fog/aws/requests/iam/get_server_certificate.rb,
lib/fog/aws/requests/iam/list_instance_profiles.rb,
lib/fog/aws/requests/iam/remove_user_from_group.rb,
lib/fog/aws/requests/iam/create_instance_profile.rb,
lib/fog/aws/requests/iam/delete_instance_profile.rb,
lib/fog/aws/requests/iam/list_server_certificates.rb,
lib/fog/aws/requests/iam/delete_server_certificate.rb,
lib/fog/aws/requests/iam/list_signing_certificates.rb,
lib/fog/aws/requests/iam/update_server_certificate.rb,
lib/fog/aws/requests/iam/upload_server_certificate.rb,
lib/fog/aws/requests/iam/delete_signing_certificate.rb,
lib/fog/aws/requests/iam/update_signing_certificate.rb,
lib/fog/aws/requests/iam/upload_signing_certificate.rb,
lib/fog/aws/requests/iam/get_account_password_policy.rb,
lib/fog/aws/requests/iam/add_role_to_instance_profile.rb,
lib/fog/aws/requests/iam/delete_account_password_policy.rb,
lib/fog/aws/requests/iam/update_account_password_policy.rb,
lib/fog/aws/requests/iam/list_instance_profiles_for_role.rb,
lib/fog/aws/requests/iam/remove_role_from_instance_profile.rb

Instance Method Summary collapse

Methods included from CredentialFetcher::ConnectionMethods

#refresh_credentials_if_expired

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.



175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# File 'lib/fog/aws/iam.rb', line 175

def initialize(options={})

  @use_iam_profile = options[:use_iam_profile]
  @connection_options     = options[:connection_options] || {}
  @instrumentor           = options[:instrumentor]
  @instrumentor_name      = options[:instrumentor_name] || 'fog.aws.iam'
  @host       = options[:host]        || 'iam.amazonaws.com'
  @path       = options[:path]        || '/'
  @persistent = options[:persistent]  || false
  @port       = options[:port]        || 443
  @scheme     = options[:scheme]      || 'https'
  @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)

  setup_credentials(options)

end

Instance Method Details

#add_role_to_instance_profile(role_name, instance_profile_name) ⇒ Object

Add a role to an instance profile

Parameters

  • instance_profile_name<~String>: Name of the instance profile to update.

  • role_name<~String>:Name of the role to add.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_AddRoleToInstanceProfile.html



21
22
23
24
25
26
27
28
# File 'lib/fog/aws/requests/iam/add_role_to_instance_profile.rb', line 21

def add_role_to_instance_profile(role_name, instance_profile_name)
  request(
    'Action'    => 'AddRoleToInstanceProfile',
    'InstanceProfileName' => instance_profile_name,
    'RoleName'  => role_name,
    :parser     => Fog::Parsers::AWS::IAM::Basic.new
  )
end

#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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_AddUserToGroup.html



21
22
23
24
25
26
27
28
# File 'lib/fog/aws/requests/iam/add_user_to_group.rb', line 21

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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateAccessKey.html



26
27
28
29
30
31
# File 'lib/fog/aws/requests/iam/create_access_key.rb', line 26

def create_access_key(options = {})
  request({
    'Action'    => 'CreateAccessKey',
    :parser     => Fog::Parsers::AWS::IAM::CreateAccessKey.new
  }.merge!(options))
end

#create_account_alias(account_alias) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/fog/aws/requests/iam/create_account_alias.rb', line 7

def ()
  request(
    'Action'    => 'CreateAccountAlias',
    'AccountAlias'  => ,
    :parser     => Fog::Parsers::AWS::IAM::Basic.new
  )
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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateGroup.html



26
27
28
29
30
31
32
33
# File 'lib/fog/aws/requests/iam/create_group.rb', line 26

def create_group(group_name, path = '/')
  request(
    'Action'    => 'CreateGroup',
    'GroupName' => group_name,
    'Path'      => path,
    :parser     => Fog::Parsers::AWS::IAM::CreateGroup.new
  )
end

#create_instance_profile(instance_profile_name, path = '/', options = {}) ⇒ Object

Create a new instance_profile

Parameters

  • instance_profile_name<~String>: name of the instance profile to create (do not include path)

  • path<~String>: optional path to group, defaults to ‘/’

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘InstanceProfile’<~Hash>:

        • Arn<~String> -

        • CreateDate<~Date>

        • InstanceProfileId<~String> -

        • InstanceProfileName<~String> -

        • Path<~String> -

        • Roles<~Array> - role<~Hash>:

          * 'Arn'<~String> -
          * 'AssumeRolePolicyDocument'<~String<
          * 'Path'<~String> -
          * 'RoleId'<~String> -
          * 'RoleName'<~String> -
          
      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateInstanceProfile.html



34
35
36
37
38
39
40
41
# File 'lib/fog/aws/requests/iam/create_instance_profile.rb', line 34

def create_instance_profile(instance_profile_name, path='/', options={})
  request({
    'Action'    => 'CreateInstanceProfile',
    'InstanceProfileName' => instance_profile_name,
    'Path'      => path,
    :parser     => Fog::Parsers::AWS::IAM::InstanceProfile.new
  }.merge!(options))
end

#create_login_profile(user_name, password) ⇒ Object

Creates a login profile for a user

docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateLoginProfile.html

Parameters

  • user_name<~String> - Name of user to create a login profile for

  • password<~String> - The new password for this user

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘LoginProfile’<~Hash>

        * UserName<~String>
        * CreateDate
        
      • ‘RequestId’<~String> - Id of the request



23
24
25
26
27
28
29
30
# File 'lib/fog/aws/requests/iam/create_login_profile.rb', line 23

def (user_name, password)
  request({
    'Action'    => 'CreateLoginProfile',
    'UserName'  => user_name,
    'Password'  => password,
    :parser     => Fog::Parsers::AWS::IAM::LoginProfile.new
  })
end

#create_role(role_name, assume_role_policy_document, path = '/') ⇒ Object

Creates a new role for your AWS account

Parameters

  • RoleName<~String>: name of the role to create

  • AssumeRolePolicyDocument<~String>: The policy that grants an entity permission to assume the role.

  • Path<~String>: This parameter is optional. If it is not included, it defaults to a slash (/).

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘Role’<~Hash>:

        • ‘Arn’<~String> -

        • ‘AssumeRolePolicyDocument’<~String<

        • ‘Path’<~String> -

        • ‘RoleId’<~String> -

        • ‘RoleName’<~String> -

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateRole.html



43
44
45
46
47
48
49
50
51
# File 'lib/fog/aws/requests/iam/create_role.rb', line 43

def create_role(role_name, assume_role_policy_document, path = '/')
  request(
    'Action'    => 'CreateRole',
    'RoleName'  => role_name,
    'AssumeRolePolicyDocument'      => assume_role_policy_document,
    'Path'      => path,
    :parser     => Fog::Parsers::AWS::IAM::SingleRole.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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateUser.html



26
27
28
29
30
31
32
33
# File 'lib/fog/aws/requests/iam/create_user.rb', line 26

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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteAccessKey.html



22
23
24
25
26
27
28
# File 'lib/fog/aws/requests/iam/delete_access_key.rb', line 22

def delete_access_key(access_key_id, options = {})
  request({
    'AccessKeyId' => access_key_id,
    'Action'      => 'DeleteAccessKey',
    :parser       => Fog::Parsers::AWS::IAM::Basic.new
  }.merge!(options))
end

#delete_account_alias(account_alias) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/fog/aws/requests/iam/delete_account_alias.rb', line 7

def ()
  request(
    'Action'    => 'DeleteAccountAlias',
    'AccountAlias' => ,
    :parser     => Fog::Parsers::AWS::IAM::Basic.new
  )
end

#delete_account_password_policyObject

Add or update the account password policy

Parameters

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html



18
19
20
21
22
23
# File 'lib/fog/aws/requests/iam/delete_account_password_policy.rb', line 18

def 
  request({
    'Action'          => 'DeleteAccountPasswordPolicy',
    :parser           => Fog::Parsers::AWS::IAM::Basic.new
  })
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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteGroup.html



20
21
22
23
24
25
26
# File 'lib/fog/aws/requests/iam/delete_group.rb', line 20

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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteGroupPolicy.html



21
22
23
24
25
26
27
28
# File 'lib/fog/aws/requests/iam/delete_group_policy.rb', line 21

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_instance_profile(instance_profile_name) ⇒ Object

Delete a instance_profile

Parameters

  • instance_profile_name<~String>: name of the instance_profile to delete

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteInstanceProfile.html



20
21
22
23
24
25
26
# File 'lib/fog/aws/requests/iam/delete_instance_profile.rb', line 20

def delete_instance_profile(instance_profile_name)
  request(
    'Action'    => 'DeleteInstanceProfile',
    'InstanceProfileName'  => instance_profile_name,
    :parser     => Fog::Parsers::AWS::IAM::Basic.new
  )
end

#delete_login_profile(user_name) ⇒ Object

Deletes a user’s login profile

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteLoginProfile.html

Parameters

  • user_name<~String> - Name of user whose login profile you want to delete

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request



19
20
21
22
23
24
25
# File 'lib/fog/aws/requests/iam/delete_login_profile.rb', line 19

def (user_name)
  request({
    'Action'    => 'DeleteLoginProfile',
    'UserName'  => user_name,
    :parser     => Fog::Parsers::AWS::IAM::Basic.new
  })
end

#delete_role(role_name) ⇒ Object

Delete a role

Parameters

  • role_name<~String>: name of the role to delete

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteRole.html



20
21
22
23
24
25
26
# File 'lib/fog/aws/requests/iam/delete_role.rb', line 20

def delete_role(role_name)
  request(
    'Action'    => 'DeleteRole',
    'RoleName'  => role_name,
    :parser     => Fog::Parsers::AWS::IAM::Basic.new
  )
end

#delete_role_policy(role_name, policy_name) ⇒ Object

Remove a policy from a role

Parameters

  • role_name<~String>: name of the role

  • policy_name<~String>: name of policy document

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteRolePolicy.html



21
22
23
24
25
26
27
28
# File 'lib/fog/aws/requests/iam/delete_role_policy.rb', line 21

def delete_role_policy(role_name, policy_name)
  request(
    'Action'          => 'DeleteRolePolicy',
    'PolicyName'      => policy_name,
    'RoleName'        => role_name,
    :parser           => Fog::Parsers::AWS::IAM::Basic.new
  )
end

#delete_server_certificate(server_certificate_name) ⇒ Object

Deletes the specified server certificate.

Parameters

  • server_certificate_name<~String>: The name of the server certificate you want to delete.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteServerCertificate.html



20
21
22
23
24
25
26
# File 'lib/fog/aws/requests/iam/delete_server_certificate.rb', line 20

def delete_server_certificate(server_certificate_name)
  request({
    'Action'                => 'DeleteServerCertificate',
    'ServerCertificateName' => server_certificate_name,
    :parser                 => Fog::Parsers::AWS::IAM::Basic.new
  })
end

#delete_signing_certificate(certificate_id, options = {}) ⇒ Object

Upload signing certificate for user (by default detects user from access credentials)

Parameters

  • options<~Hash>:

    • ‘UserName’<~String> - name of the user to upload certificate for (do not include path)

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_DeleteSigningCertificate.html



21
22
23
24
25
26
27
# File 'lib/fog/aws/requests/iam/delete_signing_certificate.rb', line 21

def delete_signing_certificate(certificate_id, options = {})
  request({
    'Action'        => 'DeleteSigningCertificate',
    'CertificateId' => certificate_id,
    :parser         => Fog::Parsers::AWS::IAM::Basic.new
  }.merge!(options))
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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteUser.html



20
21
22
23
24
25
26
# File 'lib/fog/aws/requests/iam/delete_user.rb', line 20

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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_DeleteUserPolicy.html



21
22
23
24
25
26
27
28
# File 'lib/fog/aws/requests/iam/delete_user_policy.rb', line 21

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_account_password_policyObject

Add or update the account password policy

Parameters

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html



18
19
20
21
22
23
# File 'lib/fog/aws/requests/iam/get_account_password_policy.rb', line 18

def ()
  request({
    'Action'          => 'DeleteAccountPasswordPolicy',
    :parser           => Fog::Parsers::AWS::IAM::Basic.new
  })
end

#get_account_summaryObject

Retrieve account level information about account entity usage and IAM quotas

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘Summary’<~Hash>:

        • ‘AccessKeysPerUserQuota’<~Integer> - Maximum number of access keys that can be created per user

        • ‘AccountMFAEnabled’<~Integer> - 1 if the root account has an MFA device assigned to it, 0 otherwise

        • ‘AssumeRolePolicySizeQuota’<~Integer> - Maximum allowed size for assume role policy documents (in kilobytes)

        • ‘GroupPolicySizeQuota’<~Integer> - Maximum allowed size for Group policy documents (in kilobytes)

        • ‘Groups’<~Integer> - Number of Groups for the AWS account

        • ‘GroupsPerUserQuota’<~Integer> - Maximum number of groups a user can belong to

        • ‘GroupsQuota’<~Integer> - Maximum groups allowed for the AWS account

        • ‘InstanceProfiles’<~Integer> - Number of instance profiles for the AWS account

        • ‘InstanceProfilesQuota’<~Integer> - Maximum instance profiles allowed for the AWS account

        • ‘MFADevices’<~Integer> - Number of MFA devices, either assigned or unassigned

        • ‘MFADevicesInUse’<~Integer> - Number of MFA devices that have been assigned to an IAM user or to the root account

        • ‘Providers’<~Integer> -

        • ‘RolePolicySizeQuota’<~Integer> - Maximum allowed size for role policy documents (in kilobytes)

        • ‘Roles’<~Integer> - Number of roles for the AWS account

        • ‘RolesQuota’<~Integer> - Maximum roles allowed for the AWS account

        • ‘ServerCertificates’<~Integer> - Number of server certificates for the AWS account

        • ‘ServerCertificatesQuota’<~Integer> - Maximum server certificates allowed for the AWS account

        • ‘SigningCertificatesPerUserQuota’<~Integer> - Maximum number of X509 certificates allowed for a user

        • ‘UserPolicySizeQuota’<~Integer> - Maximum allowed size for user policy documents (in kilobytes)

        • ‘Users’<~Integer> - Number of users for the AWS account

        • ‘UsersQuota’<~Integer> - Maximum users allowed for the AWS account

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateAccessKey.html



39
40
41
42
43
44
# File 'lib/fog/aws/requests/iam/get_account_summary.rb', line 39

def 
  request(
    'Action'    => 'GetAccountSummary',
    :parser     => Fog::Parsers::AWS::IAM::GetAccountSummary.new
    )
end

#get_group(group_name, options = {}) ⇒ Object

Get Group

Parameters

  • ‘GroupName’<~String>: Name of the Group

  • options<~Hash>:

    • ‘Marker’<~String>: Use this only when paginating results, and only in a subsequent request after you’ve received a response where the results are truncated. Set it to the value of the Marker element in the response you just received.

    • ‘MaxItems’<~String>: Use this only when paginating results to indicate the maximum number of User names you want in the response. If there are additional User names beyond the maximum you specify, the IsTruncated response element is true.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘Group’<~Hash> - Group

        • ‘Path’<~String>

        • ‘GroupName’<~String>

        • ‘Arn’<~String>

      • ‘Users’<~Hash>? - List of users belonging to the group.

        • ‘User’<~Hash> - User

          • Arn<~String> -

          • UserId<~String> -

          • UserName<~String> -

          • Path<~String> -

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_GetGroup.html



32
33
34
35
36
37
38
# File 'lib/fog/aws/requests/iam/get_group.rb', line 32

def get_group(group_name, options = {})
  request({
    'Action'    => 'GetGroup',
    'GroupName' => group_name,
    :parser     => Fog::Parsers::AWS::IAM::GetGroup.new
  }.merge!(options))
end

#get_group_policy(policy_name, group_name) ⇒ Object

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

docs.amazonwebservices.com/IAM/latest/APIReference/API_GetGroupPolicy.html



23
24
25
26
27
28
29
30
# File 'lib/fog/aws/requests/iam/get_group_policy.rb', line 23

def get_group_policy(policy_name, group_name)
  request({
    'Action'      => 'GetGroupPolicy',
    'PolicyName'  => policy_name,
    'GroupName'    => group_name,
    :parser       => Fog::Parsers::AWS::IAM::GetGroupPolicy.new
  })
end

#get_instance_profile(instance_profile_name) ⇒ Object

Retrieves information about an instance profile

docs.amazonwebservices.com/IAM/latest/APIReference/API_GetInstanceProfile.html

Parameters

  • instance_profile_name<~String> - Name of instance_profile to retrieve the information for

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘InstanceProfile’<~Hash>:

        • Arn<~String> -

        • CreateDate<~Date>

        • InstanceProfileId<~String> -

        • InstanceProfileName<~String> -

        • Path<~String> -

        • Roles<~Array> - role<~Hash>:

          * 'Arn'<~String> -
          * 'AssumeRolePolicyDocument'<~String<
          * 'Path'<~String> -
          * 'RoleId'<~String> -
          * 'RoleName'<~String> -
          
      • ‘RequestId’<~String> - Id of the request



30
31
32
33
34
35
36
# File 'lib/fog/aws/requests/iam/get_instance_profile.rb', line 30

def get_instance_profile(instance_profile_name)
  request({
    'Action'    => 'GetInstanceProfile',
    'InstanceProfileName'  => instance_profile_name,
    :parser     => Fog::Parsers::AWS::IAM::InstanceProfile.new
  })
end

#get_login_profile(user_name) ⇒ Object

Retrieves the login profile for a user

docs.amazonwebservices.com/IAM/latest/APIReference/API_CreateLoginProfile.html

Parameters

  • user_name<~String> - Name of user to retrieve the login profile for

  • password<~String> - The new password for this user

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘LoginProfile’<~Hash>

        * UserName<~String>
        * CreateDate
        
      • ‘RequestId’<~String> - Id of the request



23
24
25
26
27
28
29
# File 'lib/fog/aws/requests/iam/get_login_profile.rb', line 23

def (user_name)
  request({
    'Action'    => 'GetLoginProfile',
    'UserName'  => user_name,
    :parser     => Fog::Parsers::AWS::IAM::LoginProfile.new
  })
end

#get_role(role_name) ⇒ Object

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • Role<~Hash>:

        • ‘Arn’<~String> -

        • ‘AssumeRolePolicyDocument’<~String<

        • ‘Path’<~String> -

        • ‘RoleId’<~String> -

        • ‘RoleName’<~String> -

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_GetRole.html



26
27
28
29
30
31
32
# File 'lib/fog/aws/requests/iam/get_role.rb', line 26

def get_role(role_name)
  request(
    'Action'    => 'GetRole',
    'RoleName'  => role_name,
    :parser     => Fog::Parsers::AWS::IAM::SingleRole.new
  )
end

#get_role_policy(role_name, policy_name) ⇒ Object

Get Role Policy

Parameters

  • ‘PolicyName’<~String>: Name of the policy to get

  • ‘RoleName’<~String>: Name of the Role who the policy is associated with.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      * PolicyDocument<~String> The policy document.
      * PolicyName<~String> The name of the policy.
      * RoleName<~String> The Role the policy is associated with.
      

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_GetRolePolicy.html



23
24
25
26
27
28
29
30
# File 'lib/fog/aws/requests/iam/get_role_policy.rb', line 23

def get_role_policy(role_name, policy_name)
  request({
    'Action'      => 'GetRolePolicy',
    'PolicyName'  => policy_name,
    'RoleName'    => role_name,
    :parser       => Fog::Parsers::AWS::IAM::GetRolePolicy.new
  })
end

#get_server_certificate(name) ⇒ Object

Gets the specified server certificate.

Parameters

  • server_certificate_name<~String>: The name of the server certificate you want to get.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_GetServerCertificate.html



20
21
22
23
24
25
26
# File 'lib/fog/aws/requests/iam/get_server_certificate.rb', line 20

def get_server_certificate(name)
  request({
    'Action'                => 'GetServerCertificate',
    'ServerCertificateName' => name,
    :parser                 => Fog::Parsers::AWS::IAM::UploadServerCertificate.new
  })
end

#get_user(username, options = {}) ⇒ Object

Get User

Parameters

  • username<String>

  • 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> -

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_Getuser.html



26
27
28
29
30
31
32
# File 'lib/fog/aws/requests/iam/get_user.rb', line 26

def get_user(username, options = {})
  request({
    'Action'    => 'GetUser',
    'UserName'  => username,
    :parser     => Fog::Parsers::AWS::IAM::GetUser.new
  }.merge!(options))
end

#get_user_policy(policy_name, user_name) ⇒ Object

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

docs.amazonwebservices.com/IAM/latest/APIReference/API_GetUserPolicy.html



23
24
25
26
27
28
29
30
# File 'lib/fog/aws/requests/iam/get_user_policy.rb', line 23

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

#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> -

      • ‘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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListAccessKeys.html



29
30
31
32
33
34
# File 'lib/fog/aws/requests/iam/list_access_keys.rb', line 29

def list_access_keys(options = {})
  request({
    'Action'  => 'ListAccessKeys',
    :parser   => Fog::Parsers::AWS::IAM::ListAccessKeys.new
  }.merge!(options))
end

#list_account_aliases(options = {}) ⇒ Object



7
8
9
10
11
12
# File 'lib/fog/aws/requests/iam/list_account_aliases.rb', line 7

def (options = {})
  request({
    'Action'  => 'ListAccountAliases',
    :parser   => Fog::Parsers::AWS::IAM::ListAccountAliases.new
  }.merge!(options))
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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListGroupPolicies.html



27
28
29
30
31
32
33
# File 'lib/fog/aws/requests/iam/list_group_policies.rb', line 27

def list_group_policies(group_name, options = {})
  request({
    'Action'    => 'ListGroupPolicies',
    'GroupName' => group_name,
    :parser     => Fog::Parsers::AWS::IAM::ListPolicies.new
  }.merge!(options))
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> -

      • ‘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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListGroups.html



31
32
33
34
35
36
# File 'lib/fog/aws/requests/iam/list_groups.rb', line 31

def list_groups(options = {})
  request({
    'Action'  => 'ListGroups',
    :parser   => Fog::Parsers::AWS::IAM::ListGroups.new
  }.merge!(options))
end

#list_groups_for_user(user_name, options = {}) ⇒ Object

List groups_for_user

Parameters

  • user_name<~String> - the username you want to look up group membership for

  • options<~Hash>:

    • ‘Marker’<~String> - used to paginate subsequent requests

    • ‘MaxItems’<~Integer> - limit results to this number per page

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘GroupsForUser’<~Array> - Groups for a user

        • group_for_user<~Hash>:

          • ‘Arn’ -

          • ‘GroupId’ -

          • ‘GroupName’ -

          • ‘Path’ -

      • ‘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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListGroupsForUser.html



31
32
33
34
35
36
37
# File 'lib/fog/aws/requests/iam/list_groups_for_user.rb', line 31

def list_groups_for_user(user_name, options = {})
  request({
    'Action'    => 'ListGroupsForUser',
    'UserName'  => user_name,
    :parser     => Fog::Parsers::AWS::IAM::ListGroupsForUser.new
  }.merge!(options))
end

#list_instance_profiles(options = {}) ⇒ Object

Lists instance profiles

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>:

      • ‘InstanceProfiles’<~Array>:

        • instance_profile <~Hash>:

          • Arn<~String> -

          • CreateDate<~Date>

          • InstanceProfileId<~String> -

          • InstanceProfileName<~String> -

          • Path<~String> -

          • Roles<~Array> - role<~Hash>:

            * 'Arn'<~String> -
            * 'AssumeRolePolicyDocument'<~String<
            * 'Path'<~String> -
            *  'RoleId'<~String> -
            * 'RoleName'<~String> -
            
      • ‘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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListInstanceProfiles.html



39
40
41
42
43
44
# File 'lib/fog/aws/requests/iam/list_instance_profiles.rb', line 39

def list_instance_profiles(options={})
  request({
    'Action'    => 'ListInstanceProfiles',
    :parser     => Fog::Parsers::AWS::IAM::ListInstanceProfiles.new
  }.merge!(options))
end

#list_instance_profiles_for_role(role_name, options = {}) ⇒ Object

Lists the instance profiles that have the specified associated role

Parameters

  • options<~Hash>:

    • ‘Marker’<~String>: used to paginate subsequent requests

    • ‘MaxItems’<~Integer>: limit results to this number per page

  • ‘RoleName’<~String>: The name of the role to list instance profiles for.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘InstanceProfiles’<~Array>:

        • instance_profile <~Hash>:

          • Arn<~String> -

          • CreateDate<~Date>

          • InstanceProfileId<~String> -

          • InstanceProfileName<~String> -

          • Path<~String> -

          • Roles<~Array> - role<~Hash>:

            * 'Arn'<~String> -
            * 'AssumeRolePolicyDocument'<~String<
            * 'Path'<~String> -
            *  'RoleId'<~String> -
            * 'RoleName'<~String> -
            
      • ‘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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListInstanceProfilesForRole.html



39
40
41
42
43
44
45
# File 'lib/fog/aws/requests/iam/list_instance_profiles_for_role.rb', line 39

def list_instance_profiles_for_role(role_name,options={})
  request({
    'Action'    => 'ListInstanceProfilesForRole',
    'RoleName'  => role_name,
    :parser     => Fog::Parsers::AWS::IAM::ListInstanceProfiles.new
  }.merge!(options))
end

#list_mfa_devices(options = {}) ⇒ Object

List MFA Devices

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 mfa devices for, defaults to current user

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘MFADevices’<~Array> - Matching MFA devices

        • mfa_device<~Hash>:

          • EnableDate - The date when the MFA device was enabled for the user

          • SerialNumber<~String> - The serial number that uniquely identifies the MFA device

          • UserName<~String> - The user with whom the MFA device is associated

      • ‘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

See Also

docs.aws.amazon.com/IAM/latest/APIReference/API_ListMFADevices.html



30
31
32
33
34
35
# File 'lib/fog/aws/requests/iam/list_mfa_devices.rb', line 30

def list_mfa_devices(options = {})
  request({
    'Action'  => 'ListMFADevices',
    :parser   => Fog::Parsers::AWS::IAM::ListMFADevices.new
  }.merge!(options))
end

#list_role_policies(role_name, options = {}) ⇒ Object

Lists the names of policies associated with a role

Parameters

  • role_name<~String>: the role to list policies for

  • options<~Hash>:

    • ‘Marker’<~String>: used to paginate subsequent requests

    • ‘MaxItems’<~Integer>: limit results to this number per page

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘PolicyNames’<~Array>:

        • policy_name <~String>

      • ‘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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListRoleProfiles.html



27
28
29
30
31
32
33
# File 'lib/fog/aws/requests/iam/list_role_policies.rb', line 27

def list_role_policies(role_name,options={})
  request({
    'Action'    => 'ListRolePolicies',
    'RoleName'  => role_name,
    :parser     => Fog::Parsers::AWS::IAM::ListPolicies.new
  }.merge!(options))
end

#list_roles(options = {}) ⇒ Object

Lists roles

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>:

      • Roles<~Array> - role<~Hash>:

        * 'Arn'<~String> -
        * 'AssumeRolePolicyDocument'<~String<
        * 'Path'<~String> -
        * 'RoleId'<~String> -
        * 'RoleName'<~String> -
        
      • ‘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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListRoles.html



32
33
34
35
36
37
# File 'lib/fog/aws/requests/iam/list_roles.rb', line 32

def list_roles(options={})
  request({
    'Action'    => 'ListRoles',
    :parser     => Fog::Parsers::AWS::IAM::ListRoles.new
  }.merge!(options))
end

#list_server_certificates(options = {}) ⇒ Object

List server certificates

Parameters

  • options<~Hash>:

    • ‘Marker’<~String> - The marker from the previous result (for pagination)

    • ‘MaxItems’<~String> - The maximum number of server certificates you want in the response

    • ‘PathPrefix’<~String> - The path prefix for filtering the results

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘Certificates’<~Array> - Matching server certificates

        • server_certificate<~Hash>:

          • Arn<~String> -

          • Path<~String> -

          • ServerCertificateId<~String> -

          • ServerCertificateName<~String> -

          • UploadDate<~Time> -

        • ‘IsTruncated’<~Boolean> - Whether or not the results were truncated

        • ‘Marker’<~String> - appears when IsTruncated is true as the next marker to use

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_ListServerCertificates.html



31
32
33
34
35
36
# File 'lib/fog/aws/requests/iam/list_server_certificates.rb', line 31

def list_server_certificates(options = {})
  request({
    'Action'  => 'ListServerCertificates',
    :parser   => Fog::Parsers::AWS::IAM::ListServerCertificates.new
  }.merge!(options))
end

#list_signing_certificates(options = {}) ⇒ Object

List signing certificates for user (by default detects user from access credentials)

Parameters

  • options<~Hash>:

    • ‘UserName’<~String> - name of the user to list certificates for (do not include path)

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘SigningCertificates’<~Array> - Matching signing certificates

        • signing_certificate<~Hash>:

          • CertificateId<~String> -

          • Status<~String> -

        • ‘IsTruncated’<~Boolean> - Whether or not the results were truncated

        • ‘Marker’<~String> - appears when IsTruncated is true as the next marker to use

        • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_ListSigningCertificates.html



27
28
29
30
31
32
# File 'lib/fog/aws/requests/iam/list_signing_certificates.rb', line 27

def list_signing_certificates(options = {})
  request({
    'Action'  => 'ListSigningCertificates',
    :parser   => Fog::Parsers::AWS::IAM::ListSigningCertificates.new
  }.merge!(options))
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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListUserPolicies.html



27
28
29
30
31
32
33
# File 'lib/fog/aws/requests/iam/list_user_policies.rb', line 27

def list_user_policies(user_name, options = {})
  request({
    'Action'    => 'ListUserPolicies',
    'UserName'  => user_name,
    :parser     => Fog::Parsers::AWS::IAM::ListPolicies.new
  }.merge!(options))
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> -

      • ‘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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_ListUsers.html



31
32
33
34
35
36
# File 'lib/fog/aws/requests/iam/list_users.rb', line 31

def list_users(options = {})
  request({
    'Action'  => 'ListUsers',
    :parser   => Fog::Parsers::AWS::IAM::ListUsers.new
  }.merge!(options))
end

#put_group_policy(group_name, policy_name, policy_document) ⇒ Object

Add or update a policy for a group

Parameters

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_PutGroupPolicy.html



22
23
24
25
26
27
28
29
30
# File 'lib/fog/aws/requests/iam/put_group_policy.rb', line 22

def put_group_policy(group_name, policy_name, policy_document)
  request(
    'Action'          => 'PutGroupPolicy',
    'GroupName'       => group_name,
    'PolicyName'      => policy_name,
    'PolicyDocument'  => Fog::JSON.encode(policy_document),
    :parser           => Fog::Parsers::AWS::IAM::Basic.new
  )
end

#put_role_policy(role_name, policy_name, policy_document) ⇒ Object

Add or update a policy for a role

Parameters

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_PutRolePolicy.html



22
23
24
25
26
27
28
29
30
# File 'lib/fog/aws/requests/iam/put_role_policy.rb', line 22

def put_role_policy(role_name, policy_name, policy_document)
  request(
    'Action'          => 'PutRolePolicy',
    'RoleName'       => role_name,
    'PolicyName'      => policy_name,
    'PolicyDocument'  => Fog::JSON.encode(policy_document),
    :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

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_PutUserPolicy.html



22
23
24
25
26
27
28
29
30
# File 'lib/fog/aws/requests/iam/put_user_policy.rb', line 22

def put_user_policy(user_name, policy_name, policy_document)
  request(
    'Action'          => 'PutUserPolicy',
    'PolicyName'      => policy_name,
    'PolicyDocument'  => Fog::JSON.encode(policy_document),
    'UserName'        => user_name,
    :parser           => Fog::Parsers::AWS::IAM::Basic.new
  )
end

#reloadObject



192
193
194
# File 'lib/fog/aws/iam.rb', line 192

def reload
  @connection.reset
end

#remove_role_from_instance_profile(role_name, instance_profile_name) ⇒ Object

removes a role from an instance profile

Make sure you do not have any Amazon EC2 instances running with the role you are about to remove from the instance profile.

Parameters

  • instance_profile_name<~String>: Name of the instance profile to update.

  • role_name<~String>:Name of the role to remove.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_RemoveRoleFromInstanceProfile.html



22
23
24
25
26
27
28
29
# File 'lib/fog/aws/requests/iam/remove_role_from_instance_profile.rb', line 22

def remove_role_from_instance_profile(role_name, instance_profile_name)
  request(
    'Action'    => 'RemoveRoleFromInstanceProfile',
    'InstanceProfileName' => instance_profile_name,
    'RoleName'  => role_name,
    :parser     => Fog::Parsers::AWS::IAM::Basic.new
  )
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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_RemoveUserFromGroup.html



21
22
23
24
25
26
27
28
# File 'lib/fog/aws/requests/iam/remove_user_from_group.rb', line 21

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

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/API_UpdateAccessKey.html



23
24
25
26
27
28
29
30
# File 'lib/fog/aws/requests/iam/update_access_key.rb', line 23

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

#update_account_password_policy(minimum_password_length, max_password_age, password_reuse_prevention, require_symbols, require_numbers, require_uppercase_characters, require_lowercase_characters, allow_users_to_change_password, hard_expiry, expire_passwords) ⇒ Object

Add or update the account password policy

Parameters

*  MinimumPasswordLength<~integer> Minimum length to require for IAM user passwords.
*  MaxPasswordAge<~integer> The number of days that an IAM user password is valid.
*  PasswordReusePrevention<~integer> Specifies the number of previous passwords that IAM users are prevented from reusing.        
*  RequireSymbols<~boolean> Specifies whether to require symbols for IAM user passwords.
*  RequireNumbers<~boolean> Specifies whether to require numbers for IAM user passwords.
*  RequireUppercaseCharacters<~boolean> Specifies whether to require uppercase characters for IAM user passwords.
*  RequireLowercaseCharacters<~boolean> Specifies whether to require lowercase characters for IAM user passwords.
*  AllowUsersToChangePassword<~boolean> Specifies whether IAM users are allowed to change their own password.
*  HardExpiry<~boolean> Specifies whether IAM users are prevented from setting a new password after their password has expired.
*  ExpirePasswords<~boolean> Specifies whether IAM users are required to change their password after a specified number of days.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateAccountPasswordPolicy.html



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/fog/aws/requests/iam/update_account_password_policy.rb', line 28

def (minimum_password_length, max_password_age, password_reuse_prevention,require_symbols,require_numbers,require_uppercase_characters, require_lowercase_characters,allow_users_to_change_password, hard_expiry, expire_passwords)
  request({
    'Action'                      => 'UpdateAccountPasswordPolicy',
    'MinimumPasswordLength'       => minimum_password_length,
    'MaxPasswordAge'              => max_password_age,
    'PasswordReusePrevention'     => password_reuse_prevention,
    'RequireSymbols'              => require_symbols,
    'RequireNumbers'              => require_numbers,
    'RequireUppercaseCharacters'  => require_uppercase_characters,
    'RequireLowercaseCharacters'  => require_lowercase_characters,
    'AllowUsersToChangePassword'  => allow_users_to_change_password,
    'HardExpiry'                  => hard_expiry,
    'ExpirePasswords'             => expire_passwords,
    :parser                       => Fog::Parsers::AWS::IAM::Basic.new
  })
end

#update_group(group_name, options = {}) ⇒ Object

Update a Group

Parameters

  • group_name<~String> - Required. Name of the Group to update. If you’re changing the name of the Group, this is the original Group name.

  • options<~Hash>:

    • new_path<~String> - New path for the Group. Include this parameter only if you’re changing the Group’s path.

    • new_group_name<~String> - New name for the Group. Include this parameter only if you’re changing the Group’s name.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

      • ‘Group’<~Hash> - Changed Group info

        • ‘Arn’<~String> -

        • ‘Path’<~String> -

        • ‘GroupId’<~String> -

        • ‘GroupName’<~String> -

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UpdateGroup.html



27
28
29
30
31
32
33
# File 'lib/fog/aws/requests/iam/update_group.rb', line 27

def update_group(group_name, options = {})
  request({
    'Action'      => 'UpdateGroup',
    'GroupName'    => group_name,
    :parser       => Fog::Parsers::AWS::IAM::UpdateGroup.new
  }.merge!(options))
end

#update_login_profile(user_name, password) ⇒ Object

Updates a login profile for a user

docs.amazonwebservices.com/IAM/latest/APIReference/API_UpdateLoginProfile.html

Parameters

  • user_name<~String> - Name of user to change the login profile for

  • password<~String> - The new password for this user

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request



20
21
22
23
24
25
26
27
# File 'lib/fog/aws/requests/iam/update_login_profile.rb', line 20

def (user_name, password)
  request({
    'Action'    => 'UpdateLoginProfile',
    'UserName'  => user_name,
    'Password'  => password,
    :parser     => Fog::Parsers::AWS::IAM::Basic.new
  })
end

#update_server_certificate(server_certificate_name, options = {}) ⇒ Object

Updates the name and/or the path of the specified server certificate.

Parameters

  • server_certificate_name<~String> - The name of the server certificate that you want to update.

  • options<~Hash>:

    • ‘NewPath’<~String> - The new path for the server certificate. Include this only if you are updating the server certificate’s path.

    • ‘NewServerCertificateName’<~String> - The new name for the server certificate. Include this only if you are updating the server certificate’s name.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UpdateServerCertificate.html



26
27
28
29
30
31
32
# File 'lib/fog/aws/requests/iam/update_server_certificate.rb', line 26

def update_server_certificate(server_certificate_name, options = {})
  request({
    'Action'                => 'UpdateServerCertificate',
    'ServerCertificateName' => server_certificate_name,
    :parser                 => Fog::Parsers::AWS::IAM::Basic.new
  }.merge!(options))
end

#update_signing_certificate(certificate_id, status, options = {}) ⇒ Object

Update a Signing Certificate

Parameters

  • certificate_id<~String> - Required. ID of the Certificate to update.

  • status<~String> - Required. Active/Inactive

  • options<~Hash>:

    • user_name<~String> - Name of the user the signing certificate belongs to.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UpdateSigningCertificate.html



20
21
22
23
24
25
26
27
# File 'lib/fog/aws/requests/iam/update_signing_certificate.rb', line 20

def update_signing_certificate(certificate_id, status, options = {})
  request({
    'Action'        => 'UpdateSigningCertificate',
    'CertificateId' => certificate_id,
    'Status'        => status,
    :parser         => Fog::Parsers::AWS::IAM::Basic.new
  }.merge!(options))
end

#update_user(user_name, options = {}) ⇒ Object

Update a user

Parameters

  • user_name<~String> - Required. Name of the User to update. If you’re changing the name of the User, this is the original User name.

  • options<~Hash>:

    • new_path<~String> - New path for the User. Include this parameter only if you’re changing the User’s path.

    • new_user_name<~String> - New name for the User. Include this parameter only if you’re changing the User’s name.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘RequestId’<~String> - Id of the request

      • ‘User’<~Hash> - Changed user info

        • ‘Arn’<~String> -

        • ‘Path’<~String> -

        • ‘UserId’<~String> -

        • ‘UserName’<~String> -

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UpdateUser.html



27
28
29
30
31
32
33
# File 'lib/fog/aws/requests/iam/update_user.rb', line 27

def update_user(user_name, options = {})
  request({
    'Action'      => 'UpdateUser',
    'UserName'    => user_name,
    :parser       => Fog::Parsers::AWS::IAM::UpdateUser.new
  }.merge!(options))
end

#upload_server_certificate(certificate, private_key, name, options = {}) ⇒ Object

Uploads a server certificate entity for the AWS Account. Includes a public key certificate, a private key, and an optional certificate chain, which should all be PEM-encoded.

Parameters

  • certificate<~Hash>: The contents of the public key certificate in PEM-encoded format.

  • private_key<~Hash>: The contents of the private key in PEM-encoded format.

  • name<~Hash>: The name for the server certificate. Do not include the path in this value.

  • options<~Hash>:

    • ‘CertificateChain’<~String> - The contents of the certificate chain. Typically a concatenation of the PEM-encoded public key certificates of the chain.

    • ‘Path’<~String> - The path for the server certificate.

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘Certificate’<~Hash>:

        • ‘Arn’<~String> -

        • ‘Path’<~String> -

        • ‘ServerCertificateId’<~String> -

        • ‘ServerCertificateName’<~String> -

        • ‘UploadDate’<~Time>

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UploadServerCertificate.html



32
33
34
35
36
37
38
39
40
# File 'lib/fog/aws/requests/iam/upload_server_certificate.rb', line 32

def upload_server_certificate(certificate, private_key, name, options = {})
  request({
    'Action'                => 'UploadServerCertificate',
    'CertificateBody'       => certificate,
    'PrivateKey'            => private_key,
    'ServerCertificateName' => name,
    :parser                 => Fog::Parsers::AWS::IAM::UploadServerCertificate.new
  }.merge!(options))
end

#upload_signing_certificate(certificate, options = {}) ⇒ Object

Upload signing certificate for user (by default detects user from access credentials)

Parameters

  • options<~Hash>:

    • ‘UserName’<~String> - name of the user to upload certificate for (do not include path)

Returns

  • response<~Excon::Response>:

    • body<~Hash>:

      • ‘Certificate’<~Hash>:

        • ‘CertificateId’<~String> -

        • ‘UserName’<~String> -

        • ‘CertificateBody’<~String> -

        • ‘Status’<~String> -

      • ‘RequestId’<~String> - Id of the request

See Also

docs.amazonwebservices.com/IAM/latest/APIReference/index.html?API_UploadSigningCertificate.html



26
27
28
29
30
31
32
# File 'lib/fog/aws/requests/iam/upload_signing_certificate.rb', line 26

def upload_signing_certificate(certificate, options = {})
  request({
    'Action'          => 'UploadSigningCertificate',
    'CertificateBody' => certificate,
    :parser           => Fog::Parsers::AWS::IAM::UploadSigningCertificate.new
  }.merge!(options))
end