aws-sdk-core 3.171.1 → 3.234.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 (199) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +787 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-defaults/default_configuration.rb +5 -6
  5. data/lib/aws-defaults.rb +4 -1
  6. data/lib/aws-sdk-core/arn.rb +1 -3
  7. data/lib/aws-sdk-core/assume_role_credentials.rb +21 -13
  8. data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +16 -9
  9. data/lib/aws-sdk-core/binary/decode_handler.rb +3 -9
  10. data/lib/aws-sdk-core/binary/encode_handler.rb +1 -1
  11. data/lib/aws-sdk-core/binary/event_builder.rb +34 -37
  12. data/lib/aws-sdk-core/binary/event_stream_decoder.rb +1 -0
  13. data/lib/aws-sdk-core/binary/event_stream_encoder.rb +4 -3
  14. data/lib/aws-sdk-core/cbor/decoder.rb +308 -0
  15. data/lib/aws-sdk-core/cbor/encoder.rb +243 -0
  16. data/lib/aws-sdk-core/cbor.rb +53 -0
  17. data/lib/aws-sdk-core/client_side_monitoring.rb +9 -0
  18. data/lib/aws-sdk-core/client_stubs.rb +33 -55
  19. data/lib/aws-sdk-core/credential_provider.rb +8 -1
  20. data/lib/aws-sdk-core/credential_provider_chain.rb +74 -25
  21. data/lib/aws-sdk-core/credentials.rb +19 -6
  22. data/lib/aws-sdk-core/ec2_metadata.rb +1 -1
  23. data/lib/aws-sdk-core/ecs_credentials.rb +92 -24
  24. data/lib/aws-sdk-core/endpoints/endpoint.rb +3 -1
  25. data/lib/aws-sdk-core/endpoints/matchers.rb +21 -19
  26. data/lib/aws-sdk-core/endpoints.rb +106 -22
  27. data/lib/aws-sdk-core/error_handler.rb +46 -0
  28. data/lib/aws-sdk-core/errors.rb +14 -5
  29. data/lib/aws-sdk-core/event_emitter.rb +1 -17
  30. data/lib/aws-sdk-core/ini_parser.rb +7 -0
  31. data/lib/aws-sdk-core/instance_profile_credentials.rb +168 -155
  32. data/lib/aws-sdk-core/json/builder.rb +8 -1
  33. data/lib/aws-sdk-core/json/error_handler.rb +29 -13
  34. data/lib/aws-sdk-core/json/handler.rb +13 -6
  35. data/lib/aws-sdk-core/json/json_engine.rb +3 -1
  36. data/lib/aws-sdk-core/json/oj_engine.rb +7 -1
  37. data/lib/aws-sdk-core/json/parser.rb +33 -3
  38. data/lib/aws-sdk-core/json.rb +43 -14
  39. data/lib/aws-sdk-core/log/formatter.rb +6 -0
  40. data/lib/aws-sdk-core/log/param_filter.rb +2 -2
  41. data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
  42. data/lib/aws-sdk-core/log.rb +10 -0
  43. data/lib/aws-sdk-core/lru_cache.rb +75 -0
  44. data/lib/aws-sdk-core/pageable_response.rb +3 -1
  45. data/lib/aws-sdk-core/param_validator.rb +9 -4
  46. data/lib/aws-sdk-core/plugins/bearer_authorization.rb +2 -0
  47. data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +348 -169
  48. data/lib/aws-sdk-core/plugins/client_metrics_plugin.rb +1 -1
  49. data/lib/aws-sdk-core/plugins/client_metrics_send_plugin.rb +14 -2
  50. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +78 -56
  51. data/lib/aws-sdk-core/plugins/endpoint_pattern.rb +40 -32
  52. data/lib/aws-sdk-core/plugins/global_configuration.rb +8 -9
  53. data/lib/aws-sdk-core/plugins/http_checksum.rb +3 -8
  54. data/lib/aws-sdk-core/plugins/invocation_id.rb +1 -11
  55. data/lib/aws-sdk-core/plugins/logging.rb +2 -0
  56. data/lib/aws-sdk-core/plugins/protocols/api_gateway.rb +3 -1
  57. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -24
  58. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +6 -8
  59. data/lib/aws-sdk-core/plugins/protocols/query.rb +4 -2
  60. data/lib/aws-sdk-core/plugins/protocols/rest_json.rb +3 -15
  61. data/lib/aws-sdk-core/plugins/protocols/rest_xml.rb +3 -0
  62. data/lib/aws-sdk-core/plugins/protocols/rpc_v2.rb +17 -0
  63. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +162 -37
  64. data/lib/aws-sdk-core/plugins/request_compression.rb +226 -0
  65. data/lib/aws-sdk-core/plugins/retry_errors.rb +12 -3
  66. data/lib/aws-sdk-core/plugins/sign.rb +55 -33
  67. data/lib/aws-sdk-core/plugins/signature_v2.rb +2 -1
  68. data/lib/aws-sdk-core/plugins/signature_v4.rb +2 -1
  69. data/lib/aws-sdk-core/plugins/stub_responses.rb +59 -9
  70. data/lib/aws-sdk-core/plugins/telemetry.rb +75 -0
  71. data/lib/aws-sdk-core/plugins/transfer_encoding.rb +16 -9
  72. data/lib/aws-sdk-core/plugins/user_agent.rb +192 -14
  73. data/lib/aws-sdk-core/plugins.rb +39 -0
  74. data/lib/aws-sdk-core/process_credentials.rb +48 -29
  75. data/lib/aws-sdk-core/query/ec2_handler.rb +27 -0
  76. data/lib/aws-sdk-core/query/ec2_param_builder.rb +5 -7
  77. data/lib/aws-sdk-core/query/handler.rb +4 -4
  78. data/lib/aws-sdk-core/query/param_builder.rb +2 -2
  79. data/lib/aws-sdk-core/query.rb +2 -1
  80. data/lib/aws-sdk-core/refreshing_credentials.rb +20 -23
  81. data/lib/aws-sdk-core/resources.rb +8 -0
  82. data/lib/aws-sdk-core/rest/content_type_handler.rb +60 -0
  83. data/lib/aws-sdk-core/rest/handler.rb +3 -4
  84. data/lib/aws-sdk-core/rest/request/body.rb +32 -5
  85. data/lib/aws-sdk-core/rest/request/endpoint.rb +24 -4
  86. data/lib/aws-sdk-core/rest/request/headers.rb +15 -7
  87. data/lib/aws-sdk-core/rest/request/querystring_builder.rb +62 -36
  88. data/lib/aws-sdk-core/rest/response/body.rb +15 -1
  89. data/lib/aws-sdk-core/rest/response/header_list_parser.rb +79 -0
  90. data/lib/aws-sdk-core/rest/response/headers.rb +8 -3
  91. data/lib/aws-sdk-core/rest.rb +1 -0
  92. data/lib/aws-sdk-core/rpc_v2/builder.rb +62 -0
  93. data/lib/aws-sdk-core/rpc_v2/cbor_engine.rb +18 -0
  94. data/lib/aws-sdk-core/rpc_v2/content_type_handler.rb +47 -0
  95. data/lib/aws-sdk-core/rpc_v2/error_handler.rb +95 -0
  96. data/lib/aws-sdk-core/rpc_v2/handler.rb +79 -0
  97. data/lib/aws-sdk-core/rpc_v2/parser.rb +98 -0
  98. data/lib/aws-sdk-core/rpc_v2.rb +69 -0
  99. data/lib/aws-sdk-core/shared_config.rb +135 -39
  100. data/lib/aws-sdk-core/shared_credentials.rb +1 -7
  101. data/lib/aws-sdk-core/sso_credentials.rb +6 -3
  102. data/lib/aws-sdk-core/static_token_provider.rb +1 -2
  103. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +12 -11
  104. data/lib/aws-sdk-core/stubbing/protocols/json.rb +11 -10
  105. data/lib/aws-sdk-core/stubbing/protocols/query.rb +7 -6
  106. data/lib/aws-sdk-core/stubbing/protocols/rest.rb +2 -1
  107. data/lib/aws-sdk-core/stubbing/protocols/rest_json.rb +9 -8
  108. data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +6 -5
  109. data/lib/aws-sdk-core/stubbing/protocols/rpc_v2.rb +39 -0
  110. data/lib/aws-sdk-core/stubbing/stub_data.rb +11 -0
  111. data/lib/aws-sdk-core/stubbing.rb +22 -0
  112. data/lib/aws-sdk-core/telemetry/base.rb +177 -0
  113. data/lib/aws-sdk-core/telemetry/no_op.rb +70 -0
  114. data/lib/aws-sdk-core/telemetry/otel.rb +235 -0
  115. data/lib/aws-sdk-core/telemetry/span_kind.rb +22 -0
  116. data/lib/aws-sdk-core/telemetry/span_status.rb +59 -0
  117. data/lib/aws-sdk-core/telemetry.rb +78 -0
  118. data/lib/aws-sdk-core/token.rb +3 -3
  119. data/lib/aws-sdk-core/token_provider.rb +4 -0
  120. data/lib/aws-sdk-core/token_provider_chain.rb +2 -6
  121. data/lib/aws-sdk-core/util.rb +41 -1
  122. data/lib/aws-sdk-core/waiters/poller.rb +12 -5
  123. data/lib/aws-sdk-core/xml/builder.rb +17 -9
  124. data/lib/aws-sdk-core/xml/error_handler.rb +35 -43
  125. data/lib/aws-sdk-core/xml/parser/frame.rb +4 -20
  126. data/lib/aws-sdk-core/xml/parser/stack.rb +2 -0
  127. data/lib/aws-sdk-core/xml/parser.rb +2 -6
  128. data/lib/aws-sdk-core.rb +82 -107
  129. data/lib/aws-sdk-sso/client.rb +205 -92
  130. data/lib/aws-sdk-sso/client_api.rb +7 -0
  131. data/lib/aws-sdk-sso/endpoint_parameters.rb +9 -6
  132. data/lib/aws-sdk-sso/endpoint_provider.rb +30 -28
  133. data/lib/aws-sdk-sso/endpoints.rb +3 -54
  134. data/lib/aws-sdk-sso/plugins/endpoints.rb +23 -22
  135. data/lib/aws-sdk-sso/types.rb +1 -0
  136. data/lib/aws-sdk-sso.rb +15 -11
  137. data/lib/aws-sdk-ssooidc/client.rb +625 -125
  138. data/lib/aws-sdk-ssooidc/client_api.rb +94 -1
  139. data/lib/aws-sdk-ssooidc/endpoint_parameters.rb +9 -6
  140. data/lib/aws-sdk-ssooidc/endpoint_provider.rb +30 -28
  141. data/lib/aws-sdk-ssooidc/endpoints.rb +3 -40
  142. data/lib/aws-sdk-ssooidc/errors.rb +62 -0
  143. data/lib/aws-sdk-ssooidc/plugins/endpoints.rb +23 -20
  144. data/lib/aws-sdk-ssooidc/types.rb +419 -53
  145. data/lib/aws-sdk-ssooidc.rb +15 -11
  146. data/lib/aws-sdk-sts/client.rb +526 -243
  147. data/lib/aws-sdk-sts/client_api.rb +48 -9
  148. data/lib/aws-sdk-sts/customizations.rb +5 -2
  149. data/lib/aws-sdk-sts/endpoint_parameters.rb +10 -9
  150. data/lib/aws-sdk-sts/endpoint_provider.rb +82 -84
  151. data/lib/aws-sdk-sts/endpoints.rb +3 -118
  152. data/lib/aws-sdk-sts/errors.rb +15 -0
  153. data/lib/aws-sdk-sts/plugins/endpoints.rb +23 -30
  154. data/lib/aws-sdk-sts/presigner.rb +3 -7
  155. data/lib/aws-sdk-sts/types.rb +217 -36
  156. data/lib/aws-sdk-sts.rb +15 -11
  157. data/lib/seahorse/client/async_base.rb +4 -5
  158. data/lib/seahorse/client/async_response.rb +19 -0
  159. data/lib/seahorse/client/base.rb +18 -21
  160. data/lib/seahorse/client/configuration.rb +0 -4
  161. data/lib/seahorse/client/h2/connection.rb +18 -28
  162. data/lib/seahorse/client/h2/handler.rb +14 -3
  163. data/lib/seahorse/client/handler.rb +1 -1
  164. data/lib/seahorse/client/http/response.rb +1 -1
  165. data/lib/seahorse/client/net_http/connection_pool.rb +15 -12
  166. data/lib/seahorse/client/net_http/handler.rb +21 -9
  167. data/lib/seahorse/client/net_http/patches.rb +1 -4
  168. data/lib/seahorse/client/networking_error.rb +1 -1
  169. data/lib/seahorse/client/plugin.rb +9 -0
  170. data/lib/seahorse/client/plugins/endpoint.rb +0 -1
  171. data/lib/seahorse/client/plugins/h2.rb +4 -4
  172. data/lib/seahorse/client/plugins/net_http.rb +57 -16
  173. data/lib/seahorse/client/plugins/request_callback.rb +31 -0
  174. data/lib/seahorse/client/request_context.rb +9 -2
  175. data/lib/seahorse/client/response.rb +8 -0
  176. data/lib/seahorse/model/operation.rb +3 -0
  177. data/lib/seahorse/model/shapes.rb +2 -2
  178. data/lib/seahorse/util.rb +2 -1
  179. data/sig/aws-sdk-core/async_client_stubs.rbs +21 -0
  180. data/sig/aws-sdk-core/client_stubs.rbs +10 -0
  181. data/sig/aws-sdk-core/errors.rbs +22 -0
  182. data/sig/aws-sdk-core/resources/collection.rbs +21 -0
  183. data/sig/aws-sdk-core/structure.rbs +4 -0
  184. data/sig/aws-sdk-core/telemetry/base.rbs +46 -0
  185. data/sig/aws-sdk-core/telemetry/otel.rbs +22 -0
  186. data/sig/aws-sdk-core/telemetry/span_kind.rbs +15 -0
  187. data/sig/aws-sdk-core/telemetry/span_status.rbs +24 -0
  188. data/sig/aws-sdk-core/waiters/errors.rbs +20 -0
  189. data/sig/aws-sdk-core.rbs +7 -0
  190. data/sig/seahorse/client/async_base.rbs +18 -0
  191. data/sig/seahorse/client/base.rbs +25 -0
  192. data/sig/seahorse/client/handler_builder.rbs +16 -0
  193. data/sig/seahorse/client/response.rbs +61 -0
  194. metadata +106 -23
  195. /data/lib/aws-sdk-core/xml/parser/{engines/libxml.rb → libxml_engine.rb} +0 -0
  196. /data/lib/aws-sdk-core/xml/parser/{engines/nokogiri.rb → nokogiri_engine.rb} +0 -0
  197. /data/lib/aws-sdk-core/xml/parser/{engines/oga.rb → oga_engine.rb} +0 -0
  198. /data/lib/aws-sdk-core/xml/parser/{engines/ox.rb → ox_engine.rb} +0 -0
  199. /data/lib/aws-sdk-core/xml/parser/{engines/rexml.rb → rexml_engine.rb} +0 -0
@@ -7,34 +7,35 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
- require 'seahorse/client/plugins/content_length.rb'
11
- require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
- require 'aws-sdk-core/plugins/logging.rb'
13
- require 'aws-sdk-core/plugins/param_converter.rb'
14
- require 'aws-sdk-core/plugins/param_validator.rb'
15
- require 'aws-sdk-core/plugins/user_agent.rb'
16
- require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
- require 'aws-sdk-core/plugins/retry_errors.rb'
18
- require 'aws-sdk-core/plugins/global_configuration.rb'
19
- require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
- require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
- require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
- require 'aws-sdk-core/plugins/response_paging.rb'
23
- require 'aws-sdk-core/plugins/stub_responses.rb'
24
- require 'aws-sdk-core/plugins/idempotency_token.rb'
25
- require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
26
- require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
- require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
- require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
- require 'aws-sdk-core/plugins/http_checksum.rb'
30
- require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
- require 'aws-sdk-core/plugins/defaults_mode.rb'
32
- require 'aws-sdk-core/plugins/recursion_detection.rb'
33
- require 'aws-sdk-core/plugins/sign.rb'
34
- require 'aws-sdk-core/plugins/protocols/query.rb'
35
- require 'aws-sdk-sts/plugins/sts_regional_endpoints.rb'
36
-
37
- Aws::Plugins::GlobalConfiguration.add_identifier(:sts)
10
+ require 'seahorse/client/plugins/content_length'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/query'
38
+ require 'aws-sdk-sts/plugins/sts_regional_endpoints'
38
39
 
39
40
  module Aws::STS
40
41
  # An API client for STS. To construct a client, you need to configure a `:region` and `:credentials`.
@@ -72,14 +73,17 @@ module Aws::STS
72
73
  add_plugin(Aws::Plugins::ResponsePaging)
73
74
  add_plugin(Aws::Plugins::StubResponses)
74
75
  add_plugin(Aws::Plugins::IdempotencyToken)
76
+ add_plugin(Aws::Plugins::InvocationId)
75
77
  add_plugin(Aws::Plugins::JsonvalueConverter)
76
78
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
77
79
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
78
80
  add_plugin(Aws::Plugins::TransferEncoding)
79
81
  add_plugin(Aws::Plugins::HttpChecksum)
80
82
  add_plugin(Aws::Plugins::ChecksumAlgorithm)
83
+ add_plugin(Aws::Plugins::RequestCompression)
81
84
  add_plugin(Aws::Plugins::DefaultsMode)
82
85
  add_plugin(Aws::Plugins::RecursionDetection)
86
+ add_plugin(Aws::Plugins::Telemetry)
83
87
  add_plugin(Aws::Plugins::Sign)
84
88
  add_plugin(Aws::Plugins::Protocols::Query)
85
89
  add_plugin(Aws::STS::Plugins::STSRegionalEndpoints)
@@ -87,9 +91,14 @@ module Aws::STS
87
91
 
88
92
  # @overload initialize(options)
89
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
+ #
90
99
  # @option options [required, Aws::CredentialProvider] :credentials
91
- # Your AWS credentials. This can be an instance of any one of the
92
- # following classes:
100
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
101
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
93
102
  #
94
103
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
95
104
  # credentials.
@@ -117,20 +126,24 @@ module Aws::STS
117
126
  # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
118
127
  # from the Cognito Identity service.
119
128
  #
120
- # When `:credentials` are not configured directly, the following
121
- # locations will be searched for credentials:
129
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
122
130
  #
123
131
  # * `Aws.config[:credentials]`
124
- # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
125
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
132
+ #
133
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
134
+ # `:account_id` options.
135
+ #
136
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
137
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
138
+ #
126
139
  # * `~/.aws/credentials`
140
+ #
127
141
  # * `~/.aws/config`
128
- # * EC2/ECS IMDS instance profile - When used by default, the timeouts
129
- # are very aggressive. Construct and pass an instance of
130
- # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
131
- # enable retries and extended timeouts. Instance profile credential
132
- # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
133
- # to true.
142
+ #
143
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
144
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
145
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
146
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
134
147
  #
135
148
  # @option options [required, String] :region
136
149
  # The AWS region to connect to. The configured `:region` is
@@ -146,6 +159,8 @@ module Aws::STS
146
159
  #
147
160
  # @option options [String] :access_key_id
148
161
  #
162
+ # @option options [String] :account_id
163
+ #
149
164
  # @option options [Boolean] :active_endpoint_cache (false)
150
165
  # When set to `true`, a thread polling for endpoints will be running in
151
166
  # the background every 60 secs (default). Defaults to `false`.
@@ -156,6 +171,11 @@ module Aws::STS
156
171
  # When false, the request will raise a `RetryCapacityNotAvailableError` and will
157
172
  # not retry instead of sleeping.
158
173
  #
174
+ # @option options [Array<String>] :auth_scheme_preference
175
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
176
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
177
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
178
+ #
159
179
  # @option options [Boolean] :client_side_monitoring (false)
160
180
  # When `true`, client-side metrics will be collected for all API requests from
161
181
  # this client.
@@ -189,13 +209,22 @@ module Aws::STS
189
209
  # accepted modes and the configuration defaults that are included.
190
210
  #
191
211
  # @option options [Boolean] :disable_host_prefix_injection (false)
192
- # Set to true to disable SDK automatically adding host prefix
193
- # to default service endpoint when available.
212
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
213
+ #
214
+ # @option options [Boolean] :disable_request_compression (false)
215
+ # When set to 'true' the request body will not be compressed
216
+ # for supported operations.
217
+ #
218
+ # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
219
+ # Normally you should not configure the `:endpoint` option
220
+ # directly. This is normally constructed from the `:region`
221
+ # option. Configuring `:endpoint` is normally reserved for
222
+ # connecting to test or custom endpoints. The endpoint should
223
+ # be a URI formatted like:
194
224
  #
195
- # @option options [String] :endpoint
196
- # The client endpoint is normally constructed from the `:region`
197
- # option. You should only configure an `:endpoint` when connecting
198
- # to test or custom endpoints. This should be a valid HTTP(S) URI.
225
+ # 'http://example.com'
226
+ # 'https://example.com'
227
+ # 'http://example.com:123'
199
228
  #
200
229
  # @option options [Integer] :endpoint_cache_max_entries (1000)
201
230
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -212,6 +241,10 @@ module Aws::STS
212
241
  # @option options [Boolean] :endpoint_discovery (false)
213
242
  # When set to `true`, endpoint discovery will be enabled for operations when available.
214
243
  #
244
+ # @option options [Boolean] :ignore_configured_endpoint_urls
245
+ # Setting to true disables use of endpoint URLs provided via environment
246
+ # variables and the shared configuration file.
247
+ #
215
248
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
216
249
  # The log formatter.
217
250
  #
@@ -229,8 +262,36 @@ module Aws::STS
229
262
  # 4 times. Used in `standard` and `adaptive` retry modes.
230
263
  #
231
264
  # @option options [String] :profile ("default")
232
- # Used when loading credentials from the shared credentials file
233
- # at HOME/.aws/credentials. When not specified, 'default' is used.
265
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
266
+ # When not specified, 'default' is used.
267
+ #
268
+ # @option options [String] :request_checksum_calculation ("when_supported")
269
+ # Determines when a checksum will be calculated for request payloads. Values are:
270
+ #
271
+ # * `when_supported` - (default) When set, a checksum will be
272
+ # calculated for all request payloads of operations modeled with the
273
+ # `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
274
+ # `requestAlgorithmMember` is modeled.
275
+ # * `when_required` - When set, a checksum will only be calculated for
276
+ # request payloads of operations modeled with the `httpChecksum` trait where
277
+ # `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
278
+ # is modeled and supplied.
279
+ #
280
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
281
+ # The minimum size in bytes that triggers compression for request
282
+ # bodies. The value must be non-negative integer value between 0
283
+ # and 10485780 bytes inclusive.
284
+ #
285
+ # @option options [String] :response_checksum_validation ("when_supported")
286
+ # Determines when checksum validation will be performed on response payloads. Values are:
287
+ #
288
+ # * `when_supported` - (default) When set, checksum validation is performed on all
289
+ # response payloads of operations modeled with the `httpChecksum` trait where
290
+ # `responseAlgorithms` is modeled, except when no modeled checksum algorithms
291
+ # are supported.
292
+ # * `when_required` - When set, checksum validation is not performed on
293
+ # response payloads of operations unless the checksum algorithm is supported and
294
+ # the `requestValidationModeMember` member is set to `ENABLED`.
234
295
  #
235
296
  # @option options [Proc] :retry_backoff
236
297
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
@@ -276,11 +337,25 @@ module Aws::STS
276
337
  # throttling. This is a provisional mode that may change behavior
277
338
  # in the future.
278
339
  #
340
+ # @option options [String] :sdk_ua_app_id
341
+ # A unique and opaque application ID that is appended to the
342
+ # User-Agent header as app/sdk_ua_app_id. It should have a
343
+ # maximum length of 50. This variable is sourced from environment
344
+ # variable AWS_SDK_UA_APP_ID or the shared config profile attribute sdk_ua_app_id.
279
345
  #
280
346
  # @option options [String] :secret_access_key
281
347
  #
282
348
  # @option options [String] :session_token
283
349
  #
350
+ # @option options [Array] :sigv4a_signing_region_set
351
+ # A list of regions that should be signed with SigV4a signing. When
352
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
353
+ # in the following locations:
354
+ #
355
+ # * `Aws.config[:sigv4a_signing_region_set]`
356
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
357
+ # * `~/.aws/config`
358
+ #
284
359
  # @option options [String] :sts_regional_endpoints ("regional")
285
360
  # Passing in 'regional' to enable regional endpoint for STS for all supported
286
361
  # regions (except 'aws-global'). Using 'legacy' mode will force all legacy
@@ -295,9 +370,19 @@ module Aws::STS
295
370
  # ** Please note ** When response stubbing is enabled, no HTTP
296
371
  # requests are made, and retries are disabled.
297
372
  #
373
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
374
+ # Allows you to provide a telemetry provider, which is used to
375
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
376
+ # will not record or emit any telemetry data. The SDK supports the
377
+ # following telemetry providers:
378
+ #
379
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
380
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
381
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
382
+ #
298
383
  # @option options [Aws::TokenProvider] :token_provider
299
- # A Bearer Token Provider. This can be an instance of any one of the
300
- # following classes:
384
+ # Your Bearer token used for authentication. This can be any class that includes and implements
385
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
301
386
  #
302
387
  # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
303
388
  # tokens.
@@ -322,52 +407,75 @@ module Aws::STS
322
407
  # sending the request.
323
408
  #
324
409
  # @option options [Aws::STS::EndpointProvider] :endpoint_provider
325
- # 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`
326
- #
327
- # @option options [URI::HTTP,String] :http_proxy A proxy to send
328
- # requests through. Formatted like 'http://proxy.com:123'.
329
- #
330
- # @option options [Float] :http_open_timeout (15) The number of
331
- # seconds to wait when opening a HTTP session before raising a
332
- # `Timeout::Error`.
333
- #
334
- # @option options [Float] :http_read_timeout (60) The default
335
- # number of seconds to wait for response data. This value can
336
- # safely be set per-request on the session.
337
- #
338
- # @option options [Float] :http_idle_timeout (5) The number of
339
- # seconds a connection is allowed to sit idle before it is
340
- # considered stale. Stale connections are closed and removed
341
- # from the pool before making a request.
342
- #
343
- # @option options [Float] :http_continue_timeout (1) The number of
344
- # seconds to wait for a 100-continue response before sending the
345
- # request body. This option has no effect unless the request has
346
- # "Expect" header set to "100-continue". Defaults to `nil` which
347
- # disables this behaviour. This value can safely be set per
348
- # request on the session.
410
+ # The endpoint provider used to resolve endpoints. Any object that responds to
411
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
412
+ # `Aws::STS::EndpointParameters`.
413
+ #
414
+ # @option options [Float] :http_continue_timeout (1)
415
+ # The number of seconds to wait for a 100-continue response before sending the
416
+ # request body. This option has no effect unless the request has "Expect"
417
+ # header set to "100-continue". Defaults to `nil` which disables this
418
+ # behaviour. This value can safely be set per request on the session.
419
+ #
420
+ # @option options [Float] :http_idle_timeout (5)
421
+ # The number of seconds a connection is allowed to sit idle before it
422
+ # is considered stale. Stale connections are closed and removed from the
423
+ # pool before making a request.
424
+ #
425
+ # @option options [Float] :http_open_timeout (15)
426
+ # The default number of seconds to wait for response data.
427
+ # This value can safely be set per-request on the session.
428
+ #
429
+ # @option options [URI::HTTP,String] :http_proxy
430
+ # A proxy to send requests through. Formatted like 'http://proxy.com:123'.
431
+ #
432
+ # @option options [Float] :http_read_timeout (60)
433
+ # The default number of seconds to wait for response data.
434
+ # This value can safely be set per-request on the session.
435
+ #
436
+ # @option options [Boolean] :http_wire_trace (false)
437
+ # When `true`, HTTP debug output will be sent to the `:logger`.
438
+ #
439
+ # @option options [Proc] :on_chunk_received
440
+ # When a Proc object is provided, it will be used as callback when each chunk
441
+ # of the response body is received. It provides three arguments: the chunk,
442
+ # the number of bytes received, and the total number of
443
+ # bytes in the response (or nil if the server did not send a `content-length`).
444
+ #
445
+ # @option options [Proc] :on_chunk_sent
446
+ # When a Proc object is provided, it will be used as callback when each chunk
447
+ # of the request body is sent. It provides three arguments: the chunk,
448
+ # the number of bytes read from the body, and the total number of
449
+ # bytes in the body.
450
+ #
451
+ # @option options [Boolean] :raise_response_errors (true)
452
+ # When `true`, response errors are raised.
453
+ #
454
+ # @option options [String] :ssl_ca_bundle
455
+ # Full path to the SSL certificate authority bundle file that should be used when
456
+ # verifying peer certificates. If you do not pass `:ssl_ca_bundle` or
457
+ # `:ssl_ca_directory` the the system default will be used if available.
458
+ #
459
+ # @option options [String] :ssl_ca_directory
460
+ # Full path of the directory that contains the unbundled SSL certificate
461
+ # authority files for verifying peer certificates. If you do
462
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the system
463
+ # default will be used if available.
349
464
  #
350
- # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
351
- # in seconds.
465
+ # @option options [String] :ssl_ca_store
466
+ # Sets the X509::Store to verify peer certificate.
352
467
  #
353
- # @option options [Boolean] :http_wire_trace (false) When `true`,
354
- # HTTP debug output will be sent to the `:logger`.
468
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
469
+ # Sets a client certificate when creating http connections.
355
470
  #
356
- # @option options [Boolean] :ssl_verify_peer (true) When `true`,
357
- # SSL peer certificates are verified when establishing a
358
- # connection.
471
+ # @option options [OpenSSL::PKey] :ssl_key
472
+ # Sets a client key when creating http connections.
359
473
  #
360
- # @option options [String] :ssl_ca_bundle Full path to the SSL
361
- # certificate authority bundle file that should be used when
362
- # verifying peer certificates. If you do not pass
363
- # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
364
- # will be used if available.
474
+ # @option options [Float] :ssl_timeout
475
+ # Sets the SSL timeout in seconds
365
476
  #
366
- # @option options [String] :ssl_ca_directory Full path of the
367
- # directory that contains the unbundled SSL certificate
368
- # authority files for verifying peer certificates. If you do
369
- # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
370
- # system default will be used if available.
477
+ # @option options [Boolean] :ssl_verify_peer (true)
478
+ # When `true`, SSL peer certificates are verified when establishing a connection.
371
479
  #
372
480
  def initialize(*args)
373
481
  super
@@ -381,8 +489,8 @@ module Aws::STS
381
489
  # token. Typically, you use `AssumeRole` within your account or for
382
490
  # cross-account access. For a comparison of `AssumeRole` with other API
383
491
  # operations that produce temporary credentials, see [Requesting
384
- # Temporary Security Credentials][1] and [Comparing the Amazon Web
385
- # Services STS API operations][2] in the *IAM User Guide*.
492
+ # Temporary Security Credentials][1] and [Compare STS credentials][2] in
493
+ # the *IAM User Guide*.
386
494
  #
387
495
  # **Permissions**
388
496
  #
@@ -391,9 +499,9 @@ module Aws::STS
391
499
  # following exception: You cannot call the Amazon Web Services STS
392
500
  # `GetFederationToken` or `GetSessionToken` API operations.
393
501
  #
394
- # (Optional) You can pass inline or managed [session policies][3] to
395
- # this operation. You can pass a single JSON policy document to use as
396
- # an inline session policy. You can also specify up to 10 managed policy
502
+ # (Optional) You can pass inline or managed session policies to this
503
+ # operation. You can pass a single JSON policy document to use as an
504
+ # inline session policy. You can also specify up to 10 managed policy
397
505
  # Amazon Resource Names (ARNs) to use as managed session policies. The
398
506
  # plaintext that you use for both inline and managed session policies
399
507
  # can't exceed 2,048 characters. Passing policies to this operation
@@ -406,10 +514,11 @@ module Aws::STS
406
514
  # identity-based policy of the role that is being assumed. For more
407
515
  # information, see [Session Policies][3] in the *IAM User Guide*.
408
516
  #
409
- # When you create a role, you create two policies: A role trust policy
410
- # that specifies *who* can assume the role and a permissions policy that
411
- # specifies *what* can be done with the role. You specify the trusted
412
- # principal who is allowed to assume the role in the role trust policy.
517
+ # When you create a role, you create two policies: a role trust policy
518
+ # that specifies *who* can assume the role, and a permissions policy
519
+ # that specifies *what* can be done with the role. You specify the
520
+ # trusted principal that is allowed to assume the role in the role trust
521
+ # policy.
413
522
  #
414
523
  # To assume a role from a different account, your Amazon Web Services
415
524
  # account must be trusted by the role. The trust relationship is defined
@@ -418,10 +527,9 @@ module Aws::STS
418
527
  # users in the account.
419
528
  #
420
529
  # A user who wants to access a role in a different account must also
421
- # have permissions that are delegated from the user account
422
- # administrator. The administrator must attach a policy that allows the
423
- # user to call `AssumeRole` for the ARN of the role in the other
424
- # account.
530
+ # have permissions that are delegated from the account administrator.
531
+ # The administrator must attach a policy that allows the user to call
532
+ # `AssumeRole` for the ARN of the role in the other account.
425
533
  #
426
534
  # To allow a user to assume a role in the same account, you can do
427
535
  # either of the following:
@@ -466,7 +574,7 @@ module Aws::STS
466
574
  # denied. The condition in a trust policy that tests for MFA
467
575
  # authentication might look like the following example.
468
576
  #
469
- # `"Condition": \{"Bool": \{"aws:MultiFactorAuthPresent": true\}\}`
577
+ # `"Condition": {"Bool": {"aws:MultiFactorAuthPresent": true}}`
470
578
  #
471
579
  # For more information, see [Configuring MFA-Protected API Access][8] in
472
580
  # the *IAM User Guide* guide.
@@ -479,7 +587,7 @@ module Aws::STS
479
587
  #
480
588
  #
481
589
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
482
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
590
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
483
591
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
484
592
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html
485
593
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
@@ -502,11 +610,22 @@ module Aws::STS
502
610
  # credentials will expose the role session name to the external account
503
611
  # in their CloudTrail logs.
504
612
  #
613
+ # For security purposes, administrators can view this field in
614
+ # [CloudTrail logs][1] to help identify who performed an action in
615
+ # Amazon Web Services. Your administrator might require that you specify
616
+ # your user name as the session name when you assume the role. For more
617
+ # information, see [ `sts:RoleSessionName` ][2].
618
+ #
505
619
  # The regex used to validate this parameter is a string of characters
506
620
  # consisting of upper- and lower-case alphanumeric characters with no
507
621
  # spaces. You can also include underscores or any of the following
508
622
  # characters: =,.@-
509
623
  #
624
+ #
625
+ #
626
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html#cloudtrail-integration_signin-tempcreds
627
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname
628
+ #
510
629
  # @option params [Array<Types::PolicyDescriptorType>] :policy_arns
511
630
  # The Amazon Resource Names (ARNs) of the IAM managed policies that you
512
631
  # want to use as managed session policies. The policies must exist in
@@ -572,6 +691,9 @@ module Aws::STS
572
691
  #
573
692
  # </note>
574
693
  #
694
+ # For more information about role session permissions, see [Session
695
+ # policies][1].
696
+ #
575
697
  #
576
698
  #
577
699
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
@@ -594,9 +716,8 @@ module Aws::STS
594
716
  # depending on the maximum session duration setting for your role.
595
717
  # However, if you assume a role using role chaining and provide a
596
718
  # `DurationSeconds` parameter value greater than one hour, the operation
597
- # fails. To learn how to view the maximum value for your role, see [View
598
- # the Maximum Session Duration Setting for a Role][1] in the *IAM User
599
- # Guide*.
719
+ # fails. To learn how to view the maximum value for your role, see
720
+ # [Update the maximum session duration for a role][1].
600
721
  #
601
722
  # By default, the value is set to `3600` seconds.
602
723
  #
@@ -612,7 +733,7 @@ module Aws::STS
612
733
  #
613
734
  #
614
735
  #
615
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
736
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html#id_roles_update-session-duration
616
737
  # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
617
738
  #
618
739
  # @option params [Array<Types::Tag>] :tags
@@ -665,9 +786,8 @@ module Aws::STS
665
786
  # passes to subsequent sessions in a role chain. For more information,
666
787
  # see [Chaining Roles with Session Tags][1] in the *IAM User Guide*.
667
788
  #
668
- # This parameter is optional. When you set session tags as transitive,
669
- # the session policy and session tags packed binary limit is not
670
- # affected.
789
+ # This parameter is optional. The transitive status of a session tag
790
+ # does not impact its packed binary size.
671
791
  #
672
792
  # If you choose not to specify a transitive tag key, then no tags are
673
793
  # passed from this session to any subsequent sessions.
@@ -725,26 +845,40 @@ module Aws::STS
725
845
  #
726
846
  # @option params [String] :source_identity
727
847
  # The source identity specified by the principal that is calling the
728
- # `AssumeRole` operation.
848
+ # `AssumeRole` operation. The source identity value persists across
849
+ # [chained role][1] sessions.
729
850
  #
730
851
  # You can require users to specify a source identity when they assume a
731
- # role. You do this by using the `sts:SourceIdentity` condition key in a
732
- # role trust policy. You can use source identity information in
852
+ # role. You do this by using the [ `sts:SourceIdentity` ][2] condition
853
+ # key in a role trust policy. You can use source identity information in
733
854
  # CloudTrail logs to determine who took actions with a role. You can use
734
855
  # the `aws:SourceIdentity` condition key to further control access to
735
856
  # Amazon Web Services resources based on the value of source identity.
736
857
  # For more information about using source identity, see [Monitor and
737
- # control actions taken with assumed roles][1] in the *IAM User Guide*.
858
+ # control actions taken with assumed roles][3] in the *IAM User Guide*.
738
859
  #
739
860
  # The regex used to validate this parameter is a string of characters
740
861
  # consisting of upper- and lower-case alphanumeric characters with no
741
862
  # spaces. You can also include underscores or any of the following
742
- # characters: =,.@-. You cannot use a value that begins with the text
863
+ # characters: +=,.@-. You cannot use a value that begins with the text
743
864
  # `aws:`. This prefix is reserved for Amazon Web Services internal use.
744
865
  #
745
866
  #
746
867
  #
747
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
868
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-role-chaining
869
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceidentity
870
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_monitor.html
871
+ #
872
+ # @option params [Array<Types::ProvidedContext>] :provided_contexts
873
+ # A list of previously acquired trusted context assertions in the format
874
+ # of a JSON array. The trusted context assertion is signed and encrypted
875
+ # by Amazon Web Services STS.
876
+ #
877
+ # The following is an example of a `ProvidedContext` value that includes
878
+ # a single trusted context assertion and the ARN of the context provider
879
+ # from which the trusted context assertion was generated.
880
+ #
881
+ # `[{"ProviderArn":"arn:aws:iam::aws:contextProvider/IdentityCenter","ContextAssertion":"trusted-context-assertion"}]`
748
882
  #
749
883
  # @return [Types::AssumeRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
750
884
  #
@@ -806,7 +940,7 @@ module Aws::STS
806
940
  # arn: "arnType",
807
941
  # },
808
942
  # ],
809
- # policy: "sessionPolicyDocumentType",
943
+ # policy: "unrestrictedSessionPolicyDocumentType",
810
944
  # duration_seconds: 1,
811
945
  # tags: [
812
946
  # {
@@ -819,6 +953,12 @@ module Aws::STS
819
953
  # serial_number: "serialNumberType",
820
954
  # token_code: "tokenCodeType",
821
955
  # source_identity: "sourceIdentityType",
956
+ # provided_contexts: [
957
+ # {
958
+ # provider_arn: "arnType",
959
+ # context_assertion: "contextAssertionType",
960
+ # },
961
+ # ],
822
962
  # })
823
963
  #
824
964
  # @example Response structure
@@ -848,8 +988,8 @@ module Aws::STS
848
988
  # user-specific credentials or configuration. For a comparison of
849
989
  # `AssumeRoleWithSAML` with the other API operations that produce
850
990
  # temporary credentials, see [Requesting Temporary Security
851
- # Credentials][1] and [Comparing the Amazon Web Services STS API
852
- # operations][2] in the *IAM User Guide*.
991
+ # Credentials][1] and [Compare STS credentials][2] in the *IAM User
992
+ # Guide*.
853
993
  #
854
994
  # The temporary security credentials returned by this operation consist
855
995
  # of an access key ID, a secret access key, and a security token.
@@ -979,7 +1119,7 @@ module Aws::STS
979
1119
  #
980
1120
  #
981
1121
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
982
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1122
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
983
1123
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
984
1124
  # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
985
1125
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-role-chaining
@@ -1067,6 +1207,9 @@ module Aws::STS
1067
1207
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
1068
1208
  # characters.
1069
1209
  #
1210
+ # For more information about role session permissions, see [Session
1211
+ # policies][1].
1212
+ #
1070
1213
  # <note markdown="1"> An Amazon Web Services conversion compresses the passed inline session
1071
1214
  # policy, managed policy ARNs, and session tags into a packed binary
1072
1215
  # format that has a separate limit. Your request can fail for this limit
@@ -1206,10 +1349,8 @@ module Aws::STS
1206
1349
  # the user with a consistent identity throughout the lifetime of an
1207
1350
  # application.
1208
1351
  #
1209
- # To learn more about Amazon Cognito, see [Amazon Cognito Overview][4]
1210
- # in *Amazon Web Services SDK for Android Developer Guide* and [Amazon
1211
- # Cognito Overview][5] in the *Amazon Web Services SDK for iOS Developer
1212
- # Guide*.
1352
+ # To learn more about Amazon Cognito, see [Amazon Cognito identity
1353
+ # pools][1] in *Amazon Cognito Developer Guide*.
1213
1354
  #
1214
1355
  # </note>
1215
1356
  #
@@ -1223,8 +1364,8 @@ module Aws::STS
1223
1364
  # a token from the web identity provider. For a comparison of
1224
1365
  # `AssumeRoleWithWebIdentity` with the other API operations that produce
1225
1366
  # temporary credentials, see [Requesting Temporary Security
1226
- # Credentials][6] and [Comparing the Amazon Web Services STS API
1227
- # operations][7] in the *IAM User Guide*.
1367
+ # Credentials][4] and [Compare STS credentials][5] in the *IAM User
1368
+ # Guide*.
1228
1369
  #
1229
1370
  # The temporary security credentials returned by this API consist of an
1230
1371
  # access key ID, a secret access key, and a security token. Applications
@@ -1239,12 +1380,12 @@ module Aws::STS
1239
1380
  # your session. You can provide a value from 900 seconds (15 minutes) up
1240
1381
  # to the maximum session duration setting for the role. This setting can
1241
1382
  # have a value from 1 hour to 12 hours. To learn how to view the maximum
1242
- # value for your role, see [View the Maximum Session Duration Setting
1243
- # for a Role][8] in the *IAM User Guide*. The maximum session duration
1244
- # limit applies when you use the `AssumeRole*` API operations or the
1383
+ # value for your role, see [Update the maximum session duration for a
1384
+ # role ][6] in the *IAM User Guide*. The maximum session duration limit
1385
+ # applies when you use the `AssumeRole*` API operations or the
1245
1386
  # `assume-role*` CLI commands. However the limit does not apply when you
1246
1387
  # use those operations to create a console URL. For more information,
1247
- # see [Using IAM Roles][9] in the *IAM User Guide*.
1388
+ # see [Using IAM Roles][7] in the *IAM User Guide*.
1248
1389
  #
1249
1390
  # **Permissions**
1250
1391
  #
@@ -1253,7 +1394,7 @@ module Aws::STS
1253
1394
  # Amazon Web Services service with the following exception: you cannot
1254
1395
  # call the STS `GetFederationToken` or `GetSessionToken` API operations.
1255
1396
  #
1256
- # (Optional) You can pass inline or managed [session policies][10] to
1397
+ # (Optional) You can pass inline or managed [session policies][8] to
1257
1398
  # this operation. You can pass a single JSON policy document to use as
1258
1399
  # an inline session policy. You can also specify up to 10 managed policy
1259
1400
  # Amazon Resource Names (ARNs) to use as managed session policies. The
@@ -1266,19 +1407,19 @@ module Aws::STS
1266
1407
  # resources in the account that owns the role. You cannot use session
1267
1408
  # policies to grant more permissions than those allowed by the
1268
1409
  # identity-based policy of the role that is being assumed. For more
1269
- # information, see [Session Policies][10] in the *IAM User Guide*.
1410
+ # information, see [Session Policies][8] in the *IAM User Guide*.
1270
1411
  #
1271
1412
  # **Tags**
1272
1413
  #
1273
1414
  # (Optional) You can configure your IdP to pass attributes into your web
1274
1415
  # identity token as session tags. Each session tag consists of a key
1275
1416
  # name and an associated value. For more information about session tags,
1276
- # see [Passing Session Tags in STS][11] in the *IAM User Guide*.
1417
+ # see [Passing Session Tags in STS][9] in the *IAM User Guide*.
1277
1418
  #
1278
1419
  # You can pass up to 50 session tags. The plaintext session tag keys
1279
1420
  # can’t exceed 128 characters and the values can’t exceed 256
1280
1421
  # characters. For these and additional limits, see [IAM and STS
1281
- # Character Limits][12] in the *IAM User Guide*.
1422
+ # Character Limits][10] in the *IAM User Guide*.
1282
1423
  #
1283
1424
  # <note markdown="1"> An Amazon Web Services conversion compresses the passed inline session
1284
1425
  # policy, managed policy ARNs, and session tags into a packed binary
@@ -1296,12 +1437,12 @@ module Aws::STS
1296
1437
  # An administrator must grant you the permissions necessary to pass
1297
1438
  # session tags. The administrator can also create granular permissions
1298
1439
  # to allow you to pass only specific session tags. For more information,
1299
- # see [Tutorial: Using Tags for Attribute-Based Access Control][13] in
1440
+ # see [Tutorial: Using Tags for Attribute-Based Access Control][11] in
1300
1441
  # the *IAM User Guide*.
1301
1442
  #
1302
1443
  # You can set the session tags as transitive. Transitive tags persist
1303
1444
  # during role chaining. For more information, see [Chaining Roles with
1304
- # Session Tags][14] in the *IAM User Guide*.
1445
+ # Session Tags][12] in the *IAM User Guide*.
1305
1446
  #
1306
1447
  # **Identities**
1307
1448
  #
@@ -1313,22 +1454,17 @@ module Aws::STS
1313
1454
  # specified in the role's trust policy.
1314
1455
  #
1315
1456
  # Calling `AssumeRoleWithWebIdentity` can result in an entry in your
1316
- # CloudTrail logs. The entry includes the [Subject][15] of the provided
1457
+ # CloudTrail logs. The entry includes the [Subject][13] of the provided
1317
1458
  # web identity token. We recommend that you avoid using any personally
1318
1459
  # identifiable information (PII) in this field. For example, you could
1319
1460
  # instead use a GUID or a pairwise identifier, as [suggested in the OIDC
1320
- # specification][16].
1461
+ # specification][14].
1321
1462
  #
1322
- # For more information about how to use web identity federation and the
1463
+ # For more information about how to use OIDC federation and the
1323
1464
  # `AssumeRoleWithWebIdentity` API, see the following resources:
1324
1465
  #
1325
- # * [Using Web Identity Federation API Operations for Mobile Apps][17]
1326
- # and [Federation Through a Web-based Identity Provider][18].
1327
- #
1328
- # * [ Web Identity Federation Playground][19]. Walk through the process
1329
- # of authenticating through Login with Amazon, Facebook, or Google,
1330
- # getting temporary security credentials, and then using those
1331
- # credentials to make a request to Amazon Web Services.
1466
+ # * [Using Web Identity Federation API Operations for Mobile Apps][15]
1467
+ # and [Federation Through a Web-based Identity Provider][16].
1332
1468
  #
1333
1469
  # * [Amazon Web Services SDK for iOS Developer Guide][2] and [Amazon Web
1334
1470
  # Services SDK for Android Developer Guide][3]. These toolkits contain
@@ -1336,37 +1472,47 @@ module Aws::STS
1336
1472
  # toolkits then show how to use the information from these providers
1337
1473
  # to get and use temporary security credentials.
1338
1474
  #
1339
- # * [Web Identity Federation with Mobile Applications][20]. This article
1340
- # discusses web identity federation and shows an example of how to use
1341
- # web identity federation to get access to content in Amazon S3.
1342
- #
1343
1475
  #
1344
1476
  #
1345
1477
  # [1]: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
1346
1478
  # [2]: http://aws.amazon.com/sdkforios/
1347
1479
  # [3]: http://aws.amazon.com/sdkforandroid/
1348
- # [4]: https://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840
1349
- # [5]: https://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664
1350
- # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1351
- # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1352
- # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session
1353
- # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1354
- # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1355
- # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1356
- # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1357
- # [13]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
1358
- # [14]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
1359
- # [15]: http://openid.net/specs/openid-connect-core-1_0.html#Claims
1360
- # [16]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes
1361
- # [17]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html
1362
- # [18]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1363
- # [19]: https://aws.amazon.com/blogs/aws/the-aws-web-identity-federation-playground/
1364
- # [20]: http://aws.amazon.com/articles/web-identity-federation-with-mobile-applications
1480
+ # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1481
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
1482
+ # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-settings.html#id_roles_update-session-duration
1483
+ # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1484
+ # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1485
+ # [9]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
1486
+ # [10]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_iam-limits.html#reference_iam-limits-entity-length
1487
+ # [11]: https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html
1488
+ # [12]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html#id_session-tags_role-chaining
1489
+ # [13]: http://openid.net/specs/openid-connect-core-1_0.html#Claims
1490
+ # [14]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes
1491
+ # [15]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html
1492
+ # [16]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1365
1493
  #
1366
1494
  # @option params [required, String] :role_arn
1367
1495
  # The Amazon Resource Name (ARN) of the role that the caller is
1368
1496
  # assuming.
1369
1497
  #
1498
+ # <note markdown="1"> Additional considerations apply to Amazon Cognito identity pools that
1499
+ # assume [cross-account IAM roles][1]. The trust policies of these roles
1500
+ # must accept the `cognito-identity.amazonaws.com` service principal and
1501
+ # must contain the `cognito-identity.amazonaws.com:aud` condition key to
1502
+ # restrict role assumption to users from your intended identity pools. A
1503
+ # policy that trusts Amazon Cognito identity pools without this
1504
+ # condition creates a risk that a user from an unintended identity pool
1505
+ # can assume the role. For more information, see [ Trust policies for
1506
+ # IAM roles in Basic (Classic) authentication ][2] in the *Amazon
1507
+ # Cognito Developer Guide*.
1508
+ #
1509
+ # </note>
1510
+ #
1511
+ #
1512
+ #
1513
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html
1514
+ # [2]: https://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html#trust-policies
1515
+ #
1370
1516
  # @option params [required, String] :role_session_name
1371
1517
  # An identifier for the assumed role session. Typically, you pass the
1372
1518
  # name or identifier that is associated with the user who is using your
@@ -1375,17 +1521,31 @@ module Aws::STS
1375
1521
  # is included as part of the ARN and assumed role ID in the
1376
1522
  # `AssumedRoleUser` response element.
1377
1523
  #
1524
+ # For security purposes, administrators can view this field in
1525
+ # [CloudTrail logs][1] to help identify who performed an action in
1526
+ # Amazon Web Services. Your administrator might require that you specify
1527
+ # your user name as the session name when you assume the role. For more
1528
+ # information, see [ `sts:RoleSessionName` ][2].
1529
+ #
1378
1530
  # The regex used to validate this parameter is a string of characters
1379
1531
  # consisting of upper- and lower-case alphanumeric characters with no
1380
1532
  # spaces. You can also include underscores or any of the following
1381
1533
  # characters: =,.@-
1382
1534
  #
1535
+ #
1536
+ #
1537
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-integration.html#cloudtrail-integration_signin-tempcreds
1538
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_rolesessionname
1539
+ #
1383
1540
  # @option params [required, String] :web_identity_token
1384
1541
  # The OAuth 2.0 access token or OpenID Connect ID token that is provided
1385
1542
  # by the identity provider. Your application must get this token by
1386
1543
  # authenticating the user who is using your application with a web
1387
1544
  # identity provider before the application makes an
1388
- # `AssumeRoleWithWebIdentity` call.
1545
+ # `AssumeRoleWithWebIdentity` call. Timestamps in the token must be
1546
+ # formatted as either an integer or a long integer. Tokens must be
1547
+ # signed using either RSA keys (RS256, RS384, or RS512) or ECDSA keys
1548
+ # (ES256, ES384, or ES512).
1389
1549
  #
1390
1550
  # @option params [String] :provider_id
1391
1551
  # The fully qualified host component of the domain name of the OAuth 2.0
@@ -1454,6 +1614,9 @@ module Aws::STS
1454
1614
  # the tab (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
1455
1615
  # characters.
1456
1616
  #
1617
+ # For more information about role session permissions, see [Session
1618
+ # policies][1].
1619
+ #
1457
1620
  # <note markdown="1"> An Amazon Web Services conversion compresses the passed inline session
1458
1621
  # policy, managed policy ARNs, and session tags into a packed binary
1459
1622
  # format that has a separate limit. Your request can fail for this limit
@@ -1574,6 +1737,121 @@ module Aws::STS
1574
1737
  req.send_request(options)
1575
1738
  end
1576
1739
 
1740
+ # Returns a set of short term credentials you can use to perform
1741
+ # privileged tasks on a member account in your organization.
1742
+ #
1743
+ # Before you can launch a privileged session, you must have centralized
1744
+ # root access in your organization. For steps to enable this feature,
1745
+ # see [Centralize root access for member accounts][1] in the *IAM User
1746
+ # Guide*.
1747
+ #
1748
+ # <note markdown="1"> The STS global endpoint is not supported for AssumeRoot. You must send
1749
+ # this request to a Regional STS endpoint. For more information, see
1750
+ # [Endpoints][2].
1751
+ #
1752
+ # </note>
1753
+ #
1754
+ # You can track AssumeRoot in CloudTrail logs to determine what actions
1755
+ # were performed in a session. For more information, see [Track
1756
+ # privileged tasks in CloudTrail][3] in the *IAM User Guide*.
1757
+ #
1758
+ #
1759
+ #
1760
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-enable-root-access.html
1761
+ # [2]: https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html#sts-endpoints
1762
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/cloudtrail-track-privileged-tasks.html
1763
+ #
1764
+ # @option params [required, String] :target_principal
1765
+ # The member account principal ARN or account ID.
1766
+ #
1767
+ # @option params [required, Types::PolicyDescriptorType] :task_policy_arn
1768
+ # The identity based policy that scopes the session to the privileged
1769
+ # tasks that can be performed. You can use one of following Amazon Web
1770
+ # Services managed policies to scope root session actions.
1771
+ #
1772
+ # * [IAMAuditRootUserCredentials][1]
1773
+ #
1774
+ # * [IAMCreateRootUserPassword][2]
1775
+ #
1776
+ # * [IAMDeleteRootUserCredentials][3]
1777
+ #
1778
+ # * [S3UnlockBucketPolicy][4]
1779
+ #
1780
+ # * [SQSUnlockQueuePolicy][5]
1781
+ #
1782
+ #
1783
+ #
1784
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMAuditRootUserCredentials
1785
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMCreateRootUserPassword
1786
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-IAMDeleteRootUserCredentials
1787
+ # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-S3UnlockBucketPolicy
1788
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/security-iam-awsmanpol.html#security-iam-awsmanpol-SQSUnlockQueuePolicy
1789
+ #
1790
+ # @option params [Integer] :duration_seconds
1791
+ # The duration, in seconds, of the privileged session. The value can
1792
+ # range from 0 seconds up to the maximum session duration of 900 seconds
1793
+ # (15 minutes). If you specify a value higher than this setting, the
1794
+ # operation fails.
1795
+ #
1796
+ # By default, the value is set to `900` seconds.
1797
+ #
1798
+ # @return [Types::AssumeRootResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1799
+ #
1800
+ # * {Types::AssumeRootResponse#credentials #credentials} => Types::Credentials
1801
+ # * {Types::AssumeRootResponse#source_identity #source_identity} => String
1802
+ #
1803
+ #
1804
+ # @example Example: To launch a privileged session
1805
+ #
1806
+ # # The following command retrieves a set of short-term credentials you can use to unlock an S3 bucket for a member account
1807
+ # # by removing the bucket policy.
1808
+ #
1809
+ # resp = client.assume_root({
1810
+ # duration_seconds: 900,
1811
+ # target_principal: "111122223333",
1812
+ # task_policy_arn: {
1813
+ # arn: "arn:aws:iam::aws:policy/root-task/S3UnlockBucketPolicy",
1814
+ # },
1815
+ # })
1816
+ #
1817
+ # resp.to_h outputs the following:
1818
+ # {
1819
+ # credentials: {
1820
+ # access_key_id: "ASIAJEXAMPLEXEG2JICEA",
1821
+ # expiration: Time.parse("2024-11-15T00:05:07Z"),
1822
+ # secret_access_key: "9drTJvcXLB89EXAMPLELB8923FB892xMFI",
1823
+ # session_token: "AQoXdzELDDY//////////wEaoAK1wvxJY12r2IrDFT2IvAzTCn3zHoZ7YNtpiQLF0MqZye/qwjzP2iEXAMPLEbw/m3hsj8VBTkPORGvr9jM5sgP+w9IZWZnU+LWhmg+a5fDi2oTGUYcdg9uexQ4mtCHIHfi4citgqZTgco40Yqr4lIlo4V2b2Dyauk0eYFNebHtYlFVgAUj+7Indz3LU0aTWk1WKIjHmmMCIoTkyYp/k7kUG7moeEYKSitwQIi6Gjn+nyzM+PtoA3685ixzv0R7i5rjQi0YE0lf1oeie3bDiNHncmzosRM6SFiPzSvp6h/32xQuZsjcypmwsPSDtTPYcs0+YN/8BRi2/IcrxSpnWEXAMPLEXSDFTAQAM6Dl9zR0tXoybnlrZIwMLlMi1Kcgo5OytwU=",
1824
+ # },
1825
+ # source_identity: "Alice",
1826
+ # }
1827
+ #
1828
+ # @example Request syntax with placeholder values
1829
+ #
1830
+ # resp = client.assume_root({
1831
+ # target_principal: "TargetPrincipalType", # required
1832
+ # task_policy_arn: { # required
1833
+ # arn: "arnType",
1834
+ # },
1835
+ # duration_seconds: 1,
1836
+ # })
1837
+ #
1838
+ # @example Response structure
1839
+ #
1840
+ # resp.credentials.access_key_id #=> String
1841
+ # resp.credentials.secret_access_key #=> String
1842
+ # resp.credentials.session_token #=> String
1843
+ # resp.credentials.expiration #=> Time
1844
+ # resp.source_identity #=> String
1845
+ #
1846
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoot AWS API Documentation
1847
+ #
1848
+ # @overload assume_root(params = {})
1849
+ # @param [Hash] params ({})
1850
+ def assume_root(params = {}, options = {})
1851
+ req = build_request(:assume_root, params)
1852
+ req.send_request(options)
1853
+ end
1854
+
1577
1855
  # Decodes additional information about the authorization status of a
1578
1856
  # request from an encoded message returned in response to an Amazon Web
1579
1857
  # Services request.
@@ -1720,11 +1998,11 @@ module Aws::STS
1720
1998
  # to call the operation.
1721
1999
  #
1722
2000
  # <note markdown="1"> No permissions are required to perform this operation. If an
1723
- # administrator adds a policy to your IAM user or role that explicitly
2001
+ # administrator attaches a policy to your identity that explicitly
1724
2002
  # denies access to the `sts:GetCallerIdentity` action, you can still
1725
2003
  # perform this operation. Permissions are not required because the same
1726
- # information is returned when an IAM user or role is denied access. To
1727
- # view an example response, see [I Am Not Authorized to Perform:
2004
+ # information is returned when access is denied. To view an example
2005
+ # response, see [I Am Not Authorized to Perform:
1728
2006
  # iam:DeleteVirtualMFADevice][1] in the *IAM User Guide*.
1729
2007
  #
1730
2008
  # </note>
@@ -1801,43 +2079,43 @@ module Aws::STS
1801
2079
  end
1802
2080
 
1803
2081
  # Returns a set of temporary security credentials (consisting of an
1804
- # access key ID, a secret access key, and a security token) for a
1805
- # federated user. A typical use is in a proxy application that gets
1806
- # temporary security credentials on behalf of distributed applications
1807
- # inside a corporate network. You must call the `GetFederationToken`
1808
- # operation using the long-term security credentials of an IAM user. As
1809
- # a result, this call is appropriate in contexts where those credentials
1810
- # can be safely stored, usually in a server-based application. For a
1811
- # comparison of `GetFederationToken` with the other API operations that
1812
- # produce temporary credentials, see [Requesting Temporary Security
1813
- # Credentials][1] and [Comparing the Amazon Web Services STS API
1814
- # operations][2] in the *IAM User Guide*.
2082
+ # access key ID, a secret access key, and a security token) for a user.
2083
+ # A typical use is in a proxy application that gets temporary security
2084
+ # credentials on behalf of distributed applications inside a corporate
2085
+ # network.
2086
+ #
2087
+ # You must call the `GetFederationToken` operation using the long-term
2088
+ # security credentials of an IAM user. As a result, this call is
2089
+ # appropriate in contexts where those credentials can be safeguarded,
2090
+ # usually in a server-based application. For a comparison of
2091
+ # `GetFederationToken` with the other API operations that produce
2092
+ # temporary credentials, see [Requesting Temporary Security
2093
+ # Credentials][1] and [Compare STS credentials][2] in the *IAM User
2094
+ # Guide*.
2095
+ #
2096
+ # Although it is possible to call `GetFederationToken` using the
2097
+ # security credentials of an Amazon Web Services account root user
2098
+ # rather than an IAM user that you create for the purpose of a proxy
2099
+ # application, we do not recommend it. For more information, see
2100
+ # [Safeguard your root user credentials and don't use them for everyday
2101
+ # tasks][3] in the *IAM User Guide*.
1815
2102
  #
1816
2103
  # <note markdown="1"> You can create a mobile-based or browser-based app that can
1817
2104
  # authenticate users using a web identity provider like Login with
1818
2105
  # Amazon, Facebook, Google, or an OpenID Connect-compatible identity
1819
- # provider. In this case, we recommend that you use [Amazon Cognito][3]
2106
+ # provider. In this case, we recommend that you use [Amazon Cognito][4]
1820
2107
  # or `AssumeRoleWithWebIdentity`. For more information, see [Federation
1821
- # Through a Web-based Identity Provider][4] in the *IAM User Guide*.
2108
+ # Through a Web-based Identity Provider][5] in the *IAM User Guide*.
1822
2109
  #
1823
2110
  # </note>
1824
2111
  #
1825
- # You can also call `GetFederationToken` using the security credentials
1826
- # of an Amazon Web Services account root user, but we do not recommend
1827
- # it. Instead, we recommend that you create an IAM user for the purpose
1828
- # of the proxy application. Then attach a policy to the IAM user that
1829
- # limits federated users to only the actions and resources that they
1830
- # need to access. For more information, see [IAM Best Practices][5] in
1831
- # the *IAM User Guide*.
1832
- #
1833
2112
  # **Session duration**
1834
2113
  #
1835
2114
  # The temporary credentials are valid for the specified duration, from
1836
2115
  # 900 seconds (15 minutes) up to a maximum of 129,600 seconds (36
1837
2116
  # hours). The default session duration is 43,200 seconds (12 hours).
1838
- # Temporary credentials obtained by using the Amazon Web Services
1839
- # account root user credentials have a maximum duration of 3,600 seconds
1840
- # (1 hour).
2117
+ # Temporary credentials obtained by using the root user credentials have
2118
+ # a maximum duration of 3,600 seconds (1 hour).
1841
2119
  #
1842
2120
  # **Permissions**
1843
2121
  #
@@ -1887,9 +2165,9 @@ module Aws::STS
1887
2165
  # <note markdown="1"> You can create a mobile-based or browser-based app that can
1888
2166
  # authenticate users using a web identity provider like Login with
1889
2167
  # Amazon, Facebook, Google, or an OpenID Connect-compatible identity
1890
- # provider. In this case, we recommend that you use [Amazon Cognito][3]
2168
+ # provider. In this case, we recommend that you use [Amazon Cognito][4]
1891
2169
  # or `AssumeRoleWithWebIdentity`. For more information, see [Federation
1892
- # Through a Web-based Identity Provider][4] in the *IAM User Guide*.
2170
+ # Through a Web-based Identity Provider][5] in the *IAM User Guide*.
1893
2171
  #
1894
2172
  # </note>
1895
2173
  #
@@ -1910,10 +2188,10 @@ module Aws::STS
1910
2188
  #
1911
2189
  #
1912
2190
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1913
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1914
- # [3]: http://aws.amazon.com/cognito/
1915
- # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1916
- # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
2191
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
2192
+ # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials
2193
+ # [4]: http://aws.amazon.com/cognito/
2194
+ # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1917
2195
  # [6]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session
1918
2196
  # [7]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken
1919
2197
  # [8]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_session-tags.html
@@ -2030,10 +2308,10 @@ module Aws::STS
2030
2308
  # The duration, in seconds, that the session should last. Acceptable
2031
2309
  # durations for federation sessions range from 900 seconds (15 minutes)
2032
2310
  # to 129,600 seconds (36 hours), with 43,200 seconds (12 hours) as the
2033
- # default. Sessions obtained using Amazon Web Services account root user
2034
- # credentials are restricted to a maximum of 3,600 seconds (one hour).
2035
- # If the specified duration is longer than one hour, the session
2036
- # obtained by using root user credentials defaults to one hour.
2311
+ # default. Sessions obtained using root user credentials are restricted
2312
+ # to a maximum of 3,600 seconds (one hour). If the specified duration is
2313
+ # longer than one hour, the session obtained by using root user
2314
+ # credentials defaults to one hour.
2037
2315
  #
2038
2316
  # @option params [Array<Types::Tag>] :tags
2039
2317
  # A list of session tags. Each session tag consists of a key name and an
@@ -2153,16 +2431,17 @@ module Aws::STS
2153
2431
  # secret access key, and a security token. Typically, you use
2154
2432
  # `GetSessionToken` if you want to use MFA to protect programmatic calls
2155
2433
  # to specific Amazon Web Services API operations like Amazon EC2
2156
- # `StopInstances`. MFA-enabled IAM users would need to call
2157
- # `GetSessionToken` and submit an MFA code that is associated with their
2158
- # MFA device. Using the temporary security credentials that are returned
2159
- # from the call, IAM users can then make programmatic calls to API
2160
- # operations that require MFA authentication. If you do not supply a
2161
- # correct MFA code, then the API returns an access denied error. For a
2162
- # comparison of `GetSessionToken` with the other API operations that
2163
- # produce temporary credentials, see [Requesting Temporary Security
2164
- # Credentials][1] and [Comparing the Amazon Web Services STS API
2165
- # operations][2] in the *IAM User Guide*.
2434
+ # `StopInstances`.
2435
+ #
2436
+ # MFA-enabled IAM users must call `GetSessionToken` and submit an MFA
2437
+ # code that is associated with their MFA device. Using the temporary
2438
+ # security credentials that the call returns, IAM users can then make
2439
+ # programmatic calls to API operations that require MFA authentication.
2440
+ # An incorrect MFA code causes the API to return an access denied error.
2441
+ # For a comparison of `GetSessionToken` with the other API operations
2442
+ # that produce temporary credentials, see [Requesting Temporary Security
2443
+ # Credentials][1] and [Compare STS credentials][2] in the *IAM User
2444
+ # Guide*.
2166
2445
  #
2167
2446
  # <note markdown="1"> No permissions are required for users to perform this operation. The
2168
2447
  # purpose of the `sts:GetSessionToken` operation is to authenticate the
@@ -2175,13 +2454,13 @@ module Aws::STS
2175
2454
  # **Session Duration**
2176
2455
  #
2177
2456
  # The `GetSessionToken` operation must be called by using the long-term
2178
- # Amazon Web Services security credentials of the Amazon Web Services
2179
- # account root user or an IAM user. Credentials that are created by IAM
2180
- # users are valid for the duration that you specify. This duration can
2181
- # range from 900 seconds (15 minutes) up to a maximum of 129,600 seconds
2182
- # (36 hours), with a default of 43,200 seconds (12 hours). Credentials
2183
- # based on account credentials can range from 900 seconds (15 minutes)
2184
- # up to 3,600 seconds (1 hour), with a default of 1 hour.
2457
+ # Amazon Web Services security credentials of an IAM user. Credentials
2458
+ # that are created by IAM users are valid for the duration that you
2459
+ # specify. This duration can range from 900 seconds (15 minutes) up to a
2460
+ # maximum of 129,600 seconds (36 hours), with a default of 43,200
2461
+ # seconds (12 hours). Credentials based on account credentials can range
2462
+ # from 900 seconds (15 minutes) up to 3,600 seconds (1 hour), with a
2463
+ # default of 1 hour.
2185
2464
  #
2186
2465
  # **Permissions**
2187
2466
  #
@@ -2195,32 +2474,31 @@ module Aws::STS
2195
2474
  # * You cannot call any STS API *except* `AssumeRole` or
2196
2475
  # `GetCallerIdentity`.
2197
2476
  #
2198
- # <note markdown="1"> We recommend that you do not call `GetSessionToken` with Amazon Web
2199
- # Services account root user credentials. Instead, follow our [best
2200
- # practices][4] by creating one or more IAM users, giving them the
2201
- # necessary permissions, and using IAM users for everyday interaction
2202
- # with Amazon Web Services.
2477
+ # The credentials that `GetSessionToken` returns are based on
2478
+ # permissions associated with the IAM user whose credentials were used
2479
+ # to call the operation. The temporary credentials have the same
2480
+ # permissions as the IAM user.
2203
2481
  #
2204
- # </note>
2482
+ # <note markdown="1"> Although it is possible to call `GetSessionToken` using the security
2483
+ # credentials of an Amazon Web Services account root user rather than an
2484
+ # IAM user, we do not recommend it. If `GetSessionToken` is called using
2485
+ # root user credentials, the temporary credentials have root user
2486
+ # permissions. For more information, see [Safeguard your root user
2487
+ # credentials and don't use them for everyday tasks][4] in the *IAM
2488
+ # User Guide*
2205
2489
  #
2206
- # The credentials that are returned by `GetSessionToken` are based on
2207
- # permissions associated with the user whose credentials were used to
2208
- # call the operation. If `GetSessionToken` is called using Amazon Web
2209
- # Services account root user credentials, the temporary credentials have
2210
- # root user permissions. Similarly, if `GetSessionToken` is called using
2211
- # the credentials of an IAM user, the temporary credentials have the
2212
- # same permissions as the IAM user.
2490
+ # </note>
2213
2491
  #
2214
2492
  # For more information about using `GetSessionToken` to create temporary
2215
- # credentials, go to [Temporary Credentials for Users in Untrusted
2493
+ # credentials, see [Temporary Credentials for Users in Untrusted
2216
2494
  # Environments][5] in the *IAM User Guide*.
2217
2495
  #
2218
2496
  #
2219
2497
  #
2220
2498
  # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
2221
- # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
2499
+ # [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_sts-comparison.html
2222
2500
  # [3]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getsessiontoken.html
2223
- # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users
2501
+ # [4]: https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials
2224
2502
  # [5]: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken
2225
2503
  #
2226
2504
  # @option params [Integer] :duration_seconds
@@ -2311,14 +2589,19 @@ module Aws::STS
2311
2589
  # @api private
2312
2590
  def build_request(operation_name, params = {})
2313
2591
  handlers = @handlers.for(operation_name)
2592
+ tracer = config.telemetry_provider.tracer_provider.tracer(
2593
+ Aws::Telemetry.module_to_tracer_name('Aws::STS')
2594
+ )
2314
2595
  context = Seahorse::Client::RequestContext.new(
2315
2596
  operation_name: operation_name,
2316
2597
  operation: config.api.operation(operation_name),
2317
2598
  client: self,
2318
2599
  params: params,
2319
- config: config)
2600
+ config: config,
2601
+ tracer: tracer
2602
+ )
2320
2603
  context[:gem_name] = 'aws-sdk-core'
2321
- context[:gem_version] = '3.171.1'
2604
+ context[:gem_version] = '3.234.0'
2322
2605
  Seahorse::Client::Request.new(handlers, context)
2323
2606
  end
2324
2607