aws-sdk-core 3.96.1 → 3.99.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/VERSION +1 -1
- data/lib/aws-sdk-core/binary/event_parser.rb +3 -3
- data/lib/aws-sdk-core/errors.rb +32 -6
- data/lib/aws-sdk-core/log/param_filter.rb +1 -1
- data/lib/aws-sdk-core/plugins/endpoint_discovery.rb +9 -3
- data/lib/aws-sdk-core/plugins/http_checksum.rb +55 -0
- data/lib/aws-sdk-core/plugins/regional_endpoint.rb +17 -14
- data/lib/aws-sdk-core/plugins/retry_errors.rb +1 -5
- data/lib/aws-sdk-core/stubbing/protocols/rest.rb +28 -4
- data/lib/aws-sdk-sts.rb +1 -1
- data/lib/aws-sdk-sts/client.rb +5 -3
- data/lib/seahorse/client/block_io.rb +1 -0
- data/lib/seahorse/client/plugin.rb +3 -3
- data/lib/seahorse/client/plugins/endpoint.rb +2 -2
- data/lib/seahorse/client/plugins/response_target.rb +16 -7
- data/lib/seahorse/model/api.rb +4 -0
- data/lib/seahorse/model/operation.rb +3 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cf03bdc54ae7d2b3aaca392c246e2448afe60816e850b6f2389945be397a27f7
|
4
|
+
data.tar.gz: 0615a87c2daa9bc86e416d7403aedf6d934f5694dd1efda76d6821c0caa12ebd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8a9b4ba7e6cb3be4ab9fc0905a03162c5cc4b2d12509ebfb53eee3a0098f9f74ed0a5634df1f06f16a4101243c5c59c1e9aac2ed7d4f5ed90f1d068b30573856
|
7
|
+
data.tar.gz: f625151a68e124037dd2b0a42067a736b0562bebf975649721896d84460d4e830fad4a879d744ff45af39979f1fc75db5516ebc71b67150b412c8272afc90d01
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.99.2
|
@@ -78,9 +78,9 @@ module Aws
|
|
78
78
|
|
79
79
|
# locate event from eventstream
|
80
80
|
name, ref = @rules.shape.member_by_location_name(event_type)
|
81
|
-
unless ref.event
|
82
|
-
|
83
|
-
|
81
|
+
unless ref && ref.event
|
82
|
+
return Struct.new(:event_type, :raw_event_type, :raw_event)
|
83
|
+
.new(:unknown_event, event_type, raw_event)
|
84
84
|
end
|
85
85
|
|
86
86
|
event = ref.shape.struct_class.new
|
data/lib/aws-sdk-core/errors.rb
CHANGED
@@ -208,12 +208,40 @@ module Aws
|
|
208
208
|
# Raised when a client is constructed and region is not specified.
|
209
209
|
class MissingRegionError < ArgumentError
|
210
210
|
def initialize(*args)
|
211
|
-
msg = '
|
212
|
-
|
211
|
+
msg = 'No region was provided. Configure the `:region` option or '\
|
212
|
+
"export the region name to ENV['AWS_REGION']"
|
213
213
|
super(msg)
|
214
214
|
end
|
215
215
|
end
|
216
216
|
|
217
|
+
# Raised when a client is contsructed and the region is not valid.
|
218
|
+
class InvalidRegionError < ArgumentError
|
219
|
+
def initialize(*args)
|
220
|
+
super(<<-MSG)
|
221
|
+
Invalid `:region` option was provided.
|
222
|
+
|
223
|
+
* Not every service is available in every region.
|
224
|
+
|
225
|
+
* Never suffix region names with availability zones.
|
226
|
+
Use "us-east-1", not "us-east-1a"
|
227
|
+
|
228
|
+
Known AWS regions include (not specific to this service):
|
229
|
+
|
230
|
+
#{possible_regions}
|
231
|
+
MSG
|
232
|
+
end
|
233
|
+
|
234
|
+
private
|
235
|
+
|
236
|
+
def possible_regions
|
237
|
+
Aws.partitions.each_with_object([]) do |partition, region_names|
|
238
|
+
partition.regions.each do |region|
|
239
|
+
region_names << region.name
|
240
|
+
end
|
241
|
+
end.join("\n")
|
242
|
+
end
|
243
|
+
end
|
244
|
+
|
217
245
|
# Raised when attempting to connect to an endpoint and a `SocketError`
|
218
246
|
# is received from the HTTP client. This error is typically the result
|
219
247
|
# of configuring an invalid `:region`.
|
@@ -226,7 +254,7 @@ module Aws
|
|
226
254
|
super(<<-MSG)
|
227
255
|
Encountered a `SocketError` while attempting to connect to:
|
228
256
|
|
229
|
-
#{endpoint
|
257
|
+
#{endpoint}
|
230
258
|
|
231
259
|
This is typically the result of an invalid `:region` option or a
|
232
260
|
poorly formatted `:endpoint` option.
|
@@ -255,14 +283,12 @@ Known AWS regions include (not specific to this service):
|
|
255
283
|
private
|
256
284
|
|
257
285
|
def possible_regions
|
258
|
-
Aws.partitions.
|
286
|
+
Aws.partitions.each_with_object([]) do |partition, region_names|
|
259
287
|
partition.regions.each do |region|
|
260
288
|
region_names << region.name
|
261
289
|
end
|
262
|
-
region_names
|
263
290
|
end.join("\n")
|
264
291
|
end
|
265
|
-
|
266
292
|
end
|
267
293
|
|
268
294
|
# Raised when attempting to retry a request
|
@@ -11,7 +11,7 @@ module Aws
|
|
11
11
|
#
|
12
12
|
# @api private
|
13
13
|
# begin
|
14
|
-
SENSITIVE = [:access_token, :account_name, :account_password, :address, :admin_contact, :admin_password, :alexa_for_business_room_arn, :artifact_credentials, :auth_code, :authentication_token, :authorization_result, :backup_plan_tags, :backup_vault_tags, :base_32_string_seed, :block, :block_address, :block_data, :blocks, :body, :bot_configuration, :bot_email, :calling_name, :cause, :client_id, :client_request_token, :client_secret, :comment, :configuration, :copy_source_sse_customer_key, :credentials, :current_password, :custom_attributes, :custom_private_key, :db_password, :default_phone_number, :definition, :description, :destination_access_token, :digest_tip_address, :display_name, :domain_signing_private_key, :e164_phone_number, :email, :email_address, :email_message, :embed_url, :error, :external_meeting_id, :external_model_endpoint_data_blobs, :external_user_id, :fall_back_phone_number, :feedback_token, :file, :first_name, :full_name, :host_key, :id, :id_token, :input, :input_text, :ion_text, :join_token, :key, :key_id, :key_material, :key_store_password, :kms_key_id, :kms_master_key_id, :lambda_function_arn, :last_name, :local_console_password, :master_account_email, :master_user_name, :master_user_password, :meeting_host_id, :message, :metadata, :name, :new_password, :next_password, :notes, :number, :old_password, :outbound_events_https_endpoint, :output, :owner_information, :parameters, :passphrase, :password, :payload, :phone_number, :plaintext, :previous_password, :primary_email, :primary_provisioned_number, :private_key, :private_key_plaintext, :proof, :proposed_password, :proxy_phone_number, :public_key, :qr_code_png, :query, :random_password, :recovery_point_tags, :refresh_token, :registrant_contact, :request_attributes, :resource_arn, :restore_metadata, :revision, :saml_assertion, :search_query, :secret_access_key, :secret_binary, :secret_code, :secret_hash, :secret_string, :secret_to_authenticate_initiator, :secret_to_authenticate_target, :security_token, :service_password, :session_attributes, :session_token, :share_notes, :shared_secret, :slots, :sns_topic_arn, :source_access_token, :sqs_queue_arn, :sse_customer_key, :ssekms_encryption_context, :ssekms_key_id, :status_message, :tag_key_list, :tags, :target_address, :task_parameters, :tech_contact, :temporary_password, :text, :token, :trust_password, :type, :upload_credentials, :upload_url, :uri, :user_data, :user_email, :user_name, :user_password, :username, :value, :values, :variables, :vpn_psk, :web_identity_token, :zip_file]
|
14
|
+
SENSITIVE = [:access_token, :account_name, :account_password, :address, :admin_contact, :admin_password, :alexa_for_business_room_arn, :artifact_credentials, :auth_code, :authentication_token, :authorization_result, :backup_plan_tags, :backup_vault_tags, :base_32_string_seed, :block, :block_address, :block_data, :blocks, :body, :bot_configuration, :bot_email, :calling_name, :cause, :client_id, :client_request_token, :client_secret, :comment, :configuration, :content, :copy_source_sse_customer_key, :credentials, :current_password, :custom_attributes, :custom_private_key, :db_password, :default_phone_number, :definition, :description, :destination_access_token, :digest_tip_address, :display_name, :domain_signing_private_key, :e164_phone_number, :email, :email_address, :email_message, :embed_url, :error, :external_meeting_id, :external_model_endpoint_data_blobs, :external_user_id, :fall_back_phone_number, :feedback_token, :file, :filter_expression, :first_name, :full_name, :host_key, :id, :id_token, :input, :input_text, :ion_text, :join_token, :key, :key_id, :key_material, :key_store_password, :kms_key_id, :kms_master_key_id, :lambda_function_arn, :last_name, :local_console_password, :master_account_email, :master_user_name, :master_user_password, :meeting_host_id, :message, :metadata, :name, :new_password, :next_password, :notes, :number, :old_password, :outbound_events_https_endpoint, :output, :owner_information, :parameters, :passphrase, :password, :payload, :phone_number, :plaintext, :previous_password, :primary_email, :primary_provisioned_number, :private_key, :private_key_plaintext, :proof, :proposed_password, :proxy_phone_number, :public_key, :qr_code_png, :query, :random_password, :recovery_point_tags, :refresh_token, :registrant_contact, :request_attributes, :resource_arn, :restore_metadata, :revision, :saml_assertion, :search_query, :secret_access_key, :secret_binary, :secret_code, :secret_hash, :secret_string, :secret_to_authenticate_initiator, :secret_to_authenticate_target, :security_token, :service_password, :session_attributes, :session_token, :share_notes, :shared_secret, :slots, :sns_topic_arn, :source_access_token, :sqs_queue_arn, :sse_customer_key, :ssekms_encryption_context, :ssekms_key_id, :status_message, :tag_key_list, :tags, :target_address, :task_parameters, :tech_contact, :temporary_password, :text, :token, :trust_password, :type, :upload_credentials, :upload_url, :uri, :user_data, :user_email, :user_name, :user_password, :username, :value, :values, :variables, :vpn_psk, :web_identity_token, :zip_file]
|
15
15
|
# end
|
16
16
|
|
17
17
|
def initialize(options = {})
|
@@ -4,10 +4,10 @@ module Aws
|
|
4
4
|
class EndpointDiscovery < Seahorse::Client::Plugin
|
5
5
|
|
6
6
|
option(:endpoint_discovery,
|
7
|
-
|
7
|
+
doc_default: Proc.new { |options| options[:require_endpoint_discovery] },
|
8
8
|
doc_type: 'Boolean',
|
9
9
|
docstring: <<-DOCS) do |cfg|
|
10
|
-
When set to `true`, endpoint discovery will be enabled for operations when available.
|
10
|
+
When set to `true`, endpoint discovery will be enabled for operations when available.
|
11
11
|
DOCS
|
12
12
|
resolve_endpoint_discovery(cfg)
|
13
13
|
end
|
@@ -102,6 +102,10 @@ the background every 60 secs (default). Defaults to `false`.
|
|
102
102
|
key = cache.extract_key(ctx)
|
103
103
|
|
104
104
|
if required
|
105
|
+
unless ctx.config.endpoint_discovery
|
106
|
+
raise ArgumentError, "Operation #{ctx.operation.name} requires "\
|
107
|
+
'endpoint_discovery to be enabled.'
|
108
|
+
end
|
105
109
|
# required for the operation
|
106
110
|
unless cache.key?(key)
|
107
111
|
cache.update(key, ctx)
|
@@ -151,8 +155,10 @@ the background every 60 secs (default). Defaults to `false`.
|
|
151
155
|
|
152
156
|
def self.resolve_endpoint_discovery(cfg)
|
153
157
|
env = ENV['AWS_ENABLE_ENDPOINT_DISCOVERY']
|
158
|
+
default = cfg.api.require_endpoint_discovery
|
154
159
|
shared_cfg = Aws.shared_config.endpoint_discovery_enabled(profile: cfg.profile)
|
155
|
-
Aws::Util.str_2_bool(env) || Aws::Util.str_2_bool(shared_cfg)
|
160
|
+
resolved = Aws::Util.str_2_bool(env) || Aws::Util.str_2_bool(shared_cfg)
|
161
|
+
env.nil? && shared_cfg.nil? ? default : !!resolved
|
156
162
|
end
|
157
163
|
|
158
164
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'openssl'
|
2
|
+
|
3
|
+
module Aws
|
4
|
+
module Plugins
|
5
|
+
# @api private
|
6
|
+
class HttpChecksum < Seahorse::Client::Plugin
|
7
|
+
# @api private
|
8
|
+
class Handler < Seahorse::Client::Handler
|
9
|
+
CHUNK_SIZE = 1 * 1024 * 1024 # one MB
|
10
|
+
|
11
|
+
def call(context)
|
12
|
+
if context.operation.http_checksum_required
|
13
|
+
body = context.http_request.body
|
14
|
+
context.http_request.headers['Content-Md5'] ||= md5(body)
|
15
|
+
end
|
16
|
+
@handler.call(context)
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
# @param [File, Tempfile, IO#read, String] value
|
22
|
+
# @return [String<MD5>]
|
23
|
+
def md5(value)
|
24
|
+
if (value.is_a?(File) || value.is_a?(Tempfile)) &&
|
25
|
+
!value.path.nil? && File.exist?(value.path)
|
26
|
+
OpenSSL::Digest::MD5.file(value).base64digest
|
27
|
+
elsif value.respond_to?(:read)
|
28
|
+
md5 = OpenSSL::Digest::MD5.new
|
29
|
+
update_in_chunks(md5, value)
|
30
|
+
md5.base64digest
|
31
|
+
else
|
32
|
+
OpenSSL::Digest::MD5.digest(value).base64digest
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def update_in_chunks(digest, io)
|
37
|
+
loop do
|
38
|
+
chunk = io.read(CHUNK_SIZE)
|
39
|
+
break unless chunk
|
40
|
+
digest.update(chunk)
|
41
|
+
end
|
42
|
+
io.rewind
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
|
47
|
+
def add_handlers(handlers, _config)
|
48
|
+
# priority set low to ensure checksum is computed AFTER the request is
|
49
|
+
# built but before it is signed
|
50
|
+
handlers.add(Handler, priority: 10, step: :build)
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -2,10 +2,6 @@ module Aws
|
|
2
2
|
module Plugins
|
3
3
|
# @api private
|
4
4
|
class RegionalEndpoint < Seahorse::Client::Plugin
|
5
|
-
|
6
|
-
# raised when region is not configured
|
7
|
-
MISSING_REGION = 'missing required configuration option :region'
|
8
|
-
|
9
5
|
option(:profile)
|
10
6
|
|
11
7
|
option(:region,
|
@@ -31,13 +27,19 @@ a default `:region` is searched for in the following locations:
|
|
31
27
|
option(:endpoint, doc_type: String, docstring: <<-DOCS) do |cfg|
|
32
28
|
The client endpoint is normally constructed from the `:region`
|
33
29
|
option. You should only configure an `:endpoint` when connecting
|
34
|
-
to test endpoints. This should be a valid HTTP(S) URI.
|
30
|
+
to test or custom endpoints. This should be a valid HTTP(S) URI.
|
35
31
|
DOCS
|
36
32
|
endpoint_prefix = cfg.api.metadata['endpointPrefix']
|
37
33
|
if cfg.region && endpoint_prefix
|
38
34
|
if cfg.respond_to?(:sts_regional_endpoints)
|
39
35
|
sts_regional = cfg.sts_regional_endpoints
|
40
36
|
end
|
37
|
+
|
38
|
+
# check region is a valid RFC host label
|
39
|
+
unless cfg.region =~ /^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{,63}(?<!-)$/
|
40
|
+
raise Errors::InvalidRegionError
|
41
|
+
end
|
42
|
+
|
41
43
|
Aws::Partitions::EndpointProvider.resolve(
|
42
44
|
cfg.region,
|
43
45
|
endpoint_prefix,
|
@@ -47,21 +49,22 @@ to test endpoints. This should be a valid HTTP(S) URI.
|
|
47
49
|
end
|
48
50
|
|
49
51
|
def after_initialize(client)
|
50
|
-
if client.config.region.nil?
|
52
|
+
if client.config.region.nil? || client.config.region == ''
|
51
53
|
raise Errors::MissingRegionError
|
52
54
|
end
|
53
55
|
end
|
54
56
|
|
55
|
-
|
57
|
+
class << self
|
58
|
+
private
|
56
59
|
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
60
|
+
def resolve_region(cfg)
|
61
|
+
keys = %w[AWS_REGION AMAZON_REGION AWS_DEFAULT_REGION]
|
62
|
+
env_region = ENV.values_at(*keys).compact.first
|
63
|
+
env_region = nil if env_region == ''
|
64
|
+
cfg_region = Aws.shared_config.region(profile: cfg.profile)
|
65
|
+
env_region || cfg_region
|
66
|
+
end
|
63
67
|
end
|
64
|
-
|
65
68
|
end
|
66
69
|
end
|
67
70
|
end
|
@@ -174,7 +174,7 @@ a clock skew correction and retry requests with skewed client clocks.
|
|
174
174
|
end
|
175
175
|
|
176
176
|
def self.resolve_max_attempts(cfg)
|
177
|
-
value = ENV['AWS_MAX_ATTEMPTS'] ||
|
177
|
+
value = (ENV['AWS_MAX_ATTEMPTS'] && ENV['AWS_MAX_ATTEMPTS'].to_i) ||
|
178
178
|
Aws.shared_config.max_attempts(profile: cfg.profile) ||
|
179
179
|
3
|
180
180
|
# Raise if provided value is not a positive integer
|
@@ -190,7 +190,6 @@ a clock skew correction and retry requests with skewed client clocks.
|
|
190
190
|
value = ENV['AWS_ADAPTIVE_RETRY_WAIT_TO_FILL'] ||
|
191
191
|
Aws.shared_config.adaptive_retry_wait_to_fill(profile: cfg.profile) ||
|
192
192
|
'true'
|
193
|
-
|
194
193
|
# Raise if provided value is not true or false
|
195
194
|
if value != 'true' && value != 'false'
|
196
195
|
raise ArgumentError,
|
@@ -198,7 +197,6 @@ a clock skew correction and retry requests with skewed client clocks.
|
|
198
197
|
'adaptive_retry_wait_to_fill profile option or for '\
|
199
198
|
'ENV[\'AWS_ADAPTIVE_RETRY_WAIT_TO_FILL\']'
|
200
199
|
end
|
201
|
-
|
202
200
|
value == 'true'
|
203
201
|
end
|
204
202
|
|
@@ -206,7 +204,6 @@ a clock skew correction and retry requests with skewed client clocks.
|
|
206
204
|
value = ENV['AWS_CORRECT_CLOCK_SKEW'] ||
|
207
205
|
Aws.shared_config.correct_clock_skew(profile: cfg.profile) ||
|
208
206
|
'true'
|
209
|
-
|
210
207
|
# Raise if provided value is not true or false
|
211
208
|
if value != 'true' && value != 'false'
|
212
209
|
raise ArgumentError,
|
@@ -214,7 +211,6 @@ a clock skew correction and retry requests with skewed client clocks.
|
|
214
211
|
'correct_clock_skew profile option or for '\
|
215
212
|
'ENV[\'AWS_CORRECT_CLOCK_SKEW\']'
|
216
213
|
end
|
217
|
-
|
218
214
|
value == 'true'
|
219
215
|
end
|
220
216
|
|
@@ -43,7 +43,7 @@ module Aws
|
|
43
43
|
def build_body(api, operation, data)
|
44
44
|
rules = operation.output
|
45
45
|
if head_operation(operation)
|
46
|
-
|
46
|
+
''
|
47
47
|
elsif streaming?(rules)
|
48
48
|
data[rules[:payload]]
|
49
49
|
elsif rules[:payload]
|
@@ -73,7 +73,7 @@ module Aws
|
|
73
73
|
end
|
74
74
|
|
75
75
|
def head_operation(operation)
|
76
|
-
operation.http_method ==
|
76
|
+
operation.http_method == 'HEAD'
|
77
77
|
end
|
78
78
|
|
79
79
|
def eventstream?(rules)
|
@@ -116,8 +116,22 @@ module Aws
|
|
116
116
|
opts
|
117
117
|
end
|
118
118
|
|
119
|
-
def
|
120
|
-
|
119
|
+
def encode_unknown_event(opts, event_type, event_data)
|
120
|
+
# right now h2 events are only rest_json
|
121
|
+
opts[:payload] = StringIO.new(JSON.dump(event_data))
|
122
|
+
opts[:headers][':event-type'] = Aws::EventStream::HeaderValue.new(
|
123
|
+
value: event_type.to_s,
|
124
|
+
type: 'string'
|
125
|
+
)
|
126
|
+
opts[:headers][':message-type'] = Aws::EventStream::HeaderValue.new(
|
127
|
+
value: 'event',
|
128
|
+
type: 'string'
|
129
|
+
)
|
130
|
+
opts
|
131
|
+
end
|
132
|
+
|
133
|
+
def encode_modeled_event(opts, rules, event_type, event_data, builder)
|
134
|
+
event_ref = rules.shape.member(event_type)
|
121
135
|
explicit_payload = false
|
122
136
|
implicit_payload_members = {}
|
123
137
|
event_ref.shape.members.each do |name, ref|
|
@@ -166,6 +180,16 @@ module Aws
|
|
166
180
|
opts
|
167
181
|
end
|
168
182
|
|
183
|
+
def encode_event(opts, rules, event_data, builder)
|
184
|
+
event_type = event_data.delete(:event_type)
|
185
|
+
|
186
|
+
if rules.shape.member?(event_type)
|
187
|
+
encode_modeled_event(opts, rules, event_type, event_data, builder)
|
188
|
+
else
|
189
|
+
encode_unknown_event(opts, event_type, event_data)
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
169
193
|
end
|
170
194
|
end
|
171
195
|
end
|
data/lib/aws-sdk-sts.rb
CHANGED
data/lib/aws-sdk-sts/client.rb
CHANGED
@@ -24,6 +24,7 @@ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
|
|
24
24
|
require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
|
25
25
|
require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
|
26
26
|
require 'aws-sdk-core/plugins/transfer_encoding.rb'
|
27
|
+
require 'aws-sdk-core/plugins/http_checksum.rb'
|
27
28
|
require 'aws-sdk-core/plugins/signature_v4.rb'
|
28
29
|
require 'aws-sdk-core/plugins/protocols/query.rb'
|
29
30
|
require 'aws-sdk-sts/plugins/sts_regional_endpoints.rb'
|
@@ -70,6 +71,7 @@ module Aws::STS
|
|
70
71
|
add_plugin(Aws::Plugins::ClientMetricsPlugin)
|
71
72
|
add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
|
72
73
|
add_plugin(Aws::Plugins::TransferEncoding)
|
74
|
+
add_plugin(Aws::Plugins::HttpChecksum)
|
73
75
|
add_plugin(Aws::Plugins::SignatureV4)
|
74
76
|
add_plugin(Aws::Plugins::Protocols::Query)
|
75
77
|
add_plugin(Aws::STS::Plugins::STSRegionalEndpoints)
|
@@ -163,7 +165,7 @@ module Aws::STS
|
|
163
165
|
# @option options [String] :endpoint
|
164
166
|
# The client endpoint is normally constructed from the `:region`
|
165
167
|
# option. You should only configure an `:endpoint` when connecting
|
166
|
-
# to test endpoints. This should be a valid HTTP(S) URI.
|
168
|
+
# to test or custom endpoints. This should be a valid HTTP(S) URI.
|
167
169
|
#
|
168
170
|
# @option options [Integer] :endpoint_cache_max_entries (1000)
|
169
171
|
# Used for the maximum size limit of the LRU cache storing endpoints data
|
@@ -178,7 +180,7 @@ module Aws::STS
|
|
178
180
|
# requests fetching endpoints information. Defaults to 60 sec.
|
179
181
|
#
|
180
182
|
# @option options [Boolean] :endpoint_discovery (false)
|
181
|
-
# When set to `true`, endpoint discovery will be enabled for operations when available.
|
183
|
+
# When set to `true`, endpoint discovery will be enabled for operations when available.
|
182
184
|
#
|
183
185
|
# @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
|
184
186
|
# The log formatter.
|
@@ -2185,7 +2187,7 @@ module Aws::STS
|
|
2185
2187
|
params: params,
|
2186
2188
|
config: config)
|
2187
2189
|
context[:gem_name] = 'aws-sdk-core'
|
2188
|
-
context[:gem_version] = '3.
|
2190
|
+
context[:gem_version] = '3.99.2'
|
2189
2191
|
Seahorse::Client::Request.new(handlers, context)
|
2190
2192
|
end
|
2191
2193
|
|
@@ -53,7 +53,7 @@ module Seahorse
|
|
53
53
|
# For backwards-compat reasons, the default value can be passed as 2nd
|
54
54
|
# positional argument (before the options hash) or as the `:default` option
|
55
55
|
# in the options hash.
|
56
|
-
if Hash
|
56
|
+
if default.is_a? Hash
|
57
57
|
options = default
|
58
58
|
else
|
59
59
|
options[:default] = default
|
@@ -123,11 +123,11 @@ module Seahorse
|
|
123
123
|
attr_writer :doc_default
|
124
124
|
attr_accessor :docstring
|
125
125
|
|
126
|
-
def doc_default
|
126
|
+
def doc_default(options)
|
127
127
|
if @doc_default.nil? && !default.is_a?(Proc)
|
128
128
|
default
|
129
129
|
else
|
130
|
-
@doc_default
|
130
|
+
@doc_default.respond_to?(:call) ? @doc_default.call(options) : @doc_default
|
131
131
|
end
|
132
132
|
end
|
133
133
|
|
@@ -9,8 +9,8 @@ module Seahorse
|
|
9
9
|
Normally you should not configure the `:endpoint` option
|
10
10
|
directly. This is normally constructed from the `:region`
|
11
11
|
option. Configuring `:endpoint` is normally reserved for
|
12
|
-
connecting to test endpoints. The endpoint should
|
13
|
-
formatted like:
|
12
|
+
connecting to test or custom endpoints. The endpoint should
|
13
|
+
be a URI formatted like:
|
14
14
|
|
15
15
|
'http://example.com'
|
16
16
|
'https://example.com'
|
@@ -28,7 +28,13 @@ module Seahorse
|
|
28
28
|
def add_event_listeners(context, target)
|
29
29
|
handler = self
|
30
30
|
context.http_response.on_headers(200..299) do
|
31
|
-
|
31
|
+
# In a fresh response body will be a StringIO
|
32
|
+
# However, when a request is retried we may have
|
33
|
+
# an existing ManagedFile or BlockIO and those
|
34
|
+
# should be reused.
|
35
|
+
if context.http_response.body.is_a? StringIO
|
36
|
+
context.http_response.body = handler.send(:io, target)
|
37
|
+
end
|
32
38
|
end
|
33
39
|
|
34
40
|
context.http_response.on_success(200..299) do
|
@@ -40,15 +46,18 @@ module Seahorse
|
|
40
46
|
|
41
47
|
context.http_response.on_error do
|
42
48
|
body = context.http_response.body
|
43
|
-
|
49
|
+
|
50
|
+
# When using response_target of file we do not want to write
|
51
|
+
# error messages to the file. So set the body to a new StringIO
|
52
|
+
if body.is_a? ManagedFile
|
53
|
+
File.unlink(body)
|
54
|
+
context.http_response.body = StringIO.new
|
55
|
+
end
|
56
|
+
|
44
57
|
# Aws::S3::Encryption::DecryptHandler (with lower priority)
|
45
58
|
# has callbacks registered after ResponseTarget::Handler,
|
46
59
|
# where http_response.body is an IODecrypter
|
47
|
-
# and has error callbacks handling for it
|
48
|
-
# Thus avoid early remove of IODecrypter at ResponseTarget::Handler
|
49
|
-
unless context.http_response.body.respond_to?(:io)
|
50
|
-
context.http_response.body = StringIO.new
|
51
|
-
end
|
60
|
+
# and has error callbacks handling for it so no action is required here
|
52
61
|
end
|
53
62
|
end
|
54
63
|
|
data/lib/seahorse/model/api.rb
CHANGED
@@ -7,6 +7,7 @@ module Seahorse
|
|
7
7
|
@operations = {}
|
8
8
|
@authorizers = {}
|
9
9
|
@endpoint_operation = nil
|
10
|
+
@require_endpoint_discovery = false
|
10
11
|
end
|
11
12
|
|
12
13
|
# @return [String, nil]
|
@@ -18,6 +19,9 @@ module Seahorse
|
|
18
19
|
# @return [Symbol|nil]
|
19
20
|
attr_accessor :endpoint_operation
|
20
21
|
|
22
|
+
# @return [Boolean|nil]
|
23
|
+
attr_accessor :require_endpoint_discovery
|
24
|
+
|
21
25
|
def operations(&block)
|
22
26
|
if block_given?
|
23
27
|
@operations.each(&block)
|
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.99.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: 2020-
|
11
|
+
date: 2020-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jmespath
|
@@ -141,6 +141,7 @@ files:
|
|
141
141
|
- lib/aws-sdk-core/plugins/event_stream_configuration.rb
|
142
142
|
- lib/aws-sdk-core/plugins/global_configuration.rb
|
143
143
|
- lib/aws-sdk-core/plugins/helpful_socket_errors.rb
|
144
|
+
- lib/aws-sdk-core/plugins/http_checksum.rb
|
144
145
|
- lib/aws-sdk-core/plugins/idempotency_token.rb
|
145
146
|
- lib/aws-sdk-core/plugins/invocation_id.rb
|
146
147
|
- lib/aws-sdk-core/plugins/jsonvalue_converter.rb
|