aws-sdk-s3 1.142.0 → 1.208.0

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.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +417 -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 +250 -0
  6. data/lib/aws-sdk-s3/bucket.rb +358 -106
  7. data/lib/aws-sdk-s3/bucket_acl.rb +10 -9
  8. data/lib/aws-sdk-s3/bucket_cors.rb +10 -9
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +11 -6
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +64 -7
  11. data/lib/aws-sdk-s3/bucket_logging.rb +5 -5
  12. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_policy.rb +14 -13
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +6 -6
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +7 -7
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +47 -14
  18. data/lib/aws-sdk-s3/bucket_website.rb +7 -7
  19. data/lib/aws-sdk-s3/client.rb +5671 -2195
  20. data/lib/aws-sdk-s3/client_api.rb +665 -166
  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 +87 -91
  24. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  25. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  26. data/lib/aws-sdk-s3/customizations.rb +28 -36
  27. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  28. data/lib/aws-sdk-s3/encryption/client.rb +4 -4
  29. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +2 -0
  30. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +2 -0
  31. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +4 -2
  32. data/lib/aws-sdk-s3/encryptionV2/client.rb +100 -25
  33. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +7 -162
  34. data/lib/aws-sdk-s3/encryptionV2/decryption.rb +205 -0
  35. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +17 -0
  36. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +2 -0
  37. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
  38. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -2
  39. data/lib/aws-sdk-s3/encryptionV2/utils.rb +5 -0
  40. data/lib/aws-sdk-s3/encryptionV3/client.rb +885 -0
  41. data/lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb +98 -0
  42. data/lib/aws-sdk-s3/encryptionV3/decryption.rb +244 -0
  43. data/lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb +159 -0
  44. data/lib/aws-sdk-s3/encryptionV3/default_key_provider.rb +35 -0
  45. data/lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb +98 -0
  46. data/lib/aws-sdk-s3/encryptionV3/errors.rb +47 -0
  47. data/lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb +60 -0
  48. data/lib/aws-sdk-s3/encryptionV3/io_decrypter.rb +35 -0
  49. data/lib/aws-sdk-s3/encryptionV3/io_encrypter.rb +84 -0
  50. data/lib/aws-sdk-s3/encryptionV3/key_provider.rb +28 -0
  51. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +159 -0
  52. data/lib/aws-sdk-s3/encryptionV3/materials.rb +58 -0
  53. data/lib/aws-sdk-s3/encryptionV3/utils.rb +321 -0
  54. data/lib/aws-sdk-s3/encryption_v2.rb +1 -0
  55. data/lib/aws-sdk-s3/encryption_v3.rb +24 -0
  56. data/lib/aws-sdk-s3/endpoint_parameters.rb +37 -34
  57. data/lib/aws-sdk-s3/endpoint_provider.rb +572 -277
  58. data/lib/aws-sdk-s3/endpoints.rb +566 -1612
  59. data/lib/aws-sdk-s3/errors.rb +58 -0
  60. data/lib/aws-sdk-s3/express_credentials_provider.rb +27 -4
  61. data/lib/aws-sdk-s3/file_downloader.rb +192 -146
  62. data/lib/aws-sdk-s3/file_uploader.rb +10 -14
  63. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  64. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  65. data/lib/aws-sdk-s3/multipart_file_uploader.rb +106 -102
  66. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +99 -108
  67. data/lib/aws-sdk-s3/multipart_upload.rb +112 -12
  68. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  69. data/lib/aws-sdk-s3/multipart_upload_part.rb +55 -39
  70. data/lib/aws-sdk-s3/object.rb +713 -227
  71. data/lib/aws-sdk-s3/object_acl.rb +15 -9
  72. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  73. data/lib/aws-sdk-s3/object_multipart_copier.rb +12 -9
  74. data/lib/aws-sdk-s3/object_summary.rb +592 -173
  75. data/lib/aws-sdk-s3/object_version.rb +102 -17
  76. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  77. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  78. data/lib/aws-sdk-s3/plugins/endpoints.rb +26 -213
  79. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +19 -21
  80. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +55 -18
  81. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  82. data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
  83. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +5 -7
  84. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  85. data/lib/aws-sdk-s3/presigner.rb +7 -5
  86. data/lib/aws-sdk-s3/resource.rb +53 -20
  87. data/lib/aws-sdk-s3/transfer_manager.rb +303 -0
  88. data/lib/aws-sdk-s3/types.rb +4738 -1542
  89. data/lib/aws-sdk-s3.rb +35 -31
  90. data/sig/bucket.rbs +231 -0
  91. data/sig/bucket_acl.rbs +78 -0
  92. data/sig/bucket_cors.rbs +69 -0
  93. data/sig/bucket_lifecycle.rbs +88 -0
  94. data/sig/bucket_lifecycle_configuration.rbs +115 -0
  95. data/sig/bucket_logging.rbs +76 -0
  96. data/sig/bucket_notification.rbs +114 -0
  97. data/sig/bucket_policy.rbs +59 -0
  98. data/sig/bucket_request_payment.rbs +54 -0
  99. data/sig/bucket_tagging.rbs +65 -0
  100. data/sig/bucket_versioning.rbs +77 -0
  101. data/sig/bucket_website.rbs +93 -0
  102. data/sig/client.rbs +2612 -0
  103. data/sig/customizations/bucket.rbs +19 -0
  104. data/sig/customizations/object.rbs +38 -0
  105. data/sig/customizations/object_summary.rbs +35 -0
  106. data/sig/errors.rbs +44 -0
  107. data/sig/multipart_upload.rbs +120 -0
  108. data/sig/multipart_upload_part.rbs +109 -0
  109. data/sig/object.rbs +464 -0
  110. data/sig/object_acl.rbs +86 -0
  111. data/sig/object_summary.rbs +347 -0
  112. data/sig/object_version.rbs +143 -0
  113. data/sig/resource.rbs +141 -0
  114. data/sig/types.rbs +2899 -0
  115. data/sig/waiters.rbs +95 -0
  116. metadata +58 -13
  117. data/lib/aws-sdk-s3/express_credentials_cache.rb +0 -30
  118. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
@@ -34,7 +34,7 @@ module Aws::S3
34
34
  @bucket_name
35
35
  end
36
36
 
37
- # Container for the bucket owner's display name and ID.
37
+ # Container for the bucket owner's ID.
38
38
  # @return [Types::Owner]
39
39
  def owner
40
40
  data[:owner]
@@ -60,7 +60,7 @@ module Aws::S3
60
60
  #
61
61
  # @return [self]
62
62
  def load
63
- resp = Aws::Plugins::UserAgent.feature('resource') do
63
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
64
64
  @client.get_bucket_acl(bucket: @bucket_name)
65
65
  end
66
66
  @data = resp.data
@@ -177,7 +177,7 @@ module Aws::S3
177
177
  :retry
178
178
  end
179
179
  end
180
- Aws::Plugins::UserAgent.feature('resource') do
180
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
181
181
  Aws::Waiters::Waiter.new(options).wait({})
182
182
  end
183
183
  end
@@ -207,7 +207,7 @@ module Aws::S3
207
207
  # },
208
208
  # },
209
209
  # content_md5: "ContentMD5",
210
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
210
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
211
211
  # grant_full_control: "GrantFullControl",
212
212
  # grant_read: "GrantRead",
213
213
  # grant_read_acp: "GrantReadACP",
@@ -222,9 +222,10 @@ module Aws::S3
222
222
  # Contains the elements that set the ACL permissions for an object per
223
223
  # grantee.
224
224
  # @option options [String] :content_md5
225
- # The base64-encoded 128-bit MD5 digest of the data. This header must be
226
- # used as a message integrity check to verify that the request body was
227
- # not corrupted in transit. For more information, go to [RFC 1864.][1]
225
+ # The Base64 encoded 128-bit `MD5` digest of the data. This header must
226
+ # be used as a message integrity check to verify that the request body
227
+ # was not corrupted in transit. For more information, go to [RFC
228
+ # 1864.][1]
228
229
  #
229
230
  # For requests made using the Amazon Web Services Command Line Interface
230
231
  # (CLI) or Amazon Web Services SDKs, this field is calculated
@@ -234,7 +235,7 @@ module Aws::S3
234
235
  #
235
236
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
236
237
  # @option options [String] :checksum_algorithm
237
- # Indicates the algorithm used to create the checksum for the object
238
+ # Indicates the algorithm used to create the checksum for the request
238
239
  # when you use the SDK. This header will not provide any additional
239
240
  # functionality if you don't use the SDK. When you send this header,
240
241
  # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
@@ -269,7 +270,7 @@ module Aws::S3
269
270
  # @return [EmptyStructure]
270
271
  def put(options = {})
271
272
  options = options.merge(bucket: @bucket_name)
272
- resp = Aws::Plugins::UserAgent.feature('resource') do
273
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
273
274
  @client.put_bucket_acl(options)
274
275
  end
275
276
  resp.data
@@ -55,7 +55,7 @@ module Aws::S3
55
55
  #
56
56
  # @return [self]
57
57
  def load
58
- resp = Aws::Plugins::UserAgent.feature('resource') do
58
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
59
59
  @client.get_bucket_cors(bucket: @bucket_name)
60
60
  end
61
61
  @data = resp.data
@@ -172,7 +172,7 @@ module Aws::S3
172
172
  :retry
173
173
  end
174
174
  end
175
- Aws::Plugins::UserAgent.feature('resource') do
175
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
176
176
  Aws::Waiters::Waiter.new(options).wait({})
177
177
  end
178
178
  end
@@ -192,7 +192,7 @@ module Aws::S3
192
192
  # @return [EmptyStructure]
193
193
  def delete(options = {})
194
194
  options = options.merge(bucket: @bucket_name)
195
- resp = Aws::Plugins::UserAgent.feature('resource') do
195
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
196
196
  @client.delete_bucket_cors(options)
197
197
  end
198
198
  resp.data
@@ -214,7 +214,7 @@ module Aws::S3
214
214
  # ],
215
215
  # },
216
216
  # content_md5: "ContentMD5",
217
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
217
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
218
218
  # expected_bucket_owner: "AccountId",
219
219
  # })
220
220
  # @param [Hash] options ({})
@@ -227,9 +227,10 @@ module Aws::S3
227
227
  #
228
228
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html
229
229
  # @option options [String] :content_md5
230
- # The base64-encoded 128-bit MD5 digest of the data. This header must be
231
- # used as a message integrity check to verify that the request body was
232
- # not corrupted in transit. For more information, go to [RFC 1864.][1]
230
+ # The Base64 encoded 128-bit `MD5` digest of the data. This header must
231
+ # be used as a message integrity check to verify that the request body
232
+ # was not corrupted in transit. For more information, go to [RFC
233
+ # 1864.][1]
233
234
  #
234
235
  # For requests made using the Amazon Web Services Command Line Interface
235
236
  # (CLI) or Amazon Web Services SDKs, this field is calculated
@@ -239,7 +240,7 @@ module Aws::S3
239
240
  #
240
241
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
241
242
  # @option options [String] :checksum_algorithm
242
- # Indicates the algorithm used to create the checksum for the object
243
+ # Indicates the algorithm used to create the checksum for the request
243
244
  # when you use the SDK. This header will not provide any additional
244
245
  # functionality if you don't use the SDK. When you send this header,
245
246
  # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
@@ -260,7 +261,7 @@ module Aws::S3
260
261
  # @return [EmptyStructure]
261
262
  def put(options = {})
262
263
  options = options.merge(bucket: @bucket_name)
263
- resp = Aws::Plugins::UserAgent.feature('resource') do
264
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
264
265
  @client.put_bucket_cors(options)
265
266
  end
266
267
  resp.data
@@ -54,7 +54,7 @@ module Aws::S3
54
54
  #
55
55
  # @return [self]
56
56
  def load
57
- resp = Aws::Plugins::UserAgent.feature('resource') do
57
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
58
58
  @client.get_bucket_lifecycle(bucket: @bucket_name)
59
59
  end
60
60
  @data = resp.data
@@ -171,7 +171,7 @@ module Aws::S3
171
171
  :retry
172
172
  end
173
173
  end
174
- Aws::Plugins::UserAgent.feature('resource') do
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
175
  Aws::Waiters::Waiter.new(options).wait({})
176
176
  end
177
177
  end
@@ -188,10 +188,15 @@ module Aws::S3
188
188
  # The account ID of the expected bucket owner. If the account ID that
189
189
  # you provide does not match the actual owner of the bucket, the request
190
190
  # fails with the HTTP status code `403 Forbidden` (access denied).
191
+ #
192
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
193
+ # supported for directory bucket lifecycle configurations.
194
+ #
195
+ # </note>
191
196
  # @return [EmptyStructure]
192
197
  def delete(options = {})
193
198
  options = options.merge(bucket: @bucket_name)
194
- resp = Aws::Plugins::UserAgent.feature('resource') do
199
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
195
200
  @client.delete_bucket_lifecycle(options)
196
201
  end
197
202
  resp.data
@@ -201,7 +206,7 @@ module Aws::S3
201
206
  #
202
207
  # bucket_lifecycle.put({
203
208
  # content_md5: "ContentMD5",
204
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
209
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
205
210
  # lifecycle_configuration: {
206
211
  # rules: [ # required
207
212
  # {
@@ -241,7 +246,7 @@ module Aws::S3
241
246
  # (CLI) or Amazon Web Services SDKs, this field is calculated
242
247
  # automatically.
243
248
  # @option options [String] :checksum_algorithm
244
- # Indicates the algorithm used to create the checksum for the object
249
+ # Indicates the algorithm used to create the checksum for the request
245
250
  # when you use the SDK. This header will not provide any additional
246
251
  # functionality if you don't use the SDK. When you send this header,
247
252
  # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
@@ -263,7 +268,7 @@ module Aws::S3
263
268
  # @return [EmptyStructure]
264
269
  def put(options = {})
265
270
  options = options.merge(bucket: @bucket_name)
266
- resp = Aws::Plugins::UserAgent.feature('resource') do
271
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
267
272
  @client.put_bucket_lifecycle(options)
268
273
  end
269
274
  resp.data
@@ -40,6 +40,31 @@ module Aws::S3
40
40
  data[:rules]
41
41
  end
42
42
 
43
+ # Indicates which default minimum object size behavior is applied to the
44
+ # lifecycle configuration.
45
+ #
46
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It isn't
47
+ # supported for directory bucket lifecycle configurations.
48
+ #
49
+ # </note>
50
+ #
51
+ # * `all_storage_classes_128K` - Objects smaller than 128 KB will not
52
+ # transition to any storage class by default.
53
+ #
54
+ # * `varies_by_storage_class` - Objects smaller than 128 KB will
55
+ # transition to Glacier Flexible Retrieval or Glacier Deep Archive
56
+ # storage classes. By default, all other storage classes will prevent
57
+ # transitions smaller than 128 KB.
58
+ #
59
+ # To customize the minimum object size for any transition you can add a
60
+ # filter that specifies a custom `ObjectSizeGreaterThan` or
61
+ # `ObjectSizeLessThan` in the body of your transition rule. Custom
62
+ # filters always take precedence over the default transition behavior.
63
+ # @return [String]
64
+ def transition_default_minimum_object_size
65
+ data[:transition_default_minimum_object_size]
66
+ end
67
+
43
68
  # @!endgroup
44
69
 
45
70
  # @return [Client]
@@ -54,7 +79,7 @@ module Aws::S3
54
79
  #
55
80
  # @return [self]
56
81
  def load
57
- resp = Aws::Plugins::UserAgent.feature('resource') do
82
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
58
83
  @client.get_bucket_lifecycle_configuration(bucket: @bucket_name)
59
84
  end
60
85
  @data = resp.data
@@ -171,7 +196,7 @@ module Aws::S3
171
196
  :retry
172
197
  end
173
198
  end
174
- Aws::Plugins::UserAgent.feature('resource') do
199
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
200
  Aws::Waiters::Waiter.new(options).wait({})
176
201
  end
177
202
  end
@@ -188,10 +213,15 @@ module Aws::S3
188
213
  # The account ID of the expected bucket owner. If the account ID that
189
214
  # you provide does not match the actual owner of the bucket, the request
190
215
  # fails with the HTTP status code `403 Forbidden` (access denied).
216
+ #
217
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
218
+ # supported for directory bucket lifecycle configurations.
219
+ #
220
+ # </note>
191
221
  # @return [EmptyStructure]
192
222
  def delete(options = {})
193
223
  options = options.merge(bucket: @bucket_name)
194
- resp = Aws::Plugins::UserAgent.feature('resource') do
224
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
195
225
  @client.delete_bucket_lifecycle(options)
196
226
  end
197
227
  resp.data
@@ -200,7 +230,7 @@ module Aws::S3
200
230
  # @example Request syntax with placeholder values
201
231
  #
202
232
  # bucket_lifecycle_configuration.put({
203
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
233
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
204
234
  # lifecycle_configuration: {
205
235
  # rules: [ # required
206
236
  # {
@@ -257,10 +287,11 @@ module Aws::S3
257
287
  # ],
258
288
  # },
259
289
  # expected_bucket_owner: "AccountId",
290
+ # transition_default_minimum_object_size: "varies_by_storage_class", # accepts varies_by_storage_class, all_storage_classes_128K
260
291
  # })
261
292
  # @param [Hash] options ({})
262
293
  # @option options [String] :checksum_algorithm
263
- # Indicates the algorithm used to create the checksum for the object
294
+ # Indicates the algorithm used to create the checksum for the request
264
295
  # when you use the SDK. This header will not provide any additional
265
296
  # functionality if you don't use the SDK. When you send this header,
266
297
  # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
@@ -280,10 +311,36 @@ module Aws::S3
280
311
  # The account ID of the expected bucket owner. If the account ID that
281
312
  # you provide does not match the actual owner of the bucket, the request
282
313
  # fails with the HTTP status code `403 Forbidden` (access denied).
283
- # @return [EmptyStructure]
314
+ #
315
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
316
+ # supported for directory bucket lifecycle configurations.
317
+ #
318
+ # </note>
319
+ # @option options [String] :transition_default_minimum_object_size
320
+ # Indicates which default minimum object size behavior is applied to the
321
+ # lifecycle configuration.
322
+ #
323
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
324
+ # supported for directory bucket lifecycle configurations.
325
+ #
326
+ # </note>
327
+ #
328
+ # * `all_storage_classes_128K` - Objects smaller than 128 KB will not
329
+ # transition to any storage class by default.
330
+ #
331
+ # * `varies_by_storage_class` - Objects smaller than 128 KB will
332
+ # transition to Glacier Flexible Retrieval or Glacier Deep Archive
333
+ # storage classes. By default, all other storage classes will prevent
334
+ # transitions smaller than 128 KB.
335
+ #
336
+ # To customize the minimum object size for any transition you can add a
337
+ # filter that specifies a custom `ObjectSizeGreaterThan` or
338
+ # `ObjectSizeLessThan` in the body of your transition rule. Custom
339
+ # filters always take precedence over the default transition behavior.
340
+ # @return [Types::PutBucketLifecycleConfigurationOutput]
284
341
  def put(options = {})
285
342
  options = options.merge(bucket: @bucket_name)
286
- resp = Aws::Plugins::UserAgent.feature('resource') do
343
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
287
344
  @client.put_bucket_lifecycle_configuration(options)
288
345
  end
289
346
  resp.data
@@ -60,7 +60,7 @@ module Aws::S3
60
60
  #
61
61
  # @return [self]
62
62
  def load
63
- resp = Aws::Plugins::UserAgent.feature('resource') do
63
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
64
64
  @client.get_bucket_logging(bucket: @bucket_name)
65
65
  end
66
66
  @data = resp.data
@@ -177,7 +177,7 @@ module Aws::S3
177
177
  :retry
178
178
  end
179
179
  end
180
- Aws::Plugins::UserAgent.feature('resource') do
180
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
181
181
  Aws::Waiters::Waiter.new(options).wait({})
182
182
  end
183
183
  end
@@ -213,7 +213,7 @@ module Aws::S3
213
213
  # },
214
214
  # },
215
215
  # content_md5: "ContentMD5",
216
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
216
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
217
217
  # expected_bucket_owner: "AccountId",
218
218
  # })
219
219
  # @param [Hash] options ({})
@@ -226,7 +226,7 @@ module Aws::S3
226
226
  # (CLI) or Amazon Web Services SDKs, this field is calculated
227
227
  # automatically.
228
228
  # @option options [String] :checksum_algorithm
229
- # Indicates the algorithm used to create the checksum for the object
229
+ # Indicates the algorithm used to create the checksum for the request
230
230
  # when you use the SDK. This header will not provide any additional
231
231
  # functionality if you don't use the SDK. When you send this header,
232
232
  # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
@@ -247,7 +247,7 @@ module Aws::S3
247
247
  # @return [EmptyStructure]
248
248
  def put(options = {})
249
249
  options = options.merge(bucket: @bucket_name)
250
- resp = Aws::Plugins::UserAgent.feature('resource') do
250
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
251
251
  @client.put_bucket_logging(options)
252
252
  end
253
253
  resp.data
@@ -75,7 +75,7 @@ module Aws::S3
75
75
  #
76
76
  # @return [self]
77
77
  def load
78
- resp = Aws::Plugins::UserAgent.feature('resource') do
78
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
79
79
  @client.get_bucket_notification_configuration(bucket: @bucket_name)
80
80
  end
81
81
  @data = resp.data
@@ -192,7 +192,7 @@ module Aws::S3
192
192
  :retry
193
193
  end
194
194
  end
195
- Aws::Plugins::UserAgent.feature('resource') do
195
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
196
196
  Aws::Waiters::Waiter.new(options).wait({})
197
197
  end
198
198
  end
@@ -275,7 +275,7 @@ module Aws::S3
275
275
  # @return [EmptyStructure]
276
276
  def put(options = {})
277
277
  options = options.merge(bucket: @bucket_name)
278
- resp = Aws::Plugins::UserAgent.feature('resource') do
278
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
279
279
  @client.put_bucket_notification_configuration(options)
280
280
  end
281
281
  resp.data
@@ -54,7 +54,7 @@ module Aws::S3
54
54
  #
55
55
  # @return [self]
56
56
  def load
57
- resp = Aws::Plugins::UserAgent.feature('resource') do
57
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
58
58
  @client.get_bucket_policy(bucket: @bucket_name)
59
59
  end
60
60
  @data = resp.data
@@ -171,7 +171,7 @@ module Aws::S3
171
171
  :retry
172
172
  end
173
173
  end
174
- Aws::Plugins::UserAgent.feature('resource') do
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
175
  Aws::Waiters::Waiter.new(options).wait({})
176
176
  end
177
177
  end
@@ -197,7 +197,7 @@ module Aws::S3
197
197
  # @return [EmptyStructure]
198
198
  def delete(options = {})
199
199
  options = options.merge(bucket: @bucket_name)
200
- resp = Aws::Plugins::UserAgent.feature('resource') do
200
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
201
201
  @client.delete_bucket_policy(options)
202
202
  end
203
203
  resp.data
@@ -207,7 +207,7 @@ module Aws::S3
207
207
  #
208
208
  # bucket_policy.put({
209
209
  # content_md5: "ContentMD5",
210
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
210
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
211
211
  # confirm_remove_self_bucket_access: false,
212
212
  # policy: "Policy", # required
213
213
  # expected_bucket_owner: "AccountId",
@@ -224,7 +224,7 @@ module Aws::S3
224
224
  #
225
225
  # </note>
226
226
  # @option options [String] :checksum_algorithm
227
- # Indicates the algorithm used to create the checksum for the object
227
+ # Indicates the algorithm used to create the checksum for the request
228
228
  # when you use the SDK. This header will not provide any additional
229
229
  # functionality if you don't use the SDK. When you send this header,
230
230
  # there must be a corresponding `x-amz-checksum-algorithm ` or
@@ -234,22 +234,23 @@ module Aws::S3
234
234
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
235
235
  # the supported algorithm from the following list:
236
236
  #
237
- # * CRC32
237
+ # * `CRC32`
238
238
  #
239
- # * CRC32C
239
+ # * `CRC32C`
240
240
  #
241
- # * SHA1
241
+ # * `CRC64NVME`
242
242
  #
243
- # * SHA256
243
+ # * `SHA1`
244
+ #
245
+ # * `SHA256`
244
246
  #
245
247
  # For more information, see [Checking object integrity][1] in the
246
248
  # *Amazon S3 User Guide*.
247
249
  #
248
250
  # If the individual checksum value you provide through
249
251
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
250
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
251
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
252
- # that matches the provided value in `x-amz-checksum-algorithm `.
252
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
253
+ # request with a `BadDigest` error.
253
254
  #
254
255
  # <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
255
256
  # is the default checksum algorithm that's used for performance.
@@ -284,7 +285,7 @@ module Aws::S3
284
285
  # @return [EmptyStructure]
285
286
  def put(options = {})
286
287
  options = options.merge(bucket: @bucket_name)
287
- resp = Aws::Plugins::UserAgent.feature('resource') do
288
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
288
289
  @client.put_bucket_policy(options)
289
290
  end
290
291
  resp.data
@@ -15,7 +15,7 @@ module Aws
15
15
  # Registers a block as a callback. This listener is called when a
16
16
  # new bucket/region pair is added to the cache.
17
17
  #
18
- # S3::BUCKET_REGIONS.bucket_added do |bucket_name, region_name|
18
+ # Aws::S3.bucket_region_cache.bucket_added do |bucket_name, region_name|
19
19
  # # ...
20
20
  # end
21
21
  #
@@ -59,6 +59,14 @@ module Aws
59
59
  end
60
60
  end
61
61
 
62
+ # @param [String] key
63
+ # @return [Boolean]
64
+ def key?(key)
65
+ @mutex.synchronize do
66
+ @regions.key?(key)
67
+ end
68
+ end
69
+
62
70
  # @api private
63
71
  def clear
64
72
  @mutex.synchronize { @regions = {} }
@@ -73,9 +81,5 @@ module Aws
73
81
  alias to_h to_hash
74
82
 
75
83
  end
76
-
77
- # @api private
78
- BUCKET_REGIONS = BucketRegionCache.new
79
-
80
84
  end
81
85
  end
@@ -54,7 +54,7 @@ module Aws::S3
54
54
  #
55
55
  # @return [self]
56
56
  def load
57
- resp = Aws::Plugins::UserAgent.feature('resource') do
57
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
58
58
  @client.get_bucket_request_payment(bucket: @bucket_name)
59
59
  end
60
60
  @data = resp.data
@@ -171,7 +171,7 @@ module Aws::S3
171
171
  :retry
172
172
  end
173
173
  end
174
- Aws::Plugins::UserAgent.feature('resource') do
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
175
  Aws::Waiters::Waiter.new(options).wait({})
176
176
  end
177
177
  end
@@ -182,7 +182,7 @@ module Aws::S3
182
182
  #
183
183
  # bucket_request_payment.put({
184
184
  # content_md5: "ContentMD5",
185
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
185
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
186
186
  # request_payment_configuration: { # required
187
187
  # payer: "Requester", # required, accepts Requester, BucketOwner
188
188
  # },
@@ -190,7 +190,7 @@ module Aws::S3
190
190
  # })
191
191
  # @param [Hash] options ({})
192
192
  # @option options [String] :content_md5
193
- # The base64-encoded 128-bit MD5 digest of the data. You must use this
193
+ # The Base64 encoded 128-bit `MD5` digest of the data. You must use this
194
194
  # header as a message integrity check to verify that the request body
195
195
  # was not corrupted in transit. For more information, see [RFC 1864][1].
196
196
  #
@@ -202,7 +202,7 @@ module Aws::S3
202
202
  #
203
203
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
204
204
  # @option options [String] :checksum_algorithm
205
- # Indicates the algorithm used to create the checksum for the object
205
+ # Indicates the algorithm used to create the checksum for the request
206
206
  # when you use the SDK. This header will not provide any additional
207
207
  # functionality if you don't use the SDK. When you send this header,
208
208
  # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
@@ -225,7 +225,7 @@ module Aws::S3
225
225
  # @return [EmptyStructure]
226
226
  def put(options = {})
227
227
  options = options.merge(bucket: @bucket_name)
228
- resp = Aws::Plugins::UserAgent.feature('resource') do
228
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
229
229
  @client.put_bucket_request_payment(options)
230
230
  end
231
231
  resp.data
@@ -54,7 +54,7 @@ module Aws::S3
54
54
  #
55
55
  # @return [self]
56
56
  def load
57
- resp = Aws::Plugins::UserAgent.feature('resource') do
57
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
58
58
  @client.get_bucket_tagging(bucket: @bucket_name)
59
59
  end
60
60
  @data = resp.data
@@ -171,7 +171,7 @@ module Aws::S3
171
171
  :retry
172
172
  end
173
173
  end
174
- Aws::Plugins::UserAgent.feature('resource') do
174
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
175
175
  Aws::Waiters::Waiter.new(options).wait({})
176
176
  end
177
177
  end
@@ -191,7 +191,7 @@ module Aws::S3
191
191
  # @return [EmptyStructure]
192
192
  def delete(options = {})
193
193
  options = options.merge(bucket: @bucket_name)
194
- resp = Aws::Plugins::UserAgent.feature('resource') do
194
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
195
195
  @client.delete_bucket_tagging(options)
196
196
  end
197
197
  resp.data
@@ -201,7 +201,7 @@ module Aws::S3
201
201
  #
202
202
  # bucket_tagging.put({
203
203
  # content_md5: "ContentMD5",
204
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
204
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
205
205
  # tagging: { # required
206
206
  # tag_set: [ # required
207
207
  # {
@@ -214,7 +214,7 @@ module Aws::S3
214
214
  # })
215
215
  # @param [Hash] options ({})
216
216
  # @option options [String] :content_md5
217
- # The base64-encoded 128-bit MD5 digest of the data. You must use this
217
+ # The Base64 encoded 128-bit `MD5` digest of the data. You must use this
218
218
  # header as a message integrity check to verify that the request body
219
219
  # was not corrupted in transit. For more information, see [RFC 1864][1].
220
220
  #
@@ -226,7 +226,7 @@ module Aws::S3
226
226
  #
227
227
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
228
228
  # @option options [String] :checksum_algorithm
229
- # Indicates the algorithm used to create the checksum for the object
229
+ # Indicates the algorithm used to create the checksum for the request
230
230
  # when you use the SDK. This header will not provide any additional
231
231
  # functionality if you don't use the SDK. When you send this header,
232
232
  # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
@@ -249,7 +249,7 @@ module Aws::S3
249
249
  # @return [EmptyStructure]
250
250
  def put(options = {})
251
251
  options = options.merge(bucket: @bucket_name)
252
- resp = Aws::Plugins::UserAgent.feature('resource') do
252
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
253
253
  @client.put_bucket_tagging(options)
254
254
  end
255
255
  resp.data