aws-sdk-core 3.215.0 → 3.222.2
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 +101 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-core/assume_role_credentials.rb +1 -0
- data/lib/aws-sdk-core/assume_role_web_identity_credentials.rb +1 -0
- 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/credential_provider.rb +4 -0
- data/lib/aws-sdk-core/credential_provider_chain.rb +27 -7
- data/lib/aws-sdk-core/credentials.rb +6 -0
- data/lib/aws-sdk-core/ecs_credentials.rb +1 -0
- data/lib/aws-sdk-core/errors.rb +2 -2
- data/lib/aws-sdk-core/instance_profile_credentials.rb +1 -0
- 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/client_metrics_plugin.rb +0 -1
- data/lib/aws-sdk-core/plugins/http_checksum.rb +2 -8
- data/lib/aws-sdk-core/plugins/sign.rb +16 -2
- data/lib/aws-sdk-core/plugins/stub_responses.rb +24 -8
- data/lib/aws-sdk-core/plugins/user_agent.rb +32 -2
- data/lib/aws-sdk-core/process_credentials.rb +1 -1
- data/lib/aws-sdk-core/rest/request/headers.rb +1 -1
- data/lib/aws-sdk-core/shared_config.rb +73 -21
- data/lib/aws-sdk-core/shared_credentials.rb +1 -0
- data/lib/aws-sdk-core/sso_credentials.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/networking_error.rb +1 -1
- data/lib/seahorse/client/plugins/h2.rb +4 -4
- data/lib/seahorse/client/response.rb +2 -0
- metadata +36 -8
@@ -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)
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
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.2
|
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-
|
11
|
+
date: 2025-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: aws-eventstream
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '1'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
22
|
+
version: 1.3.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '1'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
32
|
+
version: 1.3.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: aws-partitions
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -65,7 +65,21 @@ dependencies:
|
|
65
65
|
- !ruby/object:Gem::Version
|
66
66
|
version: '1.9'
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
|
-
name:
|
68
|
+
name: base64
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
type: :runtime
|
75
|
+
prerelease: false
|
76
|
+
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ">="
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '0'
|
81
|
+
- !ruby/object:Gem::Dependency
|
82
|
+
name: jmespath
|
69
83
|
requirement: !ruby/object:Gem::Requirement
|
70
84
|
requirements:
|
71
85
|
- - "~>"
|
@@ -73,7 +87,7 @@ dependencies:
|
|
73
87
|
version: '1'
|
74
88
|
- - ">="
|
75
89
|
- !ruby/object:Gem::Version
|
76
|
-
version: 1.
|
90
|
+
version: 1.6.1
|
77
91
|
type: :runtime
|
78
92
|
prerelease: false
|
79
93
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -83,7 +97,21 @@ dependencies:
|
|
83
97
|
version: '1'
|
84
98
|
- - ">="
|
85
99
|
- !ruby/object:Gem::Version
|
86
|
-
version: 1.
|
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'
|
87
115
|
description: Provides API clients for AWS. This gem is part of the official AWS SDK
|
88
116
|
for Ruby.
|
89
117
|
email:
|