aws-sdk-s3 1.119.2 → 1.158.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +263 -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 +573 -133
  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 +6866 -3226
  20. data/lib/aws-sdk-s3/client_api.rb +162 -21
  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 +186 -327
  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 +1590 -275
  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 +1437 -285
  46. data/lib/aws-sdk-s3/object_version.rb +350 -51
  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 +20 -13
  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 +99 -21
  57. data/lib/aws-sdk-s3/types.rb +5285 -1632
  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 +2385 -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 +128 -0
  83. data/sig/types.rbs +2575 -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