aws-sdk-core 3.215.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 +96 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-core/cbor/decoder.rb +0 -2
- data/lib/aws-sdk-core/cbor/encoder.rb +2 -2
- data/lib/aws-sdk-core/client_stubs.rb +22 -48
- data/lib/aws-sdk-core/log/param_formatter.rb +7 -3
- data/lib/aws-sdk-core/plugins/checksum_algorithm.rb +332 -170
- data/lib/aws-sdk-core/plugins/http_checksum.rb +2 -8
- data/lib/aws-sdk-core/plugins/sign.rb +1 -1
- data/lib/aws-sdk-core/plugins/stub_responses.rb +24 -8
- data/lib/aws-sdk-core/plugins/user_agent.rb +10 -1
- data/lib/aws-sdk-core/rest/request/headers.rb +1 -1
- data/lib/aws-sdk-core/shared_config.rb +2 -0
- data/lib/aws-sdk-sso/client.rb +52 -29
- data/lib/aws-sdk-sso/endpoint_provider.rb +14 -18
- data/lib/aws-sdk-sso.rb +1 -1
- data/lib/aws-sdk-ssooidc/client.rb +89 -49
- data/lib/aws-sdk-ssooidc/client_api.rb +6 -0
- data/lib/aws-sdk-ssooidc/endpoint_provider.rb +14 -18
- data/lib/aws-sdk-ssooidc/types.rb +48 -16
- data/lib/aws-sdk-ssooidc.rb +1 -1
- data/lib/aws-sdk-sts/client.rb +53 -30
- data/lib/aws-sdk-sts/endpoint_provider.rb +33 -38
- data/lib/aws-sdk-sts/errors.rb +16 -0
- 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/net_http/connection_pool.rb +2 -0
- data/lib/seahorse/client/plugins/h2.rb +4 -4
- data/lib/seahorse/client/response.rb +2 -0
- metadata +36 -8
|
@@ -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.
|
|
@@ -64,34 +83,32 @@ module Aws::SSOOIDC
|
|
|
64
83
|
# @return [String]
|
|
65
84
|
#
|
|
66
85
|
# @!attribute [rw] grant_type
|
|
67
|
-
# Supports the following OAuth grant types:
|
|
68
|
-
# Token. Specify
|
|
69
|
-
# grant type that you want:
|
|
86
|
+
# Supports the following OAuth grant types: Authorization Code, Device
|
|
87
|
+
# Code, and Refresh Token. Specify one of the following values,
|
|
88
|
+
# depending on the grant type that you want:
|
|
89
|
+
#
|
|
90
|
+
# * Authorization Code - `authorization_code`
|
|
70
91
|
#
|
|
71
92
|
# * Device Code - `urn:ietf:params:oauth:grant-type:device_code`
|
|
72
93
|
#
|
|
73
94
|
# * Refresh Token - `refresh_token`
|
|
74
|
-
#
|
|
75
|
-
# For information about how to obtain the device code, see the
|
|
76
|
-
# StartDeviceAuthorization topic.
|
|
77
95
|
# @return [String]
|
|
78
96
|
#
|
|
79
97
|
# @!attribute [rw] device_code
|
|
80
98
|
# Used only when calling this API for the Device Code grant type. This
|
|
81
|
-
# short-
|
|
82
|
-
# comes from the result of the StartDeviceAuthorization API.
|
|
99
|
+
# short-lived code is used to identify this authorization request.
|
|
100
|
+
# This comes from the result of the StartDeviceAuthorization API.
|
|
83
101
|
# @return [String]
|
|
84
102
|
#
|
|
85
103
|
# @!attribute [rw] code
|
|
86
104
|
# Used only when calling this API for the Authorization Code grant
|
|
87
|
-
# type. The short-
|
|
88
|
-
# request.
|
|
89
|
-
# CreateToken API.
|
|
105
|
+
# type. The short-lived code is used to identify this authorization
|
|
106
|
+
# request.
|
|
90
107
|
# @return [String]
|
|
91
108
|
#
|
|
92
109
|
# @!attribute [rw] refresh_token
|
|
93
110
|
# Used only when calling this API for the Refresh Token grant type.
|
|
94
|
-
# This token is used to refresh short-
|
|
111
|
+
# This token is used to refresh short-lived tokens, such as the access
|
|
95
112
|
# token, that might expire.
|
|
96
113
|
#
|
|
97
114
|
# For more information about the features and limitations of the
|
|
@@ -217,7 +234,7 @@ module Aws::SSOOIDC
|
|
|
217
234
|
#
|
|
218
235
|
# @!attribute [rw] code
|
|
219
236
|
# Used only when calling this API for the Authorization Code grant
|
|
220
|
-
# type. This short-
|
|
237
|
+
# type. This short-lived code is used to identify this authorization
|
|
221
238
|
# request. The code is obtained through a redirect from IAM Identity
|
|
222
239
|
# Center to a redirect URI persisted in the Authorization Code
|
|
223
240
|
# GrantOptions for the application.
|
|
@@ -225,7 +242,7 @@ module Aws::SSOOIDC
|
|
|
225
242
|
#
|
|
226
243
|
# @!attribute [rw] refresh_token
|
|
227
244
|
# Used only when calling this API for the Refresh Token grant type.
|
|
228
|
-
# This token is used to refresh short-
|
|
245
|
+
# This token is used to refresh short-lived tokens, such as the access
|
|
229
246
|
# token, that might expire.
|
|
230
247
|
#
|
|
231
248
|
# For more information about the features and limitations of the
|
|
@@ -358,6 +375,13 @@ module Aws::SSOOIDC
|
|
|
358
375
|
# token that is issued is limited to the scopes that are granted.
|
|
359
376
|
# @return [Array<String>]
|
|
360
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
|
+
#
|
|
361
385
|
# @see http://docs.aws.amazon.com/goto/WebAPI/sso-oidc-2019-06-10/CreateTokenWithIAMResponse AWS API Documentation
|
|
362
386
|
#
|
|
363
387
|
class CreateTokenWithIAMResponse < Struct.new(
|
|
@@ -367,7 +391,8 @@ module Aws::SSOOIDC
|
|
|
367
391
|
:refresh_token,
|
|
368
392
|
:id_token,
|
|
369
393
|
:issued_token_type,
|
|
370
|
-
:scope
|
|
394
|
+
:scope,
|
|
395
|
+
:aws_additional_details)
|
|
371
396
|
SENSITIVE = [:access_token, :refresh_token, :id_token]
|
|
372
397
|
include Aws::Structure
|
|
373
398
|
end
|
|
@@ -606,7 +631,14 @@ module Aws::SSOOIDC
|
|
|
606
631
|
# @!attribute [rw] grant_types
|
|
607
632
|
# The list of OAuth 2.0 grant types that are defined by the client.
|
|
608
633
|
# This list is used to restrict the token granting flows available to
|
|
609
|
-
# the client.
|
|
634
|
+
# the client. Supports the following OAuth 2.0 grant types:
|
|
635
|
+
# Authorization Code, Device Code, and Refresh Token.
|
|
636
|
+
#
|
|
637
|
+
# * Authorization Code - `authorization_code`
|
|
638
|
+
#
|
|
639
|
+
# * Device Code - `urn:ietf:params:oauth:grant-type:device_code`
|
|
640
|
+
#
|
|
641
|
+
# * Refresh Token - `refresh_token`
|
|
610
642
|
# @return [Array<String>]
|
|
611
643
|
#
|
|
612
644
|
# @!attribute [rw] issuer_url
|
data/lib/aws-sdk-ssooidc.rb
CHANGED
data/lib/aws-sdk-sts/client.rb
CHANGED
|
@@ -7,35 +7,35 @@
|
|
|
7
7
|
#
|
|
8
8
|
# WARNING ABOUT GENERATED CODE
|
|
9
9
|
|
|
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
|
|
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'
|
|
39
39
|
|
|
40
40
|
module Aws::STS
|
|
41
41
|
# An API client for STS. To construct a client, you need to configure a `:region` and `:credentials`.
|
|
@@ -259,11 +259,34 @@ module Aws::STS
|
|
|
259
259
|
# Used when loading credentials from the shared credentials file
|
|
260
260
|
# at HOME/.aws/credentials. When not specified, 'default' is used.
|
|
261
261
|
#
|
|
262
|
+
# @option options [String] :request_checksum_calculation ("when_supported")
|
|
263
|
+
# Determines when a checksum will be calculated for request payloads. Values are:
|
|
264
|
+
#
|
|
265
|
+
# * `when_supported` - (default) When set, a checksum will be
|
|
266
|
+
# calculated for all request payloads of operations modeled with the
|
|
267
|
+
# `httpChecksum` trait where `requestChecksumRequired` is `true` and/or a
|
|
268
|
+
# `requestAlgorithmMember` is modeled.
|
|
269
|
+
# * `when_required` - When set, a checksum will only be calculated for
|
|
270
|
+
# request payloads of operations modeled with the `httpChecksum` trait where
|
|
271
|
+
# `requestChecksumRequired` is `true` or where a `requestAlgorithmMember`
|
|
272
|
+
# is modeled and supplied.
|
|
273
|
+
#
|
|
262
274
|
# @option options [Integer] :request_min_compression_size_bytes (10240)
|
|
263
275
|
# The minimum size in bytes that triggers compression for request
|
|
264
276
|
# bodies. The value must be non-negative integer value between 0
|
|
265
277
|
# and 10485780 bytes inclusive.
|
|
266
278
|
#
|
|
279
|
+
# @option options [String] :response_checksum_validation ("when_supported")
|
|
280
|
+
# Determines when checksum validation will be performed on response payloads. Values are:
|
|
281
|
+
#
|
|
282
|
+
# * `when_supported` - (default) When set, checksum validation is performed on all
|
|
283
|
+
# response payloads of operations modeled with the `httpChecksum` trait where
|
|
284
|
+
# `responseAlgorithms` is modeled, except when no modeled checksum algorithms
|
|
285
|
+
# are supported.
|
|
286
|
+
# * `when_required` - When set, checksum validation is not performed on
|
|
287
|
+
# response payloads of operations unless the checksum algorithm is supported and
|
|
288
|
+
# the `requestValidationModeMember` member is set to `ENABLED`.
|
|
289
|
+
#
|
|
267
290
|
# @option options [Proc] :retry_backoff
|
|
268
291
|
# A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
|
|
269
292
|
# This option is only used in the `legacy` retry mode.
|
|
@@ -2572,7 +2595,7 @@ module Aws::STS
|
|
|
2572
2595
|
tracer: tracer
|
|
2573
2596
|
)
|
|
2574
2597
|
context[:gem_name] = 'aws-sdk-core'
|
|
2575
|
-
context[:gem_version] = '3.
|
|
2598
|
+
context[:gem_version] = '3.222.1'
|
|
2576
2599
|
Seahorse::Client::Request.new(handlers, context)
|
|
2577
2600
|
end
|
|
2578
2601
|
|
|
@@ -10,98 +10,93 @@
|
|
|
10
10
|
module Aws::STS
|
|
11
11
|
class EndpointProvider
|
|
12
12
|
def resolve_endpoint(parameters)
|
|
13
|
-
region = parameters.region
|
|
14
|
-
|
|
15
|
-
use_fips = parameters.use_fips
|
|
16
|
-
endpoint = parameters.endpoint
|
|
17
|
-
use_global_endpoint = parameters.use_global_endpoint
|
|
18
|
-
if Aws::Endpoints::Matchers.boolean_equals?(use_global_endpoint, true) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.set?(endpoint)) && Aws::Endpoints::Matchers.set?(region) && (partition_result = Aws::Endpoints::Matchers.aws_partition(region)) && Aws::Endpoints::Matchers.boolean_equals?(use_fips, false) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, false)
|
|
19
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "ap-northeast-1")
|
|
13
|
+
if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_global_endpoint, true) && Aws::Endpoints::Matchers.not(Aws::Endpoints::Matchers.set?(parameters.endpoint)) && Aws::Endpoints::Matchers.set?(parameters.region) && (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region)) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, false) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, false)
|
|
14
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ap-northeast-1")
|
|
20
15
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
21
16
|
end
|
|
22
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "ap-south-1")
|
|
17
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ap-south-1")
|
|
23
18
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
24
19
|
end
|
|
25
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "ap-southeast-1")
|
|
20
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ap-southeast-1")
|
|
26
21
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
27
22
|
end
|
|
28
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "ap-southeast-2")
|
|
23
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ap-southeast-2")
|
|
29
24
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
30
25
|
end
|
|
31
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "aws-global")
|
|
26
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "aws-global")
|
|
32
27
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
33
28
|
end
|
|
34
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "ca-central-1")
|
|
29
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "ca-central-1")
|
|
35
30
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
36
31
|
end
|
|
37
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "eu-central-1")
|
|
32
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-central-1")
|
|
38
33
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
39
34
|
end
|
|
40
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "eu-north-1")
|
|
35
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-north-1")
|
|
41
36
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
42
37
|
end
|
|
43
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "eu-west-1")
|
|
38
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-west-1")
|
|
44
39
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
45
40
|
end
|
|
46
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "eu-west-2")
|
|
41
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-west-2")
|
|
47
42
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
48
43
|
end
|
|
49
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "eu-west-3")
|
|
44
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "eu-west-3")
|
|
50
45
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
51
46
|
end
|
|
52
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "sa-east-1")
|
|
47
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "sa-east-1")
|
|
53
48
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
54
49
|
end
|
|
55
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "us-east-1")
|
|
50
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "us-east-1")
|
|
56
51
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
57
52
|
end
|
|
58
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "us-east-2")
|
|
53
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "us-east-2")
|
|
59
54
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
60
55
|
end
|
|
61
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "us-west-1")
|
|
56
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "us-west-1")
|
|
62
57
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
63
58
|
end
|
|
64
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "us-west-2")
|
|
59
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "us-west-2")
|
|
65
60
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
66
61
|
end
|
|
67
|
-
return Aws::Endpoints::Endpoint.new(url: "https://sts.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"#{region}"}]})
|
|
62
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sts.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"#{parameters.region}"}]})
|
|
68
63
|
end
|
|
69
|
-
if Aws::Endpoints::Matchers.set?(endpoint)
|
|
70
|
-
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
|
64
|
+
if Aws::Endpoints::Matchers.set?(parameters.endpoint)
|
|
65
|
+
if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
|
|
71
66
|
raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
|
|
72
67
|
end
|
|
73
|
-
if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
|
|
68
|
+
if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
|
|
74
69
|
raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
|
|
75
70
|
end
|
|
76
|
-
return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
|
|
71
|
+
return Aws::Endpoints::Endpoint.new(url: parameters.endpoint, headers: {}, properties: {})
|
|
77
72
|
end
|
|
78
|
-
if Aws::Endpoints::Matchers.set?(region)
|
|
79
|
-
if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
|
|
80
|
-
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
|
|
73
|
+
if Aws::Endpoints::Matchers.set?(parameters.region)
|
|
74
|
+
if (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region))
|
|
75
|
+
if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
|
|
81
76
|
if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
|
|
82
|
-
return Aws::Endpoints::Endpoint.new(url: "https://sts-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
|
|
77
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sts-fips.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
|
|
83
78
|
end
|
|
84
79
|
raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
|
|
85
80
|
end
|
|
86
|
-
if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
|
|
81
|
+
if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
|
|
87
82
|
if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"), true)
|
|
88
83
|
if Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws-us-gov")
|
|
89
|
-
return Aws::Endpoints::Endpoint.new(url: "https://sts.#{region}.amazonaws.com", headers: {}, properties: {})
|
|
84
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sts.#{parameters.region}.amazonaws.com", headers: {}, properties: {})
|
|
90
85
|
end
|
|
91
|
-
return Aws::Endpoints::Endpoint.new(url: "https://sts-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
|
|
86
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sts-fips.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
|
|
92
87
|
end
|
|
93
88
|
raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
|
|
94
89
|
end
|
|
95
|
-
if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
|
|
90
|
+
if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
|
|
96
91
|
if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
|
|
97
|
-
return Aws::Endpoints::Endpoint.new(url: "https://sts.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
|
|
92
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sts.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
|
|
98
93
|
end
|
|
99
94
|
raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
|
|
100
95
|
end
|
|
101
|
-
if Aws::Endpoints::Matchers.string_equals?(region, "aws-global")
|
|
96
|
+
if Aws::Endpoints::Matchers.string_equals?(parameters.region, "aws-global")
|
|
102
97
|
return Aws::Endpoints::Endpoint.new(url: "https://sts.amazonaws.com", headers: {}, properties: {"authSchemes"=>[{"name"=>"sigv4", "signingName"=>"sts", "signingRegion"=>"us-east-1"}]})
|
|
103
98
|
end
|
|
104
|
-
return Aws::Endpoints::Endpoint.new(url: "https://sts.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
|
|
99
|
+
return Aws::Endpoints::Endpoint.new(url: "https://sts.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
|
|
105
100
|
end
|
|
106
101
|
end
|
|
107
102
|
raise ArgumentError, "Invalid Configuration: Missing Region"
|
data/lib/aws-sdk-sts/errors.rb
CHANGED
|
@@ -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
|
@@ -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)
|