# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You # may not use this file except in compliance with the License. A copy of # the License is located at # # http://aws.amazon.com/apache2.0/ # # or in the "license" file accompanying this file. This file is # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF # ANY KIND, either express or implied. See the License for the specific # language governing permissions and limitations under the License. module AWS class IAM # Client class for AWS Identity and Access Management (IAM). class Client < Core::QueryClient define_client_methods('2010-05-08') # @private CACHEABLE_REQUESTS = Set[ :get_group, :get_group_policy, :get_instance_profile, :get_role_policy, :list_groups, :list_group_policies, :list_groups_for_user, :list_instance_profiles, :list_instance_profiles_for_role, :list_role_policies, :list_roles, :list_server_certificates, :list_virtual_mfa_devices, ] ## client methods ## # @!method add_role_to_instance_profile(options = {}) # Calls the AddRoleToInstanceProfile API operation. # @param [Hash] options # * +:instance_profile_name+ - *required* - (String) Name of the # instance profile to update. # * +:role_name+ - *required* - (String) Name of the role to add. # @return [Core::Response] # @!method add_user_to_group(options = {}) # Calls the AddUserToGroup API operation. # @param [Hash] options # * +:group_name+ - *required* - (String) Name of the group to update. # * +:user_name+ - *required* - (String) Name of the user to add. # @return [Core::Response] # @!method change_password(options = {}) # Calls the ChangePassword API operation. # @param [Hash] options # * +:old_password+ - *required* - (String) # * +:new_password+ - *required* - (String) # @return [Core::Response] # @!method create_access_key(options = {}) # Calls the CreateAccessKey API operation. # @param [Hash] options # * +:user_name+ - (String) The user name that the new key will belong # to. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:access_key+ - (Hash) # * +:user_name+ - (String) # * +:access_key_id+ - (String) # * +:status+ - (String) # * +:secret_access_key+ - (String) # * +:create_date+ - (Time) # @!method create_account_alias(options = {}) # Calls the CreateAccountAlias API operation. # @param [Hash] options # * +:account_alias+ - *required* - (String) Name of the account alias # to create. # @return [Core::Response] # @!method create_group(options = {}) # Calls the CreateGroup API operation. # @param [Hash] options # * +:path+ - (String) The path to the group. For more information # about paths, see Identifiers for IAM Entities in Using AWS Identity # and Access Management. This parameter is optional. If it is not # included, it defaults to a slash (/). # * +:group_name+ - *required* - (String) Name of the group to create. # Do not include the path in this value. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:group+ - (Hash) # * +:path+ - (String) # * +:group_name+ - (String) # * +:group_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # @!method create_instance_profile(options = {}) # Calls the CreateInstanceProfile API operation. # @param [Hash] options # * +:instance_profile_name+ - *required* - (String) Name of the # instance profile to create. # * +:path+ - (String) The path to the instance profile. For more # information about paths, see Identifiers for IAM Entities in Using # AWS Identity and Access Management. This parameter is optional. If # it is not included, it defaults to a slash (/). # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:instance_profile+ - (Hash) # * +:path+ - (String) # * +:instance_profile_name+ - (String) # * +:instance_profile_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:roles+ - (Array) # * +:path+ - (String) # * +:role_name+ - (String) # * +:role_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:assume_role_policy_document+ - (String) # @!method create_login_profile(options = {}) # Calls the CreateLoginProfile API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user to create a # password for. # * +:password+ - *required* - (String) The new password for the user # name. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:login_profile+ - (Hash) # * +:user_name+ - (String) # * +:create_date+ - (Time) # @!method create_role(options = {}) # Calls the CreateRole API operation. # @param [Hash] options # * +:path+ - (String) The path to the role. For more information about # paths, see Identifiers for IAM Entities in Using AWS Identity and # Access Management. This parameter is optional. If it is not # included, it defaults to a slash (/). # * +:role_name+ - *required* - (String) Name of the role to create. # * +:assume_role_policy_document+ - *required* - (String) The policy # that grants an entity permission to assume the role. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:role+ - (Hash) # * +:path+ - (String) # * +:role_name+ - (String) # * +:role_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:assume_role_policy_document+ - (String) # @!method create_user(options = {}) # Calls the CreateUser API operation. # @param [Hash] options # * +:path+ - (String) The path for the user name. For more information # about paths, see Identifiers for IAM Entities in Using AWS Identity # and Access Management. This parameter is optional. If it is not # included, it defaults to a slash (/). # * +:user_name+ - *required* - (String) Name of the user to create. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:user+ - (Hash) # * +:path+ - (String) # * +:user_name+ - (String) # * +:user_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # @!method create_virtual_mfa_device(options = {}) # Calls the CreateVirtualMFADevice API operation. # @param [Hash] options # * +:path+ - (String) The path for the virtual MFA device. For more # information about paths, see Identifiers for IAM Entities in Using # AWS Identity and Access Management. This parameter is optional. If # it is not included, it defaults to a slash (/). # * +:virtual_mfa_device_name+ - *required* - (String) The name of the # virtual MFA device. Use with path to uniquely identify a virtual # MFA device. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:virtual_mfa_device+ - (Hash) # * +:serial_number+ - (String) # * +:base_32_string_seed+ - (String) # * +:qr_code_png+ - (String) # * +:user+ - (Hash) # * +:path+ - (String) # * +:user_name+ - (String) # * +:user_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:enable_date+ - (Time) # @!method deactivate_mfa_device(options = {}) # Calls the DeactivateMFADevice API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user whose MFA # device you want to deactivate. # * +:serial_number+ - *required* - (String) The serial number that # uniquely identifies the MFA device. For virtual MFA devices, the # serial number is the device ARN. # @return [Core::Response] # @!method delete_access_key(options = {}) # Calls the DeleteAccessKey API operation. # @param [Hash] options # * +:user_name+ - (String) Name of the user whose key you want to # delete. # * +:access_key_id+ - *required* - (String) The Access Key ID for the # Access Key ID and Secret Access Key you want to delete. # @return [Core::Response] # @!method delete_account_alias(options = {}) # Calls the DeleteAccountAlias API operation. # @param [Hash] options # * +:account_alias+ - *required* - (String) Name of the account alias # to delete. # @return [Core::Response] # @!method delete_account_password_policy(options = {}) # Calls the DeleteAccountPasswordPolicy API operation. # @param [Hash] options # @return [Core::Response] # @!method delete_group(options = {}) # Calls the DeleteGroup API operation. # @param [Hash] options # * +:group_name+ - *required* - (String) Name of the group to delete. # @return [Core::Response] # @!method delete_group_policy(options = {}) # Calls the DeleteGroupPolicy API operation. # @param [Hash] options # * +:group_name+ - *required* - (String) Name of the group the policy # is associated with. # * +:policy_name+ - *required* - (String) Name of the policy document # to delete. # @return [Core::Response] # @!method delete_instance_profile(options = {}) # Calls the DeleteInstanceProfile API operation. # @param [Hash] options # * +:instance_profile_name+ - *required* - (String) Name of the # instance profile to delete. # @return [Core::Response] # @!method delete_login_profile(options = {}) # Calls the DeleteLoginProfile API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user whose # password you want to delete. # @return [Core::Response] # @!method delete_role(options = {}) # Calls the DeleteRole API operation. # @param [Hash] options # * +:role_name+ - *required* - (String) Name of the role to delete. # @return [Core::Response] # @!method delete_role_policy(options = {}) # Calls the DeleteRolePolicy API operation. # @param [Hash] options # * +:role_name+ - *required* - (String) Name of the role the # associated with the policy. # * +:policy_name+ - *required* - (String) Name of the policy document # to delete. # @return [Core::Response] # @!method delete_server_certificate(options = {}) # Calls the DeleteServerCertificate API operation. # @param [Hash] options # * +:server_certificate_name+ - *required* - (String) The name of the # server certificate you want to delete. # @return [Core::Response] # @!method delete_signing_certificate(options = {}) # Calls the DeleteSigningCertificate API operation. # @param [Hash] options # * +:user_name+ - (String) Name of the user the signing certificate # belongs to. # * +:certificate_id+ - *required* - (String) ID of the signing # certificate to delete. # @return [Core::Response] # @!method delete_user(options = {}) # Calls the DeleteUser API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user to delete. # @return [Core::Response] # @!method delete_user_policy(options = {}) # Calls the DeleteUserPolicy API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user the policy is # associated with. # * +:policy_name+ - *required* - (String) Name of the policy document # to delete. # @return [Core::Response] # @!method delete_virtual_mfa_device(options = {}) # Calls the DeleteVirtualMFADevice API operation. # @param [Hash] options # * +:serial_number+ - *required* - (String) The serial number that # uniquely identifies the MFA device. For virtual MFA devices, the # serial number is the same as the ARN. # @return [Core::Response] # @!method enable_mfa_device(options = {}) # Calls the EnableMFADevice API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user for whom you # want to enable the MFA device. # * +:serial_number+ - *required* - (String) The serial number that # uniquely identifies the MFA device. For virtual MFA devices, the # serial number is the device ARN. # * +:authentication_code_1+ - *required* - (String) An authentication # code emitted by the device. # * +:authentication_code_2+ - *required* - (String) A subsequent # authentication code emitted by the device. # @return [Core::Response] # @!method get_account_password_policy(options = {}) # Calls the GetAccountPasswordPolicy API operation. # @param [Hash] options # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:password_policy+ - (Hash) # * +:minimum_password_length+ - (Integer) # * +:require_symbols+ - (Boolean) # * +:require_numbers+ - (Boolean) # * +:require_uppercase_characters+ - (Boolean) # * +:require_lowercase_characters+ - (Boolean) # * +:allow_users_to_change_password+ - (Boolean) # @!method get_account_summary(options = {}) # Calls the GetAccountSummary API operation. # @param [Hash] options # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:summary_map+ - (Hash) # @!method get_group(options = {}) # Calls the GetGroup API operation. # @param [Hash] options # * +:group_name+ - *required* - (String) Name of the group. # * +: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. # * +:max_items+ - (Integer) 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+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:group+ - (Hash) # * +:path+ - (String) # * +:group_name+ - (String) # * +:group_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:users+ - (Array) # * +:path+ - (String) # * +:user_name+ - (String) # * +:user_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method get_group_policy(options = {}) # Calls the GetGroupPolicy API operation. # @param [Hash] options # * +:group_name+ - *required* - (String) Name of the group the policy # is associated with. # * +:policy_name+ - *required* - (String) Name of the policy document # to get. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:group_name+ - (String) # * +:policy_name+ - (String) # * +:policy_document+ - (String) # @!method get_instance_profile(options = {}) # Calls the GetInstanceProfile API operation. # @param [Hash] options # * +:instance_profile_name+ - *required* - (String) Name of the # instance profile to get information about. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:instance_profile+ - (Hash) # * +:path+ - (String) # * +:instance_profile_name+ - (String) # * +:instance_profile_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:roles+ - (Array) # * +:path+ - (String) # * +:role_name+ - (String) # * +:role_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:assume_role_policy_document+ - (String) # @!method get_login_profile(options = {}) # Calls the GetLoginProfile API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user whose login # profile you want to retrieve. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:login_profile+ - (Hash) # * +:user_name+ - (String) # * +:create_date+ - (Time) # @!method get_role(options = {}) # Calls the GetRole API operation. # @param [Hash] options # * +:role_name+ - *required* - (String) Name of the role to get # information about. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:role+ - (Hash) # * +:path+ - (String) # * +:role_name+ - (String) # * +:role_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:assume_role_policy_document+ - (String) # @!method get_role_policy(options = {}) # Calls the GetRolePolicy API operation. # @param [Hash] options # * +:role_name+ - *required* - (String) Name of the role associated # with the policy. # * +:policy_name+ - *required* - (String) Name of the policy document # to get. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:role_name+ - (String) # * +:policy_name+ - (String) # * +:policy_document+ - (String) # @!method get_server_certificate(options = {}) # Calls the GetServerCertificate API operation. # @param [Hash] options # * +:server_certificate_name+ - *required* - (String) The name of the # server certificate you want to retrieve information about. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:server_certificate+ - (Hash) # * +:server_certificate_metadata+ - (Hash) # * +:path+ - (String) # * +:server_certificate_name+ - (String) # * +:server_certificate_id+ - (String) # * +:arn+ - (String) # * +:upload_date+ - (Time) # * +:certificate_body+ - (String) # * +:certificate_chain+ - (String) # @!method get_user(options = {}) # Calls the GetUser API operation. # @param [Hash] options # * +:user_name+ - (String) Name of the user to get information about. # This parameter is optional. If it is not included, it defaults to # the user making the request. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:user+ - (Hash) # * +:path+ - (String) # * +:user_name+ - (String) # * +:user_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # @!method get_user_policy(options = {}) # Calls the GetUserPolicy API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user who the # policy is associated with. # * +:policy_name+ - *required* - (String) Name of the policy document # to get. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:user_name+ - (String) # * +:policy_name+ - (String) # * +:policy_document+ - (String) # @!method list_access_keys(options = {}) # Calls the ListAccessKeys API operation. # @param [Hash] options # * +:user_name+ - (String) Name of the user. # * +:marker+ - (String) Use this parameter 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. # * +:max_items+ - (Integer) Use this parameter only when paginating # results to indicate the maximum number of keys you want in the # response. If there are additional keys beyond the maximum you # specify, the IsTruncated response element is +true+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:access_key_metadata+ - (Array) # * +:user_name+ - (String) # * +:access_key_id+ - (String) # * +:status+ - (String) # * +:create_date+ - (Time) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_account_aliases(options = {}) # Calls the ListAccountAliases API operation. # @param [Hash] options # * +: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. # * +:max_items+ - (Integer) Use this only when paginating results to # indicate the maximum number of account aliases you want in the # response. If there are additional account aliases beyond the # maximum you specify, the IsTruncated response element is +true+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:account_aliases+ - (Array) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_group_policies(options = {}) # Calls the ListGroupPolicies API operation. # @param [Hash] options # * +:group_name+ - *required* - (String) The name of the group to list # policies for. # * +: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. # * +:max_items+ - (Integer) Use this only when paginating results to # indicate the maximum number of policy names you want in the # response. If there are additional policy names beyond the maximum # you specify, the IsTruncated response element is +true+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:policy_names+ - (Array) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_groups(options = {}) # Calls the ListGroups API operation. # @param [Hash] options # * +:path_prefix+ - (String) The path prefix for filtering the # results. For example: /division_abc/subdivision_xyz/, which would # get all groups whose path starts with # /division_abc/subdivision_xyz/. This parameter is optional. If it # is not included, it defaults to a slash (/), listing all groups. # * +: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. # * +:max_items+ - (Integer) Use this only when paginating results to # indicate the maximum number of groups you want in the response. If # there are additional groups beyond the maximum you specify, the # IsTruncated response element is +true+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:groups+ - (Array) # * +:path+ - (String) # * +:group_name+ - (String) # * +:group_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_groups_for_user(options = {}) # Calls the ListGroupsForUser API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) The name of the user to list # groups for. # * +: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. # * +:max_items+ - (Integer) Use this only when paginating results to # indicate the maximum number of groups you want in the response. If # there are additional groups beyond the maximum you specify, the # IsTruncated response element is +true+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:groups+ - (Array) # * +:path+ - (String) # * +:group_name+ - (String) # * +:group_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_instance_profiles(options = {}) # Calls the ListInstanceProfiles API operation. # @param [Hash] options # * +:path_prefix+ - (String) The path prefix for filtering the # results. For example: /application_abc/component_xyz/, which would # get all instance profiles whose path starts with # /application_abc/component_xyz/. This parameter is optional. If it # is not included, it defaults to a slash (/), listing all instance # profiles. # * +:marker+ - (String) Use this parameter 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. # * +:max_items+ - (Integer) Use this parameter 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+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:instance_profiles+ - (Array) # * +:path+ - (String) # * +:instance_profile_name+ - (String) # * +:instance_profile_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:roles+ - (Array) # * +:path+ - (String) # * +:role_name+ - (String) # * +:role_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:assume_role_policy_document+ - (String) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_instance_profiles_for_role(options = {}) # Calls the ListInstanceProfilesForRole API operation. # @param [Hash] options # * +:role_name+ - *required* - (String) The name of the role to list # instance profiles for. # * +:marker+ - (String) Use this parameter 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. # * +:max_items+ - (Integer) Use this parameter 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+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:instance_profiles+ - (Array) # * +:path+ - (String) # * +:instance_profile_name+ - (String) # * +:instance_profile_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:roles+ - (Array) # * +:path+ - (String) # * +:role_name+ - (String) # * +:role_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:assume_role_policy_document+ - (String) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_mfa_devices(options = {}) # Calls the ListMFADevices API operation. # @param [Hash] options # * +:user_name+ - (String) Name of the user whose MFA devices you want # to list. # * +: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. # * +:max_items+ - (Integer) Use this only when paginating results to # indicate the maximum number of MFA devices you want in the # response. If there are additional MFA devices beyond the maximum # you specify, the IsTruncated response element is +true+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:mfa_devices+ - (Array) # * +:user_name+ - (String) # * +:serial_number+ - (String) # * +:enable_date+ - (Time) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_role_policies(options = {}) # Calls the ListRolePolicies API operation. # @param [Hash] options # * +:role_name+ - *required* - (String) The name of the role to list # policies for. # * +:marker+ - (String) Use this parameter 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. # * +:max_items+ - (Integer) Use this parameter 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+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:policy_names+ - (Array) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_roles(options = {}) # Calls the ListRoles API operation. # @param [Hash] options # * +:path_prefix+ - (String) The path prefix for filtering the # results. For example: /application_abc/component_xyz/, which would # get all roles whose path starts with # /application_abc/component_xyz/. This parameter is optional. If it # is not included, it defaults to a slash (/), listing all roles. # * +:marker+ - (String) Use this parameter 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. # * +:max_items+ - (Integer) Use this parameter 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+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:roles+ - (Array) # * +:path+ - (String) # * +:role_name+ - (String) # * +:role_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:assume_role_policy_document+ - (String) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_server_certificates(options = {}) # Calls the ListServerCertificates API operation. # @param [Hash] options # * +:path_prefix+ - (String) The path prefix for filtering the # results. For example: /company/servercerts would get all server # certificates for which the path starts with /company/servercerts. # This parameter is optional. If it is not included, it defaults to a # slash (/), listing all server certificates. # * +: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. # * +:max_items+ - (Integer) Use this only when paginating results to # indicate the maximum number of server certificates you want in the # response. If there are additional server certificates beyond the # maximum you specify, the IsTruncated response element will be set # to +true+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:server_certificate_metadata_list+ - (Array) # * +:path+ - (String) # * +:server_certificate_name+ - (String) # * +:server_certificate_id+ - (String) # * +:arn+ - (String) # * +:upload_date+ - (Time) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_signing_certificates(options = {}) # Calls the ListSigningCertificates API operation. # @param [Hash] options # * +:user_name+ - (String) The name of the user. # * +: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. # * +:max_items+ - (Integer) Use this only when paginating results to # indicate the maximum number of certificate IDs you want in the # response. If there are additional certificate IDs beyond the # maximum you specify, the IsTruncated response element is +true+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:certificates+ - (Array) # * +:user_name+ - (String) # * +:certificate_id+ - (String) # * +:certificate_body+ - (String) # * +:status+ - (String) # * +:upload_date+ - (Time) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_user_policies(options = {}) # Calls the ListUserPolicies API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) The name of the user to list # policies for. # * +: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. # * +:max_items+ - (Integer) Use this only when paginating results to # indicate the maximum number of policy names you want in the # response. If there are additional policy names beyond the maximum # you specify, the IsTruncated response element is +true+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:policy_names+ - (Array) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_users(options = {}) # Calls the ListUsers API operation. # @param [Hash] options # * +:path_prefix+ - (String) The path prefix for filtering the # results. For example: /division_abc/subdivision_xyz/, which would # get all user names whose path starts with # /division_abc/subdivision_xyz/. This parameter is optional. If it # is not included, it defaults to a slash (/), listing all user # names. # * +:marker+ - (String) Use this parameter 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. # * +:max_items+ - (Integer) Use this parameter 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+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:users+ - (Array) # * +:path+ - (String) # * +:user_name+ - (String) # * +:user_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method list_virtual_mfa_devices(options = {}) # Calls the ListVirtualMFADevices API operation. # @param [Hash] options # * +:assignment_status+ - (String) The status (unassigned or assigned) # of the devices to list. If you do not specify an AssignmentStatus, # the action defaults to Any which lists both assigned and unassigned # virtual MFA devices. # * +:marker+ - (String) Use this parameter 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. # * +:max_items+ - (Integer) Use this parameter 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+ . # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:virtual_mfa_devices+ - (Array) # * +:serial_number+ - (String) # * +:base_32_string_seed+ - (String) # * +:qr_code_png+ - (String) # * +:user+ - (Hash) # * +:path+ - (String) # * +:user_name+ - (String) # * +:user_id+ - (String) # * +:arn+ - (String) # * +:create_date+ - (Time) # * +:enable_date+ - (Time) # * +:is_truncated+ - (Boolean) # * +:marker+ - (String) # @!method put_group_policy(options = {}) # Calls the PutGroupPolicy API operation. # @param [Hash] options # * +:group_name+ - *required* - (String) Name of the group to # associate the policy with. # * +:policy_name+ - *required* - (String) Name of the policy document. # * +:policy_document+ - *required* - (String) The policy document. # @return [Core::Response] # @!method put_role_policy(options = {}) # Calls the PutRolePolicy API operation. # @param [Hash] options # * +:role_name+ - *required* - (String) Name of the role to associate # the policy with. # * +:policy_name+ - *required* - (String) Name of the policy document. # * +:policy_document+ - *required* - (String) The policy document. # @return [Core::Response] # @!method put_user_policy(options = {}) # Calls the PutUserPolicy API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user to associate # the policy with. # * +:policy_name+ - *required* - (String) Name of the policy document. # * +:policy_document+ - *required* - (String) The policy document. # @return [Core::Response] # @!method remove_role_from_instance_profile(options = {}) # Calls the RemoveRoleFromInstanceProfile API operation. # @param [Hash] options # * +:instance_profile_name+ - *required* - (String) Name of the # instance profile to update. # * +:role_name+ - *required* - (String) Name of the role to remove. # @return [Core::Response] # @!method remove_user_from_group(options = {}) # Calls the RemoveUserFromGroup API operation. # @param [Hash] options # * +:group_name+ - *required* - (String) Name of the group to update. # * +:user_name+ - *required* - (String) Name of the user to remove. # @return [Core::Response] # @!method resync_mfa_device(options = {}) # Calls the ResyncMFADevice API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user whose MFA # device you want to resynchronize. # * +:serial_number+ - *required* - (String) Serial number that # uniquely identifies the MFA device. # * +:authentication_code_1+ - *required* - (String) An authentication # code emitted by the device. # * +:authentication_code_2+ - *required* - (String) A subsequent # authentication code emitted by the device. # @return [Core::Response] # @!method update_access_key(options = {}) # Calls the UpdateAccessKey API operation. # @param [Hash] options # * +:user_name+ - (String) Name of the user whose key you want to # update. # * +:access_key_id+ - *required* - (String) The Access Key ID of the # Secret Access Key you want to update. # * +:status+ - *required* - (String) The status you want to assign to # the Secret Access Key. Active means the key can be used for API # calls to AWS, while Inactive means the key cannot be used. # @return [Core::Response] # @!method update_account_password_policy(options = {}) # Calls the UpdateAccountPasswordPolicy API operation. # @param [Hash] options # * +:minimum_password_length+ - (Integer) # * +:require_symbols+ - (Boolean) # * +:require_numbers+ - (Boolean) # * +:require_uppercase_characters+ - (Boolean) # * +:require_lowercase_characters+ - (Boolean) # * +:allow_users_to_change_password+ - (Boolean) # @return [Core::Response] # @!method update_assume_role_policy(options = {}) # Calls the UpdateAssumeRolePolicy API operation. # @param [Hash] options # * +:role_name+ - *required* - (String) Name of the role to update. # * +:policy_document+ - *required* - (String) The policy that grants # an entity permission to assume the role. # @return [Core::Response] # @!method update_group(options = {}) # Calls the UpdateGroup API operation. # @param [Hash] options # * +:group_name+ - *required* - (String) Name of the group to update. # If you're changing the name of the group, this is the original # name. # * +:new_path+ - (String) New path for the group. Only include this if # changing the group's path. # * +:new_group_name+ - (String) New name for the group. Only include # this if changing the group's name. # @return [Core::Response] # @!method update_login_profile(options = {}) # Calls the UpdateLoginProfile API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user whose # password you want to update. # * +:password+ - (String) The new password for the user name. # @return [Core::Response] # @!method update_server_certificate(options = {}) # Calls the UpdateServerCertificate API operation. # @param [Hash] options # * +:server_certificate_name+ - *required* - (String) The name of the # server certificate that you want to update. # * +:new_path+ - (String) The new path for the server certificate. # Include this only if you are updating the server certificate's # path. # * +:new_server_certificate_name+ - (String) The new name for the # server certificate. Include this only if you are updating the # server certificate's name. # @return [Core::Response] # @!method update_signing_certificate(options = {}) # Calls the UpdateSigningCertificate API operation. # @param [Hash] options # * +:user_name+ - (String) Name of the user the signing certificate # belongs to. # * +:certificate_id+ - *required* - (String) The ID of the signing # certificate you want to update. # * +:status+ - *required* - (String) The status you want to assign to # the certificate. Active means the certificate can be used for API # calls to AWS, while Inactive means the certificate cannot be used. # @return [Core::Response] # @!method update_user(options = {}) # Calls the UpdateUser API operation. # @param [Hash] options # * +:user_name+ - *required* - (String) Name of the user to update. If # you're changing the name of the user, this is the original user # name. # * +: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. # @return [Core::Response] # @!method upload_server_certificate(options = {}) # Calls the UploadServerCertificate API operation. # @param [Hash] options # * +:path+ - (String) The path for the server certificate. For more # information about paths, see Identifiers for IAM Entities in Using # AWS Identity and Access Management. This parameter is optional. If # it is not included, it defaults to a slash (/). # * +:server_certificate_name+ - *required* - (String) The name for the # server certificate. Do not include the path in this value. # * +:certificate_body+ - *required* - (String) The contents of the # public key certificate in PEM-encoded format. # * +:private_key+ - *required* - (String) The contents of the private # key in PEM-encoded format. # * +:certificate_chain+ - (String) The contents of the certificate # chain. This is typically a concatenation of the PEM-encoded public # key certificates of the chain. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:server_certificate_metadata+ - (Hash) # * +:path+ - (String) # * +:server_certificate_name+ - (String) # * +:server_certificate_id+ - (String) # * +:arn+ - (String) # * +:upload_date+ - (Time) # @!method upload_signing_certificate(options = {}) # Calls the UploadSigningCertificate API operation. # @param [Hash] options # * +:user_name+ - (String) Name of the user the signing certificate is # for. # * +:certificate_body+ - *required* - (String) The contents of the # signing certificate. # @return [Core::Response] # The #data method of the response object returns # a hash with the following structure: # * +:certificate+ - (Hash) # * +:user_name+ - (String) # * +:certificate_id+ - (String) # * +:certificate_body+ - (String) # * +:status+ - (String) # * +:upload_date+ - (Time) ## end client methods ## end end end