aws-sdk-core 3.82.0 → 3.86.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2d22cd876f546f0134b026ebf16193c7128ecc85
4
- data.tar.gz: b81bc569ccc1a761e644df8e28e0f62239026f43
3
+ metadata.gz: e4f12e315118f644ba06ef0924852cf03db4ae32
4
+ data.tar.gz: 3f784b55c285f300d90a65d043d09ebfc4fbb537
5
5
  SHA512:
6
- metadata.gz: 6761c455d02dbfe5ff4b77c438666ac8d943955564ee9588587b3b9f7ba130d01a88df18bc793fe8264f607e8a1ca7d5ec26b1aad5d2c479246400a4fb148f5d
7
- data.tar.gz: 0d285ce9a4897cd6637fc4a7c76da2e83f4dc4b40dc6c600954ece44d5d7deba261545e7fe5b8d507fa2eb682476d3b46d808f0bbff8c0f2366fc1626d313739
6
+ metadata.gz: 746a4eb2d620470828b3e1d647c5db2669643d04a8348b5c6e1c23d9ccd332ba826af6d2905744f215ccbd1612ed9d1016504dbd2a1f7c566e608eafa8167d60
7
+ data.tar.gz: eb3c70f45e0d9d954ac9e711d6fffaa3358c366c153a020ed99e3eaeb8c941ef750e00e44a9db14f1404d6903afdded7d7227ea8cec05c8a202a69a23c0cc09b
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.82.0
1
+ 3.86.0
@@ -79,6 +79,10 @@ require_relative 'aws-sdk-core/endpoint_cache'
79
79
  require_relative 'aws-sdk-core/client_side_monitoring/request_metrics'
80
80
  require_relative 'aws-sdk-core/client_side_monitoring/publisher'
81
81
 
82
+ # arn
83
+ require_relative 'aws-sdk-core/arn'
84
+ require_relative 'aws-sdk-core/arn_parser'
85
+
82
86
  # aws-sdk-sts is vendored to support Aws::AssumeRoleCredentials
83
87
 
84
88
  require 'aws-sdk-sts'
@@ -0,0 +1,77 @@
1
+ module Aws
2
+ # Create and provide access to components of Amazon Resource Names (ARN).
3
+ #
4
+ # You can create an ARN and access it's components like the following:
5
+ #
6
+ # arn = Aws::ARN.new(
7
+ # partition: 'aws',
8
+ # service: 's3',
9
+ # region: 'us-west-2',
10
+ # account_id: '12345678910',
11
+ # resource: 'foo/bar'
12
+ # )
13
+ # # => #<Aws::ARN ...>
14
+ #
15
+ # arn.to_s
16
+ # # => "arn:aws:s3:us-west-2:12345678910:foo/bar"
17
+ #
18
+ # arn.partition
19
+ # # => 'aws'
20
+ # arn.service
21
+ # # => 's3'
22
+ # arn.resource
23
+ # # => foo/bar
24
+ #
25
+ # # Note: parser available for parsing resource details
26
+ # @see Aws::ARNParser#parse_resource
27
+ #
28
+ # @see https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-arns
29
+ class ARN
30
+
31
+ # @param [Hash] options
32
+ # @option options [String] :partition
33
+ # @option options [String] :service
34
+ # @option options [String] :region
35
+ # @option options [String] :account_id
36
+ # @option options [String] :resource
37
+ def initialize(options = {})
38
+ @partition = options[:partition]
39
+ @service = options[:service]
40
+ @region = options[:region]
41
+ @account_id = options[:account_id]
42
+ @resource = options[:resource]
43
+ end
44
+
45
+ # @return [String]
46
+ attr_reader :partition
47
+
48
+ # @return [String]
49
+ attr_reader :service
50
+
51
+ # @return [String]
52
+ attr_reader :region
53
+
54
+ # @return [String]
55
+ attr_reader :account_id
56
+
57
+ # @return [String]
58
+ attr_reader :resource
59
+
60
+ # Validates ARN contains non-empty required components.
61
+ # Region and account_id can be optional.
62
+ #
63
+ # @return [Boolean]
64
+ def valid?
65
+ !partition.nil? && !partition.empty? &&
66
+ !service.nil? && !service.empty? &&
67
+ !resource.nil? && !resource.empty?
68
+ end
69
+
70
+ # Return the ARN format in string
71
+ #
72
+ # @return [String]
73
+ def to_s
74
+ "arn:#{partition}:#{service}:#{region}:#{account_id}:#{resource}"
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,38 @@
1
+ module Aws
2
+ module ARNParser
3
+ # Parse a string with an ARN format into an {Aws::ARN} object.
4
+ # `InvalidARNError` would be raised when encountering a parsing error or the
5
+ # ARN object contains invalid components (nil/empty).
6
+ #
7
+ # @param [String] arn_str
8
+ #
9
+ # @return [Aws::ARN]
10
+ # @see https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-arns
11
+ def self.parse(arn_str)
12
+ parts = arn_str.nil? ? [] : arn_str.split(':', 6)
13
+ raise Aws::Errors::InvalidARNError if parts.size < 6
14
+
15
+ # part[0] is "arn"
16
+ arn = ARN.new(
17
+ partition: parts[1],
18
+ service: parts[2],
19
+ region: parts[3],
20
+ account_id: parts[4],
21
+ resource: parts[5]
22
+ )
23
+ raise Aws::Errors::InvalidARNError unless arn.valid?
24
+
25
+ arn
26
+ end
27
+
28
+ # Checks whether a String could be a ARN or not. An ARN starts with 'arn:'
29
+ # and has at least 6 segments separated by a colon (:).
30
+ #
31
+ # @param [String] str
32
+ #
33
+ # @return [Boolean]
34
+ def self.arn?(str)
35
+ !str.nil? && str.start_with?('arn:') && str.scan(/:/).length >= 5
36
+ end
37
+ end
38
+ end
@@ -1,5 +1,3 @@
1
- require 'thread'
2
-
3
1
  module Aws
4
2
  module Errors
5
3
 
@@ -125,6 +123,29 @@ module Aws
125
123
 
126
124
  end
127
125
 
126
+ # Raised when ARN string input doesn't follow the standard:
127
+ # https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-arns
128
+ class InvalidARNError < RuntimeError; end
129
+
130
+ # Raised when the region from the ARN string is different from the :region
131
+ # configured on the service client.
132
+ class InvalidARNRegionError < RuntimeError
133
+ def initialize(*args)
134
+ msg = 'ARN region is different from the configured client region.'
135
+ super(msg)
136
+ end
137
+ end
138
+
139
+ # Raised when the partition of the ARN region is different than the
140
+ # partition of the :region configured on the service client.
141
+ class InvalidARNPartitionError < RuntimeError
142
+ def initialize(*args)
143
+ msg = 'ARN region partition is different from the configured '\
144
+ 'client region partition.'
145
+ super(msg)
146
+ end
147
+ end
148
+
128
149
  # Various plugins perform client-side checksums of responses.
129
150
  # This error indicates a checksum failed.
130
151
  class ChecksumError < RuntimeError; end
@@ -29,24 +29,24 @@ module Aws
29
29
  Errno::ENETUNREACH,
30
30
  SocketError,
31
31
  Timeout::Error,
32
- Non200Response,
33
- ]
32
+ Non200Response
33
+ ].freeze
34
34
 
35
35
  # Path base for GET request for profile and credentials
36
36
  # @api private
37
- METADATA_PATH_BASE = '/latest/meta-data/iam/security-credentials/'
37
+ METADATA_PATH_BASE = '/latest/meta-data/iam/security-credentials/'.freeze
38
38
 
39
39
  # Path for PUT request for token
40
40
  # @api private
41
- METADATA_TOKEN_PATH = '/latest/api/token'
41
+ METADATA_TOKEN_PATH = '/latest/api/token'.freeze
42
42
 
43
43
  # @param [Hash] options
44
- # @option options [Integer] :retries (5) Number of times to retry
44
+ # @option options [Integer] :retries (1) Number of times to retry
45
45
  # when retrieving credentials.
46
46
  # @option options [String] :ip_address ('169.254.169.254')
47
47
  # @option options [Integer] :port (80)
48
- # @option options [Float] :http_open_timeout (5)
49
- # @option options [Float] :http_read_timeout (5)
48
+ # @option options [Float] :http_open_timeout (1)
49
+ # @option options [Float] :http_read_timeout (1)
50
50
  # @option options [Numeric, Proc] :delay By default, failures are retried
51
51
  # with exponential back-off, i.e. `sleep(1.2 ** num_failures)`. You can
52
52
  # pass a number of seconds to sleep between failed attempts, or
@@ -57,15 +57,16 @@ module Aws
57
57
  # @option options [Integer] :token_ttl Time-to-Live in seconds for EC2
58
58
  # Metadata Token used for fetching Metadata Profile Credentials, defaults
59
59
  # to 21600 seconds
60
- def initialize options = {}
61
- @retries = options[:retries] || 5
60
+ def initialize(options = {})
61
+ @retries = options[:retries] || 1
62
62
  @ip_address = options[:ip_address] || '169.254.169.254'
63
63
  @port = options[:port] || 80
64
- @http_open_timeout = options[:http_open_timeout] || 5
65
- @http_read_timeout = options[:http_read_timeout] || 5
64
+ @http_open_timeout = options[:http_open_timeout] || 1
65
+ @http_read_timeout = options[:http_read_timeout] || 1
66
66
  @http_debug_output = options[:http_debug_output]
67
67
  @backoff = backoff(options[:backoff])
68
- @token_ttl = options[:token_ttl] || 21600
68
+ @token_ttl = options[:token_ttl] || 21_600
69
+ @token = nil
69
70
  super
70
71
  end
71
72
 
@@ -79,8 +80,8 @@ module Aws
79
80
  def backoff(backoff)
80
81
  case backoff
81
82
  when Proc then backoff
82
- when Numeric then lambda { |_| sleep(backoff) }
83
- else lambda { |num_failures| Kernel.sleep(1.2 ** num_failures) }
83
+ when Numeric then ->(_) { sleep(backoff) }
84
+ else ->(num_failures) { Kernel.sleep(1.2**num_failures) }
84
85
  end
85
86
  end
86
87
 
@@ -99,7 +100,7 @@ module Aws
99
100
  @expiration = c['Expiration'] ? Time.iso8601(c['Expiration']) : nil
100
101
  end
101
102
  rescue JSON::ParserError
102
- raise Aws::Errors::MetadataParserError.new
103
+ raise Aws::Errors::MetadataParserError
103
104
  end
104
105
  end
105
106
 
@@ -117,7 +118,9 @@ module Aws
117
118
  begin
118
119
  retry_errors(NETWORK_ERRORS, max_retries: @retries) do
119
120
  unless token_set?
120
- token_value, ttl = http_put(conn, METADATA_TOKEN_PATH, @token_ttl)
121
+ token_value, ttl = http_put(
122
+ conn, METADATA_TOKEN_PATH, @token_ttl
123
+ )
121
124
  @token = Token.new(token_value, ttl) if token_value && ttl
122
125
  end
123
126
  end
@@ -127,13 +130,10 @@ module Aws
127
130
  @token = nil
128
131
  end
129
132
 
130
- if token_set?
131
- profile_name = http_get(conn, METADATA_PATH_BASE, @token.value).lines.first.strip
132
- http_get(conn, METADATA_PATH_BASE + profile_name, @token.value)
133
- else
134
- profile_name = http_get(conn, METADATA_PATH_BASE).lines.first.strip
135
- http_get(conn, METADATA_PATH_BASE + profile_name)
136
- end
133
+ token = @token.value if token_set?
134
+ metadata = http_get(conn, METADATA_PATH_BASE, token)
135
+ profile_name = metadata.lines.first.strip
136
+ http_get(conn, METADATA_PATH_BASE + profile_name, token)
137
137
  end
138
138
  end
139
139
  rescue
@@ -147,8 +147,7 @@ module Aws
147
147
  end
148
148
 
149
149
  def _metadata_disabled?
150
- flag = ENV["AWS_EC2_METADATA_DISABLED"]
151
- !flag.nil? && flag.downcase == "true"
150
+ ENV.fetch('AWS_EC2_METADATA_DISABLED', 'false').downcase == 'true'
152
151
  end
153
152
 
154
153
  def open_connection
@@ -161,59 +160,54 @@ module Aws
161
160
  end
162
161
 
163
162
  # GET request fetch profile and credentials
164
- def http_get(connection, path, token=nil)
165
- headers = {"User-Agent" => "aws-sdk-ruby3/#{CORE_GEM_VERSION}"}
166
- headers["x-aws-ec2-metadata-token"] = token if token
163
+ def http_get(connection, path, token = nil)
164
+ headers = { 'User-Agent' => "aws-sdk-ruby3/#{CORE_GEM_VERSION}" }
165
+ headers['x-aws-ec2-metadata-token'] = token if token
167
166
  response = connection.request(Net::HTTP::Get.new(path, headers))
168
- if response.code.to_i == 200
169
- response.body
170
- else
171
- raise Non200Response
172
- end
167
+ raise Non200Response unless response.code.to_i == 200
168
+
169
+ response.body
173
170
  end
174
171
 
175
172
  # PUT request fetch token with ttl
176
173
  def http_put(connection, path, ttl)
177
174
  headers = {
178
- "User-Agent" => "aws-sdk-ruby3/#{CORE_GEM_VERSION}",
179
- "x-aws-ec2-metadata-token-ttl-seconds" => ttl.to_s
175
+ 'User-Agent' => "aws-sdk-ruby3/#{CORE_GEM_VERSION}",
176
+ 'x-aws-ec2-metadata-token-ttl-seconds' => ttl.to_s
180
177
  }
181
178
  response = connection.request(Net::HTTP::Put.new(path, headers))
182
179
  case response.code.to_i
183
180
  when 200
184
181
  [
185
182
  response.body,
186
- response.header["x-aws-ec2-metadata-token-ttl-seconds"].to_i
183
+ response.header['x-aws-ec2-metadata-token-ttl-seconds'].to_i
187
184
  ]
188
- when 401
189
- raise TokenExpiredError
190
185
  when 400
191
186
  raise TokenRetrivalError
187
+ when 401
188
+ raise TokenExpiredError
192
189
  else
193
190
  raise Non200Response
194
191
  end
195
192
  end
196
193
 
197
- def retry_errors(error_classes, options = {}, &block)
194
+ def retry_errors(error_classes, options = {}, &_block)
198
195
  max_retries = options[:max_retries]
199
196
  retries = 0
200
197
  begin
201
198
  yield
202
199
  rescue *error_classes
203
- if retries < max_retries
204
- @backoff.call(retries)
205
- retries += 1
206
- retry
207
- else
208
- raise
209
- end
200
+ raise unless retries < max_retries
201
+
202
+ @backoff.call(retries)
203
+ retries += 1
204
+ retry
210
205
  end
211
206
  end
212
207
 
213
208
  # @api private
214
209
  # Token used to fetch IMDS profile and credentials
215
210
  class Token
216
-
217
211
  def initialize(value, ttl)
218
212
  @ttl = ttl
219
213
  @value = value
@@ -226,8 +220,6 @@ module Aws
226
220
  def expired?
227
221
  Time.now - @created_time > @ttl
228
222
  end
229
-
230
223
  end
231
-
232
224
  end
233
225
  end
@@ -171,7 +171,13 @@ module Aws
171
171
  end
172
172
 
173
173
  def _http_response_body(response)
174
- @param_formatter.summarize(response.context.http_response.body_contents)
174
+ if response.context.http_response.body.respond_to?(:rewind)
175
+ @param_formatter.summarize(
176
+ response.context.http_response.body_contents
177
+ )
178
+ else
179
+ ''
180
+ end
175
181
  end
176
182
 
177
183
  def _error_class(response)
@@ -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, :artifact_credentials, :auth_code, :authentication_token, :authorization_result, :backup_plan_tags, :backup_vault_tags, :base_32_string_seed, :block, :block_address, :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, :e164_phone_number, :email, :email_address, :email_message, :embed_url, :error, :external_user_id, :feedback_token, :file, :first_name, :full_name, :host_key, :id, :id_token, :input, :input_text, :ion_text, :join_token, :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_password, :meeting_host_id, :message, :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, :public_key, :qr_code_png, :query, :random_password, :recovery_point_tags, :refresh_token, :registrant_contact, :request_attributes, :revision, :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, :zip_file]
14
+ SENSITIVE = [:access_token, :account_name, :account_password, :address, :admin_contact, :admin_password, :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_model_endpoint_data_blobs, :external_user_id, :feedback_token, :file, :first_name, :full_name, :host_key, :id, :id_token, :input, :input_text, :ion_text, :join_token, :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_password, :meeting_host_id, :message, :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, :public_key, :qr_code_png, :query, :random_password, :recovery_point_tags, :refresh_token, :registrant_contact, :request_attributes, :revision, :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, :zip_file]
15
15
  # end
16
16
 
17
17
  def initialize(options = {})
@@ -183,6 +183,21 @@ module Aws
183
183
  end
184
184
  end
185
185
 
186
+ def s3_use_arn_region(opts = {})
187
+ p = opts[:profile] || @profile_name
188
+ if @config_enabled
189
+ if @parsed_credentials
190
+ value = @parsed_credentials.fetch(p, {})["s3_use_arn_region"]
191
+ end
192
+ if @parsed_config
193
+ value ||= @parsed_config.fetch(p, {})["s3_use_arn_region"]
194
+ end
195
+ value
196
+ else
197
+ nil
198
+ end
199
+ end
200
+
186
201
  def endpoint_discovery(opts = {})
187
202
  p = opts[:profile] || @profile_name
188
203
  if @config_enabled && @parsed_config
@@ -40,6 +40,6 @@ require_relative 'aws-sdk-sts/customizations'
40
40
  # @service
41
41
  module Aws::STS
42
42
 
43
- GEM_VERSION = '3.82.0'
43
+ GEM_VERSION = '3.86.0'
44
44
 
45
45
  end
@@ -2101,7 +2101,7 @@ module Aws::STS
2101
2101
  params: params,
2102
2102
  config: config)
2103
2103
  context[:gem_name] = 'aws-sdk-core'
2104
- context[:gem_version] = '3.82.0'
2104
+ context[:gem_version] = '3.86.0'
2105
2105
  Seahorse::Client::Request.new(handlers, context)
2106
2106
  end
2107
2107
 
@@ -0,0 +1,2 @@
1
+ # utility classes
2
+ require 'aws-sdk-sts/presigner'
@@ -0,0 +1,67 @@
1
+ require 'aws-sigv4'
2
+
3
+ module Aws
4
+ module STS
5
+ # Allows you to create presigned URLs for STS operations.
6
+ #
7
+ # @example
8
+ #
9
+ # signer = Aws::STS::Presigner.new
10
+ # url = signer.get_caller_identity_presigned_url(
11
+ # headers: {"X-K8s-Aws-Id" => 'my-eks-cluster'}
12
+ # )
13
+ class Presigner
14
+ # @option options [Client] :client Optionally provide an existing
15
+ # STS client
16
+ def initialize(options = {})
17
+ @client = options[:client] || Aws::STS::Client.new
18
+ end
19
+
20
+ # Returns a presigned url for get_caller_identity.
21
+ #
22
+ # @option options [Hash] :headers
23
+ # Headers that should be signed and sent along with the request. All
24
+ # x-amz-* headers must be present during signing. Other headers are
25
+ # optional.
26
+ #
27
+ # @return [String] A presigned url string.
28
+ #
29
+ # @example
30
+ #
31
+ # url = signer.get_caller_identity_presigned_url(
32
+ # headers: {"X-K8s-Aws-Id" => 'my-eks-cluster'},
33
+ # )
34
+ #
35
+ # This can be easily converted to a token used by the EKS service:
36
+ # {https://ruby-doc.org/stdlib-2.3.1/libdoc/base64/rdoc/Base64.html#method-i-encode64}
37
+ # "k8s-aws-v1." + Base64.urlsafe_encode64(url).chomp("==")
38
+ def get_caller_identity_presigned_url(options = {})
39
+ req = @client.build_request(:get_session_token, {})
40
+
41
+ param_list = Aws::Query::ParamList.new
42
+ param_list.set('Action', 'GetCallerIdentity')
43
+ param_list.set('Version', req.context.config.api.version)
44
+ Aws::Query::EC2ParamBuilder.new(param_list)
45
+ .apply(req.context.operation.input, {})
46
+
47
+ signer = Aws::Sigv4::Signer.new(
48
+ service: 'sts',
49
+ region: req.context.config.region,
50
+ credentials_provider: req.context.config.credentials
51
+ )
52
+
53
+ url = Aws::Partitions::EndpointProvider.resolve(
54
+ req.context.config.region, 'sts', 'regional'
55
+ )
56
+ url += "/?#{param_list}"
57
+
58
+ signer.presign_url(
59
+ http_method: 'GET',
60
+ url: url,
61
+ body: '',
62
+ headers: options[:headers]
63
+ ).to_s
64
+ end
65
+ end
66
+ end
67
+ end
@@ -48,6 +48,8 @@ module Seahorse
48
48
  @errors = []
49
49
  @status = :ready
50
50
  @mutex = Mutex.new # connection can be shared across requests
51
+ @socket = nil
52
+ @socket_thread = nil
51
53
  end
52
54
 
53
55
  OPTIONS.keys.each do |attr_name|
@@ -173,9 +173,11 @@ module Seahorse
173
173
  end
174
174
 
175
175
  def _http_response_body(response)
176
- response.context.http_response.body.respond_to?(:rewind) ?
177
- summarize_value(response.context.http_response.body_contents) :
176
+ if response.context.http_response.body.respond_to?(:rewind)
177
+ summarize_value(response.context.http_response.body_contents)
178
+ else
178
179
  ''
180
+ end
179
181
  end
180
182
 
181
183
  def _error_class(response)
@@ -109,6 +109,7 @@ module Seahorse
109
109
 
110
110
  def initialize(name, options = {})
111
111
  @name = name
112
+ @doc_default = nil
112
113
  options.each_pair do |opt_name, opt_value|
113
114
  self.send("#{opt_name}=", opt_value)
114
115
  end
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.82.0
4
+ version: 3.86.0
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: 2019-11-25 00:00:00.000000000 Z
11
+ date: 2019-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jmespath
@@ -88,6 +88,8 @@ files:
88
88
  - VERSION
89
89
  - ca-bundle.crt
90
90
  - lib/aws-sdk-core.rb
91
+ - lib/aws-sdk-core/arn.rb
92
+ - lib/aws-sdk-core/arn_parser.rb
91
93
  - lib/aws-sdk-core/assume_role_credentials.rb
92
94
  - lib/aws-sdk-core/assume_role_web_identity_credentials.rb
93
95
  - lib/aws-sdk-core/async_client_stubs.rb
@@ -220,6 +222,7 @@ files:
220
222
  - lib/aws-sdk-sts/customizations.rb
221
223
  - lib/aws-sdk-sts/errors.rb
222
224
  - lib/aws-sdk-sts/plugins/sts_regional_endpoints.rb
225
+ - lib/aws-sdk-sts/presigner.rb
223
226
  - lib/aws-sdk-sts/resource.rb
224
227
  - lib/aws-sdk-sts/types.rb
225
228
  - lib/seahorse.rb