class Aws::IAM::Client
An API client for IAM
. To construct a client, you need to configure a `:region` and `:credentials`.
client = Aws::IAM::Client.new( region: region_name, credentials: credentials, # ... )
For details on configuring region and credentials see the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
See {#initialize} for a full list of supported configuration options.
Attributes
@api private
Public Class Methods
@overload initialize(options)
@param [Hash] options @option options [required, Aws::CredentialProvider] :credentials Your AWS credentials. This can be an instance of any one of the following classes: * `Aws::Credentials` - Used for configuring static, non-refreshing credentials. * `Aws::SharedCredentials` - Used for loading static credentials from a shared file, such as `~/.aws/config`. * `Aws::AssumeRoleCredentials` - Used when you need to assume a role. * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to assume a role after providing credentials via the web. * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an access token generated from `aws login`. * `Aws::ProcessCredentials` - Used for loading credentials from a process that outputs to stdout. * `Aws::InstanceProfileCredentials` - Used for loading credentials from an EC2 IMDS on an EC2 instance. * `Aws::ECSCredentials` - Used for loading credentials from instances running in ECS. * `Aws::CognitoIdentityCredentials` - Used for loading credentials from the Cognito Identity service. When `:credentials` are not configured directly, the following locations will be searched for credentials: * `Aws.config[:credentials]` * The `:access_key_id`, `:secret_access_key`, and `:session_token` options. * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'] * `~/.aws/credentials` * `~/.aws/config` * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to enable retries and extended timeouts. @option options [required, String] :region The AWS region to connect to. The configured `:region` is used to determine the service `:endpoint`. When not passed, a default `:region` is searched for in the following locations: * `Aws.config[:region]` * `ENV['AWS_REGION']` * `ENV['AMAZON_REGION']` * `ENV['AWS_DEFAULT_REGION']` * `~/.aws/credentials` * `~/.aws/config` @option options [String] :access_key_id @option options [Boolean] :active_endpoint_cache (false) When set to `true`, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to `false`. @option options [Boolean] :adaptive_retry_wait_to_fill (true) Used only in `adaptive` retry mode. When true, the request will sleep until there is sufficent client side capacity to retry the request. When false, the request will raise a `RetryCapacityNotAvailableError` and will not retry instead of sleeping. @option options [Boolean] :client_side_monitoring (false) When `true`, client-side metrics will be collected for all API requests from this client. @option options [String] :client_side_monitoring_client_id ("") Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string. @option options [String] :client_side_monitoring_host ("127.0.0.1") Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client side monitoring agent is running on, where client metrics will be published via UDP. @option options [Integer] :client_side_monitoring_port (31000) Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP. @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher. @option options [Boolean] :convert_params (true) When `true`, an attempt is made to coerce request parameters into the required types. @option options [Boolean] :correct_clock_skew (true) Used only in `standard` and adaptive retry modes. Specifies whether to apply a clock skew correction and retry requests with skewed client clocks. @option options [Boolean] :disable_host_prefix_injection (false) Set to true to disable SDK automatically adding host prefix to default service endpoint when available. @option options [String] :endpoint The client endpoint is normally constructed from the `:region` option. You should only configure an `:endpoint` when connecting to test or custom endpoints. This should be a valid HTTP(S) URI. @option options [Integer] :endpoint_cache_max_entries (1000) Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000. @option options [Integer] :endpoint_cache_max_threads (10) Used for the maximum threads in use for polling endpoints to be cached, defaults to 10. @option options [Integer] :endpoint_cache_poll_interval (60) When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec. @option options [Boolean] :endpoint_discovery (false) When set to `true`, endpoint discovery will be enabled for operations when available. @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default) The log formatter. @option options [Symbol] :log_level (:info) The log level to send messages to the `:logger` at. @option options [Logger] :logger The Logger instance to send log messages to. If this option is not set, logging will be disabled. @option options [Integer] :max_attempts (3) An integer representing the maximum number attempts that will be made for a single request, including the initial attempt. For example, setting this value to 5 will result in a request being retried up to 4 times. Used in `standard` and `adaptive` retry modes. @option options [String] :profile ("default") Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used. @option options [Proc] :retry_backoff A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. This option is only used in the `legacy` retry mode. @option options [Float] :retry_base_delay (0.3) The base delay in seconds used by the default backoff function. This option is only used in the `legacy` retry mode. @option options [Symbol] :retry_jitter (:none) A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number. This option is only used in the `legacy` retry mode. @see https://www.awsarchitectureblog.com/2015/03/backoff.html @option options [Integer] :retry_limit (3) The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors, auth errors, endpoint discovery, and errors from expired credentials. This option is only used in the `legacy` retry mode. @option options [Integer] :retry_max_delay (0) The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function. This option is only used in the `legacy` retry mode. @option options [String] :retry_mode ("legacy") Specifies which retry algorithm to use. Values are: * `legacy` - The pre-existing retry behavior. This is default value if no retry mode is provided. * `standard` - A standardized set of retry rules across the AWS SDKs. This includes support for retry quotas, which limit the number of unsuccessful retries a client can make. * `adaptive` - An experimental retry mode that includes all the functionality of `standard` mode along with automatic client side throttling. This is a provisional mode that may change behavior in the future. @option options [String] :secret_access_key @option options [String] :session_token @option options [Boolean] :stub_responses (false) Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling {ClientStubs#stub_responses}. See {ClientStubs} for more information. ** Please note ** When response stubbing is enabled, no HTTP requests are made, and retries are disabled. @option options [Boolean] :validate_params (true) When `true`, request parameters are validated before sending the request. @option options [URI::HTTP,String] :http_proxy A proxy to send requests through. Formatted like 'http://proxy.com:123'. @option options [Float] :http_open_timeout (15) The number of seconds to wait when opening a HTTP session before raising a `Timeout::Error`. @option options [Integer] :http_read_timeout (60) The default number of seconds to wait for response data. This value can safely be set per-request on the session. @option options [Float] :http_idle_timeout (5) The number of seconds a connection is allowed to sit idle before it is considered stale. Stale connections are closed and removed from the pool before making a request. @option options [Float] :http_continue_timeout (1) The number of seconds to wait for a 100-continue response before sending the request body. This option has no effect unless the request has "Expect" header set to "100-continue". Defaults to `nil` which disables this behaviour. This value can safely be set per request on the session. @option options [Boolean] :http_wire_trace (false) When `true`, HTTP debug output will be sent to the `:logger`. @option options [Boolean] :ssl_verify_peer (true) When `true`, SSL peer certificates are verified when establishing a connection. @option options [String] :ssl_ca_bundle Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default will be used if available. @option options [String] :ssl_ca_directory Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default will be used if available.
# File lib/aws-sdk-iam/client.rb, line 324 def initialize(*args) super end
Private Class Methods
@api private
# File lib/aws-sdk-iam/client.rb, line 13298 def errors_module Errors end
Public Instance Methods
Adds a new client ID (also known as audience) to the list of client IDs already registered for the specified IAM
OpenID Connect (OIDC) provider resource.
This operation is idempotent; it does not fail or return an error if you add an existing client ID to the provider.
@option params [required, String] :open_id_connect_provider_arn
The Amazon Resource Name (ARN) of the IAM OpenID Connect (OIDC) provider resource to add the client ID to. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation.
@option params [required, String] :client_id
The client ID (also known as audience) to add to the IAM OpenID Connect provider resource.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To add a client ID (audience) to an Open-ID Connect (OIDC) provider
# The following add-client-id-to-open-id-connect-provider command adds the client ID my-application-ID to the OIDC # provider named server.example.com: resp = client.add_client_id_to_open_id_connect_provider({ client_id: "my-application-ID", open_id_connect_provider_arn: "arn:aws:iam::123456789012:oidc-provider/server.example.com", })
@example Request syntax with placeholder values
resp = client.add_client_id_to_open_id_connect_provider({ open_id_connect_provider_arn: "arnType", # required client_id: "clientIDType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddClientIDToOpenIDConnectProvider AWS API Documentation
@overload add_client_id_to_open_id_connect_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 370 def add_client_id_to_open_id_connect_provider(params = {}, options = {}) req = build_request(:add_client_id_to_open_id_connect_provider, params) req.send_request(options) end
Adds the specified IAM
role to the specified instance profile. An instance profile can contain only one role, and this quota cannot be increased. You can remove the existing role and then add a different role to an instance profile. You must then wait for the change to appear across all of Amazon Web Services because of [eventual consistency]. To force the change, you must [disassociate the instance profile] and then [associate the instance profile], or you can stop your instance and then restart it.
<note markdown=“1”> The caller of this operation must be granted the `PassRole` permission on the IAM
role by a permissions policy.
</note>
For more information about roles, see [Working with roles]. For more information about instance profiles, see [About instance profiles].
[1]: en.wikipedia.org/wiki/Eventual_consistency [2]: docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html [3]: docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html [4]: docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html [5]: docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html
@option params [required, String] :instance_profile_name
The name of the instance profile to update. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :role_name
The name of the role to add. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To add a role to an instance profile
# The following command adds the role named S3Access to the instance profile named Webserver: resp = client.add_role_to_instance_profile({ instance_profile_name: "Webserver", role_name: "S3Access", })
@example Request syntax with placeholder values
resp = client.add_role_to_instance_profile({ instance_profile_name: "instanceProfileNameType", # required role_name: "roleNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddRoleToInstanceProfile AWS API Documentation
@overload add_role_to_instance_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 448 def add_role_to_instance_profile(params = {}, options = {}) req = build_request(:add_role_to_instance_profile, params) req.send_request(options) end
Adds the specified user to the specified group.
@option params [required, String] :group_name
The name of the group to update. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :user_name
The name of the user to add. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To add a user to an IAM
group
# The following command adds an IAM user named Bob to the IAM group named Admins: resp = client.add_user_to_group({ group_name: "Admins", user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.add_user_to_group({ group_name: "groupNameType", # required user_name: "existingUserNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddUserToGroup AWS API Documentation
@overload add_user_to_group
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 502 def add_user_to_group(params = {}, options = {}) req = build_request(:add_user_to_group, params) req.send_request(options) end
Attaches the specified managed policy to the specified IAM
group.
You use this operation to attach a managed policy to a group. To embed an inline policy in a group, use PutGroupPolicy.
As a best practice, you can validate your IAM
policies. To learn more, see [Validating IAM
policies] in the *IAM User
Guide*.
For more information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :group_name
The name (friendly name, not ARN) of the group to attach the policy to. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To attach a managed policy to an IAM
group
# The following command attaches the AWS managed policy named ReadOnlyAccess to the IAM group named Finance. resp = client.attach_group_policy({ group_name: "Finance", policy_arn: "arn:aws:iam::aws:policy/ReadOnlyAccess", })
@example Request syntax with placeholder values
resp = client.attach_group_policy({ group_name: "groupNameType", # required policy_arn: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachGroupPolicy AWS API Documentation
@overload attach_group_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 569 def attach_group_policy(params = {}, options = {}) req = build_request(:attach_group_policy, params) req.send_request(options) end
Attaches the specified managed policy to the specified IAM
role. When you attach a managed policy to a role, the managed policy becomes part of the role's permission (access) policy.
<note markdown=“1”> You cannot use a managed policy as the role's trust policy. The role's trust policy is created at the same time as the role, using CreateRole. You can update a role's trust policy using UpdateAssumeRolePolicy.
</note>
Use this operation to attach a managed policy to a role. To embed an inline policy in a role, use PutRolePolicy. For more information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
As a best practice, you can validate your IAM
policies. To learn more, see [Validating IAM
policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html
@option params [required, String] :role_name
The name (friendly name, not ARN) of the role to attach the policy to. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To attach a managed policy to an IAM
role
# The following command attaches the AWS managed policy named ReadOnlyAccess to the IAM role named ReadOnlyRole. resp = client.attach_role_policy({ policy_arn: "arn:aws:iam::aws:policy/ReadOnlyAccess", role_name: "ReadOnlyRole", })
@example Request syntax with placeholder values
resp = client.attach_role_policy({ role_name: "roleNameType", # required policy_arn: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachRolePolicy AWS API Documentation
@overload attach_role_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 643 def attach_role_policy(params = {}, options = {}) req = build_request(:attach_role_policy, params) req.send_request(options) end
Attaches the specified managed policy to the specified user.
You use this operation to attach a managed policy to a user. To embed an inline policy in a user, use PutUserPolicy.
As a best practice, you can validate your IAM
policies. To learn more, see [Validating IAM
policies] in the *IAM User
Guide*.
For more information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :user_name
The name (friendly name, not ARN) of the IAM user to attach the policy to. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy you want to attach. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To attach a managed policy to an IAM
user
# The following command attaches the AWS managed policy named AdministratorAccess to the IAM user named Alice. resp = client.attach_user_policy({ policy_arn: "arn:aws:iam::aws:policy/AdministratorAccess", user_name: "Alice", })
@example Request syntax with placeholder values
resp = client.attach_user_policy({ user_name: "userNameType", # required policy_arn: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachUserPolicy AWS API Documentation
@overload attach_user_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 710 def attach_user_policy(params = {}, options = {}) req = build_request(:attach_user_policy, params) req.send_request(options) end
@param params ({}) @api private
# File lib/aws-sdk-iam/client.rb, line 13154 def build_request(operation_name, params = {}) handlers = @handlers.for(operation_name) context = Seahorse::Client::RequestContext.new( operation_name: operation_name, operation: config.api.operation(operation_name), client: self, params: params, config: config) context[:gem_name] = 'aws-sdk-iam' context[:gem_version] = '1.60.0' Seahorse::Client::Request.new(handlers, context) end
Changes the password of the IAM
user who is calling this operation. This operation can be performed using the CLI, the Amazon Web Services API, or the **My Security Credentials** page in the Management Console. The account root user password is not affected by this operation.
Use UpdateLoginProfile to use the CLI, the Amazon Web Services API, or the Users page in the IAM
console to change the password for any IAM
user. For more information about modifying passwords, see
- Managing passwords][1
-
in the *IAM
User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html
@option params [required, String] :old_password
The IAM user's current password.
@option params [required, String] :new_password
The new password. The new password must conform to the account's password policy, if one exists. The [regex pattern][1] that is used to validate this parameter is a string of characters. That string can include almost any printable ASCII character from the space (`\u0020`) through the end of the ASCII character range (`\u00FF`). You can also include the tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) characters. Any of these characters are valid in a password. However, many tools, such as the Management Console, might restrict the ability to type certain characters because they have special meaning within that tool. [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To change the password for your IAM
user
# The following command changes the password for the current IAM user. resp = client.change_password({ new_password: "]35d/{pB9Fo9wJ", old_password: "3s0K_;xh4~8XXI", })
@example Request syntax with placeholder values
resp = client.change_password({ old_password: "passwordType", # required new_password: "passwordType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ChangePassword AWS API Documentation
@overload change_password
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 773 def change_password(params = {}, options = {}) req = build_request(:change_password, params) req.send_request(options) end
Creates a new Amazon Web Services secret access key and corresponding Amazon Web Services access key ID for the specified user. The default status for new keys is `Active`.
If you do not specify a user name, IAM
determines the user name implicitly based on the Amazon Web Services access key ID signing the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials. This is true even if the account has no associated users.
For information about quotas on the number of keys you can create, see
To ensure the security of your account, the secret access key is accessible only during key and user creation. You must save the key (for example, in a text file) if you want to be able to access it again. If a secret key is lost, you can delete the access keys for the associated user and then create new keys.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
@option params [String] :user_name
The name of the IAM user that the new key will belong to. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Types::CreateAccessKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateAccessKeyResponse#access_key #access_key} => Types::AccessKey
@example Example: To create an access key for an IAM
user
# The following command creates an access key (access key ID and secret access key) for the IAM user named Bob. resp = client.create_access_key({ user_name: "Bob", }) resp.to_h outputs the following: { access_key: { access_key_id: "AKIAIOSFODNN7EXAMPLE", create_date: Time.parse("2015-03-09T18:39:23.411Z"), secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY", status: "Active", user_name: "Bob", }, }
@example Request syntax with placeholder values
resp = client.create_access_key({ user_name: "existingUserNameType", })
@example Response structure
resp.access_key.user_name #=> String resp.access_key.access_key_id #=> String resp.access_key.status #=> String, one of "Active", "Inactive" resp.access_key.secret_access_key #=> String resp.access_key.create_date #=> Time
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccessKey AWS API Documentation
@overload create_access_key
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 855 def create_access_key(params = {}, options = {}) req = build_request(:create_access_key, params) req.send_request(options) end
Creates an alias for your account. For information about using an account alias, see [Using an alias for your account ID] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html
@option params [required, String] :account_alias
The account alias to create. This parameter allows (through its [regex pattern][1]) a string of characters consisting of lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have two dashes in a row. [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To create an account alias
# The following command associates the alias examplecorp to your AWS account. resp = client.create_account_alias({ account_alias: "examplecorp", })
@example Request syntax with placeholder values
resp = client.create_account_alias({ account_alias: "accountAliasType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccountAlias AWS API Documentation
@overload create_account_alias
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 901 def create_account_alias(params = {}, options = {}) req = build_request(:create_account_alias, params) req.send_request(options) end
Creates a new group.
For information about the number of groups you can create, see [IAM and STS quotas] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
@option params [String] :path
The path to the group. For more information about paths, see [IAM identifiers][1] in the *IAM User Guide*. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its [regex pattern][2]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html [2]: http://wikipedia.org/wiki/regex
@option params [required, String] :group_name
The name of the group to create. Do not include the path in this value. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".
@return [Types::CreateGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateGroupResponse#group #group} => Types::Group
@example Example: To create an IAM
group
# The following command creates an IAM group named Admins. resp = client.create_group({ group_name: "Admins", }) resp.to_h outputs the following: { group: { arn: "arn:aws:iam::123456789012:group/Admins", create_date: Time.parse("2015-03-09T20:30:24.940Z"), group_id: "AIDGPMS9RO4H3FEXAMPLE", group_name: "Admins", path: "/", }, }
@example Request syntax with placeholder values
resp = client.create_group({ path: "pathType", group_name: "groupNameType", # required })
@example Response structure
resp.group.path #=> String resp.group.group_name #=> String resp.group.group_id #=> String resp.group.arn #=> String resp.group.create_date #=> Time
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateGroup AWS API Documentation
@overload create_group
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 985 def create_group(params = {}, options = {}) req = build_request(:create_group, params) req.send_request(options) end
Creates a new instance profile. For information about instance profiles, see [Using roles for applications on Amazon EC2] in the *IAM User
Guide*, and [Instance profiles] in the *Amazon EC2 User
Guide*.
For information about the number of instance profiles you can create, see [IAM object quotas] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html [2]: docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#ec2-instance-profile [3]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
@option params [required, String] :instance_profile_name
The name of the instance profile to create. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :path
The path to the instance profile. For more information about paths, see [IAM Identifiers][1] in the *IAM User Guide*. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its [regex pattern][2]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html [2]: http://wikipedia.org/wiki/regex
@option params [Array<Types::Tag>] :tags
A list of tags that you want to attach to the newly created IAM instance profile. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources][1] in the *IAM User Guide*. <note markdown="1"> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note> [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@return [Types::CreateInstanceProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateInstanceProfileResponse#instance_profile #instance_profile} => Types::InstanceProfile
@example Example: To create an instance profile
# The following command creates an instance profile named Webserver that is ready to have a role attached and then be # associated with an EC2 instance. resp = client.create_instance_profile({ instance_profile_name: "Webserver", }) resp.to_h outputs the following: { instance_profile: { arn: "arn:aws:iam::123456789012:instance-profile/Webserver", create_date: Time.parse("2015-03-09T20:33:19.626Z"), instance_profile_id: "AIPAJMBYC7DLSPEXAMPLE", instance_profile_name: "Webserver", path: "/", roles: [ ], }, }
@example Request syntax with placeholder values
resp = client.create_instance_profile({ instance_profile_name: "instanceProfileNameType", # required path: "pathType", tags: [ { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@example Response structure
resp.instance_profile.path #=> String resp.instance_profile.instance_profile_name #=> String resp.instance_profile.instance_profile_id #=> String resp.instance_profile.arn #=> String resp.instance_profile.create_date #=> Time resp.instance_profile.roles #=> Array resp.instance_profile.roles[0].path #=> String resp.instance_profile.roles[0].role_name #=> String resp.instance_profile.roles[0].role_id #=> String resp.instance_profile.roles[0].arn #=> String resp.instance_profile.roles[0].create_date #=> Time resp.instance_profile.roles[0].assume_role_policy_document #=> String resp.instance_profile.roles[0].description #=> String resp.instance_profile.roles[0].max_session_duration #=> Integer resp.instance_profile.roles[0].permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.instance_profile.roles[0].permissions_boundary.permissions_boundary_arn #=> String resp.instance_profile.roles[0].tags #=> Array resp.instance_profile.roles[0].tags[0].key #=> String resp.instance_profile.roles[0].tags[0].value #=> String resp.instance_profile.roles[0].role_last_used.last_used_date #=> Time resp.instance_profile.roles[0].role_last_used.region #=> String resp.instance_profile.tags #=> Array resp.instance_profile.tags[0].key #=> String resp.instance_profile.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateInstanceProfile AWS API Documentation
@overload create_instance_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 1122 def create_instance_profile(params = {}, options = {}) req = build_request(:create_instance_profile, params) req.send_request(options) end
Creates a password for the specified IAM
user. A password allows an IAM
user to access Amazon Web Services services through the Management Console.
You can use the CLI, the Amazon Web Services API, or the Users page in the IAM
console to create a password for any IAM
user. Use ChangePassword to update your own existing password in the **My Security Credentials** page in the Management Console.
For more information about managing passwords, see [Managing passwords] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html
@option params [required, String] :user_name
The name of the IAM user to create a password for. The user must already exist. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :password
The new password for the user. The [regex pattern][1] that is used to validate this parameter is a string of characters. That string can include almost any printable ASCII character from the space (`\u0020`) through the end of the ASCII character range (`\u00FF`). You can also include the tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) characters. Any of these characters are valid in a password. However, many tools, such as the Management Console, might restrict the ability to type certain characters because they have special meaning within that tool. [1]: http://wikipedia.org/wiki/regex
@option params [Boolean] :password_reset_required
Specifies whether the user is required to set a new password on next sign-in.
@return [Types::CreateLoginProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateLoginProfileResponse#login_profile #login_profile} => Types::LoginProfile
@example Example: To create an instance profile
# The following command changes IAM user Bob's password and sets the flag that required Bob to change the password the # next time he signs in. resp = client.create_login_profile({ password: "h]6EszR}vJ*m", password_reset_required: true, user_name: "Bob", }) resp.to_h outputs the following: { login_profile: { create_date: Time.parse("2015-03-10T20:55:40.274Z"), password_reset_required: true, user_name: "Bob", }, }
@example Request syntax with placeholder values
resp = client.create_login_profile({ user_name: "userNameType", # required password: "passwordType", # required password_reset_required: false, })
@example Response structure
resp.login_profile.user_name #=> String resp.login_profile.create_date #=> Time resp.login_profile.password_reset_required #=> Boolean
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateLoginProfile AWS API Documentation
@overload create_login_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 1219 def create_login_profile(params = {}, options = {}) req = build_request(:create_login_profile, params) req.send_request(options) end
Creates an IAM
entity to describe an identity provider (IdP) that supports [OpenID Connect (OIDC)].
The OIDC provider that you create with this operation can be used as a principal in a role's trust policy. Such a policy establishes a trust relationship between Amazon Web Services and the OIDC provider.
If you are using an OIDC identity provider from Google, Facebook, or Amazon Cognito, you don't need to create a separate IAM
identity provider. These OIDC identity providers are already built-in to Amazon Web Services and are available for your use. Instead, you can move directly to creating new roles using your identity provider. To learn more, see [Creating a role for web identity or OpenID connect federation] in the *IAM User
Guide*.
When you create the IAM
OIDC provider, you specify the following:
-
The URL of the OIDC identity provider (IdP) to trust
-
A list of client IDs (also known as audiences) that identify the application or applications allowed to authenticate using the OIDC provider
-
A list of thumbprints of one or more server certificates that the IdP uses
You get all of this information from the OIDC IdP that you want to use to access Amazon Web Services.
<note markdown=“1”> Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. These OIDC IdPs include Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation.
</note>
<note markdown=“1”> The trust for the OIDC provider is derived from the IAM
provider that this operation creates. Therefore, it is best to limit access to the CreateOpenIDConnectProvider operation to highly privileged users.
</note>
[1]: openid.net/connect/ [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html
@option params [required, String] :url
The URL of the identity provider. The URL must begin with `https://` and should correspond to the `iss` claim in the provider's OpenID Connect ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a hostname, like `https://server.example.org` or `https://example.com`. You cannot register the same provider multiple times in a single account. If you try to submit a URL that has already been used for an OpenID Connect provider in the account, you will get an error.
@option params [Array<String>] :client_id_list
A list of client IDs (also known as audiences). When a mobile or web app registers with an OpenID Connect provider, they establish a value that identifies the application. (This is the value that's sent as the `client_id` parameter on OAuth requests.) You can register multiple client IDs with the same provider. For example, you might have multiple applications that use the same OIDC provider. You cannot register more than 100 client IDs with a single IAM OIDC provider. There is no defined format for a client ID. The `CreateOpenIDConnectProviderRequest` operation accepts client IDs up to 255 characters long.
@option params [required, Array<String>] :thumbprint_list
A list of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificates. Typically this list includes only one entry. However, IAM lets you have up to five thumbprints for an OIDC provider. This lets you maintain multiple thumbprints if the identity provider is rotating certificates. The server certificate thumbprint is the hex-encoded SHA-1 hash value of the X.509 certificate used by the domain where the OpenID Connect provider makes its keys available. It is always a 40-character string. You must provide at least one thumbprint when creating an IAM OIDC provider. For example, assume that the OIDC provider is `server.example.com` and the provider stores its keys at https://keys.server.example.com/openid-connect. In that case, the thumbprint string would be the hex-encoded SHA-1 hash value of the certificate used by https://keys.server.example.com. For more information about obtaining the OIDC provider's thumbprint, see [Obtaining the thumbprint for an OpenID Connect provider][1] in the *IAM User Guide*. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/identity-providers-oidc-obtain-thumbprint.html
@option params [Array<Types::Tag>] :tags
A list of tags that you want to attach to the new IAM OpenID Connect (OIDC) provider. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources][1] in the *IAM User Guide*. <note markdown="1"> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note> [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@return [Types::CreateOpenIDConnectProviderResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateOpenIDConnectProviderResponse#open_id_connect_provider_arn #open_id_connect_provider_arn} => String * {Types::CreateOpenIDConnectProviderResponse#tags #tags} => Array<Types::Tag>
@example Example: To create an instance profile
# The following example defines a new OIDC provider in IAM with a client ID of my-application-id and pointing at the # server with a URL of https://server.example.com. resp = client.create_open_id_connect_provider({ client_id_list: [ "my-application-id", ], thumbprint_list: [ "3768084dfb3d2b68b7897bf5f565da8efEXAMPLE", ], url: "https://server.example.com", }) resp.to_h outputs the following: { open_id_connect_provider_arn: "arn:aws:iam::123456789012:oidc-provider/server.example.com", }
@example Request syntax with placeholder values
resp = client.create_open_id_connect_provider({ url: "OpenIDConnectProviderUrlType", # required client_id_list: ["clientIDType"], thumbprint_list: ["thumbprintType"], # required tags: [ { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@example Response structure
resp.open_id_connect_provider_arn #=> String resp.tags #=> Array resp.tags[0].key #=> String resp.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateOpenIDConnectProvider AWS API Documentation
@overload create_open_id_connect_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 1393 def create_open_id_connect_provider(params = {}, options = {}) req = build_request(:create_open_id_connect_provider, params) req.send_request(options) end
Creates a new managed policy for your account.
This operation creates a policy version with a version identifier of `v1` and sets v1 as the policy's default version. For more information about policy versions, see [Versioning for managed policies] in the *IAM User
Guide*.
As a best practice, you can validate your IAM
policies. To learn more, see [Validating IAM
policies] in the *IAM User
Guide*.
For more information about managed policies in general, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :policy_name
The friendly name of the policy. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".
@option params [String] :path
The path for the policy. For more information about paths, see [IAM identifiers][1] in the *IAM User Guide*. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its [regex pattern][2]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html [2]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_document
The JSON policy document that you want to use as the content for the new policy. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and STS character quotas][1]. To learn more about JSON policy grammar, see [Grammar of the IAM JSON policy language][2] in the *IAM User Guide*. The [regex pattern][3] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html [3]: http://wikipedia.org/wiki/regex
@option params [String] :description
A friendly description of the policy. Typically used to store information about the permissions defined in the policy. For example, "Grants access to production DynamoDB tables." The policy description is immutable. After a value is assigned, it cannot be changed.
@option params [Array<Types::Tag>] :tags
A list of tags that you want to attach to the new IAM customer managed policy. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources][1] in the *IAM User Guide*. <note markdown="1"> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note> [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@return [Types::CreatePolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreatePolicyResponse#policy #policy} => Types::Policy
@example Request syntax with placeholder values
resp = client.create_policy({ policy_name: "policyNameType", # required path: "policyPathType", policy_document: "policyDocumentType", # required description: "policyDescriptionType", tags: [ { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@example Response structure
resp.policy.policy_name #=> String resp.policy.policy_id #=> String resp.policy.arn #=> String resp.policy.path #=> String resp.policy.default_version_id #=> String resp.policy.attachment_count #=> Integer resp.policy.permissions_boundary_usage_count #=> Integer resp.policy.is_attachable #=> Boolean resp.policy.description #=> String resp.policy.create_date #=> Time resp.policy.update_date #=> Time resp.policy.tags #=> Array resp.policy.tags[0].key #=> String resp.policy.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicy AWS API Documentation
@overload create_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 1546 def create_policy(params = {}, options = {}) req = build_request(:create_policy, params) req.send_request(options) end
Creates a new version of the specified managed policy. To update a managed policy, you create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must delete an existing version using DeletePolicyVersion before you create a new version.
Optionally, you can set the new version as the policy's default version. The default version is the version that is in effect for the IAM
users, groups, and roles to which the policy is attached.
For more information about managed policy versions, see [Versioning for managed policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy to which you want to add a new version. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [required, String] :policy_document
The JSON policy document that you want to use as the content for this new version of the policy. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and STS character quotas][1]. The [regex pattern][2] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length [2]: http://wikipedia.org/wiki/regex
@option params [Boolean] :set_as_default
Specifies whether to set this version as the policy's default version. When this parameter is `true`, the new policy version becomes the operative version. That is, it becomes the version that is in effect for the IAM users, groups, and roles that the policy is attached to. For more information about managed policy versions, see [Versioning for managed policies][1] in the *IAM User Guide*. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
@return [Types::CreatePolicyVersionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreatePolicyVersionResponse#policy_version #policy_version} => Types::PolicyVersion
@example Request syntax with placeholder values
resp = client.create_policy_version({ policy_arn: "arnType", # required policy_document: "policyDocumentType", # required set_as_default: false, })
@example Response structure
resp.policy_version.document #=> String resp.policy_version.version_id #=> String resp.policy_version.is_default_version #=> Boolean resp.policy_version.create_date #=> Time
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyVersion AWS API Documentation
@overload create_policy_version
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 1648 def create_policy_version(params = {}, options = {}) req = build_request(:create_policy_version, params) req.send_request(options) end
Creates a new role for your account. For more information about roles, see [IAM roles]. For information about quotas for role names and the number of roles you can create, see [IAM and STS quotas] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
@option params [String] :path
The path to the role. For more information about paths, see [IAM Identifiers][1] in the *IAM User Guide*. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its [regex pattern][2]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html [2]: http://wikipedia.org/wiki/regex
@option params [required, String] :role_name
The name of the role to create. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".
@option params [required, String] :assume_role_policy_document
The trust relationship policy document that grants an entity permission to assume the role. In IAM, you must provide a JSON policy that has been converted to a string. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) Upon success, the response includes the same trust policy in JSON format. [1]: http://wikipedia.org/wiki/regex
@option params [String] :description
A description of the role.
@option params [Integer] :max_session_duration
The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. Anyone who assumes the role from the or API can use the `DurationSeconds` API parameter or the `duration-seconds` CLI parameter to request a longer session. The `MaxSessionDuration` setting determines the maximum duration that can be requested using the `DurationSeconds` parameter. If users don't specify a value for the `DurationSeconds` parameter, their security credentials are valid for one hour by default. This applies when you use the `AssumeRole*` API operations or the `assume-role*` CLI operations but does not apply when you use those operations to create a console URL. For more information, see [Using IAM roles][1] in the *IAM User Guide*. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
@option params [String] :permissions_boundary
The ARN of the policy that is used to set the permissions boundary for the role.
@option params [Array<Types::Tag>] :tags
A list of tags that you want to attach to the new role. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources][1] in the *IAM User Guide*. <note markdown="1"> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note> [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@return [Types::CreateRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateRoleResponse#role #role} => Types::Role
@example Example: To create an IAM
role
# The following command creates a role named Test-Role and attaches a trust policy that you must convert from JSON to a # string. Upon success, the response includes the same policy as a URL-encoded JSON string. resp = client.create_role({ assume_role_policy_document: "<Stringified-JSON>", path: "/", role_name: "Test-Role", }) resp.to_h outputs the following: { role: { arn: "arn:aws:iam::123456789012:role/Test-Role", assume_role_policy_document: "<URL-encoded-JSON>", create_date: Time.parse("2013-06-07T20:43:32.821Z"), path: "/", role_id: "AKIAIOSFODNN7EXAMPLE", role_name: "Test-Role", }, }
@example Request syntax with placeholder values
resp = client.create_role({ path: "pathType", role_name: "roleNameType", # required assume_role_policy_document: "policyDocumentType", # required description: "roleDescriptionType", max_session_duration: 1, permissions_boundary: "arnType", tags: [ { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@example Response structure
resp.role.path #=> String resp.role.role_name #=> String resp.role.role_id #=> String resp.role.arn #=> String resp.role.create_date #=> Time resp.role.assume_role_policy_document #=> String resp.role.description #=> String resp.role.max_session_duration #=> Integer resp.role.permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.role.permissions_boundary.permissions_boundary_arn #=> String resp.role.tags #=> Array resp.role.tags[0].key #=> String resp.role.tags[0].value #=> String resp.role.role_last_used.last_used_date #=> Time resp.role.role_last_used.region #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateRole AWS API Documentation
@overload create_role
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 1827 def create_role(params = {}, options = {}) req = build_request(:create_role, params) req.send_request(options) end
Creates an IAM
resource that describes an identity provider (IdP) that supports SAML 2.0.
The SAML provider resource that you create with this operation can be used as a principal in an IAM
role's trust policy. Such a policy can enable federated users who sign in using the SAML IdP to assume the role. You can create an IAM
role that supports Web-based single sign-on (SSO) to the Management Console or one that supports API access to Amazon Web Services.
When you create the SAML provider resource, you upload a SAML metadata document that you get from your IdP. That document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that the IdP sends. You must generate the metadata document using the identity management software that is used as your organization's IdP.
<note markdown=“1”> This operation requires [Signature Version 4].
</note>
For more information, see [Enabling SAML 2.0 federated users to access the Management Console] and [About SAML 2.0-based federation] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/general/latest/gr/signature-version-4.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html
@option params [required, String] :saml_metadata_document
An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP. For more information, see [About SAML 2.0-based federation][1] in the *IAM User Guide* [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html
@option params [required, String] :name
The name of the provider to create. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [Array<Types::Tag>] :tags
A list of tags that you want to attach to the new IAM SAML provider. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources][1] in the *IAM User Guide*. <note markdown="1"> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note> [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@return [Types::CreateSAMLProviderResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateSAMLProviderResponse#saml_provider_arn #saml_provider_arn} => String * {Types::CreateSAMLProviderResponse#tags #tags} => Array<Types::Tag>
@example Request syntax with placeholder values
resp = client.create_saml_provider({ saml_metadata_document: "SAMLMetadataDocumentType", # required name: "SAMLProviderNameType", # required tags: [ { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@example Response structure
resp.saml_provider_arn #=> String resp.tags #=> Array resp.tags[0].key #=> String resp.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateSAMLProvider AWS API Documentation
@overload create_saml_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 1935 def create_saml_provider(params = {}, options = {}) req = build_request(:create_saml_provider, params) req.send_request(options) end
Creates an IAM
role that is linked to a specific Amazon Web Services service. The service controls the attached policies and when the role can be deleted. This helps ensure that the service is not broken by an unexpectedly changed or deleted role, which could put your Amazon Web Services resources into an unknown state. Allowing the service to control the role helps improve service stability and proper cleanup when a service and its role are no longer needed. For more information, see [Using service-linked roles] in the *IAM User
Guide*.
To attach a policy to this service-linked role, you must make the request using the Amazon Web Services service that depends on this role.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html
@option params [required, String] :aws_service_name
The service principal for the Amazon Web Services service to which this role is attached. You use a string similar to a URL but without the http:// in front. For example: `elasticbeanstalk.amazonaws.com`. Service principals are unique and case-sensitive. To find the exact service principal for your service-linked role, see [Amazon Web Services services that work with IAM][1] in the *IAM User Guide*. Look for the services that have <b>Yes </b>in the **Service-Linked Role** column. Choose the **Yes** link to view the service-linked role documentation for that service. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html
@option params [String] :description
The description of the role.
@option params [String] :custom_suffix
A string that you provide, which is combined with the service-provided prefix to form the complete role name. If you make multiple requests for the same service, then you must supply a different `CustomSuffix` for each request. Otherwise the request fails with a duplicate role name error. For example, you could add `-1` or `-debug` to the suffix. Some services do not support the `CustomSuffix` parameter. If you provide an optional suffix and the operation fails, try the operation again without the suffix.
@return [Types::CreateServiceLinkedRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateServiceLinkedRoleResponse#role #role} => Types::Role
@example Request syntax with placeholder values
resp = client.create_service_linked_role({ aws_service_name: "groupNameType", # required description: "roleDescriptionType", custom_suffix: "customSuffixType", })
@example Response structure
resp.role.path #=> String resp.role.role_name #=> String resp.role.role_id #=> String resp.role.arn #=> String resp.role.create_date #=> Time resp.role.assume_role_policy_document #=> String resp.role.description #=> String resp.role.max_session_duration #=> Integer resp.role.permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.role.permissions_boundary.permissions_boundary_arn #=> String resp.role.tags #=> Array resp.role.tags[0].key #=> String resp.role.tags[0].value #=> String resp.role.role_last_used.last_used_date #=> Time resp.role.role_last_used.region #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceLinkedRole AWS API Documentation
@overload create_service_linked_role
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2022 def create_service_linked_role(params = {}, options = {}) req = build_request(:create_service_linked_role, params) req.send_request(options) end
Generates a set of credentials consisting of a user name and password that can be used to access the service specified in the request. These credentials are generated by IAM
, and can be used only for the specified service.
You can have a maximum of two sets of service-specific credentials for each supported service per user.
You can create service-specific credentials for CodeCommit and Amazon Keyspaces (for Apache Cassandra).
You can reset the password to a new service-generated value by calling ResetServiceSpecificCredential.
For more information about service-specific credentials, see [Using IAM
with CodeCommit: Git credentials, SSH keys, and Amazon Web Services access keys] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_ssh-keys.html
@option params [required, String] :user_name
The name of the IAM user that is to be associated with the credentials. The new service-specific credentials have the same permissions as the associated user except that they can be used only to access the specified service. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :service_name
The name of the Amazon Web Services service that is to be associated with the credentials. The service you specify here is the only service that can be accessed using these credentials.
@return [Types::CreateServiceSpecificCredentialResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateServiceSpecificCredentialResponse#service_specific_credential #service_specific_credential} => Types::ServiceSpecificCredential
@example Request syntax with placeholder values
resp = client.create_service_specific_credential({ user_name: "userNameType", # required service_name: "serviceName", # required })
@example Response structure
resp.service_specific_credential.create_date #=> Time resp.service_specific_credential.service_name #=> String resp.service_specific_credential.service_user_name #=> String resp.service_specific_credential.service_password #=> String resp.service_specific_credential.service_specific_credential_id #=> String resp.service_specific_credential.user_name #=> String resp.service_specific_credential.status #=> String, one of "Active", "Inactive"
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceSpecificCredential AWS API Documentation
@overload create_service_specific_credential
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2094 def create_service_specific_credential(params = {}, options = {}) req = build_request(:create_service_specific_credential, params) req.send_request(options) end
Creates a new IAM
user for your account.
For information about quotas for the number of IAM
users you can create, see [IAM and STS quotas] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
@option params [String] :path
The path for the user name. For more information about paths, see [IAM identifiers][1] in the *IAM User Guide*. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its [regex pattern][2]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html [2]: http://wikipedia.org/wiki/regex
@option params [required, String] :user_name
The name of the user to create. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".
@option params [String] :permissions_boundary
The ARN of the policy that is used to set the permissions boundary for the user.
@option params [Array<Types::Tag>] :tags
A list of tags that you want to attach to the new user. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources][1] in the *IAM User Guide*. <note markdown="1"> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note> [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@return [Types::CreateUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateUserResponse#user #user} => Types::User
@example Example: To create an IAM
user
# The following create-user command creates an IAM user named Bob in the current account. resp = client.create_user({ user_name: "Bob", }) resp.to_h outputs the following: { user: { arn: "arn:aws:iam::123456789012:user/Bob", create_date: Time.parse("2013-06-08T03:20:41.270Z"), path: "/", user_id: "AKIAIOSFODNN7EXAMPLE", user_name: "Bob", }, }
@example Request syntax with placeholder values
resp = client.create_user({ path: "pathType", user_name: "userNameType", # required permissions_boundary: "arnType", tags: [ { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@example Response structure
resp.user.path #=> String resp.user.user_name #=> String resp.user.user_id #=> String resp.user.arn #=> String resp.user.create_date #=> Time resp.user.password_last_used #=> Time resp.user.permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.user.permissions_boundary.permissions_boundary_arn #=> String resp.user.tags #=> Array resp.user.tags[0].key #=> String resp.user.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateUser AWS API Documentation
@overload create_user
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2209 def create_user(params = {}, options = {}) req = build_request(:create_user, params) req.send_request(options) end
Creates a new virtual MFA device for the account. After creating the virtual MFA, use EnableMFADevice to attach the MFA device to an IAM
user. For more information about creating and working with virtual MFA devices, see [Using a virtual MFA device] in the *IAM User
Guide*.
For information about the maximum number of MFA devices you can create, see [IAM and STS quotas] in the *IAM User
Guide*.
The seed information contained in the QR code and the Base32 string should be treated like any other secret access information. In other words, protect the seed information as you would your Amazon Web Services access keys or your passwords. After you provision your virtual device, you should ensure that the information is destroyed following secure procedures.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
@option params [String] :path
The path for the virtual MFA device. For more information about paths, see [IAM identifiers][1] in the *IAM User Guide*. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its [regex pattern][2]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html [2]: http://wikipedia.org/wiki/regex
@option params [required, String] :virtual_mfa_device_name
The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [Array<Types::Tag>] :tags
A list of tags that you want to attach to the new IAM virtual MFA device. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources][1] in the *IAM User Guide*. <note markdown="1"> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note> [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@return [Types::CreateVirtualMFADeviceResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::CreateVirtualMFADeviceResponse#virtual_mfa_device #virtual_mfa_device} => Types::VirtualMFADevice
@example Request syntax with placeholder values
resp = client.create_virtual_mfa_device({ path: "pathType", virtual_mfa_device_name: "virtualMFADeviceName", # required tags: [ { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@example Response structure
resp.virtual_mfa_device.serial_number #=> String resp.virtual_mfa_device.base_32_string_seed #=> String resp.virtual_mfa_device.qr_code_png #=> String resp.virtual_mfa_device.user.path #=> String resp.virtual_mfa_device.user.user_name #=> String resp.virtual_mfa_device.user.user_id #=> String resp.virtual_mfa_device.user.arn #=> String resp.virtual_mfa_device.user.create_date #=> Time resp.virtual_mfa_device.user.password_last_used #=> Time resp.virtual_mfa_device.user.permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.virtual_mfa_device.user.permissions_boundary.permissions_boundary_arn #=> String resp.virtual_mfa_device.user.tags #=> Array resp.virtual_mfa_device.user.tags[0].key #=> String resp.virtual_mfa_device.user.tags[0].value #=> String resp.virtual_mfa_device.enable_date #=> Time resp.virtual_mfa_device.tags #=> Array resp.virtual_mfa_device.tags[0].key #=> String resp.virtual_mfa_device.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateVirtualMFADevice AWS API Documentation
@overload create_virtual_mfa_device
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2324 def create_virtual_mfa_device(params = {}, options = {}) req = build_request(:create_virtual_mfa_device, params) req.send_request(options) end
Deactivates the specified MFA device and removes it from association with the user name for which it was originally enabled.
For more information about creating and working with virtual MFA devices, see [Enabling a virtual multi-factor authentication (MFA) device] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html
@option params [required, String] :user_name
The name of the user whose MFA device you want to deactivate. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :serial_number
The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.deactivate_mfa_device({ user_name: "existingUserNameType", # required serial_number: "serialNumberType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeactivateMFADevice AWS API Documentation
@overload deactivate_mfa_device
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2378 def deactivate_mfa_device(params = {}, options = {}) req = build_request(:deactivate_mfa_device, params) req.send_request(options) end
Deletes the access key pair associated with the specified IAM
user.
If you do not specify a user name, IAM
determines the user name implicitly based on the Amazon Web Services access key ID signing the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users.
@option params [String] :user_name
The name of the user whose access key pair you want to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :access_key_id
The access key ID for the access key ID and secret access key you want to delete. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete an access key for an IAM
user
# The following command deletes one access key (access key ID and secret access key) assigned to the IAM user named Bob. resp = client.delete_access_key({ access_key_id: "AKIDPMS9RO4H3FEXAMPLE", user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.delete_access_key({ user_name: "existingUserNameType", access_key_id: "accessKeyIdType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccessKey AWS API Documentation
@overload delete_access_key
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2438 def delete_access_key(params = {}, options = {}) req = build_request(:delete_access_key, params) req.send_request(options) end
Deletes the specified account alias. For information about using an Amazon Web Services account alias, see [Using an alias for your account ID] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html
@option params [required, String] :account_alias
The name of the account alias to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of lowercase letters, digits, and dashes. You cannot start or finish with a dash, nor can you have two dashes in a row. [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete an account alias
# The following command removes the alias mycompany from the current AWS account: resp = client.delete_account_alias({ account_alias: "mycompany", })
@example Request syntax with placeholder values
resp = client.delete_account_alias({ account_alias: "accountAliasType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountAlias AWS API Documentation
@overload delete_account_alias
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2484 def delete_account_alias(params = {}, options = {}) req = build_request(:delete_account_alias, params) req.send_request(options) end
Deletes the password policy for the account. There are no parameters.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete the current account password policy
# The following command removes the password policy from the current AWS account: resp = client.delete_account_password_policy({ })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountPasswordPolicy AWS API Documentation
@overload delete_account_password_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2505 def delete_account_password_policy(params = {}, options = {}) req = build_request(:delete_account_password_policy, params) req.send_request(options) end
Deletes the specified IAM
group. The group must not contain any users or have any attached policies.
@option params [required, String] :group_name
The name of the IAM group to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_group({ group_name: "groupNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroup AWS API Documentation
@overload delete_group
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2537 def delete_group(params = {}, options = {}) req = build_request(:delete_group, params) req.send_request(options) end
Deletes the specified inline policy that is embedded in the specified IAM
group.
A group can also have managed policies attached to it. To detach a managed policy from a group, use DetachGroupPolicy. For more information about policies, refer to [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :group_name
The name (friendly name, not ARN) identifying the group that the policy is embedded in. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_name
The name identifying the policy document to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete a policy from an IAM
group
# The following command deletes the policy named ExamplePolicy from the group named Admins: resp = client.delete_group_policy({ group_name: "Admins", policy_name: "ExamplePolicy", })
@example Request syntax with placeholder values
resp = client.delete_group_policy({ group_name: "groupNameType", # required policy_name: "policyNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupPolicy AWS API Documentation
@overload delete_group_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2602 def delete_group_policy(params = {}, options = {}) req = build_request(:delete_group_policy, params) req.send_request(options) end
Deletes the specified instance profile. The instance profile must not have an associated role.
Make sure that you do not have any Amazon EC2 instances running with the instance profile you are about to delete. Deleting a role or instance profile that is associated with a running instance will break any applications running on the instance.
For more information about instance profiles, see [About instance profiles].
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html
@option params [required, String] :instance_profile_name
The name of the instance profile to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete an instance profile
# The following command deletes the instance profile named ExampleInstanceProfile resp = client.delete_instance_profile({ instance_profile_name: "ExampleInstanceProfile", })
@example Request syntax with placeholder values
resp = client.delete_instance_profile({ instance_profile_name: "instanceProfileNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteInstanceProfile AWS API Documentation
@overload delete_instance_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2655 def delete_instance_profile(params = {}, options = {}) req = build_request(:delete_instance_profile, params) req.send_request(options) end
Deletes the password for the specified IAM
user, which terminates the user's ability to access Amazon Web Services services through the Management Console.
You can use the CLI, the Amazon Web Services API, or the Users page in the IAM
console to delete a password for any IAM
user. You can use ChangePassword to update, but not delete, your own password in the **My Security Credentials** page in the Management Console.
Deleting a user's password does not prevent a user from accessing Amazon Web Services through the command line interface or the API. To prevent all user access, you must also either make any access keys inactive or delete them. For more information about making keys inactive or deleting them, see UpdateAccessKey and DeleteAccessKey.
@option params [required, String] :user_name
The name of the user whose password you want to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete a password for an IAM
user
# The following command deletes the password for the IAM user named Bob. resp = client.delete_login_profile({ user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.delete_login_profile({ user_name: "userNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteLoginProfile AWS API Documentation
@overload delete_login_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2708 def delete_login_profile(params = {}, options = {}) req = build_request(:delete_login_profile, params) req.send_request(options) end
Deletes an OpenID Connect identity provider (IdP) resource object in IAM
.
Deleting an IAM
OIDC provider resource does not update any roles that reference the provider as a principal in their trust policies. Any attempt to assume a role that references a deleted provider fails.
This operation is idempotent; it does not fail or return an error if you call the operation for a provider that does not exist.
@option params [required, String] :open_id_connect_provider_arn
The Amazon Resource Name (ARN) of the IAM OpenID Connect provider resource object to delete. You can get a list of OpenID Connect provider resource ARNs by using the ListOpenIDConnectProviders operation.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_open_id_connect_provider({ open_id_connect_provider_arn: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteOpenIDConnectProvider AWS API Documentation
@overload delete_open_id_connect_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2741 def delete_open_id_connect_provider(params = {}, options = {}) req = build_request(:delete_open_id_connect_provider, params) req.send_request(options) end
Deletes the specified managed policy.
Before you can delete a managed policy, you must first detach the policy from all users, groups, and roles that it is attached to. In addition, you must delete all the policy's versions. The following steps describe the process for deleting a managed policy:
-
Detach the policy from all users, groups, and roles that the policy is attached to, using DetachUserPolicy, DetachGroupPolicy, or DetachRolePolicy. To list all the users, groups, and roles that a policy is attached to, use ListEntitiesForPolicy.
-
Delete all versions of the policy using DeletePolicyVersion. To list the policy's versions, use ListPolicyVersions. You cannot use DeletePolicyVersion to delete the version that is marked as the default version. You delete the policy's default version in the next step of the process.
-
Delete the policy (this automatically deletes the policy's default version) using this operation.
For information about managed policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy you want to delete. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_policy({ policy_arn: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicy AWS API Documentation
@overload delete_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2796 def delete_policy(params = {}, options = {}) req = build_request(:delete_policy, params) req.send_request(options) end
Deletes the specified version from the specified managed policy.
You cannot delete the default version from a policy using this operation. To delete the default version from a policy, use DeletePolicy. To find out which version of a policy is marked as the default version, use ListPolicyVersions.
For information about versions for managed policies, see [Versioning for managed policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy from which you want to delete a version. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [required, String] :version_id
The policy version to delete. This parameter allows (through its [regex pattern][1]) a string of characters that consists of the lowercase letter 'v' followed by one or two digits, and optionally followed by a period '.' and a string of letters and digits. For more information about managed policy versions, see [Versioning for managed policies][2] in the *IAM User Guide*. [1]: http://wikipedia.org/wiki/regex [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_policy_version({ policy_arn: "arnType", # required version_id: "policyVersionIdType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyVersion AWS API Documentation
@overload delete_policy_version
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2855 def delete_policy_version(params = {}, options = {}) req = build_request(:delete_policy_version, params) req.send_request(options) end
Deletes the specified role. The role must not have any policies attached. For more information about roles, see [Working with roles].
Make sure that you do not have any Amazon EC2 instances running with the role you are about to delete. Deleting a role or instance profile that is associated with a running instance will break any applications running on the instance.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html
@option params [required, String] :role_name
The name of the role to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete an IAM
role
# The following command removes the role named Test-Role. resp = client.delete_role({ role_name: "Test-Role", })
@example Request syntax with placeholder values
resp = client.delete_role({ role_name: "roleNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRole AWS API Documentation
@overload delete_role
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2906 def delete_role(params = {}, options = {}) req = build_request(:delete_role, params) req.send_request(options) end
Deletes the permissions boundary for the specified IAM
role.
Deleting the permissions boundary for a role might increase its permissions. For example, it might allow anyone who assumes the role to perform all the actions granted in its permissions policies.
@option params [required, String] :role_name
The name (friendly name, not ARN) of the IAM role from which you want to remove the permissions boundary.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_role_permissions_boundary({ role_name: "roleNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRolePermissionsBoundary AWS API Documentation
@overload delete_role_permissions_boundary
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2933 def delete_role_permissions_boundary(params = {}, options = {}) req = build_request(:delete_role_permissions_boundary, params) req.send_request(options) end
Deletes the specified inline policy that is embedded in the specified IAM
role.
A role can also have managed policies attached to it. To detach a managed policy from a role, use DetachRolePolicy. For more information about policies, refer to [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :role_name
The name (friendly name, not ARN) identifying the role that the policy is embedded in. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_name
The name of the inline policy to delete from the specified IAM role. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To remove a policy from an IAM
role
# The following command removes the policy named ExamplePolicy from the role named Test-Role. resp = client.delete_role_policy({ policy_name: "ExamplePolicy", role_name: "Test-Role", })
@example Request syntax with placeholder values
resp = client.delete_role_policy({ role_name: "roleNameType", # required policy_name: "policyNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRolePolicy AWS API Documentation
@overload delete_role_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 2998 def delete_role_policy(params = {}, options = {}) req = build_request(:delete_role_policy, params) req.send_request(options) end
Deletes a SAML provider resource in IAM
.
Deleting the provider resource from IAM
does not update any roles that reference the SAML provider resource's ARN as a principal in their trust policies. Any attempt to assume a role that references a non-existent provider resource ARN fails.
<note markdown=“1”> This operation requires [Signature Version 4].
</note>
[1]: docs.aws.amazon.com/general/latest/gr/signature-version-4.html
@option params [required, String] :saml_provider_arn
The Amazon Resource Name (ARN) of the SAML provider to delete.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_saml_provider({ saml_provider_arn: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSAMLProvider AWS API Documentation
@overload delete_saml_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3033 def delete_saml_provider(params = {}, options = {}) req = build_request(:delete_saml_provider, params) req.send_request(options) end
Deletes the specified server certificate.
For more information about working with server certificates, see
- Working with server certificates][1
-
in the *IAM
User
Guide*. This
topic also includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM
.
If you are using a server certificate with Elastic Load Balancing, deleting the certificate could have implications for your application. If Elastic Load Balancing doesn't detect the deletion of bound certificates, it may continue to use the certificates. This could cause Elastic Load Balancing to stop accepting traffic. We recommend that you remove the reference to the certificate from Elastic Load Balancing before using this command to delete the certificate. For more information, see [DeleteLoadBalancerListeners] in the *Elastic Load Balancing API Reference*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html [2]: docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html
@option params [required, String] :server_certificate_name
The name of the server certificate you want to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_server_certificate({ server_certificate_name: "serverCertificateNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServerCertificate AWS API Documentation
@overload delete_server_certificate
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3137 def delete_server_certificate(params = {}, options = {}) req = build_request(:delete_server_certificate, params) req.send_request(options) end
Submits a service-linked role deletion request and returns a `DeletionTaskId`, which you can use to check the status of the deletion. Before you call this operation, confirm that the role has no active sessions and that any resources used by the role in the linked service are deleted. If you call this operation more than once for the same service-linked role and an earlier deletion task is not complete, then the `DeletionTaskId` of the earlier request is returned.
If you submit a deletion request for a service-linked role whose linked service is still accessing a resource, then the deletion task fails. If it fails, the GetServiceLinkedRoleDeletionStatus operation returns the reason for the failure, usually including the resources that must be deleted. To delete the service-linked role, you must first remove those resources from the linked service and then submit the deletion request again. Resources are specific to the service that is linked to the role. For more information about removing resources from a service, see the [Amazon Web Services documentation] for your service.
For more information about service-linked roles, see [Roles terms and concepts: Amazon Web Services service-linked role] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/ [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role
@option params [required, String] :role_name
The name of the service-linked role to be deleted.
@return [Types::DeleteServiceLinkedRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::DeleteServiceLinkedRoleResponse#deletion_task_id #deletion_task_id} => String
@example Request syntax with placeholder values
resp = client.delete_service_linked_role({ role_name: "roleNameType", # required })
@example Response structure
resp.deletion_task_id #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceLinkedRole AWS API Documentation
@overload delete_service_linked_role
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3191 def delete_service_linked_role(params = {}, options = {}) req = build_request(:delete_service_linked_role, params) req.send_request(options) end
Deletes the specified service-specific credential.
@option params [String] :user_name
The name of the IAM user associated with the service-specific credential. If this value is not specified, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :service_specific_credential_id
The unique identifier of the service-specific credential. You can get this value by calling ListServiceSpecificCredentials. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_service_specific_credential({ user_name: "userNameType", service_specific_credential_id: "serviceSpecificCredentialId", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceSpecificCredential AWS API Documentation
@overload delete_service_specific_credential
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3237 def delete_service_specific_credential(params = {}, options = {}) req = build_request(:delete_service_specific_credential, params) req.send_request(options) end
Deletes a signing certificate associated with the specified IAM
user.
If you do not specify a user name, IAM
determines the user name implicitly based on the Amazon Web Services access key ID signing the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated IAM
users.
@option params [String] :user_name
The name of the user the signing certificate belongs to. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :certificate_id
The ID of the signing certificate to delete. The format of this parameter, as described by its [regex][1] pattern, is a string of characters that can be upper- or lower-cased letters or digits. [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete a signing certificate for an IAM
user
# The following command deletes the specified signing certificate for the IAM user named Anika. resp = client.delete_signing_certificate({ certificate_id: "TA7SMP42TDN5Z26OBPJE7EXAMPLE", user_name: "Anika", })
@example Request syntax with placeholder values
resp = client.delete_signing_certificate({ user_name: "existingUserNameType", certificate_id: "certificateIdType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSigningCertificate AWS API Documentation
@overload delete_signing_certificate
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3296 def delete_signing_certificate(params = {}, options = {}) req = build_request(:delete_signing_certificate, params) req.send_request(options) end
Deletes the specified SSH public key.
The SSH public key deleted by this operation is used only for authenticating the associated IAM
user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see [Set up CodeCommit for SSH connections] in the *CodeCommit User
Guide*.
[1]: docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
@option params [required, String] :user_name
The name of the IAM user associated with the SSH public key. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :ssh_public_key_id
The unique identifier for the SSH public key. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_ssh_public_key({ user_name: "userNameType", # required ssh_public_key_id: "publicKeyIdType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSSHPublicKey AWS API Documentation
@overload delete_ssh_public_key
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3086 def delete_ssh_public_key(params = {}, options = {}) req = build_request(:delete_ssh_public_key, params) req.send_request(options) end
Deletes the specified IAM
user. Unlike the Management Console, when you delete a user programmatically, you must delete the items attached to the user manually, or the deletion fails. For more information, see [Deleting an IAM
user]. Before attempting to delete a user, remove the following items:
-
Password (DeleteLoginProfile)
-
Access keys (DeleteAccessKey)
-
Signing certificate (DeleteSigningCertificate)
-
SSH public key (DeleteSSHPublicKey)
-
Git credentials (DeleteServiceSpecificCredential)
-
Multi-factor authentication (MFA) device (DeactivateMFADevice, DeleteVirtualMFADevice)
-
Inline policies (DeleteUserPolicy)
-
Attached managed policies (DetachUserPolicy)
-
Group
memberships (RemoveUserFromGroup)
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting_cli
@option params [required, String] :user_name
The name of the user to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete an IAM
user
# The following command removes the IAM user named Bob from the current account. resp = client.delete_user({ user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.delete_user({ user_name: "existingUserNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUser AWS API Documentation
@overload delete_user
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3363 def delete_user(params = {}, options = {}) req = build_request(:delete_user, params) req.send_request(options) end
Deletes the permissions boundary for the specified IAM
user.
Deleting the permissions boundary for a user might increase its permissions by allowing the user to perform all the actions granted in its permissions policies.
@option params [required, String] :user_name
The name (friendly name, not ARN) of the IAM user from which you want to remove the permissions boundary.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.delete_user_permissions_boundary({ user_name: "userNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserPermissionsBoundary AWS API Documentation
@overload delete_user_permissions_boundary
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3390 def delete_user_permissions_boundary(params = {}, options = {}) req = build_request(:delete_user_permissions_boundary, params) req.send_request(options) end
Deletes the specified inline policy that is embedded in the specified IAM
user.
A user can also have managed policies attached to it. To detach a managed policy from a user, use DetachUserPolicy. For more information about policies, refer to [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :user_name
The name (friendly name, not ARN) identifying the user that the policy is embedded in. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_name
The name identifying the policy document to delete. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To remove a policy from an IAM
user
# The following delete-user-policy command removes the specified policy from the IAM user named Juan: resp = client.delete_user_policy({ policy_name: "ExamplePolicy", user_name: "Juan", })
@example Request syntax with placeholder values
resp = client.delete_user_policy({ user_name: "existingUserNameType", # required policy_name: "policyNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserPolicy AWS API Documentation
@overload delete_user_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3455 def delete_user_policy(params = {}, options = {}) req = build_request(:delete_user_policy, params) req.send_request(options) end
Deletes a virtual MFA device.
<note markdown=“1”> You must deactivate a user's virtual MFA device before you can delete it. For information about deactivating MFA devices, see DeactivateMFADevice.
</note>
@option params [required, String] :serial_number
The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the same as the ARN. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To remove a virtual MFA device
# The following delete-virtual-mfa-device command removes the specified MFA device from the current AWS account. resp = client.delete_virtual_mfa_device({ serial_number: "arn:aws:iam::123456789012:mfa/ExampleName", })
@example Request syntax with placeholder values
resp = client.delete_virtual_mfa_device({ serial_number: "serialNumberType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteVirtualMFADevice AWS API Documentation
@overload delete_virtual_mfa_device
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3502 def delete_virtual_mfa_device(params = {}, options = {}) req = build_request(:delete_virtual_mfa_device, params) req.send_request(options) end
Removes the specified managed policy from the specified IAM
group.
A group can also have inline policies embedded with it. To delete an inline policy, use DeleteGroupPolicy. For information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :group_name
The name (friendly name, not ARN) of the IAM group to detach the policy from. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.detach_group_policy({ group_name: "groupNameType", # required policy_arn: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachGroupPolicy AWS API Documentation
@overload detach_group_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3553 def detach_group_policy(params = {}, options = {}) req = build_request(:detach_group_policy, params) req.send_request(options) end
Removes the specified managed policy from the specified role.
A role can also have inline policies embedded with it. To delete an inline policy, use DeleteRolePolicy. For information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :role_name
The name (friendly name, not ARN) of the IAM role to detach the policy from. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.detach_role_policy({ role_name: "roleNameType", # required policy_arn: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachRolePolicy AWS API Documentation
@overload detach_role_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3604 def detach_role_policy(params = {}, options = {}) req = build_request(:detach_role_policy, params) req.send_request(options) end
Removes the specified managed policy from the specified user.
A user can also have inline policies embedded with it. To delete an inline policy, use DeleteUserPolicy. For information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :user_name
The name (friendly name, not ARN) of the IAM user to detach the policy from. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy you want to detach. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.detach_user_policy({ user_name: "userNameType", # required policy_arn: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachUserPolicy AWS API Documentation
@overload detach_user_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3655 def detach_user_policy(params = {}, options = {}) req = build_request(:detach_user_policy, params) req.send_request(options) end
Enables the specified MFA device and associates it with the specified IAM
user. When enabled, the MFA device is required for every subsequent login by the IAM
user associated with the device.
@option params [required, String] :user_name
The name of the IAM user for whom you want to enable the MFA device. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :serial_number
The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: =,.@:/- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :authentication_code_1
An authentication code emitted by the device. The format for this parameter is a string of six digits. Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can [resync the device][1]. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html
@option params [required, String] :authentication_code_2
A subsequent authentication code emitted by the device. The format for this parameter is a string of six digits. Submit your request immediately after generating the authentication codes. If you generate the codes and then wait too long to submit the request, the MFA device successfully associates with the user but the MFA device becomes out of sync. This happens because time-based one-time passwords (TOTP) expire after a short period of time. If this happens, you can [resync the device][1]. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_sync.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.enable_mfa_device({ user_name: "existingUserNameType", # required serial_number: "serialNumberType", # required authentication_code_1: "authenticationCodeType", # required authentication_code_2: "authenticationCodeType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/EnableMFADevice AWS API Documentation
@overload enable_mfa_device
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3736 def enable_mfa_device(params = {}, options = {}) req = build_request(:enable_mfa_device, params) req.send_request(options) end
Generates a credential report for the account. For more information about the credential report, see [Getting credential reports] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html
@return [Types::GenerateCredentialReportResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GenerateCredentialReportResponse#state #state} => String * {Types::GenerateCredentialReportResponse#description #description} => String
@example Response structure
resp.state #=> String, one of "STARTED", "INPROGRESS", "COMPLETE" resp.description #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GenerateCredentialReport AWS API Documentation
@overload generate_credential_report
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3763 def generate_credential_report(params = {}, options = {}) req = build_request(:generate_credential_report, params) req.send_request(options) end
Generates a report for service last accessed data for Organizations. You can generate a report for any entities (organization root, organizational unit, or account) or policies in your organization.
To call this operation, you must be signed in using your Organizations management account credentials. You can use your long-term IAM
user or root user credentials, or temporary credentials from assuming an IAM
role. SCPs must be enabled for your organization root. You must have the required IAM
and Organizations permissions. For more information, see [Refining permissions using service last accessed data] in the *IAM User
Guide*.
You can generate a service last accessed data report for entities by specifying only the entity's path. This data includes a list of services that are allowed by any service control policies (SCPs) that apply to the entity.
You can generate a service last accessed data report for a policy by specifying an entity's path and an optional Organizations policy ID. This data includes a list of services that are allowed by the specified SCP.
For each service in both report types, the data includes the most recent account activity that the policy allows to account principals in the entity or the entity's children. For important information about the data, reporting period, permissions required, troubleshooting, and supported Regions see [Reducing permissions using service last accessed data] in the *IAM User
Guide*.
The data includes all attempts to access Amazon Web Services, not just the successful ones. This includes all attempts that were made using the Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools. An unexpected entry in the service last accessed data does not mean that an account has been compromised, because the request might have been denied. Refer to your CloudTrail logs as the authoritative source for information about all API calls and whether they were successful or denied access. For more information, see [Logging IAM
events with CloudTrail] in the *IAM User
Guide*.
This operation returns a `JobId`. Use this parameter in the ` GetOrganizationsAccessReport ` operation to check the status of the report generation. To check the status of this request, use the `JobId` parameter in the ` GetOrganizationsAccessReport ` operation and test the `JobStatus` response parameter. When the job is complete, you can retrieve the report.
To generate a service last accessed data report for entities, specify an entity path without specifying the optional Organizations policy ID. The type of entity that you specify determines the data returned in the report.
-
Root – When you specify the organizations root as the entity, the resulting report lists all of the services allowed by SCPs that are attached to your root. For each service, the report includes data for all accounts in your organization except the management account, because the management account is not limited by SCPs.
-
OU – When you specify an organizational unit (OU) as the entity, the resulting report lists all of the services allowed by SCPs that are attached to the OU and its parents. For each service, the report includes data for all accounts in the OU or its children. This data excludes the management account, because the management account is not limited by SCPs.
-
**management account** – When you specify the management account, the resulting report lists all Amazon Web Services services, because the management account is not limited by SCPs. For each service, the report includes data for only the management account.
-
Account – When you specify another account as the entity, the resulting report lists all of the services allowed by SCPs that are attached to the account and its parents. For each service, the report includes data for only the specified account.
To generate a service last accessed data report for policies, specify an entity path and the optional Organizations policy ID. The type of entity that you specify determines the data returned for each service.
-
Root – When you specify the root entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for all accounts in your organization to which the SCP applies. This data excludes the management account, because the management account is not limited by SCPs. If the SCP is not attached to any entities in the organization, then the report will return a list of services with no data.
-
OU – When you specify an OU entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for all accounts in the OU or its children to which the SCP applies. This means that other accounts outside the OU that are affected by the SCP might not be included in the data. This data excludes the management account, because the management account is not limited by SCPs. If the SCP is not attached to the OU or one of its children, the report will return a list of services with no data.
-
**management account** – When you specify the management account, the resulting report lists all Amazon Web Services services, because the management account is not limited by SCPs. If you specify a policy ID in the CLI or API, the policy is ignored. For each service, the report includes data for only the management account.
-
Account – When you specify another account entity and a policy ID, the resulting report lists all of the services that are allowed by the specified SCP. For each service, the report includes data for only the specified account. This means that other accounts in the organization that are affected by the SCP might not be included in the data. If the SCP is not attached to the account, the report will return a list of services with no data.
<note markdown=“1”> Service last accessed data does not use other policy types when determining whether a principal could access a service. These other policy types include identity-based policies, resource-based policies, access control lists, IAM
permissions boundaries, and STS assume role policies. It only applies SCP logic. For more about the evaluation of policy types, see [Evaluating policies] in the *IAM User
Guide*.
</note>
For more information about service last accessed data, see [Reducing policy scope by viewing user activity] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics
@option params [required, String] :entity_path
The path of the Organizations entity (root, OU, or account). You can build an entity path using the known structure of your organization. For example, assume that your account ID is `123456789012` and its parent OU ID is `ou-rge0-awsabcde`. The organization root ID is `r-f6g7h8i9j0example` and your organization ID is `o-a1b2c3d4e5`. Your entity path is `o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-rge0-awsabcde/123456789012`.
@option params [String] :organizations_policy_id
The identifier of the Organizations service control policy (SCP). This parameter is optional. This ID is used to generate information about when an account principal that is limited by the SCP attempted to access an Amazon Web Services service.
@return [Types::GenerateOrganizationsAccessReportResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GenerateOrganizationsAccessReportResponse#job_id #job_id} => String
@example Example: To generate a service last accessed data report for an organizational unit
# The following operation generates a report for the organizational unit ou-rge0-awexample resp = client.generate_organizations_access_report({ entity_path: "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-1a2b3c-k9l8m7n6o5example", }) resp.to_h outputs the following: { job_id: "examplea-1234-b567-cde8-90fg123abcd4", }
@example Request syntax with placeholder values
resp = client.generate_organizations_access_report({ entity_path: "organizationsEntityPathType", # required organizations_policy_id: "organizationsPolicyIdType", })
@example Response structure
resp.job_id #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GenerateOrganizationsAccessReport AWS API Documentation
@overload generate_organizations_access_report
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 3948 def generate_organizations_access_report(params = {}, options = {}) req = build_request(:generate_organizations_access_report, params) req.send_request(options) end
Generates a report that includes details about when an IAM
resource (user, group, role, or policy) was last used in an attempt to access Amazon Web Services services. Recent activity usually appears within four hours. IAM
reports activity for the last 365 days, or less if your Region began supporting this feature within the last year. For more information, see [Regions where data is tracked].
The service last accessed data includes all attempts to access an Amazon Web Services API, not just the successful ones. This includes all attempts that were made using the Management Console, the Amazon Web Services API through any of the SDKs, or any of the command line tools. An unexpected entry in the service last accessed data does not mean that your account has been compromised, because the request might have been denied. Refer to your CloudTrail logs as the authoritative source for information about all API calls and whether they were successful or denied access. For more information, see [Logging IAM
events with CloudTrail] in the *IAM User
Guide*.
The `GenerateServiceLastAccessedDetails` operation returns a `JobId`. Use this parameter in the following operations to retrieve the following details from your report:
-
GetServiceLastAccessedDetails – Use this operation for users, groups, roles, or policies to list every Amazon Web Services service that the resource could access using permissions policies. For each service, the response includes information about the most recent access attempt.
The `JobId` returned by `GenerateServiceLastAccessedDetail` must be used by the same role within a session, or by the same user when used to call `GetServiceLastAccessedDetail`.
-
GetServiceLastAccessedDetailsWithEntities – Use this operation for groups and policies to list information about the associated entities (users or roles) that attempted to access a specific Amazon Web Services service.
To check the status of the `GenerateServiceLastAccessedDetails` request, use the `JobId` parameter in the same operations and test the `JobStatus` response parameter.
For additional information about the permissions policies that allow an identity (user, group, or role) to access specific services, use the ListPoliciesGrantingServiceAccess operation.
<note markdown=“1”> Service last accessed data does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM
permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see [Evaluating policies] in the *IAM User
Guide*.
</note>
For more information about service and action last accessed data, see
- Reducing permissions using service last accessed data][4
-
in the *IAM
User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html#access-advisor_tracking-period [2]: docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics [4]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
@option params [required, String] :arn
The ARN of the IAM resource (user, group, role, or managed policy) used to generate information about when the resource was last used in an attempt to access an Amazon Web Services service.
@option params [String] :granularity
The level of detail that you want to generate. You can specify whether you want to generate information about the last attempt to access services or actions. If you specify service-level granularity, this operation generates only service data. If you specify action-level granularity, it generates service and action data. If you don't include this optional parameter, the operation generates service data.
@return [Types::GenerateServiceLastAccessedDetailsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GenerateServiceLastAccessedDetailsResponse#job_id #job_id} => String
@example Example: To generate a service last accessed data report for a policy
# The following operation generates a report for the policy: ExamplePolicy1 resp = client.generate_service_last_accessed_details({ arn: "arn:aws:iam::123456789012:policy/ExamplePolicy1", }) resp.to_h outputs the following: { job_id: "examplef-1305-c245-eba4-71fe298bcda7", }
@example Request syntax with placeholder values
resp = client.generate_service_last_accessed_details({ arn: "arnType", # required granularity: "SERVICE_LEVEL", # accepts SERVICE_LEVEL, ACTION_LEVEL })
@example Response structure
resp.job_id #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GenerateServiceLastAccessedDetails AWS API Documentation
@overload generate_service_last_accessed_details
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4065 def generate_service_last_accessed_details(params = {}, options = {}) req = build_request(:generate_service_last_accessed_details, params) req.send_request(options) end
Retrieves information about when the specified access key was last used. The information includes the date and time of last use, along with the Amazon Web Services service and Region that were specified in the last request made with that key.
@option params [required, String] :access_key_id
The identifier of an access key. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@return [Types::GetAccessKeyLastUsedResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetAccessKeyLastUsedResponse#user_name #user_name} => String * {Types::GetAccessKeyLastUsedResponse#access_key_last_used #access_key_last_used} => Types::AccessKeyLastUsed
@example Request syntax with placeholder values
resp = client.get_access_key_last_used({ access_key_id: "accessKeyIdType", # required })
@example Response structure
resp.user_name #=> String resp.access_key_last_used.last_used_date #=> Time resp.access_key_last_used.service_name #=> String resp.access_key_last_used.region #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccessKeyLastUsed AWS API Documentation
@overload get_access_key_last_used
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4108 def get_access_key_last_used(params = {}, options = {}) req = build_request(:get_access_key_last_used, params) req.send_request(options) end
Retrieves the password policy for the account. This tells you the complexity requirements and mandatory rotation periods for the IAM
user passwords in your account. For more information about using a password policy, see [Managing an IAM
password policy].
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html
@return [Types::GetAccountPasswordPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetAccountPasswordPolicyResponse#password_policy #password_policy} => Types::PasswordPolicy
@example Example: To see the current account password policy
# The following command displays details about the password policy for the current AWS account. resp = client.get_account_password_policy({ }) resp.to_h outputs the following: { password_policy: { allow_users_to_change_password: false, expire_passwords: false, hard_expiry: false, max_password_age: 90, minimum_password_length: 8, password_reuse_prevention: 12, require_lowercase_characters: false, require_numbers: true, require_symbols: true, require_uppercase_characters: false, }, }
@example Response structure
resp.password_policy.minimum_password_length #=> Integer resp.password_policy.require_symbols #=> Boolean resp.password_policy.require_numbers #=> Boolean resp.password_policy.require_uppercase_characters #=> Boolean resp.password_policy.require_lowercase_characters #=> Boolean resp.password_policy.allow_users_to_change_password #=> Boolean resp.password_policy.expire_passwords #=> Boolean resp.password_policy.max_password_age #=> Integer resp.password_policy.password_reuse_prevention #=> Integer resp.password_policy.hard_expiry #=> Boolean
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountPasswordPolicy AWS API Documentation
@overload get_account_password_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4341 def get_account_password_policy(params = {}, options = {}) req = build_request(:get_account_password_policy, params) req.send_request(options) end
Retrieves information about IAM
entity usage and IAM
quotas in the Amazon Web Services account.
For information about IAM
quotas, see [IAM and STS quotas] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html
@return [Types::GetAccountSummaryResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetAccountSummaryResponse#summary_map #summary_map} => Hash<String,Integer>
@example Example: To get information about IAM
entity quotas and usage in the current account
# The following command returns information about the IAM entity quotas and usage in the current AWS account. resp = client.get_account_summary({ }) resp.to_h outputs the following: { summary_map: { "AccessKeysPerUserQuota" => 2, "AccountAccessKeysPresent" => 1, "AccountMFAEnabled" => 0, "AccountSigningCertificatesPresent" => 0, "AttachedPoliciesPerGroupQuota" => 10, "AttachedPoliciesPerRoleQuota" => 10, "AttachedPoliciesPerUserQuota" => 10, "GlobalEndpointTokenVersion" => 2, "GroupPolicySizeQuota" => 5120, "Groups" => 15, "GroupsPerUserQuota" => 10, "GroupsQuota" => 100, "MFADevices" => 6, "MFADevicesInUse" => 3, "Policies" => 8, "PoliciesQuota" => 1000, "PolicySizeQuota" => 5120, "PolicyVersionsInUse" => 22, "PolicyVersionsInUseQuota" => 10000, "ServerCertificates" => 1, "ServerCertificatesQuota" => 20, "SigningCertificatesPerUserQuota" => 2, "UserPolicySizeQuota" => 2048, "Users" => 27, "UsersQuota" => 5000, "VersionsPerPolicyQuota" => 5, }, }
@example Response structure
resp.summary_map #=> Hash resp.summary_map["summaryKeyType"] #=> Integer
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountSummary AWS API Documentation
@overload get_account_summary
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4409 def get_account_summary(params = {}, options = {}) req = build_request(:get_account_summary, params) req.send_request(options) end
Gets a list of all of the context keys referenced in the input policies. The policies are supplied as a list of one or more strings. To get the context keys from policies associated with an IAM
user, group, or role, use GetContextKeysForPrincipalPolicy.
Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. Context keys can be evaluated by testing against a value specified in an IAM
policy. Use `GetContextKeysForCustomPolicy` to understand what key names and values you must supply when you call SimulateCustomPolicy. Note that all parameters are shown in unencoded form here for clarity but must be URL encoded to be included as a part of a real HTML request.
@option params [required, Array<String>] :policy_input_list
A list of policies for which you want the list of context keys referenced in those policies. Each document is specified as a string containing the complete, valid JSON text of an IAM policy. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@return [Types::GetContextKeysForPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetContextKeysForPolicyResponse#context_key_names #context_key_names} => Array<String>
@example Request syntax with placeholder values
resp = client.get_context_keys_for_custom_policy({ policy_input_list: ["policyDocumentType"], # required })
@example Response structure
resp.context_key_names #=> Array resp.context_key_names[0] #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForCustomPolicy AWS API Documentation
@overload get_context_keys_for_custom_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4468 def get_context_keys_for_custom_policy(params = {}, options = {}) req = build_request(:get_context_keys_for_custom_policy, params) req.send_request(options) end
Gets a list of all of the context keys referenced in all the IAM
policies that are attached to the specified IAM
entity. The entity can be an IAM
user, group, or role. If you specify a user, then the request also includes all of the policies attached to groups that the user is a member of.
You can optionally include a list of one or more additional policies, specified as strings. If you want to include only a list of policies by string, use GetContextKeysForCustomPolicy instead.
Note: This operation discloses information about the permissions granted to other users. If you do not want users to see other user's permissions, then consider allowing them to use GetContextKeysForCustomPolicy instead.
Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. Context keys can be evaluated by testing against a value in an IAM
policy. Use GetContextKeysForPrincipalPolicy to understand what key names and values you must supply when you call SimulatePrincipalPolicy.
@option params [required, String] :policy_source_arn
The ARN of a user, group, or role whose policies contain the context keys that you want listed. If you specify a user, the list includes context keys that are found in all policies that are attached to the user. The list also includes all groups that the user is a member of. If you pick a group or a role, then it includes only those context keys that are found in policies attached to that entity. Note that all parameters are shown in unencoded form here for clarity, but must be URL encoded to be included as a part of a real HTML request. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [Array<String>] :policy_input_list
An optional list of additional policies for which you want the list of context keys that are referenced. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@return [Types::GetContextKeysForPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetContextKeysForPolicyResponse#context_key_names #context_key_names} => Array<String>
@example Request syntax with placeholder values
resp = client.get_context_keys_for_principal_policy({ policy_source_arn: "arnType", # required policy_input_list: ["policyDocumentType"], })
@example Response structure
resp.context_key_names #=> Array resp.context_key_names[0] #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForPrincipalPolicy AWS API Documentation
@overload get_context_keys_for_principal_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4552 def get_context_keys_for_principal_policy(params = {}, options = {}) req = build_request(:get_context_keys_for_principal_policy, params) req.send_request(options) end
Retrieves a credential report for the account. For more information about the credential report, see [Getting credential reports] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html
@return [Types::GetCredentialReportResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetCredentialReportResponse#content #content} => String * {Types::GetCredentialReportResponse#report_format #report_format} => String * {Types::GetCredentialReportResponse#generated_time #generated_time} => Time
@example Response structure
resp.content #=> String resp.report_format #=> String, one of "text/csv" resp.generated_time #=> Time
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetCredentialReport AWS API Documentation
@overload get_credential_report
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4581 def get_credential_report(params = {}, options = {}) req = build_request(:get_credential_report, params) req.send_request(options) end
Returns a list of IAM
users that are in the specified IAM
group. You can paginate the results using the `MaxItems` and `Marker` parameters.
@option params [required, String] :group_name
The name of the group. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::GetGroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetGroupResponse#group #group} => Types::Group * {Types::GetGroupResponse#users #users} => Array<Types::User> * {Types::GetGroupResponse#is_truncated #is_truncated} => Boolean * {Types::GetGroupResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.get_group({ group_name: "groupNameType", # required marker: "markerType", max_items: 1, })
@example Response structure
resp.group.path #=> String resp.group.group_name #=> String resp.group.group_id #=> String resp.group.arn #=> String resp.group.create_date #=> Time resp.users #=> Array resp.users[0].path #=> String resp.users[0].user_name #=> String resp.users[0].user_id #=> String resp.users[0].arn #=> String resp.users[0].create_date #=> Time resp.users[0].password_last_used #=> Time resp.users[0].permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.users[0].permissions_boundary.permissions_boundary_arn #=> String resp.users[0].tags #=> Array resp.users[0].tags[0].key #=> String resp.users[0].tags[0].value #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroup AWS API Documentation
@overload get_group
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4661 def get_group(params = {}, options = {}) req = build_request(:get_group, params) req.send_request(options) end
Retrieves the specified inline policy document that is embedded in the specified IAM
group.
<note markdown=“1”> Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the `decode` method of the `java.net.URLDecoder` utility class in the Java SDK. Other languages and SDKs provide similar functionality.
</note>
An IAM
group can also have managed policies attached to it. To retrieve a managed policy document that is attached to a group, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.
For more information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: tools.ietf.org/html/rfc3986 [2]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :group_name
The name of the group the policy is associated with. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_name
The name of the policy document to get. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Types::GetGroupPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetGroupPolicyResponse#group_name #group_name} => String * {Types::GetGroupPolicyResponse#policy_name #policy_name} => String * {Types::GetGroupPolicyResponse#policy_document #policy_document} => String
@example Request syntax with placeholder values
resp = client.get_group_policy({ group_name: "groupNameType", # required policy_name: "policyNameType", # required })
@example Response structure
resp.group_name #=> String resp.policy_name #=> String resp.policy_document #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupPolicy AWS API Documentation
@overload get_group_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4737 def get_group_policy(params = {}, options = {}) req = build_request(:get_group_policy, params) req.send_request(options) end
Retrieves information about the specified instance profile, including the instance profile's path, GUID, ARN, and role. For more information about instance profiles, see [About instance profiles] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html
@option params [required, String] :instance_profile_name
The name of the instance profile to get information about. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Types::GetInstanceProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetInstanceProfileResponse#instance_profile #instance_profile} => Types::InstanceProfile
@example Example: To get information about an instance profile
# The following command gets information about the instance profile named ExampleInstanceProfile. resp = client.get_instance_profile({ instance_profile_name: "ExampleInstanceProfile", }) resp.to_h outputs the following: { instance_profile: { arn: "arn:aws:iam::336924118301:instance-profile/ExampleInstanceProfile", create_date: Time.parse("2013-06-12T23:52:02Z"), instance_profile_id: "AID2MAB8DPLSRHEXAMPLE", instance_profile_name: "ExampleInstanceProfile", path: "/", roles: [ { arn: "arn:aws:iam::336924118301:role/Test-Role", assume_role_policy_document: "<URL-encoded-JSON>", create_date: Time.parse("2013-01-09T06:33:26Z"), path: "/", role_id: "AIDGPMS9RO4H3FEXAMPLE", role_name: "Test-Role", }, ], }, }
@example Request syntax with placeholder values
resp = client.get_instance_profile({ instance_profile_name: "instanceProfileNameType", # required })
@example Response structure
resp.instance_profile.path #=> String resp.instance_profile.instance_profile_name #=> String resp.instance_profile.instance_profile_id #=> String resp.instance_profile.arn #=> String resp.instance_profile.create_date #=> Time resp.instance_profile.roles #=> Array resp.instance_profile.roles[0].path #=> String resp.instance_profile.roles[0].role_name #=> String resp.instance_profile.roles[0].role_id #=> String resp.instance_profile.roles[0].arn #=> String resp.instance_profile.roles[0].create_date #=> Time resp.instance_profile.roles[0].assume_role_policy_document #=> String resp.instance_profile.roles[0].description #=> String resp.instance_profile.roles[0].max_session_duration #=> Integer resp.instance_profile.roles[0].permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.instance_profile.roles[0].permissions_boundary.permissions_boundary_arn #=> String resp.instance_profile.roles[0].tags #=> Array resp.instance_profile.roles[0].tags[0].key #=> String resp.instance_profile.roles[0].tags[0].value #=> String resp.instance_profile.roles[0].role_last_used.last_used_date #=> Time resp.instance_profile.roles[0].role_last_used.region #=> String resp.instance_profile.tags #=> Array resp.instance_profile.tags[0].key #=> String resp.instance_profile.tags[0].value #=> String
The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
* instance_profile_exists
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetInstanceProfile AWS API Documentation
@overload get_instance_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4839 def get_instance_profile(params = {}, options = {}) req = build_request(:get_instance_profile, params) req.send_request(options) end
Retrieves the user name for the specified IAM
user. A login profile is created when you create a password for the user to access the Management Console. If the user does not exist or does not have a password, the operation returns a 404 (`NoSuchEntity`) error.
If you create an IAM
user with access to the console, the `CreateDate` reflects the date you created the initial password for the user.
If you create an IAM
user with programmatic access, and then later add a password for the user to access the Management Console, the `CreateDate` reflects the initial password creation date. A user with programmatic access does not have a login profile unless you create a password for the user to access the Management Console.
@option params [required, String] :user_name
The name of the user whose login profile you want to retrieve. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Types::GetLoginProfileResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetLoginProfileResponse#login_profile #login_profile} => Types::LoginProfile
@example Example: To get password information for an IAM
user
# The following command gets information about the password for the IAM user named Anika. resp = client.get_login_profile({ user_name: "Anika", }) resp.to_h outputs the following: { login_profile: { create_date: Time.parse("2012-09-21T23:03:39Z"), user_name: "Anika", }, }
@example Request syntax with placeholder values
resp = client.get_login_profile({ user_name: "userNameType", # required })
@example Response structure
resp.login_profile.user_name #=> String resp.login_profile.create_date #=> Time resp.login_profile.password_reset_required #=> Boolean
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetLoginProfile AWS API Documentation
@overload get_login_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4907 def get_login_profile(params = {}, options = {}) req = build_request(:get_login_profile, params) req.send_request(options) end
Returns information about the specified OpenID Connect (OIDC) provider resource object in IAM
.
@option params [required, String] :open_id_connect_provider_arn
The Amazon Resource Name (ARN) of the OIDC provider resource object in IAM to get information for. You can get a list of OIDC provider resource ARNs by using the ListOpenIDConnectProviders operation. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Types::GetOpenIDConnectProviderResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetOpenIDConnectProviderResponse#url #url} => String * {Types::GetOpenIDConnectProviderResponse#client_id_list #client_id_list} => Array<String> * {Types::GetOpenIDConnectProviderResponse#thumbprint_list #thumbprint_list} => Array<String> * {Types::GetOpenIDConnectProviderResponse#create_date #create_date} => Time * {Types::GetOpenIDConnectProviderResponse#tags #tags} => Array<Types::Tag>
@example Request syntax with placeholder values
resp = client.get_open_id_connect_provider({ open_id_connect_provider_arn: "arnType", # required })
@example Response structure
resp.url #=> String resp.client_id_list #=> Array resp.client_id_list[0] #=> String resp.thumbprint_list #=> Array resp.thumbprint_list[0] #=> String resp.create_date #=> Time resp.tags #=> Array resp.tags[0].key #=> String resp.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetOpenIDConnectProvider AWS API Documentation
@overload get_open_id_connect_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 4957 def get_open_id_connect_provider(params = {}, options = {}) req = build_request(:get_open_id_connect_provider, params) req.send_request(options) end
Retrieves the service last accessed data report for Organizations that was previously generated using the ` GenerateOrganizationsAccessReport ` operation. This operation retrieves the status of your report job and the report contents.
Depending on the parameters that you passed when you generated the report, the data returned could include different information. For details, see GenerateOrganizationsAccessReport.
To call this operation, you must be signed in to the management account in your organization. SCPs must be enabled for your organization root. You must have permissions to perform this operation. For more information, see [Refining permissions using service last accessed data] in the *IAM User
Guide*.
For each service that principals in an account (root users, IAM
users, or IAM
roles) could access using SCPs, the operation returns details about the most recent access attempt. If there was no attempt, the service is listed without details about the most recent attempt to access the service. If the operation fails, it returns the reason that it failed.
By default, the list is sorted by service namespace.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
@option params [required, String] :job_id
The identifier of the request generated by the GenerateOrganizationsAccessReport operation.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [String] :sort_key
The key that is used to sort the results. If you choose the namespace key, the results are returned in alphabetical order. If you choose the time key, the results are sorted numerically by the date and time.
@return [Types::GetOrganizationsAccessReportResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetOrganizationsAccessReportResponse#job_status #job_status} => String * {Types::GetOrganizationsAccessReportResponse#job_creation_date #job_creation_date} => Time * {Types::GetOrganizationsAccessReportResponse#job_completion_date #job_completion_date} => Time * {Types::GetOrganizationsAccessReportResponse#number_of_services_accessible #number_of_services_accessible} => Integer * {Types::GetOrganizationsAccessReportResponse#number_of_services_not_accessed #number_of_services_not_accessed} => Integer * {Types::GetOrganizationsAccessReportResponse#access_details #access_details} => Array<Types::AccessDetail> * {Types::GetOrganizationsAccessReportResponse#is_truncated #is_truncated} => Boolean * {Types::GetOrganizationsAccessReportResponse#marker #marker} => String * {Types::GetOrganizationsAccessReportResponse#error_details #error_details} => Types::ErrorDetails
@example Example: To get details from a previously generated organizational unit report
# The following operation gets details about the report with the job ID: examplea-1234-b567-cde8-90fg123abcd4 resp = client.get_organizations_access_report({ job_id: "examplea-1234-b567-cde8-90fg123abcd4", }) resp.to_h outputs the following: { access_details: [ { entity_path: "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-1a2b3c-k9l8m7n6o5example/111122223333", last_authenticated_time: Time.parse("2019-05-25T16:29:52Z"), region: "us-east-1", service_name: "Amazon DynamoDB", service_namespace: "dynamodb", total_authenticated_entities: 2, }, { entity_path: "o-a1b2c3d4e5/r-f6g7h8i9j0example/ou-1a2b3c-k9l8m7n6o5example/123456789012", last_authenticated_time: Time.parse("2019-06-15T13:12:06Z"), region: "us-east-1", service_name: "AWS Identity and Access Management", service_namespace: "iam", total_authenticated_entities: 4, }, { service_name: "Amazon Simple Storage Service", service_namespace: "s3", total_authenticated_entities: 0, }, ], is_truncated: false, job_completion_date: Time.parse("2019-06-18T19:47:35.241Z"), job_creation_date: Time.parse("2019-06-18T19:47:31.466Z"), job_status: "COMPLETED", number_of_services_accessible: 3, number_of_services_not_accessed: 1, }
@example Request syntax with placeholder values
resp = client.get_organizations_access_report({ job_id: "jobIDType", # required max_items: 1, marker: "markerType", sort_key: "SERVICE_NAMESPACE_ASCENDING", # accepts SERVICE_NAMESPACE_ASCENDING, SERVICE_NAMESPACE_DESCENDING, LAST_AUTHENTICATED_TIME_ASCENDING, LAST_AUTHENTICATED_TIME_DESCENDING })
@example Response structure
resp.job_status #=> String, one of "IN_PROGRESS", "COMPLETED", "FAILED" resp.job_creation_date #=> Time resp.job_completion_date #=> Time resp.number_of_services_accessible #=> Integer resp.number_of_services_not_accessed #=> Integer resp.access_details #=> Array resp.access_details[0].service_name #=> String resp.access_details[0].service_namespace #=> String resp.access_details[0].region #=> String resp.access_details[0].entity_path #=> String resp.access_details[0].last_authenticated_time #=> Time resp.access_details[0].total_authenticated_entities #=> Integer resp.is_truncated #=> Boolean resp.marker #=> String resp.error_details.message #=> String resp.error_details.code #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetOrganizationsAccessReport AWS API Documentation
@overload get_organizations_access_report
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5102 def get_organizations_access_report(params = {}, options = {}) req = build_request(:get_organizations_access_report, params) req.send_request(options) end
Retrieves information about the specified managed policy, including the policy's default version and the total number of IAM
users, groups, and roles to which the policy is attached. To retrieve the list of the specific users, groups, and roles that the policy is attached to, use ListEntitiesForPolicy. This operation returns metadata about the policy. To retrieve the actual policy document for a specific version of the policy, use GetPolicyVersion.
This operation retrieves information about managed policies. To retrieve information about an inline policy that is embedded with an IAM
user, group, or role, use GetUserPolicy, GetGroupPolicy, or GetRolePolicy.
For more information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the managed policy that you want information about. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Types::GetPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetPolicyResponse#policy #policy} => Types::Policy
@example Request syntax with placeholder values
resp = client.get_policy({ policy_arn: "arnType", # required })
@example Response structure
resp.policy.policy_name #=> String resp.policy.policy_id #=> String resp.policy.arn #=> String resp.policy.path #=> String resp.policy.default_version_id #=> String resp.policy.attachment_count #=> Integer resp.policy.permissions_boundary_usage_count #=> Integer resp.policy.is_attachable #=> Boolean resp.policy.description #=> String resp.policy.create_date #=> Time resp.policy.update_date #=> Time resp.policy.tags #=> Array resp.policy.tags[0].key #=> String resp.policy.tags[0].value #=> String
The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
* policy_exists
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicy AWS API Documentation
@overload get_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5174 def get_policy(params = {}, options = {}) req = build_request(:get_policy, params) req.send_request(options) end
Retrieves information about the specified version of the specified managed policy, including the policy document.
<note markdown=“1”> Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the `decode` method of the `java.net.URLDecoder` utility class in the Java SDK. Other languages and SDKs provide similar functionality.
</note>
To list the available versions for a policy, use ListPolicyVersions.
This operation retrieves information about managed policies. To retrieve information about an inline policy that is embedded in a user, group, or role, use GetUserPolicy, GetGroupPolicy, or GetRolePolicy.
For more information about the types of policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
For more information about managed policy versions, see [Versioning for managed policies] in the *IAM User
Guide*.
[1]: tools.ietf.org/html/rfc3986 [2]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the managed policy that you want information about. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [required, String] :version_id
Identifies the policy version to retrieve. This parameter allows (through its [regex pattern][1]) a string of characters that consists of the lowercase letter 'v' followed by one or two digits, and optionally followed by a period '.' and a string of letters and digits. [1]: http://wikipedia.org/wiki/regex
@return [Types::GetPolicyVersionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetPolicyVersionResponse#policy_version #policy_version} => Types::PolicyVersion
@example Request syntax with placeholder values
resp = client.get_policy_version({ policy_arn: "arnType", # required version_id: "policyVersionIdType", # required })
@example Response structure
resp.policy_version.document #=> String resp.policy_version.version_id #=> String resp.policy_version.is_default_version #=> Boolean resp.policy_version.create_date #=> Time
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyVersion AWS API Documentation
@overload get_policy_version
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5254 def get_policy_version(params = {}, options = {}) req = build_request(:get_policy_version, params) req.send_request(options) end
Retrieves information about the specified role, including the role's path, GUID, ARN, and the role's trust policy that grants permission to assume the role. For more information about roles, see [Working with roles].
<note markdown=“1”> Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the `decode` method of the `java.net.URLDecoder` utility class in the Java SDK. Other languages and SDKs provide similar functionality.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html [2]: tools.ietf.org/html/rfc3986
@option params [required, String] :role_name
The name of the IAM role to get information about. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Types::GetRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetRoleResponse#role #role} => Types::Role
@example Example: To get information about an IAM
role
# The following command gets information about the role named Test-Role. resp = client.get_role({ role_name: "Test-Role", }) resp.to_h outputs the following: { role: { arn: "arn:aws:iam::123456789012:role/Test-Role", assume_role_policy_document: "<URL-encoded-JSON>", create_date: Time.parse("2013-04-18T05:01:58Z"), max_session_duration: 3600, path: "/", role_id: "AROADBQP57FF2AEXAMPLE", role_last_used: { last_used_date: Time.parse("2019-11-18T05:01:58Z"), region: "us-east-1", }, role_name: "Test-Role", }, }
@example Request syntax with placeholder values
resp = client.get_role({ role_name: "roleNameType", # required })
@example Response structure
resp.role.path #=> String resp.role.role_name #=> String resp.role.role_id #=> String resp.role.arn #=> String resp.role.create_date #=> Time resp.role.assume_role_policy_document #=> String resp.role.description #=> String resp.role.max_session_duration #=> Integer resp.role.permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.role.permissions_boundary.permissions_boundary_arn #=> String resp.role.tags #=> Array resp.role.tags[0].key #=> String resp.role.tags[0].value #=> String resp.role.role_last_used.last_used_date #=> Time resp.role.role_last_used.region #=> String
The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
* role_exists
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRole AWS API Documentation
@overload get_role
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5352 def get_role(params = {}, options = {}) req = build_request(:get_role, params) req.send_request(options) end
Retrieves the specified inline policy document that is embedded with the specified IAM
role.
<note markdown=“1”> Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the `decode` method of the `java.net.URLDecoder` utility class in the Java SDK. Other languages and SDKs provide similar functionality.
</note>
An IAM
role can also have managed policies attached to it. To retrieve a managed policy document that is attached to a role, use GetPolicy to determine the policy's default version, then use GetPolicyVersion to retrieve the policy document.
For more information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
For more information about roles, see [Using roles to delegate permissions and federate identities].
[1]: tools.ietf.org/html/rfc3986 [2]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html
@option params [required, String] :role_name
The name of the role associated with the policy. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_name
The name of the policy document to get. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Types::GetRolePolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetRolePolicyResponse#role_name #role_name} => String * {Types::GetRolePolicyResponse#policy_name #policy_name} => String * {Types::GetRolePolicyResponse#policy_document #policy_document} => String
@example Request syntax with placeholder values
resp = client.get_role_policy({ role_name: "roleNameType", # required policy_name: "policyNameType", # required })
@example Response structure
resp.role_name #=> String resp.policy_name #=> String resp.policy_document #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRolePolicy AWS API Documentation
@overload get_role_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5432 def get_role_policy(params = {}, options = {}) req = build_request(:get_role_policy, params) req.send_request(options) end
Returns the SAML provider metadocument that was uploaded when the IAM
SAML provider resource object was created or updated.
<note markdown=“1”> This operation requires [Signature Version 4].
</note>
[1]: docs.aws.amazon.com/general/latest/gr/signature-version-4.html
@option params [required, String] :saml_provider_arn
The Amazon Resource Name (ARN) of the SAML provider resource object in IAM to get information about. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Types::GetSAMLProviderResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetSAMLProviderResponse#saml_metadata_document #saml_metadata_document} => String * {Types::GetSAMLProviderResponse#create_date #create_date} => Time * {Types::GetSAMLProviderResponse#valid_until #valid_until} => Time * {Types::GetSAMLProviderResponse#tags #tags} => Array<Types::Tag>
@example Request syntax with placeholder values
resp = client.get_saml_provider({ saml_provider_arn: "arnType", # required })
@example Response structure
resp.saml_metadata_document #=> String resp.create_date #=> Time resp.valid_until #=> Time resp.tags #=> Array resp.tags[0].key #=> String resp.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSAMLProvider AWS API Documentation
@overload get_saml_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5485 def get_saml_provider(params = {}, options = {}) req = build_request(:get_saml_provider, params) req.send_request(options) end
Retrieves information about the specified server certificate stored in IAM
.
For more information about working with server certificates, see
- Working with server certificates][1
-
in the *IAM
User
Guide*. This
topic includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM
.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
@option params [required, String] :server_certificate_name
The name of the server certificate you want to retrieve information about. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Types::GetServerCertificateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetServerCertificateResponse#server_certificate #server_certificate} => Types::ServerCertificate
@example Request syntax with placeholder values
resp = client.get_server_certificate({ server_certificate_name: "serverCertificateNameType", # required })
@example Response structure
resp.server_certificate.server_certificate_metadata.path #=> String resp.server_certificate.server_certificate_metadata.server_certificate_name #=> String resp.server_certificate.server_certificate_metadata.server_certificate_id #=> String resp.server_certificate.server_certificate_metadata.arn #=> String resp.server_certificate.server_certificate_metadata.upload_date #=> Time resp.server_certificate.server_certificate_metadata.expiration #=> Time resp.server_certificate.certificate_body #=> String resp.server_certificate.certificate_chain #=> String resp.server_certificate.tags #=> Array resp.server_certificate.tags[0].key #=> String resp.server_certificate.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServerCertificate AWS API Documentation
@overload get_server_certificate
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5614 def get_server_certificate(params = {}, options = {}) req = build_request(:get_server_certificate, params) req.send_request(options) end
Retrieves a service last accessed report that was created using the `GenerateServiceLastAccessedDetails` operation. You can use the `JobId` parameter in `GetServiceLastAccessedDetails` to retrieve the status of your report job. When the report is complete, you can retrieve the generated report. The report includes a list of Amazon Web Services services that the resource (user, group, role, or managed policy) can access.
<note markdown=“1”> Service last accessed data does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM
permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see [Evaluating policies] in the *IAM User
Guide*.
</note>
For each service that the resource could access using permissions policies, the operation returns details about the most recent access attempt. If there was no attempt, the service is listed without details about the most recent attempt to access the service. If the operation fails, the `GetServiceLastAccessedDetails` operation returns the reason that it failed.
The `GetServiceLastAccessedDetails` operation returns a list of services. This list includes the number of entities that have attempted to access the service and the date and time of the last attempt. It also returns the ARN of the following entity, depending on the resource ARN that you used to generate the report:
-
User – Returns the user ARN that you used to generate the report
-
Group – Returns the ARN of the group member (user) that last attempted to access the service
-
Role – Returns the role ARN that you used to generate the report
-
Policy – Returns the ARN of the user or role that last used the policy to attempt to access the service
By default, the list is sorted by service namespace.
If you specified `ACTION_LEVEL` granularity when you generated the report, this operation returns service and action last accessed data. This includes the most recent access attempt for each tracked action within a service. Otherwise, this operation returns only service data.
For more information about service and action last accessed data, see
- Reducing permissions using service last accessed data][2
-
in the *IAM
User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics [2]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor.html
@option params [required, String] :job_id
The ID of the request generated by the GenerateServiceLastAccessedDetails operation. The `JobId` returned by `GenerateServiceLastAccessedDetail` must be used by the same role within a session, or by the same user when used to call `GetServiceLastAccessedDetail`.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@return [Types::GetServiceLastAccessedDetailsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetServiceLastAccessedDetailsResponse#job_status #job_status} => String * {Types::GetServiceLastAccessedDetailsResponse#job_type #job_type} => String * {Types::GetServiceLastAccessedDetailsResponse#job_creation_date #job_creation_date} => Time * {Types::GetServiceLastAccessedDetailsResponse#services_last_accessed #services_last_accessed} => Array<Types::ServiceLastAccessed> * {Types::GetServiceLastAccessedDetailsResponse#job_completion_date #job_completion_date} => Time * {Types::GetServiceLastAccessedDetailsResponse#is_truncated #is_truncated} => Boolean * {Types::GetServiceLastAccessedDetailsResponse#marker #marker} => String * {Types::GetServiceLastAccessedDetailsResponse#error #error} => Types::ErrorDetails
@example Example: To get details from a previously-generated report
# The following operation gets details about the report with the job ID: examplef-1305-c245-eba4-71fe298bcda7 resp = client.get_service_last_accessed_details({ job_id: "examplef-1305-c245-eba4-71fe298bcda7", }) resp.to_h outputs the following: { is_truncated: false, job_completion_date: Time.parse("2018-10-24T19:47:35.241Z"), job_creation_date: Time.parse("2018-10-24T19:47:31.466Z"), job_status: "COMPLETED", services_last_accessed: [ { last_authenticated: Time.parse("2018-10-24T19:11:00Z"), last_authenticated_entity: "arn:aws:iam::123456789012:user/AWSExampleUser01", service_name: "AWS Identity and Access Management", service_namespace: "iam", total_authenticated_entities: 2, }, { service_name: "Amazon Simple Storage Service", service_namespace: "s3", total_authenticated_entities: 0, }, ], }
@example Request syntax with placeholder values
resp = client.get_service_last_accessed_details({ job_id: "jobIDType", # required max_items: 1, marker: "markerType", })
@example Response structure
resp.job_status #=> String, one of "IN_PROGRESS", "COMPLETED", "FAILED" resp.job_type #=> String, one of "SERVICE_LEVEL", "ACTION_LEVEL" resp.job_creation_date #=> Time resp.services_last_accessed #=> Array resp.services_last_accessed[0].service_name #=> String resp.services_last_accessed[0].last_authenticated #=> Time resp.services_last_accessed[0].service_namespace #=> String resp.services_last_accessed[0].last_authenticated_entity #=> String resp.services_last_accessed[0].last_authenticated_region #=> String resp.services_last_accessed[0].total_authenticated_entities #=> Integer resp.services_last_accessed[0].tracked_actions_last_accessed #=> Array resp.services_last_accessed[0].tracked_actions_last_accessed[0].action_name #=> String resp.services_last_accessed[0].tracked_actions_last_accessed[0].last_accessed_entity #=> String resp.services_last_accessed[0].tracked_actions_last_accessed[0].last_accessed_time #=> Time resp.services_last_accessed[0].tracked_actions_last_accessed[0].last_accessed_region #=> String resp.job_completion_date #=> Time resp.is_truncated #=> Boolean resp.marker #=> String resp.error.message #=> String resp.error.code #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServiceLastAccessedDetails AWS API Documentation
@overload get_service_last_accessed_details
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5777 def get_service_last_accessed_details(params = {}, options = {}) req = build_request(:get_service_last_accessed_details, params) req.send_request(options) end
After you generate a group or policy report using the `GenerateServiceLastAccessedDetails` operation, you can use the `JobId` parameter in `GetServiceLastAccessedDetailsWithEntities`. This operation retrieves the status of your report job and a list of entities that could have used group or policy permissions to access the specified service.
-
Group – For a group report, this operation returns a list of users in the group that could have used the group’s policies in an attempt to access the service.
-
Policy – For a policy report, this operation returns a list of entities (users or roles) that could have used the policy in an attempt to access the service.
You can also use this operation for user or role reports to retrieve details about those entities.
If the operation fails, the `GetServiceLastAccessedDetailsWithEntities` operation returns the reason that it failed.
By default, the list of associated entities is sorted by date, with the most recent access listed first.
@option params [required, String] :job_id
The ID of the request generated by the `GenerateServiceLastAccessedDetails` operation.
@option params [required, String] :service_namespace
The service namespace for an Amazon Web Services service. Provide the service namespace to learn when the IAM entity last attempted to access the specified service. To learn the service namespace for a service, see [Actions, resources, and condition keys for Amazon Web Services services][1] in the *IAM User Guide*. Choose the name of the service to view details for that service. In the first paragraph, find the service prefix. For example, `(service prefix: a4b)`. For more information about service namespaces, see [Amazon Web Services service namespaces][2] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@return [Types::GetServiceLastAccessedDetailsWithEntitiesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetServiceLastAccessedDetailsWithEntitiesResponse#job_status #job_status} => String * {Types::GetServiceLastAccessedDetailsWithEntitiesResponse#job_creation_date #job_creation_date} => Time * {Types::GetServiceLastAccessedDetailsWithEntitiesResponse#job_completion_date #job_completion_date} => Time * {Types::GetServiceLastAccessedDetailsWithEntitiesResponse#entity_details_list #entity_details_list} => Array<Types::EntityDetails> * {Types::GetServiceLastAccessedDetailsWithEntitiesResponse#is_truncated #is_truncated} => Boolean * {Types::GetServiceLastAccessedDetailsWithEntitiesResponse#marker #marker} => String * {Types::GetServiceLastAccessedDetailsWithEntitiesResponse#error #error} => Types::ErrorDetails
@example Example: To get sntity details from a previously-generated report
# The following operation returns details about the entities that attempted to access the IAM service. resp = client.get_service_last_accessed_details_with_entities({ job_id: "examplef-1305-c245-eba4-71fe298bcda7", service_namespace: "iam", }) resp.to_h outputs the following: { entity_details_list: [ { entity_info: { arn: "arn:aws:iam::123456789012:user/AWSExampleUser01", id: "AIDAEX2EXAMPLEB6IGCDC", name: "AWSExampleUser01", path: "/", type: "USER", }, last_authenticated: Time.parse("2018-10-24T19:10:00Z"), }, { entity_info: { arn: "arn:aws:iam::123456789012:role/AWSExampleRole01", id: "AROAEAEXAMPLEIANXSIU4", name: "AWSExampleRole01", path: "/", type: "ROLE", }, }, ], is_truncated: false, job_completion_date: Time.parse("2018-10-24T19:47:35.241Z"), job_creation_date: Time.parse("2018-10-24T19:47:31.466Z"), job_status: "COMPLETED", }
@example Request syntax with placeholder values
resp = client.get_service_last_accessed_details_with_entities({ job_id: "jobIDType", # required service_namespace: "serviceNamespaceType", # required max_items: 1, marker: "markerType", })
@example Response structure
resp.job_status #=> String, one of "IN_PROGRESS", "COMPLETED", "FAILED" resp.job_creation_date #=> Time resp.job_completion_date #=> Time resp.entity_details_list #=> Array resp.entity_details_list[0].entity_info.arn #=> String resp.entity_details_list[0].entity_info.name #=> String resp.entity_details_list[0].entity_info.type #=> String, one of "USER", "ROLE", "GROUP" resp.entity_details_list[0].entity_info.id #=> String resp.entity_details_list[0].entity_info.path #=> String resp.entity_details_list[0].last_authenticated #=> Time resp.is_truncated #=> Boolean resp.marker #=> String resp.error.message #=> String resp.error.code #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServiceLastAccessedDetailsWithEntities AWS API Documentation
@overload get_service_last_accessed_details_with_entities
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5925 def get_service_last_accessed_details_with_entities(params = {}, options = {}) req = build_request(:get_service_last_accessed_details_with_entities, params) req.send_request(options) end
Retrieves the status of your service-linked role deletion. After you use DeleteServiceLinkedRole to submit a service-linked role for deletion, you can use the `DeletionTaskId` parameter in `GetServiceLinkedRoleDeletionStatus` to check the status of the deletion. If the deletion fails, this operation returns the reason that it failed, if that information is returned by the service.
@option params [required, String] :deletion_task_id
The deletion task identifier. This identifier is returned by the DeleteServiceLinkedRole operation in the format `task/aws-service-role/<service-principal-name>/<role-name>/<task-uuid>`.
@return [Types::GetServiceLinkedRoleDeletionStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetServiceLinkedRoleDeletionStatusResponse#status #status} => String * {Types::GetServiceLinkedRoleDeletionStatusResponse#reason #reason} => Types::DeletionTaskFailureReasonType
@example Request syntax with placeholder values
resp = client.get_service_linked_role_deletion_status({ deletion_task_id: "DeletionTaskIdType", # required })
@example Response structure
resp.status #=> String, one of "SUCCEEDED", "IN_PROGRESS", "FAILED", "NOT_STARTED" resp.reason.reason #=> String resp.reason.role_usage_list #=> Array resp.reason.role_usage_list[0].region #=> String resp.reason.role_usage_list[0].resources #=> Array resp.reason.role_usage_list[0].resources[0] #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServiceLinkedRoleDeletionStatus AWS API Documentation
@overload get_service_linked_role_deletion_status
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5966 def get_service_linked_role_deletion_status(params = {}, options = {}) req = build_request(:get_service_linked_role_deletion_status, params) req.send_request(options) end
Retrieves the specified SSH public key, including metadata about the key.
The SSH public key retrieved by this operation is used only for authenticating the associated IAM
user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see [Set up CodeCommit for SSH connections] in the *CodeCommit User
Guide*.
[1]: docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
@option params [required, String] :user_name
The name of the IAM user associated with the SSH public key. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :ssh_public_key_id
The unique identifier for the SSH public key. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :encoding
Specifies the public key encoding format to use in the response. To retrieve the public key in ssh-rsa format, use `SSH`. To retrieve the public key in PEM format, use `PEM`.
@return [Types::GetSSHPublicKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetSSHPublicKeyResponse#ssh_public_key #ssh_public_key} => Types::SSHPublicKey
@example Request syntax with placeholder values
resp = client.get_ssh_public_key({ user_name: "userNameType", # required ssh_public_key_id: "publicKeyIdType", # required encoding: "SSH", # required, accepts SSH, PEM })
@example Response structure
resp.ssh_public_key.user_name #=> String resp.ssh_public_key.ssh_public_key_id #=> String resp.ssh_public_key.fingerprint #=> String resp.ssh_public_key.ssh_public_key_body #=> String resp.ssh_public_key.status #=> String, one of "Active", "Inactive" resp.ssh_public_key.upload_date #=> Time
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSSHPublicKey AWS API Documentation
@overload get_ssh_public_key
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 5556 def get_ssh_public_key(params = {}, options = {}) req = build_request(:get_ssh_public_key, params) req.send_request(options) end
Retrieves information about the specified IAM
user, including the user's creation date, path, unique ID, and ARN.
If you do not specify a user name, IAM
determines the user name implicitly based on the Amazon Web Services access key ID used to sign the request to this operation.
@option params [String] :user_name
The 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. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Types::GetUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetUserResponse#user #user} => Types::User
@example Example: To get information about an IAM
user
# The following command gets information about the IAM user named Bob. resp = client.get_user({ user_name: "Bob", }) resp.to_h outputs the following: { user: { arn: "arn:aws:iam::123456789012:user/Bob", create_date: Time.parse("2012-09-21T23:03:13Z"), path: "/", user_id: "AKIAIOSFODNN7EXAMPLE", user_name: "Bob", }, }
@example Request syntax with placeholder values
resp = client.get_user({ user_name: "existingUserNameType", })
@example Response structure
resp.user.path #=> String resp.user.user_name #=> String resp.user.user_id #=> String resp.user.arn #=> String resp.user.create_date #=> Time resp.user.password_last_used #=> Time resp.user.permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.user.permissions_boundary.permissions_boundary_arn #=> String resp.user.tags #=> Array resp.user.tags[0].key #=> String resp.user.tags[0].value #=> String
The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
* user_exists
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUser AWS API Documentation
@overload get_user
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6044 def get_user(params = {}, options = {}) req = build_request(:get_user, params) req.send_request(options) end
Retrieves the specified inline policy document that is embedded in the specified IAM
user.
<note markdown=“1”> Policies returned by this operation are URL-encoded compliant with [RFC 3986]. You can use a URL decoding method to convert the policy back to plain JSON text. For example, if you use Java, you can use the `decode` method of the `java.net.URLDecoder` utility class in the Java SDK. Other languages and SDKs provide similar functionality.
</note>
An IAM
user can also have managed policies attached to it. To retrieve a managed policy document that is attached to a user, use GetPolicy to determine the policy's default version. Then use GetPolicyVersion to retrieve the policy document.
For more information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: tools.ietf.org/html/rfc3986 [2]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :user_name
The name of the user who the policy is associated with. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_name
The name of the policy document to get. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Types::GetUserPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::GetUserPolicyResponse#user_name #user_name} => String * {Types::GetUserPolicyResponse#policy_name #policy_name} => String * {Types::GetUserPolicyResponse#policy_document #policy_document} => String
@example Request syntax with placeholder values
resp = client.get_user_policy({ user_name: "existingUserNameType", # required policy_name: "policyNameType", # required })
@example Response structure
resp.user_name #=> String resp.policy_name #=> String resp.policy_document #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserPolicy AWS API Documentation
@overload get_user_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6120 def get_user_policy(params = {}, options = {}) req = build_request(:get_user_policy, params) req.send_request(options) end
Returns information about the access key IDs associated with the specified IAM
user. If there is none, the operation returns an empty list.
Although each user is limited to a small number of keys, you can still paginate the results using the `MaxItems` and `Marker` parameters.
If the `UserName` field is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users.
<note markdown=“1”> To ensure the security of your account, the secret access key is accessible only during key and user creation.
</note>
@option params [String] :user_name
The name of the user. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListAccessKeysResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListAccessKeysResponse#access_key_metadata #access_key_metadata} => Array<Types::AccessKeyMetadata> * {Types::ListAccessKeysResponse#is_truncated #is_truncated} => Boolean * {Types::ListAccessKeysResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To list the access key IDs for an IAM
user
# The following command lists the access keys IDs for the IAM user named Alice. resp = client.list_access_keys({ user_name: "Alice", }) resp.to_h outputs the following: { access_key_metadata: [ { access_key_id: "AKIA111111111EXAMPLE", create_date: Time.parse("2016-12-01T22:19:58Z"), status: "Active", user_name: "Alice", }, { access_key_id: "AKIA222222222EXAMPLE", create_date: Time.parse("2016-12-01T22:20:01Z"), status: "Active", user_name: "Alice", }, ], }
@example Request syntax with placeholder values
resp = client.list_access_keys({ user_name: "existingUserNameType", marker: "markerType", max_items: 1, })
@example Response structure
resp.access_key_metadata #=> Array resp.access_key_metadata[0].user_name #=> String resp.access_key_metadata[0].access_key_id #=> String resp.access_key_metadata[0].status #=> String, one of "Active", "Inactive" resp.access_key_metadata[0].create_date #=> Time resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccessKeys AWS API Documentation
@overload list_access_keys
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6229 def list_access_keys(params = {}, options = {}) req = build_request(:list_access_keys, params) req.send_request(options) end
Lists the account alias associated with the account (Note: you can have only one). For information about using an account alias, see
- Using an alias for your account ID][1
-
in the *IAM
User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/AccountAlias.html
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListAccountAliasesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListAccountAliasesResponse#account_aliases #account_aliases} => Array<String> * {Types::ListAccountAliasesResponse#is_truncated #is_truncated} => Boolean * {Types::ListAccountAliasesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To list account aliases
# The following command lists the aliases for the current account. resp = client.list_account_aliases({ }) resp.to_h outputs the following: { account_aliases: [ "exmaple-corporation", ], }
@example Request syntax with placeholder values
resp = client.list_account_aliases({ marker: "markerType", max_items: 1, })
@example Response structure
resp.account_aliases #=> Array resp.account_aliases[0] #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccountAliases AWS API Documentation
@overload list_account_aliases
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6300 def list_account_aliases(params = {}, options = {}) req = build_request(:list_account_aliases, params) req.send_request(options) end
Lists all managed policies that are attached to the specified IAM
group.
An IAM
group can also have inline policies embedded with it. To list the inline policies for a group, use ListGroupPolicies. For information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
You can paginate the results using the `MaxItems` and `Marker` parameters. You can use the `PathPrefix` parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the operation returns an empty list.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :group_name
The name (friendly name, not ARN) of the group to list attached policies for. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :path_prefix
The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListAttachedGroupPoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListAttachedGroupPoliciesResponse#attached_policies #attached_policies} => Array<Types::AttachedPolicy> * {Types::ListAttachedGroupPoliciesResponse#is_truncated #is_truncated} => Boolean * {Types::ListAttachedGroupPoliciesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_attached_group_policies({ group_name: "groupNameType", # required path_prefix: "policyPathType", marker: "markerType", max_items: 1, })
@example Response structure
resp.attached_policies #=> Array resp.attached_policies[0].policy_name #=> String resp.attached_policies[0].policy_arn #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedGroupPolicies AWS API Documentation
@overload list_attached_group_policies
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6398 def list_attached_group_policies(params = {}, options = {}) req = build_request(:list_attached_group_policies, params) req.send_request(options) end
Lists all managed policies that are attached to the specified IAM
role.
An IAM
role can also have inline policies embedded with it. To list the inline policies for a role, use ListRolePolicies. For information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
You can paginate the results using the `MaxItems` and `Marker` parameters. You can use the `PathPrefix` parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified role (or none that match the specified path prefix), the operation returns an empty list.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :role_name
The name (friendly name, not ARN) of the role to list attached policies for. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :path_prefix
The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListAttachedRolePoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListAttachedRolePoliciesResponse#attached_policies #attached_policies} => Array<Types::AttachedPolicy> * {Types::ListAttachedRolePoliciesResponse#is_truncated #is_truncated} => Boolean * {Types::ListAttachedRolePoliciesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_attached_role_policies({ role_name: "roleNameType", # required path_prefix: "policyPathType", marker: "markerType", max_items: 1, })
@example Response structure
resp.attached_policies #=> Array resp.attached_policies[0].policy_name #=> String resp.attached_policies[0].policy_arn #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedRolePolicies AWS API Documentation
@overload list_attached_role_policies
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6496 def list_attached_role_policies(params = {}, options = {}) req = build_request(:list_attached_role_policies, params) req.send_request(options) end
Lists all managed policies that are attached to the specified IAM
user.
An IAM
user can also have inline policies embedded with it. To list the inline policies for a user, use ListUserPolicies. For information about policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
You can paginate the results using the `MaxItems` and `Marker` parameters. You can use the `PathPrefix` parameter to limit the list of policies to only those matching the specified path prefix. If there are no policies attached to the specified group (or none that match the specified path prefix), the operation returns an empty list.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :user_name
The name (friendly name, not ARN) of the user to list attached policies for. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :path_prefix
The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListAttachedUserPoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListAttachedUserPoliciesResponse#attached_policies #attached_policies} => Array<Types::AttachedPolicy> * {Types::ListAttachedUserPoliciesResponse#is_truncated #is_truncated} => Boolean * {Types::ListAttachedUserPoliciesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_attached_user_policies({ user_name: "userNameType", # required path_prefix: "policyPathType", marker: "markerType", max_items: 1, })
@example Response structure
resp.attached_policies #=> Array resp.attached_policies[0].policy_name #=> String resp.attached_policies[0].policy_arn #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedUserPolicies AWS API Documentation
@overload list_attached_user_policies
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6594 def list_attached_user_policies(params = {}, options = {}) req = build_request(:list_attached_user_policies, params) req.send_request(options) end
Lists all IAM
users, groups, and roles that the specified managed policy is attached to.
You can use the optional `EntityFilter` parameter to limit the results to a particular type of entity (users, groups, or roles). For example, to list only the roles that are attached to the specified policy, set `EntityFilter` to `Role`.
You can paginate the results using the `MaxItems` and `Marker` parameters.
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy for which you want the versions. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [String] :entity_filter
The entity type to use for filtering the results. For example, when `EntityFilter` is `Role`, only the roles that are attached to the specified policy are returned. This parameter is optional. If it is not included, all attached entities (users, groups, and roles) are returned. The argument for this parameter must be one of the valid values listed below.
@option params [String] :path_prefix
The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all entities. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :policy_usage_filter
The policy usage method to use for filtering the results. To list only permissions policies, set `PolicyUsageFilter` to `PermissionsPolicy`. To list only the policies used to set permissions boundaries, set the value to `PermissionsBoundary`. This parameter is optional. If it is not included, all policies are returned.
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListEntitiesForPolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListEntitiesForPolicyResponse#policy_groups #policy_groups} => Array<Types::PolicyGroup> * {Types::ListEntitiesForPolicyResponse#policy_users #policy_users} => Array<Types::PolicyUser> * {Types::ListEntitiesForPolicyResponse#policy_roles #policy_roles} => Array<Types::PolicyRole> * {Types::ListEntitiesForPolicyResponse#is_truncated #is_truncated} => Boolean * {Types::ListEntitiesForPolicyResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_entities_for_policy({ policy_arn: "arnType", # required entity_filter: "User", # accepts User, Role, Group, LocalManagedPolicy, AWSManagedPolicy path_prefix: "pathType", policy_usage_filter: "PermissionsPolicy", # accepts PermissionsPolicy, PermissionsBoundary marker: "markerType", max_items: 1, })
@example Response structure
resp.policy_groups #=> Array resp.policy_groups[0].group_name #=> String resp.policy_groups[0].group_id #=> String resp.policy_users #=> Array resp.policy_users[0].user_name #=> String resp.policy_users[0].user_id #=> String resp.policy_roles #=> Array resp.policy_roles[0].role_name #=> String resp.policy_roles[0].role_id #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListEntitiesForPolicy AWS API Documentation
@overload list_entities_for_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6713 def list_entities_for_policy(params = {}, options = {}) req = build_request(:list_entities_for_policy, params) req.send_request(options) end
Lists the names of the inline policies that are embedded in the specified IAM
group.
An IAM
group can also have managed policies attached to it. To list the managed policies that are attached to a group, use ListAttachedGroupPolicies. For more information about policies, see
- Managed policies and inline policies][1
-
in the *IAM
User
Guide*.
You can paginate the results using the `MaxItems` and `Marker` parameters. If there are no inline policies embedded with the specified group, the operation returns an empty list.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :group_name
The name of the group to list policies for. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListGroupPoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListGroupPoliciesResponse#policy_names #policy_names} => Array<String> * {Types::ListGroupPoliciesResponse#is_truncated #is_truncated} => Boolean * {Types::ListGroupPoliciesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To list the in-line policies for an IAM
group
# The following command lists the names of in-line policies that are embedded in the IAM group named Admins. resp = client.list_group_policies({ group_name: "Admins", }) resp.to_h outputs the following: { policy_names: [ "AdminRoot", "KeyPolicy", ], }
@example Request syntax with placeholder values
resp = client.list_group_policies({ group_name: "groupNameType", # required marker: "markerType", max_items: 1, })
@example Response structure
resp.policy_names #=> Array resp.policy_names[0] #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupPolicies AWS API Documentation
@overload list_group_policies
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6807 def list_group_policies(params = {}, options = {}) req = build_request(:list_group_policies, params) req.send_request(options) end
Lists the IAM
groups that have the specified path prefix.
You can paginate the results using the `MaxItems` and `Marker` parameters.
@option params [String] :path_prefix
The path prefix for filtering the results. For example, the prefix `/division_abc/subdivision_xyz/` gets 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. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListGroupsResponse#groups #groups} => Array<Types::Group> * {Types::ListGroupsResponse#is_truncated #is_truncated} => Boolean * {Types::ListGroupsResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To list the IAM
groups for the current account
# The following command lists the IAM groups in the current account: resp = client.list_groups({ }) resp.to_h outputs the following: { groups: [ { arn: "arn:aws:iam::123456789012:group/Admins", create_date: Time.parse("2016-12-15T21:40:08.121Z"), group_id: "AGPA1111111111EXAMPLE", group_name: "Admins", path: "/division_abc/subdivision_xyz/", }, { arn: "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/engineering/Test", create_date: Time.parse("2016-11-30T14:10:01.156Z"), group_id: "AGP22222222222EXAMPLE", group_name: "Test", path: "/division_abc/subdivision_xyz/product_1234/engineering/", }, { arn: "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/Managers", create_date: Time.parse("2016-06-12T20:14:52.032Z"), group_id: "AGPI3333333333EXAMPLE", group_name: "Managers", path: "/division_abc/subdivision_xyz/product_1234/", }, ], }
@example Request syntax with placeholder values
resp = client.list_groups({ path_prefix: "pathPrefixType", marker: "markerType", max_items: 1, })
@example Response structure
resp.groups #=> Array resp.groups[0].path #=> String resp.groups[0].group_name #=> String resp.groups[0].group_id #=> String resp.groups[0].arn #=> String resp.groups[0].create_date #=> Time resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroups AWS API Documentation
@overload list_groups
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 6917 def list_groups(params = {}, options = {}) req = build_request(:list_groups, params) req.send_request(options) end
Lists the IAM
groups that the specified IAM
user belongs to.
You can paginate the results using the `MaxItems` and `Marker` parameters.
@option params [required, String] :user_name
The name of the user to list groups for. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListGroupsForUserResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListGroupsForUserResponse#groups #groups} => Array<Types::Group> * {Types::ListGroupsForUserResponse#is_truncated #is_truncated} => Boolean * {Types::ListGroupsForUserResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To list the groups that an IAM
user belongs to
# The following command displays the groups that the IAM user named Bob belongs to. resp = client.list_groups_for_user({ user_name: "Bob", }) resp.to_h outputs the following: { groups: [ { arn: "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/engineering/Test", create_date: Time.parse("2016-11-30T14:10:01.156Z"), group_id: "AGP2111111111EXAMPLE", group_name: "Test", path: "/division_abc/subdivision_xyz/product_1234/engineering/", }, { arn: "arn:aws:iam::123456789012:group/division_abc/subdivision_xyz/product_1234/Managers", create_date: Time.parse("2016-06-12T20:14:52.032Z"), group_id: "AGPI222222222SEXAMPLE", group_name: "Managers", path: "/division_abc/subdivision_xyz/product_1234/", }, ], }
@example Request syntax with placeholder values
resp = client.list_groups_for_user({ user_name: "existingUserNameType", # required marker: "markerType", max_items: 1, })
@example Response structure
resp.groups #=> Array resp.groups[0].path #=> String resp.groups[0].group_name #=> String resp.groups[0].group_id #=> String resp.groups[0].arn #=> String resp.groups[0].create_date #=> Time resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsForUser AWS API Documentation
@overload list_groups_for_user
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 7016 def list_groups_for_user(params = {}, options = {}) req = build_request(:list_groups_for_user, params) req.send_request(options) end
Lists the instance profiles that have the specified path prefix. If there are none, the operation returns an empty list. For more information about instance profiles, see [About instance profiles].
<note markdown=“1”> IAM
resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an instance profile, see GetInstanceProfile.
</note>
You can paginate the results using the `MaxItems` and `Marker` parameters.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html
@option params [String] :path_prefix
The path prefix for filtering the results. For example, the prefix `/application_abc/component_xyz/` gets 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. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListInstanceProfilesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListInstanceProfilesResponse#instance_profiles #instance_profiles} => Array<Types::InstanceProfile> * {Types::ListInstanceProfilesResponse#is_truncated #is_truncated} => Boolean * {Types::ListInstanceProfilesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_instance_profiles({ path_prefix: "pathPrefixType", marker: "markerType", max_items: 1, })
@example Response structure
resp.instance_profiles #=> Array resp.instance_profiles[0].path #=> String resp.instance_profiles[0].instance_profile_name #=> String resp.instance_profiles[0].instance_profile_id #=> String resp.instance_profiles[0].arn #=> String resp.instance_profiles[0].create_date #=> Time resp.instance_profiles[0].roles #=> Array resp.instance_profiles[0].roles[0].path #=> String resp.instance_profiles[0].roles[0].role_name #=> String resp.instance_profiles[0].roles[0].role_id #=> String resp.instance_profiles[0].roles[0].arn #=> String resp.instance_profiles[0].roles[0].create_date #=> Time resp.instance_profiles[0].roles[0].assume_role_policy_document #=> String resp.instance_profiles[0].roles[0].description #=> String resp.instance_profiles[0].roles[0].max_session_duration #=> Integer resp.instance_profiles[0].roles[0].permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.instance_profiles[0].roles[0].permissions_boundary.permissions_boundary_arn #=> String resp.instance_profiles[0].roles[0].tags #=> Array resp.instance_profiles[0].roles[0].tags[0].key #=> String resp.instance_profiles[0].roles[0].tags[0].value #=> String resp.instance_profiles[0].roles[0].role_last_used.last_used_date #=> Time resp.instance_profiles[0].roles[0].role_last_used.region #=> String resp.instance_profiles[0].tags #=> Array resp.instance_profiles[0].tags[0].key #=> String resp.instance_profiles[0].tags[0].value #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfiles AWS API Documentation
@overload list_instance_profiles
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 7194 def list_instance_profiles(params = {}, options = {}) req = build_request(:list_instance_profiles, params) req.send_request(options) end
Lists the instance profiles that have the specified associated IAM
role. If there are none, the operation returns an empty list. For more information about instance profiles, go to [About instance profiles].
You can paginate the results using the `MaxItems` and `Marker` parameters.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html
@option params [required, String] :role_name
The name of the role to list instance profiles for. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListInstanceProfilesForRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListInstanceProfilesForRoleResponse#instance_profiles #instance_profiles} => Array<Types::InstanceProfile> * {Types::ListInstanceProfilesForRoleResponse#is_truncated #is_truncated} => Boolean * {Types::ListInstanceProfilesForRoleResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_instance_profiles_for_role({ role_name: "roleNameType", # required marker: "markerType", max_items: 1, })
@example Response structure
resp.instance_profiles #=> Array resp.instance_profiles[0].path #=> String resp.instance_profiles[0].instance_profile_name #=> String resp.instance_profiles[0].instance_profile_id #=> String resp.instance_profiles[0].arn #=> String resp.instance_profiles[0].create_date #=> Time resp.instance_profiles[0].roles #=> Array resp.instance_profiles[0].roles[0].path #=> String resp.instance_profiles[0].roles[0].role_name #=> String resp.instance_profiles[0].roles[0].role_id #=> String resp.instance_profiles[0].roles[0].arn #=> String resp.instance_profiles[0].roles[0].create_date #=> Time resp.instance_profiles[0].roles[0].assume_role_policy_document #=> String resp.instance_profiles[0].roles[0].description #=> String resp.instance_profiles[0].roles[0].max_session_duration #=> Integer resp.instance_profiles[0].roles[0].permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.instance_profiles[0].roles[0].permissions_boundary.permissions_boundary_arn #=> String resp.instance_profiles[0].roles[0].tags #=> Array resp.instance_profiles[0].roles[0].tags[0].key #=> String resp.instance_profiles[0].roles[0].tags[0].value #=> String resp.instance_profiles[0].roles[0].role_last_used.last_used_date #=> Time resp.instance_profiles[0].roles[0].role_last_used.region #=> String resp.instance_profiles[0].tags #=> Array resp.instance_profiles[0].tags[0].key #=> String resp.instance_profiles[0].tags[0].value #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesForRole AWS API Documentation
@overload list_instance_profiles_for_role
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 7290 def list_instance_profiles_for_role(params = {}, options = {}) req = build_request(:list_instance_profiles_for_role, params) req.send_request(options) end
Lists the MFA devices for an IAM
user. If the request includes a IAM
user name, then this operation lists all the MFA devices associated with the specified user. If you do not specify a user name, IAM
determines the user name implicitly based on the Amazon Web Services access key ID signing the request for this operation.
You can paginate the results using the `MaxItems` and `Marker` parameters.
@option params [String] :user_name
The name of the user whose MFA devices you want to list. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListMFADevicesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListMFADevicesResponse#mfa_devices #mfa_devices} => Array<Types::MFADevice> * {Types::ListMFADevicesResponse#is_truncated #is_truncated} => Boolean * {Types::ListMFADevicesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_mfa_devices({ user_name: "existingUserNameType", marker: "markerType", max_items: 1, })
@example Response structure
resp.mfa_devices #=> Array resp.mfa_devices[0].user_name #=> String resp.mfa_devices[0].serial_number #=> String resp.mfa_devices[0].enable_date #=> Time resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListMFADevices AWS API Documentation
@overload list_mfa_devices
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 7433 def list_mfa_devices(params = {}, options = {}) req = build_request(:list_mfa_devices, params) req.send_request(options) end
Lists information about the IAM
OpenID Connect (OIDC) provider resource objects defined in the account.
<note markdown=“1”> IAM
resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for an OIDC provider, see GetOpenIDConnectProvider.
</note>
@return [Types::ListOpenIDConnectProvidersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListOpenIDConnectProvidersResponse#open_id_connect_provider_list #open_id_connect_provider_list} => Array<Types::OpenIDConnectProviderListEntry>
@example Response structure
resp.open_id_connect_provider_list #=> Array resp.open_id_connect_provider_list[0].arn #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListOpenIDConnectProviders AWS API Documentation
@overload list_open_id_connect_providers
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 7536 def list_open_id_connect_providers(params = {}, options = {}) req = build_request(:list_open_id_connect_providers, params) req.send_request(options) end
Lists all the managed policies that are available in your account, including your own customer-defined managed policies and all Amazon Web Services managed policies.
You can filter the list of policies that is returned using the optional `OnlyAttached`, `Scope`, and `PathPrefix` parameters. For example, to list only the customer managed policies in your Amazon Web Services account, set `Scope` to `Local`. To list only Amazon Web Services managed policies, set `Scope` to `AWS`.
You can paginate the results using the `MaxItems` and `Marker` parameters.
For more information about managed policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
<note markdown=“1”> IAM
resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a customer manged policy, see GetPolicy.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [String] :scope
The scope to use for filtering the results. To list only Amazon Web Services managed policies, set `Scope` to `AWS`. To list only the customer managed policies in your account, set `Scope` to `Local`. This parameter is optional. If it is not included, or if it is set to `All`, all policies are returned.
@option params [Boolean] :only_attached
A flag to filter the results to only the attached policies. When `OnlyAttached` is `true`, the returned list contains only the policies that are attached to an IAM user, group, or role. When `OnlyAttached` is `false`, or when the parameter is not included, all policies are returned.
@option params [String] :path_prefix
The path prefix for filtering the results. This parameter is optional. If it is not included, it defaults to a slash (/), listing all policies. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :policy_usage_filter
The policy usage method to use for filtering the results. To list only permissions policies, set `PolicyUsageFilter` to `PermissionsPolicy`. To list only the policies used to set permissions boundaries, set the value to `PermissionsBoundary`. This parameter is optional. If it is not included, all policies are returned.
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListPoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListPoliciesResponse#policies #policies} => Array<Types::Policy> * {Types::ListPoliciesResponse#is_truncated #is_truncated} => Boolean * {Types::ListPoliciesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_policies({ scope: "All", # accepts All, AWS, Local only_attached: false, path_prefix: "policyPathType", policy_usage_filter: "PermissionsPolicy", # accepts PermissionsPolicy, PermissionsBoundary marker: "markerType", max_items: 1, })
@example Response structure
resp.policies #=> Array resp.policies[0].policy_name #=> String resp.policies[0].policy_id #=> String resp.policies[0].arn #=> String resp.policies[0].path #=> String resp.policies[0].default_version_id #=> String resp.policies[0].attachment_count #=> Integer resp.policies[0].permissions_boundary_usage_count #=> Integer resp.policies[0].is_attachable #=> Boolean resp.policies[0].description #=> String resp.policies[0].create_date #=> Time resp.policies[0].update_date #=> Time resp.policies[0].tags #=> Array resp.policies[0].tags[0].key #=> String resp.policies[0].tags[0].value #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicies AWS API Documentation
@overload list_policies
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 7672 def list_policies(params = {}, options = {}) req = build_request(:list_policies, params) req.send_request(options) end
Retrieves a list of policies that the IAM
identity (user, group, or role) can use to access each specified service.
<note markdown=“1”> This operation does not use other policy types when determining whether a resource could access a service. These other policy types include resource-based policies, access control lists, Organizations policies, IAM
permissions boundaries, and STS assume role policies. It only applies permissions policy logic. For more about the evaluation of policy types, see [Evaluating policies] in the *IAM User
Guide*.
</note>
The list of policies returned by the operation depends on the ARN of the identity that you provide.
-
User – The list of policies includes the managed and inline policies that are attached to the user directly. The list also includes any additional managed and inline policies that are attached to the group to which the user belongs.
-
Group – The list of policies includes only the managed and inline policies that are attached to the group directly. Policies that are attached to the group’s user are not included.
-
Role – The list of policies includes only the managed and inline policies that are attached to the role.
For each managed policy, this operation returns the ARN and policy name. For each inline policy, it returns the policy name and the entity to which it is attached. Inline policies do not have an ARN. For more information about these policy types, see [Managed policies and inline policies] in the *IAM User
Guide*.
Policies that are attached to users and roles as permissions boundaries are not returned. To view which managed policy is currently used to set the permissions boundary for a user or role, use the GetUser or GetRole operations.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-basics [2]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [required, String] :arn
The ARN of the IAM identity (user, group, or role) whose policies you want to list.
@option params [required, Array<String>] :service_namespaces
The service namespace for the Amazon Web Services services whose policies you want to list. To learn the service namespace for a service, see [Actions, resources, and condition keys for Amazon Web Services services][1] in the *IAM User Guide*. Choose the name of the service to view details for that service. In the first paragraph, find the service prefix. For example, `(service prefix: a4b)`. For more information about service namespaces, see [Amazon Web Services service namespaces][2] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-aws-service-namespaces
@return [Types::ListPoliciesGrantingServiceAccessResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListPoliciesGrantingServiceAccessResponse#policies_granting_service_access #policies_granting_service_access} => Array<Types::ListPoliciesGrantingServiceAccessEntry> * {Types::ListPoliciesGrantingServiceAccessResponse#is_truncated #is_truncated} => Boolean * {Types::ListPoliciesGrantingServiceAccessResponse#marker #marker} => String
@example Example: To list policies that allow access to a service
# The following operation lists policies that allow ExampleUser01 to access IAM or EC2. resp = client.list_policies_granting_service_access({ arn: "arn:aws:iam::123456789012:user/ExampleUser01", service_namespaces: [ "iam", "ec2", ], }) resp.to_h outputs the following: { is_truncated: false, policies_granting_service_access: [ { policies: [ { policy_arn: "arn:aws:iam::123456789012:policy/ExampleIamPolicy", policy_name: "ExampleIamPolicy", policy_type: "MANAGED", }, { entity_name: "AWSExampleGroup1", entity_type: "GROUP", policy_name: "ExampleGroup1Policy", policy_type: "INLINE", }, ], service_namespace: "iam", }, { policies: [ { policy_arn: "arn:aws:iam::123456789012:policy/ExampleEc2Policy", policy_name: "ExampleEc2Policy", policy_type: "MANAGED", }, ], service_namespace: "ec2", }, ], }
@example Request syntax with placeholder values
resp = client.list_policies_granting_service_access({ marker: "markerType", arn: "arnType", # required service_namespaces: ["serviceNamespaceType"], # required })
@example Response structure
resp.policies_granting_service_access #=> Array resp.policies_granting_service_access[0].service_namespace #=> String resp.policies_granting_service_access[0].policies #=> Array resp.policies_granting_service_access[0].policies[0].policy_name #=> String resp.policies_granting_service_access[0].policies[0].policy_type #=> String, one of "INLINE", "MANAGED" resp.policies_granting_service_access[0].policies[0].policy_arn #=> String resp.policies_granting_service_access[0].policies[0].entity_type #=> String, one of "USER", "ROLE", "GROUP" resp.policies_granting_service_access[0].policies[0].entity_name #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPoliciesGrantingServiceAccess AWS API Documentation
@overload list_policies_granting_service_access
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 7824 def list_policies_granting_service_access(params = {}, options = {}) req = build_request(:list_policies_granting_service_access, params) req.send_request(options) end
Lists information about the versions of the specified managed policy, including the version that is currently set as the policy's default version.
For more information about managed policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy for which you want the versions. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListPolicyVersionsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListPolicyVersionsResponse#versions #versions} => Array<Types::PolicyVersion> * {Types::ListPolicyVersionsResponse#is_truncated #is_truncated} => Boolean * {Types::ListPolicyVersionsResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_policy_versions({ policy_arn: "arnType", # required marker: "markerType", max_items: 1, })
@example Response structure
resp.versions #=> Array resp.versions[0].document #=> String resp.versions[0].version_id #=> String resp.versions[0].is_default_version #=> Boolean resp.versions[0].create_date #=> Time resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicyVersions AWS API Documentation
@overload list_policy_versions
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 7967 def list_policy_versions(params = {}, options = {}) req = build_request(:list_policy_versions, params) req.send_request(options) end
Lists the names of the inline policies that are embedded in the specified IAM
role.
An IAM
role can also have managed policies attached to it. To list the managed policies that are attached to a role, use ListAttachedRolePolicies. For more information about policies, see
- Managed policies and inline policies][1
-
in the *IAM
User
Guide*.
You can paginate the results using the `MaxItems` and `Marker` parameters. If there are no inline policies embedded with the specified role, the operation returns an empty list.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :role_name
The name of the role to list policies for. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListRolePoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListRolePoliciesResponse#policy_names #policy_names} => Array<String> * {Types::ListRolePoliciesResponse#is_truncated #is_truncated} => Boolean * {Types::ListRolePoliciesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_role_policies({ role_name: "roleNameType", # required marker: "markerType", max_items: 1, })
@example Response structure
resp.policy_names #=> Array resp.policy_names[0] #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolePolicies AWS API Documentation
@overload list_role_policies
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 8044 def list_role_policies(params = {}, options = {}) req = build_request(:list_role_policies, params) req.send_request(options) end
Lists the IAM
roles that have the specified path prefix. If there are none, the operation returns an empty list. For more information about roles, see [Working with roles].
<note markdown=“1”> IAM
resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a role, see GetRole.
</note>
You can paginate the results using the `MaxItems` and `Marker` parameters.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html
@option params [String] :path_prefix
The path prefix for filtering the results. For example, the prefix `/application_abc/component_xyz/` gets 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. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListRolesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListRolesResponse#roles #roles} => Array<Types::Role> * {Types::ListRolesResponse#is_truncated #is_truncated} => Boolean * {Types::ListRolesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_roles({ path_prefix: "pathPrefixType", marker: "markerType", max_items: 1, })
@example Response structure
resp.roles #=> Array resp.roles[0].path #=> String resp.roles[0].role_name #=> String resp.roles[0].role_id #=> String resp.roles[0].arn #=> String resp.roles[0].create_date #=> Time resp.roles[0].assume_role_policy_document #=> String resp.roles[0].description #=> String resp.roles[0].max_session_duration #=> Integer resp.roles[0].permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.roles[0].permissions_boundary.permissions_boundary_arn #=> String resp.roles[0].tags #=> Array resp.roles[0].tags[0].key #=> String resp.roles[0].tags[0].value #=> String resp.roles[0].role_last_used.last_used_date #=> Time resp.roles[0].role_last_used.region #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRoles AWS API Documentation
@overload list_roles
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 8234 def list_roles(params = {}, options = {}) req = build_request(:list_roles, params) req.send_request(options) end
Lists the SAML provider resource objects defined in IAM
in the account. IAM
resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a SAML provider, see GetSAMLProvider.
This operation requires [Signature Version 4].
[1]: docs.aws.amazon.com/general/latest/gr/signature-version-4.html
@return [Types::ListSAMLProvidersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListSAMLProvidersResponse#saml_provider_list #saml_provider_list} => Array<Types::SAMLProviderListEntry>
@example Response structure
resp.saml_provider_list #=> Array resp.saml_provider_list[0].arn #=> String resp.saml_provider_list[0].valid_until #=> Time resp.saml_provider_list[0].create_date #=> Time
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSAMLProviders AWS API Documentation
@overload list_saml_providers
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 8341 def list_saml_providers(params = {}, options = {}) req = build_request(:list_saml_providers, params) req.send_request(options) end
Lists the server certificates stored in IAM
that have the specified path prefix. If none exist, the operation returns an empty list.
You can paginate the results using the `MaxItems` and `Marker` parameters.
For more information about working with server certificates, see
- Working with server certificates][1
-
in the *IAM
User
Guide*. This
topic also includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM
.
<note markdown=“1”> IAM
resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a servercertificate, see GetServerCertificate.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
@option params [String] :path_prefix
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. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListServerCertificatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListServerCertificatesResponse#server_certificate_metadata_list #server_certificate_metadata_list} => Array<Types::ServerCertificateMetadata> * {Types::ListServerCertificatesResponse#is_truncated #is_truncated} => Boolean * {Types::ListServerCertificatesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_server_certificates({ path_prefix: "pathPrefixType", marker: "markerType", max_items: 1, })
@example Response structure
resp.server_certificate_metadata_list #=> Array resp.server_certificate_metadata_list[0].path #=> String resp.server_certificate_metadata_list[0].server_certificate_name #=> String resp.server_certificate_metadata_list[0].server_certificate_id #=> String resp.server_certificate_metadata_list[0].arn #=> String resp.server_certificate_metadata_list[0].upload_date #=> Time resp.server_certificate_metadata_list[0].expiration #=> Time resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServerCertificates AWS API Documentation
@overload list_server_certificates
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 8597 def list_server_certificates(params = {}, options = {}) req = build_request(:list_server_certificates, params) req.send_request(options) end
Returns information about the service-specific credentials associated with the specified IAM
user. If none exists, the operation returns an empty list. The service-specific credentials returned by this operation are used only for authenticating the IAM
user to a specific service. For more information about using service-specific credentials to authenticate to an Amazon Web Services service, see [Set up service-specific credentials] in the CodeCommit User
Guide.
[1]: docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html
@option params [String] :user_name
The name of the user whose service-specific credentials you want information about. If this value is not specified, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :service_name
Filters the returned results to only those for the specified Amazon Web Services service. If not specified, then Amazon Web Services returns service-specific credentials for all services.
@return [Types::ListServiceSpecificCredentialsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListServiceSpecificCredentialsResponse#service_specific_credentials #service_specific_credentials} => Array<Types::ServiceSpecificCredentialMetadata>
@example Request syntax with placeholder values
resp = client.list_service_specific_credentials({ user_name: "userNameType", service_name: "serviceName", })
@example Response structure
resp.service_specific_credentials #=> Array resp.service_specific_credentials[0].user_name #=> String resp.service_specific_credentials[0].status #=> String, one of "Active", "Inactive" resp.service_specific_credentials[0].service_user_name #=> String resp.service_specific_credentials[0].create_date #=> Time resp.service_specific_credentials[0].service_specific_credential_id #=> String resp.service_specific_credentials[0].service_name #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServiceSpecificCredentials AWS API Documentation
@overload list_service_specific_credentials
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 8658 def list_service_specific_credentials(params = {}, options = {}) req = build_request(:list_service_specific_credentials, params) req.send_request(options) end
Returns information about the signing certificates associated with the specified IAM
user. If none exists, the operation returns an empty list.
Although each user is limited to a small number of signing certificates, you can still paginate the results using the `MaxItems` and `Marker` parameters.
If the `UserName` field is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request for this operation. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users.
@option params [String] :user_name
The name of the IAM user whose signing certificates you want to examine. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListSigningCertificatesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListSigningCertificatesResponse#certificates #certificates} => Array<Types::SigningCertificate> * {Types::ListSigningCertificatesResponse#is_truncated #is_truncated} => Boolean * {Types::ListSigningCertificatesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To list the signing certificates for an IAM
user
# The following command lists the signing certificates for the IAM user named Bob. resp = client.list_signing_certificates({ user_name: "Bob", }) resp.to_h outputs the following: { certificates: [ { certificate_body: "-----BEGIN CERTIFICATE-----<certificate-body>-----END CERTIFICATE-----", certificate_id: "TA7SMP42TDN5Z26OBPJE7EXAMPLE", status: "Active", upload_date: Time.parse("2013-06-06T21:40:08Z"), user_name: "Bob", }, ], }
@example Request syntax with placeholder values
resp = client.list_signing_certificates({ user_name: "existingUserNameType", marker: "markerType", max_items: 1, })
@example Response structure
resp.certificates #=> Array resp.certificates[0].user_name #=> String resp.certificates[0].certificate_id #=> String resp.certificates[0].certificate_body #=> String resp.certificates[0].status #=> String, one of "Active", "Inactive" resp.certificates[0].upload_date #=> Time resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSigningCertificates AWS API Documentation
@overload list_signing_certificates
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 8761 def list_signing_certificates(params = {}, options = {}) req = build_request(:list_signing_certificates, params) req.send_request(options) end
Returns information about the SSH public keys associated with the specified IAM
user. If none exists, the operation returns an empty list.
The SSH public keys returned by this operation are used only for authenticating the IAM
user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see [Set up CodeCommit for SSH connections] in the *CodeCommit User
Guide*.
Although each user is limited to a small number of keys, you can still paginate the results using the `MaxItems` and `Marker` parameters.
[1]: docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
@option params [String] :user_name
The name of the IAM user to list SSH public keys for. If none is specified, the `UserName` field is determined implicitly based on the Amazon Web Services access key used to sign the request. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListSSHPublicKeysResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListSSHPublicKeysResponse#ssh_public_keys #ssh_public_keys} => Array<Types::SSHPublicKeyMetadata> * {Types::ListSSHPublicKeysResponse#is_truncated #is_truncated} => Boolean * {Types::ListSSHPublicKeysResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_ssh_public_keys({ user_name: "userNameType", marker: "markerType", max_items: 1, })
@example Response structure
resp.ssh_public_keys #=> Array resp.ssh_public_keys[0].user_name #=> String resp.ssh_public_keys[0].ssh_public_key_id #=> String resp.ssh_public_keys[0].status #=> String, one of "Active", "Inactive" resp.ssh_public_keys[0].upload_date #=> Time resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSSHPublicKeys AWS API Documentation
@overload list_ssh_public_keys
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 8424 def list_ssh_public_keys(params = {}, options = {}) req = build_request(:list_ssh_public_keys, params) req.send_request(options) end
Lists the names of the inline policies embedded in the specified IAM
user.
An IAM
user can also have managed policies attached to it. To list the managed policies that are attached to a user, use ListAttachedUserPolicies. For more information about policies, see
- Managed policies and inline policies][1
-
in the *IAM
User
Guide*.
You can paginate the results using the `MaxItems` and `Marker` parameters. If there are no inline policies embedded with the specified user, the operation returns an empty list.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :user_name
The name of the user to list policies for. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListUserPoliciesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListUserPoliciesResponse#policy_names #policy_names} => Array<String> * {Types::ListUserPoliciesResponse#is_truncated #is_truncated} => Boolean * {Types::ListUserPoliciesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.list_user_policies({ user_name: "existingUserNameType", # required marker: "markerType", max_items: 1, })
@example Response structure
resp.policy_names #=> Array resp.policy_names[0] #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUserPolicies AWS API Documentation
@overload list_user_policies
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 8838 def list_user_policies(params = {}, options = {}) req = build_request(:list_user_policies, params) req.send_request(options) end
Lists the IAM
users that have the specified path prefix. If no path prefix is specified, the operation returns all users in the account. If there are none, the operation returns an empty list.
<note markdown=“1”> IAM
resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a user, see GetUser.
</note>
You can paginate the results using the `MaxItems` and `Marker` parameters.
@option params [String] :path_prefix
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. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListUsersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListUsersResponse#users #users} => Array<Types::User> * {Types::ListUsersResponse#is_truncated #is_truncated} => Boolean * {Types::ListUsersResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To list IAM
users
# The following command lists the IAM users in the current account. resp = client.list_users({ }) resp.to_h outputs the following: { users: [ { arn: "arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/engineering/Juan", create_date: Time.parse("2012-09-05T19:38:48Z"), password_last_used: Time.parse("2016-09-08T21:47:36Z"), path: "/division_abc/subdivision_xyz/engineering/", user_id: "AID2MAB8DPLSRHEXAMPLE", user_name: "Juan", }, { arn: "arn:aws:iam::123456789012:user/division_abc/subdivision_xyz/engineering/Anika", create_date: Time.parse("2014-04-09T15:43:45Z"), password_last_used: Time.parse("2016-09-24T16:18:07Z"), path: "/division_abc/subdivision_xyz/engineering/", user_id: "AIDIODR4TAW7CSEXAMPLE", user_name: "Anika", }, ], }
@example Request syntax with placeholder values
resp = client.list_users({ path_prefix: "pathPrefixType", marker: "markerType", max_items: 1, })
@example Response structure
resp.users #=> Array resp.users[0].path #=> String resp.users[0].user_name #=> String resp.users[0].user_id #=> String resp.users[0].arn #=> String resp.users[0].create_date #=> Time resp.users[0].password_last_used #=> Time resp.users[0].permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.users[0].permissions_boundary.permissions_boundary_arn #=> String resp.users[0].tags #=> Array resp.users[0].tags[0].key #=> String resp.users[0].tags[0].value #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUsers AWS API Documentation
@overload list_users
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9052 def list_users(params = {}, options = {}) req = build_request(:list_users, params) req.send_request(options) end
Lists the virtual MFA devices defined in the account by assignment status. If you do not specify an assignment status, the operation returns a list of all virtual MFA devices. Assignment status can be `Assigned`, `Unassigned`, or `Any`.
<note markdown=“1”> IAM
resource-listing operations return a subset of the available attributes for the resource. For example, this operation does not return tags, even though they are an attribute of the returned object. To view all of the information for a virtual MFA device, see ListVirtualMFADevices.
</note>
You can paginate the results using the `MaxItems` and `Marker` parameters.
@option params [String] :assignment_status
The status (`Unassigned` or `Assigned`) of the devices to list. If you do not specify an `AssignmentStatus`, the operation defaults to `Any`, which lists both assigned and unassigned virtual MFA devices.,
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@return [Types::ListVirtualMFADevicesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ListVirtualMFADevicesResponse#virtual_mfa_devices #virtual_mfa_devices} => Array<Types::VirtualMFADevice> * {Types::ListVirtualMFADevicesResponse#is_truncated #is_truncated} => Boolean * {Types::ListVirtualMFADevicesResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Example: To list virtual MFA devices
# The following command lists the virtual MFA devices that have been configured for the current account. resp = client.list_virtual_mfa_devices({ }) resp.to_h outputs the following: { virtual_mfa_devices: [ { serial_number: "arn:aws:iam::123456789012:mfa/ExampleMFADevice", }, { serial_number: "arn:aws:iam::123456789012:mfa/Juan", }, ], }
@example Request syntax with placeholder values
resp = client.list_virtual_mfa_devices({ assignment_status: "Assigned", # accepts Assigned, Unassigned, Any marker: "markerType", max_items: 1, })
@example Response structure
resp.virtual_mfa_devices #=> Array resp.virtual_mfa_devices[0].serial_number #=> String resp.virtual_mfa_devices[0].base_32_string_seed #=> String resp.virtual_mfa_devices[0].qr_code_png #=> String resp.virtual_mfa_devices[0].user.path #=> String resp.virtual_mfa_devices[0].user.user_name #=> String resp.virtual_mfa_devices[0].user.user_id #=> String resp.virtual_mfa_devices[0].user.arn #=> String resp.virtual_mfa_devices[0].user.create_date #=> Time resp.virtual_mfa_devices[0].user.password_last_used #=> Time resp.virtual_mfa_devices[0].user.permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.virtual_mfa_devices[0].user.permissions_boundary.permissions_boundary_arn #=> String resp.virtual_mfa_devices[0].user.tags #=> Array resp.virtual_mfa_devices[0].user.tags[0].key #=> String resp.virtual_mfa_devices[0].user.tags[0].value #=> String resp.virtual_mfa_devices[0].enable_date #=> Time resp.virtual_mfa_devices[0].tags #=> Array resp.virtual_mfa_devices[0].tags[0].key #=> String resp.virtual_mfa_devices[0].tags[0].value #=> String resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListVirtualMFADevices AWS API Documentation
@overload list_virtual_mfa_devices
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9159 def list_virtual_mfa_devices(params = {}, options = {}) req = build_request(:list_virtual_mfa_devices, params) req.send_request(options) end
Adds or updates an inline policy document that is embedded in the specified IAM
group.
A user can also have managed policies attached to it. To attach a managed policy to a group, use AttachGroupPolicy. To create a new managed policy, use CreatePolicy. For information about policies, see
- Managed policies and inline policies][1
-
in the *IAM
User
Guide*.
For information about the maximum number of inline policies that you can embed in a group, see [IAM and STS quotas] in the *IAM User
Guide*.
<note markdown=“1”> Because policy documents can be large, you should use POST rather than GET when calling `PutGroupPolicy`. For general information about using the Query API with IAM
, see [Making query requests] in the *IAM User
Guide*.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html
@option params [required, String] :group_name
The name of the group to associate the policy with. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@-. [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_name
The name of the policy document. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_document
The policy document. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to = IAM. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To add a policy to a group
# The following command adds a policy named AllPerms to the IAM group named Admins. resp = client.put_group_policy({ group_name: "Admins", policy_document: "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"*\",\"Resource\":\"*\"}}", policy_name: "AllPerms", })
@example Request syntax with placeholder values
resp = client.put_group_policy({ group_name: "groupNameType", # required policy_name: "policyNameType", # required policy_document: "policyDocumentType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutGroupPolicy AWS API Documentation
@overload put_group_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9262 def put_group_policy(params = {}, options = {}) req = build_request(:put_group_policy, params) req.send_request(options) end
Adds or updates the policy that is specified as the IAM
role's permissions boundary. You can use an Amazon Web Services managed policy or a customer managed policy to set the boundary for a role. Use the boundary to control the maximum permissions that the role can have. Setting a permissions boundary is an advanced feature that can affect the permissions for the role.
You cannot set the boundary for a service-linked role.
Policies used as permissions boundaries do not provide permissions. You must also attach a permissions policy to the role. To learn how the effective permissions for a role are evaluated, see [IAM JSON policy evaluation logic] in the IAM
User
Guide.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html
@option params [required, String] :role_name
The name (friendly name, not ARN) of the IAM role for which you want to set the permissions boundary.
@option params [required, String] :permissions_boundary
The ARN of the policy that is used to set the permissions boundary for the role.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.put_role_permissions_boundary({ role_name: "roleNameType", # required permissions_boundary: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutRolePermissionsBoundary AWS API Documentation
@overload put_role_permissions_boundary
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9306 def put_role_permissions_boundary(params = {}, options = {}) req = build_request(:put_role_permissions_boundary, params) req.send_request(options) end
Adds or updates an inline policy document that is embedded in the specified IAM
role.
When you embed an inline policy in a role, the inline policy is used as part of the role's access (permissions) policy. The role's trust policy is created at the same time as the role, using CreateRole. You can update a role's trust policy using UpdateAssumeRolePolicy. For more information about IAM
roles, see [Using roles to delegate permissions and federate identities].
A role can also have a managed policy attached to it. To attach a managed policy to a role, use AttachRolePolicy. To create a new managed policy, use CreatePolicy. For information about policies, see
- Managed policies and inline policies][2
-
in the *IAM
User
Guide*.
For information about the maximum number of inline policies that you can embed with a role, see [IAM and STS quotas] in the *IAM User
Guide*.
<note markdown=“1”> Because policy documents can be large, you should use POST rather than GET when calling `PutRolePolicy`. For general information about using the Query API with IAM
, see [Making query requests] in the *IAM User
Guide*.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html [4]: docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html
@option params [required, String] :role_name
The name of the role to associate the policy with. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_name
The name of the policy document. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_document
The policy document. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To attach a permissions policy to an IAM
role
# The following command adds a permissions policy to the role named Test-Role. resp = client.put_role_policy({ policy_document: "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"s3:*\",\"Resource\":\"*\"}}", policy_name: "S3AccessPolicy", role_name: "S3Access", })
@example Request syntax with placeholder values
resp = client.put_role_policy({ role_name: "roleNameType", # required policy_name: "policyNameType", # required policy_document: "policyDocumentType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutRolePolicy AWS API Documentation
@overload put_role_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9417 def put_role_policy(params = {}, options = {}) req = build_request(:put_role_policy, params) req.send_request(options) end
Adds or updates the policy that is specified as the IAM
user's permissions boundary. You can use an Amazon Web Services managed policy or a customer managed policy to set the boundary for a user. Use the boundary to control the maximum permissions that the user can have. Setting a permissions boundary is an advanced feature that can affect the permissions for the user.
Policies that are used as permissions boundaries do not provide permissions. You must also attach a permissions policy to the user. To learn how the effective permissions for a user are evaluated, see [IAM JSON policy evaluation logic] in the IAM
User
Guide.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html
@option params [required, String] :user_name
The name (friendly name, not ARN) of the IAM user for which you want to set the permissions boundary.
@option params [required, String] :permissions_boundary
The ARN of the policy that is used to set the permissions boundary for the user.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.put_user_permissions_boundary({ user_name: "userNameType", # required permissions_boundary: "arnType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutUserPermissionsBoundary AWS API Documentation
@overload put_user_permissions_boundary
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9459 def put_user_permissions_boundary(params = {}, options = {}) req = build_request(:put_user_permissions_boundary, params) req.send_request(options) end
Adds or updates an inline policy document that is embedded in the specified IAM
user.
An IAM
user can also have a managed policy attached to it. To attach a managed policy to a user, use AttachUserPolicy. To create a new managed policy, use CreatePolicy. For information about policies, see
- Managed policies and inline policies][1
-
in the *IAM
User
Guide*.
For information about the maximum number of inline policies that you can embed in a user, see [IAM and STS quotas] in the *IAM User
Guide*.
<note markdown=“1”> Because policy documents can be large, you should use POST rather than GET when calling `PutUserPolicy`. For general information about using the Query API with IAM
, see [Making query requests] in the *IAM User
Guide*.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html
@option params [required, String] :user_name
The name of the user to associate the policy with. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_name
The name of the policy document. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_document
The policy document. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To attach a policy to an IAM
user
# The following command attaches a policy to the IAM user named Bob. resp = client.put_user_policy({ policy_document: "{\"Version\":\"2012-10-17\",\"Statement\":{\"Effect\":\"Allow\",\"Action\":\"*\",\"Resource\":\"*\"}}", policy_name: "AllAccessPolicy", user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.put_user_policy({ user_name: "existingUserNameType", # required policy_name: "policyNameType", # required policy_document: "policyDocumentType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutUserPolicy AWS API Documentation
@overload put_user_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9562 def put_user_policy(params = {}, options = {}) req = build_request(:put_user_policy, params) req.send_request(options) end
Removes the specified client ID (also known as audience) from the list of client IDs registered for the specified IAM
OpenID Connect (OIDC) provider resource object.
This operation is idempotent; it does not fail or return an error if you try to remove a client ID that does not exist.
@option params [required, String] :open_id_connect_provider_arn
The Amazon Resource Name (ARN) of the IAM OIDC provider resource to remove the client ID from. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [required, String] :client_id
The client ID (also known as audience) to remove from the IAM OIDC provider resource. For more information about client IDs, see CreateOpenIDConnectProvider.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.remove_client_id_from_open_id_connect_provider({ open_id_connect_provider_arn: "arnType", # required client_id: "clientIDType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveClientIDFromOpenIDConnectProvider AWS API Documentation
@overload remove_client_id_from_open_id_connect_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9604 def remove_client_id_from_open_id_connect_provider(params = {}, options = {}) req = build_request(:remove_client_id_from_open_id_connect_provider, params) req.send_request(options) end
Removes the specified IAM
role from the specified EC2 instance profile.
Make sure that you do not have any Amazon EC2 instances running with the role you are about to remove from the instance profile. Removing a role from an instance profile that is associated with a running instance might break any applications running on the instance.
For more information about IAM
roles, see [Working with roles]. For more information about instance profiles, see [About instance profiles].
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/WorkingWithRoles.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/AboutInstanceProfiles.html
@option params [required, String] :instance_profile_name
The name of the instance profile to update. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :role_name
The name of the role to remove. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To remove a role from an instance profile
# The following command removes the role named Test-Role from the instance profile named ExampleInstanceProfile. resp = client.remove_role_from_instance_profile({ instance_profile_name: "ExampleInstanceProfile", role_name: "Test-Role", })
@example Request syntax with placeholder values
resp = client.remove_role_from_instance_profile({ instance_profile_name: "instanceProfileNameType", # required role_name: "roleNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveRoleFromInstanceProfile AWS API Documentation
@overload remove_role_from_instance_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9673 def remove_role_from_instance_profile(params = {}, options = {}) req = build_request(:remove_role_from_instance_profile, params) req.send_request(options) end
Removes the specified user from the specified group.
@option params [required, String] :group_name
The name of the group to update. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :user_name
The name of the user to remove. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To remove a user from an IAM
group
# The following command removes the user named Bob from the IAM group named Admins. resp = client.remove_user_from_group({ group_name: "Admins", user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.remove_user_from_group({ group_name: "groupNameType", # required user_name: "existingUserNameType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveUserFromGroup AWS API Documentation
@overload remove_user_from_group
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9727 def remove_user_from_group(params = {}, options = {}) req = build_request(:remove_user_from_group, params) req.send_request(options) end
Resets the password for a service-specific credential. The new password is Amazon Web Services generated and cryptographically strong. It cannot be configured by the user. Resetting the password immediately invalidates the previous password associated with this user.
@option params [String] :user_name
The name of the IAM user associated with the service-specific credential. If this value is not specified, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :service_specific_credential_id
The unique identifier of the service-specific credential. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@return [Types::ResetServiceSpecificCredentialResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::ResetServiceSpecificCredentialResponse#service_specific_credential #service_specific_credential} => Types::ServiceSpecificCredential
@example Request syntax with placeholder values
resp = client.reset_service_specific_credential({ user_name: "userNameType", service_specific_credential_id: "serviceSpecificCredentialId", # required })
@example Response structure
resp.service_specific_credential.create_date #=> Time resp.service_specific_credential.service_name #=> String resp.service_specific_credential.service_user_name #=> String resp.service_specific_credential.service_password #=> String resp.service_specific_credential.service_specific_credential_id #=> String resp.service_specific_credential.user_name #=> String resp.service_specific_credential.status #=> String, one of "Active", "Inactive"
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResetServiceSpecificCredential AWS API Documentation
@overload reset_service_specific_credential
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9788 def reset_service_specific_credential(params = {}, options = {}) req = build_request(:reset_service_specific_credential, params) req.send_request(options) end
Synchronizes the specified MFA device with its IAM
resource object on the Amazon Web Services servers.
For more information about creating and working with virtual MFA devices, see [Using a virtual MFA device] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_VirtualMFA.html
@option params [required, String] :user_name
The name of the user whose MFA device you want to resynchronize. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :serial_number
Serial number that uniquely identifies the MFA device. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :authentication_code_1
An authentication code emitted by the device. The format for this parameter is a sequence of six digits.
@option params [required, String] :authentication_code_2
A subsequent authentication code emitted by the device. The format for this parameter is a sequence of six digits.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.resync_mfa_device({ user_name: "existingUserNameType", # required serial_number: "serialNumberType", # required authentication_code_1: "authenticationCodeType", # required authentication_code_2: "authenticationCodeType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResyncMFADevice AWS API Documentation
@overload resync_mfa_device
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9852 def resync_mfa_device(params = {}, options = {}) req = build_request(:resync_mfa_device, params) req.send_request(options) end
Sets the specified version of the specified policy as the policy's default (operative) version.
This operation affects all users, groups, and roles that the policy is attached to. To list the users, groups, and roles that the policy is attached to, use ListEntitiesForPolicy.
For information about managed policies, see [Managed policies and inline policies] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html
@option params [required, String] :policy_arn
The Amazon Resource Name (ARN) of the IAM policy whose default version you want to set. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [required, String] :version_id
The version of the policy to set as the default (operative) version. For more information about managed policy versions, see [Versioning for managed policies][1] in the *IAM User Guide*. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.set_default_policy_version({ policy_arn: "arnType", # required version_id: "policyVersionIdType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SetDefaultPolicyVersion AWS API Documentation
@overload set_default_policy_version
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9905 def set_default_policy_version(params = {}, options = {}) req = build_request(:set_default_policy_version, params) req.send_request(options) end
Sets the specified version of the global endpoint token as the token version used for the account.
By default, Security Token Service (STS) is available as a global service, and all STS requests go to a single endpoint at `sts.amazonaws.com`. Amazon Web Services recommends using Regional STS endpoints to reduce latency, build in redundancy, and increase session token availability. For information about Regional endpoints for STS, see [Security Token Service endpoints and quotas] in the *Amazon Web Services General Reference*.
If you make an STS call to the global endpoint, the resulting session tokens might be valid in some Regions but not others. It depends on the version that is set in this operation. Version 1 tokens are valid only in Regions that are available by default. These tokens do not work in manually enabled Regions, such as Asia Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, version 2 tokens are longer and might affect systems where you temporarily store tokens. For information, see [Activating and deactivating STS in an Region] in the *IAM User
Guide*.
To view the current session token version, see the `GlobalEndpointTokenVersion` entry in the response of the GetAccountSummary operation.
[1]: docs.aws.amazon.com/general/latest/gr/sts.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html
@option params [required, String] :global_endpoint_token_version
The version of the global endpoint token. Version 1 tokens are valid only in Regions that are available by default. These tokens do not work in manually enabled Regions, such as Asia Pacific (Hong Kong). Version 2 tokens are valid in all Regions. However, version 2 tokens are longer and might affect systems where you temporarily store tokens. For information, see [Activating and deactivating STS in an Region][1] in the *IAM User Guide*. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To delete an access key for an IAM
user
# The following command sets the STS global endpoint token to version 2. Version 2 tokens are valid in all Regions. resp = client.set_security_token_service_preferences({ global_endpoint_token_version: "v2Token", })
@example Request syntax with placeholder values
resp = client.set_security_token_service_preferences({ global_endpoint_token_version: "v1Token", # required, accepts v1Token, v2Token })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SetSecurityTokenServicePreferences AWS API Documentation
@overload set_security_token_service_preferences
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 9976 def set_security_token_service_preferences(params = {}, options = {}) req = build_request(:set_security_token_service_preferences, params) req.send_request(options) end
Simulate how a set of IAM
policies and optionally a resource-based policy works with a list of API operations and Amazon Web Services resources to determine the policies' effective permissions. The policies are provided as strings.
The simulation does not perform the API operations; it only checks the authorization to determine if the simulated policies allow or deny the operations. You can simulate resources that don't exist in your account.
If you want to simulate existing policies that are attached to an IAM
user, group, or role, use SimulatePrincipalPolicy instead.
Context keys are variables that are maintained by Amazon Web Services and its services and which provide details about the context of an API query request. You can use the `Condition` element of an IAM
policy to evaluate context keys. To get the list of context keys that the policies require for correct simulation, use GetContextKeysForCustomPolicy.
If the output is long, you can use `MaxItems` and `Marker` parameters to paginate the results.
For more information about using the policy simulator, see [Testing IAM
policies with the IAM
policy simulator ][1]in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html
@option params [required, Array<String>] :policy_input_list
A list of policy documents to include in the simulation. Each document is specified as a string containing the complete, valid JSON text of an IAM policy. Do not include any resource-based policies in this parameter. Any resource-based policy must be submitted with the `ResourcePolicy` parameter. The policies cannot be "scope-down" policies, such as you could include in a call to [GetFederationToken][1] or one of the [AssumeRole][2] API operations. In other words, do not use policies designed to restrict what a user can do while using the temporary credentials. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and STS character quotas][3]. The [regex pattern][4] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetFederationToken.html [2]: https://docs.aws.amazon.com/IAM/latest/APIReference/API_AssumeRole.html [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length [4]: http://wikipedia.org/wiki/regex
@option params [Array<String>] :permissions_boundary_policy_input_list
The IAM permissions boundary policy to simulate. The permissions boundary sets the maximum permissions that an IAM entity can have. You can input only one permissions boundary when you pass a policy to this operation. For more information about permissions boundaries, see [Permissions boundaries for IAM entities][1] in the *IAM User Guide*. The policy input is specified as a string that contains the complete, valid JSON text of a permissions boundary policy. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and STS character quotas][2]. The [regex pattern][3] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length [3]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :action_names
A list of names of API operations to evaluate in the simulation. Each operation is evaluated against each resource. Each operation must include the service identifier, such as `iam:CreateUser`. This operation does not support using wildcards (*) in an action name.
@option params [Array<String>] :resource_arns
A list of ARNs of Amazon Web Services resources to include in the simulation. If this parameter is not provided, then the value defaults to `*` (all resources). Each API in the `ActionNames` parameter is evaluated for each resource in this list. The simulation determines the access result (allowed or denied) of each combination and reports it in the response. You can simulate resources that don't exist in your account. The simulation does not automatically retrieve policies for the specified resources. If you want to include a resource policy in the simulation, then you must include the policy as a string in the `ResourcePolicy` parameter. If you include a `ResourcePolicy`, then it must be applicable to all of the resources included in the simulation or you receive an invalid input error. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [String] :resource_policy
A resource-based policy to include in the simulation provided as a string. Each resource in the simulation is treated as if it had this policy attached. You can include only one resource-based policy in a simulation. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and STS character quotas][1]. The [regex pattern][2] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length [2]: http://wikipedia.org/wiki/regex
@option params [String] :resource_owner
An ARN representing the account ID that specifies the owner of any simulated resource that does not identify its owner in the resource ARN. Examples of resource ARNs include an S3 bucket or object. If `ResourceOwner` is specified, it is also used as the account owner of any `ResourcePolicy` included in the simulation. If the `ResourceOwner` parameter is not specified, then the owner of the resources and the resource policy defaults to the account of the identity provided in `CallerArn`. This parameter is required only if you specify a resource-based policy and account that owns the resource is different from the account that owns the simulated calling user `CallerArn`. The ARN for an account uses the following syntax: `arn:aws:iam::AWS-account-ID:root`. For example, to represent the account with the 112233445566 ID, use the following ARN: `arn:aws:iam::112233445566-ID:root`.
@option params [String] :caller_arn
The ARN of the IAM user that you want to use as the simulated caller of the API operations. `CallerArn` is required if you include a `ResourcePolicy` so that the policy's `Principal` element has a value to use in evaluating the policy. You can specify only the ARN of an IAM user. You cannot specify the ARN of an assumed role, federated user, or a service principal.
@option params [Array<Types::ContextEntry>] :context_entries
A list of context keys and corresponding values for the simulation to use. Whenever a context key is evaluated in one of the simulated IAM permissions policies, the corresponding value is supplied.
@option params [String] :resource_handling_option
Specifies the type of simulation to run. Different API operations that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation. Each of the EC2 scenarios requires that you specify instance, image, and security-group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network-interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see [Supported platforms][1] in the *Amazon EC2 User Guide*. * **EC2-Classic-InstanceStore** instance, image, security-group * **EC2-Classic-EBS** instance, image, security-group, volume * **EC2-VPC-InstanceStore** instance, image, security-group, network-interface * **EC2-VPC-InstanceStore-Subnet** instance, image, security-group, network-interface, subnet * **EC2-VPC-EBS** instance, image, security-group, network-interface, volume * **EC2-VPC-EBS-Subnet** instance, image, security-group, network-interface, subnet, volume [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@return [Types::SimulatePolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::SimulatePolicyResponse#evaluation_results #evaluation_results} => Array<Types::EvaluationResult> * {Types::SimulatePolicyResponse#is_truncated #is_truncated} => Boolean * {Types::SimulatePolicyResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.simulate_custom_policy({ policy_input_list: ["policyDocumentType"], # required permissions_boundary_policy_input_list: ["policyDocumentType"], action_names: ["ActionNameType"], # required resource_arns: ["ResourceNameType"], resource_policy: "policyDocumentType", resource_owner: "ResourceNameType", caller_arn: "ResourceNameType", context_entries: [ { context_key_name: "ContextKeyNameType", context_key_values: ["ContextKeyValueType"], context_key_type: "string", # accepts string, stringList, numeric, numericList, boolean, booleanList, ip, ipList, binary, binaryList, date, dateList }, ], resource_handling_option: "ResourceHandlingOptionType", max_items: 1, marker: "markerType", })
@example Response structure
resp.evaluation_results #=> Array resp.evaluation_results[0].eval_action_name #=> String resp.evaluation_results[0].eval_resource_name #=> String resp.evaluation_results[0].eval_decision #=> String, one of "allowed", "explicitDeny", "implicitDeny" resp.evaluation_results[0].matched_statements #=> Array resp.evaluation_results[0].matched_statements[0].source_policy_id #=> String resp.evaluation_results[0].matched_statements[0].source_policy_type #=> String, one of "user", "group", "role", "aws-managed", "user-managed", "resource", "none" resp.evaluation_results[0].matched_statements[0].start_position.line #=> Integer resp.evaluation_results[0].matched_statements[0].start_position.column #=> Integer resp.evaluation_results[0].matched_statements[0].end_position.line #=> Integer resp.evaluation_results[0].matched_statements[0].end_position.column #=> Integer resp.evaluation_results[0].missing_context_values #=> Array resp.evaluation_results[0].missing_context_values[0] #=> String resp.evaluation_results[0].organizations_decision_detail.allowed_by_organizations #=> Boolean resp.evaluation_results[0].permissions_boundary_decision_detail.allowed_by_permissions_boundary #=> Boolean resp.evaluation_results[0].eval_decision_details #=> Hash resp.evaluation_results[0].eval_decision_details["EvalDecisionSourceType"] #=> String, one of "allowed", "explicitDeny", "implicitDeny" resp.evaluation_results[0].resource_specific_results #=> Array resp.evaluation_results[0].resource_specific_results[0].eval_resource_name #=> String resp.evaluation_results[0].resource_specific_results[0].eval_resource_decision #=> String, one of "allowed", "explicitDeny", "implicitDeny" resp.evaluation_results[0].resource_specific_results[0].matched_statements #=> Array resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].source_policy_id #=> String resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].source_policy_type #=> String, one of "user", "group", "role", "aws-managed", "user-managed", "resource", "none" resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].start_position.line #=> Integer resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].start_position.column #=> Integer resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].end_position.line #=> Integer resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].end_position.column #=> Integer resp.evaluation_results[0].resource_specific_results[0].missing_context_values #=> Array resp.evaluation_results[0].resource_specific_results[0].missing_context_values[0] #=> String resp.evaluation_results[0].resource_specific_results[0].eval_decision_details #=> Hash resp.evaluation_results[0].resource_specific_results[0].eval_decision_details["EvalDecisionSourceType"] #=> String, one of "allowed", "explicitDeny", "implicitDeny" resp.evaluation_results[0].resource_specific_results[0].permissions_boundary_decision_detail.allowed_by_permissions_boundary #=> Boolean resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulateCustomPolicy AWS API Documentation
@overload simulate_custom_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 10304 def simulate_custom_policy(params = {}, options = {}) req = build_request(:simulate_custom_policy, params) req.send_request(options) end
Simulate how a set of IAM
policies attached to an IAM
entity works with a list of API operations and Amazon Web Services resources to determine the policies' effective permissions. The entity can be an IAM
user, group, or role. If you specify a user, then the simulation also includes all of the policies that are attached to groups that the user belongs to. You can simulate resources that don't exist in your account.
You can optionally include a list of one or more additional policies specified as strings to include in the simulation. If you want to simulate only policies specified as strings, use SimulateCustomPolicy instead.
You can also optionally include one resource-based policy to be evaluated with each of the resources included in the simulation.
The simulation does not perform the API operations; it only checks the authorization to determine if the simulated policies allow or deny the operations.
Note: This operation discloses information about the permissions granted to other users. If you do not want users to see other user's permissions, then consider allowing them to use SimulateCustomPolicy instead.
Context keys are variables maintained by Amazon Web Services and its services that provide details about the context of an API query request. You can use the `Condition` element of an IAM
policy to evaluate context keys. To get the list of context keys that the policies require for correct simulation, use GetContextKeysForPrincipalPolicy.
If the output is long, you can use the `MaxItems` and `Marker` parameters to paginate the results.
For more information about using the policy simulator, see [Testing IAM
policies with the IAM
policy simulator ][1]in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_testing-policies.html
@option params [required, String] :policy_source_arn
The Amazon Resource Name (ARN) of a user, group, or role whose policies you want to include in the simulation. If you specify a user, group, or role, the simulation includes all policies that are associated with that entity. If you specify a user, the simulation also includes all policies that are attached to any groups the user belongs to. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and STS character quotas][1]. For more information about ARNs, see [Amazon Resource Names (ARNs)][2] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length [2]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [Array<String>] :policy_input_list
An optional list of additional policy documents to include in the simulation. Each document is specified as a string containing the complete, valid JSON text of an IAM policy. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@option params [Array<String>] :permissions_boundary_policy_input_list
The IAM permissions boundary policy to simulate. The permissions boundary sets the maximum permissions that the entity can have. You can input only one permissions boundary when you pass a policy to this operation. An IAM entity can only have one permissions boundary in effect at a time. For example, if a permissions boundary is attached to an entity and you pass in a different permissions boundary policy using this parameter, then the new permissions boundary policy is used for the simulation. For more information about permissions boundaries, see [Permissions boundaries for IAM entities][1] in the *IAM User Guide*. The policy input is specified as a string containing the complete, valid JSON text of a permissions boundary policy. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and STS character quotas][2]. The [regex pattern][3] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length [3]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :action_names
A list of names of API operations to evaluate in the simulation. Each operation is evaluated for each resource. Each operation must include the service identifier, such as `iam:CreateUser`.
@option params [Array<String>] :resource_arns
A list of ARNs of Amazon Web Services resources to include in the simulation. If this parameter is not provided, then the value defaults to `*` (all resources). Each API in the `ActionNames` parameter is evaluated for each resource in this list. The simulation determines the access result (allowed or denied) of each combination and reports it in the response. You can simulate resources that don't exist in your account. The simulation does not automatically retrieve policies for the specified resources. If you want to include a resource policy in the simulation, then you must include the policy as a string in the `ResourcePolicy` parameter. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [String] :resource_policy
A resource-based policy to include in the simulation provided as a string. Each resource in the simulation is treated as if it had this policy attached. You can include only one resource-based policy in a simulation. The maximum length of the policy document that you can pass in this operation, including whitespace, is listed below. To view the maximum character counts of a managed policy with no whitespaces, see [IAM and STS character quotas][1]. The [regex pattern][2] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html#reference_iam-quotas-entity-length [2]: http://wikipedia.org/wiki/regex
@option params [String] :resource_owner
An account ID that specifies the owner of any simulated resource that does not identify its owner in the resource ARN. Examples of resource ARNs include an S3 bucket or object. If `ResourceOwner` is specified, it is also used as the account owner of any `ResourcePolicy` included in the simulation. If the `ResourceOwner` parameter is not specified, then the owner of the resources and the resource policy defaults to the account of the identity provided in `CallerArn`. This parameter is required only if you specify a resource-based policy and account that owns the resource is different from the account that owns the simulated calling user `CallerArn`.
@option params [String] :caller_arn
The ARN of the IAM user that you want to specify as the simulated caller of the API operations. If you do not specify a `CallerArn`, it defaults to the ARN of the user that you specify in `PolicySourceArn`, if you specified a user. If you include both a `PolicySourceArn` (for example, `arn:aws:iam::123456789012:user/David`) and a `CallerArn` (for example, `arn:aws:iam::123456789012:user/Bob`), the result is that you simulate calling the API operations as Bob, as if Bob had David's policies. You can specify only the ARN of an IAM user. You cannot specify the ARN of an assumed role, federated user, or a service principal. `CallerArn` is required if you include a `ResourcePolicy` and the `PolicySourceArn` is not the ARN for an IAM user. This is required so that the resource-based policy's `Principal` element has a value to use in evaluating the policy. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [Array<Types::ContextEntry>] :context_entries
A list of context keys and corresponding values for the simulation to use. Whenever a context key is evaluated in one of the simulated IAM permissions policies, the corresponding value is supplied.
@option params [String] :resource_handling_option
Specifies the type of simulation to run. Different API operations that support resource-based policies require different combinations of resources. By specifying the type of simulation to run, you enable the policy simulator to enforce the presence of the required resources to ensure reliable simulation results. If your simulation does not match one of the following scenarios, then you can omit this parameter. The following list shows each of the supported scenario values and the resources that you must define to run the simulation. Each of the EC2 scenarios requires that you specify instance, image, and security group resources. If your scenario includes an EBS volume, then you must specify that volume as a resource. If the EC2 scenario includes VPC, then you must supply the network interface resource. If it includes an IP subnet, then you must specify the subnet resource. For more information on the EC2 scenario options, see [Supported platforms][1] in the *Amazon EC2 User Guide*. * **EC2-Classic-InstanceStore** instance, image, security group * **EC2-Classic-EBS** instance, image, security group, volume * **EC2-VPC-InstanceStore** instance, image, security group, network interface * **EC2-VPC-InstanceStore-Subnet** instance, image, security group, network interface, subnet * **EC2-VPC-EBS** instance, image, security group, network interface, volume * **EC2-VPC-EBS-Subnet** instance, image, security group, network interface, subnet, volume [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html
@option params [Integer] :max_items
Use this only when paginating results to indicate the maximum number of items you want in the response. If additional items exist beyond the maximum you specify, the `IsTruncated` response element is `true`. If you do not include this parameter, the number of items defaults to 100. Note that IAM might return fewer results, even when there are more results available. In that case, the `IsTruncated` response element returns `true`, and `Marker` contains a value to include in the subsequent call that tells the service where to continue from.
@option params [String] :marker
Use this parameter only when paginating results and only after you receive a response indicating that the results are truncated. Set it to the value of the `Marker` element in the response that you received to indicate where the next call should start.
@return [Types::SimulatePolicyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::SimulatePolicyResponse#evaluation_results #evaluation_results} => Array<Types::EvaluationResult> * {Types::SimulatePolicyResponse#is_truncated #is_truncated} => Boolean * {Types::SimulatePolicyResponse#marker #marker} => String
The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
@example Request syntax with placeholder values
resp = client.simulate_principal_policy({ policy_source_arn: "arnType", # required policy_input_list: ["policyDocumentType"], permissions_boundary_policy_input_list: ["policyDocumentType"], action_names: ["ActionNameType"], # required resource_arns: ["ResourceNameType"], resource_policy: "policyDocumentType", resource_owner: "ResourceNameType", caller_arn: "ResourceNameType", context_entries: [ { context_key_name: "ContextKeyNameType", context_key_values: ["ContextKeyValueType"], context_key_type: "string", # accepts string, stringList, numeric, numericList, boolean, booleanList, ip, ipList, binary, binaryList, date, dateList }, ], resource_handling_option: "ResourceHandlingOptionType", max_items: 1, marker: "markerType", })
@example Response structure
resp.evaluation_results #=> Array resp.evaluation_results[0].eval_action_name #=> String resp.evaluation_results[0].eval_resource_name #=> String resp.evaluation_results[0].eval_decision #=> String, one of "allowed", "explicitDeny", "implicitDeny" resp.evaluation_results[0].matched_statements #=> Array resp.evaluation_results[0].matched_statements[0].source_policy_id #=> String resp.evaluation_results[0].matched_statements[0].source_policy_type #=> String, one of "user", "group", "role", "aws-managed", "user-managed", "resource", "none" resp.evaluation_results[0].matched_statements[0].start_position.line #=> Integer resp.evaluation_results[0].matched_statements[0].start_position.column #=> Integer resp.evaluation_results[0].matched_statements[0].end_position.line #=> Integer resp.evaluation_results[0].matched_statements[0].end_position.column #=> Integer resp.evaluation_results[0].missing_context_values #=> Array resp.evaluation_results[0].missing_context_values[0] #=> String resp.evaluation_results[0].organizations_decision_detail.allowed_by_organizations #=> Boolean resp.evaluation_results[0].permissions_boundary_decision_detail.allowed_by_permissions_boundary #=> Boolean resp.evaluation_results[0].eval_decision_details #=> Hash resp.evaluation_results[0].eval_decision_details["EvalDecisionSourceType"] #=> String, one of "allowed", "explicitDeny", "implicitDeny" resp.evaluation_results[0].resource_specific_results #=> Array resp.evaluation_results[0].resource_specific_results[0].eval_resource_name #=> String resp.evaluation_results[0].resource_specific_results[0].eval_resource_decision #=> String, one of "allowed", "explicitDeny", "implicitDeny" resp.evaluation_results[0].resource_specific_results[0].matched_statements #=> Array resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].source_policy_id #=> String resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].source_policy_type #=> String, one of "user", "group", "role", "aws-managed", "user-managed", "resource", "none" resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].start_position.line #=> Integer resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].start_position.column #=> Integer resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].end_position.line #=> Integer resp.evaluation_results[0].resource_specific_results[0].matched_statements[0].end_position.column #=> Integer resp.evaluation_results[0].resource_specific_results[0].missing_context_values #=> Array resp.evaluation_results[0].resource_specific_results[0].missing_context_values[0] #=> String resp.evaluation_results[0].resource_specific_results[0].eval_decision_details #=> Hash resp.evaluation_results[0].resource_specific_results[0].eval_decision_details["EvalDecisionSourceType"] #=> String, one of "allowed", "explicitDeny", "implicitDeny" resp.evaluation_results[0].resource_specific_results[0].permissions_boundary_decision_detail.allowed_by_permissions_boundary #=> Boolean resp.is_truncated #=> Boolean resp.marker #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulatePrincipalPolicy AWS API Documentation
@overload simulate_principal_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 10661 def simulate_principal_policy(params = {}, options = {}) req = build_request(:simulate_principal_policy, params) req.send_request(options) end
Adds one or more tags to an IAM
instance profile. If a tag with the same key name already exists, then that tag is overwritten with the new value.
Each tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:
-
**Administrative grouping and discovery** - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name *Cost Center* and the value 41200.
-
**Access control** - Include tags in
IAM
user-based and resource-based policies. You can use tags to restrict access to only anIAM
instance profile that has a specified tag attached. For examples of policies that show how to use tags to control access, see [Control access usingIAM
tags] in the *IAMUser
Guide*.
<note markdown=“1”> * If any one of the tags is invalid or if you exceed the allowed
maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see [Tagging IAM resources][2] in the *IAM User Guide*.
-
Amazon Web Services always interprets the tag `Value` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :instance_profile_name
The name of the IAM instance profile to which you want to add tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<Types::Tag>] :tags
The list of tags that you want to attach to the IAM instance profile. Each tag consists of a key name and an associated value.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.tag_instance_profile({ instance_profile_name: "instanceProfileNameType", # required tags: [ # required { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/TagInstanceProfile AWS API Documentation
@overload tag_instance_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 10736 def tag_instance_profile(params = {}, options = {}) req = build_request(:tag_instance_profile, params) req.send_request(options) end
Adds one or more tags to an IAM
virtual multi-factor authentication (MFA) device. If a tag with the same key name already exists, then that tag is overwritten with the new value.
A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:
-
**Administrative grouping and discovery** - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name *Cost Center* and the value 41200.
-
**Access control** - Include tags in
IAM
user-based and resource-based policies. You can use tags to restrict access to only anIAM
virtual MFA device that has a specified tag attached. For examples of policies that show how to use tags to control access, see [Control access usingIAM
tags] in the *IAMUser
Guide*.
<note markdown=“1”> * If any one of the tags is invalid or if you exceed the allowed
maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see [Tagging IAM resources][2] in the *IAM User Guide*.
-
Amazon Web Services always interprets the tag `Value` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :serial_number
The unique identifier for the IAM virtual MFA device to which you want to add tags. For virtual MFA devices, the serial number is the same as the ARN. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<Types::Tag>] :tags
The list of tags that you want to attach to the IAM virtual MFA device. Each tag consists of a key name and an associated value.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.tag_mfa_device({ serial_number: "serialNumberType", # required tags: [ # required { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/TagMFADevice AWS API Documentation
@overload tag_mfa_device
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 10813 def tag_mfa_device(params = {}, options = {}) req = build_request(:tag_mfa_device, params) req.send_request(options) end
Adds one or more tags to an OpenID Connect (OIDC)-compatible identity provider. For more information about these providers, see [About web identity federation]. If a tag with the same key name already exists, then that tag is overwritten with the new value.
A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:
-
**Administrative grouping and discovery** - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name *Cost Center* and the value 41200.
-
**Access control** - Include tags in
IAM
user-based and resource-based policies. You can use tags to restrict access to only an OIDC provider that has a specified tag attached. For examples of policies that show how to use tags to control access, see [Control access usingIAM
tags] in the *IAMUser
Guide*.
<note markdown=“1”> * If any one of the tags is invalid or if you exceed the allowed
maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see [Tagging IAM resources][3] in the *IAM User Guide*.
-
Amazon Web Services always interprets the tag `Value` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :open_id_connect_provider_arn
The ARN of the OIDC identity provider in IAM to which you want to add tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<Types::Tag>] :tags
The list of tags that you want to attach to the OIDC identity provider in IAM. Each tag consists of a key name and an associated value.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.tag_open_id_connect_provider({ open_id_connect_provider_arn: "arnType", # required tags: [ # required { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/TagOpenIDConnectProvider AWS API Documentation
@overload tag_open_id_connect_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 10891 def tag_open_id_connect_provider(params = {}, options = {}) req = build_request(:tag_open_id_connect_provider, params) req.send_request(options) end
Adds one or more tags to an IAM
customer managed policy. If a tag with the same key name already exists, then that tag is overwritten with the new value.
A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:
-
**Administrative grouping and discovery** - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name *Cost Center* and the value 41200.
-
**Access control** - Include tags in
IAM
user-based and resource-based policies. You can use tags to restrict access to only anIAM
customer managed policy that has a specified tag attached. For examples of policies that show how to use tags to control access, see [Control access usingIAM
tags] in the *IAMUser
Guide*.
<note markdown=“1”> * If any one of the tags is invalid or if you exceed the allowed
maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see [Tagging IAM resources][2] in the *IAM User Guide*.
-
Amazon Web Services always interprets the tag `Value` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :policy_arn
The ARN of the IAM customer managed policy to which you want to add tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<Types::Tag>] :tags
The list of tags that you want to attach to the IAM customer managed policy. Each tag consists of a key name and an associated value.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.tag_policy({ policy_arn: "arnType", # required tags: [ # required { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/TagPolicy AWS API Documentation
@overload tag_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 10968 def tag_policy(params = {}, options = {}) req = build_request(:tag_policy, params) req.send_request(options) end
Adds one or more tags to an IAM
role. The role can be a regular role or a service-linked role. If a tag with the same key name already exists, then that tag is overwritten with the new value.
A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:
-
**Administrative grouping and discovery** - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name *Cost Center* and the value 41200.
-
**Access control** - Include tags in
IAM
user-based and resource-based policies. You can use tags to restrict access to only anIAM
role that has a specified tag attached. You can also restrict access to only those resources that have a certain tag attached. For examples of policies that show how to use tags to control access, see [Control access usingIAM
tags] in the *IAMUser
Guide*. -
**Cost allocation** - Use tags to help track which individuals and teams are using which Amazon Web Services resources.
<note markdown=“1”> * If any one of the tags is invalid or if you exceed the allowed
maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see [Tagging IAM resources][2] in the *IAM User Guide*.
-
Amazon Web Services always interprets the tag `Value` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.
</note>
For more information about tagging, see [Tagging IAM
identities] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :role_name
The name of the IAM role to which you want to add tags. This parameter accepts (through its [regex pattern][1]) a string of characters that consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<Types::Tag>] :tags
The list of tags that you want to attach to the IAM role. Each tag consists of a key name and an associated value.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To add a tag key and value to an IAM
role
# The following example shows how to add tags to an existing role. resp = client.tag_role({ role_name: "taggedrole", tags: [ { key: "Dept", value: "Accounting", }, { key: "CostCenter", value: "12345", }, ], })
@example Request syntax with placeholder values
resp = client.tag_role({ role_name: "roleNameType", # required tags: [ # required { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/TagRole AWS API Documentation
@overload tag_role
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11069 def tag_role(params = {}, options = {}) req = build_request(:tag_role, params) req.send_request(options) end
Adds one or more tags to a Security Assertion Markup Language (SAML) identity provider. For more information about these providers, see [About SAML 2.0-based federation ][1]. If a tag with the same key name already exists, then that tag is overwritten with the new value.
A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:
-
**Administrative grouping and discovery** - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name *Cost Center* and the value 41200.
-
**Access control** - Include tags in
IAM
user-based and resource-based policies. You can use tags to restrict access to only a SAML identity provider that has a specified tag attached. For examples of policies that show how to use tags to control access, see [Control access usingIAM
tags] in the *IAMUser
Guide*.
<note markdown=“1”> * If any one of the tags is invalid or if you exceed the allowed
maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see [Tagging IAM resources][3] in the *IAM User Guide*.
-
Amazon Web Services always interprets the tag `Value` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :saml_provider_arn
The ARN of the SAML identity provider in IAM to which you want to add tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<Types::Tag>] :tags
The list of tags that you want to attach to the SAML identity provider in IAM. Each tag consists of a key name and an associated value.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.tag_saml_provider({ saml_provider_arn: "arnType", # required tags: [ # required { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/TagSAMLProvider AWS API Documentation
@overload tag_saml_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11147 def tag_saml_provider(params = {}, options = {}) req = build_request(:tag_saml_provider, params) req.send_request(options) end
Adds one or more tags to an IAM
server certificate. If a tag with the same key name already exists, then that tag is overwritten with the new value.
<note markdown=“1”> For certificates in a Region supported by Certificate Manager (ACM), we recommend that you don't use IAM
server certificates. Instead, use ACM to provision, manage, and deploy your server certificates. For more information about IAM
server certificates, [Working with server certificates] in the *IAM User
Guide*.
</note>
A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:
-
**Administrative grouping and discovery** - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name *Cost Center* and the value 41200.
-
**Access control** - Include tags in
IAM
user-based and resource-based policies. You can use tags to restrict access to only a server certificate that has a specified tag attached. For examples of policies that show how to use tags to control access, see -
**Cost allocation** - Use tags to help track which individuals and teams are using which Amazon Web Services resources.
<note markdown=“1”> * If any one of the tags is invalid or if you exceed the allowed
maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see [Tagging IAM resources][3] in the *IAM User Guide*.
-
Amazon Web Services always interprets the tag `Value` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :server_certificate_name
The name of the IAM server certificate to which you want to add tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<Types::Tag>] :tags
The list of tags that you want to attach to the IAM server certificate. Each tag consists of a key name and an associated value.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.tag_server_certificate({ server_certificate_name: "serverCertificateNameType", # required tags: [ # required { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/TagServerCertificate AWS API Documentation
@overload tag_server_certificate
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11234 def tag_server_certificate(params = {}, options = {}) req = build_request(:tag_server_certificate, params) req.send_request(options) end
Adds one or more tags to an IAM
user. If a tag with the same key name already exists, then that tag is overwritten with the new value.
A tag consists of a key name and an associated value. By assigning tags to your resources, you can do the following:
-
**Administrative grouping and discovery** - Attach tags to resources to aid in organization and search. For example, you could search for all resources with the key name Project and the value MyImportantProject. Or search for all resources with the key name *Cost Center* and the value 41200.
-
**Access control** - Include tags in
IAM
user-based and resource-based policies. You can use tags to restrict access to only anIAM
requesting user that has a specified tag attached. You can also restrict access to only those resources that have a certain tag attached. For examples of policies that show how to use tags to control access, see [Control access usingIAM
tags] in the *IAMUser
Guide*. -
**Cost allocation** - Use tags to help track which individuals and teams are using which Amazon Web Services resources.
<note markdown=“1”> * If any one of the tags is invalid or if you exceed the allowed
maximum number of tags, then the entire request fails and the resource is not created. For more information about tagging, see [Tagging IAM resources][2] in the *IAM User Guide*.
-
Amazon Web Services always interprets the tag `Value` as a single string. If you need to store an array, you can store comma-separated values in the string. However, you must interpret the value in your code.
</note>
For more information about tagging, see [Tagging IAM
identities] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :user_name
The name of the IAM user to which you want to add tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<Types::Tag>] :tags
The list of tags that you want to attach to the IAM user. Each tag consists of a key name and an associated value.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To add a tag key and value to an IAM
user
# The following example shows how to add tags to an existing user. resp = client.tag_user({ tags: [ { key: "Dept", value: "Accounting", }, { key: "CostCenter", value: "12345", }, ], user_name: "anika", })
@example Request syntax with placeholder values
resp = client.tag_user({ user_name: "existingUserNameType", # required tags: [ # required { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/TagUser AWS API Documentation
@overload tag_user
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11335 def tag_user(params = {}, options = {}) req = build_request(:tag_user, params) req.send_request(options) end
Removes the specified tags from the IAM
instance profile. For more information about tagging, see [Tagging IAM
resources] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :instance_profile_name
The name of the IAM instance profile from which you want to remove tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :tag_keys
A list of key names as a simple array of strings. The tags with matching keys are removed from the specified instance profile.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.untag_instance_profile({ instance_profile_name: "instanceProfileNameType", # required tag_keys: ["tagKeyType"], # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UntagInstanceProfile AWS API Documentation
@overload untag_instance_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11378 def untag_instance_profile(params = {}, options = {}) req = build_request(:untag_instance_profile, params) req.send_request(options) end
Removes the specified tags from the IAM
virtual multi-factor authentication (MFA) device. For more information about tagging, see
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :serial_number
The unique identifier for the IAM virtual MFA device from which you want to remove tags. For virtual MFA devices, the serial number is the same as the ARN. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :tag_keys
A list of key names as a simple array of strings. The tags with matching keys are removed from the specified instance profile.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.untag_mfa_device({ serial_number: "serialNumberType", # required tag_keys: ["tagKeyType"], # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UntagMFADevice AWS API Documentation
@overload untag_mfa_device
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11422 def untag_mfa_device(params = {}, options = {}) req = build_request(:untag_mfa_device, params) req.send_request(options) end
Removes the specified tags from the specified OpenID Connect (OIDC)-compatible identity provider in IAM
. For more information about OIDC providers, see [About web identity federation]. For more information about tagging, see [Tagging IAM
resources] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :open_id_connect_provider_arn
The ARN of the OIDC provider in IAM from which you want to remove tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :tag_keys
A list of key names as a simple array of strings. The tags with matching keys are removed from the specified OIDC provider.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.untag_open_id_connect_provider({ open_id_connect_provider_arn: "arnType", # required tag_keys: ["tagKeyType"], # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UntagOpenIDConnectProvider AWS API Documentation
@overload untag_open_id_connect_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11468 def untag_open_id_connect_provider(params = {}, options = {}) req = build_request(:untag_open_id_connect_provider, params) req.send_request(options) end
Removes the specified tags from the customer managed policy. For more information about tagging, see [Tagging IAM
resources] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :policy_arn
The ARN of the IAM customer managed policy from which you want to remove tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :tag_keys
A list of key names as a simple array of strings. The tags with matching keys are removed from the specified policy.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.untag_policy({ policy_arn: "arnType", # required tag_keys: ["tagKeyType"], # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UntagPolicy AWS API Documentation
@overload untag_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11511 def untag_policy(params = {}, options = {}) req = build_request(:untag_policy, params) req.send_request(options) end
Removes the specified tags from the role. For more information about tagging, see [Tagging IAM
resources] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :role_name
The name of the IAM role from which you want to remove tags. This parameter accepts (through its [regex pattern][1]) a string of characters that consist of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :tag_keys
A list of key names as a simple array of strings. The tags with matching keys are removed from the specified role.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To remove a tag from an IAM
role
# The following example shows how to remove a tag with the key 'Dept' from a role named 'taggedrole'. resp = client.untag_role({ role_name: "taggedrole", tag_keys: [ "Dept", ], })
@example Request syntax with placeholder values
resp = client.untag_role({ role_name: "roleNameType", # required tag_keys: ["tagKeyType"], # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UntagRole AWS API Documentation
@overload untag_role
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11564 def untag_role(params = {}, options = {}) req = build_request(:untag_role, params) req.send_request(options) end
Removes the specified tags from the specified Security Assertion Markup Language (SAML) identity provider in IAM
. For more information about these providers, see [About web identity federation]. For more information about tagging, see [Tagging IAM
resources] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :saml_provider_arn
The ARN of the SAML identity provider in IAM from which you want to remove tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :tag_keys
A list of key names as a simple array of strings. The tags with matching keys are removed from the specified SAML identity provider.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.untag_saml_provider({ saml_provider_arn: "arnType", # required tag_keys: ["tagKeyType"], # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UntagSAMLProvider AWS API Documentation
@overload untag_saml_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11610 def untag_saml_provider(params = {}, options = {}) req = build_request(:untag_saml_provider, params) req.send_request(options) end
Removes the specified tags from the IAM
server certificate. For more information about tagging, see [Tagging IAM
resources] in the *IAM User
Guide*.
<note markdown=“1”> For certificates in a Region supported by Certificate Manager (ACM), we recommend that you don't use IAM
server certificates. Instead, use ACM to provision, manage, and deploy your server certificates. For more information about IAM
server certificates, [Working with server certificates] in the *IAM User
Guide*.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html
@option params [required, String] :server_certificate_name
The name of the IAM server certificate from which you want to remove tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :tag_keys
A list of key names as a simple array of strings. The tags with matching keys are removed from the specified IAM server certificate.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.untag_server_certificate({ server_certificate_name: "serverCertificateNameType", # required tag_keys: ["tagKeyType"], # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UntagServerCertificate AWS API Documentation
@overload untag_server_certificate
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11662 def untag_server_certificate(params = {}, options = {}) req = build_request(:untag_server_certificate, params) req.send_request(options) end
Removes the specified tags from the user. For more information about tagging, see [Tagging IAM
resources] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@option params [required, String] :user_name
The name of the IAM user from which you want to remove tags. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, Array<String>] :tag_keys
A list of key names as a simple array of strings. The tags with matching keys are removed from the specified user.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To remove a tag from an IAM
user
# The following example shows how to remove tags that are attached to a user named 'anika'. resp = client.untag_user({ tag_keys: [ "Dept", ], user_name: "anika", })
@example Request syntax with placeholder values
resp = client.untag_user({ user_name: "existingUserNameType", # required tag_keys: ["tagKeyType"], # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UntagUser AWS API Documentation
@overload untag_user
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11715 def untag_user(params = {}, options = {}) req = build_request(:untag_user, params) req.send_request(options) end
Changes the status of the specified access key from Active to Inactive, or vice versa. This operation can be used to disable a user's key as part of a key rotation workflow.
If the `UserName` is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users.
For information about rotating keys, see [Managing keys and certificates] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html
@option params [String] :user_name
The name of the user whose key you want to update. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :access_key_id
The access key ID of the secret access key you want to update. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :status
The status you want to assign to the secret access key. `Active` means that the key can be used for programmatic calls to Amazon Web Services, while `Inactive` means that the key cannot be used.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To activate or deactivate an access key for an IAM
user
# The following command deactivates the specified access key (access key ID and secret access key) for the IAM user named # Bob. resp = client.update_access_key({ access_key_id: "AKIAIOSFODNN7EXAMPLE", status: "Inactive", user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.update_access_key({ user_name: "existingUserNameType", access_key_id: "accessKeyIdType", # required status: "Active", # required, accepts Active, Inactive })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccessKey AWS API Documentation
@overload update_access_key
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11791 def update_access_key(params = {}, options = {}) req = build_request(:update_access_key, params) req.send_request(options) end
Updates the password policy settings for the account.
<note markdown=“1”> * This operation does not support partial updates. No parameters are
required, but if you do not specify a parameter, that parameter's value reverts to its default value. See the **Request Parameters** section for each parameter's default value. Also note that some parameters do not allow the default parameter to be explicitly set. Instead, to invoke the default value, do not include that parameter when you invoke the operation.
^
</note>
For more information about using a password policy, see [Managing an IAM
password policy] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html
@option params [Integer] :minimum_password_length
The minimum number of characters allowed in an IAM user password. If you do not specify a value for this parameter, then the operation uses the default value of `6`.
@option params [Boolean] :require_symbols
Specifies whether IAM user passwords must contain at least one of the following non-alphanumeric characters: ! @ # $ % ^ & * ( ) \_ + - = \[ \] \\\{ \\} \| ' If you do not specify a value for this parameter, then the operation uses the default value of `false`. The result is that passwords do not require at least one symbol character.
@option params [Boolean] :require_numbers
Specifies whether IAM user passwords must contain at least one numeric character (0 to 9). If you do not specify a value for this parameter, then the operation uses the default value of `false`. The result is that passwords do not require at least one numeric character.
@option params [Boolean] :require_uppercase_characters
Specifies whether IAM user passwords must contain at least one uppercase character from the ISO basic Latin alphabet (A to Z). If you do not specify a value for this parameter, then the operation uses the default value of `false`. The result is that passwords do not require at least one uppercase character.
@option params [Boolean] :require_lowercase_characters
Specifies whether IAM user passwords must contain at least one lowercase character from the ISO basic Latin alphabet (a to z). If you do not specify a value for this parameter, then the operation uses the default value of `false`. The result is that passwords do not require at least one lowercase character.
@option params [Boolean] :allow_users_to_change_password
Allows all IAM users in your account to use the Management Console to change their own passwords. For more information, see [Letting IAM users change their own passwords][1] in the *IAM User Guide*. If you do not specify a value for this parameter, then the operation uses the default value of `false`. The result is that IAM users in the account do not automatically have permissions to change their own password. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/HowToPwdIAMUser.html
@option params [Integer] :max_password_age
The number of days that an IAM user password is valid. If you do not specify a value for this parameter, then the operation uses the default value of `0`. The result is that IAM user passwords never expire.
@option params [Integer] :password_reuse_prevention
Specifies the number of previous passwords that IAM users are prevented from reusing. If you do not specify a value for this parameter, then the operation uses the default value of `0`. The result is that IAM users are not prevented from reusing previous passwords.
@option params [Boolean] :hard_expiry
Prevents IAM users from setting a new password after their password has expired. The IAM user cannot be accessed until an administrator resets the password. If you do not specify a value for this parameter, then the operation uses the default value of `false`. The result is that IAM users can change their passwords after they expire and continue to sign in as the user.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To set or change the current account password policy
# The following command sets the password policy to require a minimum length of eight characters and to require one or # more numbers in the password: resp = client.update_account_password_policy({ minimum_password_length: 8, require_numbers: true, })
@example Request syntax with placeholder values
resp = client.update_account_password_policy({ minimum_password_length: 1, require_symbols: false, require_numbers: false, require_uppercase_characters: false, require_lowercase_characters: false, allow_users_to_change_password: false, max_password_age: 1, password_reuse_prevention: 1, hard_expiry: false, })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccountPasswordPolicy AWS API Documentation
@overload update_account_password_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 11927 def update_account_password_policy(params = {}, options = {}) req = build_request(:update_account_password_policy, params) req.send_request(options) end
Updates the policy that grants an IAM
entity permission to assume a role. This is typically referred to as the “role trust policy”. For more information about roles, see [Using roles to delegate permissions and federate identities].
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html
@option params [required, String] :role_name
The name of the role to update with the new policy. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :policy_document
The policy that grants an entity permission to assume the role. You must provide policies in JSON format in IAM. However, for CloudFormation templates formatted in YAML, you can provide the policy in JSON or YAML format. CloudFormation always converts a YAML policy to JSON format before submitting it to IAM. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To update the trust policy for an IAM
role
# The following command updates the role trust policy for the role named Test-Role: resp = client.update_assume_role_policy({ policy_document: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"ec2.amazonaws.com\"]},\"Action\":[\"sts:AssumeRole\"]}]}", role_name: "S3AccessForEC2Instances", })
@example Request syntax with placeholder values
resp = client.update_assume_role_policy({ role_name: "roleNameType", # required policy_document: "policyDocumentType", # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAssumeRolePolicy AWS API Documentation
@overload update_assume_role_policy
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12000 def update_assume_role_policy(params = {}, options = {}) req = build_request(:update_assume_role_policy, params) req.send_request(options) end
Updates the name and/or the path of the specified IAM
group.
You should understand the implications of changing a group's path or name. For more information, see [Renaming users and groups] in the *IAM User
Guide*.
<note markdown=“1”> The person making the request (the principal), must have permission to change the role group with the old name and the new name. For example, to change the group named `Managers` to `MGRs`, the principal must have a policy that allows them to update both groups. If the principal has permission to update the `Managers` group, but not the `MGRs` group, then the update fails. For more information about permissions, see [Access management].
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_WorkingWithGroupsAndUsers.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/access.html
@option params [required, String] :group_name
Name of the IAM group to update. If you're changing the name of the group, this is the original name. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :new_path
New path for the IAM group. Only include this if changing the group's path. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :new_group_name
New name for the IAM group. Only include this if changing the group's name. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To rename an IAM
group
# The following command changes the name of the IAM group Test to Test-1. resp = client.update_group({ group_name: "Test", new_group_name: "Test-1", })
@example Request syntax with placeholder values
resp = client.update_group({ group_name: "groupNameType", # required new_path: "pathType", new_group_name: "groupNameType", })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateGroup AWS API Documentation
@overload update_group
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12086 def update_group(params = {}, options = {}) req = build_request(:update_group, params) req.send_request(options) end
Changes the password for the specified IAM
user. You can use the CLI, the Amazon Web Services API, or the Users page in the IAM
console to change the password for any IAM
user. Use ChangePassword to change your own password in the **My Security Credentials** page in the Management Console.
For more information about modifying passwords, see [Managing passwords] in the *IAM User
Guide*.
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/Using_ManagingLogins.html
@option params [required, String] :user_name
The name of the user whose password you want to update. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :password
The new password for the specified IAM user. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) However, the format can be further restricted by the account administrator by setting a password policy on the account. For more information, see UpdateAccountPasswordPolicy. [1]: http://wikipedia.org/wiki/regex
@option params [Boolean] :password_reset_required
Allows this new password to be used only once by requiring the specified IAM user to set a new password on next sign-in.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To change the password for an IAM
user
# The following command creates or changes the password for the IAM user named Bob. resp = client.update_login_profile({ password: "SomeKindOfPassword123!@#", user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.update_login_profile({ user_name: "userNameType", # required password: "passwordType", password_reset_required: false, })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateLoginProfile AWS API Documentation
@overload update_login_profile
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12167 def update_login_profile(params = {}, options = {}) req = build_request(:update_login_profile, params) req.send_request(options) end
Replaces the existing list of server certificate thumbprints associated with an OpenID Connect (OIDC) provider resource object with a new list of thumbprints.
The list that you pass with this operation completely replaces the existing list of thumbprints. (The lists are not merged.)
Typically, you need to update a thumbprint only when the identity provider certificate changes, which occurs rarely. However, if the provider's certificate does change, any attempt to assume an IAM
role that specifies the OIDC provider as a principal fails until the certificate thumbprint is updated.
<note markdown=“1”> Amazon Web Services secures communication with some OIDC identity providers (IdPs) through our library of trusted certificate authorities (CAs) instead of using a certificate thumbprint to verify your IdP server certificate. These OIDC IdPs include Google, and those that use an Amazon S3 bucket to host a JSON Web Key Set (JWKS) endpoint. In these cases, your legacy thumbprint remains in your configuration, but is no longer used for validation.
</note>
<note markdown=“1”> Trust for the OIDC provider is derived from the provider certificate and is validated by the thumbprint. Therefore, it is best to limit access to the `UpdateOpenIDConnectProviderThumbprint` operation to highly privileged users.
</note>
@option params [required, String] :open_id_connect_provider_arn
The Amazon Resource Name (ARN) of the IAM OIDC provider resource object for which you want to update the thumbprint. You can get a list of OIDC provider ARNs by using the ListOpenIDConnectProviders operation. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@option params [required, Array<String>] :thumbprint_list
A list of certificate thumbprints that are associated with the specified IAM OpenID Connect provider. For more information, see CreateOpenIDConnectProvider.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.update_open_id_connect_provider_thumbprint({ open_id_connect_provider_arn: "arnType", # required thumbprint_list: ["thumbprintType"], # required })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateOpenIDConnectProviderThumbprint AWS API Documentation
@overload update_open_id_connect_provider_thumbprint
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12233 def update_open_id_connect_provider_thumbprint(params = {}, options = {}) req = build_request(:update_open_id_connect_provider_thumbprint, params) req.send_request(options) end
Updates the description or maximum session duration setting of a role.
@option params [required, String] :role_name
The name of the role that you want to modify.
@option params [String] :description
The new description that you want to apply to the specified role.
@option params [Integer] :max_session_duration
The maximum session duration (in seconds) that you want to set for the specified role. If you do not specify a value for this setting, the default maximum of one hour is applied. This setting can have a value from 1 hour to 12 hours. Anyone who assumes the role from the CLI or API can use the `DurationSeconds` API parameter or the `duration-seconds` CLI parameter to request a longer session. The `MaxSessionDuration` setting determines the maximum duration that can be requested using the `DurationSeconds` parameter. If users don't specify a value for the `DurationSeconds` parameter, their security credentials are valid for one hour by default. This applies when you use the `AssumeRole*` API operations or the `assume-role*` CLI operations but does not apply when you use those operations to create a console URL. For more information, see [Using IAM roles][1] in the *IAM User Guide*. [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.update_role({ role_name: "roleNameType", # required description: "roleDescriptionType", max_session_duration: 1, })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateRole AWS API Documentation
@overload update_role
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12281 def update_role(params = {}, options = {}) req = build_request(:update_role, params) req.send_request(options) end
Use UpdateRole instead.
Modifies only the description of a role. This operation performs the same function as the `Description` parameter in the `UpdateRole` operation.
@option params [required, String] :role_name
The name of the role that you want to modify.
@option params [required, String] :description
The new description that you want to apply to the specified role.
@return [Types::UpdateRoleDescriptionResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::UpdateRoleDescriptionResponse#role #role} => Types::Role
@example Request syntax with placeholder values
resp = client.update_role_description({ role_name: "roleNameType", # required description: "roleDescriptionType", # required })
@example Response structure
resp.role.path #=> String resp.role.role_name #=> String resp.role.role_id #=> String resp.role.arn #=> String resp.role.create_date #=> Time resp.role.assume_role_policy_document #=> String resp.role.description #=> String resp.role.max_session_duration #=> Integer resp.role.permissions_boundary.permissions_boundary_type #=> String, one of "PermissionsBoundaryPolicy" resp.role.permissions_boundary.permissions_boundary_arn #=> String resp.role.tags #=> Array resp.role.tags[0].key #=> String resp.role.tags[0].value #=> String resp.role.role_last_used.last_used_date #=> Time resp.role.role_last_used.region #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateRoleDescription AWS API Documentation
@overload update_role_description
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12331 def update_role_description(params = {}, options = {}) req = build_request(:update_role_description, params) req.send_request(options) end
Updates the metadata document for an existing SAML provider resource object.
<note markdown=“1”> This operation requires [Signature Version 4].
</note>
[1]: docs.aws.amazon.com/general/latest/gr/signature-version-4.html
@option params [required, String] :saml_metadata_document
An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP.
@option params [required, String] :saml_provider_arn
The Amazon Resource Name (ARN) of the SAML provider to update. For more information about ARNs, see [Amazon Resource Names (ARNs)][1] in the *Amazon Web Services General Reference*. [1]: https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html
@return [Types::UpdateSAMLProviderResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::UpdateSAMLProviderResponse#saml_provider_arn #saml_provider_arn} => String
@example Request syntax with placeholder values
resp = client.update_saml_provider({ saml_metadata_document: "SAMLMetadataDocumentType", # required saml_provider_arn: "arnType", # required })
@example Response structure
resp.saml_provider_arn #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSAMLProvider AWS API Documentation
@overload update_saml_provider
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12384 def update_saml_provider(params = {}, options = {}) req = build_request(:update_saml_provider, params) req.send_request(options) end
Updates the name and/or the path of the specified server certificate stored in IAM
.
For more information about working with server certificates, see
- Working with server certificates][1
-
in the *IAM
User
Guide*. This
topic also includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM
.
You should understand the implications of changing a server certificate's path or name. For more information, see [Renaming a server certificate] in the *IAM User
Guide*.
<note markdown=“1”> The person making the request (the principal), must have permission to change the server certificate with the old name and the new name. For example, to change the certificate named `ProductionCert` to `ProdCert`, the principal must have a policy that allows them to update both certificates. If the principal has permission to update the `ProductionCert` group, but not the `ProdCert` certificate, then the update fails. For more information about permissions, see [Access management] in the *IAM User
Guide*.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs_manage.html#RenamingServerCerts [3]: docs.aws.amazon.com/IAM/latest/UserGuide/access.html
@option params [required, String] :server_certificate_name
The name of the server certificate that you want to update. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :new_path
The new path for the server certificate. Include this only if you are updating the server certificate's path. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :new_server_certificate_name
The new name for the server certificate. Include this only if you are updating the server certificate's name. The name of the certificate cannot contain any spaces. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.update_server_certificate({ server_certificate_name: "serverCertificateNameType", # required new_path: "pathType", new_server_certificate_name: "serverCertificateNameType", })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServerCertificate AWS API Documentation
@overload update_server_certificate
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12535 def update_server_certificate(params = {}, options = {}) req = build_request(:update_server_certificate, params) req.send_request(options) end
Sets the status of a service-specific credential to `Active` or `Inactive`. Service-specific credentials that are inactive cannot be used for authentication to the service. This operation can be used to disable a user's service-specific credential as part of a credential rotation work flow.
@option params [String] :user_name
The name of the IAM user associated with the service-specific credential. If you do not specify this value, then the operation assumes the user whose credentials are used to call the operation. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :service_specific_credential_id
The unique identifier of the service-specific credential. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :status
The status to be assigned to the service-specific credential.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.update_service_specific_credential({ user_name: "userNameType", service_specific_credential_id: "serviceSpecificCredentialId", # required status: "Active", # required, accepts Active, Inactive })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServiceSpecificCredential AWS API Documentation
@overload update_service_specific_credential
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12588 def update_service_specific_credential(params = {}, options = {}) req = build_request(:update_service_specific_credential, params) req.send_request(options) end
Changes the status of the specified user signing certificate from active to disabled, or vice versa. This operation can be used to disable an IAM
user's signing certificate as part of a certificate rotation work flow.
If the `UserName` field is not specified, the user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users.
@option params [String] :user_name
The name of the IAM user the signing certificate belongs to. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :certificate_id
The ID of the signing certificate you want to update. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :status
The status you want to assign to the certificate. `Active` means that the certificate can be used for programmatic calls to Amazon Web Services `Inactive` means that the certificate cannot be used.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To change the active status of a signing certificate for an IAM
user
# The following command changes the status of a signing certificate for a user named Bob to Inactive. resp = client.update_signing_certificate({ certificate_id: "TA7SMP42TDN5Z26OBPJE7EXAMPLE", status: "Inactive", user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.update_signing_certificate({ user_name: "existingUserNameType", certificate_id: "certificateIdType", # required status: "Active", # required, accepts Active, Inactive })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSigningCertificate AWS API Documentation
@overload update_signing_certificate
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12657 def update_signing_certificate(params = {}, options = {}) req = build_request(:update_signing_certificate, params) req.send_request(options) end
Sets the status of an IAM
user's SSH public key to active or inactive. SSH public keys that are inactive cannot be used for authentication. This operation can be used to disable a user's SSH public key as part of a key rotation work flow.
The SSH public key affected by this operation is used only for authenticating the associated IAM
user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see [Set up CodeCommit for SSH connections] in the *CodeCommit User
Guide*.
[1]: docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
@option params [required, String] :user_name
The name of the IAM user associated with the SSH public key. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :ssh_public_key_id
The unique identifier for the SSH public key. This parameter allows (through its [regex pattern][1]) a string of characters that can consist of any upper or lowercased letter or digit. [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :status
The status to assign to the SSH public key. `Active` means that the key can be used for authentication with an CodeCommit repository. `Inactive` means that the key cannot be used.
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Request syntax with placeholder values
resp = client.update_ssh_public_key({ user_name: "userNameType", # required ssh_public_key_id: "publicKeyIdType", # required status: "Active", # required, accepts Active, Inactive })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSSHPublicKey AWS API Documentation
@overload update_ssh_public_key
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12446 def update_ssh_public_key(params = {}, options = {}) req = build_request(:update_ssh_public_key, params) req.send_request(options) end
Updates the name and/or the path of the specified IAM
user.
You should understand the implications of changing an IAM
user's path or name. For more information, see [Renaming an IAM
user] and
<note markdown=“1”> To change a user name, the requester must have appropriate permissions on both the source object and the target object. For example, to change Bob to Robert, the entity making the request must have permission on Bob and Robert, or must have permission on all (*). For more information about permissions, see [Permissions and policies].
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_users_manage.html#id_users_renaming [2]: docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_rename.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/PermissionsAndPolicies.html
@option params [required, String] :user_name
Name of the user to update. If you're changing the name of the user, this is the original user name. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [String] :new_path
New path for the IAM user. Include this parameter only if you're changing the user's path. This parameter allows (through its [regex pattern][1]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. [1]: http://wikipedia.org/wiki/regex
@option params [String] :new_user_name
New name for the user. Include this parameter only if you're changing the user's name. IAM user, group, role, and policy names must be unique within the account. Names are not distinguished by case. For example, you cannot create resources named both "MyResource" and "myresource".
@return [Struct] Returns an empty {Seahorse::Client::Response response}.
@example Example: To change an IAM
user's name
# The following command changes the name of the IAM user Bob to Robert. It does not change the user's path. resp = client.update_user({ new_user_name: "Robert", user_name: "Bob", })
@example Request syntax with placeholder values
resp = client.update_user({ user_name: "existingUserNameType", # required new_path: "pathType", new_user_name: "userNameType", })
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateUser AWS API Documentation
@overload update_user
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12742 def update_user(params = {}, options = {}) req = build_request(:update_user, params) req.send_request(options) end
Uploads a server certificate entity for the account. The server certificate entity includes a public key certificate, a private key, and an optional certificate chain, which should all be PEM-encoded.
We recommend that you use [Certificate Manager] to provision, manage, and deploy your server certificates. With ACM you can request a certificate, deploy it to Amazon Web Services resources, and let ACM handle certificate renewals for you. Certificates provided by ACM are free. For more information about using ACM, see the [Certificate Manager User
Guide].
For more information about working with server certificates, see
- Working with server certificates][3
-
in the *IAM
User
Guide*. This
topic includes a list of Amazon Web Services services that can use the server certificates that you manage with IAM
.
For information about the number of server certificates you can upload, see [IAM and STS quotas] in the *IAM User
Guide*.
<note markdown=“1”> Because the body of the public key certificate, private key, and the certificate chain can be large, you should use POST rather than GET when calling `UploadServerCertificate`. For information about setting up signatures and authorization through the API, see [Signing Amazon Web Services API requests] in the *Amazon Web Services General Reference*. For general information about using the Query API with IAM
, see [Calling the API by making HTTP query requests] in the *IAM User
Guide*.
</note>
[1]: docs.aws.amazon.com/acm/ [2]: docs.aws.amazon.com/acm/latest/userguide/ [3]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html [4]: docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-quotas.html [5]: docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html [6]: docs.aws.amazon.com/IAM/latest/UserGuide/programming.html
@option params [String] :path
The path for the server certificate. For more information about paths, see [IAM identifiers][1] in the *IAM User Guide*. This parameter is optional. If it is not included, it defaults to a slash (/). This parameter allows (through its [regex pattern][2]) a string of characters consisting of either a forward slash (/) by itself or a string that must begin and end with forward slashes. In addition, it can contain any ASCII character from the ! (`\u0021`) through the DEL character (`\u007F`), including most punctuation characters, digits, and upper and lowercased letters. <note markdown="1"> If you are uploading a server certificate specifically for use with Amazon CloudFront distributions, you must specify a path using the `path` parameter. The path must begin with `/cloudfront` and must include a trailing slash (for example, `/cloudfront/test/`). </note> [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html [2]: http://wikipedia.org/wiki/regex
@option params [required, String] :server_certificate_name
The name for the server certificate. Do not include the path in this value. The name of the certificate cannot contain any spaces. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :certificate_body
The contents of the public key certificate in PEM-encoded format. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :private_key
The contents of the private key in PEM-encoded format. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@option params [String] :certificate_chain
The contents of the certificate chain. This is typically a concatenation of the PEM-encoded public key certificates of the chain. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@option params [Array<Types::Tag>] :tags
A list of tags that you want to attach to the new IAM server certificate resource. Each tag consists of a key name and an associated value. For more information about tagging, see [Tagging IAM resources][1] in the *IAM User Guide*. <note markdown="1"> If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created. </note> [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html
@return [Types::UploadServerCertificateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::UploadServerCertificateResponse#server_certificate_metadata #server_certificate_metadata} => Types::ServerCertificateMetadata * {Types::UploadServerCertificateResponse#tags #tags} => Array<Types::Tag>
@example Example: To upload a server certificate to your AWS account
# The following upload-server-certificate command uploads a server certificate to your AWS account: resp = client.upload_server_certificate({ certificate_body: "-----BEGIN CERTIFICATE-----<a very long certificate text string>-----END CERTIFICATE-----", path: "/company/servercerts/", private_key: "-----BEGIN DSA PRIVATE KEY-----<a very long private key string>-----END DSA PRIVATE KEY-----", server_certificate_name: "ProdServerCert", }) resp.to_h outputs the following: { server_certificate_metadata: { arn: "arn:aws:iam::123456789012:server-certificate/company/servercerts/ProdServerCert", expiration: Time.parse("2012-05-08T01:02:03.004Z"), path: "/company/servercerts/", server_certificate_id: "ASCA1111111111EXAMPLE", server_certificate_name: "ProdServerCert", upload_date: Time.parse("2010-05-08T01:02:03.004Z"), }, }
@example Request syntax with placeholder values
resp = client.upload_server_certificate({ path: "pathType", server_certificate_name: "serverCertificateNameType", # required certificate_body: "certificateBodyType", # required private_key: "privateKeyType", # required certificate_chain: "certificateChainType", tags: [ { key: "tagKeyType", # required value: "tagValueType", # required }, ], })
@example Response structure
resp.server_certificate_metadata.path #=> String resp.server_certificate_metadata.server_certificate_name #=> String resp.server_certificate_metadata.server_certificate_id #=> String resp.server_certificate_metadata.arn #=> String resp.server_certificate_metadata.upload_date #=> Time resp.server_certificate_metadata.expiration #=> Time resp.tags #=> Array resp.tags[0].key #=> String resp.tags[0].value #=> String
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadServerCertificate AWS API Documentation
@overload upload_server_certificate
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 13034 def upload_server_certificate(params = {}, options = {}) req = build_request(:upload_server_certificate, params) req.send_request(options) end
Uploads an X.509 signing certificate and associates it with the specified IAM
user. Some Amazon Web Services services require you to use certificates to validate requests that are signed with a corresponding private key. When you upload the certificate, its default status is `Active`.
For information about when you would use an X.509 signing certificate, see [Managing server certificates in IAM] in the *IAM User
Guide*.
If the `UserName` is not specified, the IAM
user name is determined implicitly based on the Amazon Web Services access key ID used to sign the request. This operation works for access keys under the account. Consequently, you can use this operation to manage account root user credentials even if the account has no associated users.
<note markdown=“1”> Because the body of an X.509 certificate can be large, you should use POST rather than GET when calling `UploadSigningCertificate`. For information about setting up signatures and authorization through the API, see [Signing Amazon Web Services API requests] in the *Amazon Web Services General Reference*. For general information about using the Query API with IAM
, see [Making query requests] in the *IAM User
Guide*.
</note>
[1]: docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html [2]: docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html [3]: docs.aws.amazon.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html
@option params [String] :user_name
The name of the user the signing certificate is for. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :certificate_body
The contents of the signing certificate. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@return [Types::UploadSigningCertificateResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::UploadSigningCertificateResponse#certificate #certificate} => Types::SigningCertificate
@example Example: To upload a signing certificate for an IAM
user
# The following command uploads a signing certificate for the IAM user named Bob. resp = client.upload_signing_certificate({ certificate_body: "-----BEGIN CERTIFICATE-----<certificate-body>-----END CERTIFICATE-----", user_name: "Bob", }) resp.to_h outputs the following: { certificate: { certificate_body: "-----BEGIN CERTIFICATE-----<certificate-body>-----END CERTIFICATE-----", certificate_id: "ID123456789012345EXAMPLE", status: "Active", upload_date: Time.parse("2015-06-06T21:40:08.121Z"), user_name: "Bob", }, }
@example Request syntax with placeholder values
resp = client.upload_signing_certificate({ user_name: "existingUserNameType", certificate_body: "certificateBodyType", # required })
@example Response structure
resp.certificate.user_name #=> String resp.certificate.certificate_id #=> String resp.certificate.certificate_body #=> String resp.certificate.status #=> String, one of "Active", "Inactive" resp.certificate.upload_date #=> Time
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSigningCertificate AWS API Documentation
@overload upload_signing_certificate
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 13145 def upload_signing_certificate(params = {}, options = {}) req = build_request(:upload_signing_certificate, params) req.send_request(options) end
Uploads an SSH public key and associates it with the specified IAM
user.
The SSH public key uploaded by this operation can be used only for authenticating the associated IAM
user to an CodeCommit repository. For more information about using SSH keys to authenticate to an CodeCommit repository, see [Set up CodeCommit for SSH connections] in the *CodeCommit User
Guide*.
[1]: docs.aws.amazon.com/codecommit/latest/userguide/setting-up-credentials-ssh.html
@option params [required, String] :user_name
The name of the IAM user to associate the SSH public key with. This parameter allows (through its [regex pattern][1]) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: \_+=,.@- [1]: http://wikipedia.org/wiki/regex
@option params [required, String] :ssh_public_key_body
The SSH public key. The public key must be encoded in ssh-rsa format or PEM format. The minimum bit-length of the public key is 2048 bits. For example, you can generate a 2048-bit key, and the resulting PEM file is 1679 bytes long. The [regex pattern][1] used to validate this parameter is a string of characters consisting of the following: * Any printable ASCII character ranging from the space character (`\u0020`) through the end of the ASCII character range * The printable characters in the Basic Latin and Latin-1 Supplement character set (through `\u00FF`) * The special characters tab (`\u0009`), line feed (`\u000A`), and carriage return (`\u000D`) [1]: http://wikipedia.org/wiki/regex
@return [Types::UploadSSHPublicKeyResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
* {Types::UploadSSHPublicKeyResponse#ssh_public_key #ssh_public_key} => Types::SSHPublicKey
@example Request syntax with placeholder values
resp = client.upload_ssh_public_key({ user_name: "userNameType", # required ssh_public_key_body: "publicKeyMaterialType", # required })
@example Response structure
resp.ssh_public_key.user_name #=> String resp.ssh_public_key.ssh_public_key_id #=> String resp.ssh_public_key.fingerprint #=> String resp.ssh_public_key.ssh_public_key_body #=> String resp.ssh_public_key.status #=> String, one of "Active", "Inactive" resp.ssh_public_key.upload_date #=> Time
@see docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSSHPublicKey AWS API Documentation
@overload upload_ssh_public_key
(params = {}) @param [Hash] params ({})
# File lib/aws-sdk-iam/client.rb, line 12818 def upload_ssh_public_key(params = {}, options = {}) req = build_request(:upload_ssh_public_key, params) req.send_request(options) end
Polls an API operation until a resource enters a desired state.
## Basic Usage
A waiter will call an API operation until:
-
It is successful
-
It enters a terminal state
-
It makes the maximum number of attempts
In between attempts, the waiter will sleep.
# polls in a loop, sleeping between attempts client.wait_until(waiter_name, params)
## Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You can pass configuration as the final arguments hash.
# poll for ~25 seconds client.wait_until(waiter_name, params, { max_attempts: 5, delay: 5, })
## Callbacks
You can be notified before each polling attempt and before each delay. If you throw `:success` or `:failure` from these callbacks, it will terminate the waiter.
started_at = Time.now client.wait_until(waiter_name, params, { # disable max attempts max_attempts: nil, # poll for 1 hour, instead of a number of attempts before_wait: -> (attempts, response) do throw :failure if Time.now - started_at > 3600 end })
## Handling Errors
When a waiter is unsuccessful, it will raise an error. All of the failure errors extend from {Aws::Waiters::Errors::WaiterFailed}.
begin client.wait_until(...) rescue Aws::Waiters::Errors::WaiterFailed # resource did not enter the desired state in time end
## Valid Waiters
The following table lists the valid waiter names, the operations they call, and the default `:delay` and `:max_attempts` values.
| waiter_name | params | :delay | :max_attempts | | ———————– | —————————– | ——– | ————- | | instance_profile_exists | {Client#get_instance_profile} | 1 | 40 | | policy_exists | {Client#get_policy} | 1 | 20 | | role_exists | {Client#get_role} | 1 | 20 | | user_exists | {Client#get_user} | 1 | 20 |
@raise [Errors::FailureStateError] Raised when the waiter terminates
because the waiter has entered a state that it will not transition out of, preventing success.
@raise [Errors::TooManyAttemptsError] Raised when the configured
maximum number of attempts have been made, and the waiter is not yet successful.
@raise [Errors::UnexpectedError] Raised when an error is encounted
while polling for a resource that is not expected.
@raise [Errors::NoSuchWaiterError] Raised when you request to wait
for an unknown state.
@return [Boolean] Returns `true` if the waiter was successful. @param [Symbol] waiter_name @param [Hash] params ({}) @param [Hash] options ({}) @option options [Integer] :max_attempts @option options [Integer] :delay @option options [Proc] :before_attempt @option options [Proc] :before_wait
# File lib/aws-sdk-iam/client.rb, line 13258 def wait_until(waiter_name, params = {}, options = {}) w = waiter(waiter_name, options) yield(w.waiter) if block_given? # deprecated w.wait(params) end
@api private @deprecated
# File lib/aws-sdk-iam/client.rb, line 13266 def waiter_names waiters.keys end
Private Instance Methods
@param [Symbol] waiter_name @param [Hash] options ({})
# File lib/aws-sdk-iam/client.rb, line 13274 def waiter(waiter_name, options = {}) waiter_class = waiters[waiter_name] if waiter_class waiter_class.new(options.merge(client: self)) else raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys) end end
# File lib/aws-sdk-iam/client.rb, line 13283 def waiters { instance_profile_exists: Waiters::InstanceProfileExists, policy_exists: Waiters::PolicyExists, role_exists: Waiters::RoleExists, user_exists: Waiters::UserExists } end