aws-sdk-s3 1.96.2 → 1.132.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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +256 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +226 -76
  5. data/lib/aws-sdk-s3/bucket_acl.rb +30 -7
  6. data/lib/aws-sdk-s3/bucket_cors.rb +35 -10
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +39 -12
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +40 -10
  9. data/lib/aws-sdk-s3/bucket_logging.rb +30 -7
  10. data/lib/aws-sdk-s3/bucket_notification.rb +28 -10
  11. data/lib/aws-sdk-s3/bucket_policy.rb +35 -10
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +30 -7
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +35 -10
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +78 -17
  15. data/lib/aws-sdk-s3/bucket_website.rb +35 -10
  16. data/lib/aws-sdk-s3/client.rb +3854 -2120
  17. data/lib/aws-sdk-s3/client_api.rb +601 -208
  18. data/lib/aws-sdk-s3/customizations/bucket.rb +23 -47
  19. data/lib/aws-sdk-s3/customizations/errors.rb +27 -0
  20. data/lib/aws-sdk-s3/customizations/object.rb +130 -24
  21. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  22. data/lib/aws-sdk-s3/customizations.rb +2 -0
  23. data/lib/aws-sdk-s3/encryption/client.rb +7 -3
  24. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
  25. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  26. data/lib/aws-sdk-s3/encryptionV2/client.rb +7 -3
  27. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -4
  28. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
  29. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  30. data/lib/aws-sdk-s3/endpoint_parameters.rb +146 -0
  31. data/lib/aws-sdk-s3/endpoint_provider.rb +509 -0
  32. data/lib/aws-sdk-s3/endpoints.rb +2150 -0
  33. data/lib/aws-sdk-s3/file_downloader.rb +57 -27
  34. data/lib/aws-sdk-s3/file_uploader.rb +12 -5
  35. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
  36. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +41 -13
  37. data/lib/aws-sdk-s3/multipart_upload.rb +138 -16
  38. data/lib/aws-sdk-s3/multipart_upload_part.rb +144 -18
  39. data/lib/aws-sdk-s3/object.rb +364 -160
  40. data/lib/aws-sdk-s3/object_acl.rb +32 -9
  41. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  42. data/lib/aws-sdk-s3/object_multipart_copier.rb +41 -19
  43. data/lib/aws-sdk-s3/object_summary.rb +291 -123
  44. data/lib/aws-sdk-s3/object_version.rb +99 -46
  45. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -44
  46. data/lib/aws-sdk-s3/plugins/arn.rb +22 -180
  47. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  48. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  49. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -55
  50. data/lib/aws-sdk-s3/plugins/endpoints.rb +262 -0
  51. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  52. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
  53. data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
  54. data/lib/aws-sdk-s3/plugins/s3_signer.rb +35 -100
  55. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  56. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  57. data/lib/aws-sdk-s3/presigned_post.rb +99 -78
  58. data/lib/aws-sdk-s3/presigner.rb +24 -29
  59. data/lib/aws-sdk-s3/resource.rb +25 -3
  60. data/lib/aws-sdk-s3/types.rb +3307 -4625
  61. data/lib/aws-sdk-s3.rb +5 -1
  62. metadata +14 -11
  63. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  64. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  65. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -73
  66. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
@@ -54,7 +54,9 @@ module Aws::S3
54
54
  #
55
55
  # @return [self]
56
56
  def load
57
- resp = @client.get_bucket_tagging(bucket: @bucket_name)
57
+ resp = Aws::Plugins::UserAgent.feature('resource') do
58
+ @client.get_bucket_tagging(bucket: @bucket_name)
59
+ end
58
60
  @data = resp.data
59
61
  self
60
62
  end
@@ -169,7 +171,9 @@ module Aws::S3
169
171
  :retry
170
172
  end
171
173
  end
172
- Aws::Waiters::Waiter.new(options).wait({})
174
+ Aws::Plugins::UserAgent.feature('resource') do
175
+ Aws::Waiters::Waiter.new(options).wait({})
176
+ end
173
177
  end
174
178
 
175
179
  # @!group Actions
@@ -182,12 +186,14 @@ module Aws::S3
182
186
  # @param [Hash] options ({})
183
187
  # @option options [String] :expected_bucket_owner
184
188
  # The account ID of the expected bucket owner. If the bucket is owned by
185
- # a different account, the request will fail with an HTTP `403 (Access
186
- # Denied)` error.
189
+ # a different account, the request fails with the HTTP status code `403
190
+ # Forbidden` (access denied).
187
191
  # @return [EmptyStructure]
188
192
  def delete(options = {})
189
193
  options = options.merge(bucket: @bucket_name)
190
- resp = @client.delete_bucket_tagging(options)
194
+ resp = Aws::Plugins::UserAgent.feature('resource') do
195
+ @client.delete_bucket_tagging(options)
196
+ end
191
197
  resp.data
192
198
  end
193
199
 
@@ -195,6 +201,7 @@ module Aws::S3
195
201
  #
196
202
  # bucket_tagging.put({
197
203
  # content_md5: "ContentMD5",
204
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
198
205
  # tagging: { # required
199
206
  # tag_set: [ # required
200
207
  # {
@@ -211,22 +218,40 @@ module Aws::S3
211
218
  # header as a message integrity check to verify that the request body
212
219
  # was not corrupted in transit. For more information, see [RFC 1864][1].
213
220
  #
214
- # For requests made using the AWS Command Line Interface (CLI) or AWS
215
- # SDKs, this field is calculated automatically.
221
+ # For requests made using the Amazon Web Services Command Line Interface
222
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
223
+ # automatically.
216
224
  #
217
225
  #
218
226
  #
219
227
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
228
+ # @option options [String] :checksum_algorithm
229
+ # Indicates the algorithm used to create the checksum for the object
230
+ # when using the SDK. This header will not provide any additional
231
+ # functionality if not using the SDK. When sending this header, there
232
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
233
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
234
+ # `400 Bad Request`. For more information, see [Checking object
235
+ # integrity][1] in the *Amazon S3 User Guide*.
236
+ #
237
+ # If you provide an individual checksum, Amazon S3 ignores any provided
238
+ # `ChecksumAlgorithm` parameter.
239
+ #
240
+ #
241
+ #
242
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
220
243
  # @option options [required, Types::Tagging] :tagging
221
244
  # Container for the `TagSet` and `Tag` elements.
222
245
  # @option options [String] :expected_bucket_owner
223
246
  # The account ID of the expected bucket owner. If the bucket is owned by
224
- # a different account, the request will fail with an HTTP `403 (Access
225
- # Denied)` error.
247
+ # a different account, the request fails with the HTTP status code `403
248
+ # Forbidden` (access denied).
226
249
  # @return [EmptyStructure]
227
250
  def put(options = {})
228
251
  options = options.merge(bucket: @bucket_name)
229
- resp = @client.put_bucket_tagging(options)
252
+ resp = Aws::Plugins::UserAgent.feature('resource') do
253
+ @client.put_bucket_tagging(options)
254
+ end
230
255
  resp.data
231
256
  end
232
257
 
@@ -63,7 +63,9 @@ module Aws::S3
63
63
  #
64
64
  # @return [self]
65
65
  def load
66
- resp = @client.get_bucket_versioning(bucket: @bucket_name)
66
+ resp = Aws::Plugins::UserAgent.feature('resource') do
67
+ @client.get_bucket_versioning(bucket: @bucket_name)
68
+ end
67
69
  @data = resp.data
68
70
  self
69
71
  end
@@ -178,7 +180,9 @@ module Aws::S3
178
180
  :retry
179
181
  end
180
182
  end
181
- Aws::Waiters::Waiter.new(options).wait({})
183
+ Aws::Plugins::UserAgent.feature('resource') do
184
+ Aws::Waiters::Waiter.new(options).wait({})
185
+ end
182
186
  end
183
187
 
184
188
  # @!group Actions
@@ -187,6 +191,7 @@ module Aws::S3
187
191
  #
188
192
  # bucket_versioning.enable({
189
193
  # content_md5: "ContentMD5",
194
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
190
195
  # mfa: "MFA",
191
196
  # expected_bucket_owner: "AccountId",
192
197
  # })
@@ -197,19 +202,35 @@ module Aws::S3
197
202
  # body was not corrupted in transit. For more information, see [RFC
198
203
  # 1864][1].
199
204
  #
200
- # For requests made using the AWS Command Line Interface (CLI) or AWS
201
- # SDKs, this field is calculated automatically.
205
+ # For requests made using the Amazon Web Services Command Line Interface
206
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
207
+ # automatically.
202
208
  #
203
209
  #
204
210
  #
205
211
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
212
+ # @option options [String] :checksum_algorithm
213
+ # Indicates the algorithm used to create the checksum for the object
214
+ # when using the SDK. This header will not provide any additional
215
+ # functionality if not using the SDK. When sending this header, there
216
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
217
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
218
+ # `400 Bad Request`. For more information, see [Checking object
219
+ # integrity][1] in the *Amazon S3 User Guide*.
220
+ #
221
+ # If you provide an individual checksum, Amazon S3 ignores any provided
222
+ # `ChecksumAlgorithm` parameter.
223
+ #
224
+ #
225
+ #
226
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
206
227
  # @option options [String] :mfa
207
228
  # The concatenation of the authentication device's serial number, a
208
229
  # space, and the value that is displayed on your authentication device.
209
230
  # @option options [String] :expected_bucket_owner
210
231
  # The account ID of the expected bucket owner. If the bucket is owned by
211
- # a different account, the request will fail with an HTTP `403 (Access
212
- # Denied)` error.
232
+ # a different account, the request fails with the HTTP status code `403
233
+ # Forbidden` (access denied).
213
234
  # @return [EmptyStructure]
214
235
  def enable(options = {})
215
236
  options = Aws::Util.deep_merge(options,
@@ -218,7 +239,9 @@ module Aws::S3
218
239
  status: "Enabled"
219
240
  }
220
241
  )
221
- resp = @client.put_bucket_versioning(options)
242
+ resp = Aws::Plugins::UserAgent.feature('resource') do
243
+ @client.put_bucket_versioning(options)
244
+ end
222
245
  resp.data
223
246
  end
224
247
 
@@ -226,6 +249,7 @@ module Aws::S3
226
249
  #
227
250
  # bucket_versioning.put({
228
251
  # content_md5: "ContentMD5",
252
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
229
253
  # mfa: "MFA",
230
254
  # versioning_configuration: { # required
231
255
  # mfa_delete: "Enabled", # accepts Enabled, Disabled
@@ -240,12 +264,28 @@ module Aws::S3
240
264
  # body was not corrupted in transit. For more information, see [RFC
241
265
  # 1864][1].
242
266
  #
243
- # For requests made using the AWS Command Line Interface (CLI) or AWS
244
- # SDKs, this field is calculated automatically.
267
+ # For requests made using the Amazon Web Services Command Line Interface
268
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
269
+ # automatically.
245
270
  #
246
271
  #
247
272
  #
248
273
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
274
+ # @option options [String] :checksum_algorithm
275
+ # Indicates the algorithm used to create the checksum for the object
276
+ # when using the SDK. This header will not provide any additional
277
+ # functionality if not using the SDK. When sending this header, there
278
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
279
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
280
+ # `400 Bad Request`. For more information, see [Checking object
281
+ # integrity][1] in the *Amazon S3 User Guide*.
282
+ #
283
+ # If you provide an individual checksum, Amazon S3 ignores any provided
284
+ # `ChecksumAlgorithm` parameter.
285
+ #
286
+ #
287
+ #
288
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
249
289
  # @option options [String] :mfa
250
290
  # The concatenation of the authentication device's serial number, a
251
291
  # space, and the value that is displayed on your authentication device.
@@ -253,12 +293,14 @@ module Aws::S3
253
293
  # Container for setting the versioning state.
254
294
  # @option options [String] :expected_bucket_owner
255
295
  # The account ID of the expected bucket owner. If the bucket is owned by
256
- # a different account, the request will fail with an HTTP `403 (Access
257
- # Denied)` error.
296
+ # a different account, the request fails with the HTTP status code `403
297
+ # Forbidden` (access denied).
258
298
  # @return [EmptyStructure]
259
299
  def put(options = {})
260
300
  options = options.merge(bucket: @bucket_name)
261
- resp = @client.put_bucket_versioning(options)
301
+ resp = Aws::Plugins::UserAgent.feature('resource') do
302
+ @client.put_bucket_versioning(options)
303
+ end
262
304
  resp.data
263
305
  end
264
306
 
@@ -266,6 +308,7 @@ module Aws::S3
266
308
  #
267
309
  # bucket_versioning.suspend({
268
310
  # content_md5: "ContentMD5",
311
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
269
312
  # mfa: "MFA",
270
313
  # expected_bucket_owner: "AccountId",
271
314
  # })
@@ -276,19 +319,35 @@ module Aws::S3
276
319
  # body was not corrupted in transit. For more information, see [RFC
277
320
  # 1864][1].
278
321
  #
279
- # For requests made using the AWS Command Line Interface (CLI) or AWS
280
- # SDKs, this field is calculated automatically.
322
+ # For requests made using the Amazon Web Services Command Line Interface
323
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
324
+ # automatically.
281
325
  #
282
326
  #
283
327
  #
284
328
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
329
+ # @option options [String] :checksum_algorithm
330
+ # Indicates the algorithm used to create the checksum for the object
331
+ # when using the SDK. This header will not provide any additional
332
+ # functionality if not using the SDK. When sending this header, there
333
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
334
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
335
+ # `400 Bad Request`. For more information, see [Checking object
336
+ # integrity][1] in the *Amazon S3 User Guide*.
337
+ #
338
+ # If you provide an individual checksum, Amazon S3 ignores any provided
339
+ # `ChecksumAlgorithm` parameter.
340
+ #
341
+ #
342
+ #
343
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
285
344
  # @option options [String] :mfa
286
345
  # The concatenation of the authentication device's serial number, a
287
346
  # space, and the value that is displayed on your authentication device.
288
347
  # @option options [String] :expected_bucket_owner
289
348
  # The account ID of the expected bucket owner. If the bucket is owned by
290
- # a different account, the request will fail with an HTTP `403 (Access
291
- # Denied)` error.
349
+ # a different account, the request fails with the HTTP status code `403
350
+ # Forbidden` (access denied).
292
351
  # @return [EmptyStructure]
293
352
  def suspend(options = {})
294
353
  options = Aws::Util.deep_merge(options,
@@ -297,7 +356,9 @@ module Aws::S3
297
356
  status: "Suspended"
298
357
  }
299
358
  )
300
- resp = @client.put_bucket_versioning(options)
359
+ resp = Aws::Plugins::UserAgent.feature('resource') do
360
+ @client.put_bucket_versioning(options)
361
+ end
301
362
  resp.data
302
363
  end
303
364
 
@@ -76,7 +76,9 @@ module Aws::S3
76
76
  #
77
77
  # @return [self]
78
78
  def load
79
- resp = @client.get_bucket_website(bucket: @bucket_name)
79
+ resp = Aws::Plugins::UserAgent.feature('resource') do
80
+ @client.get_bucket_website(bucket: @bucket_name)
81
+ end
80
82
  @data = resp.data
81
83
  self
82
84
  end
@@ -191,7 +193,9 @@ module Aws::S3
191
193
  :retry
192
194
  end
193
195
  end
194
- Aws::Waiters::Waiter.new(options).wait({})
196
+ Aws::Plugins::UserAgent.feature('resource') do
197
+ Aws::Waiters::Waiter.new(options).wait({})
198
+ end
195
199
  end
196
200
 
197
201
  # @!group Actions
@@ -204,12 +208,14 @@ module Aws::S3
204
208
  # @param [Hash] options ({})
205
209
  # @option options [String] :expected_bucket_owner
206
210
  # The account ID of the expected bucket owner. If the bucket is owned by
207
- # a different account, the request will fail with an HTTP `403 (Access
208
- # Denied)` error.
211
+ # a different account, the request fails with the HTTP status code `403
212
+ # Forbidden` (access denied).
209
213
  # @return [EmptyStructure]
210
214
  def delete(options = {})
211
215
  options = options.merge(bucket: @bucket_name)
212
- resp = @client.delete_bucket_website(options)
216
+ resp = Aws::Plugins::UserAgent.feature('resource') do
217
+ @client.delete_bucket_website(options)
218
+ end
213
219
  resp.data
214
220
  end
215
221
 
@@ -217,6 +223,7 @@ module Aws::S3
217
223
  #
218
224
  # bucket_website.put({
219
225
  # content_md5: "ContentMD5",
226
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
220
227
  # website_configuration: { # required
221
228
  # error_document: {
222
229
  # key: "ObjectKey", # required
@@ -252,22 +259,40 @@ module Aws::S3
252
259
  # header as a message integrity check to verify that the request body
253
260
  # was not corrupted in transit. For more information, see [RFC 1864][1].
254
261
  #
255
- # For requests made using the AWS Command Line Interface (CLI) or AWS
256
- # SDKs, this field is calculated automatically.
262
+ # For requests made using the Amazon Web Services Command Line Interface
263
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
264
+ # automatically.
257
265
  #
258
266
  #
259
267
  #
260
268
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
269
+ # @option options [String] :checksum_algorithm
270
+ # Indicates the algorithm used to create the checksum for the object
271
+ # when using the SDK. This header will not provide any additional
272
+ # functionality if not using the SDK. When sending this header, there
273
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
274
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
275
+ # `400 Bad Request`. For more information, see [Checking object
276
+ # integrity][1] in the *Amazon S3 User Guide*.
277
+ #
278
+ # If you provide an individual checksum, Amazon S3 ignores any provided
279
+ # `ChecksumAlgorithm` parameter.
280
+ #
281
+ #
282
+ #
283
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
261
284
  # @option options [required, Types::WebsiteConfiguration] :website_configuration
262
285
  # Container for the request.
263
286
  # @option options [String] :expected_bucket_owner
264
287
  # The account ID of the expected bucket owner. If the bucket is owned by
265
- # a different account, the request will fail with an HTTP `403 (Access
266
- # Denied)` error.
288
+ # a different account, the request fails with the HTTP status code `403
289
+ # Forbidden` (access denied).
267
290
  # @return [EmptyStructure]
268
291
  def put(options = {})
269
292
  options = options.merge(bucket: @bucket_name)
270
- resp = @client.put_bucket_website(options)
293
+ resp = Aws::Plugins::UserAgent.feature('resource') do
294
+ @client.put_bucket_website(options)
295
+ end
271
296
  resp.data
272
297
  end
273
298