aws-sdk-core 3.185.1 → 3.214.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (177) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +409 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-defaults/default_configuration.rb +1 -2
  5. data/lib/aws-defaults.rb +4 -1
  6. data/lib/aws-sdk-core/assume_role_credentials.rb +12 -5
  7. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +13 -7
  8. data/lib/aws-sdk-core/binary/decode_handler.rb +3 -9
  9. data/lib/aws-sdk-core/binary/encode_handler.rb +1 -1
  10. data/lib/aws-sdk-core/binary/event_builder.rb +34 -37
  11. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +1 -0
  12. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +4 -3
  13. data/lib/aws-sdk-core/cbor/decoder.rb +310 -0
  14. data/lib/aws-sdk-core/cbor/encoder.rb +243 -0
  15. data/lib/aws-sdk-core/cbor.rb +53 -0
  16. data/lib/aws-sdk-core/client_side_monitoring.rb +9 -0
  17. data/lib/aws-sdk-core/client_stubs.rb +23 -19
  18. data/lib/aws-sdk-core/credential_provider.rb +1 -1
  19. data/lib/aws-sdk-core/credential_provider_chain.rb +13 -6
  20. data/lib/aws-sdk-core/credentials.rb +13 -6
  21. data/lib/aws-sdk-core/ec2_metadata.rb +1 -1
  22. data/lib/aws-sdk-core/ecs_credentials.rb +78 -11
  23. data/lib/aws-sdk-core/endpoints/endpoint.rb +3 -1
  24. data/lib/aws-sdk-core/endpoints/matchers.rb +6 -9
  25. data/lib/aws-sdk-core/endpoints.rb +74 -18
  26. data/lib/aws-sdk-core/error_handler.rb +41 -0
  27. data/lib/aws-sdk-core/errors.rb +11 -2
  28. data/lib/aws-sdk-core/event_emitter.rb +0 -16
  29. data/lib/aws-sdk-core/instance_profile_credentials.rb +55 -32
  30. data/lib/aws-sdk-core/json/builder.rb +8 -1
  31. data/lib/aws-sdk-core/json/error_handler.rb +17 -11
  32. data/lib/aws-sdk-core/json/handler.rb +13 -6
  33. data/lib/aws-sdk-core/json/json_engine.rb +3 -1
  34. data/lib/aws-sdk-core/json/oj_engine.rb +7 -1
  35. data/lib/aws-sdk-core/json/parser.rb +32 -2
  36. data/lib/aws-sdk-core/json.rb +43 -14
  37. data/lib/aws-sdk-core/log/param_filter.rb +2 -2
  38. data/lib/aws-sdk-core/log.rb +10 -0
  39. data/lib/aws-sdk-core/lru_cache.rb +75 -0
  40. data/lib/aws-sdk-core/pageable_response.rb +1 -1
  41. data/lib/aws-sdk-core/param_validator.rb +7 -2
  42. data/lib/aws-sdk-core/plugins/bearer_authorization.rb +2 -0
  43. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +6 -3
  44. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +1 -0
  45. data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +14 -2
  46. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +9 -3
  47. data/lib/aws-sdk-core/plugins/global_configuration.rb +8 -9
  48. data/lib/aws-sdk-core/plugins/http_checksum.rb +2 -1
  49. data/lib/aws-sdk-core/plugins/invocation_id.rb +1 -11
  50. data/lib/aws-sdk-core/plugins/logging.rb +2 -0
  51. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +3 -1
  52. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -24
  53. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +6 -8
  54. data/lib/aws-sdk-core/plugins/protocols/query.rb +4 -2
  55. data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +3 -15
  56. data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +3 -0
  57. data/lib/aws-sdk-core/plugins/protocols/rpc_v2.rb +17 -0
  58. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +74 -25
  59. data/lib/aws-sdk-core/plugins/request_compression.rb +11 -2
  60. data/lib/aws-sdk-core/plugins/retry_errors.rb +12 -3
  61. data/lib/aws-sdk-core/plugins/sign.rb +27 -15
  62. data/lib/aws-sdk-core/plugins/signature_v2.rb +2 -1
  63. data/lib/aws-sdk-core/plugins/signature_v4.rb +2 -1
  64. data/lib/aws-sdk-core/plugins/stub_responses.rb +30 -2
  65. data/lib/aws-sdk-core/plugins/telemetry.rb +75 -0
  66. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +16 -9
  67. data/lib/aws-sdk-core/plugins/user_agent.rb +70 -26
  68. data/lib/aws-sdk-core/plugins.rb +39 -0
  69. data/lib/aws-sdk-core/process_credentials.rb +47 -28
  70. data/lib/aws-sdk-core/query/ec2_handler.rb +27 -0
  71. data/lib/aws-sdk-core/query/ec2_param_builder.rb +5 -7
  72. data/lib/aws-sdk-core/query/handler.rb +4 -4
  73. data/lib/aws-sdk-core/query/param_builder.rb +2 -2
  74. data/lib/aws-sdk-core/query.rb +2 -1
  75. data/lib/aws-sdk-core/refreshing_credentials.rb +12 -6
  76. data/lib/aws-sdk-core/resources.rb +8 -0
  77. data/lib/aws-sdk-core/rest/content_type_handler.rb +60 -0
  78. data/lib/aws-sdk-core/rest/handler.rb +3 -4
  79. data/lib/aws-sdk-core/rest/request/body.rb +32 -5
  80. data/lib/aws-sdk-core/rest/request/endpoint.rb +24 -4
  81. data/lib/aws-sdk-core/rest/request/headers.rb +14 -6
  82. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +62 -36
  83. data/lib/aws-sdk-core/rest/response/body.rb +15 -1
  84. data/lib/aws-sdk-core/rest/response/header_list_parser.rb +79 -0
  85. data/lib/aws-sdk-core/rest/response/headers.rb +8 -3
  86. data/lib/aws-sdk-core/rest.rb +1 -0
  87. data/lib/aws-sdk-core/rpc_v2/builder.rb +62 -0
  88. data/lib/aws-sdk-core/rpc_v2/cbor_engine.rb +18 -0
  89. data/lib/aws-sdk-core/rpc_v2/content_type_handler.rb +47 -0
  90. data/lib/aws-sdk-core/rpc_v2/error_handler.rb +85 -0
  91. data/lib/aws-sdk-core/rpc_v2/handler.rb +79 -0
  92. data/lib/aws-sdk-core/rpc_v2/parser.rb +90 -0
  93. data/lib/aws-sdk-core/rpc_v2.rb +69 -0
  94. data/lib/aws-sdk-core/shared_config.rb +7 -2
  95. data/lib/aws-sdk-core/shared_credentials.rb +0 -7
  96. data/lib/aws-sdk-core/sso_credentials.rb +2 -1
  97. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +12 -11
  98. data/lib/aws-sdk-core/stubbing/protocols/json.rb +11 -10
  99. data/lib/aws-sdk-core/stubbing/protocols/query.rb +7 -6
  100. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +2 -1
  101. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +9 -8
  102. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +6 -5
  103. data/lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb +39 -0
  104. data/lib/aws-sdk-core/stubbing.rb +22 -0
  105. data/lib/aws-sdk-core/telemetry/base.rb +177 -0
  106. data/lib/aws-sdk-core/telemetry/no_op.rb +70 -0
  107. data/lib/aws-sdk-core/telemetry/otel.rb +235 -0
  108. data/lib/aws-sdk-core/telemetry/span_kind.rb +22 -0
  109. data/lib/aws-sdk-core/telemetry/span_status.rb +59 -0
  110. data/lib/aws-sdk-core/telemetry.rb +78 -0
  111. data/lib/aws-sdk-core/util.rb +39 -0
  112. data/lib/aws-sdk-core/waiters/poller.rb +10 -5
  113. data/lib/aws-sdk-core/xml/builder.rb +17 -9
  114. data/lib/aws-sdk-core/xml/error_handler.rb +32 -42
  115. data/lib/aws-sdk-core/xml/parser/frame.rb +4 -20
  116. data/lib/aws-sdk-core/xml/parser/stack.rb +2 -0
  117. data/lib/aws-sdk-core/xml/parser.rb +2 -6
  118. data/lib/aws-sdk-core.rb +82 -107
  119. data/lib/aws-sdk-sso/client.rb +119 -55
  120. data/lib/aws-sdk-sso/client_api.rb +7 -0
  121. data/lib/aws-sdk-sso/endpoint_parameters.rb +9 -6
  122. data/lib/aws-sdk-sso/endpoints.rb +2 -54
  123. data/lib/aws-sdk-sso/plugins/endpoints.rb +23 -22
  124. data/lib/aws-sdk-sso/types.rb +1 -0
  125. data/lib/aws-sdk-sso.rb +15 -11
  126. data/lib/aws-sdk-ssooidc/client.rb +504 -83
  127. data/lib/aws-sdk-ssooidc/client_api.rb +83 -1
  128. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +9 -6
  129. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +2 -2
  130. data/lib/aws-sdk-ssooidc/endpoints.rb +2 -40
  131. data/lib/aws-sdk-ssooidc/errors.rb +52 -0
  132. data/lib/aws-sdk-ssooidc/plugins/endpoints.rb +23 -20
  133. data/lib/aws-sdk-ssooidc/types.rb +373 -51
  134. data/lib/aws-sdk-ssooidc.rb +15 -11
  135. data/lib/aws-sdk-sts/client.rb +334 -105
  136. data/lib/aws-sdk-sts/client_api.rb +36 -10
  137. data/lib/aws-sdk-sts/customizations.rb +5 -1
  138. data/lib/aws-sdk-sts/endpoint_parameters.rb +10 -9
  139. data/lib/aws-sdk-sts/endpoint_provider.rb +2 -2
  140. data/lib/aws-sdk-sts/endpoints.rb +2 -118
  141. data/lib/aws-sdk-sts/plugins/endpoints.rb +23 -30
  142. data/lib/aws-sdk-sts/presigner.rb +1 -1
  143. data/lib/aws-sdk-sts/types.rb +188 -30
  144. data/lib/aws-sdk-sts.rb +15 -11
  145. data/lib/seahorse/client/async_base.rb +1 -1
  146. data/lib/seahorse/client/async_response.rb +19 -0
  147. data/lib/seahorse/client/base.rb +18 -7
  148. data/lib/seahorse/client/h2/handler.rb +14 -3
  149. data/lib/seahorse/client/handler.rb +1 -1
  150. data/lib/seahorse/client/net_http/connection_pool.rb +11 -11
  151. data/lib/seahorse/client/net_http/handler.rb +21 -9
  152. data/lib/seahorse/client/net_http/patches.rb +1 -4
  153. data/lib/seahorse/client/plugin.rb +9 -0
  154. data/lib/seahorse/client/plugins/endpoint.rb +0 -1
  155. data/lib/seahorse/client/plugins/h2.rb +3 -3
  156. data/lib/seahorse/client/plugins/net_http.rb +57 -16
  157. data/lib/seahorse/client/request_context.rb +8 -1
  158. data/lib/seahorse/model/shapes.rb +2 -2
  159. data/sig/aws-sdk-core/client_stubs.rbs +10 -0
  160. data/sig/aws-sdk-core/errors.rbs +22 -0
  161. data/sig/aws-sdk-core/resources/collection.rbs +21 -0
  162. data/sig/aws-sdk-core/structure.rbs +4 -0
  163. data/sig/aws-sdk-core/telemetry/base.rbs +46 -0
  164. data/sig/aws-sdk-core/telemetry/otel.rbs +22 -0
  165. data/sig/aws-sdk-core/telemetry/span_kind.rbs +15 -0
  166. data/sig/aws-sdk-core/telemetry/span_status.rbs +24 -0
  167. data/sig/aws-sdk-core/waiters/errors.rbs +20 -0
  168. data/sig/aws-sdk-core.rbs +7 -0
  169. data/sig/seahorse/client/base.rbs +25 -0
  170. data/sig/seahorse/client/handler_builder.rbs +16 -0
  171. data/sig/seahorse/client/response.rbs +61 -0
  172. metadata +61 -19
  173. /data/lib/aws-sdk-core/xml/parser/{engines/libxml.rb → libxml_engine.rb} +0 -0
  174. /data/lib/aws-sdk-core/xml/parser/{engines/nokogiri.rb → nokogiri_engine.rb} +0 -0
  175. /data/lib/aws-sdk-core/xml/parser/{engines/oga.rb → oga_engine.rb} +0 -0
  176. /data/lib/aws-sdk-core/xml/parser/{engines/ox.rb → ox_engine.rb} +0 -0
  177. /data/lib/aws-sdk-core/xml/parser/{engines/rexml.rb → rexml_engine.rb} +0 -0
@@ -22,6 +22,7 @@ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
22
  require 'aws-sdk-core/plugins/response_paging.rb'
23
23
  require 'aws-sdk-core/plugins/stub_responses.rb'
24
24
  require 'aws-sdk-core/plugins/idempotency_token.rb'
25
+ require 'aws-sdk-core/plugins/invocation_id.rb'
25
26
  require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
27
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
28
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
@@ -31,12 +32,11 @@ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
32
  require 'aws-sdk-core/plugins/request_compression.rb'
32
33
  require 'aws-sdk-core/plugins/defaults_mode.rb'
33
34
  require 'aws-sdk-core/plugins/recursion_detection.rb'
35
+ require 'aws-sdk-core/plugins/telemetry.rb'
34
36
  require 'aws-sdk-core/plugins/sign.rb'
35
37
  require 'aws-sdk-core/plugins/protocols/query.rb'
36
38
  require 'aws-sdk-sts/plugins/sts_regional_endpoints.rb'
37
39
 
38
- Aws::Plugins::GlobalConfiguration.add_identifier(:sts)
39
-
40
40
  module Aws::STS
41
41
  # An API client for STS. To construct a client, you need to configure a `:region` and `:credentials`.
42
42
  #
@@ -73,6 +73,7 @@ module Aws::STS
73
73
  add_plugin(Aws::Plugins::ResponsePaging)
74
74
  add_plugin(Aws::Plugins::StubResponses)
75
75
  add_plugin(Aws::Plugins::IdempotencyToken)
76
+ add_plugin(Aws::Plugins::InvocationId)
76
77
  add_plugin(Aws::Plugins::JsonvalueConverter)
77
78
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
78
79
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
@@ -82,6 +83,7 @@ module Aws::STS
82
83
  add_plugin(Aws::Plugins::RequestCompression)
83
84
  add_plugin(Aws::Plugins::DefaultsMode)
84
85
  add_plugin(Aws::Plugins::RecursionDetection)
86
+ add_plugin(Aws::Plugins::Telemetry)
85
87
  add_plugin(Aws::Plugins::Sign)
86
88
  add_plugin(Aws::Plugins::Protocols::Query)
87
89
  add_plugin(Aws::STS::Plugins::STSRegionalEndpoints)
@@ -89,6 +91,11 @@ module Aws::STS
89
91
 
90
92
  # @overload initialize(options)
91
93
  # @param [Hash] options
94
+ #
95
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
96
+ # A list of plugins to apply to the client. Each plugin is either a
97
+ # class name or an instance of a plugin class.
98
+ #
92
99
  # @option options [required, Aws::CredentialProvider] :credentials
93
100
  # Your AWS credentials. This can be an instance of any one of the
94
101
  # following classes:
@@ -123,13 +130,15 @@ module Aws::STS
123
130
  # locations will be searched for credentials:
124
131
  #
125
132
  # * `Aws.config[:credentials]`
126
- # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
127
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
133
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
134
+ # `:account_id` options.
135
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
136
+ # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
128
137
  # * `~/.aws/credentials`
129
138
  # * `~/.aws/config`
130
139
  # * EC2/ECS IMDS instance profile - When used by default, the timeouts
131
140
  # are very aggressive. Construct and pass an instance of
132
- # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
141
+ # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
133
142
  # enable retries and extended timeouts. Instance profile credential
134
143
  # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
135
144
  # to true.
@@ -148,6 +157,8 @@ module Aws::STS
148
157
  #
149
158
  # @option options [String] :access_key_id
150
159
  #
160
+ # @option options [String] :account_id
161
+ #
151
162
  # @option options [Boolean] :active_endpoint_cache (false)
152
163
  # When set to `true`, a thread polling for endpoints will be running in
153
164
  # the background every 60 secs (default). Defaults to `false`.
@@ -198,10 +209,16 @@ module Aws::STS
198
209
  # When set to 'true' the request body will not be compressed
199
210
  # for supported operations.
200
211
  #
201
- # @option options [String] :endpoint
202
- # The client endpoint is normally constructed from the `:region`
203
- # option. You should only configure an `:endpoint` when connecting
204
- # to test or custom endpoints. This should be a valid HTTP(S) URI.
212
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
213
+ # Normally you should not configure the `:endpoint` option
214
+ # directly. This is normally constructed from the `:region`
215
+ # option. Configuring `:endpoint` is normally reserved for
216
+ # connecting to test or custom endpoints. The endpoint should
217
+ # be a URI formatted like:
218
+ #
219
+ # 'http://example.com'
220
+ # 'https://example.com'
221
+ # 'http://example.com:123'
205
222
  #
206
223
  # @option options [Integer] :endpoint_cache_max_entries (1000)
207
224
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -291,16 +308,25 @@ module Aws::STS
291
308
  # throttling. This is a provisional mode that may change behavior
292
309
  # in the future.
293
310
  #
294
- #
295
311
  # @option options [String] :sdk_ua_app_id
296
312
  # A unique and opaque application ID that is appended to the
297
- # User-Agent header as app/<sdk_ua_app_id>. It should have a
298
- # maximum length of 50.
313
+ # User-Agent header as app/sdk_ua_app_id. It should have a
314
+ # maximum length of 50. This variable is sourced from environment
315
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
299
316
  #
300
317
  # @option options [String] :secret_access_key
301
318
  #
302
319
  # @option options [String] :session_token
303
320
  #
321
+ # @option options [Array] :sigv4a_signing_region_set
322
+ # A list of regions that should be signed with SigV4a signing. When
323
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
324
+ # in the following locations:
325
+ #
326
+ # * `Aws.config[:sigv4a_signing_region_set]`
327
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
328
+ # * `~/.aws/config`
329
+ #
304
330
  # @option options [String] :sts_regional_endpoints ("regional")
305
331
  # Passing in 'regional' to enable regional endpoint for STS for all supported
306
332
  # regions (except 'aws-global'). Using 'legacy' mode will force all legacy
@@ -315,6 +341,16 @@ module Aws::STS
315
341
  # ** Please note ** When response stubbing is enabled, no HTTP
316
342
  # requests are made, and retries are disabled.
317
343
  #
344
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
345
+ # Allows you to provide a telemetry provider, which is used to
346
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
347
+ # will not record or emit any telemetry data. The SDK supports the
348
+ # following telemetry providers:
349
+ #
350
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
351
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
352
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
353
+ #
318
354
  # @option options [Aws::TokenProvider] :token_provider
319
355
  # A Bearer Token Provider. This can be an instance of any one of the
320
356
  # following classes:
@@ -342,52 +378,75 @@ module Aws::STS
342
378
  # sending the request.
343
379
  #
344
380
  # @option options [Aws::STS::EndpointProvider] :endpoint_provider
345
- # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::STS::EndpointParameters`
346
- #
347
- # @option options [URI::HTTP,String] :http_proxy A proxy to send
348
- # requests through. Formatted like 'http://proxy.com:123'.
349
- #
350
- # @option options [Float] :http_open_timeout (15) The number of
351
- # seconds to wait when opening a HTTP session before raising a
352
- # `Timeout::Error`.
353
- #
354
- # @option options [Float] :http_read_timeout (60) The default
355
- # number of seconds to wait for response data. This value can
356
- # safely be set per-request on the session.
357
- #
358
- # @option options [Float] :http_idle_timeout (5) The number of
359
- # seconds a connection is allowed to sit idle before it is
360
- # considered stale. Stale connections are closed and removed
361
- # from the pool before making a request.
381
+ # The endpoint provider used to resolve endpoints. Any object that responds to
382
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
383
+ # `Aws::STS::EndpointParameters`.
384
+ #
385
+ # @option options [Float] :http_continue_timeout (1)
386
+ # The number of seconds to wait for a 100-continue response before sending the
387
+ # request body. This option has no effect unless the request has "Expect"
388
+ # header set to "100-continue". Defaults to `nil` which disables this
389
+ # behaviour. This value can safely be set per request on the session.
390
+ #
391
+ # @option options [Float] :http_idle_timeout (5)
392
+ # The number of seconds a connection is allowed to sit idle before it
393
+ # is considered stale. Stale connections are closed and removed from the
394
+ # pool before making a request.
395
+ #
396
+ # @option options [Float] :http_open_timeout (15)
397
+ # The default number of seconds to wait for response data.
398
+ # This value can safely be set per-request on the session.
399
+ #
400
+ # @option options [URI::HTTP,String] :http_proxy
401
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
402
+ #
403
+ # @option options [Float] :http_read_timeout (60)
404
+ # The default number of seconds to wait for response data.
405
+ # This value can safely be set per-request on the session.
406
+ #
407
+ # @option options [Boolean] :http_wire_trace (false)
408
+ # When `true`, HTTP debug output will be sent to the `:logger`.
409
+ #
410
+ # @option options [Proc] :on_chunk_received
411
+ # When a Proc object is provided, it will be used as callback when each chunk
412
+ # of the response body is received. It provides three arguments: the chunk,
413
+ # the number of bytes received, and the total number of
414
+ # bytes in the response (or nil if the server did not send a `content-length`).
415
+ #
416
+ # @option options [Proc] :on_chunk_sent
417
+ # When a Proc object is provided, it will be used as callback when each chunk
418
+ # of the request body is sent. It provides three arguments: the chunk,
419
+ # the number of bytes read from the body, and the total number of
420
+ # bytes in the body.
421
+ #
422
+ # @option options [Boolean] :raise_response_errors (true)
423
+ # When `true`, response errors are raised.
424
+ #
425
+ # @option options [String] :ssl_ca_bundle
426
+ # Full path to the SSL certificate authority bundle file that should be used when
427
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
428
+ # `:ssl_ca_directory` the the system default will be used if available.
429
+ #
430
+ # @option options [String] :ssl_ca_directory
431
+ # Full path of the directory that contains the unbundled SSL certificate
432
+ # authority files for verifying peer certificates. If you do
433
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
434
+ # default will be used if available.
362
435
  #
363
- # @option options [Float] :http_continue_timeout (1) The number of
364
- # seconds to wait for a 100-continue response before sending the
365
- # request body. This option has no effect unless the request has
366
- # "Expect" header set to "100-continue". Defaults to `nil` which
367
- # disables this behaviour. This value can safely be set per
368
- # request on the session.
436
+ # @option options [String] :ssl_ca_store
437
+ # Sets the X509::Store to verify peer certificate.
369
438
  #
370
- # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
371
- # in seconds.
439
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
440
+ # Sets a client certificate when creating http connections.
372
441
  #
373
- # @option options [Boolean] :http_wire_trace (false) When `true`,
374
- # HTTP debug output will be sent to the `:logger`.
442
+ # @option options [OpenSSL::PKey] :ssl_key
443
+ # Sets a client key when creating http connections.
375
444
  #
376
- # @option options [Boolean] :ssl_verify_peer (true) When `true`,
377
- # SSL peer certificates are verified when establishing a
378
- # connection.
445
+ # @option options [Float] :ssl_timeout
446
+ # Sets the SSL timeout in seconds
379
447
  #
380
- # @option options [String] :ssl_ca_bundle Full path to the SSL
381
- # certificate authority bundle file that should be used when
382
- # verifying peer certificates. If you do not pass
383
- # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
384
- # will be used if available.
385
- #
386
- # @option options [String] :ssl_ca_directory Full path of the
387
- # directory that contains the unbundled SSL certificate
388
- # authority files for verifying peer certificates. If you do
389
- # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
390
- # system default will be used if available.
448
+ # @option options [Boolean] :ssl_verify_peer (true)
449
+ # When `true`, SSL peer certificates are verified when establishing a connection.
391
450
  #
392
451
  def initialize(*args)
393
452
  super
@@ -401,8 +460,8 @@ module Aws::STS
401
460
  # token. Typically, you use `AssumeRole` within your account or for
402
461
  # cross-account access. For a comparison of `AssumeRole` with other API
403
462
  # operations that produce temporary credentials, see [Requesting
404
- # Temporary Security Credentials][1] and [Comparing the Amazon Web
405
- # Services STS API operations][2] in the *IAM User Guide*.
463
+ # Temporary Security Credentials][1] and [Compare STS credentials][2] in
464
+ # the *IAM User Guide*.
406
465
  #
407
466
  # **Permissions**
408
467
  #
@@ -411,9 +470,9 @@ module Aws::STS
411
470
  # following exception: You cannot call the Amazon Web Services STS
412
471
  # `GetFederationToken` or `GetSessionToken` API operations.
413
472
  #
414
- # (Optional) You can pass inline or managed [session policies][3] to
415
- # this operation. You can pass a single JSON policy document to use as
416
- # an inline session policy. You can also specify up to 10 managed policy
473
+ # (Optional) You can pass inline or managed session policies to this
474
+ # operation. You can pass a single JSON policy document to use as an
475
+ # inline session policy. You can also specify up to 10 managed policy
417
476
  # Amazon Resource Names (ARNs) to use as managed session policies. The
418
477
  # plaintext that you use for both inline and managed session policies
419
478
  # can't exceed 2,048 characters. Passing policies to this operation
@@ -486,7 +545,7 @@ module Aws::STS
486
545
  # denied. The condition in a trust policy that tests for MFA
487
546
  # authentication might look like the following example.
488
547
  #
489
- # `"Condition": \{"Bool": \{"aws:MultiFactorAuthPresent": true\}\}`
548
+ # `"Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}}`
490
549
  #
491
550
  # For more information, see [Configuring MFA-Protected API Access][8] in
492
551
  # the *IAM User Guide* guide.
@@ -499,7 +558,7 @@ module Aws::STS
499
558
  #
500
559
  #
501
560
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
502
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
561
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
503
562
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
504
563
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
505
564
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
@@ -522,11 +581,22 @@ module Aws::STS
522
581
  # credentials will expose the role session name to the external account
523
582
  # in their CloudTrail logs.
524
583
  #
584
+ # For security purposes, administrators can view this field in
585
+ # [CloudTrail logs][1] to help identify who performed an action in
586
+ # Amazon Web Services. Your administrator might require that you specify
587
+ # your user name as the session name when you assume the role. For more
588
+ # information, see [ `sts:RoleSessionName` ][2].
589
+ #
525
590
  # The regex used to validate this parameter is a string of characters
526
591
  # consisting of upper- and lower-case alphanumeric characters with no
527
592
  # spaces. You can also include underscores or any of the following
528
593
  # characters: =,.@-
529
594
  #
595
+ #
596
+ #
597
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html#cloudtrail-integration_signin-tempcreds
598
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname
599
+ #
530
600
  # @option params [Array<Types::PolicyDescriptorType>] :policy_arns
531
601
  # The Amazon Resource Names (ARNs) of the IAM managed policies that you
532
602
  # want to use as managed session policies. The policies must exist in
@@ -592,6 +662,9 @@ module Aws::STS
592
662
  #
593
663
  # </note>
594
664
  #
665
+ # For more information about role session permissions, see [Session
666
+ # policies][1].
667
+ #
595
668
  #
596
669
  #
597
670
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
@@ -614,9 +687,8 @@ module Aws::STS
614
687
  # depending on the maximum session duration setting for your role.
615
688
  # However, if you assume a role using role chaining and provide a
616
689
  # `DurationSeconds` parameter value greater than one hour, the operation
617
- # fails. To learn how to view the maximum value for your role, see [View
618
- # the Maximum Session Duration Setting for a Role][1] in the *IAM User
619
- # Guide*.
690
+ # fails. To learn how to view the maximum value for your role, see
691
+ # [Update the maximum session duration for a role][1].
620
692
  #
621
693
  # By default, the value is set to `3600` seconds.
622
694
  #
@@ -632,7 +704,7 @@ module Aws::STS
632
704
  #
633
705
  #
634
706
  #
635
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
707
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html#id_roles_update-session-duration
636
708
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
637
709
  #
638
710
  # @option params [Array<Types::Tag>] :tags
@@ -685,9 +757,8 @@ module Aws::STS
685
757
  # passes to subsequent sessions in a role chain. For more information,
686
758
  # see [Chaining Roles with Session Tags][1] in the *IAM User Guide*.
687
759
  #
688
- # This parameter is optional. When you set session tags as transitive,
689
- # the session policy and session tags packed binary limit is not
690
- # affected.
760
+ # This parameter is optional. The transitive status of a session tag
761
+ # does not impact its packed binary size.
691
762
  #
692
763
  # If you choose not to specify a transitive tag key, then no tags are
693
764
  # passed from this session to any subsequent sessions.
@@ -745,16 +816,17 @@ module Aws::STS
745
816
  #
746
817
  # @option params [String] :source_identity
747
818
  # The source identity specified by the principal that is calling the
748
- # `AssumeRole` operation.
819
+ # `AssumeRole` operation. The source identity value persists across
820
+ # [chained role][1] sessions.
749
821
  #
750
822
  # You can require users to specify a source identity when they assume a
751
- # role. You do this by using the `sts:SourceIdentity` condition key in a
752
- # role trust policy. You can use source identity information in
823
+ # role. You do this by using the [ `sts:SourceIdentity` ][2] condition
824
+ # key in a role trust policy. You can use source identity information in
753
825
  # CloudTrail logs to determine who took actions with a role. You can use
754
826
  # the `aws:SourceIdentity` condition key to further control access to
755
827
  # Amazon Web Services resources based on the value of source identity.
756
828
  # For more information about using source identity, see [Monitor and
757
- # control actions taken with assumed roles][1] in the *IAM User Guide*.
829
+ # control actions taken with assumed roles][3] in the *IAM User Guide*.
758
830
  #
759
831
  # The regex used to validate this parameter is a string of characters
760
832
  # consisting of upper- and lower-case alphanumeric characters with no
@@ -764,10 +836,20 @@ module Aws::STS
764
836
  #
765
837
  #
766
838
  #
767
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
839
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-role-chaining
840
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceidentity
841
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
768
842
  #
769
843
  # @option params [Array<Types::ProvidedContext>] :provided_contexts
770
- # Reserved for future use.
844
+ # A list of previously acquired trusted context assertions in the format
845
+ # of a JSON array. The trusted context assertion is signed and encrypted
846
+ # by Amazon Web Services STS.
847
+ #
848
+ # The following is an example of a `ProvidedContext` value that includes
849
+ # a single trusted context assertion and the ARN of the context provider
850
+ # from which the trusted context assertion was generated.
851
+ #
852
+ # `[{"ProviderArn":"arn:aws:iam::aws:contextProvider/IdentityCenter","ContextAssertion":"trusted-context-assertion"}]`
771
853
  #
772
854
  # @return [Types::AssumeRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
773
855
  #
@@ -877,8 +959,8 @@ module Aws::STS
877
959
  # user-specific credentials or configuration. For a comparison of
878
960
  # `AssumeRoleWithSAML` with the other API operations that produce
879
961
  # temporary credentials, see [Requesting Temporary Security
880
- # Credentials][1] and [Comparing the Amazon Web Services STS API
881
- # operations][2] in the *IAM User Guide*.
962
+ # Credentials][1] and [Compare STS credentials][2] in the *IAM User
963
+ # Guide*.
882
964
  #
883
965
  # The temporary security credentials returned by this operation consist
884
966
  # of an access key ID, a secret access key, and a security token.
@@ -1008,7 +1090,7 @@ module Aws::STS
1008
1090
  #
1009
1091
  #
1010
1092
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1011
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1093
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
1012
1094
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
1013
1095
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1014
1096
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining
@@ -1096,6 +1178,9 @@ module Aws::STS
1096
1178
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
1097
1179
  # characters.
1098
1180
  #
1181
+ # For more information about role session permissions, see [Session
1182
+ # policies][1].
1183
+ #
1099
1184
  # <note markdown="1"> An Amazon Web Services conversion compresses the passed inline session
1100
1185
  # policy, managed policy ARNs, and session tags into a packed binary
1101
1186
  # format that has a separate limit. Your request can fail for this limit
@@ -1250,8 +1335,8 @@ module Aws::STS
1250
1335
  # a token from the web identity provider. For a comparison of
1251
1336
  # `AssumeRoleWithWebIdentity` with the other API operations that produce
1252
1337
  # temporary credentials, see [Requesting Temporary Security
1253
- # Credentials][4] and [Comparing the Amazon Web Services STS API
1254
- # operations][5] in the *IAM User Guide*.
1338
+ # Credentials][4] and [Compare STS credentials][5] in the *IAM User
1339
+ # Guide*.
1255
1340
  #
1256
1341
  # The temporary security credentials returned by this API consist of an
1257
1342
  # access key ID, a secret access key, and a security token. Applications
@@ -1266,9 +1351,9 @@ module Aws::STS
1266
1351
  # your session. You can provide a value from 900 seconds (15 minutes) up
1267
1352
  # to the maximum session duration setting for the role. This setting can
1268
1353
  # have a value from 1 hour to 12 hours. To learn how to view the maximum
1269
- # value for your role, see [View the Maximum Session Duration Setting
1270
- # for a Role][6] in the *IAM User Guide*. The maximum session duration
1271
- # limit applies when you use the `AssumeRole*` API operations or the
1354
+ # value for your role, see [Update the maximum session duration for a
1355
+ # role ][6] in the *IAM User Guide*. The maximum session duration limit
1356
+ # applies when you use the `AssumeRole*` API operations or the
1272
1357
  # `assume-role*` CLI commands. However the limit does not apply when you
1273
1358
  # use those operations to create a console URL. For more information,
1274
1359
  # see [Using IAM Roles][7] in the *IAM User Guide*.
@@ -1346,35 +1431,26 @@ module Aws::STS
1346
1431
  # instead use a GUID or a pairwise identifier, as [suggested in the OIDC
1347
1432
  # specification][14].
1348
1433
  #
1349
- # For more information about how to use web identity federation and the
1434
+ # For more information about how to use OIDC federation and the
1350
1435
  # `AssumeRoleWithWebIdentity` API, see the following resources:
1351
1436
  #
1352
1437
  # * [Using Web Identity Federation API Operations for Mobile Apps][15]
1353
1438
  # and [Federation Through a Web-based Identity Provider][16].
1354
1439
  #
1355
- # * [ Web Identity Federation Playground][17]. Walk through the process
1356
- # of authenticating through Login with Amazon, Facebook, or Google,
1357
- # getting temporary security credentials, and then using those
1358
- # credentials to make a request to Amazon Web Services.
1359
- #
1360
1440
  # * [Amazon Web Services SDK for iOS Developer Guide][2] and [Amazon Web
1361
1441
  # Services SDK for Android Developer Guide][3]. These toolkits contain
1362
1442
  # sample apps that show how to invoke the identity providers. The
1363
1443
  # toolkits then show how to use the information from these providers
1364
1444
  # to get and use temporary security credentials.
1365
1445
  #
1366
- # * [Web Identity Federation with Mobile Applications][18]. This article
1367
- # discusses web identity federation and shows an example of how to use
1368
- # web identity federation to get access to content in Amazon S3.
1369
- #
1370
1446
  #
1371
1447
  #
1372
1448
  # [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
1373
1449
  # [2]: http://aws.amazon.com/sdkforios/
1374
1450
  # [3]: http://aws.amazon.com/sdkforandroid/
1375
1451
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1376
- # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1377
- # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
1452
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
1453
+ # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html#id_roles_update-session-duration
1378
1454
  # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1379
1455
  # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1380
1456
  # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
@@ -1385,13 +1461,29 @@ module Aws::STS
1385
1461
  # [14]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes
1386
1462
  # [15]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html
1387
1463
  # [16]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1388
- # [17]: https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/
1389
- # [18]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications
1390
1464
  #
1391
1465
  # @option params [required, String] :role_arn
1392
1466
  # The Amazon Resource Name (ARN) of the role that the caller is
1393
1467
  # assuming.
1394
1468
  #
1469
+ # <note markdown="1"> Additional considerations apply to Amazon Cognito identity pools that
1470
+ # assume [cross-account IAM roles][1]. The trust policies of these roles
1471
+ # must accept the `cognito-identity.amazonaws.com` service principal and
1472
+ # must contain the `cognito-identity.amazonaws.com:aud` condition key to
1473
+ # restrict role assumption to users from your intended identity pools. A
1474
+ # policy that trusts Amazon Cognito identity pools without this
1475
+ # condition creates a risk that a user from an unintended identity pool
1476
+ # can assume the role. For more information, see [ Trust policies for
1477
+ # IAM roles in Basic (Classic) authentication ][2] in the *Amazon
1478
+ # Cognito Developer Guide*.
1479
+ #
1480
+ # </note>
1481
+ #
1482
+ #
1483
+ #
1484
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html
1485
+ # [2]: https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#trust-policies
1486
+ #
1395
1487
  # @option params [required, String] :role_session_name
1396
1488
  # An identifier for the assumed role session. Typically, you pass the
1397
1489
  # name or identifier that is associated with the user who is using your
@@ -1400,18 +1492,30 @@ module Aws::STS
1400
1492
  # is included as part of the ARN and assumed role ID in the
1401
1493
  # `AssumedRoleUser` response element.
1402
1494
  #
1495
+ # For security purposes, administrators can view this field in
1496
+ # [CloudTrail logs][1] to help identify who performed an action in
1497
+ # Amazon Web Services. Your administrator might require that you specify
1498
+ # your user name as the session name when you assume the role. For more
1499
+ # information, see [ `sts:RoleSessionName` ][2].
1500
+ #
1403
1501
  # The regex used to validate this parameter is a string of characters
1404
1502
  # consisting of upper- and lower-case alphanumeric characters with no
1405
1503
  # spaces. You can also include underscores or any of the following
1406
1504
  # characters: =,.@-
1407
1505
  #
1506
+ #
1507
+ #
1508
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html#cloudtrail-integration_signin-tempcreds
1509
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname
1510
+ #
1408
1511
  # @option params [required, String] :web_identity_token
1409
1512
  # The OAuth 2.0 access token or OpenID Connect ID token that is provided
1410
1513
  # by the identity provider. Your application must get this token by
1411
1514
  # authenticating the user who is using your application with a web
1412
1515
  # identity provider before the application makes an
1413
- # `AssumeRoleWithWebIdentity` call. Only tokens with RSA algorithms
1414
- # (RS256) are supported.
1516
+ # `AssumeRoleWithWebIdentity` call. Timestamps in the token must be
1517
+ # formatted as either an integer or a long integer. Only tokens with RSA
1518
+ # algorithms (RS256) are supported.
1415
1519
  #
1416
1520
  # @option params [String] :provider_id
1417
1521
  # The fully qualified host component of the domain name of the OAuth 2.0
@@ -1480,6 +1584,9 @@ module Aws::STS
1480
1584
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
1481
1585
  # characters.
1482
1586
  #
1587
+ # For more information about role session permissions, see [Session
1588
+ # policies][1].
1589
+ #
1483
1590
  # <note markdown="1"> An Amazon Web Services conversion compresses the passed inline session
1484
1591
  # policy, managed policy ARNs, and session tags into a packed binary
1485
1592
  # format that has a separate limit. Your request can fail for this limit
@@ -1600,6 +1707,123 @@ module Aws::STS
1600
1707
  req.send_request(options)
1601
1708
  end
1602
1709
 
1710
+ # Returns a set of short term credentials you can use to perform
1711
+ # privileged tasks in a member account.
1712
+ #
1713
+ # Before you can launch a privileged session, you must have enabled
1714
+ # centralized root access in your organization. For steps to enable this
1715
+ # feature, see [Centralize root access for member accounts][1] in the
1716
+ # *IAM User Guide*.
1717
+ #
1718
+ # <note markdown="1"> The global endpoint is not supported for AssumeRoot. You must send
1719
+ # this request to a Regional STS endpoint. For more information, see
1720
+ # [Endpoints][2].
1721
+ #
1722
+ # </note>
1723
+ #
1724
+ # You can track AssumeRoot in CloudTrail logs to determine what actions
1725
+ # were performed in a session. For more information, see [Track
1726
+ # privileged tasks in CloudTrail][3] in the *IAM User Guide*.
1727
+ #
1728
+ #
1729
+ #
1730
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-enable-root-access.html
1731
+ # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html#sts-endpoints
1732
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-track-privileged-tasks.html
1733
+ #
1734
+ # @option params [required, String] :target_principal
1735
+ # The member account principal ARN or account ID.
1736
+ #
1737
+ # @option params [required, Types::PolicyDescriptorType] :task_policy_arn
1738
+ # The identity based policy that scopes the session to the privileged
1739
+ # tasks that can be performed. You can use one of following Amazon Web
1740
+ # Services managed policies to scope root session actions. You can add
1741
+ # additional customer managed policies to further limit the permissions
1742
+ # for the root session.
1743
+ #
1744
+ # * [IAMAuditRootUserCredentials][1]
1745
+ #
1746
+ # * [IAMCreateRootUserPassword][2]
1747
+ #
1748
+ # * [IAMDeleteRootUserCredentials][3]
1749
+ #
1750
+ # * [S3UnlockBucketPolicy][4]
1751
+ #
1752
+ # * [SQSUnlockQueuePolicy][5]
1753
+ #
1754
+ #
1755
+ #
1756
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMAuditRootUserCredentials
1757
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMCreateRootUserPassword
1758
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMDeleteRootUserCredentials
1759
+ # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-S3UnlockBucketPolicy
1760
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-SQSUnlockQueuePolicy
1761
+ #
1762
+ # @option params [Integer] :duration_seconds
1763
+ # The duration, in seconds, of the privileged session. The value can
1764
+ # range from 0 seconds up to the maximum session duration of 900 seconds
1765
+ # (15 minutes). If you specify a value higher than this setting, the
1766
+ # operation fails.
1767
+ #
1768
+ # By default, the value is set to `900` seconds.
1769
+ #
1770
+ # @return [Types::AssumeRootResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1771
+ #
1772
+ # * {Types::AssumeRootResponse#credentials #credentials} => Types::Credentials
1773
+ # * {Types::AssumeRootResponse#source_identity #source_identity} => String
1774
+ #
1775
+ #
1776
+ # @example Example: To launch a privileged session
1777
+ #
1778
+ # # The following command retrieves a set of short-term credentials you can use to unlock an S3 bucket for a member account
1779
+ # # by removing the bucket policy.
1780
+ #
1781
+ # resp = client.assume_root({
1782
+ # duration_seconds: 900,
1783
+ # target_principal: "111122223333",
1784
+ # task_policy_arn: {
1785
+ # arn: "arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy",
1786
+ # },
1787
+ # })
1788
+ #
1789
+ # resp.to_h outputs the following:
1790
+ # {
1791
+ # credentials: {
1792
+ # access_key_id: "ASIAJEXAMPLEXEG2JICEA",
1793
+ # expiration: Time.parse("2024-11-15T00:05:07Z"),
1794
+ # secret_access_key: "9drTJvcXLB89EXAMPLELB8923FB892xMFI",
1795
+ # session_token: "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=",
1796
+ # },
1797
+ # source_identity: "Alice",
1798
+ # }
1799
+ #
1800
+ # @example Request syntax with placeholder values
1801
+ #
1802
+ # resp = client.assume_root({
1803
+ # target_principal: "TargetPrincipalType", # required
1804
+ # task_policy_arn: { # required
1805
+ # arn: "arnType",
1806
+ # },
1807
+ # duration_seconds: 1,
1808
+ # })
1809
+ #
1810
+ # @example Response structure
1811
+ #
1812
+ # resp.credentials.access_key_id #=> String
1813
+ # resp.credentials.secret_access_key #=> String
1814
+ # resp.credentials.session_token #=> String
1815
+ # resp.credentials.expiration #=> Time
1816
+ # resp.source_identity #=> String
1817
+ #
1818
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoot AWS API Documentation
1819
+ #
1820
+ # @overload assume_root(params = {})
1821
+ # @param [Hash] params ({})
1822
+ def assume_root(params = {}, options = {})
1823
+ req = build_request(:assume_root, params)
1824
+ req.send_request(options)
1825
+ end
1826
+
1603
1827
  # Decodes additional information about the authorization status of a
1604
1828
  # request from an encoded message returned in response to an Amazon Web
1605
1829
  # Services request.
@@ -1838,8 +2062,8 @@ module Aws::STS
1838
2062
  # usually in a server-based application. For a comparison of
1839
2063
  # `GetFederationToken` with the other API operations that produce
1840
2064
  # temporary credentials, see [Requesting Temporary Security
1841
- # Credentials][1] and [Comparing the Amazon Web Services STS API
1842
- # operations][2] in the *IAM User Guide*.
2065
+ # Credentials][1] and [Compare STS credentials][2] in the *IAM User
2066
+ # Guide*.
1843
2067
  #
1844
2068
  # Although it is possible to call `GetFederationToken` using the
1845
2069
  # security credentials of an Amazon Web Services account root user
@@ -1936,7 +2160,7 @@ module Aws::STS
1936
2160
  #
1937
2161
  #
1938
2162
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1939
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
2163
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
1940
2164
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials
1941
2165
  # [4]: http://aws.amazon.com/cognito/
1942
2166
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
@@ -2188,8 +2412,8 @@ module Aws::STS
2188
2412
  # An incorrect MFA code causes the API to return an access denied error.
2189
2413
  # For a comparison of `GetSessionToken` with the other API operations
2190
2414
  # that produce temporary credentials, see [Requesting Temporary Security
2191
- # Credentials][1] and [Comparing the Amazon Web Services STS API
2192
- # operations][2] in the *IAM User Guide*.
2415
+ # Credentials][1] and [Compare STS credentials][2] in the *IAM User
2416
+ # Guide*.
2193
2417
  #
2194
2418
  # <note markdown="1"> No permissions are required for users to perform this operation. The
2195
2419
  # purpose of the `sts:GetSessionToken` operation is to authenticate the
@@ -2244,7 +2468,7 @@ module Aws::STS
2244
2468
  #
2245
2469
  #
2246
2470
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
2247
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
2471
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
2248
2472
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html
2249
2473
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials
2250
2474
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken
@@ -2337,14 +2561,19 @@ module Aws::STS
2337
2561
  # @api private
2338
2562
  def build_request(operation_name, params = {})
2339
2563
  handlers = @handlers.for(operation_name)
2564
+ tracer = config.telemetry_provider.tracer_provider.tracer(
2565
+ Aws::Telemetry.module_to_tracer_name('Aws::STS')
2566
+ )
2340
2567
  context = Seahorse::Client::RequestContext.new(
2341
2568
  operation_name: operation_name,
2342
2569
  operation: config.api.operation(operation_name),
2343
2570
  client: self,
2344
2571
  params: params,
2345
- config: config)
2572
+ config: config,
2573
+ tracer: tracer
2574
+ )
2346
2575
  context[:gem_name] = 'aws-sdk-core'
2347
- context[:gem_version] = '3.185.1'
2576
+ context[:gem_version] = '3.214.0'
2348
2577
  Seahorse::Client::Request.new(handlers, context)
2349
2578
  end
2350
2579