aws-sdk-s3 1.103.0 → 1.202.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 (109) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +664 -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 +858 -116
  7. data/lib/aws-sdk-s3/bucket_acl.rb +32 -9
  8. data/lib/aws-sdk-s3/bucket_cors.rb +38 -13
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +43 -12
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +100 -13
  11. data/lib/aws-sdk-s3/bucket_logging.rb +35 -6
  12. data/lib/aws-sdk-s3/bucket_notification.rb +27 -9
  13. data/lib/aws-sdk-s3/bucket_policy.rb +79 -10
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +29 -7
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +35 -11
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +108 -17
  18. data/lib/aws-sdk-s3/bucket_website.rb +35 -11
  19. data/lib/aws-sdk-s3/client.rb +11799 -3636
  20. data/lib/aws-sdk-s3/client_api.rb +1201 -276
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +23 -47
  22. data/lib/aws-sdk-s3/customizations/errors.rb +40 -0
  23. data/lib/aws-sdk-s3/customizations/object.rb +216 -70
  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/types/permanent_redirect.rb +26 -0
  27. data/lib/aws-sdk-s3/customizations.rb +27 -29
  28. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  29. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  30. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  31. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  32. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
  33. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  34. data/lib/aws-sdk-s3/endpoint_parameters.rb +181 -0
  35. data/lib/aws-sdk-s3/endpoint_provider.rb +716 -0
  36. data/lib/aws-sdk-s3/endpoints.rb +1518 -0
  37. data/lib/aws-sdk-s3/errors.rb +58 -0
  38. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  39. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  40. data/lib/aws-sdk-s3/file_downloader.rb +241 -87
  41. data/lib/aws-sdk-s3/file_uploader.rb +16 -13
  42. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  43. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  44. data/lib/aws-sdk-s3/multipart_file_uploader.rb +108 -86
  45. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +110 -92
  46. data/lib/aws-sdk-s3/multipart_upload.rb +294 -19
  47. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  48. data/lib/aws-sdk-s3/multipart_upload_part.rb +297 -31
  49. data/lib/aws-sdk-s3/object.rb +2224 -269
  50. data/lib/aws-sdk-s3/object_acl.rb +59 -17
  51. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  52. data/lib/aws-sdk-s3/object_multipart_copier.rb +48 -23
  53. data/lib/aws-sdk-s3/object_summary.rb +1915 -220
  54. data/lib/aws-sdk-s3/object_version.rb +450 -58
  55. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -44
  56. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  57. data/lib/aws-sdk-s3/plugins/arn.rb +0 -197
  58. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  59. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  60. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  61. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -55
  62. data/lib/aws-sdk-s3/plugins/endpoints.rb +86 -0
  63. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  64. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +88 -0
  65. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +55 -18
  66. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
  67. data/lib/aws-sdk-s3/plugins/location_constraint.rb +3 -1
  68. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -68
  69. data/lib/aws-sdk-s3/plugins/s3_signer.rb +42 -111
  70. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +28 -9
  71. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  72. data/lib/aws-sdk-s3/presigned_post.rb +99 -78
  73. data/lib/aws-sdk-s3/presigner.rb +32 -41
  74. data/lib/aws-sdk-s3/resource.rb +139 -12
  75. data/lib/aws-sdk-s3/transfer_manager.rb +304 -0
  76. data/lib/aws-sdk-s3/types.rb +10204 -5378
  77. data/lib/aws-sdk-s3.rb +35 -27
  78. data/sig/bucket.rbs +231 -0
  79. data/sig/bucket_acl.rbs +78 -0
  80. data/sig/bucket_cors.rbs +69 -0
  81. data/sig/bucket_lifecycle.rbs +88 -0
  82. data/sig/bucket_lifecycle_configuration.rbs +115 -0
  83. data/sig/bucket_logging.rbs +76 -0
  84. data/sig/bucket_notification.rbs +114 -0
  85. data/sig/bucket_policy.rbs +59 -0
  86. data/sig/bucket_request_payment.rbs +54 -0
  87. data/sig/bucket_tagging.rbs +65 -0
  88. data/sig/bucket_versioning.rbs +77 -0
  89. data/sig/bucket_website.rbs +93 -0
  90. data/sig/client.rbs +2586 -0
  91. data/sig/customizations/bucket.rbs +19 -0
  92. data/sig/customizations/object.rbs +38 -0
  93. data/sig/customizations/object_summary.rbs +35 -0
  94. data/sig/errors.rbs +44 -0
  95. data/sig/multipart_upload.rbs +120 -0
  96. data/sig/multipart_upload_part.rbs +109 -0
  97. data/sig/object.rbs +464 -0
  98. data/sig/object_acl.rbs +86 -0
  99. data/sig/object_summary.rbs +347 -0
  100. data/sig/object_version.rbs +143 -0
  101. data/sig/resource.rbs +141 -0
  102. data/sig/types.rbs +2868 -0
  103. data/sig/waiters.rbs +95 -0
  104. metadata +51 -16
  105. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  106. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +0 -69
  107. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  108. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -73
  109. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
@@ -76,6 +76,73 @@ module Aws::S3
76
76
  data[:size]
77
77
  end
78
78
 
79
+ # The Base64 encoded, 32-bit `CRC32` checksum of the part. This checksum
80
+ # is present if the object was uploaded with the `CRC32` checksum
81
+ # algorithm. For more information, see [Checking object integrity][1] in
82
+ # the *Amazon S3 User Guide*.
83
+ #
84
+ #
85
+ #
86
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
87
+ # @return [String]
88
+ def checksum_crc32
89
+ data[:checksum_crc32]
90
+ end
91
+
92
+ # The Base64 encoded, 32-bit `CRC32C` checksum of the part. This
93
+ # checksum is present if the object was uploaded with the `CRC32C`
94
+ # checksum algorithm. For more information, see [Checking object
95
+ # integrity][1] in the *Amazon S3 User Guide*.
96
+ #
97
+ #
98
+ #
99
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
100
+ # @return [String]
101
+ def checksum_crc32c
102
+ data[:checksum_crc32c]
103
+ end
104
+
105
+ # The Base64 encoded, 64-bit `CRC64NVME` checksum of the part. This
106
+ # checksum is present if the multipart upload request was created with
107
+ # the `CRC64NVME` checksum algorithm, or if the object was uploaded
108
+ # without a checksum (and Amazon S3 added the default checksum,
109
+ # `CRC64NVME`, to the uploaded object). For more information, see
110
+ # [Checking object integrity][1] in the *Amazon S3 User Guide*.
111
+ #
112
+ #
113
+ #
114
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
115
+ # @return [String]
116
+ def checksum_crc64nvme
117
+ data[:checksum_crc64nvme]
118
+ end
119
+
120
+ # The Base64 encoded, 160-bit `SHA1` checksum of the part. This checksum
121
+ # is present if the object was uploaded with the `SHA1` checksum
122
+ # algorithm. For more information, see [Checking object integrity][1] in
123
+ # the *Amazon S3 User Guide*.
124
+ #
125
+ #
126
+ #
127
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
128
+ # @return [String]
129
+ def checksum_sha1
130
+ data[:checksum_sha1]
131
+ end
132
+
133
+ # The Base64 encoded, 256-bit `SHA256` checksum of the part. This
134
+ # checksum is present if the object was uploaded with the `SHA256`
135
+ # checksum algorithm. For more information, see [Checking object
136
+ # integrity][1] in the *Amazon S3 User Guide*.
137
+ #
138
+ #
139
+ #
140
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
141
+ # @return [String]
142
+ def checksum_sha256
143
+ data[:checksum_sha256]
144
+ end
145
+
79
146
  # @!endgroup
80
147
 
81
148
  # @return [Client]
@@ -200,7 +267,9 @@ module Aws::S3
200
267
  :retry
201
268
  end
202
269
  end
203
- Aws::Waiters::Waiter.new(options).wait({})
270
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
271
+ Aws::Waiters::Waiter.new(options).wait({})
272
+ end
204
273
  end
205
274
 
206
275
  # @!group Actions
@@ -228,14 +297,14 @@ module Aws::S3
228
297
  # @option options [required, String] :copy_source
229
298
  # Specifies the source object for the copy operation. You specify the
230
299
  # value in one of two formats, depending on whether you want to access
231
- # the source object through an [access point][1]\:
300
+ # the source object through an [access point][1]:
232
301
  #
233
302
  # * For objects not accessed through an access point, specify the name
234
303
  # of the source bucket and key of the source object, separated by a
235
304
  # slash (/). For example, to copy the object `reports/january.pdf`
236
305
  # from the bucket `awsexamplebucket`, use
237
- # `awsexamplebucket/reports/january.pdf`. The value must be URL
238
- # encoded.
306
+ # `awsexamplebucket/reports/january.pdf`. The value must be
307
+ # URL-encoded.
239
308
  #
240
309
  # * For objects accessed through access points, specify the Amazon
241
310
  # Resource Name (ARN) of the object as accessed through the access
@@ -247,9 +316,11 @@ module Aws::S3
247
316
  # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
248
317
  # The value must be URL encoded.
249
318
  #
250
- # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
251
- # source and destination buckets are in the same Amazon Web Services
252
- # Region.
319
+ # <note markdown="1"> * Amazon S3 supports copy operations using Access points only when
320
+ # the source and destination buckets are in the same Amazon Web
321
+ # Services Region.
322
+ #
323
+ # * Access points are not supported by directory buckets.
253
324
  #
254
325
  # </note>
255
326
  #
@@ -260,27 +331,84 @@ module Aws::S3
260
331
  # outpost `my-outpost` owned by account `123456789012` in Region
261
332
  # `us-west-2`, use the URL encoding of
262
333
  # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
263
- # The value must be URL encoded.
334
+ # The value must be URL-encoded.
335
+ #
336
+ # If your bucket has versioning enabled, you could have multiple
337
+ # versions of the same object. By default, `x-amz-copy-source`
338
+ # identifies the current version of the source object to copy. To copy a
339
+ # specific version of the source object to copy, append
340
+ # `?versionId=<version-id>` to the `x-amz-copy-source` request header
341
+ # (for example, `x-amz-copy-source:
342
+ # /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
343
+ #
344
+ # If the current version is a delete marker and you don't specify a
345
+ # versionId in the `x-amz-copy-source` request header, Amazon S3 returns
346
+ # a `404 Not Found` error, because the object does not exist. If you
347
+ # specify versionId in the `x-amz-copy-source` and the versionId is a
348
+ # delete marker, Amazon S3 returns an HTTP `400 Bad Request` error,
349
+ # because you are not allowed to specify a delete marker as a version
350
+ # for the `x-amz-copy-source`.
264
351
  #
265
- # To copy a specific version of an object, append
266
- # `?versionId=<version-id>` to the value (for example,
267
- # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
268
- # If you don't specify a version ID, Amazon S3 copies the latest
269
- # version of the source object.
352
+ # <note markdown="1"> **Directory buckets** - S3 Versioning isn't enabled and supported for
353
+ # directory buckets.
354
+ #
355
+ # </note>
270
356
  #
271
357
  #
272
358
  #
273
359
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html
274
360
  # @option options [String] :copy_source_if_match
275
361
  # Copies the object if its entity tag (ETag) matches the specified tag.
362
+ #
363
+ # If both of the `x-amz-copy-source-if-match` and
364
+ # `x-amz-copy-source-if-unmodified-since` headers are present in the
365
+ # request as follows:
366
+ #
367
+ # `x-amz-copy-source-if-match` condition evaluates to `true`, and;
368
+ #
369
+ # `x-amz-copy-source-if-unmodified-since` condition evaluates to
370
+ # `false`;
371
+ #
372
+ # Amazon S3 returns `200 OK` and copies the data.
276
373
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
277
374
  # Copies the object if it has been modified since the specified time.
375
+ #
376
+ # If both of the `x-amz-copy-source-if-none-match` and
377
+ # `x-amz-copy-source-if-modified-since` headers are present in the
378
+ # request as follows:
379
+ #
380
+ # `x-amz-copy-source-if-none-match` condition evaluates to `false`, and;
381
+ #
382
+ # `x-amz-copy-source-if-modified-since` condition evaluates to `true`;
383
+ #
384
+ # Amazon S3 returns `412 Precondition Failed` response code.
278
385
  # @option options [String] :copy_source_if_none_match
279
386
  # Copies the object if its entity tag (ETag) is different than the
280
387
  # specified ETag.
388
+ #
389
+ # If both of the `x-amz-copy-source-if-none-match` and
390
+ # `x-amz-copy-source-if-modified-since` headers are present in the
391
+ # request as follows:
392
+ #
393
+ # `x-amz-copy-source-if-none-match` condition evaluates to `false`, and;
394
+ #
395
+ # `x-amz-copy-source-if-modified-since` condition evaluates to `true`;
396
+ #
397
+ # Amazon S3 returns `412 Precondition Failed` response code.
281
398
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_unmodified_since
282
399
  # Copies the object if it hasn't been modified since the specified
283
400
  # time.
401
+ #
402
+ # If both of the `x-amz-copy-source-if-match` and
403
+ # `x-amz-copy-source-if-unmodified-since` headers are present in the
404
+ # request as follows:
405
+ #
406
+ # `x-amz-copy-source-if-match` condition evaluates to `true`, and;
407
+ #
408
+ # `x-amz-copy-source-if-unmodified-since` condition evaluates to
409
+ # `false`;
410
+ #
411
+ # Amazon S3 returns `200 OK` and copies the data.
284
412
  # @option options [String] :copy_source_range
285
413
  # The range of bytes to copy from the source object. The range value
286
414
  # must use the form bytes=first-last, where the first and last are the
@@ -288,8 +416,13 @@ module Aws::S3
288
416
  # you want to copy the first 10 bytes of the source. You can copy a
289
417
  # range only if the source object is greater than 5 MB.
290
418
  # @option options [String] :sse_customer_algorithm
291
- # Specifies the algorithm to use to when encrypting the object (for
419
+ # Specifies the algorithm to use when encrypting the object (for
292
420
  # example, AES256).
421
+ #
422
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
423
+ # directory bucket.
424
+ #
425
+ # </note>
293
426
  # @option options [String] :sse_customer_key
294
427
  # Specifies the customer-provided encryption key for Amazon S3 to use in
295
428
  # encrypting data. This value is used to store the object and then it is
@@ -298,39 +431,72 @@ module Aws::S3
298
431
  # `x-amz-server-side-encryption-customer-algorithm` header. This must be
299
432
  # the same encryption key specified in the initiate multipart upload
300
433
  # request.
434
+ #
435
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
436
+ # directory bucket.
437
+ #
438
+ # </note>
301
439
  # @option options [String] :sse_customer_key_md5
302
440
  # Specifies the 128-bit MD5 digest of the encryption key according to
303
441
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
304
442
  # ensure that the encryption key was transmitted without error.
443
+ #
444
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
445
+ # directory bucket.
446
+ #
447
+ # </note>
305
448
  # @option options [String] :copy_source_sse_customer_algorithm
306
449
  # Specifies the algorithm to use when decrypting the source object (for
307
- # example, AES256).
450
+ # example, `AES256`).
451
+ #
452
+ # <note markdown="1"> This functionality is not supported when the source object is in a
453
+ # directory bucket.
454
+ #
455
+ # </note>
308
456
  # @option options [String] :copy_source_sse_customer_key
309
457
  # Specifies the customer-provided encryption key for Amazon S3 to use to
310
458
  # decrypt the source object. The encryption key provided in this header
311
459
  # must be one that was used when the source object was created.
460
+ #
461
+ # <note markdown="1"> This functionality is not supported when the source object is in a
462
+ # directory bucket.
463
+ #
464
+ # </note>
312
465
  # @option options [String] :copy_source_sse_customer_key_md5
313
466
  # Specifies the 128-bit MD5 digest of the encryption key according to
314
467
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
315
468
  # ensure that the encryption key was transmitted without error.
469
+ #
470
+ # <note markdown="1"> This functionality is not supported when the source object is in a
471
+ # directory bucket.
472
+ #
473
+ # </note>
316
474
  # @option options [String] :request_payer
317
475
  # Confirms that the requester knows that they will be charged for the
318
476
  # request. Bucket owners need not specify this parameter in their
319
- # requests. For information about downloading objects from requester
320
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
477
+ # requests. If either the source or destination S3 bucket has Requester
478
+ # Pays enabled, the requester will pay for corresponding charges to copy
479
+ # the object. For information about downloading objects from Requester
480
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
321
481
  # in the *Amazon S3 User Guide*.
322
482
  #
483
+ # <note markdown="1"> This functionality is not supported for directory buckets.
484
+ #
485
+ # </note>
486
+ #
323
487
  #
324
488
  #
325
489
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
326
490
  # @option options [String] :expected_bucket_owner
327
491
  # The account ID of the expected destination bucket owner. If the
328
- # destination bucket is owned by a different account, the request will
329
- # fail with an HTTP `403 (Access Denied)` error.
492
+ # account ID that you provide does not match the actual owner of the
493
+ # destination bucket, the request fails with the HTTP status code `403
494
+ # Forbidden` (access denied).
330
495
  # @option options [String] :expected_source_bucket_owner
331
- # The account ID of the expected source bucket owner. If the source
332
- # bucket is owned by a different account, the request will fail with an
333
- # HTTP `403 (Access Denied)` error.
496
+ # The account ID of the expected source bucket owner. If the account ID
497
+ # that you provide does not match the actual owner of the source bucket,
498
+ # the request fails with the HTTP status code `403 Forbidden` (access
499
+ # denied).
334
500
  # @return [Types::UploadPartCopyOutput]
335
501
  def copy_from(options = {})
336
502
  options = options.merge(
@@ -339,7 +505,9 @@ module Aws::S3
339
505
  upload_id: @multipart_upload_id,
340
506
  part_number: @part_number
341
507
  )
342
- resp = @client.upload_part_copy(options)
508
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
509
+ @client.upload_part_copy(options)
510
+ end
343
511
  resp.data
344
512
  end
345
513
 
@@ -349,6 +517,12 @@ module Aws::S3
349
517
  # body: source_file,
350
518
  # content_length: 1,
351
519
  # content_md5: "ContentMD5",
520
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
521
+ # checksum_crc32: "ChecksumCRC32",
522
+ # checksum_crc32c: "ChecksumCRC32C",
523
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
524
+ # checksum_sha1: "ChecksumSHA1",
525
+ # checksum_sha256: "ChecksumSHA256",
352
526
  # sse_customer_algorithm: "SSECustomerAlgorithm",
353
527
  # sse_customer_key: "SSECustomerKey",
354
528
  # sse_customer_key_md5: "SSECustomerKeyMD5",
@@ -362,12 +536,88 @@ module Aws::S3
362
536
  # Size of the body in bytes. This parameter is useful when the size of
363
537
  # the body cannot be determined automatically.
364
538
  # @option options [String] :content_md5
365
- # The base64-encoded 128-bit MD5 digest of the part data. This parameter
539
+ # The Base64 encoded 128-bit MD5 digest of the part data. This parameter
366
540
  # is auto-populated when using the command from the CLI. This parameter
367
541
  # is required if object lock parameters are specified.
542
+ #
543
+ # <note markdown="1"> This functionality is not supported for directory buckets.
544
+ #
545
+ # </note>
546
+ # @option options [String] :checksum_algorithm
547
+ # Indicates the algorithm used to create the checksum for the object
548
+ # when you use the SDK. This header will not provide any additional
549
+ # functionality if you don't use the SDK. When you send this header,
550
+ # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
551
+ # header sent. Otherwise, Amazon S3 fails the request with the HTTP
552
+ # status code `400 Bad Request`. For more information, see [Checking
553
+ # object integrity][1] in the *Amazon S3 User Guide*.
554
+ #
555
+ # If you provide an individual checksum, Amazon S3 ignores any provided
556
+ # `ChecksumAlgorithm` parameter.
557
+ #
558
+ # This checksum algorithm must be the same for all parts and it match
559
+ # the checksum value supplied in the `CreateMultipartUpload` request.
560
+ #
561
+ #
562
+ #
563
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
564
+ # @option options [String] :checksum_crc32
565
+ # This header can be used as a data integrity check to verify that the
566
+ # data received is the same data that was originally sent. This header
567
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
568
+ # For more information, see [Checking object integrity][1] in the
569
+ # *Amazon S3 User Guide*.
570
+ #
571
+ #
572
+ #
573
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
574
+ # @option options [String] :checksum_crc32c
575
+ # This header can be used as a data integrity check to verify that the
576
+ # data received is the same data that was originally sent. This header
577
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
578
+ # For more information, see [Checking object integrity][1] in the
579
+ # *Amazon S3 User Guide*.
580
+ #
581
+ #
582
+ #
583
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
584
+ # @option options [String] :checksum_crc64nvme
585
+ # This header can be used as a data integrity check to verify that the
586
+ # data received is the same data that was originally sent. This header
587
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the part.
588
+ # For more information, see [Checking object integrity][1] in the
589
+ # *Amazon S3 User Guide*.
590
+ #
591
+ #
592
+ #
593
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
594
+ # @option options [String] :checksum_sha1
595
+ # This header can be used as a data integrity check to verify that the
596
+ # data received is the same data that was originally sent. This header
597
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
598
+ # more information, see [Checking object integrity][1] in the *Amazon S3
599
+ # User Guide*.
600
+ #
601
+ #
602
+ #
603
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
604
+ # @option options [String] :checksum_sha256
605
+ # This header can be used as a data integrity check to verify that the
606
+ # data received is the same data that was originally sent. This header
607
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
608
+ # For more information, see [Checking object integrity][1] in the
609
+ # *Amazon S3 User Guide*.
610
+ #
611
+ #
612
+ #
613
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
368
614
  # @option options [String] :sse_customer_algorithm
369
- # Specifies the algorithm to use to when encrypting the object (for
615
+ # Specifies the algorithm to use when encrypting the object (for
370
616
  # example, AES256).
617
+ #
618
+ # <note markdown="1"> This functionality is not supported for directory buckets.
619
+ #
620
+ # </note>
371
621
  # @option options [String] :sse_customer_key
372
622
  # Specifies the customer-provided encryption key for Amazon S3 to use in
373
623
  # encrypting data. This value is used to store the object and then it is
@@ -376,24 +626,38 @@ module Aws::S3
376
626
  # `x-amz-server-side-encryption-customer-algorithm header`. This must be
377
627
  # the same encryption key specified in the initiate multipart upload
378
628
  # request.
629
+ #
630
+ # <note markdown="1"> This functionality is not supported for directory buckets.
631
+ #
632
+ # </note>
379
633
  # @option options [String] :sse_customer_key_md5
380
634
  # Specifies the 128-bit MD5 digest of the encryption key according to
381
635
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
382
636
  # ensure that the encryption key was transmitted without error.
637
+ #
638
+ # <note markdown="1"> This functionality is not supported for directory buckets.
639
+ #
640
+ # </note>
383
641
  # @option options [String] :request_payer
384
642
  # Confirms that the requester knows that they will be charged for the
385
643
  # request. Bucket owners need not specify this parameter in their
386
- # requests. For information about downloading objects from requester
387
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
644
+ # requests. If either the source or destination S3 bucket has Requester
645
+ # Pays enabled, the requester will pay for corresponding charges to copy
646
+ # the object. For information about downloading objects from Requester
647
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
388
648
  # in the *Amazon S3 User Guide*.
389
649
  #
650
+ # <note markdown="1"> This functionality is not supported for directory buckets.
651
+ #
652
+ # </note>
653
+ #
390
654
  #
391
655
  #
392
656
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
393
657
  # @option options [String] :expected_bucket_owner
394
- # The account ID of the expected bucket owner. If the bucket is owned by
395
- # a different account, the request will fail with an HTTP `403 (Access
396
- # Denied)` error.
658
+ # The account ID of the expected bucket owner. If the account ID that
659
+ # you provide does not match the actual owner of the bucket, the request
660
+ # fails with the HTTP status code `403 Forbidden` (access denied).
397
661
  # @return [Types::UploadPartOutput]
398
662
  def upload(options = {})
399
663
  options = options.merge(
@@ -402,7 +666,9 @@ module Aws::S3
402
666
  upload_id: @multipart_upload_id,
403
667
  part_number: @part_number
404
668
  )
405
- resp = @client.upload_part(options)
669
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
670
+ @client.upload_part(options)
671
+ end
406
672
  resp.data
407
673
  end
408
674