aws-sdk-s3 1.122.0 → 1.157.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 (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +238 -0
  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 +507 -114
  7. data/lib/aws-sdk-s3/bucket_acl.rb +18 -12
  8. data/lib/aws-sdk-s3/bucket_cors.rb +24 -16
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +24 -16
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +24 -16
  11. data/lib/aws-sdk-s3/bucket_logging.rb +25 -12
  12. data/lib/aws-sdk-s3/bucket_notification.rb +12 -6
  13. data/lib/aws-sdk-s3/bucket_policy.rb +70 -18
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +18 -12
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +24 -16
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +42 -32
  18. data/lib/aws-sdk-s3/bucket_website.rb +24 -16
  19. data/lib/aws-sdk-s3/client.rb +6048 -2781
  20. data/lib/aws-sdk-s3/client_api.rb +148 -20
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +3 -1
  22. data/lib/aws-sdk-s3/customizations/errors.rb +16 -3
  23. data/lib/aws-sdk-s3/customizations/object.rb +91 -18
  24. data/lib/aws-sdk-s3/customizations.rb +8 -0
  25. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  26. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  27. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  28. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
  29. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  30. data/lib/aws-sdk-s3/endpoint_parameters.rb +44 -0
  31. data/lib/aws-sdk-s3/endpoint_provider.rb +111 -252
  32. data/lib/aws-sdk-s3/endpoints.rb +540 -0
  33. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  34. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  35. data/lib/aws-sdk-s3/file_downloader.rb +169 -44
  36. data/lib/aws-sdk-s3/file_uploader.rb +8 -6
  37. data/lib/aws-sdk-s3/multipart_file_uploader.rb +4 -4
  38. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +10 -7
  39. data/lib/aws-sdk-s3/multipart_upload.rb +81 -20
  40. data/lib/aws-sdk-s3/multipart_upload_part.rb +169 -38
  41. data/lib/aws-sdk-s3/object.rb +1571 -261
  42. data/lib/aws-sdk-s3/object_acl.rb +38 -18
  43. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  44. data/lib/aws-sdk-s3/object_multipart_copier.rb +42 -24
  45. data/lib/aws-sdk-s3/object_summary.rb +1422 -276
  46. data/lib/aws-sdk-s3/object_version.rb +344 -47
  47. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  48. data/lib/aws-sdk-s3/plugins/endpoints.rb +14 -2
  49. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +97 -0
  50. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  51. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  52. data/lib/aws-sdk-s3/plugins/md5s.rb +2 -1
  53. data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
  54. data/lib/aws-sdk-s3/presigned_post.rb +52 -43
  55. data/lib/aws-sdk-s3/presigner.rb +8 -4
  56. data/lib/aws-sdk-s3/resource.rb +89 -13
  57. data/lib/aws-sdk-s3/types.rb +4879 -1513
  58. data/lib/aws-sdk-s3.rb +1 -1
  59. data/sig/bucket.rbs +212 -0
  60. data/sig/bucket_acl.rbs +78 -0
  61. data/sig/bucket_cors.rbs +69 -0
  62. data/sig/bucket_lifecycle.rbs +88 -0
  63. data/sig/bucket_lifecycle_configuration.rbs +111 -0
  64. data/sig/bucket_logging.rbs +76 -0
  65. data/sig/bucket_notification.rbs +114 -0
  66. data/sig/bucket_policy.rbs +59 -0
  67. data/sig/bucket_request_payment.rbs +54 -0
  68. data/sig/bucket_tagging.rbs +65 -0
  69. data/sig/bucket_versioning.rbs +77 -0
  70. data/sig/bucket_website.rbs +93 -0
  71. data/sig/client.rbs +2381 -0
  72. data/sig/customizations/bucket.rbs +19 -0
  73. data/sig/customizations/object.rbs +38 -0
  74. data/sig/customizations/object_summary.rbs +35 -0
  75. data/sig/errors.rbs +34 -0
  76. data/sig/multipart_upload.rbs +110 -0
  77. data/sig/multipart_upload_part.rbs +105 -0
  78. data/sig/object.rbs +442 -0
  79. data/sig/object_acl.rbs +86 -0
  80. data/sig/object_summary.rbs +334 -0
  81. data/sig/object_version.rbs +137 -0
  82. data/sig/resource.rbs +127 -0
  83. data/sig/types.rbs +2568 -0
  84. data/sig/waiters.rbs +95 -0
  85. metadata +43 -11
@@ -69,6 +69,11 @@ module Aws::S3
69
69
  end
70
70
 
71
71
  # The class of storage used to store the object.
72
+ #
73
+ # <note markdown="1"> **Directory buckets** - Only the S3 Express One Zone storage class is
74
+ # supported by directory buckets to store objects.
75
+ #
76
+ # </note>
72
77
  # @return [String]
73
78
  def storage_class
74
79
  data[:storage_class]
@@ -76,6 +81,11 @@ module Aws::S3
76
81
 
77
82
  # Specifies the owner of the object that is part of the multipart
78
83
  # upload.
84
+ #
85
+ # <note markdown="1"> **Directory buckets** - The bucket owner is returned as the object
86
+ # owner for all the objects.
87
+ #
88
+ # </note>
79
89
  # @return [Types::Owner]
80
90
  def owner
81
91
  data[:owner]
@@ -217,7 +227,9 @@ module Aws::S3
217
227
  :retry
218
228
  end
219
229
  end
220
- Aws::Waiters::Waiter.new(options).wait({})
230
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
231
+ Aws::Waiters::Waiter.new(options).wait({})
232
+ end
221
233
  end
222
234
 
223
235
  # @!group Actions
@@ -232,17 +244,23 @@ module Aws::S3
232
244
  # @option options [String] :request_payer
233
245
  # Confirms that the requester knows that they will be charged for the
234
246
  # request. Bucket owners need not specify this parameter in their
235
- # requests. For information about downloading objects from Requester
247
+ # requests. If either the source or destination S3 bucket has Requester
248
+ # Pays enabled, the requester will pay for corresponding charges to copy
249
+ # the object. For information about downloading objects from Requester
236
250
  # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
237
251
  # in the *Amazon S3 User Guide*.
238
252
  #
253
+ # <note markdown="1"> This functionality is not supported for directory buckets.
254
+ #
255
+ # </note>
256
+ #
239
257
  #
240
258
  #
241
259
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
242
260
  # @option options [String] :expected_bucket_owner
243
- # The account ID of the expected bucket owner. If the bucket is owned by
244
- # a different account, the request fails with the HTTP status code `403
245
- # Forbidden` (access denied).
261
+ # The account ID of the expected bucket owner. If the account ID that
262
+ # you provide does not match the actual owner of the bucket, the request
263
+ # fails with the HTTP status code `403 Forbidden` (access denied).
246
264
  # @return [Types::AbortMultipartUploadOutput]
247
265
  def abort(options = {})
248
266
  options = options.merge(
@@ -250,7 +268,9 @@ module Aws::S3
250
268
  key: @object_key,
251
269
  upload_id: @id
252
270
  )
253
- resp = @client.abort_multipart_upload(options)
271
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
272
+ @client.abort_multipart_upload(options)
273
+ end
254
274
  resp.data
255
275
  end
256
276
 
@@ -325,32 +345,47 @@ module Aws::S3
325
345
  # @option options [String] :request_payer
326
346
  # Confirms that the requester knows that they will be charged for the
327
347
  # request. Bucket owners need not specify this parameter in their
328
- # requests. For information about downloading objects from Requester
348
+ # requests. If either the source or destination S3 bucket has Requester
349
+ # Pays enabled, the requester will pay for corresponding charges to copy
350
+ # the object. For information about downloading objects from Requester
329
351
  # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
330
352
  # in the *Amazon S3 User Guide*.
331
353
  #
354
+ # <note markdown="1"> This functionality is not supported for directory buckets.
355
+ #
356
+ # </note>
357
+ #
332
358
  #
333
359
  #
334
360
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
335
361
  # @option options [String] :expected_bucket_owner
336
- # The account ID of the expected bucket owner. If the bucket is owned by
337
- # a different account, the request fails with the HTTP status code `403
338
- # Forbidden` (access denied).
362
+ # The account ID of the expected bucket owner. If the account ID that
363
+ # you provide does not match the actual owner of the bucket, the request
364
+ # fails with the HTTP status code `403 Forbidden` (access denied).
339
365
  # @option options [String] :sse_customer_algorithm
340
366
  # The server-side encryption (SSE) algorithm used to encrypt the object.
341
- # This parameter is needed only when the object was created using a
342
- # checksum algorithm. For more information, see [Protecting data using
343
- # SSE-C keys][1] in the *Amazon S3 User Guide*.
367
+ # This parameter is required only when the object was created using a
368
+ # checksum algorithm or if your bucket policy requires the use of SSE-C.
369
+ # For more information, see [Protecting data using SSE-C keys][1] in the
370
+ # *Amazon S3 User Guide*.
344
371
  #
372
+ # <note markdown="1"> This functionality is not supported for directory buckets.
345
373
  #
374
+ # </note>
346
375
  #
347
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
376
+ #
377
+ #
378
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key
348
379
  # @option options [String] :sse_customer_key
349
380
  # The server-side encryption (SSE) customer managed key. This parameter
350
381
  # is needed only when the object was created using a checksum algorithm.
351
382
  # For more information, see [Protecting data using SSE-C keys][1] in the
352
383
  # *Amazon S3 User Guide*.
353
384
  #
385
+ # <note markdown="1"> This functionality is not supported for directory buckets.
386
+ #
387
+ # </note>
388
+ #
354
389
  #
355
390
  #
356
391
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
@@ -360,6 +395,10 @@ module Aws::S3
360
395
  # algorithm. For more information, see [Protecting data using SSE-C
361
396
  # keys][1] in the *Amazon S3 User Guide*.
362
397
  #
398
+ # <note markdown="1"> This functionality is not supported for directory buckets.
399
+ #
400
+ # </note>
401
+ #
363
402
  #
364
403
  #
365
404
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
@@ -370,7 +409,9 @@ module Aws::S3
370
409
  key: @object_key,
371
410
  upload_id: @id
372
411
  )
373
- @client.complete_multipart_upload(options)
412
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
413
+ @client.complete_multipart_upload(options)
414
+ end
374
415
  Object.new(
375
416
  bucket_name: @bucket_name,
376
417
  key: @object_key,
@@ -414,23 +455,33 @@ module Aws::S3
414
455
  # @option options [String] :request_payer
415
456
  # Confirms that the requester knows that they will be charged for the
416
457
  # request. Bucket owners need not specify this parameter in their
417
- # requests. For information about downloading objects from Requester
458
+ # requests. If either the source or destination S3 bucket has Requester
459
+ # Pays enabled, the requester will pay for corresponding charges to copy
460
+ # the object. For information about downloading objects from Requester
418
461
  # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
419
462
  # in the *Amazon S3 User Guide*.
420
463
  #
464
+ # <note markdown="1"> This functionality is not supported for directory buckets.
465
+ #
466
+ # </note>
467
+ #
421
468
  #
422
469
  #
423
470
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
424
471
  # @option options [String] :expected_bucket_owner
425
- # The account ID of the expected bucket owner. If the bucket is owned by
426
- # a different account, the request fails with the HTTP status code `403
427
- # Forbidden` (access denied).
472
+ # The account ID of the expected bucket owner. If the account ID that
473
+ # you provide does not match the actual owner of the bucket, the request
474
+ # fails with the HTTP status code `403 Forbidden` (access denied).
428
475
  # @option options [String] :sse_customer_algorithm
429
476
  # The server-side encryption (SSE) algorithm used to encrypt the object.
430
477
  # This parameter is needed only when the object was created using a
431
478
  # checksum algorithm. For more information, see [Protecting data using
432
479
  # SSE-C keys][1] in the *Amazon S3 User Guide*.
433
480
  #
481
+ # <note markdown="1"> This functionality is not supported for directory buckets.
482
+ #
483
+ # </note>
484
+ #
434
485
  #
435
486
  #
436
487
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
@@ -440,6 +491,10 @@ module Aws::S3
440
491
  # For more information, see [Protecting data using SSE-C keys][1] in the
441
492
  # *Amazon S3 User Guide*.
442
493
  #
494
+ # <note markdown="1"> This functionality is not supported for directory buckets.
495
+ #
496
+ # </note>
497
+ #
443
498
  #
444
499
  #
445
500
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
@@ -449,6 +504,10 @@ module Aws::S3
449
504
  # algorithm. For more information, see [Protecting data using SSE-C
450
505
  # keys][1] in the *Amazon S3 User Guide*.
451
506
  #
507
+ # <note markdown="1"> This functionality is not supported for directory buckets.
508
+ #
509
+ # </note>
510
+ #
452
511
  #
453
512
  #
454
513
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
@@ -460,7 +519,9 @@ module Aws::S3
460
519
  key: @object_key,
461
520
  upload_id: @id
462
521
  )
463
- resp = @client.list_parts(options)
522
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
523
+ @client.list_parts(options)
524
+ end
464
525
  resp.each_page do |page|
465
526
  batch = []
466
527
  page.data.parts.each do |p|
@@ -91,10 +91,13 @@ module Aws::S3
91
91
  end
92
92
 
93
93
  # The base64-encoded, 32-bit CRC32C checksum of the object. This will
94
- # only be present if it was uploaded with the object. With multipart
95
- # uploads, this may not be a checksum value of the object. For more
96
- # information about how checksums are calculated with multipart uploads,
97
- # see [ Checking object integrity][1] in the *Amazon S3 User Guide*.
94
+ # only be present if it was uploaded with the object. When you use an
95
+ # API operation on an object that was uploaded using multipart uploads,
96
+ # this value may not be a direct checksum value of the full object.
97
+ # Instead, it's a calculation based on the checksum values of each
98
+ # individual part. For more information about how checksums are
99
+ # calculated with multipart uploads, see [ Checking object integrity][1]
100
+ # in the *Amazon S3 User Guide*.
98
101
  #
99
102
  #
100
103
  #
@@ -105,10 +108,13 @@ module Aws::S3
105
108
  end
106
109
 
107
110
  # The base64-encoded, 160-bit SHA-1 digest of the object. This will only
108
- # be present if it was uploaded with the object. With multipart uploads,
109
- # this may not be a checksum value of the object. For more information
110
- # about how checksums are calculated with multipart uploads, see [
111
- # Checking object integrity][1] in the *Amazon S3 User Guide*.
111
+ # be present if it was uploaded with the object. When you use the API
112
+ # operation on an object that was uploaded using multipart uploads, this
113
+ # value may not be a direct checksum value of the full object. Instead,
114
+ # it's a calculation based on the checksum values of each individual
115
+ # part. For more information about how checksums are calculated with
116
+ # multipart uploads, see [ Checking object integrity][1] in the *Amazon
117
+ # S3 User Guide*.
112
118
  #
113
119
  #
114
120
  #
@@ -256,7 +262,9 @@ module Aws::S3
256
262
  :retry
257
263
  end
258
264
  end
259
- Aws::Waiters::Waiter.new(options).wait({})
265
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
266
+ Aws::Waiters::Waiter.new(options).wait({})
267
+ end
260
268
  end
261
269
 
262
270
  # @!group Actions
@@ -303,9 +311,11 @@ module Aws::S3
303
311
  # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
304
312
  # The value must be URL encoded.
305
313
  #
306
- # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
307
- # source and destination buckets are in the same Amazon Web Services
308
- # Region.
314
+ # <note markdown="1"> * Amazon S3 supports copy operations using Access points only when
315
+ # the source and destination buckets are in the same Amazon Web
316
+ # Services Region.
317
+ #
318
+ # * Access points are not supported by directory buckets.
309
319
  #
310
320
  # </note>
311
321
  #
@@ -318,25 +328,82 @@ module Aws::S3
318
328
  # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
319
329
  # The value must be URL-encoded.
320
330
  #
321
- # To copy a specific version of an object, append
322
- # `?versionId=<version-id>` to the value (for example,
323
- # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
324
- # If you don't specify a version ID, Amazon S3 copies the latest
325
- # version of the source object.
331
+ # If your bucket has versioning enabled, you could have multiple
332
+ # versions of the same object. By default, `x-amz-copy-source`
333
+ # identifies the current version of the source object to copy. To copy a
334
+ # specific version of the source object to copy, append
335
+ # `?versionId=<version-id>` to the `x-amz-copy-source` request header
336
+ # (for example, `x-amz-copy-source:
337
+ # /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
338
+ #
339
+ # If the current version is a delete marker and you don't specify a
340
+ # versionId in the `x-amz-copy-source` request header, Amazon S3 returns
341
+ # a `404 Not Found` error, because the object does not exist. If you
342
+ # specify versionId in the `x-amz-copy-source` and the versionId is a
343
+ # delete marker, Amazon S3 returns an HTTP `400 Bad Request` error,
344
+ # because you are not allowed to specify a delete marker as a version
345
+ # for the `x-amz-copy-source`.
346
+ #
347
+ # <note markdown="1"> **Directory buckets** - S3 Versioning isn't enabled and supported for
348
+ # directory buckets.
349
+ #
350
+ # </note>
326
351
  #
327
352
  #
328
353
  #
329
354
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html
330
355
  # @option options [String] :copy_source_if_match
331
356
  # Copies the object if its entity tag (ETag) matches the specified tag.
357
+ #
358
+ # If both of the `x-amz-copy-source-if-match` and
359
+ # `x-amz-copy-source-if-unmodified-since` headers are present in the
360
+ # request as follows:
361
+ #
362
+ # `x-amz-copy-source-if-match` condition evaluates to `true`, and;
363
+ #
364
+ # `x-amz-copy-source-if-unmodified-since` condition evaluates to
365
+ # `false`;
366
+ #
367
+ # Amazon S3 returns `200 OK` and copies the data.
332
368
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
333
369
  # Copies the object if it has been modified since the specified time.
370
+ #
371
+ # If both of the `x-amz-copy-source-if-none-match` and
372
+ # `x-amz-copy-source-if-modified-since` headers are present in the
373
+ # request as follows:
374
+ #
375
+ # `x-amz-copy-source-if-none-match` condition evaluates to `false`, and;
376
+ #
377
+ # `x-amz-copy-source-if-modified-since` condition evaluates to `true`;
378
+ #
379
+ # Amazon S3 returns `412 Precondition Failed` response code.
334
380
  # @option options [String] :copy_source_if_none_match
335
381
  # Copies the object if its entity tag (ETag) is different than the
336
382
  # specified ETag.
383
+ #
384
+ # If both of the `x-amz-copy-source-if-none-match` and
385
+ # `x-amz-copy-source-if-modified-since` headers are present in the
386
+ # request as follows:
387
+ #
388
+ # `x-amz-copy-source-if-none-match` condition evaluates to `false`, and;
389
+ #
390
+ # `x-amz-copy-source-if-modified-since` condition evaluates to `true`;
391
+ #
392
+ # Amazon S3 returns `412 Precondition Failed` response code.
337
393
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_unmodified_since
338
394
  # Copies the object if it hasn't been modified since the specified
339
395
  # time.
396
+ #
397
+ # If both of the `x-amz-copy-source-if-match` and
398
+ # `x-amz-copy-source-if-unmodified-since` headers are present in the
399
+ # request as follows:
400
+ #
401
+ # `x-amz-copy-source-if-match` condition evaluates to `true`, and;
402
+ #
403
+ # `x-amz-copy-source-if-unmodified-since` condition evaluates to
404
+ # `false`;
405
+ #
406
+ # Amazon S3 returns `200 OK` and copies the data.
340
407
  # @option options [String] :copy_source_range
341
408
  # The range of bytes to copy from the source object. The range value
342
409
  # must use the form bytes=first-last, where the first and last are the
@@ -344,8 +411,13 @@ module Aws::S3
344
411
  # you want to copy the first 10 bytes of the source. You can copy a
345
412
  # range only if the source object is greater than 5 MB.
346
413
  # @option options [String] :sse_customer_algorithm
347
- # Specifies the algorithm to use to when encrypting the object (for
414
+ # Specifies the algorithm to use when encrypting the object (for
348
415
  # example, AES256).
416
+ #
417
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
418
+ # directory bucket.
419
+ #
420
+ # </note>
349
421
  # @option options [String] :sse_customer_key
350
422
  # Specifies the customer-provided encryption key for Amazon S3 to use in
351
423
  # encrypting data. This value is used to store the object and then it is
@@ -354,39 +426,72 @@ module Aws::S3
354
426
  # `x-amz-server-side-encryption-customer-algorithm` header. This must be
355
427
  # the same encryption key specified in the initiate multipart upload
356
428
  # request.
429
+ #
430
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
431
+ # directory bucket.
432
+ #
433
+ # </note>
357
434
  # @option options [String] :sse_customer_key_md5
358
435
  # Specifies the 128-bit MD5 digest of the encryption key according to
359
436
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
360
437
  # ensure that the encryption key was transmitted without error.
438
+ #
439
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
440
+ # directory bucket.
441
+ #
442
+ # </note>
361
443
  # @option options [String] :copy_source_sse_customer_algorithm
362
444
  # Specifies the algorithm to use when decrypting the source object (for
363
- # example, AES256).
445
+ # example, `AES256`).
446
+ #
447
+ # <note markdown="1"> This functionality is not supported when the source object is in a
448
+ # directory bucket.
449
+ #
450
+ # </note>
364
451
  # @option options [String] :copy_source_sse_customer_key
365
452
  # Specifies the customer-provided encryption key for Amazon S3 to use to
366
453
  # decrypt the source object. The encryption key provided in this header
367
454
  # must be one that was used when the source object was created.
455
+ #
456
+ # <note markdown="1"> This functionality is not supported when the source object is in a
457
+ # directory bucket.
458
+ #
459
+ # </note>
368
460
  # @option options [String] :copy_source_sse_customer_key_md5
369
461
  # Specifies the 128-bit MD5 digest of the encryption key according to
370
462
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
371
463
  # ensure that the encryption key was transmitted without error.
464
+ #
465
+ # <note markdown="1"> This functionality is not supported when the source object is in a
466
+ # directory bucket.
467
+ #
468
+ # </note>
372
469
  # @option options [String] :request_payer
373
470
  # Confirms that the requester knows that they will be charged for the
374
471
  # request. Bucket owners need not specify this parameter in their
375
- # requests. For information about downloading objects from Requester
472
+ # requests. If either the source or destination S3 bucket has Requester
473
+ # Pays enabled, the requester will pay for corresponding charges to copy
474
+ # the object. For information about downloading objects from Requester
376
475
  # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
377
476
  # in the *Amazon S3 User Guide*.
378
477
  #
478
+ # <note markdown="1"> This functionality is not supported for directory buckets.
479
+ #
480
+ # </note>
481
+ #
379
482
  #
380
483
  #
381
484
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
382
485
  # @option options [String] :expected_bucket_owner
383
486
  # The account ID of the expected destination bucket owner. If the
384
- # destination bucket is owned by a different account, the request fails
385
- # with the HTTP status code `403 Forbidden` (access denied).
487
+ # account ID that you provide does not match the actual owner of the
488
+ # destination bucket, the request fails with the HTTP status code `403
489
+ # Forbidden` (access denied).
386
490
  # @option options [String] :expected_source_bucket_owner
387
- # The account ID of the expected source bucket owner. If the source
388
- # bucket is owned by a different account, the request fails with the
389
- # HTTP status code `403 Forbidden` (access denied).
491
+ # The account ID of the expected source bucket owner. If the account ID
492
+ # that you provide does not match the actual owner of the source bucket,
493
+ # the request fails with the HTTP status code `403 Forbidden` (access
494
+ # denied).
390
495
  # @return [Types::UploadPartCopyOutput]
391
496
  def copy_from(options = {})
392
497
  options = options.merge(
@@ -395,7 +500,9 @@ module Aws::S3
395
500
  upload_id: @multipart_upload_id,
396
501
  part_number: @part_number
397
502
  )
398
- resp = @client.upload_part_copy(options)
503
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
504
+ @client.upload_part_copy(options)
505
+ end
399
506
  resp.data
400
507
  end
401
508
 
@@ -426,14 +533,18 @@ module Aws::S3
426
533
  # The base64-encoded 128-bit MD5 digest of the part data. This parameter
427
534
  # is auto-populated when using the command from the CLI. This parameter
428
535
  # is required if object lock parameters are specified.
536
+ #
537
+ # <note markdown="1"> This functionality is not supported for directory buckets.
538
+ #
539
+ # </note>
429
540
  # @option options [String] :checksum_algorithm
430
541
  # Indicates the algorithm used to create the checksum for the object
431
- # when using the SDK. This header will not provide any additional
432
- # functionality if not using the SDK. When sending this header, there
433
- # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
434
- # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
435
- # `400 Bad Request`. For more information, see [Checking object
436
- # integrity][1] in the *Amazon S3 User Guide*.
542
+ # when you use the SDK. This header will not provide any additional
543
+ # functionality if you don't use the SDK. When you send this header,
544
+ # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
545
+ # header sent. Otherwise, Amazon S3 fails the request with the HTTP
546
+ # status code `400 Bad Request`. For more information, see [Checking
547
+ # object integrity][1] in the *Amazon S3 User Guide*.
437
548
  #
438
549
  # If you provide an individual checksum, Amazon S3 ignores any provided
439
550
  # `ChecksumAlgorithm` parameter.
@@ -485,8 +596,12 @@ module Aws::S3
485
596
  #
486
597
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
487
598
  # @option options [String] :sse_customer_algorithm
488
- # Specifies the algorithm to use to when encrypting the object (for
599
+ # Specifies the algorithm to use when encrypting the object (for
489
600
  # example, AES256).
601
+ #
602
+ # <note markdown="1"> This functionality is not supported for directory buckets.
603
+ #
604
+ # </note>
490
605
  # @option options [String] :sse_customer_key
491
606
  # Specifies the customer-provided encryption key for Amazon S3 to use in
492
607
  # encrypting data. This value is used to store the object and then it is
@@ -495,24 +610,38 @@ module Aws::S3
495
610
  # `x-amz-server-side-encryption-customer-algorithm header`. This must be
496
611
  # the same encryption key specified in the initiate multipart upload
497
612
  # request.
613
+ #
614
+ # <note markdown="1"> This functionality is not supported for directory buckets.
615
+ #
616
+ # </note>
498
617
  # @option options [String] :sse_customer_key_md5
499
618
  # Specifies the 128-bit MD5 digest of the encryption key according to
500
619
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
501
620
  # ensure that the encryption key was transmitted without error.
621
+ #
622
+ # <note markdown="1"> This functionality is not supported for directory buckets.
623
+ #
624
+ # </note>
502
625
  # @option options [String] :request_payer
503
626
  # Confirms that the requester knows that they will be charged for the
504
627
  # request. Bucket owners need not specify this parameter in their
505
- # requests. For information about downloading objects from Requester
628
+ # requests. If either the source or destination S3 bucket has Requester
629
+ # Pays enabled, the requester will pay for corresponding charges to copy
630
+ # the object. For information about downloading objects from Requester
506
631
  # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
507
632
  # in the *Amazon S3 User Guide*.
508
633
  #
634
+ # <note markdown="1"> This functionality is not supported for directory buckets.
635
+ #
636
+ # </note>
637
+ #
509
638
  #
510
639
  #
511
640
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
512
641
  # @option options [String] :expected_bucket_owner
513
- # The account ID of the expected bucket owner. If the bucket is owned by
514
- # a different account, the request fails with the HTTP status code `403
515
- # Forbidden` (access denied).
642
+ # The account ID of the expected bucket owner. If the account ID that
643
+ # you provide does not match the actual owner of the bucket, the request
644
+ # fails with the HTTP status code `403 Forbidden` (access denied).
516
645
  # @return [Types::UploadPartOutput]
517
646
  def upload(options = {})
518
647
  options = options.merge(
@@ -521,7 +650,9 @@ module Aws::S3
521
650
  upload_id: @multipart_upload_id,
522
651
  part_number: @part_number
523
652
  )
524
- resp = @client.upload_part(options)
653
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
654
+ @client.upload_part(options)
655
+ end
525
656
  resp.data
526
657
  end
527
658