aws-sdk-core 3.220.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 +4 -4
- data/CHANGELOG.md +29 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-core/client_stubs.rb +22 -48
- data/lib/aws-sdk-core/plugins/stub_responses.rb +24 -8
- data/lib/aws-sdk-core/rest/request/headers.rb +1 -1
- data/lib/aws-sdk-sso/client.rb +1 -1
- data/lib/aws-sdk-sso.rb +1 -1
- data/lib/aws-sdk-ssooidc/client.rb +14 -3
- data/lib/aws-sdk-ssooidc/client_api.rb +6 -0
- data/lib/aws-sdk-ssooidc/types.rb +28 -1
- data/lib/aws-sdk-ssooidc.rb +1 -1
- data/lib/aws-sdk-sts/client.rb +1 -1
- data/lib/aws-sdk-sts.rb +1 -1
- data/lib/seahorse/client/async_base.rb +4 -5
- data/lib/seahorse/client/h2/connection.rb +18 -28
- data/lib/seahorse/client/plugins/h2.rb +4 -4
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60d14e86ef70bbaf2d67ef1e0b4eae11af4deb68b18bdab4137666397fb21baa
|
4
|
+
data.tar.gz: 7a03b144af8e9ce4ebc7c91b4be1f6a582e5b5905b6a2b57a3574e85430268a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34361a1c8fb1e2b92b19f50ef29c9ffd5ab4cd067032a0412ff352c660ea24f97fe92a635038e91dc16eacf05647af6884120154ab0ead29442f8bc5f52b2c9c
|
7
|
+
data.tar.gz: 65a11e4900fda955ec95162dbbba0dc0ef29f4007d2067f5351f6da992ef8e7636735e696d175fb6187352a681713390bd4f37ea7182f4ceda61da7f785240b9
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,35 @@
|
|
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
|
+
|
4
33
|
3.220.0 (2025-03-04)
|
5
34
|
------------------
|
6
35
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
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
|
-
@
|
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 = @
|
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
|
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
|
-
|
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
|
251
|
-
|
252
|
-
|
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
|
260
|
-
|
261
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
-
|
64
|
-
|
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(
|
data/lib/aws-sdk-sso/client.rb
CHANGED
data/lib/aws-sdk-sso.rb
CHANGED
@@ -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<String>
|
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://
|
1007
|
-
# verification_uri_complete: "https://
|
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.
|
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
|
data/lib/aws-sdk-ssooidc.rb
CHANGED
data/lib/aws-sdk-sts/client.rb
CHANGED
data/lib/aws-sdk-sts.rb
CHANGED
@@ -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(
|
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(@
|
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:
|
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
|
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
|
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 =
|
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
|
226
|
-
ssl_ctx.ca_path = ssl_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:
|
57
|
-
Set to `
|
58
|
-
|
59
|
-
|
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.
|
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-03-
|
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:
|