aws-sdk-core 3.219.0 → 3.222.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: daacffffa5a66ef5ba66b2abdd92d47fc186f5bf55f9d2e0daf32f1769cd3976
4
- data.tar.gz: 98e54a35f69070132a9cbc14aab6d1e53b324e649bed80b5775c09b1c299de82
3
+ metadata.gz: 60d14e86ef70bbaf2d67ef1e0b4eae11af4deb68b18bdab4137666397fb21baa
4
+ data.tar.gz: 7a03b144af8e9ce4ebc7c91b4be1f6a582e5b5905b6a2b57a3574e85430268a2
5
5
  SHA512:
6
- metadata.gz: 8357279c87cb3d8becf3a903242eb3c1d8dd2398a4ba2672265fbc77534e79abe32c080fe1481ae6211b564159d0a0afca6b45894a1bcc1975d13c76f1c3adf4
7
- data.tar.gz: 6d1c7706d7828fc2d0c977c8e33f0ae92a32995b9b7878fa9801f3cdc7265d4c2977a4399f2d9c7022d8b9d7ff909b46da8b7f1713e5301c4e4d769e6a015a43
6
+ metadata.gz: 34361a1c8fb1e2b92b19f50ef29c9ffd5ab4cd067032a0412ff352c660ea24f97fe92a635038e91dc16eacf05647af6884120154ab0ead29442f8bc5f52b2c9c
7
+ data.tar.gz: 65a11e4900fda955ec95162dbbba0dc0ef29f4007d2067f5351f6da992ef8e7636735e696d175fb6187352a681713390bd4f37ea7182f4ceda61da7f785240b9
data/CHANGELOG.md CHANGED
@@ -1,6 +1,40 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 3.222.1 (2025-03-28)
5
+ ------------------
6
+
7
+ * Issue - Allow explicit modeled headers to override prefixed headers for `rest` protocols.
8
+
9
+ 3.222.0 (2025-03-27)
10
+ ------------------
11
+
12
+ * Feature - Updated Aws::SSOOIDC::Client with the latest API changes.
13
+
14
+ * Feature - This release adds AwsAdditionalDetails in the CreateTokenWithIAM API response.
15
+
16
+ 3.221.0 (2025-03-24)
17
+ ------------------
18
+
19
+ * Feature - Add `logger` as an explicit dependency for Ruby 3.5.
20
+ * Issue - Enable ALPN over TLS for H2 Connection by default.
21
+ * Issue - Fix HTTP-2 connections to properly use config values configured on the client.
22
+
23
+ 3.220.2 (2025-03-20)
24
+ ------------------
25
+
26
+ * Issue - Enable ALPN over TLS for H2 by default.
27
+
28
+ 3.220.1 (2025-03-06)
29
+ ------------------
30
+
31
+ * Issue - Convert stubs at request time.
32
+
33
+ 3.220.0 (2025-03-04)
34
+ ------------------
35
+
36
+ * Feature - Updated Aws::STS::Client with the latest API changes.
37
+
4
38
  3.219.0 (2025-02-18)
5
39
  ------------------
6
40
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.219.0
1
+ 3.222.1
@@ -15,27 +15,11 @@ module Aws
15
15
 
16
16
  # @api private
17
17
  def setup_stubbing
18
- @stubs = {}
19
- @stub_mutex = Mutex.new
20
18
  if Hash === @config.stub_responses
21
19
  @config.stub_responses.each do |operation_name, stubs|
22
20
  apply_stubs(operation_name, Array === stubs ? stubs : [stubs])
23
21
  end
24
22
  end
25
-
26
- # When a client is stubbed allow the user to access the requests made
27
- requests = @api_requests = []
28
- requests_mutex = @requests_mutex = Mutex.new
29
- self.handle do |context|
30
- requests_mutex.synchronize do
31
- requests << {
32
- operation_name: context.operation_name,
33
- params: context.params,
34
- context: context
35
- }
36
- end
37
- @handler.call(context)
38
- end
39
23
  end
40
24
 
41
25
  # Configures what data / errors should be returned from the named operation
@@ -175,7 +159,7 @@ module Aws
175
159
  # on a client that has not enabled response stubbing via
176
160
  # `:stub_responses => true`.
177
161
  def stub_responses(operation_name, *stubs)
178
- if config.stub_responses
162
+ if @config.stub_responses
179
163
  apply_stubs(operation_name, stubs.flatten)
180
164
  else
181
165
  msg = 'stubbing is not enabled; enable stubbing in the constructor '\
@@ -194,12 +178,12 @@ module Aws
194
178
  # @raise [NotImplementedError] Raises `NotImplementedError` when the client
195
179
  # is not stubbed.
196
180
  def api_requests(options = {})
197
- if config.stub_responses
198
- @requests_mutex.synchronize do
181
+ if @config.stub_responses
182
+ @config.api_requests_mutex.synchronize do
199
183
  if options[:exclude_presign]
200
- @api_requests.reject {|req| req[:context][:presigned_url] }
184
+ @config.api_requests.reject {|req| req[:context][:presigned_url] }
201
185
  else
202
- @api_requests
186
+ @config.api_requests
203
187
  end
204
188
  end
205
189
  else
@@ -228,54 +212,44 @@ module Aws
228
212
  # @return [Structure] Returns a stubbed response data structure. The
229
213
  # actual class returned will depend on the given `operation_name`.
230
214
  def stub_data(operation_name, data = {})
231
- Stubbing::StubData.new(config.api.operation(operation_name)).stub(data)
215
+ Stubbing::StubData.new(@config.api.operation(operation_name)).stub(data)
232
216
  end
233
217
 
234
218
  # @api private
235
219
  def next_stub(context)
236
220
  operation_name = context.operation_name.to_sym
237
- stub = @stub_mutex.synchronize do
238
- stubs = @stubs[operation_name] || []
221
+ stub = @config.stubs_mutex.synchronize do
222
+ stubs = @config.stubs[operation_name] || []
239
223
  case stubs.length
240
- when 0 then default_stub(operation_name)
224
+ when 0 then stub_data(operation_name)
241
225
  when 1 then stubs.first
242
226
  else stubs.shift
243
227
  end
244
228
  end
245
- Proc === stub ? convert_stub(operation_name, stub.call(context)) : stub
229
+ stub = convert_stub(operation_name, stub, context)
230
+ stub[:mutex] = Mutex.new
231
+ stub
246
232
  end
247
233
 
248
234
  private
249
235
 
250
- def default_stub(operation_name)
251
- stub = stub_data(operation_name)
252
- http_response_stub(operation_name, stub)
236
+ def apply_stubs(operation_name, stubs)
237
+ @config.stubs_mutex.synchronize do
238
+ @config.stubs[operation_name.to_sym] = stubs
239
+ end
253
240
  end
254
241
 
255
242
  # This method converts the given stub data and converts it to a
256
243
  # HTTP response (when possible). This enables the response stubbing
257
244
  # plugin to provide a HTTP response that triggers all normal events
258
245
  # during response handling.
259
- def apply_stubs(operation_name, stubs)
260
- @stub_mutex.synchronize do
261
- @stubs[operation_name.to_sym] = stubs.map do |stub|
262
- convert_stub(operation_name, stub)
263
- end
264
- end
265
- end
266
-
267
- def convert_stub(operation_name, stub)
268
- stub = case stub
269
- when Proc then stub
246
+ def convert_stub(operation_name, stub, context)
247
+ case stub
248
+ when Proc then convert_stub(operation_name, stub.call(context), context)
270
249
  when Exception, Class then { error: stub }
271
250
  when String then service_error_stub(stub)
272
- when Hash then http_response_stub(operation_name, stub)
273
- else { data: stub }
274
- end
275
- if Hash === stub
276
- stub[:mutex] = Mutex.new
251
+ else http_response_stub(operation_name, stub)
277
252
  end
278
- stub
279
253
  end
280
254
 
281
255
  def service_error_stub(error_code)
@@ -299,14 +273,14 @@ module Aws
299
273
  end
300
274
 
301
275
  def data_to_http_resp(operation_name, data)
302
- api = config.api
276
+ api = @config.api
303
277
  operation = api.operation(operation_name)
304
278
  ParamValidator.new(operation.output, input: false).validate!(data)
305
279
  protocol_helper.stub_data(api, operation, data)
306
280
  end
307
281
 
308
282
  def protocol_helper
309
- case config.api.metadata['protocol']
283
+ case @config.api.metadata['protocol']
310
284
  when 'json' then Stubbing::Protocols::Json
311
285
  when 'rest-json' then Stubbing::Protocols::RestJson
312
286
  when 'rest-xml' then Stubbing::Protocols::RestXml
@@ -29,8 +29,16 @@ requests are made, and retries are disabled.
29
29
  end
30
30
  end
31
31
 
32
+ option(:stubs) { {} }
33
+ option(:stubs_mutex) { Mutex.new }
34
+ option(:api_requests) { [] }
35
+ option(:api_requests_mutex) { Mutex.new }
36
+
32
37
  def add_handlers(handlers, config)
33
- handlers.add(Handler, step: :send) if config.stub_responses
38
+ return unless config.stub_responses
39
+
40
+ handlers.add(ApiRequestsHandler)
41
+ handlers.add(StubbingHandler, step: :send)
34
42
  end
35
43
 
36
44
  def after_initialize(client)
@@ -46,8 +54,20 @@ requests are made, and retries are disabled.
46
54
  end
47
55
  end
48
56
 
49
- class Handler < Seahorse::Client::Handler
57
+ class ApiRequestsHandler < Seahorse::Client::Handler
58
+ def call(context)
59
+ context.config.api_requests_mutex.synchronize do
60
+ context.config.api_requests << {
61
+ operation_name: context.operation_name,
62
+ params: context.params,
63
+ context: context
64
+ }
65
+ end
66
+ @handler.call(context)
67
+ end
68
+ end
50
69
 
70
+ class StubbingHandler < Seahorse::Client::Handler
51
71
  def call(context)
52
72
  span_wrapper(context) do
53
73
  stub_responses(context)
@@ -57,14 +77,10 @@ requests are made, and retries are disabled.
57
77
  private
58
78
 
59
79
  def stub_responses(context)
60
- stub = context.client.next_stub(context)
61
80
  resp = Seahorse::Client::Response.new(context: context)
62
81
  async_mode = context.client.is_a? Seahorse::Client::AsyncBase
63
- if Hash === stub && stub[:mutex]
64
- stub[:mutex].synchronize { apply_stub(stub, resp, async_mode) }
65
- else
66
- apply_stub(stub, resp, async_mode)
67
- end
82
+ stub = context.client.next_stub(context)
83
+ stub[:mutex].synchronize { apply_stub(stub, resp, async_mode) }
68
84
 
69
85
  if async_mode
70
86
  Seahorse::Client::AsyncResponse.new(
@@ -68,7 +68,7 @@ module Aws
68
68
  def apply_header_map(headers, ref, values)
69
69
  prefix = ref.location_name || ''
70
70
  values.each_pair do |name, value|
71
- headers["#{prefix}#{name}"] = value.to_s
71
+ headers["#{prefix}#{name}"] ||= value.to_s
72
72
  end
73
73
  end
74
74
 
@@ -692,7 +692,7 @@ module Aws::SSO
692
692
  tracer: tracer
693
693
  )
694
694
  context[:gem_name] = 'aws-sdk-core'
695
- context[:gem_version] = '3.219.0'
695
+ context[:gem_version] = '3.222.1'
696
696
  Seahorse::Client::Request.new(handlers, context)
697
697
  end
698
698
 
data/lib/aws-sdk-sso.rb CHANGED
@@ -56,7 +56,7 @@ module Aws::SSO
56
56
  autoload :EndpointProvider, 'aws-sdk-sso/endpoint_provider'
57
57
  autoload :Endpoints, 'aws-sdk-sso/endpoints'
58
58
 
59
- GEM_VERSION = '3.219.0'
59
+ GEM_VERSION = '3.222.1'
60
60
 
61
61
  end
62
62
 
@@ -708,6 +708,7 @@ module Aws::SSOOIDC
708
708
  # * {Types::CreateTokenWithIAMResponse#id_token #id_token} => String
709
709
  # * {Types::CreateTokenWithIAMResponse#issued_token_type #issued_token_type} => String
710
710
  # * {Types::CreateTokenWithIAMResponse#scope #scope} => Array&lt;String&gt;
711
+ # * {Types::CreateTokenWithIAMResponse#aws_additional_details #aws_additional_details} => Types::AwsAdditionalDetails
711
712
  #
712
713
  #
713
714
  # @example Example: Call OAuth/OIDC /token endpoint for Authorization Code grant with IAM authentication
@@ -727,6 +728,9 @@ module Aws::SSOOIDC
727
728
  # resp.to_h outputs the following:
728
729
  # {
729
730
  # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
731
+ # aws_additional_details: {
732
+ # identity_context: "EXAMPLEIDENTITYCONTEXT",
733
+ # },
730
734
  # expires_in: 1579729529,
731
735
  # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsInN0czphdWRpdF9jb250ZXh0IjoiRVhBTVBMRUFVRElUQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.Xyah6qbk78qThzJ41iFU2yfGuRqqtKXHrJYwQ8L9Ip0",
732
736
  # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token",
@@ -772,6 +776,9 @@ module Aws::SSOOIDC
772
776
  # resp.to_h outputs the following:
773
777
  # {
774
778
  # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
779
+ # aws_additional_details: {
780
+ # identity_context: "EXAMPLEIDENTITYCONTEXT",
781
+ # },
775
782
  # expires_in: 1579729529,
776
783
  # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsInN0czphdWRpdF9jb250ZXh0IjoiRVhBTVBMRUFVRElUQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.Xyah6qbk78qThzJ41iFU2yfGuRqqtKXHrJYwQ8L9Ip0",
777
784
  # issued_token_type: "urn:ietf:params:oauth:token-type:refresh_token",
@@ -797,6 +804,9 @@ module Aws::SSOOIDC
797
804
  # resp.to_h outputs the following:
798
805
  # {
799
806
  # access_token: "aoal-YigITUDiNX1xZwOMXM5MxOWDL0E0jg9P6_C_jKQPxS_SKCP6f0kh1Up4g7TtvQqkMnD-GJiU_S1gvug6SrggAkc0:MGYCMQD3IatVjV7jAJU91kK3PkS/SfA2wtgWzOgZWDOR7sDGN9t0phCZz5It/aes/3C1Zj0CMQCKWOgRaiz6AIhza3DSXQNMLjRKXC8F8ceCsHlgYLMZ7hZidEXAMPLEACCESSTOKEN",
807
+ # aws_additional_details: {
808
+ # identity_context: "EXAMPLEIDENTITYCONTEXT",
809
+ # },
800
810
  # expires_in: 1579729529,
801
811
  # id_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhd3M6aWRlbnRpdHlfc3RvcmVfaWQiOiJkLTMzMzMzMzMzMzMiLCJzdWIiOiI3MzA0NDhmMi1lMGExLTcwYTctYzk1NC0wMDAwMDAwMDAwMDAiLCJhd3M6aW5zdGFuY2VfYWNjb3VudCI6IjExMTExMTExMTExMSIsInN0czppZGVudGl0eV9jb250ZXh0IjoiRVhBTVBMRUlERU5USVRZQ09OVEVYVCIsImlzcyI6Imh0dHBzOi8vaWRlbnRpdHljZW50ZXIuYW1hem9uYXdzLmNvbS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmlkZW50aXR5X3N0b3JlX2FybiI6ImFybjphd3M6aWRlbnRpdHlzdG9yZTo6MTExMTExMTExMTExOmlkZW50aXR5c3RvcmUvZC0zMzMzMzMzMzMzIiwiYXVkIjoiYXJuOmF3czpzc286OjEyMzQ1Njc4OTAxMjphcHBsaWNhdGlvbi9zc29pbnMtMTExMTExMTExMTExL2FwbC0yMjIyMjIyMjIyMjIiLCJhd3M6aW5zdGFuY2VfYXJuIjoiYXJuOmF3czpzc286OjppbnN0YW5jZS9zc29pbnMtMTExMTExMTExMTExIiwiYXdzOmNyZWRlbnRpYWxfaWQiOiJfWlIyTjZhVkJqMjdGUEtheWpfcEtwVjc3QVBERl80MXB4ZXRfWWpJdUpONlVJR2RBdkpFWEFNUExFQ1JFRElEIiwiYXV0aF90aW1lIjoiMjAyMC0wMS0yMlQxMjo0NToyOVoiLCJleHAiOjE1Nzk3Mjk1MjksImlhdCI6MTU3OTcyNTkyOX0.5SYiW1kMsuUr7nna-l5tlakM0GNbMHvIM2_n0QD23jM",
802
812
  # issued_token_type: "urn:ietf:params:oauth:token-type:access_token",
@@ -834,6 +844,7 @@ module Aws::SSOOIDC
834
844
  # resp.issued_token_type #=> String
835
845
  # resp.scope #=> Array
836
846
  # resp.scope[0] #=> String
847
+ # resp.aws_additional_details.identity_context #=> String
837
848
  #
838
849
  # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenWithIAM AWS API Documentation
839
850
  #
@@ -1003,8 +1014,8 @@ module Aws::SSOOIDC
1003
1014
  # expires_in: 1579729529,
1004
1015
  # interval: 1,
1005
1016
  # user_code: "makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE",
1006
- # verification_uri: "https://device.sso.us-west-2.amazonaws.com",
1007
- # verification_uri_complete: "https://device.sso.us-west-2.amazonaws.com?user_code=makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE",
1017
+ # verification_uri: "https://directory-alias-example.awsapps.com/start/#/device",
1018
+ # verification_uri_complete: "https://directory-alias-example.awsapps.com/start/#/device?user_code=makdfsk83yJraWQiOiJrZXktMTU2Njk2sImFsZyI6IkhTMzIn0EXAMPLEUSERCODE",
1008
1019
  # }
1009
1020
  #
1010
1021
  # @example Request syntax with placeholder values
@@ -1051,7 +1062,7 @@ module Aws::SSOOIDC
1051
1062
  tracer: tracer
1052
1063
  )
1053
1064
  context[:gem_name] = 'aws-sdk-core'
1054
- context[:gem_version] = '3.219.0'
1065
+ context[:gem_version] = '3.222.1'
1055
1066
  Seahorse::Client::Request.new(handlers, context)
1056
1067
  end
1057
1068
 
@@ -20,6 +20,7 @@ module Aws::SSOOIDC
20
20
  Assertion = Shapes::StringShape.new(name: 'Assertion')
21
21
  AuthCode = Shapes::StringShape.new(name: 'AuthCode')
22
22
  AuthorizationPendingException = Shapes::StructureShape.new(name: 'AuthorizationPendingException')
23
+ AwsAdditionalDetails = Shapes::StructureShape.new(name: 'AwsAdditionalDetails')
23
24
  ClientId = Shapes::StringShape.new(name: 'ClientId')
24
25
  ClientName = Shapes::StringShape.new(name: 'ClientName')
25
26
  ClientSecret = Shapes::StringShape.new(name: 'ClientSecret')
@@ -37,6 +38,7 @@ module Aws::SSOOIDC
37
38
  GrantType = Shapes::StringShape.new(name: 'GrantType')
38
39
  GrantTypes = Shapes::ListShape.new(name: 'GrantTypes')
39
40
  IdToken = Shapes::StringShape.new(name: 'IdToken')
41
+ IdentityContext = Shapes::StringShape.new(name: 'IdentityContext')
40
42
  InternalServerException = Shapes::StructureShape.new(name: 'InternalServerException')
41
43
  IntervalInSeconds = Shapes::IntegerShape.new(name: 'IntervalInSeconds')
42
44
  InvalidClientException = Shapes::StructureShape.new(name: 'InvalidClientException')
@@ -74,6 +76,9 @@ module Aws::SSOOIDC
74
76
  AuthorizationPendingException.add_member(:error_description, Shapes::ShapeRef.new(shape: ErrorDescription, location_name: "error_description"))
75
77
  AuthorizationPendingException.struct_class = Types::AuthorizationPendingException
76
78
 
79
+ AwsAdditionalDetails.add_member(:identity_context, Shapes::ShapeRef.new(shape: IdentityContext, location_name: "identityContext"))
80
+ AwsAdditionalDetails.struct_class = Types::AwsAdditionalDetails
81
+
77
82
  CreateTokenRequest.add_member(:client_id, Shapes::ShapeRef.new(shape: ClientId, required: true, location_name: "clientId"))
78
83
  CreateTokenRequest.add_member(:client_secret, Shapes::ShapeRef.new(shape: ClientSecret, required: true, location_name: "clientSecret"))
79
84
  CreateTokenRequest.add_member(:grant_type, Shapes::ShapeRef.new(shape: GrantType, required: true, location_name: "grantType"))
@@ -112,6 +117,7 @@ module Aws::SSOOIDC
112
117
  CreateTokenWithIAMResponse.add_member(:id_token, Shapes::ShapeRef.new(shape: IdToken, location_name: "idToken"))
113
118
  CreateTokenWithIAMResponse.add_member(:issued_token_type, Shapes::ShapeRef.new(shape: TokenTypeURI, location_name: "issuedTokenType"))
114
119
  CreateTokenWithIAMResponse.add_member(:scope, Shapes::ShapeRef.new(shape: Scopes, location_name: "scope"))
120
+ CreateTokenWithIAMResponse.add_member(:aws_additional_details, Shapes::ShapeRef.new(shape: AwsAdditionalDetails, location_name: "awsAdditionalDetails"))
115
121
  CreateTokenWithIAMResponse.struct_class = Types::CreateTokenWithIAMResponse
116
122
 
117
123
  ExpiredTokenException.add_member(:error, Shapes::ShapeRef.new(shape: Error, location_name: "error"))
@@ -53,6 +53,25 @@ module Aws::SSOOIDC
53
53
  include Aws::Structure
54
54
  end
55
55
 
56
+ # This structure contains Amazon Web Services-specific parameter
57
+ # extensions for the token endpoint responses and includes the identity
58
+ # context.
59
+ #
60
+ # @!attribute [rw] identity_context
61
+ # STS context assertion that carries a user identifier to the Amazon
62
+ # Web Services service that it calls and can be used to obtain an
63
+ # identity-enhanced IAM role session. This value corresponds to the
64
+ # `sts:identity_context` claim in the ID token.
65
+ # @return [String]
66
+ #
67
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/AwsAdditionalDetails AWS API Documentation
68
+ #
69
+ class AwsAdditionalDetails < Struct.new(
70
+ :identity_context)
71
+ SENSITIVE = []
72
+ include Aws::Structure
73
+ end
74
+
56
75
  # @!attribute [rw] client_id
57
76
  # The unique identifier string for the client or application. This
58
77
  # value comes from the result of the RegisterClient API.
@@ -356,6 +375,13 @@ module Aws::SSOOIDC
356
375
  # token that is issued is limited to the scopes that are granted.
357
376
  # @return [Array<String>]
358
377
  #
378
+ # @!attribute [rw] aws_additional_details
379
+ # A structure containing information from the `idToken`. Only the
380
+ # `identityContext` is in it, which is a value extracted from the
381
+ # `idToken`. This provides direct access to identity information
382
+ # without requiring JWT parsing.
383
+ # @return [Types::AwsAdditionalDetails]
384
+ #
359
385
  # @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenWithIAMResponse AWS API Documentation
360
386
  #
361
387
  class CreateTokenWithIAMResponse < Struct.new(
@@ -365,7 +391,8 @@ module Aws::SSOOIDC
365
391
  :refresh_token,
366
392
  :id_token,
367
393
  :issued_token_type,
368
- :scope)
394
+ :scope,
395
+ :aws_additional_details)
369
396
  SENSITIVE = [:access_token, :refresh_token, :id_token]
370
397
  include Aws::Structure
371
398
  end
@@ -56,7 +56,7 @@ module Aws::SSOOIDC
56
56
  autoload :EndpointProvider, 'aws-sdk-ssooidc/endpoint_provider'
57
57
  autoload :Endpoints, 'aws-sdk-ssooidc/endpoints'
58
58
 
59
- GEM_VERSION = '3.219.0'
59
+ GEM_VERSION = '3.222.1'
60
60
 
61
61
  end
62
62
 
@@ -2595,7 +2595,7 @@ module Aws::STS
2595
2595
  tracer: tracer
2596
2596
  )
2597
2597
  context[:gem_name] = 'aws-sdk-core'
2598
- context[:gem_version] = '3.219.0'
2598
+ context[:gem_version] = '3.222.1'
2599
2599
  Seahorse::Client::Request.new(handlers, context)
2600
2600
  end
2601
2601
 
@@ -29,15 +29,21 @@ module Aws::STS
29
29
  # ## Error Classes
30
30
  # * {ExpiredTokenException}
31
31
  # * {IDPCommunicationErrorException}
32
+ # * This error class is not used. `IDPCommunicationError` is used during parsing instead.
32
33
  # * {IDPRejectedClaimException}
34
+ # * This error class is not used. `IDPRejectedClaim` is used during parsing instead.
33
35
  # * {InvalidAuthorizationMessageException}
34
36
  # * {InvalidIdentityTokenException}
37
+ # * This error class is not used. `InvalidIdentityToken` is used during parsing instead.
35
38
  # * {MalformedPolicyDocumentException}
39
+ # * This error class is not used. `MalformedPolicyDocument` is used during parsing instead.
36
40
  # * {PackedPolicyTooLargeException}
41
+ # * This error class is not used. `PackedPolicyTooLarge` is used during parsing instead.
37
42
  # * {RegionDisabledException}
38
43
  #
39
44
  # Additionally, error classes are dynamically generated for service errors based on the error code
40
45
  # if they are not defined above.
46
+ # Some existing error classes may use a different class name than the one documented.
41
47
  module Errors
42
48
 
43
49
  extend Aws::Errors::DynamicErrors
@@ -57,6 +63,8 @@ module Aws::STS
57
63
  end
58
64
  end
59
65
 
66
+ # @deprecated This error class is not used during parsing.
67
+ # Please use `IDPCommunicationError` instead.
60
68
  class IDPCommunicationErrorException < ServiceError
61
69
 
62
70
  # @param [Seahorse::Client::RequestContext] context
@@ -72,6 +80,8 @@ module Aws::STS
72
80
  end
73
81
  end
74
82
 
83
+ # @deprecated This error class is not used during parsing.
84
+ # Please use `IDPRejectedClaim` instead.
75
85
  class IDPRejectedClaimException < ServiceError
76
86
 
77
87
  # @param [Seahorse::Client::RequestContext] context
@@ -102,6 +112,8 @@ module Aws::STS
102
112
  end
103
113
  end
104
114
 
115
+ # @deprecated This error class is not used during parsing.
116
+ # Please use `InvalidIdentityToken` instead.
105
117
  class InvalidIdentityTokenException < ServiceError
106
118
 
107
119
  # @param [Seahorse::Client::RequestContext] context
@@ -117,6 +129,8 @@ module Aws::STS
117
129
  end
118
130
  end
119
131
 
132
+ # @deprecated This error class is not used during parsing.
133
+ # Please use `MalformedPolicyDocument` instead.
120
134
  class MalformedPolicyDocumentException < ServiceError
121
135
 
122
136
  # @param [Seahorse::Client::RequestContext] context
@@ -132,6 +146,8 @@ module Aws::STS
132
146
  end
133
147
  end
134
148
 
149
+ # @deprecated This error class is not used during parsing.
150
+ # Please use `PackedPolicyTooLarge` instead.
135
151
  class PackedPolicyTooLargeException < ServiceError
136
152
 
137
153
  # @param [Seahorse::Client::RequestContext] context
data/lib/aws-sdk-sts.rb CHANGED
@@ -56,7 +56,7 @@ module Aws::STS
56
56
  autoload :EndpointProvider, 'aws-sdk-sts/endpoint_provider'
57
57
  autoload :Endpoints, 'aws-sdk-sts/endpoints'
58
58
 
59
- GEM_VERSION = '3.219.0'
59
+ GEM_VERSION = '3.222.1'
60
60
 
61
61
  end
62
62
 
@@ -3,7 +3,6 @@
3
3
  module Seahorse
4
4
  module Client
5
5
  class AsyncBase < Seahorse::Client::Base
6
-
7
6
  # default H2 plugins
8
7
  # @api private
9
8
  @plugins = PluginList.new([
@@ -11,10 +10,10 @@ module Seahorse
11
10
  Plugins::H2,
12
11
  Plugins::ResponseTarget
13
12
  ])
13
+
14
14
  def initialize(plugins, options)
15
- super
16
- @connection = H2::Connection.new(options)
17
- @options = options
15
+ super(plugins, options)
16
+ @connection = H2::Connection.new(@config)
18
17
  end
19
18
 
20
19
  # @return [H2::Connection]
@@ -36,7 +35,7 @@ module Seahorse
36
35
  # @return [Seahorse::Client::H2::Connection]
37
36
  def new_connection
38
37
  if @connection.closed?
39
- @connection = H2::Connection.new(@options)
38
+ @connection = H2::Connection.new(@config)
40
39
  else
41
40
  @connection
42
41
  end
@@ -10,13 +10,8 @@ module Seahorse
10
10
  module Client
11
11
  # @api private
12
12
  module H2
13
-
14
13
  # H2 Connection build on top of `http/2` gem
15
- # (requires Ruby >= 2.1)
16
- # with TLS layer plus ALPN, requires:
17
- # Ruby >= 2.3 and OpenSSL >= 1.0.2
18
14
  class Connection
19
-
20
15
  OPTIONS = {
21
16
  max_concurrent_streams: 100,
22
17
  connection_timeout: 60,
@@ -27,7 +22,7 @@ module Seahorse
27
22
  ssl_ca_bundle: nil,
28
23
  ssl_ca_directory: nil,
29
24
  ssl_ca_store: nil,
30
- enable_alpn: false
25
+ enable_alpn: true
31
26
  }
32
27
 
33
28
  # chunk read size at socket
@@ -41,25 +36,23 @@ module Seahorse
41
36
  instance_variable_set("@#{opt_name}", value)
42
37
  end
43
38
  @h2_client = HTTP2::Client.new(
44
- settings_max_concurrent_streams: max_concurrent_streams
39
+ settings_max_concurrent_streams: @max_concurrent_streams
45
40
  )
46
- @logger = if @http_wire_trace
47
- options[:logger] || Logger.new($stdout)
48
- end
41
+ @logger ||= Logger.new($stdout) if @http_wire_trace
49
42
  @chunk_size = options[:read_chunk_size] || CHUNKSIZE
43
+
50
44
  @errors = []
51
45
  @status = :ready
46
+
52
47
  @mutex = Mutex.new # connection can be shared across requests
53
48
  @socket = nil
54
49
  @socket_thread = nil
55
50
  end
56
51
 
57
52
  OPTIONS.keys.each do |attr_name|
58
- attr_reader(attr_name)
53
+ attr_reader attr_name
59
54
  end
60
55
 
61
- alias ssl_verify_peer? ssl_verify_peer
62
-
63
56
  attr_reader :errors
64
57
 
65
58
  attr_accessor :input_signal_thread
@@ -112,7 +105,7 @@ module Seahorse
112
105
  @h2_client << data
113
106
  rescue IO::WaitReadable
114
107
  begin
115
- unless IO.select([@socket], nil, nil, connection_read_timeout)
108
+ unless IO.select([@socket], nil, nil, @connection_read_timeout)
116
109
  self.debug_output('socket connection read time out')
117
110
  self.close!
118
111
  else
@@ -154,11 +147,11 @@ module Seahorse
154
147
  end
155
148
 
156
149
  def debug_output(msg, type = nil)
157
- prefix = case type
150
+ prefix =
151
+ case type
158
152
  when :send then '-> '
159
153
  when :receive then '<- '
160
- else
161
- ''
154
+ else ''
162
155
  end
163
156
  return unless @logger
164
157
  _debug_entry(prefix + msg)
@@ -206,7 +199,7 @@ module Seahorse
206
199
  begin
207
200
  tcp.connect_nonblock(addr)
208
201
  rescue IO::WaitWritable
209
- unless IO.select(nil, [tcp], nil, connection_timeout)
202
+ unless IO.select(nil, [tcp], nil, @connection_timeout)
210
203
  tcp.close
211
204
  raise
212
205
  end
@@ -220,15 +213,15 @@ module Seahorse
220
213
 
221
214
  def _tls_context
222
215
  ssl_ctx = OpenSSL::SSL::SSLContext.new(:TLSv1_2)
223
- if ssl_verify_peer?
216
+ if @ssl_verify_peer
224
217
  ssl_ctx.verify_mode = OpenSSL::SSL::VERIFY_PEER
225
- ssl_ctx.ca_file = ssl_ca_bundle ? ssl_ca_bundle : _default_ca_bundle
226
- ssl_ctx.ca_path = ssl_ca_directory ? ssl_ca_directory : _default_ca_directory
227
- ssl_ctx.cert_store = ssl_ca_store if ssl_ca_store
218
+ ssl_ctx.ca_file = @ssl_ca_bundle || _default_ca_bundle
219
+ ssl_ctx.ca_path = @ssl_ca_directory || _default_ca_directory
220
+ ssl_ctx.cert_store = @ssl_ca_store if @ssl_ca_store
228
221
  else
229
222
  ssl_ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE
230
223
  end
231
- if enable_alpn
224
+ if @enable_alpn
232
225
  debug_output('enabling ALPN for TLS ...')
233
226
  ssl_ctx.alpn_protocols = ['h2']
234
227
  end
@@ -236,15 +229,12 @@ module Seahorse
236
229
  end
237
230
 
238
231
  def _default_ca_bundle
239
- File.exist?(OpenSSL::X509::DEFAULT_CERT_FILE) ?
240
- OpenSSL::X509::DEFAULT_CERT_FILE : nil
232
+ OpenSSL::X509::DEFAULT_CERT_FILE if File.exist?(OpenSSL::X509::DEFAULT_CERT_FILE)
241
233
  end
242
234
 
243
235
  def _default_ca_directory
244
- Dir.exist?(OpenSSL::X509::DEFAULT_CERT_DIR) ?
245
- OpenSSL::X509::DEFAULT_CERT_DIR : nil
236
+ OpenSSL::X509::DEFAULT_CERT_DIR if Dir.exist?(OpenSSL::X509::DEFAULT_CERT_DIR)
246
237
  end
247
-
248
238
  end
249
239
  end
250
240
  end
@@ -53,10 +53,10 @@ When `true`, SSL peer certificates are verified when establishing a connection.
53
53
  When `true`, HTTP2 debug output will be sent to the `:logger`.
54
54
  DOCS
55
55
 
56
- option(:enable_alpn, default: false, doc_type: 'Boolean', docstring: <<-DOCS)
57
- Set to `true` to enable ALPN in HTTP2 over TLS. Requires Openssl version >= 1.0.2.
58
- Defaults to false. Note: not all service HTTP2 operations supports ALPN on server
59
- side, please refer to service documentation.
56
+ option(:enable_alpn, default: true, doc_type: 'Boolean', docstring: <<-DOCS)
57
+ Set to `false` to disable ALPN in HTTP2 over TLS. ALPN requires Openssl version >= 1.0.2.
58
+ Note: RFC7540 requires HTTP2 to use ALPN over TLS but some
59
+ services may not fully support ALPN and require setting this to `false`.
60
60
  DOCS
61
61
 
62
62
  option(:logger)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.219.0
4
+ version: 3.222.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-02-18 00:00:00.000000000 Z
11
+ date: 2025-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-eventstream
@@ -98,6 +98,20 @@ dependencies:
98
98
  - - ">="
99
99
  - !ruby/object:Gem::Version
100
100
  version: 1.6.1
101
+ - !ruby/object:Gem::Dependency
102
+ name: logger
103
+ requirement: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - ">="
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ type: :runtime
109
+ prerelease: false
110
+ version_requirements: !ruby/object:Gem::Requirement
111
+ requirements:
112
+ - - ">="
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
101
115
  description: Provides API clients for AWS. This gem is part of the official AWS SDK
102
116
  for Ruby.
103
117
  email: