aws-sdk-core 3.185.1 → 3.214.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 (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