aws-sdk-core 3.98.0 → 3.99.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/VERSION +1 -1
- 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/http_checksum.rb +55 -0
- data/lib/aws-sdk-core/plugins/regional_endpoint.rb +17 -14
- data/lib/aws-sdk-sts.rb +1 -1
- data/lib/aws-sdk-sts/client.rb +4 -2
- data/lib/seahorse/client/plugins/endpoint.rb +2 -2
- data/lib/seahorse/model/operation.rb +3 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c95e49c7e9f816275a1de25b47c57dfc91498123c3fcd142193c43170d30a55
|
4
|
+
data.tar.gz: 681ba0ab1299839690bc5711d95250caf05a230040075eb1e49317c1d9a7d2e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b53978c3a9f0efc394bafe6263b4f68193620136f657f5197f8f05b3c4de951dfce546e2dda86265d1fd0cccea99b6335539d54fe8ca92ac6582df61a072cf24
|
7
|
+
data.tar.gz: dd885d72012720540a5e5b0f61c3218737a7f0fa1b1d5be6d006e5d3290d630236a7f4a52011e7bcd2f5e6b52decb111e850d9958c6ac65d1b158d994b238b78
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.99.1
|
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, :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]
|
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 = {})
|
@@ -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
|
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
|
@@ -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.0'
|
2189
2191
|
Seahorse::Client::Request.new(handlers, context)
|
2190
2192
|
end
|
2191
2193
|
|
@@ -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'
|
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.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: 2020-06-
|
11
|
+
date: 2020-06-11 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
|
@@ -293,8 +294,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
293
294
|
- !ruby/object:Gem::Version
|
294
295
|
version: '0'
|
295
296
|
requirements: []
|
296
|
-
|
297
|
-
rubygems_version: 2.7.6.2
|
297
|
+
rubygems_version: 3.0.3
|
298
298
|
signing_key:
|
299
299
|
specification_version: 4
|
300
300
|
summary: AWS SDK for Ruby - Core
|