aws-sdk-core 3.100.0 → 3.130.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1294 -0
  3. data/LICENSE.txt +202 -0
  4. data/VERSION +1 -1
  5. data/lib/aws-defaults/default_configuration.rb +153 -0
  6. data/lib/aws-defaults/defaults_mode_config_resolver.rb +107 -0
  7. data/lib/aws-defaults.rb +3 -0
  8. data/lib/aws-sdk-core/arn.rb +15 -0
  9. data/lib/aws-sdk-core/arn_parser.rb +2 -0
  10. data/lib/aws-sdk-core/assume_role_credentials.rb +21 -0
  11. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +9 -1
  12. data/lib/aws-sdk-core/async_client_stubs.rb +2 -0
  13. data/lib/aws-sdk-core/binary/decode_handler.rb +2 -0
  14. data/lib/aws-sdk-core/binary/encode_handler.rb +2 -0
  15. data/lib/aws-sdk-core/binary/event_builder.rb +2 -0
  16. data/lib/aws-sdk-core/binary/event_parser.rb +2 -0
  17. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +2 -0
  18. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +2 -0
  19. data/lib/aws-sdk-core/binary.rb +2 -0
  20. data/lib/aws-sdk-core/client_side_monitoring/publisher.rb +2 -0
  21. data/lib/aws-sdk-core/client_side_monitoring/request_metrics.rb +2 -0
  22. data/lib/aws-sdk-core/client_stubs.rb +7 -1
  23. data/lib/aws-sdk-core/credential_provider.rb +2 -0
  24. data/lib/aws-sdk-core/credential_provider_chain.rb +23 -1
  25. data/lib/aws-sdk-core/credentials.rb +2 -0
  26. data/lib/aws-sdk-core/deprecations.rb +2 -0
  27. data/lib/aws-sdk-core/eager_loader.rb +2 -0
  28. data/lib/aws-sdk-core/ec2_metadata.rb +238 -0
  29. data/lib/aws-sdk-core/ecs_credentials.rb +10 -4
  30. data/lib/aws-sdk-core/endpoint_cache.rb +2 -0
  31. data/lib/aws-sdk-core/errors.rb +11 -2
  32. data/lib/aws-sdk-core/event_emitter.rb +2 -0
  33. data/lib/aws-sdk-core/ini_parser.rb +2 -0
  34. data/lib/aws-sdk-core/instance_profile_credentials.rb +124 -22
  35. data/lib/aws-sdk-core/json/builder.rb +2 -0
  36. data/lib/aws-sdk-core/json/error_handler.rb +2 -0
  37. data/lib/aws-sdk-core/json/handler.rb +2 -0
  38. data/lib/aws-sdk-core/json/json_engine.rb +12 -8
  39. data/lib/aws-sdk-core/json/oj_engine.rb +35 -6
  40. data/lib/aws-sdk-core/json/parser.rb +10 -0
  41. data/lib/aws-sdk-core/json.rb +10 -26
  42. data/lib/aws-sdk-core/log/formatter.rb +9 -3
  43. data/lib/aws-sdk-core/log/handler.rb +2 -0
  44. data/lib/aws-sdk-core/log/param_filter.rb +37 -12
  45. data/lib/aws-sdk-core/log/param_formatter.rb +2 -0
  46. data/lib/aws-sdk-core/pageable_response.rb +82 -32
  47. data/lib/aws-sdk-core/pager.rb +5 -0
  48. data/lib/aws-sdk-core/param_converter.rb +2 -0
  49. data/lib/aws-sdk-core/param_validator.rb +54 -4
  50. data/lib/aws-sdk-core/plugins/api_key.rb +5 -1
  51. data/lib/aws-sdk-core/plugins/apig_authorizer_token.rb +2 -0
  52. data/lib/aws-sdk-core/plugins/apig_credentials_configuration.rb +2 -0
  53. data/lib/aws-sdk-core/plugins/apig_user_agent.rb +2 -0
  54. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +340 -0
  55. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +2 -0
  56. data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +2 -0
  57. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +26 -7
  58. data/lib/aws-sdk-core/plugins/defaults_mode.rb +40 -0
  59. data/lib/aws-sdk-core/plugins/endpoint_discovery.rb +2 -0
  60. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +8 -6
  61. data/lib/aws-sdk-core/plugins/event_stream_configuration.rb +2 -0
  62. data/lib/aws-sdk-core/plugins/global_configuration.rb +2 -0
  63. data/lib/aws-sdk-core/plugins/helpful_socket_errors.rb +2 -0
  64. data/lib/aws-sdk-core/plugins/http_checksum.rb +10 -1
  65. data/lib/aws-sdk-core/plugins/idempotency_token.rb +2 -0
  66. data/lib/aws-sdk-core/plugins/invocation_id.rb +2 -0
  67. data/lib/aws-sdk-core/plugins/jsonvalue_converter.rb +2 -0
  68. data/lib/aws-sdk-core/plugins/logging.rb +2 -0
  69. data/lib/aws-sdk-core/plugins/param_converter.rb +2 -0
  70. data/lib/aws-sdk-core/plugins/param_validator.rb +2 -0
  71. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +19 -0
  72. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -0
  73. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +2 -0
  74. data/lib/aws-sdk-core/plugins/protocols/query.rb +2 -0
  75. data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +18 -1
  76. data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +2 -0
  77. data/lib/aws-sdk-core/plugins/recursion_detection.rb +27 -0
  78. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +50 -2
  79. data/lib/aws-sdk-core/plugins/response_paging.rb +3 -1
  80. data/lib/aws-sdk-core/plugins/retries/client_rate_limiter.rb +2 -0
  81. data/lib/aws-sdk-core/plugins/retries/clock_skew.rb +2 -0
  82. data/lib/aws-sdk-core/plugins/retries/error_inspector.rb +7 -3
  83. data/lib/aws-sdk-core/plugins/retries/retry_quota.rb +2 -0
  84. data/lib/aws-sdk-core/plugins/retry_errors.rb +15 -6
  85. data/lib/aws-sdk-core/plugins/signature_v2.rb +2 -0
  86. data/lib/aws-sdk-core/plugins/signature_v4.rb +17 -24
  87. data/lib/aws-sdk-core/plugins/stub_responses.rb +9 -1
  88. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +2 -0
  89. data/lib/aws-sdk-core/plugins/user_agent.rb +2 -0
  90. data/lib/aws-sdk-core/process_credentials.rb +8 -6
  91. data/lib/aws-sdk-core/query/ec2_param_builder.rb +2 -0
  92. data/lib/aws-sdk-core/query/handler.rb +2 -0
  93. data/lib/aws-sdk-core/query/param.rb +2 -0
  94. data/lib/aws-sdk-core/query/param_builder.rb +2 -0
  95. data/lib/aws-sdk-core/query/param_list.rb +2 -0
  96. data/lib/aws-sdk-core/query.rb +2 -0
  97. data/lib/aws-sdk-core/refreshing_credentials.rb +42 -11
  98. data/lib/aws-sdk-core/resources/collection.rb +2 -0
  99. data/lib/aws-sdk-core/rest/handler.rb +2 -0
  100. data/lib/aws-sdk-core/rest/request/body.rb +21 -1
  101. data/lib/aws-sdk-core/rest/request/builder.rb +2 -0
  102. data/lib/aws-sdk-core/rest/request/endpoint.rb +2 -0
  103. data/lib/aws-sdk-core/rest/request/headers.rb +20 -6
  104. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +2 -0
  105. data/lib/aws-sdk-core/rest/response/body.rb +2 -0
  106. data/lib/aws-sdk-core/rest/response/headers.rb +6 -3
  107. data/lib/aws-sdk-core/rest/response/parser.rb +2 -0
  108. data/lib/aws-sdk-core/rest/response/status_code.rb +2 -0
  109. data/lib/aws-sdk-core/rest.rb +2 -0
  110. data/lib/aws-sdk-core/shared_config.rb +62 -8
  111. data/lib/aws-sdk-core/shared_credentials.rb +9 -1
  112. data/lib/aws-sdk-core/sso_credentials.rb +137 -0
  113. data/lib/aws-sdk-core/structure.rb +13 -2
  114. data/lib/aws-sdk-core/stubbing/data_applicator.rb +2 -0
  115. data/lib/aws-sdk-core/stubbing/empty_stub.rb +2 -0
  116. data/lib/aws-sdk-core/stubbing/protocols/api_gateway.rb +2 -0
  117. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +2 -0
  118. data/lib/aws-sdk-core/stubbing/protocols/json.rb +3 -1
  119. data/lib/aws-sdk-core/stubbing/protocols/query.rb +2 -0
  120. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +3 -1
  121. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +3 -1
  122. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +2 -2
  123. data/lib/aws-sdk-core/stubbing/stub_data.rb +2 -0
  124. data/lib/aws-sdk-core/stubbing/xml_error.rb +2 -0
  125. data/lib/aws-sdk-core/type_builder.rb +2 -0
  126. data/lib/aws-sdk-core/util.rb +2 -0
  127. data/lib/aws-sdk-core/waiters/errors.rb +2 -0
  128. data/lib/aws-sdk-core/waiters/poller.rb +2 -0
  129. data/lib/aws-sdk-core/waiters/waiter.rb +2 -0
  130. data/lib/aws-sdk-core/waiters.rb +2 -0
  131. data/lib/aws-sdk-core/xml/builder.rb +4 -2
  132. data/lib/aws-sdk-core/xml/default_list.rb +2 -0
  133. data/lib/aws-sdk-core/xml/default_map.rb +2 -0
  134. data/lib/aws-sdk-core/xml/doc_builder.rb +8 -1
  135. data/lib/aws-sdk-core/xml/error_handler.rb +2 -0
  136. data/lib/aws-sdk-core/xml/parser/engines/libxml.rb +2 -0
  137. data/lib/aws-sdk-core/xml/parser/engines/nokogiri.rb +2 -0
  138. data/lib/aws-sdk-core/xml/parser/engines/oga.rb +2 -0
  139. data/lib/aws-sdk-core/xml/parser/engines/ox.rb +3 -1
  140. data/lib/aws-sdk-core/xml/parser/engines/rexml.rb +2 -0
  141. data/lib/aws-sdk-core/xml/parser/frame.rb +25 -0
  142. data/lib/aws-sdk-core/xml/parser/parsing_error.rb +2 -0
  143. data/lib/aws-sdk-core/xml/parser/stack.rb +2 -0
  144. data/lib/aws-sdk-core/xml/parser.rb +7 -0
  145. data/lib/aws-sdk-core/xml.rb +2 -0
  146. data/lib/aws-sdk-core.rb +15 -3
  147. data/lib/aws-sdk-sso/client.rb +570 -0
  148. data/lib/aws-sdk-sso/client_api.rb +190 -0
  149. data/lib/aws-sdk-sso/customizations.rb +1 -0
  150. data/lib/aws-sdk-sso/errors.rb +102 -0
  151. data/lib/aws-sdk-sso/resource.rb +26 -0
  152. data/lib/aws-sdk-sso/types.rb +352 -0
  153. data/lib/aws-sdk-sso.rb +55 -0
  154. data/lib/aws-sdk-sts/client.rb +538 -435
  155. data/lib/aws-sdk-sts/client_api.rb +9 -1
  156. data/lib/aws-sdk-sts/customizations.rb +2 -0
  157. data/lib/aws-sdk-sts/errors.rb +3 -1
  158. data/lib/aws-sdk-sts/plugins/sts_regional_endpoints.rb +7 -1
  159. data/lib/aws-sdk-sts/presigner.rb +9 -1
  160. data/lib/aws-sdk-sts/resource.rb +3 -1
  161. data/lib/aws-sdk-sts/types.rb +360 -191
  162. data/lib/aws-sdk-sts.rb +10 -3
  163. data/lib/seahorse/client/async_base.rb +2 -0
  164. data/lib/seahorse/client/async_response.rb +2 -0
  165. data/lib/seahorse/client/base.rb +3 -0
  166. data/lib/seahorse/client/block_io.rb +5 -2
  167. data/lib/seahorse/client/configuration.rb +6 -0
  168. data/lib/seahorse/client/events.rb +2 -0
  169. data/lib/seahorse/client/h2/connection.rb +17 -13
  170. data/lib/seahorse/client/h2/handler.rb +6 -5
  171. data/lib/seahorse/client/handler.rb +2 -0
  172. data/lib/seahorse/client/handler_builder.rb +2 -0
  173. data/lib/seahorse/client/handler_list.rb +2 -0
  174. data/lib/seahorse/client/handler_list_entry.rb +2 -0
  175. data/lib/seahorse/client/http/async_response.rb +2 -0
  176. data/lib/seahorse/client/http/headers.rb +2 -0
  177. data/lib/seahorse/client/http/request.rb +2 -0
  178. data/lib/seahorse/client/http/response.rb +3 -1
  179. data/lib/seahorse/client/logging/formatter.rb +2 -0
  180. data/lib/seahorse/client/logging/handler.rb +2 -0
  181. data/lib/seahorse/client/managed_file.rb +2 -0
  182. data/lib/seahorse/client/net_http/connection_pool.rb +12 -4
  183. data/lib/seahorse/client/net_http/handler.rb +19 -8
  184. data/lib/seahorse/client/net_http/patches.rb +15 -84
  185. data/lib/seahorse/client/networking_error.rb +2 -0
  186. data/lib/seahorse/client/plugin.rb +2 -0
  187. data/lib/seahorse/client/plugin_list.rb +2 -0
  188. data/lib/seahorse/client/plugins/content_length.rb +13 -5
  189. data/lib/seahorse/client/plugins/endpoint.rb +2 -0
  190. data/lib/seahorse/client/plugins/h2.rb +6 -1
  191. data/lib/seahorse/client/plugins/logging.rb +2 -0
  192. data/lib/seahorse/client/plugins/net_http.rb +39 -3
  193. data/lib/seahorse/client/plugins/operation_methods.rb +2 -0
  194. data/lib/seahorse/client/plugins/raise_response_errors.rb +2 -0
  195. data/lib/seahorse/client/plugins/request_callback.rb +110 -0
  196. data/lib/seahorse/client/plugins/response_target.rb +8 -8
  197. data/lib/seahorse/client/request.rb +2 -0
  198. data/lib/seahorse/client/request_context.rb +2 -0
  199. data/lib/seahorse/client/response.rb +2 -0
  200. data/lib/seahorse/model/api.rb +2 -0
  201. data/lib/seahorse/model/authorizer.rb +2 -0
  202. data/lib/seahorse/model/operation.rb +5 -0
  203. data/lib/seahorse/model/shapes.rb +27 -0
  204. data/lib/seahorse/util.rb +8 -1
  205. data/lib/seahorse/version.rb +2 -0
  206. data/lib/seahorse.rb +3 -0
  207. metadata +26 -9
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
4
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
@@ -25,6 +27,9 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
27
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
32
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
28
33
  require 'aws-sdk-core/plugins/signature_v4.rb'
29
34
  require 'aws-sdk-core/plugins/protocols/query.rb'
30
35
  require 'aws-sdk-sts/plugins/sts_regional_endpoints.rb'
@@ -72,6 +77,9 @@ module Aws::STS
72
77
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
73
78
  add_plugin(Aws::Plugins::TransferEncoding)
74
79
  add_plugin(Aws::Plugins::HttpChecksum)
80
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
81
+ add_plugin(Aws::Plugins::DefaultsMode)
82
+ add_plugin(Aws::Plugins::RecursionDetection)
75
83
  add_plugin(Aws::Plugins::SignatureV4)
76
84
  add_plugin(Aws::Plugins::Protocols::Query)
77
85
  add_plugin(Aws::STS::Plugins::STSRegionalEndpoints)
@@ -85,13 +93,28 @@ module Aws::STS
85
93
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
94
  # credentials.
87
95
  #
96
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
97
+ # shared file, such as `~/.aws/config`.
98
+ #
99
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
100
+ #
101
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
102
+ # assume a role after providing credentials via the web.
103
+ #
104
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
105
+ # access token generated from `aws login`.
106
+ #
107
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
108
+ # process that outputs to stdout.
109
+ #
88
110
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
89
111
  # from an EC2 IMDS on an EC2 instance.
90
112
  #
91
- # * `Aws::SharedCredentials` - Used for loading credentials from a
92
- # shared file, such as `~/.aws/config`.
113
+ # * `Aws::ECSCredentials` - Used for loading credentials from
114
+ # instances running in ECS.
93
115
  #
94
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
116
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
117
+ # from the Cognito Identity service.
95
118
  #
96
119
  # When `:credentials` are not configured directly, the following
97
120
  # locations will be searched for credentials:
@@ -101,10 +124,12 @@ module Aws::STS
101
124
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
102
125
  # * `~/.aws/credentials`
103
126
  # * `~/.aws/config`
104
- # * EC2 IMDS instance profile - When used by default, the timeouts are
105
- # very aggressive. Construct and pass an instance of
106
- # `Aws::InstanceProfileCredentails` to enable retries and extended
107
- # timeouts.
127
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
128
+ # are very aggressive. Construct and pass an instance of
129
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
130
+ # enable retries and extended timeouts. Instance profile credential
131
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
132
+ # to true.
108
133
  #
109
134
  # @option options [required, String] :region
110
135
  # The AWS region to connect to. The configured `:region` is
@@ -158,6 +183,10 @@ module Aws::STS
158
183
  # Used only in `standard` and adaptive retry modes. Specifies whether to apply
159
184
  # a clock skew correction and retry requests with skewed client clocks.
160
185
  #
186
+ # @option options [String] :defaults_mode ("legacy")
187
+ # See {Aws::DefaultsModeConfiguration} for a list of the
188
+ # accepted modes and the configuration defaults that are included.
189
+ #
161
190
  # @option options [Boolean] :disable_host_prefix_injection (false)
162
191
  # Set to true to disable SDK automatically adding host prefix
163
192
  # to default service endpoint when available.
@@ -265,6 +294,15 @@ module Aws::STS
265
294
  # ** Please note ** When response stubbing is enabled, no HTTP
266
295
  # requests are made, and retries are disabled.
267
296
  #
297
+ # @option options [Boolean] :use_dualstack_endpoint
298
+ # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
299
+ # will be used if available.
300
+ #
301
+ # @option options [Boolean] :use_fips_endpoint
302
+ # When set to `true`, fips compatible endpoints will be used if available.
303
+ # When a `fips` region is used, the region is normalized and this config
304
+ # is set to `true`.
305
+ #
268
306
  # @option options [Boolean] :validate_params (true)
269
307
  # When `true`, request parameters are validated before
270
308
  # sending the request.
@@ -276,7 +314,7 @@ module Aws::STS
276
314
  # seconds to wait when opening a HTTP session before raising a
277
315
  # `Timeout::Error`.
278
316
  #
279
- # @option options [Integer] :http_read_timeout (60) The default
317
+ # @option options [Float] :http_read_timeout (60) The default
280
318
  # number of seconds to wait for response data. This value can
281
319
  # safely be set per-request on the session.
282
320
  #
@@ -292,6 +330,9 @@ module Aws::STS
292
330
  # disables this behaviour. This value can safely be set per
293
331
  # request on the session.
294
332
  #
333
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
334
+ # in seconds.
335
+ #
295
336
  # @option options [Boolean] :http_wire_trace (false) When `true`,
296
337
  # HTTP debug output will be sent to the `:logger`.
297
338
  #
@@ -318,119 +359,101 @@ module Aws::STS
318
359
  # @!group API Operations
319
360
 
320
361
  # Returns a set of temporary security credentials that you can use to
321
- # access AWS resources that you might not normally have access to. These
322
- # temporary credentials consist of an access key ID, a secret access
323
- # key, and a security token. Typically, you use `AssumeRole` within your
324
- # account or for cross-account access. For a comparison of `AssumeRole`
325
- # with other API operations that produce temporary credentials, see
326
- # [Requesting Temporary Security Credentials][1] and [Comparing the AWS
327
- # STS API operations][2] in the *IAM User Guide*.
328
- #
329
- # You cannot use AWS account root user credentials to call `AssumeRole`.
330
- # You must use credentials for an IAM user or an IAM role to call
331
- # `AssumeRole`.
332
- #
333
- # For cross-account access, imagine that you own multiple accounts and
334
- # need to access resources in each account. You could create long-term
335
- # credentials in each account to access those resources. However,
336
- # managing all those credentials and remembering which one can access
337
- # which account can be time consuming. Instead, you can create one set
338
- # of long-term credentials in one account. Then use temporary security
339
- # credentials to access all the other accounts by assuming roles in
340
- # those accounts. For more information about roles, see [IAM Roles][3]
341
- # in the *IAM User Guide*.
342
- #
343
- # **Session Duration**
344
- #
345
- # By default, the temporary security credentials created by `AssumeRole`
346
- # last for one hour. However, you can use the optional `DurationSeconds`
347
- # parameter to specify the duration of your session. You can provide a
348
- # value from 900 seconds (15 minutes) up to the maximum session duration
349
- # setting for the role. This setting can have a value from 1 hour to 12
350
- # hours. To learn how to view the maximum value for your role, see [View
351
- # the Maximum Session Duration Setting for a Role][4] in the *IAM User
352
- # Guide*. The maximum session duration limit applies when you use the
353
- # `AssumeRole*` API operations or the `assume-role*` CLI commands.
354
- # However the limit does not apply when you use those operations to
355
- # create a console URL. For more information, see [Using IAM Roles][5]
356
- # in the *IAM User Guide*.
362
+ # access Amazon Web Services resources that you might not normally have
363
+ # access to. These temporary credentials consist of an access key ID, a
364
+ # secret access key, and a security token. Typically, you use
365
+ # `AssumeRole` within your account or for cross-account access. For a
366
+ # comparison of `AssumeRole` with other API operations that produce
367
+ # temporary credentials, see [Requesting Temporary Security
368
+ # Credentials][1] and [Comparing the Amazon Web Services STS API
369
+ # operations][2] in the *IAM User Guide*.
357
370
  #
358
371
  # **Permissions**
359
372
  #
360
373
  # The temporary security credentials created by `AssumeRole` can be used
361
- # to make API calls to any AWS service with the following exception: You
362
- # cannot call the AWS STS `GetFederationToken` or `GetSessionToken` API
363
- # operations.
374
+ # to make API calls to any Amazon Web Services service with the
375
+ # following exception: You cannot call the Amazon Web Services STS
376
+ # `GetFederationToken` or `GetSessionToken` API operations.
364
377
  #
365
- # (Optional) You can pass inline or managed [session policies][6] to
378
+ # (Optional) You can pass inline or managed [session policies][3] to
366
379
  # this operation. You can pass a single JSON policy document to use as
367
380
  # an inline session policy. You can also specify up to 10 managed
368
- # policies to use as managed session policies. The plain text that you
381
+ # policies to use as managed session policies. The plaintext that you
369
382
  # use for both inline and managed session policies can't exceed 2,048
370
383
  # characters. Passing policies to this operation returns new temporary
371
384
  # credentials. The resulting session's permissions are the intersection
372
385
  # of the role's identity-based policy and the session policies. You can
373
- # use the role's temporary credentials in subsequent AWS API calls to
374
- # access resources in the account that owns the role. You cannot use
375
- # session policies to grant more permissions than those allowed by the
376
- # identity-based policy of the role that is being assumed. For more
377
- # information, see [Session Policies][6] in the *IAM User Guide*.
386
+ # use the role's temporary credentials in subsequent Amazon Web
387
+ # Services API calls to access resources in the account that owns the
388
+ # role. You cannot use session policies to grant more permissions than
389
+ # those allowed by the identity-based policy of the role that is being
390
+ # assumed. For more information, see [Session Policies][3] in the *IAM
391
+ # User Guide*.
378
392
  #
379
- # To assume a role from a different account, your AWS account must be
380
- # trusted by the role. The trust relationship is defined in the role's
381
- # trust policy when the role is created. That trust policy states which
382
- # accounts are allowed to delegate that access to users in the account.
393
+ # When you create a role, you create two policies: A role trust policy
394
+ # that specifies *who* can assume the role and a permissions policy that
395
+ # specifies *what* can be done with the role. You specify the trusted
396
+ # principal who is allowed to assume the role in the role trust policy.
397
+ #
398
+ # To assume a role from a different account, your Amazon Web Services
399
+ # account must be trusted by the role. The trust relationship is defined
400
+ # in the role's trust policy when the role is created. That trust
401
+ # policy states which accounts are allowed to delegate that access to
402
+ # users in the account.
383
403
  #
384
404
  # A user who wants to access a role in a different account must also
385
405
  # have permissions that are delegated from the user account
386
406
  # administrator. The administrator must attach a policy that allows the
387
407
  # user to call `AssumeRole` for the ARN of the role in the other
388
- # account. If the user is in the same account as the role, then you can
389
- # do either of the following:
408
+ # account.
409
+ #
410
+ # To allow a user to assume a role in the same account, you can do
411
+ # either of the following:
390
412
  #
391
- # * Attach a policy to the user (identical to the previous user in a
392
- # different account).
413
+ # * Attach a policy to the user that allows the user to call
414
+ # `AssumeRole` (as long as the role's trust policy trusts the
415
+ # account).
393
416
  #
394
417
  # * Add the user as a principal directly in the role's trust policy.
395
418
  #
396
- # In this case, the trust policy acts as an IAM resource-based policy.
397
- # Users in the same account as the role do not need explicit permission
398
- # to assume the role. For more information about trust policies and
399
- # resource-based policies, see [IAM Policies][7] in the *IAM User
400
- # Guide*.
419
+ # You can do either because the role’s trust policy acts as an IAM
420
+ # resource-based policy. When a resource-based policy grants access to a
421
+ # principal in the same account, no additional identity-based policy is
422
+ # required. For more information about trust policies and resource-based
423
+ # policies, see [IAM Policies][4] in the *IAM User Guide*.
401
424
  #
402
425
  # **Tags**
403
426
  #
404
427
  # (Optional) You can pass tag key-value pairs to your session. These
405
428
  # tags are called session tags. For more information about session tags,
406
- # see [Passing Session Tags in STS][8] in the *IAM User Guide*.
429
+ # see [Passing Session Tags in STS][5] in the *IAM User Guide*.
407
430
  #
408
431
  # An administrator must grant you the permissions necessary to pass
409
432
  # session tags. The administrator can also create granular permissions
410
433
  # to allow you to pass only specific session tags. For more information,
411
- # see [Tutorial: Using Tags for Attribute-Based Access Control][9] in
434
+ # see [Tutorial: Using Tags for Attribute-Based Access Control][6] in
412
435
  # the *IAM User Guide*.
413
436
  #
414
437
  # You can set the session tags as transitive. Transitive tags persist
415
438
  # during role chaining. For more information, see [Chaining Roles with
416
- # Session Tags][10] in the *IAM User Guide*.
439
+ # Session Tags][7] in the *IAM User Guide*.
417
440
  #
418
441
  # **Using MFA with AssumeRole**
419
442
  #
420
443
  # (Optional) You can include multi-factor authentication (MFA)
421
444
  # information when you call `AssumeRole`. This is useful for
422
445
  # cross-account scenarios to ensure that the user that assumes the role
423
- # has been authenticated with an AWS MFA device. In that scenario, the
424
- # trust policy of the role being assumed includes a condition that tests
425
- # for MFA authentication. If the caller does not include valid MFA
426
- # information, the request to assume the role is denied. The condition
427
- # in a trust policy that tests for MFA authentication might look like
428
- # the following example.
446
+ # has been authenticated with an Amazon Web Services MFA device. In that
447
+ # scenario, the trust policy of the role being assumed includes a
448
+ # condition that tests for MFA authentication. If the caller does not
449
+ # include valid MFA information, the request to assume the role is
450
+ # denied. The condition in a trust policy that tests for MFA
451
+ # authentication might look like the following example.
429
452
  #
430
453
  # `"Condition": \{"Bool": \{"aws:MultiFactorAuthPresent": true\}\}`
431
454
  #
432
- # For more information, see [Configuring MFA-Protected API Access][11]
433
- # in the *IAM User Guide* guide.
455
+ # For more information, see [Configuring MFA-Protected API Access][8] in
456
+ # the *IAM User Guide* guide.
434
457
  #
435
458
  # To use MFA with `AssumeRole`, you pass values for the `SerialNumber`
436
459
  # and `TokenCode` parameters. The `SerialNumber` value identifies the
@@ -441,15 +464,12 @@ module Aws::STS
441
464
  #
442
465
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
443
466
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
444
- # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html
445
- # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
446
- # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
447
- # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
448
- # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
449
- # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
450
- # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
451
- # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
452
- # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html
467
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
468
+ # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
469
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
470
+ # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
471
+ # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
472
+ # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html
453
473
  #
454
474
  # @option params [required, String] :role_arn
455
475
  # The Amazon Resource Name (ARN) of the role to assume.
@@ -464,7 +484,7 @@ module Aws::STS
464
484
  # also used in the ARN of the assumed role principal. This means that
465
485
  # subsequent cross-account API requests that use the temporary security
466
486
  # credentials will expose the role session name to the external account
467
- # in their AWS CloudTrail logs.
487
+ # in their CloudTrail logs.
468
488
  #
469
489
  # The regex used to validate this parameter is a string of characters
470
490
  # consisting of upper- and lower-case alphanumeric characters with no
@@ -477,28 +497,29 @@ module Aws::STS
477
497
  # the same account as the role.
478
498
  #
479
499
  # This parameter is optional. You can provide up to 10 managed policy
480
- # ARNs. However, the plain text that you use for both inline and managed
500
+ # ARNs. However, the plaintext that you use for both inline and managed
481
501
  # session policies can't exceed 2,048 characters. For more information
482
- # about ARNs, see [Amazon Resource Names (ARNs) and AWS Service
483
- # Namespaces][1] in the AWS General Reference.
502
+ # about ARNs, see [Amazon Resource Names (ARNs) and Amazon Web Services
503
+ # Service Namespaces][1] in the Amazon Web Services General Reference.
484
504
  #
485
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
486
- # tags into a packed binary format that has a separate limit. Your
487
- # request can fail for this limit even if your plain text meets the
488
- # other requirements. The `PackedPolicySize` response element indicates
489
- # by percentage how close the policies and tags for your request are to
490
- # the upper size limit.
505
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
506
+ # policies and session tags into a packed binary format that has a
507
+ # separate limit. Your request can fail for this limit even if your
508
+ # plaintext meets the other requirements. The `PackedPolicySize`
509
+ # response element indicates by percentage how close the policies and
510
+ # tags for your request are to the upper size limit.
491
511
  #
492
512
  # </note>
493
513
  #
494
514
  # Passing policies to this operation returns new temporary credentials.
495
515
  # The resulting session's permissions are the intersection of the
496
516
  # role's identity-based policy and the session policies. You can use
497
- # the role's temporary credentials in subsequent AWS API calls to
498
- # access resources in the account that owns the role. You cannot use
499
- # session policies to grant more permissions than those allowed by the
500
- # identity-based policy of the role that is being assumed. For more
501
- # information, see [Session Policies][2] in the *IAM User Guide*.
517
+ # the role's temporary credentials in subsequent Amazon Web Services
518
+ # API calls to access resources in the account that owns the role. You
519
+ # cannot use session policies to grant more permissions than those
520
+ # allowed by the identity-based policy of the role that is being
521
+ # assumed. For more information, see [Session Policies][2] in the *IAM
522
+ # User Guide*.
502
523
  #
503
524
  #
504
525
  #
@@ -513,25 +534,25 @@ module Aws::STS
513
534
  # new temporary credentials. The resulting session's permissions are
514
535
  # the intersection of the role's identity-based policy and the session
515
536
  # policies. You can use the role's temporary credentials in subsequent
516
- # AWS API calls to access resources in the account that owns the role.
517
- # You cannot use session policies to grant more permissions than those
518
- # allowed by the identity-based policy of the role that is being
519
- # assumed. For more information, see [Session Policies][1] in the *IAM
520
- # User Guide*.
537
+ # Amazon Web Services API calls to access resources in the account that
538
+ # owns the role. You cannot use session policies to grant more
539
+ # permissions than those allowed by the identity-based policy of the
540
+ # role that is being assumed. For more information, see [Session
541
+ # Policies][1] in the *IAM User Guide*.
521
542
  #
522
- # The plain text that you use for both inline and managed session
543
+ # The plaintext that you use for both inline and managed session
523
544
  # policies can't exceed 2,048 characters. The JSON policy characters
524
545
  # can be any ASCII character from the space character to the end of the
525
546
  # valid character list (\\u0020 through \\u00FF). It can also include
526
547
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
527
548
  # characters.
528
549
  #
529
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
530
- # tags into a packed binary format that has a separate limit. Your
531
- # request can fail for this limit even if your plain text meets the
532
- # other requirements. The `PackedPolicySize` response element indicates
533
- # by percentage how close the policies and tags for your request are to
534
- # the upper size limit.
550
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
551
+ # policies and session tags into a packed binary format that has a
552
+ # separate limit. Your request can fail for this limit even if your
553
+ # plaintext meets the other requirements. The `PackedPolicySize`
554
+ # response element indicates by percentage how close the policies and
555
+ # tags for your request are to the upper size limit.
535
556
  #
536
557
  # </note>
537
558
  #
@@ -540,15 +561,26 @@ module Aws::STS
540
561
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
541
562
  #
542
563
  # @option params [Integer] :duration_seconds
543
- # The duration, in seconds, of the role session. The value can range
544
- # from 900 seconds (15 minutes) up to the maximum session duration
545
- # setting for the role. This setting can have a value from 1 hour to 12
546
- # hours. If you specify a value higher than this setting, the operation
547
- # fails. For example, if you specify a session duration of 12 hours, but
548
- # your administrator set the maximum session duration to 6 hours, your
549
- # operation fails. To learn how to view the maximum value for your role,
550
- # see [View the Maximum Session Duration Setting for a Role][1] in the
551
- # *IAM User Guide*.
564
+ # The duration, in seconds, of the role session. The value specified can
565
+ # range from 900 seconds (15 minutes) up to the maximum session duration
566
+ # set for the role. The maximum session duration setting can have a
567
+ # value from 1 hour to 12 hours. If you specify a value higher than this
568
+ # setting or the administrator setting (whichever is lower), the
569
+ # operation fails. For example, if you specify a session duration of 12
570
+ # hours, but your administrator set the maximum session duration to 6
571
+ # hours, your operation fails.
572
+ #
573
+ # Role chaining limits your Amazon Web Services CLI or Amazon Web
574
+ # Services API role session to a maximum of one hour. When you use the
575
+ # `AssumeRole` API operation to assume a role, you can specify the
576
+ # duration of your role session with the `DurationSeconds` parameter.
577
+ # You can specify a parameter value of up to 43200 seconds (12 hours),
578
+ # depending on the maximum session duration setting for your role.
579
+ # However, if you assume a role using role chaining and provide a
580
+ # `DurationSeconds` parameter value greater than one hour, the operation
581
+ # fails. To learn how to view the maximum value for your role, see [View
582
+ # the Maximum Session Duration Setting for a Role][1] in the *IAM User
583
+ # Guide*.
552
584
  #
553
585
  # By default, the value is set to `3600` seconds.
554
586
  #
@@ -557,8 +589,8 @@ module Aws::STS
557
589
  # The request to the federation endpoint for a console sign-in token
558
590
  # takes a `SessionDuration` parameter that specifies the maximum length
559
591
  # of the console session. For more information, see [Creating a URL that
560
- # Enables Federated Users to Access the AWS Management Console][2] in
561
- # the *IAM User Guide*.
592
+ # Enables Federated Users to Access the Amazon Web Services Management
593
+ # Console][2] in the *IAM User Guide*.
562
594
  #
563
595
  # </note>
564
596
  #
@@ -570,20 +602,20 @@ module Aws::STS
570
602
  # @option params [Array<Types::Tag>] :tags
571
603
  # A list of session tags that you want to pass. Each session tag
572
604
  # consists of a key name and an associated value. For more information
573
- # about session tags, see [Tagging AWS STS Sessions][1] in the *IAM User
574
- # Guide*.
605
+ # about session tags, see [Tagging Amazon Web Services STS Sessions][1]
606
+ # in the *IAM User Guide*.
575
607
  #
576
608
  # This parameter is optional. You can pass up to 50 session tags. The
577
- # plain text session tag keys can’t exceed 128 characters, and the
578
- # values can’t exceed 256 characters. For these and additional limits,
579
- # see [IAM and STS Character Limits][2] in the *IAM User Guide*.
609
+ # plaintext session tag keys can’t exceed 128 characters, and the values
610
+ # can’t exceed 256 characters. For these and additional limits, see [IAM
611
+ # and STS Character Limits][2] in the *IAM User Guide*.
580
612
  #
581
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
582
- # tags into a packed binary format that has a separate limit. Your
583
- # request can fail for this limit even if your plain text meets the
584
- # other requirements. The `PackedPolicySize` response element indicates
585
- # by percentage how close the policies and tags for your request are to
586
- # the upper size limit.
613
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
614
+ # policies and session tags into a packed binary format that has a
615
+ # separate limit. Your request can fail for this limit even if your
616
+ # plaintext meets the other requirements. The `PackedPolicySize`
617
+ # response element indicates by percentage how close the policies and
618
+ # tags for your request are to the upper size limit.
587
619
  #
588
620
  # </note>
589
621
  #
@@ -602,14 +634,14 @@ module Aws::STS
602
634
  # operation, the new session inherits any transitive session tags from
603
635
  # the calling session. If you pass a session tag with the same key as an
604
636
  # inherited tag, the operation fails. To view the inherited tags for a
605
- # session, see the AWS CloudTrail logs. For more information, see
606
- # [Viewing Session Tags in CloudTrail][3] in the *IAM User Guide*.
637
+ # session, see the CloudTrail logs. For more information, see [Viewing
638
+ # Session Tags in CloudTrail][3] in the *IAM User Guide*.
607
639
  #
608
640
  #
609
641
  #
610
642
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
611
643
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
612
- # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/session-tags.html#id_session-tags_ctlogs
644
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_ctlogs
613
645
  #
614
646
  # @option params [Array<String>] :transitive_tag_keys
615
647
  # A list of keys for session tags that you want to set as transitive. If
@@ -639,7 +671,8 @@ module Aws::STS
639
671
  # trusted account. That way, only someone with the ID can assume the
640
672
  # role, rather than everyone in the account. For more information about
641
673
  # the external ID, see [How to Use an External ID When Granting Access
642
- # to Your AWS Resources to a Third Party][1] in the *IAM User Guide*.
674
+ # to Your Amazon Web Services Resources to a Third Party][1] in the *IAM
675
+ # User Guide*.
643
676
  #
644
677
  # The regex used to validate this parameter is a string of characters
645
678
  # consisting of upper- and lower-case alphanumeric characters with no
@@ -666,7 +699,7 @@ module Aws::STS
666
699
  #
667
700
  # @option params [String] :token_code
668
701
  # The value provided by the MFA device, if the trust policy of the role
669
- # being assumed requires MFA (that is, if the policy includes a
702
+ # being assumed requires MFA. (In other words, if the policy includes a
670
703
  # condition that tests for MFA). If the role being assumed requires MFA
671
704
  # and if the `TokenCode` value is missing or expired, the `AssumeRole`
672
705
  # call returns an "access denied" error.
@@ -674,11 +707,35 @@ module Aws::STS
674
707
  # The format for this parameter, as described by its regex pattern, is a
675
708
  # sequence of six numeric digits.
676
709
  #
710
+ # @option params [String] :source_identity
711
+ # The source identity specified by the principal that is calling the
712
+ # `AssumeRole` operation.
713
+ #
714
+ # You can require users to specify a source identity when they assume a
715
+ # role. You do this by using the `sts:SourceIdentity` condition key in a
716
+ # role trust policy. You can use source identity information in
717
+ # CloudTrail logs to determine who took actions with a role. You can use
718
+ # the `aws:SourceIdentity` condition key to further control access to
719
+ # Amazon Web Services resources based on the value of source identity.
720
+ # For more information about using source identity, see [Monitor and
721
+ # control actions taken with assumed roles][1] in the *IAM User Guide*.
722
+ #
723
+ # The regex used to validate this parameter is a string of characters
724
+ # consisting of upper- and lower-case alphanumeric characters with no
725
+ # spaces. You can also include underscores or any of the following
726
+ # characters: =,.@-. You cannot use a value that begins with the text
727
+ # `aws:`. This prefix is reserved for Amazon Web Services internal use.
728
+ #
729
+ #
730
+ #
731
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
732
+ #
677
733
  # @return [Types::AssumeRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
678
734
  #
679
735
  # * {Types::AssumeRoleResponse#credentials #credentials} => Types::Credentials
680
736
  # * {Types::AssumeRoleResponse#assumed_role_user #assumed_role_user} => Types::AssumedRoleUser
681
737
  # * {Types::AssumeRoleResponse#packed_policy_size #packed_policy_size} => Integer
738
+ # * {Types::AssumeRoleResponse#source_identity #source_identity} => String
682
739
  #
683
740
  #
684
741
  # @example Example: To assume a role
@@ -745,6 +802,7 @@ module Aws::STS
745
802
  # external_id: "externalIdType",
746
803
  # serial_number: "serialNumberType",
747
804
  # token_code: "tokenCodeType",
805
+ # source_identity: "sourceIdentityType",
748
806
  # })
749
807
  #
750
808
  # @example Response structure
@@ -756,6 +814,7 @@ module Aws::STS
756
814
  # resp.assumed_role_user.assumed_role_id #=> String
757
815
  # resp.assumed_role_user.arn #=> String
758
816
  # resp.packed_policy_size #=> Integer
817
+ # resp.source_identity #=> String
759
818
  #
760
819
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole AWS API Documentation
761
820
  #
@@ -769,16 +828,17 @@ module Aws::STS
769
828
  # Returns a set of temporary security credentials for users who have
770
829
  # been authenticated via a SAML authentication response. This operation
771
830
  # provides a mechanism for tying an enterprise identity store or
772
- # directory to role-based AWS access without user-specific credentials
773
- # or configuration. For a comparison of `AssumeRoleWithSAML` with the
774
- # other API operations that produce temporary credentials, see
775
- # [Requesting Temporary Security Credentials][1] and [Comparing the AWS
776
- # STS API operations][2] in the *IAM User Guide*.
831
+ # directory to role-based Amazon Web Services access without
832
+ # user-specific credentials or configuration. For a comparison of
833
+ # `AssumeRoleWithSAML` with the other API operations that produce
834
+ # temporary credentials, see [Requesting Temporary Security
835
+ # Credentials][1] and [Comparing the Amazon Web Services STS API
836
+ # operations][2] in the *IAM User Guide*.
777
837
  #
778
838
  # The temporary security credentials returned by this operation consist
779
839
  # of an access key ID, a secret access key, and a security token.
780
840
  # Applications can use these temporary security credentials to sign
781
- # calls to AWS services.
841
+ # calls to Amazon Web Services services.
782
842
  #
783
843
  # **Session Duration**
784
844
  #
@@ -798,37 +858,49 @@ module Aws::STS
798
858
  # use those operations to create a console URL. For more information,
799
859
  # see [Using IAM Roles][4] in the *IAM User Guide*.
800
860
  #
861
+ # <note markdown="1"> [Role chaining][5] limits your CLI or Amazon Web Services API role
862
+ # session to a maximum of one hour. When you use the `AssumeRole` API
863
+ # operation to assume a role, you can specify the duration of your role
864
+ # session with the `DurationSeconds` parameter. You can specify a
865
+ # parameter value of up to 43200 seconds (12 hours), depending on the
866
+ # maximum session duration setting for your role. However, if you assume
867
+ # a role using role chaining and provide a `DurationSeconds` parameter
868
+ # value greater than one hour, the operation fails.
869
+ #
870
+ # </note>
871
+ #
801
872
  # **Permissions**
802
873
  #
803
874
  # The temporary security credentials created by `AssumeRoleWithSAML` can
804
- # be used to make API calls to any AWS service with the following
805
- # exception: you cannot call the STS `GetFederationToken` or
875
+ # be used to make API calls to any Amazon Web Services service with the
876
+ # following exception: you cannot call the STS `GetFederationToken` or
806
877
  # `GetSessionToken` API operations.
807
878
  #
808
- # (Optional) You can pass inline or managed [session policies][5] to
879
+ # (Optional) You can pass inline or managed [session policies][6] to
809
880
  # this operation. You can pass a single JSON policy document to use as
810
881
  # an inline session policy. You can also specify up to 10 managed
811
- # policies to use as managed session policies. The plain text that you
882
+ # policies to use as managed session policies. The plaintext that you
812
883
  # use for both inline and managed session policies can't exceed 2,048
813
884
  # characters. Passing policies to this operation returns new temporary
814
885
  # credentials. The resulting session's permissions are the intersection
815
886
  # of the role's identity-based policy and the session policies. You can
816
- # use the role's temporary credentials in subsequent AWS API calls to
817
- # access resources in the account that owns the role. You cannot use
818
- # session policies to grant more permissions than those allowed by the
819
- # identity-based policy of the role that is being assumed. For more
820
- # information, see [Session Policies][5] in the *IAM User Guide*.
821
- #
822
- # Calling `AssumeRoleWithSAML` does not require the use of AWS security
823
- # credentials. The identity of the caller is validated by using keys in
824
- # the metadata document that is uploaded for the SAML provider entity
825
- # for your identity provider.
826
- #
827
- # Calling `AssumeRoleWithSAML` can result in an entry in your AWS
828
- # CloudTrail logs. The entry includes the value in the `NameID` element
829
- # of the SAML assertion. We recommend that you use a `NameIDType` that
830
- # is not associated with any personally identifiable information (PII).
831
- # For example, you could instead use the persistent identifier
887
+ # use the role's temporary credentials in subsequent Amazon Web
888
+ # Services API calls to access resources in the account that owns the
889
+ # role. You cannot use session policies to grant more permissions than
890
+ # those allowed by the identity-based policy of the role that is being
891
+ # assumed. For more information, see [Session Policies][6] in the *IAM
892
+ # User Guide*.
893
+ #
894
+ # Calling `AssumeRoleWithSAML` does not require the use of Amazon Web
895
+ # Services security credentials. The identity of the caller is validated
896
+ # by using keys in the metadata document that is uploaded for the SAML
897
+ # provider entity for your identity provider.
898
+ #
899
+ # Calling `AssumeRoleWithSAML` can result in an entry in your CloudTrail
900
+ # logs. The entry includes the value in the `NameID` element of the SAML
901
+ # assertion. We recommend that you use a `NameIDType` that is not
902
+ # associated with any personally identifiable information (PII). For
903
+ # example, you could instead use the persistent identifier
832
904
  # (`urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`).
833
905
  #
834
906
  # **Tags**
@@ -836,19 +908,19 @@ module Aws::STS
836
908
  # (Optional) You can configure your IdP to pass attributes into your
837
909
  # SAML assertion as session tags. Each session tag consists of a key
838
910
  # name and an associated value. For more information about session tags,
839
- # see [Passing Session Tags in STS][6] in the *IAM User Guide*.
911
+ # see [Passing Session Tags in STS][7] in the *IAM User Guide*.
840
912
  #
841
- # You can pass up to 50 session tags. The plain text session tag keys
913
+ # You can pass up to 50 session tags. The plaintext session tag keys
842
914
  # can’t exceed 128 characters and the values can’t exceed 256
843
915
  # characters. For these and additional limits, see [IAM and STS
844
- # Character Limits][7] in the *IAM User Guide*.
916
+ # Character Limits][8] in the *IAM User Guide*.
845
917
  #
846
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
847
- # tags into a packed binary format that has a separate limit. Your
848
- # request can fail for this limit even if your plain text meets the
849
- # other requirements. The `PackedPolicySize` response element indicates
850
- # by percentage how close the policies and tags for your request are to
851
- # the upper size limit.
918
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
919
+ # policies and session tags into a packed binary format that has a
920
+ # separate limit. Your request can fail for this limit even if your
921
+ # plaintext meets the other requirements. The `PackedPolicySize`
922
+ # response element indicates by percentage how close the policies and
923
+ # tags for your request are to the upper size limit.
852
924
  #
853
925
  # </note>
854
926
  #
@@ -859,32 +931,33 @@ module Aws::STS
859
931
  # An administrator must grant you the permissions necessary to pass
860
932
  # session tags. The administrator can also create granular permissions
861
933
  # to allow you to pass only specific session tags. For more information,
862
- # see [Tutorial: Using Tags for Attribute-Based Access Control][8] in
934
+ # see [Tutorial: Using Tags for Attribute-Based Access Control][9] in
863
935
  # the *IAM User Guide*.
864
936
  #
865
937
  # You can set the session tags as transitive. Transitive tags persist
866
938
  # during role chaining. For more information, see [Chaining Roles with
867
- # Session Tags][9] in the *IAM User Guide*.
939
+ # Session Tags][10] in the *IAM User Guide*.
868
940
  #
869
941
  # **SAML Configuration**
870
942
  #
871
943
  # Before your application can call `AssumeRoleWithSAML`, you must
872
944
  # configure your SAML identity provider (IdP) to issue the claims
873
- # required by AWS. Additionally, you must use AWS Identity and Access
874
- # Management (IAM) to create a SAML provider entity in your AWS account
875
- # that represents your identity provider. You must also create an IAM
876
- # role that specifies this SAML provider in its trust policy.
945
+ # required by Amazon Web Services. Additionally, you must use Identity
946
+ # and Access Management (IAM) to create a SAML provider entity in your
947
+ # Amazon Web Services account that represents your identity provider.
948
+ # You must also create an IAM role that specifies this SAML provider in
949
+ # its trust policy.
877
950
  #
878
951
  # For more information, see the following resources:
879
952
  #
880
- # * [About SAML 2.0-based Federation][10] in the *IAM User Guide*.
953
+ # * [About SAML 2.0-based Federation][11] in the *IAM User Guide*.
881
954
  #
882
- # * [Creating SAML Identity Providers][11] in the *IAM User Guide*.
955
+ # * [Creating SAML Identity Providers][12] in the *IAM User Guide*.
883
956
  #
884
- # * [Configuring a Relying Party and Claims][12] in the *IAM User
957
+ # * [Configuring a Relying Party and Claims][13] in the *IAM User
885
958
  # Guide*.
886
959
  #
887
- # * [Creating a Role for SAML 2.0 Federation][13] in the *IAM User
960
+ # * [Creating a Role for SAML 2.0 Federation][14] in the *IAM User
888
961
  # Guide*.
889
962
  #
890
963
  #
@@ -893,15 +966,16 @@ module Aws::STS
893
966
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
894
967
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
895
968
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
896
- # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
897
- # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
898
- # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
899
- # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
900
- # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
901
- # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html
902
- # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html
903
- # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html
904
- # [13]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html
969
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining
970
+ # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
971
+ # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
972
+ # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
973
+ # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
974
+ # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
975
+ # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html
976
+ # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html
977
+ # [13]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html
978
+ # [14]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html
905
979
  #
906
980
  # @option params [required, String] :role_arn
907
981
  # The Amazon Resource Name (ARN) of the role that the caller is
@@ -912,7 +986,7 @@ module Aws::STS
912
986
  # describes the IdP.
913
987
  #
914
988
  # @option params [required, String] :saml_assertion
915
- # The base-64 encoded SAML authentication response provided by the IdP.
989
+ # The base64 encoded SAML authentication response provided by the IdP.
916
990
  #
917
991
  # For more information, see [Configuring a Relying Party and Adding
918
992
  # Claims][1] in the *IAM User Guide*.
@@ -927,28 +1001,29 @@ module Aws::STS
927
1001
  # the same account as the role.
928
1002
  #
929
1003
  # This parameter is optional. You can provide up to 10 managed policy
930
- # ARNs. However, the plain text that you use for both inline and managed
1004
+ # ARNs. However, the plaintext that you use for both inline and managed
931
1005
  # session policies can't exceed 2,048 characters. For more information
932
- # about ARNs, see [Amazon Resource Names (ARNs) and AWS Service
933
- # Namespaces][1] in the AWS General Reference.
1006
+ # about ARNs, see [Amazon Resource Names (ARNs) and Amazon Web Services
1007
+ # Service Namespaces][1] in the Amazon Web Services General Reference.
934
1008
  #
935
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
936
- # tags into a packed binary format that has a separate limit. Your
937
- # request can fail for this limit even if your plain text meets the
938
- # other requirements. The `PackedPolicySize` response element indicates
939
- # by percentage how close the policies and tags for your request are to
940
- # the upper size limit.
1009
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1010
+ # policies and session tags into a packed binary format that has a
1011
+ # separate limit. Your request can fail for this limit even if your
1012
+ # plaintext meets the other requirements. The `PackedPolicySize`
1013
+ # response element indicates by percentage how close the policies and
1014
+ # tags for your request are to the upper size limit.
941
1015
  #
942
1016
  # </note>
943
1017
  #
944
1018
  # Passing policies to this operation returns new temporary credentials.
945
1019
  # The resulting session's permissions are the intersection of the
946
1020
  # role's identity-based policy and the session policies. You can use
947
- # the role's temporary credentials in subsequent AWS API calls to
948
- # access resources in the account that owns the role. You cannot use
949
- # session policies to grant more permissions than those allowed by the
950
- # identity-based policy of the role that is being assumed. For more
951
- # information, see [Session Policies][2] in the *IAM User Guide*.
1021
+ # the role's temporary credentials in subsequent Amazon Web Services
1022
+ # API calls to access resources in the account that owns the role. You
1023
+ # cannot use session policies to grant more permissions than those
1024
+ # allowed by the identity-based policy of the role that is being
1025
+ # assumed. For more information, see [Session Policies][2] in the *IAM
1026
+ # User Guide*.
952
1027
  #
953
1028
  #
954
1029
  #
@@ -963,25 +1038,25 @@ module Aws::STS
963
1038
  # new temporary credentials. The resulting session's permissions are
964
1039
  # the intersection of the role's identity-based policy and the session
965
1040
  # policies. You can use the role's temporary credentials in subsequent
966
- # AWS API calls to access resources in the account that owns the role.
967
- # You cannot use session policies to grant more permissions than those
968
- # allowed by the identity-based policy of the role that is being
969
- # assumed. For more information, see [Session Policies][1] in the *IAM
970
- # User Guide*.
1041
+ # Amazon Web Services API calls to access resources in the account that
1042
+ # owns the role. You cannot use session policies to grant more
1043
+ # permissions than those allowed by the identity-based policy of the
1044
+ # role that is being assumed. For more information, see [Session
1045
+ # Policies][1] in the *IAM User Guide*.
971
1046
  #
972
- # The plain text that you use for both inline and managed session
1047
+ # The plaintext that you use for both inline and managed session
973
1048
  # policies can't exceed 2,048 characters. The JSON policy characters
974
1049
  # can be any ASCII character from the space character to the end of the
975
1050
  # valid character list (\\u0020 through \\u00FF). It can also include
976
1051
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
977
1052
  # characters.
978
1053
  #
979
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
980
- # tags into a packed binary format that has a separate limit. Your
981
- # request can fail for this limit even if your plain text meets the
982
- # other requirements. The `PackedPolicySize` response element indicates
983
- # by percentage how close the policies and tags for your request are to
984
- # the upper size limit.
1054
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1055
+ # policies and session tags into a packed binary format that has a
1056
+ # separate limit. Your request can fail for this limit even if your
1057
+ # plaintext meets the other requirements. The `PackedPolicySize`
1058
+ # response element indicates by percentage how close the policies and
1059
+ # tags for your request are to the upper size limit.
985
1060
  #
986
1061
  # </note>
987
1062
  #
@@ -1010,8 +1085,8 @@ module Aws::STS
1010
1085
  # The request to the federation endpoint for a console sign-in token
1011
1086
  # takes a `SessionDuration` parameter that specifies the maximum length
1012
1087
  # of the console session. For more information, see [Creating a URL that
1013
- # Enables Federated Users to Access the AWS Management Console][2] in
1014
- # the *IAM User Guide*.
1088
+ # Enables Federated Users to Access the Amazon Web Services Management
1089
+ # Console][2] in the *IAM User Guide*.
1015
1090
  #
1016
1091
  # </note>
1017
1092
  #
@@ -1030,6 +1105,7 @@ module Aws::STS
1030
1105
  # * {Types::AssumeRoleWithSAMLResponse#issuer #issuer} => String
1031
1106
  # * {Types::AssumeRoleWithSAMLResponse#audience #audience} => String
1032
1107
  # * {Types::AssumeRoleWithSAMLResponse#name_qualifier #name_qualifier} => String
1108
+ # * {Types::AssumeRoleWithSAMLResponse#source_identity #source_identity} => String
1033
1109
  #
1034
1110
  #
1035
1111
  # @example Example: To assume a role using a SAML assertion
@@ -1090,6 +1166,7 @@ module Aws::STS
1090
1166
  # resp.issuer #=> String
1091
1167
  # resp.audience #=> String
1092
1168
  # resp.name_qualifier #=> String
1169
+ # resp.source_identity #=> String
1093
1170
  #
1094
1171
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML AWS API Documentation
1095
1172
  #
@@ -1102,37 +1179,41 @@ module Aws::STS
1102
1179
 
1103
1180
  # Returns a set of temporary security credentials for users who have
1104
1181
  # been authenticated in a mobile or web application with a web identity
1105
- # provider. Example providers include Amazon Cognito, Login with Amazon,
1106
- # Facebook, Google, or any OpenID Connect-compatible identity provider.
1182
+ # provider. Example providers include the OAuth 2.0 providers Login with
1183
+ # Amazon and Facebook, or any OpenID Connect-compatible identity
1184
+ # provider such as Google or [Amazon Cognito federated identities][1].
1107
1185
  #
1108
1186
  # <note markdown="1"> For mobile applications, we recommend that you use Amazon Cognito. You
1109
- # can use Amazon Cognito with the [AWS SDK for iOS Developer Guide][1]
1110
- # and the [AWS SDK for Android Developer Guide][2] to uniquely identify
1111
- # a user. You can also supply the user with a consistent identity
1112
- # throughout the lifetime of an application.
1113
- #
1114
- # To learn more about Amazon Cognito, see [Amazon Cognito Overview][3]
1115
- # in *AWS SDK for Android Developer Guide* and [Amazon Cognito
1116
- # Overview][4] in the *AWS SDK for iOS Developer Guide*.
1187
+ # can use Amazon Cognito with the [Amazon Web Services SDK for iOS
1188
+ # Developer Guide][2] and the [Amazon Web Services SDK for Android
1189
+ # Developer Guide][3] to uniquely identify a user. You can also supply
1190
+ # the user with a consistent identity throughout the lifetime of an
1191
+ # application.
1192
+ #
1193
+ # To learn more about Amazon Cognito, see [Amazon Cognito Overview][4]
1194
+ # in *Amazon Web Services SDK for Android Developer Guide* and [Amazon
1195
+ # Cognito Overview][5] in the *Amazon Web Services SDK for iOS Developer
1196
+ # Guide*.
1117
1197
  #
1118
1198
  # </note>
1119
1199
  #
1120
- # Calling `AssumeRoleWithWebIdentity` does not require the use of AWS
1121
- # security credentials. Therefore, you can distribute an application
1122
- # (for example, on mobile devices) that requests temporary security
1123
- # credentials without including long-term AWS credentials in the
1124
- # application. You also don't need to deploy server-based proxy
1125
- # services that use long-term AWS credentials. Instead, the identity of
1126
- # the caller is validated by using a token from the web identity
1127
- # provider. For a comparison of `AssumeRoleWithWebIdentity` with the
1128
- # other API operations that produce temporary credentials, see
1129
- # [Requesting Temporary Security Credentials][5] and [Comparing the AWS
1130
- # STS API operations][6] in the *IAM User Guide*.
1200
+ # Calling `AssumeRoleWithWebIdentity` does not require the use of Amazon
1201
+ # Web Services security credentials. Therefore, you can distribute an
1202
+ # application (for example, on mobile devices) that requests temporary
1203
+ # security credentials without including long-term Amazon Web Services
1204
+ # credentials in the application. You also don't need to deploy
1205
+ # server-based proxy services that use long-term Amazon Web Services
1206
+ # credentials. Instead, the identity of the caller is validated by using
1207
+ # a token from the web identity provider. For a comparison of
1208
+ # `AssumeRoleWithWebIdentity` with the other API operations that produce
1209
+ # temporary credentials, see [Requesting Temporary Security
1210
+ # Credentials][6] and [Comparing the Amazon Web Services STS API
1211
+ # operations][7] in the *IAM User Guide*.
1131
1212
  #
1132
1213
  # The temporary security credentials returned by this API consist of an
1133
1214
  # access key ID, a secret access key, and a security token. Applications
1134
- # can use these temporary security credentials to sign calls to AWS
1135
- # service API operations.
1215
+ # can use these temporary security credentials to sign calls to Amazon
1216
+ # Web Services service API operations.
1136
1217
  #
1137
1218
  # **Session Duration**
1138
1219
  #
@@ -1143,51 +1224,52 @@ module Aws::STS
1143
1224
  # to the maximum session duration setting for the role. This setting can
1144
1225
  # have a value from 1 hour to 12 hours. To learn how to view the maximum
1145
1226
  # value for your role, see [View the Maximum Session Duration Setting
1146
- # for a Role][7] in the *IAM User Guide*. The maximum session duration
1227
+ # for a Role][8] in the *IAM User Guide*. The maximum session duration
1147
1228
  # limit applies when you use the `AssumeRole*` API operations or the
1148
1229
  # `assume-role*` CLI commands. However the limit does not apply when you
1149
1230
  # use those operations to create a console URL. For more information,
1150
- # see [Using IAM Roles][8] in the *IAM User Guide*.
1231
+ # see [Using IAM Roles][9] in the *IAM User Guide*.
1151
1232
  #
1152
1233
  # **Permissions**
1153
1234
  #
1154
1235
  # The temporary security credentials created by
1155
- # `AssumeRoleWithWebIdentity` can be used to make API calls to any AWS
1156
- # service with the following exception: you cannot call the STS
1157
- # `GetFederationToken` or `GetSessionToken` API operations.
1236
+ # `AssumeRoleWithWebIdentity` can be used to make API calls to any
1237
+ # Amazon Web Services service with the following exception: you cannot
1238
+ # call the STS `GetFederationToken` or `GetSessionToken` API operations.
1158
1239
  #
1159
- # (Optional) You can pass inline or managed [session policies][9] to
1240
+ # (Optional) You can pass inline or managed [session policies][10] to
1160
1241
  # this operation. You can pass a single JSON policy document to use as
1161
1242
  # an inline session policy. You can also specify up to 10 managed
1162
- # policies to use as managed session policies. The plain text that you
1243
+ # policies to use as managed session policies. The plaintext that you
1163
1244
  # use for both inline and managed session policies can't exceed 2,048
1164
1245
  # characters. Passing policies to this operation returns new temporary
1165
1246
  # credentials. The resulting session's permissions are the intersection
1166
1247
  # of the role's identity-based policy and the session policies. You can
1167
- # use the role's temporary credentials in subsequent AWS API calls to
1168
- # access resources in the account that owns the role. You cannot use
1169
- # session policies to grant more permissions than those allowed by the
1170
- # identity-based policy of the role that is being assumed. For more
1171
- # information, see [Session Policies][9] in the *IAM User Guide*.
1248
+ # use the role's temporary credentials in subsequent Amazon Web
1249
+ # Services API calls to access resources in the account that owns the
1250
+ # role. You cannot use session policies to grant more permissions than
1251
+ # those allowed by the identity-based policy of the role that is being
1252
+ # assumed. For more information, see [Session Policies][10] in the *IAM
1253
+ # User Guide*.
1172
1254
  #
1173
1255
  # **Tags**
1174
1256
  #
1175
1257
  # (Optional) You can configure your IdP to pass attributes into your web
1176
1258
  # identity token as session tags. Each session tag consists of a key
1177
1259
  # name and an associated value. For more information about session tags,
1178
- # see [Passing Session Tags in STS][10] in the *IAM User Guide*.
1260
+ # see [Passing Session Tags in STS][11] in the *IAM User Guide*.
1179
1261
  #
1180
- # You can pass up to 50 session tags. The plain text session tag keys
1262
+ # You can pass up to 50 session tags. The plaintext session tag keys
1181
1263
  # can’t exceed 128 characters and the values can’t exceed 256
1182
1264
  # characters. For these and additional limits, see [IAM and STS
1183
- # Character Limits][11] in the *IAM User Guide*.
1265
+ # Character Limits][12] in the *IAM User Guide*.
1184
1266
  #
1185
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
1186
- # tags into a packed binary format that has a separate limit. Your
1187
- # request can fail for this limit even if your plain text meets the
1188
- # other requirements. The `PackedPolicySize` response element indicates
1189
- # by percentage how close the policies and tags for your request are to
1190
- # the upper size limit.
1267
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1268
+ # policies and session tags into a packed binary format that has a
1269
+ # separate limit. Your request can fail for this limit even if your
1270
+ # plaintext meets the other requirements. The `PackedPolicySize`
1271
+ # response element indicates by percentage how close the policies and
1272
+ # tags for your request are to the upper size limit.
1191
1273
  #
1192
1274
  # </note>
1193
1275
  #
@@ -1198,12 +1280,12 @@ module Aws::STS
1198
1280
  # An administrator must grant you the permissions necessary to pass
1199
1281
  # session tags. The administrator can also create granular permissions
1200
1282
  # to allow you to pass only specific session tags. For more information,
1201
- # see [Tutorial: Using Tags for Attribute-Based Access Control][12] in
1283
+ # see [Tutorial: Using Tags for Attribute-Based Access Control][13] in
1202
1284
  # the *IAM User Guide*.
1203
1285
  #
1204
1286
  # You can set the session tags as transitive. Transitive tags persist
1205
1287
  # during role chaining. For more information, see [Chaining Roles with
1206
- # Session Tags][13] in the *IAM User Guide*.
1288
+ # Session Tags][14] in the *IAM User Guide*.
1207
1289
  #
1208
1290
  # **Identities**
1209
1291
  #
@@ -1214,55 +1296,56 @@ module Aws::STS
1214
1296
  # identity token. In other words, the identity provider must be
1215
1297
  # specified in the role's trust policy.
1216
1298
  #
1217
- # Calling `AssumeRoleWithWebIdentity` can result in an entry in your AWS
1218
- # CloudTrail logs. The entry includes the [Subject][14] of the provided
1219
- # Web Identity Token. We recommend that you avoid using any personally
1299
+ # Calling `AssumeRoleWithWebIdentity` can result in an entry in your
1300
+ # CloudTrail logs. The entry includes the [Subject][15] of the provided
1301
+ # web identity token. We recommend that you avoid using any personally
1220
1302
  # identifiable information (PII) in this field. For example, you could
1221
1303
  # instead use a GUID or a pairwise identifier, as [suggested in the OIDC
1222
- # specification][15].
1304
+ # specification][16].
1223
1305
  #
1224
1306
  # For more information about how to use web identity federation and the
1225
1307
  # `AssumeRoleWithWebIdentity` API, see the following resources:
1226
1308
  #
1227
- # * [Using Web Identity Federation API Operations for Mobile Apps][16]
1228
- # and [Federation Through a Web-based Identity Provider][17].
1309
+ # * [Using Web Identity Federation API Operations for Mobile Apps][17]
1310
+ # and [Federation Through a Web-based Identity Provider][18].
1229
1311
  #
1230
- # * [ Web Identity Federation Playground][18]. Walk through the process
1312
+ # * [ Web Identity Federation Playground][19]. Walk through the process
1231
1313
  # of authenticating through Login with Amazon, Facebook, or Google,
1232
1314
  # getting temporary security credentials, and then using those
1233
- # credentials to make a request to AWS.
1315
+ # credentials to make a request to Amazon Web Services.
1234
1316
  #
1235
- # * [AWS SDK for iOS Developer Guide][1] and [AWS SDK for Android
1236
- # Developer Guide][2]. These toolkits contain sample apps that show
1237
- # how to invoke the identity providers. The toolkits then show how to
1238
- # use the information from these providers to get and use temporary
1239
- # security credentials.
1317
+ # * [Amazon Web Services SDK for iOS Developer Guide][2] and [Amazon Web
1318
+ # Services SDK for Android Developer Guide][3]. These toolkits contain
1319
+ # sample apps that show how to invoke the identity providers. The
1320
+ # toolkits then show how to use the information from these providers
1321
+ # to get and use temporary security credentials.
1240
1322
  #
1241
- # * [Web Identity Federation with Mobile Applications][19]. This article
1323
+ # * [Web Identity Federation with Mobile Applications][20]. This article
1242
1324
  # discusses web identity federation and shows an example of how to use
1243
1325
  # web identity federation to get access to content in Amazon S3.
1244
1326
  #
1245
1327
  #
1246
1328
  #
1247
- # [1]: http://aws.amazon.com/sdkforios/
1248
- # [2]: http://aws.amazon.com/sdkforandroid/
1249
- # [3]: https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840
1250
- # [4]: https://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664
1251
- # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1252
- # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1253
- # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
1254
- # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1255
- # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1256
- # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1257
- # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1258
- # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
1259
- # [13]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
1260
- # [14]: http://openid.net/specs/openid-connect-core-1_0.html#Claims
1261
- # [15]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes
1262
- # [16]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html
1263
- # [17]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1264
- # [18]: https://web-identity-federation-playground.s3.amazonaws.com/index.html
1265
- # [19]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications
1329
+ # [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
1330
+ # [2]: http://aws.amazon.com/sdkforios/
1331
+ # [3]: http://aws.amazon.com/sdkforandroid/
1332
+ # [4]: https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840
1333
+ # [5]: https://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664
1334
+ # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1335
+ # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1336
+ # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
1337
+ # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1338
+ # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1339
+ # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1340
+ # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1341
+ # [13]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
1342
+ # [14]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
1343
+ # [15]: http://openid.net/specs/openid-connect-core-1_0.html#Claims
1344
+ # [16]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes
1345
+ # [17]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html
1346
+ # [18]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1347
+ # [19]: https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/
1348
+ # [20]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications
1266
1349
  #
1267
1350
  # @option params [required, String] :role_arn
1268
1351
  # The Amazon Resource Name (ARN) of the role that the caller is
@@ -1289,13 +1372,13 @@ module Aws::STS
1289
1372
  # `AssumeRoleWithWebIdentity` call.
1290
1373
  #
1291
1374
  # @option params [String] :provider_id
1292
- # The fully qualified host component of the domain name of the identity
1293
- # provider.
1375
+ # The fully qualified host component of the domain name of the OAuth 2.0
1376
+ # identity provider. Do not specify this value for an OpenID Connect
1377
+ # identity provider.
1294
1378
  #
1295
- # Specify this value only for OAuth 2.0 access tokens. Currently
1296
- # `www.amazon.com` and `graph.facebook.com` are the only supported
1297
- # identity providers for OAuth 2.0 access tokens. Do not include URL
1298
- # schemes and port numbers.
1379
+ # Currently `www.amazon.com` and `graph.facebook.com` are the only
1380
+ # supported identity providers for OAuth 2.0 access tokens. Do not
1381
+ # include URL schemes and port numbers.
1299
1382
  #
1300
1383
  # Do not specify this value for OpenID Connect ID tokens.
1301
1384
  #
@@ -1305,28 +1388,29 @@ module Aws::STS
1305
1388
  # the same account as the role.
1306
1389
  #
1307
1390
  # This parameter is optional. You can provide up to 10 managed policy
1308
- # ARNs. However, the plain text that you use for both inline and managed
1391
+ # ARNs. However, the plaintext that you use for both inline and managed
1309
1392
  # session policies can't exceed 2,048 characters. For more information
1310
- # about ARNs, see [Amazon Resource Names (ARNs) and AWS Service
1311
- # Namespaces][1] in the AWS General Reference.
1393
+ # about ARNs, see [Amazon Resource Names (ARNs) and Amazon Web Services
1394
+ # Service Namespaces][1] in the Amazon Web Services General Reference.
1312
1395
  #
1313
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
1314
- # tags into a packed binary format that has a separate limit. Your
1315
- # request can fail for this limit even if your plain text meets the
1316
- # other requirements. The `PackedPolicySize` response element indicates
1317
- # by percentage how close the policies and tags for your request are to
1318
- # the upper size limit.
1396
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1397
+ # policies and session tags into a packed binary format that has a
1398
+ # separate limit. Your request can fail for this limit even if your
1399
+ # plaintext meets the other requirements. The `PackedPolicySize`
1400
+ # response element indicates by percentage how close the policies and
1401
+ # tags for your request are to the upper size limit.
1319
1402
  #
1320
1403
  # </note>
1321
1404
  #
1322
1405
  # Passing policies to this operation returns new temporary credentials.
1323
1406
  # The resulting session's permissions are the intersection of the
1324
1407
  # role's identity-based policy and the session policies. You can use
1325
- # the role's temporary credentials in subsequent AWS API calls to
1326
- # access resources in the account that owns the role. You cannot use
1327
- # session policies to grant more permissions than those allowed by the
1328
- # identity-based policy of the role that is being assumed. For more
1329
- # information, see [Session Policies][2] in the *IAM User Guide*.
1408
+ # the role's temporary credentials in subsequent Amazon Web Services
1409
+ # API calls to access resources in the account that owns the role. You
1410
+ # cannot use session policies to grant more permissions than those
1411
+ # allowed by the identity-based policy of the role that is being
1412
+ # assumed. For more information, see [Session Policies][2] in the *IAM
1413
+ # User Guide*.
1330
1414
  #
1331
1415
  #
1332
1416
  #
@@ -1341,25 +1425,25 @@ module Aws::STS
1341
1425
  # new temporary credentials. The resulting session's permissions are
1342
1426
  # the intersection of the role's identity-based policy and the session
1343
1427
  # policies. You can use the role's temporary credentials in subsequent
1344
- # AWS API calls to access resources in the account that owns the role.
1345
- # You cannot use session policies to grant more permissions than those
1346
- # allowed by the identity-based policy of the role that is being
1347
- # assumed. For more information, see [Session Policies][1] in the *IAM
1348
- # User Guide*.
1428
+ # Amazon Web Services API calls to access resources in the account that
1429
+ # owns the role. You cannot use session policies to grant more
1430
+ # permissions than those allowed by the identity-based policy of the
1431
+ # role that is being assumed. For more information, see [Session
1432
+ # Policies][1] in the *IAM User Guide*.
1349
1433
  #
1350
- # The plain text that you use for both inline and managed session
1434
+ # The plaintext that you use for both inline and managed session
1351
1435
  # policies can't exceed 2,048 characters. The JSON policy characters
1352
1436
  # can be any ASCII character from the space character to the end of the
1353
1437
  # valid character list (\\u0020 through \\u00FF). It can also include
1354
1438
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
1355
1439
  # characters.
1356
1440
  #
1357
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
1358
- # tags into a packed binary format that has a separate limit. Your
1359
- # request can fail for this limit even if your plain text meets the
1360
- # other requirements. The `PackedPolicySize` response element indicates
1361
- # by percentage how close the policies and tags for your request are to
1362
- # the upper size limit.
1441
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1442
+ # policies and session tags into a packed binary format that has a
1443
+ # separate limit. Your request can fail for this limit even if your
1444
+ # plaintext meets the other requirements. The `PackedPolicySize`
1445
+ # response element indicates by percentage how close the policies and
1446
+ # tags for your request are to the upper size limit.
1363
1447
  #
1364
1448
  # </note>
1365
1449
  #
@@ -1385,8 +1469,8 @@ module Aws::STS
1385
1469
  # The request to the federation endpoint for a console sign-in token
1386
1470
  # takes a `SessionDuration` parameter that specifies the maximum length
1387
1471
  # of the console session. For more information, see [Creating a URL that
1388
- # Enables Federated Users to Access the AWS Management Console][2] in
1389
- # the *IAM User Guide*.
1472
+ # Enables Federated Users to Access the Amazon Web Services Management
1473
+ # Console][2] in the *IAM User Guide*.
1390
1474
  #
1391
1475
  # </note>
1392
1476
  #
@@ -1403,6 +1487,7 @@ module Aws::STS
1403
1487
  # * {Types::AssumeRoleWithWebIdentityResponse#packed_policy_size #packed_policy_size} => Integer
1404
1488
  # * {Types::AssumeRoleWithWebIdentityResponse#provider #provider} => String
1405
1489
  # * {Types::AssumeRoleWithWebIdentityResponse#audience #audience} => String
1490
+ # * {Types::AssumeRoleWithWebIdentityResponse#source_identity #source_identity} => String
1406
1491
  #
1407
1492
  #
1408
1493
  # @example Example: To assume a role as an OpenID Connect-federated user
@@ -1462,6 +1547,7 @@ module Aws::STS
1462
1547
  # resp.packed_policy_size #=> Integer
1463
1548
  # resp.provider #=> String
1464
1549
  # resp.audience #=> String
1550
+ # resp.source_identity #=> String
1465
1551
  #
1466
1552
  # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity AWS API Documentation
1467
1553
  #
@@ -1473,34 +1559,34 @@ module Aws::STS
1473
1559
  end
1474
1560
 
1475
1561
  # Decodes additional information about the authorization status of a
1476
- # request from an encoded message returned in response to an AWS
1477
- # request.
1562
+ # request from an encoded message returned in response to an Amazon Web
1563
+ # Services request.
1478
1564
  #
1479
1565
  # For example, if a user is not authorized to perform an operation that
1480
1566
  # he or she has requested, the request returns a
1481
1567
  # `Client.UnauthorizedOperation` response (an HTTP 403 response). Some
1482
- # AWS operations additionally return an encoded message that can provide
1483
- # details about this authorization failure.
1568
+ # Amazon Web Services operations additionally return an encoded message
1569
+ # that can provide details about this authorization failure.
1484
1570
  #
1485
- # <note markdown="1"> Only certain AWS operations return an encoded authorization message.
1486
- # The documentation for an individual operation indicates whether that
1487
- # operation returns an encoded message in addition to returning an HTTP
1488
- # code.
1571
+ # <note markdown="1"> Only certain Amazon Web Services operations return an encoded
1572
+ # authorization message. The documentation for an individual operation
1573
+ # indicates whether that operation returns an encoded message in
1574
+ # addition to returning an HTTP code.
1489
1575
  #
1490
1576
  # </note>
1491
1577
  #
1492
1578
  # The message is encoded because the details of the authorization status
1493
- # can constitute privileged information that the user who requested the
1579
+ # can contain privileged information that the user who requested the
1494
1580
  # operation should not see. To decode an authorization status message, a
1495
- # user must be granted permissions via an IAM policy to request the
1496
- # `DecodeAuthorizationMessage` (`sts:DecodeAuthorizationMessage`)
1581
+ # user must be granted permissions through an IAM [policy][1] to request
1582
+ # the `DecodeAuthorizationMessage` (`sts:DecodeAuthorizationMessage`)
1497
1583
  # action.
1498
1584
  #
1499
1585
  # The decoded message includes the following type of information:
1500
1586
  #
1501
1587
  # * Whether the request was denied due to an explicit deny or due to the
1502
1588
  # absence of an explicit allow. For more information, see [Determining
1503
- # Whether a Request is Allowed or Denied][1] in the *IAM User Guide*.
1589
+ # Whether a Request is Allowed or Denied][2] in the *IAM User Guide*.
1504
1590
  #
1505
1591
  # * The principal who made the request.
1506
1592
  #
@@ -1512,7 +1598,8 @@ module Aws::STS
1512
1598
  #
1513
1599
  #
1514
1600
  #
1515
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow
1601
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
1602
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow
1516
1603
  #
1517
1604
  # @option params [required, String] :encoded_message
1518
1605
  # The encoded message that was returned with the response.
@@ -1561,15 +1648,16 @@ module Aws::STS
1561
1648
  # *IAM User Guide*.
1562
1649
  #
1563
1650
  # When you pass an access key ID to this operation, it returns the ID of
1564
- # the AWS account to which the keys belong. Access key IDs beginning
1565
- # with `AKIA` are long-term credentials for an IAM user or the AWS
1566
- # account root user. Access key IDs beginning with `ASIA` are temporary
1567
- # credentials that are created using STS operations. If the account in
1568
- # the response belongs to you, you can sign in as the root user and
1569
- # review your root user access keys. Then, you can pull a [credentials
1570
- # report][2] to learn which IAM user owns the keys. To learn who
1571
- # requested the temporary credentials for an `ASIA` access key, view the
1572
- # STS events in your [CloudTrail logs][3] in the *IAM User Guide*.
1651
+ # the Amazon Web Services account to which the keys belong. Access key
1652
+ # IDs beginning with `AKIA` are long-term credentials for an IAM user or
1653
+ # the Amazon Web Services account root user. Access key IDs beginning
1654
+ # with `ASIA` are temporary credentials that are created using STS
1655
+ # operations. If the account in the response belongs to you, you can
1656
+ # sign in as the root user and review your root user access keys. Then,
1657
+ # you can pull a [credentials report][2] to learn which IAM user owns
1658
+ # the keys. To learn who requested the temporary credentials for an
1659
+ # `ASIA` access key, view the STS events in your [CloudTrail logs][3] in
1660
+ # the *IAM User Guide*.
1573
1661
  #
1574
1662
  # This operation does not indicate the state of the access key. The key
1575
1663
  # might be active, inactive, or deleted. Active keys might not have
@@ -1706,8 +1794,8 @@ module Aws::STS
1706
1794
  # can be safely stored, usually in a server-based application. For a
1707
1795
  # comparison of `GetFederationToken` with the other API operations that
1708
1796
  # produce temporary credentials, see [Requesting Temporary Security
1709
- # Credentials][1] and [Comparing the AWS STS API operations][2] in the
1710
- # *IAM User Guide*.
1797
+ # Credentials][1] and [Comparing the Amazon Web Services STS API
1798
+ # operations][2] in the *IAM User Guide*.
1711
1799
  #
1712
1800
  # <note markdown="1"> You can create a mobile-based or browser-based app that can
1713
1801
  # authenticate users using a web identity provider like Login with
@@ -1719,34 +1807,36 @@ module Aws::STS
1719
1807
  # </note>
1720
1808
  #
1721
1809
  # You can also call `GetFederationToken` using the security credentials
1722
- # of an AWS account root user, but we do not recommend it. Instead, we
1723
- # recommend that you create an IAM user for the purpose of the proxy
1724
- # application. Then attach a policy to the IAM user that limits
1725
- # federated users to only the actions and resources that they need to
1726
- # access. For more information, see [IAM Best Practices][5] in the *IAM
1727
- # User Guide*.
1810
+ # of an Amazon Web Services account root user, but we do not recommend
1811
+ # it. Instead, we recommend that you create an IAM user for the purpose
1812
+ # of the proxy application. Then attach a policy to the IAM user that
1813
+ # limits federated users to only the actions and resources that they
1814
+ # need to access. For more information, see [IAM Best Practices][5] in
1815
+ # the *IAM User Guide*.
1728
1816
  #
1729
1817
  # **Session duration**
1730
1818
  #
1731
1819
  # The temporary credentials are valid for the specified duration, from
1732
1820
  # 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36
1733
1821
  # hours). The default session duration is 43,200 seconds (12 hours).
1734
- # Temporary credentials that are obtained by using AWS account root user
1735
- # credentials have a maximum duration of 3,600 seconds (1 hour).
1822
+ # Temporary credentials obtained by using the Amazon Web Services
1823
+ # account root user credentials have a maximum duration of 3,600 seconds
1824
+ # (1 hour).
1736
1825
  #
1737
1826
  # **Permissions**
1738
1827
  #
1739
1828
  # You can use the temporary credentials created by `GetFederationToken`
1740
- # in any AWS service except the following:
1829
+ # in any Amazon Web Services service except the following:
1741
1830
  #
1742
- # * You cannot call any IAM operations using the AWS CLI or the AWS API.
1831
+ # * You cannot call any IAM operations using the CLI or the Amazon Web
1832
+ # Services API.
1743
1833
  #
1744
1834
  # * You cannot call any STS operations except `GetCallerIdentity`.
1745
1835
  #
1746
1836
  # You must pass an inline or managed [session policy][6] to this
1747
1837
  # operation. You can pass a single JSON policy document to use as an
1748
1838
  # inline session policy. You can also specify up to 10 managed policies
1749
- # to use as managed session policies. The plain text that you use for
1839
+ # to use as managed session policies. The plaintext that you use for
1750
1840
  # both inline and managed session policies can't exceed 2,048
1751
1841
  # characters.
1752
1842
  #
@@ -1775,6 +1865,15 @@ module Aws::STS
1775
1865
  # called session tags. For more information about session tags, see
1776
1866
  # [Passing Session Tags in STS][8] in the *IAM User Guide*.
1777
1867
  #
1868
+ # <note markdown="1"> You can create a mobile-based or browser-based app that can
1869
+ # authenticate users using a web identity provider like Login with
1870
+ # Amazon, Facebook, Google, or an OpenID Connect-compatible identity
1871
+ # provider. In this case, we recommend that you use [Amazon Cognito][3]
1872
+ # or `AssumeRoleWithWebIdentity`. For more information, see [Federation
1873
+ # Through a Web-based Identity Provider][4] in the *IAM User Guide*.
1874
+ #
1875
+ # </note>
1876
+ #
1778
1877
  # An administrator must grant you the permissions necessary to pass
1779
1878
  # session tags. The administrator can also create granular permissions
1780
1879
  # to allow you to pass only specific session tags. For more information,
@@ -1840,19 +1939,19 @@ module Aws::STS
1840
1939
  # are granted in addition to the permissions that are granted by the
1841
1940
  # session policies.
1842
1941
  #
1843
- # The plain text that you use for both inline and managed session
1942
+ # The plaintext that you use for both inline and managed session
1844
1943
  # policies can't exceed 2,048 characters. The JSON policy characters
1845
1944
  # can be any ASCII character from the space character to the end of the
1846
1945
  # valid character list (\\u0020 through \\u00FF). It can also include
1847
1946
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
1848
1947
  # characters.
1849
1948
  #
1850
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
1851
- # tags into a packed binary format that has a separate limit. Your
1852
- # request can fail for this limit even if your plain text meets the
1853
- # other requirements. The `PackedPolicySize` response element indicates
1854
- # by percentage how close the policies and tags for your request are to
1855
- # the upper size limit.
1949
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1950
+ # policies and session tags into a packed binary format that has a
1951
+ # separate limit. Your request can fail for this limit even if your
1952
+ # plaintext meets the other requirements. The `PackedPolicySize`
1953
+ # response element indicates by percentage how close the policies and
1954
+ # tags for your request are to the upper size limit.
1856
1955
  #
1857
1956
  # </note>
1858
1957
  #
@@ -1868,11 +1967,12 @@ module Aws::STS
1868
1967
  # You must pass an inline or managed [session policy][1] to this
1869
1968
  # operation. You can pass a single JSON policy document to use as an
1870
1969
  # inline session policy. You can also specify up to 10 managed policies
1871
- # to use as managed session policies. The plain text that you use for
1970
+ # to use as managed session policies. The plaintext that you use for
1872
1971
  # both inline and managed session policies can't exceed 2,048
1873
1972
  # characters. You can provide up to 10 managed policy ARNs. For more
1874
- # information about ARNs, see [Amazon Resource Names (ARNs) and AWS
1875
- # Service Namespaces][2] in the AWS General Reference.
1973
+ # information about ARNs, see [Amazon Resource Names (ARNs) and Amazon
1974
+ # Web Services Service Namespaces][2] in the Amazon Web Services General
1975
+ # Reference.
1876
1976
  #
1877
1977
  # This parameter is optional. However, if you do not pass any session
1878
1978
  # policies, then the resulting federated user session has no
@@ -1893,12 +1993,12 @@ module Aws::STS
1893
1993
  # are granted in addition to the permissions that are granted by the
1894
1994
  # session policies.
1895
1995
  #
1896
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
1897
- # tags into a packed binary format that has a separate limit. Your
1898
- # request can fail for this limit even if your plain text meets the
1899
- # other requirements. The `PackedPolicySize` response element indicates
1900
- # by percentage how close the policies and tags for your request are to
1901
- # the upper size limit.
1996
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
1997
+ # policies and session tags into a packed binary format that has a
1998
+ # separate limit. Your request can fail for this limit even if your
1999
+ # plaintext meets the other requirements. The `PackedPolicySize`
2000
+ # response element indicates by percentage how close the policies and
2001
+ # tags for your request are to the upper size limit.
1902
2002
  #
1903
2003
  # </note>
1904
2004
  #
@@ -1911,10 +2011,10 @@ module Aws::STS
1911
2011
  # The duration, in seconds, that the session should last. Acceptable
1912
2012
  # durations for federation sessions range from 900 seconds (15 minutes)
1913
2013
  # to 129,600 seconds (36 hours), with 43,200 seconds (12 hours) as the
1914
- # default. Sessions obtained using AWS account root user credentials are
1915
- # restricted to a maximum of 3,600 seconds (one hour). If the specified
1916
- # duration is longer than one hour, the session obtained by using root
1917
- # user credentials defaults to one hour.
2014
+ # default. Sessions obtained using Amazon Web Services account root user
2015
+ # credentials are restricted to a maximum of 3,600 seconds (one hour).
2016
+ # If the specified duration is longer than one hour, the session
2017
+ # obtained by using root user credentials defaults to one hour.
1918
2018
  #
1919
2019
  # @option params [Array<Types::Tag>] :tags
1920
2020
  # A list of session tags. Each session tag consists of a key name and an
@@ -1922,16 +2022,16 @@ module Aws::STS
1922
2022
  # [Passing Session Tags in STS][1] in the *IAM User Guide*.
1923
2023
  #
1924
2024
  # This parameter is optional. You can pass up to 50 session tags. The
1925
- # plain text session tag keys can’t exceed 128 characters and the values
2025
+ # plaintext session tag keys can’t exceed 128 characters and the values
1926
2026
  # can’t exceed 256 characters. For these and additional limits, see [IAM
1927
2027
  # and STS Character Limits][2] in the *IAM User Guide*.
1928
2028
  #
1929
- # <note markdown="1"> An AWS conversion compresses the passed session policies and session
1930
- # tags into a packed binary format that has a separate limit. Your
1931
- # request can fail for this limit even if your plain text meets the
1932
- # other requirements. The `PackedPolicySize` response element indicates
1933
- # by percentage how close the policies and tags for your request are to
1934
- # the upper size limit.
2029
+ # <note markdown="1"> An Amazon Web Services conversion compresses the passed session
2030
+ # policies and session tags into a packed binary format that has a
2031
+ # separate limit. Your request can fail for this limit even if your
2032
+ # plaintext meets the other requirements. The `PackedPolicySize`
2033
+ # response element indicates by percentage how close the policies and
2034
+ # tags for your request are to the upper size limit.
1935
2035
  #
1936
2036
  # </note>
1937
2037
  #
@@ -2029,37 +2129,38 @@ module Aws::STS
2029
2129
  req.send_request(options)
2030
2130
  end
2031
2131
 
2032
- # Returns a set of temporary credentials for an AWS account or IAM user.
2033
- # The credentials consist of an access key ID, a secret access key, and
2034
- # a security token. Typically, you use `GetSessionToken` if you want to
2035
- # use MFA to protect programmatic calls to specific AWS API operations
2036
- # like Amazon EC2 `StopInstances`. MFA-enabled IAM users would need to
2037
- # call `GetSessionToken` and submit an MFA code that is associated with
2038
- # their MFA device. Using the temporary security credentials that are
2039
- # returned from the call, IAM users can then make programmatic calls to
2040
- # API operations that require MFA authentication. If you do not supply a
2132
+ # Returns a set of temporary credentials for an Amazon Web Services
2133
+ # account or IAM user. The credentials consist of an access key ID, a
2134
+ # secret access key, and a security token. Typically, you use
2135
+ # `GetSessionToken` if you want to use MFA to protect programmatic calls
2136
+ # to specific Amazon Web Services API operations like Amazon EC2
2137
+ # `StopInstances`. MFA-enabled IAM users would need to call
2138
+ # `GetSessionToken` and submit an MFA code that is associated with their
2139
+ # MFA device. Using the temporary security credentials that are returned
2140
+ # from the call, IAM users can then make programmatic calls to API
2141
+ # operations that require MFA authentication. If you do not supply a
2041
2142
  # correct MFA code, then the API returns an access denied error. For a
2042
2143
  # comparison of `GetSessionToken` with the other API operations that
2043
2144
  # produce temporary credentials, see [Requesting Temporary Security
2044
- # Credentials][1] and [Comparing the AWS STS API operations][2] in the
2045
- # *IAM User Guide*.
2145
+ # Credentials][1] and [Comparing the Amazon Web Services STS API
2146
+ # operations][2] in the *IAM User Guide*.
2046
2147
  #
2047
2148
  # **Session Duration**
2048
2149
  #
2049
2150
  # The `GetSessionToken` operation must be called by using the long-term
2050
- # AWS security credentials of the AWS account root user or an IAM user.
2051
- # Credentials that are created by IAM users are valid for the duration
2052
- # that you specify. This duration can range from 900 seconds (15
2053
- # minutes) up to a maximum of 129,600 seconds (36 hours), with a default
2054
- # of 43,200 seconds (12 hours). Credentials based on account credentials
2055
- # can range from 900 seconds (15 minutes) up to 3,600 seconds (1 hour),
2056
- # with a default of 1 hour.
2151
+ # Amazon Web Services security credentials of the Amazon Web Services
2152
+ # account root user or an IAM user. Credentials that are created by IAM
2153
+ # users are valid for the duration that you specify. This duration can
2154
+ # range from 900 seconds (15 minutes) up to a maximum of 129,600 seconds
2155
+ # (36 hours), with a default of 43,200 seconds (12 hours). Credentials
2156
+ # based on account credentials can range from 900 seconds (15 minutes)
2157
+ # up to 3,600 seconds (1 hour), with a default of 1 hour.
2057
2158
  #
2058
2159
  # **Permissions**
2059
2160
  #
2060
2161
  # The temporary security credentials created by `GetSessionToken` can be
2061
- # used to make API calls to any AWS service with the following
2062
- # exceptions:
2162
+ # used to make API calls to any Amazon Web Services service with the
2163
+ # following exceptions:
2063
2164
  #
2064
2165
  # * You cannot call any IAM API operations unless MFA authentication
2065
2166
  # information is included in the request.
@@ -2067,20 +2168,21 @@ module Aws::STS
2067
2168
  # * You cannot call any STS API *except* `AssumeRole` or
2068
2169
  # `GetCallerIdentity`.
2069
2170
  #
2070
- # <note markdown="1"> We recommend that you do not call `GetSessionToken` with AWS account
2071
- # root user credentials. Instead, follow our [best practices][3] by
2072
- # creating one or more IAM users, giving them the necessary permissions,
2073
- # and using IAM users for everyday interaction with AWS.
2171
+ # <note markdown="1"> We recommend that you do not call `GetSessionToken` with Amazon Web
2172
+ # Services account root user credentials. Instead, follow our [best
2173
+ # practices][3] by creating one or more IAM users, giving them the
2174
+ # necessary permissions, and using IAM users for everyday interaction
2175
+ # with Amazon Web Services.
2074
2176
  #
2075
2177
  # </note>
2076
2178
  #
2077
2179
  # The credentials that are returned by `GetSessionToken` are based on
2078
2180
  # permissions associated with the user whose credentials were used to
2079
- # call the operation. If `GetSessionToken` is called using AWS account
2080
- # root user credentials, the temporary credentials have root user
2081
- # permissions. Similarly, if `GetSessionToken` is called using the
2082
- # credentials of an IAM user, the temporary credentials have the same
2083
- # permissions as the IAM user.
2181
+ # call the operation. If `GetSessionToken` is called using Amazon Web
2182
+ # Services account root user credentials, the temporary credentials have
2183
+ # root user permissions. Similarly, if `GetSessionToken` is called using
2184
+ # the credentials of an IAM user, the temporary credentials have the
2185
+ # same permissions as the IAM user.
2084
2186
  #
2085
2187
  # For more information about using `GetSessionToken` to create temporary
2086
2188
  # credentials, go to [Temporary Credentials for Users in Untrusted
@@ -2097,9 +2199,10 @@ module Aws::STS
2097
2199
  # The duration, in seconds, that the credentials should remain valid.
2098
2200
  # Acceptable durations for IAM user sessions range from 900 seconds (15
2099
2201
  # minutes) to 129,600 seconds (36 hours), with 43,200 seconds (12 hours)
2100
- # as the default. Sessions for AWS account owners are restricted to a
2101
- # maximum of 3,600 seconds (one hour). If the duration is longer than
2102
- # one hour, the session for AWS account owners defaults to one hour.
2202
+ # as the default. Sessions for Amazon Web Services account owners are
2203
+ # restricted to a maximum of 3,600 seconds (one hour). If the duration
2204
+ # is longer than one hour, the session for Amazon Web Services account
2205
+ # owners defaults to one hour.
2103
2206
  #
2104
2207
  # @option params [String] :serial_number
2105
2208
  # The identification number of the MFA device that is associated with
@@ -2108,8 +2211,8 @@ module Aws::STS
2108
2211
  # The value is either the serial number for a hardware device (such as
2109
2212
  # `GAHT12345678`) or an Amazon Resource Name (ARN) for a virtual device
2110
2213
  # (such as `arn:aws:iam::123456789012:mfa/user`). You can find the
2111
- # device for an IAM user by going to the AWS Management Console and
2112
- # viewing the user's security credentials.
2214
+ # device for an IAM user by going to the Amazon Web Services Management
2215
+ # Console and viewing the user's security credentials.
2113
2216
  #
2114
2217
  # The regex used to validate this parameter is a string of characters
2115
2218
  # consisting of upper- and lower-case alphanumeric characters with no
@@ -2187,7 +2290,7 @@ module Aws::STS
2187
2290
  params: params,
2188
2291
  config: config)
2189
2292
  context[:gem_name] = 'aws-sdk-core'
2190
- context[:gem_version] = '3.100.0'
2293
+ context[:gem_version] = '3.130.0'
2191
2294
  Seahorse::Client::Request.new(handlers, context)
2192
2295
  end
2193
2296