aws-sdk-s3 1.143.0 → 1.156.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +100 -1
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
  5. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +241 -0
  6. data/lib/aws-sdk-s3/bucket.rb +13 -10
  7. data/lib/aws-sdk-s3/bucket_acl.rb +3 -3
  8. data/lib/aws-sdk-s3/bucket_cors.rb +4 -4
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +4 -4
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +4 -4
  11. data/lib/aws-sdk-s3/bucket_logging.rb +3 -3
  12. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_policy.rb +4 -4
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +4 -4
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +5 -5
  18. data/lib/aws-sdk-s3/bucket_website.rb +4 -4
  19. data/lib/aws-sdk-s3/client.rb +370 -314
  20. data/lib/aws-sdk-s3/client_api.rb +15 -6
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
  22. data/lib/aws-sdk-s3/customizations/errors.rb +15 -2
  23. data/lib/aws-sdk-s3/customizations/object.rb +5 -5
  24. data/lib/aws-sdk-s3/customizations.rb +4 -1
  25. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  26. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
  27. data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
  28. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
  29. data/lib/aws-sdk-s3/endpoint_parameters.rb +8 -0
  30. data/lib/aws-sdk-s3/endpoint_provider.rb +7 -6
  31. data/lib/aws-sdk-s3/endpoints.rb +100 -1
  32. data/lib/aws-sdk-s3/express_credentials_provider.rb +27 -4
  33. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  34. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  35. data/lib/aws-sdk-s3/multipart_file_uploader.rb +4 -3
  36. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +6 -4
  37. data/lib/aws-sdk-s3/multipart_upload.rb +4 -4
  38. data/lib/aws-sdk-s3/multipart_upload_part.rb +3 -3
  39. data/lib/aws-sdk-s3/object.rb +30 -12
  40. data/lib/aws-sdk-s3/object_acl.rb +3 -3
  41. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  42. data/lib/aws-sdk-s3/object_multipart_copier.rb +10 -8
  43. data/lib/aws-sdk-s3/object_summary.rb +10 -10
  44. data/lib/aws-sdk-s3/object_version.rb +23 -5
  45. data/lib/aws-sdk-s3/plugins/access_grants.rb +114 -0
  46. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +8 -2
  47. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  48. data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
  49. data/lib/aws-sdk-s3/presigner.rb +2 -0
  50. data/lib/aws-sdk-s3/resource.rb +3 -3
  51. data/lib/aws-sdk-s3/types.rb +101 -51
  52. data/lib/aws-sdk-s3.rb +1 -1
  53. data/sig/client.rbs +21 -0
  54. data/sig/customizations/bucket.rbs +19 -0
  55. data/sig/customizations/object.rbs +38 -0
  56. data/sig/customizations/object_summary.rbs +35 -0
  57. data/sig/object.rbs +6 -0
  58. data/sig/object_version.rbs +6 -0
  59. data/sig/resource.rbs +3 -0
  60. data/sig/types.rbs +6 -0
  61. data/sig/waiters.rbs +12 -0
  62. metadata +12 -7
  63. data/lib/aws-sdk-s3/express_credentials_cache.rb +0 -30
@@ -2,30 +2,53 @@
2
2
 
3
3
  module Aws
4
4
  module S3
5
+ # @api private
6
+ def self.express_credentials_cache
7
+ @express_credentials_cache ||= LRUCache.new(max_entries: 100)
8
+ end
9
+
5
10
  # Returns Credentials class for S3 Express. Accepts CreateSession
6
11
  # params as options. See {Client#create_session} for details.
7
12
  class ExpressCredentialsProvider
8
13
  # @param [Hash] options
9
- # @option options [Client] :client The S3 client used to create the session.
14
+ # @option options [Client] :client The S3 client used to create the
15
+ # session.
10
16
  # @option options [String] :session_mode (see: {Client#create_session})
17
+ # @option options [Boolean] :caching (true) When true, credentials will
18
+ # be cached.
11
19
  # @option options [Callable] :before_refresh Proc called before
12
20
  # credentials are refreshed.
13
21
  def initialize(options = {})
14
22
  @client = options.delete(:client)
23
+ @caching = options.delete(:caching) != false
15
24
  @options = options
16
- @cache = EXPRESS_CREDENTIALS_CACHE
25
+ return unless @caching
26
+
27
+ @cache = Aws::S3.express_credentials_cache
17
28
  end
18
29
 
19
30
  def express_credentials_for(bucket)
20
- @cache[bucket] || new_credentials_for(bucket)
31
+ if @caching
32
+ cached_credentials_for(bucket)
33
+ else
34
+ new_credentials_for(bucket)
35
+ end
21
36
  end
22
37
 
23
38
  attr_accessor :client
24
39
 
25
40
  private
26
41
 
42
+ def cached_credentials_for(bucket)
43
+ if @cache.key?(bucket)
44
+ @cache[bucket]
45
+ else
46
+ @cache[bucket] = new_credentials_for(bucket)
47
+ end
48
+ end
49
+
27
50
  def new_credentials_for(bucket)
28
- @cache[bucket] = ExpressCredentials.new(
51
+ ExpressCredentials.new(
29
52
  bucket: bucket,
30
53
  client: @client,
31
54
  **@options
@@ -44,7 +44,7 @@ module Aws
44
44
 
45
45
  validate!
46
46
 
47
- Aws::Plugins::UserAgent.feature('s3-transfer') do
47
+ Aws::Plugins::UserAgent.metric('S3_TRANSFER') do
48
48
  case @mode
49
49
  when 'auto' then multipart_download
50
50
  when 'single_request' then single_request
@@ -37,7 +37,7 @@ module Aws
37
37
  # objects smaller than the multipart threshold.
38
38
  # @return [void]
39
39
  def upload(source, options = {})
40
- Aws::Plugins::UserAgent.feature('s3-transfer') do
40
+ Aws::Plugins::UserAgent.metric('S3_TRANSFER') do
41
41
  if File.size(source) >= multipart_threshold
42
42
  MultipartFileUploader.new(@options).upload(source, options)
43
43
  else
@@ -89,12 +89,13 @@ module Aws
89
89
  key: options[:key],
90
90
  upload_id: upload_id
91
91
  )
92
- msg = "multipart upload failed: #{errors.map(&:message).join("; ")}"
92
+ msg = "multipart upload failed: #{errors.map(&:message).join('; ')}"
93
93
  raise MultipartUploadError.new(msg, errors)
94
94
  rescue MultipartUploadError => error
95
95
  raise error
96
96
  rescue => error
97
- msg = "failed to abort multipart upload: #{error.message}"
97
+ msg = "failed to abort multipart upload: #{error.message}. "\
98
+ "Multipart upload failed: #{errors.map(&:message).join('; ')}"
98
99
  raise MultipartUploadError.new(msg, errors + [error])
99
100
  end
100
101
 
@@ -146,7 +147,7 @@ module Aws
146
147
  if (callback = options[:progress_callback])
147
148
  progress = MultipartProgress.new(pending, callback)
148
149
  end
149
- @thread_count.times do
150
+ options.fetch(:thread_count, @thread_count).times do
150
151
  thread = Thread.new do
151
152
  begin
152
153
  while part = pending.shift
@@ -43,9 +43,10 @@ module Aws
43
43
 
44
44
  # @option options [required,String] :bucket
45
45
  # @option options [required,String] :key
46
+ # @option options [Integer] :thread_count (THREAD_COUNT)
46
47
  # @return [Seahorse::Client::Response] - the CompleteMultipartUploadResponse
47
48
  def upload(options = {}, &block)
48
- Aws::Plugins::UserAgent.feature('s3-transfer') do
49
+ Aws::Plugins::UserAgent.metric('S3_TRANSFER') do
49
50
  upload_id = initiate_upload(options)
50
51
  parts = upload_parts(upload_id, options, &block)
51
52
  complete_upload(upload_id, parts, options)
@@ -101,12 +102,13 @@ module Aws
101
102
  key: options[:key],
102
103
  upload_id: upload_id
103
104
  )
104
- msg = "multipart upload failed: #{errors.map(&:message).join("; ")}"
105
+ msg = "multipart upload failed: #{errors.map(&:message).join('; ')}"
105
106
  raise MultipartUploadError.new(msg, errors)
106
107
  rescue MultipartUploadError => error
107
108
  raise error
108
109
  rescue => error
109
- msg = "failed to abort multipart upload: #{error.message}"
110
+ msg = "failed to abort multipart upload: #{error.message}. "\
111
+ "Multipart upload failed: #{errors.map(&:message).join('; ')}"
110
112
  raise MultipartUploadError.new(msg, errors + [error])
111
113
  end
112
114
 
@@ -151,7 +153,7 @@ module Aws
151
153
  def upload_in_threads(read_pipe, completed, options, thread_errors)
152
154
  mutex = Mutex.new
153
155
  part_number = 0
154
- @thread_count.times.map do
156
+ options.fetch(:thread_count, @thread_count).times.map do
155
157
  thread = Thread.new do
156
158
  begin
157
159
  loop do
@@ -227,7 +227,7 @@ module Aws::S3
227
227
  :retry
228
228
  end
229
229
  end
230
- Aws::Plugins::UserAgent.feature('resource') do
230
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
231
231
  Aws::Waiters::Waiter.new(options).wait({})
232
232
  end
233
233
  end
@@ -268,7 +268,7 @@ module Aws::S3
268
268
  key: @object_key,
269
269
  upload_id: @id
270
270
  )
271
- resp = Aws::Plugins::UserAgent.feature('resource') do
271
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
272
272
  @client.abort_multipart_upload(options)
273
273
  end
274
274
  resp.data
@@ -409,7 +409,7 @@ module Aws::S3
409
409
  key: @object_key,
410
410
  upload_id: @id
411
411
  )
412
- Aws::Plugins::UserAgent.feature('resource') do
412
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
413
413
  @client.complete_multipart_upload(options)
414
414
  end
415
415
  Object.new(
@@ -519,7 +519,7 @@ module Aws::S3
519
519
  key: @object_key,
520
520
  upload_id: @id
521
521
  )
522
- resp = Aws::Plugins::UserAgent.feature('resource') do
522
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
523
523
  @client.list_parts(options)
524
524
  end
525
525
  resp.each_page do |page|
@@ -262,7 +262,7 @@ module Aws::S3
262
262
  :retry
263
263
  end
264
264
  end
265
- Aws::Plugins::UserAgent.feature('resource') do
265
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
266
266
  Aws::Waiters::Waiter.new(options).wait({})
267
267
  end
268
268
  end
@@ -500,7 +500,7 @@ module Aws::S3
500
500
  upload_id: @multipart_upload_id,
501
501
  part_number: @part_number
502
502
  )
503
- resp = Aws::Plugins::UserAgent.feature('resource') do
503
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
504
504
  @client.upload_part_copy(options)
505
505
  end
506
506
  resp.data
@@ -650,7 +650,7 @@ module Aws::S3
650
650
  upload_id: @multipart_upload_id,
651
651
  part_number: @part_number
652
652
  )
653
- resp = Aws::Plugins::UserAgent.feature('resource') do
653
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
654
654
  @client.upload_part(options)
655
655
  end
656
656
  resp.data
@@ -500,7 +500,7 @@ module Aws::S3
500
500
  #
501
501
  # @return [self]
502
502
  def load
503
- resp = Aws::Plugins::UserAgent.feature('resource') do
503
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
504
504
  @client.head_object(
505
505
  bucket: @bucket_name,
506
506
  key: @key
@@ -550,7 +550,7 @@ module Aws::S3
550
550
  options, params = separate_params_and_options(options)
551
551
  waiter = Waiters::ObjectExists.new(options)
552
552
  yield_waiter_and_warn(waiter, &block) if block_given?
553
- Aws::Plugins::UserAgent.feature('resource') do
553
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
554
554
  waiter.wait(params.merge(bucket: @bucket_name,
555
555
  key: @key))
556
556
  end
@@ -571,7 +571,7 @@ module Aws::S3
571
571
  options, params = separate_params_and_options(options)
572
572
  waiter = Waiters::ObjectNotExists.new(options)
573
573
  yield_waiter_and_warn(waiter, &block) if block_given?
574
- Aws::Plugins::UserAgent.feature('resource') do
574
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
575
575
  waiter.wait(params.merge(bucket: @bucket_name,
576
576
  key: @key))
577
577
  end
@@ -676,7 +676,7 @@ module Aws::S3
676
676
  :retry
677
677
  end
678
678
  end
679
- Aws::Plugins::UserAgent.feature('resource') do
679
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
680
680
  Aws::Waiters::Waiter.new(options).wait({})
681
681
  end
682
682
  end
@@ -1346,7 +1346,7 @@ module Aws::S3
1346
1346
  bucket: @bucket_name,
1347
1347
  key: @key
1348
1348
  )
1349
- resp = Aws::Plugins::UserAgent.feature('resource') do
1349
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1350
1350
  @client.copy_object(options)
1351
1351
  end
1352
1352
  resp.data
@@ -1412,7 +1412,7 @@ module Aws::S3
1412
1412
  bucket: @bucket_name,
1413
1413
  key: @key
1414
1414
  )
1415
- resp = Aws::Plugins::UserAgent.feature('resource') do
1415
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1416
1416
  @client.delete_object(options)
1417
1417
  end
1418
1418
  resp.data
@@ -1668,7 +1668,7 @@ module Aws::S3
1668
1668
  bucket: @bucket_name,
1669
1669
  key: @key
1670
1670
  )
1671
- resp = Aws::Plugins::UserAgent.feature('resource') do
1671
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1672
1672
  @client.get_object(options, &block)
1673
1673
  end
1674
1674
  resp.data
@@ -2153,7 +2153,7 @@ module Aws::S3
2153
2153
  bucket: @bucket_name,
2154
2154
  key: @key
2155
2155
  )
2156
- resp = Aws::Plugins::UserAgent.feature('resource') do
2156
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2157
2157
  @client.create_multipart_upload(options)
2158
2158
  end
2159
2159
  MultipartUpload.new(
@@ -2624,7 +2624,7 @@ module Aws::S3
2624
2624
  bucket: @bucket_name,
2625
2625
  key: @key
2626
2626
  )
2627
- resp = Aws::Plugins::UserAgent.feature('resource') do
2627
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2628
2628
  @client.put_object(options)
2629
2629
  end
2630
2630
  resp.data
@@ -2765,7 +2765,7 @@ module Aws::S3
2765
2765
  bucket: @bucket_name,
2766
2766
  key: @key
2767
2767
  )
2768
- resp = Aws::Plugins::UserAgent.feature('resource') do
2768
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2769
2769
  @client.restore_object(options)
2770
2770
  end
2771
2771
  resp.data
@@ -2779,6 +2779,12 @@ module Aws::S3
2779
2779
  # if_none_match: "IfNoneMatch",
2780
2780
  # if_unmodified_since: Time.now,
2781
2781
  # range: "Range",
2782
+ # response_cache_control: "ResponseCacheControl",
2783
+ # response_content_disposition: "ResponseContentDisposition",
2784
+ # response_content_encoding: "ResponseContentEncoding",
2785
+ # response_content_language: "ResponseContentLanguage",
2786
+ # response_content_type: "ResponseContentType",
2787
+ # response_expires: Time.now,
2782
2788
  # version_id: "ObjectVersionId",
2783
2789
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2784
2790
  # sse_customer_key: "SSECustomerKey",
@@ -2866,6 +2872,18 @@ module Aws::S3
2866
2872
  # satisfiable, only the `ContentLength` is affected in the response. If
2867
2873
  # the Range is not satisfiable, S3 returns a `416 - Requested Range Not
2868
2874
  # Satisfiable` error.
2875
+ # @option options [String] :response_cache_control
2876
+ # Sets the `Cache-Control` header of the response.
2877
+ # @option options [String] :response_content_disposition
2878
+ # Sets the `Content-Disposition` header of the response.
2879
+ # @option options [String] :response_content_encoding
2880
+ # Sets the `Content-Encoding` header of the response.
2881
+ # @option options [String] :response_content_language
2882
+ # Sets the `Content-Language` header of the response.
2883
+ # @option options [String] :response_content_type
2884
+ # Sets the `Content-Type` header of the response.
2885
+ # @option options [Time,DateTime,Date,Integer,String] :response_expires
2886
+ # Sets the `Expires` header of the response.
2869
2887
  # @option options [String] :version_id
2870
2888
  # Version ID used to reference a specific version of the object.
2871
2889
  #
@@ -2936,7 +2954,7 @@ module Aws::S3
2936
2954
  bucket: @bucket_name,
2937
2955
  key: @key
2938
2956
  )
2939
- resp = Aws::Plugins::UserAgent.feature('resource') do
2957
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2940
2958
  @client.head_object(options)
2941
2959
  end
2942
2960
  resp.data
@@ -3154,7 +3172,7 @@ module Aws::S3
3154
3172
  key: item.key
3155
3173
  }
3156
3174
  end
3157
- Aws::Plugins::UserAgent.feature('resource') do
3175
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
3158
3176
  batch[0].client.delete_objects(params)
3159
3177
  end
3160
3178
  end
@@ -79,7 +79,7 @@ module Aws::S3
79
79
  #
80
80
  # @return [self]
81
81
  def load
82
- resp = Aws::Plugins::UserAgent.feature('resource') do
82
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
83
83
  @client.get_object_acl(
84
84
  bucket: @bucket_name,
85
85
  key: @object_key
@@ -199,7 +199,7 @@ module Aws::S3
199
199
  :retry
200
200
  end
201
201
  end
202
- Aws::Plugins::UserAgent.feature('resource') do
202
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
203
203
  Aws::Waiters::Waiter.new(options).wait({})
204
204
  end
205
205
  end
@@ -332,7 +332,7 @@ module Aws::S3
332
332
  bucket: @bucket_name,
333
333
  key: @object_key
334
334
  )
335
- resp = Aws::Plugins::UserAgent.feature('resource') do
335
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
336
336
  @client.put_object_acl(options)
337
337
  end
338
338
  resp.data
@@ -28,7 +28,7 @@ module Aws
28
28
  options[:bucket] = target_bucket
29
29
  options[:key] = target_key
30
30
  options[:copy_source] = copy_source(source)
31
- Aws::Plugins::UserAgent.feature('s3-transfer') do
31
+ Aws::Plugins::UserAgent.metric('S3_TRANSFER') do
32
32
  if options.delete(:multipart_copy)
33
33
  apply_source_client(source, options)
34
34
  ObjectMultipartCopier.new(@options).copy(options)
@@ -138,9 +138,7 @@ module Aws
138
138
  end
139
139
 
140
140
  def source_metadata(options)
141
- if options[:content_length]
142
- return { content_length: options.delete(:content_length) }
143
- end
141
+ return options.slice(:content_length) if options[:content_length]
144
142
 
145
143
  client = options[:copy_source_client] || @client
146
144
 
@@ -150,11 +148,15 @@ module Aws
150
148
  bucket, key = options[:copy_source].match(/([^\/]+?)\/(.+)/)[1,2]
151
149
  end
152
150
 
153
- key = CGI.unescape(key)
154
- opts = { bucket: bucket, key: key }
155
- opts[:version_id] = version_id if version_id
156
- opts[:part_number] = options[:part_number] if options[:part_number]
157
- client.head_object(opts).to_h
151
+ head_opts = { bucket: bucket, key: CGI.unescape(key) }.tap { |opts|
152
+ opts[:version_id] = version_id if version_id
153
+ opts[:part_number] = options[:part_number] if options[:part_number]
154
+ }
155
+
156
+ client.head_object(head_opts).to_h.tap { |head|
157
+ head.delete(:server_side_encryption)
158
+ head.delete(:ssekms_key_id)
159
+ }
158
160
  end
159
161
 
160
162
  def default_part_size(source_size)
@@ -186,7 +186,7 @@ module Aws::S3
186
186
  options, params = separate_params_and_options(options)
187
187
  waiter = Waiters::ObjectExists.new(options)
188
188
  yield_waiter_and_warn(waiter, &block) if block_given?
189
- Aws::Plugins::UserAgent.feature('resource') do
189
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
190
190
  waiter.wait(params.merge(bucket: @bucket_name,
191
191
  key: @key))
192
192
  end
@@ -207,7 +207,7 @@ module Aws::S3
207
207
  options, params = separate_params_and_options(options)
208
208
  waiter = Waiters::ObjectNotExists.new(options)
209
209
  yield_waiter_and_warn(waiter, &block) if block_given?
210
- Aws::Plugins::UserAgent.feature('resource') do
210
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
211
211
  waiter.wait(params.merge(bucket: @bucket_name,
212
212
  key: @key))
213
213
  end
@@ -312,7 +312,7 @@ module Aws::S3
312
312
  :retry
313
313
  end
314
314
  end
315
- Aws::Plugins::UserAgent.feature('resource') do
315
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
316
316
  Aws::Waiters::Waiter.new(options).wait({})
317
317
  end
318
318
  end
@@ -982,7 +982,7 @@ module Aws::S3
982
982
  bucket: @bucket_name,
983
983
  key: @key
984
984
  )
985
- resp = Aws::Plugins::UserAgent.feature('resource') do
985
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
986
986
  @client.copy_object(options)
987
987
  end
988
988
  resp.data
@@ -1048,7 +1048,7 @@ module Aws::S3
1048
1048
  bucket: @bucket_name,
1049
1049
  key: @key
1050
1050
  )
1051
- resp = Aws::Plugins::UserAgent.feature('resource') do
1051
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1052
1052
  @client.delete_object(options)
1053
1053
  end
1054
1054
  resp.data
@@ -1304,7 +1304,7 @@ module Aws::S3
1304
1304
  bucket: @bucket_name,
1305
1305
  key: @key
1306
1306
  )
1307
- resp = Aws::Plugins::UserAgent.feature('resource') do
1307
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1308
1308
  @client.get_object(options, &block)
1309
1309
  end
1310
1310
  resp.data
@@ -1789,7 +1789,7 @@ module Aws::S3
1789
1789
  bucket: @bucket_name,
1790
1790
  key: @key
1791
1791
  )
1792
- resp = Aws::Plugins::UserAgent.feature('resource') do
1792
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1793
1793
  @client.create_multipart_upload(options)
1794
1794
  end
1795
1795
  MultipartUpload.new(
@@ -2260,7 +2260,7 @@ module Aws::S3
2260
2260
  bucket: @bucket_name,
2261
2261
  key: @key
2262
2262
  )
2263
- resp = Aws::Plugins::UserAgent.feature('resource') do
2263
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2264
2264
  @client.put_object(options)
2265
2265
  end
2266
2266
  resp.data
@@ -2401,7 +2401,7 @@ module Aws::S3
2401
2401
  bucket: @bucket_name,
2402
2402
  key: @key
2403
2403
  )
2404
- resp = Aws::Plugins::UserAgent.feature('resource') do
2404
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2405
2405
  @client.restore_object(options)
2406
2406
  end
2407
2407
  resp.data
@@ -2628,7 +2628,7 @@ module Aws::S3
2628
2628
  key: item.key
2629
2629
  }
2630
2630
  end
2631
- Aws::Plugins::UserAgent.feature('resource') do
2631
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2632
2632
  batch[0].client.delete_objects(params)
2633
2633
  end
2634
2634
  end
@@ -243,7 +243,7 @@ module Aws::S3
243
243
  :retry
244
244
  end
245
245
  end
246
- Aws::Plugins::UserAgent.feature('resource') do
246
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
247
247
  Aws::Waiters::Waiter.new(options).wait({})
248
248
  end
249
249
  end
@@ -303,7 +303,7 @@ module Aws::S3
303
303
  key: @object_key,
304
304
  version_id: @id
305
305
  )
306
- resp = Aws::Plugins::UserAgent.feature('resource') do
306
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
307
307
  @client.delete_object(options)
308
308
  end
309
309
  resp.data
@@ -530,7 +530,7 @@ module Aws::S3
530
530
  key: @object_key,
531
531
  version_id: @id
532
532
  )
533
- resp = Aws::Plugins::UserAgent.feature('resource') do
533
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
534
534
  @client.get_object(options, &block)
535
535
  end
536
536
  resp.data
@@ -544,6 +544,12 @@ module Aws::S3
544
544
  # if_none_match: "IfNoneMatch",
545
545
  # if_unmodified_since: Time.now,
546
546
  # range: "Range",
547
+ # response_cache_control: "ResponseCacheControl",
548
+ # response_content_disposition: "ResponseContentDisposition",
549
+ # response_content_encoding: "ResponseContentEncoding",
550
+ # response_content_language: "ResponseContentLanguage",
551
+ # response_content_type: "ResponseContentType",
552
+ # response_expires: Time.now,
547
553
  # sse_customer_algorithm: "SSECustomerAlgorithm",
548
554
  # sse_customer_key: "SSECustomerKey",
549
555
  # sse_customer_key_md5: "SSECustomerKeyMD5",
@@ -630,6 +636,18 @@ module Aws::S3
630
636
  # satisfiable, only the `ContentLength` is affected in the response. If
631
637
  # the Range is not satisfiable, S3 returns a `416 - Requested Range Not
632
638
  # Satisfiable` error.
639
+ # @option options [String] :response_cache_control
640
+ # Sets the `Cache-Control` header of the response.
641
+ # @option options [String] :response_content_disposition
642
+ # Sets the `Content-Disposition` header of the response.
643
+ # @option options [String] :response_content_encoding
644
+ # Sets the `Content-Encoding` header of the response.
645
+ # @option options [String] :response_content_language
646
+ # Sets the `Content-Language` header of the response.
647
+ # @option options [String] :response_content_type
648
+ # Sets the `Content-Type` header of the response.
649
+ # @option options [Time,DateTime,Date,Integer,String] :response_expires
650
+ # Sets the `Expires` header of the response.
633
651
  # @option options [String] :sse_customer_algorithm
634
652
  # Specifies the algorithm to use when encrypting the object (for
635
653
  # example, AES256).
@@ -694,7 +712,7 @@ module Aws::S3
694
712
  key: @object_key,
695
713
  version_id: @id
696
714
  )
697
- resp = Aws::Plugins::UserAgent.feature('resource') do
715
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
698
716
  @client.head_object(options)
699
717
  end
700
718
  resp.data
@@ -868,7 +886,7 @@ module Aws::S3
868
886
  version_id: item.id
869
887
  }
870
888
  end
871
- Aws::Plugins::UserAgent.feature('resource') do
889
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
872
890
  batch[0].client.delete_objects(params)
873
891
  end
874
892
  end