aws-sdk-s3 1.176.1 → 1.208.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +202 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +86 -35
  5. data/lib/aws-sdk-s3/bucket_acl.rb +7 -6
  6. data/lib/aws-sdk-s3/bucket_cors.rb +6 -5
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +2 -2
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +3 -3
  9. data/lib/aws-sdk-s3/bucket_logging.rb +2 -2
  10. data/lib/aws-sdk-s3/bucket_policy.rb +6 -5
  11. data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
  12. data/lib/aws-sdk-s3/bucket_tagging.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_versioning.rb +42 -9
  14. data/lib/aws-sdk-s3/bucket_website.rb +3 -3
  15. data/lib/aws-sdk-s3/client.rb +3038 -1226
  16. data/lib/aws-sdk-s3/client_api.rb +492 -164
  17. data/lib/aws-sdk-s3/customizations/object.rb +76 -86
  18. data/lib/aws-sdk-s3/customizations.rb +4 -1
  19. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  20. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  21. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +2 -0
  22. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +2 -0
  23. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -0
  24. data/lib/aws-sdk-s3/encryptionV2/client.rb +98 -23
  25. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +7 -162
  26. data/lib/aws-sdk-s3/encryptionV2/decryption.rb +205 -0
  27. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +17 -0
  28. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +2 -0
  29. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
  30. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +8 -0
  31. data/lib/aws-sdk-s3/encryptionV2/utils.rb +5 -0
  32. data/lib/aws-sdk-s3/encryptionV3/client.rb +885 -0
  33. data/lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb +98 -0
  34. data/lib/aws-sdk-s3/encryptionV3/decryption.rb +244 -0
  35. data/lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb +159 -0
  36. data/lib/aws-sdk-s3/encryptionV3/default_key_provider.rb +35 -0
  37. data/lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb +98 -0
  38. data/lib/aws-sdk-s3/encryptionV3/errors.rb +47 -0
  39. data/lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb +60 -0
  40. data/lib/aws-sdk-s3/encryptionV3/io_decrypter.rb +35 -0
  41. data/lib/aws-sdk-s3/encryptionV3/io_encrypter.rb +84 -0
  42. data/lib/aws-sdk-s3/encryptionV3/key_provider.rb +28 -0
  43. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +159 -0
  44. data/lib/aws-sdk-s3/encryptionV3/materials.rb +58 -0
  45. data/lib/aws-sdk-s3/encryptionV3/utils.rb +321 -0
  46. data/lib/aws-sdk-s3/encryption_v2.rb +1 -0
  47. data/lib/aws-sdk-s3/encryption_v3.rb +24 -0
  48. data/lib/aws-sdk-s3/endpoint_parameters.rb +17 -17
  49. data/lib/aws-sdk-s3/endpoint_provider.rb +562 -304
  50. data/lib/aws-sdk-s3/endpoints.rb +110 -0
  51. data/lib/aws-sdk-s3/errors.rb +11 -0
  52. data/lib/aws-sdk-s3/file_downloader.rb +189 -143
  53. data/lib/aws-sdk-s3/file_uploader.rb +9 -13
  54. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  55. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  56. data/lib/aws-sdk-s3/multipart_file_uploader.rb +105 -102
  57. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +96 -107
  58. data/lib/aws-sdk-s3/multipart_upload.rb +50 -6
  59. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  60. data/lib/aws-sdk-s3/multipart_upload_part.rb +50 -34
  61. data/lib/aws-sdk-s3/object.rb +264 -137
  62. data/lib/aws-sdk-s3/object_acl.rb +12 -6
  63. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -1
  64. data/lib/aws-sdk-s3/object_summary.rb +179 -103
  65. data/lib/aws-sdk-s3/object_version.rb +25 -23
  66. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  67. data/lib/aws-sdk-s3/plugins/endpoints.rb +1 -1
  68. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +11 -20
  69. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  70. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +5 -7
  71. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  72. data/lib/aws-sdk-s3/presigner.rb +4 -5
  73. data/lib/aws-sdk-s3/resource.rb +7 -1
  74. data/lib/aws-sdk-s3/transfer_manager.rb +303 -0
  75. data/lib/aws-sdk-s3/types.rb +2907 -1059
  76. data/lib/aws-sdk-s3.rb +1 -1
  77. data/sig/bucket.rbs +16 -6
  78. data/sig/bucket_acl.rbs +1 -1
  79. data/sig/bucket_cors.rbs +1 -1
  80. data/sig/bucket_lifecycle.rbs +1 -1
  81. data/sig/bucket_lifecycle_configuration.rbs +1 -1
  82. data/sig/bucket_logging.rbs +1 -1
  83. data/sig/bucket_policy.rbs +1 -1
  84. data/sig/bucket_request_payment.rbs +1 -1
  85. data/sig/bucket_tagging.rbs +1 -1
  86. data/sig/bucket_versioning.rbs +3 -3
  87. data/sig/bucket_website.rbs +1 -1
  88. data/sig/client.rbs +226 -64
  89. data/sig/errors.rbs +2 -0
  90. data/sig/multipart_upload.rbs +9 -2
  91. data/sig/multipart_upload_part.rbs +5 -1
  92. data/sig/object.rbs +31 -15
  93. data/sig/object_acl.rbs +1 -1
  94. data/sig/object_summary.rbs +22 -15
  95. data/sig/object_version.rbs +5 -2
  96. data/sig/resource.rbs +11 -2
  97. data/sig/types.rbs +281 -64
  98. metadata +26 -10
  99. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
@@ -97,9 +97,10 @@ module Aws::S3
97
97
  # For more information about archiving objects, see [Transitioning
98
98
  # Objects: General Considerations][2].
99
99
  #
100
- # <note markdown="1"> This functionality is not supported for directory buckets. Only the S3
101
- # Express One Zone storage class is supported by directory buckets to
102
- # store objects.
100
+ # <note markdown="1"> This functionality is not supported for directory buckets. Directory
101
+ # buckets only support `EXPRESS_ONEZONE` (the S3 Express One Zone
102
+ # storage class) in Availability Zones and `ONEZONE_IA` (the S3 One
103
+ # Zone-Infrequent Access storage class) in Dedicated Local Zones.
103
104
  #
104
105
  # </note>
105
106
  #
@@ -134,14 +135,14 @@ module Aws::S3
134
135
  data[:content_length]
135
136
  end
136
137
 
137
- # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
138
- # only be present if it was uploaded with the object. When you use an
139
- # API operation on an object that was uploaded using multipart uploads,
140
- # this value may not be a direct checksum value of the full object.
141
- # Instead, it's a calculation based on the checksum values of each
142
- # individual part. For more information about how checksums are
143
- # calculated with multipart uploads, see [ Checking object integrity][1]
144
- # in the *Amazon S3 User Guide*.
138
+ # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
139
+ # checksum is only present if the checksum was uploaded with the object.
140
+ # When you use an API operation on an object that was uploaded using
141
+ # multipart uploads, this value may not be a direct checksum value of
142
+ # the full object. Instead, it's a calculation based on the checksum
143
+ # values of each individual part. For more information about how
144
+ # checksums are calculated with multipart uploads, see [ Checking object
145
+ # integrity][1] in the *Amazon S3 User Guide*.
145
146
  #
146
147
  #
147
148
  #
@@ -151,14 +152,14 @@ module Aws::S3
151
152
  data[:checksum_crc32]
152
153
  end
153
154
 
154
- # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
155
- # only be present if it was uploaded with the object. When you use an
156
- # API operation on an object that was uploaded using multipart uploads,
157
- # this value may not be a direct checksum value of the full object.
158
- # Instead, it's a calculation based on the checksum values of each
159
- # individual part. For more information about how checksums are
160
- # calculated with multipart uploads, see [ Checking object integrity][1]
161
- # in the *Amazon S3 User Guide*.
155
+ # The Base64 encoded, 32-bit `CRC32C` checksum of the object. This
156
+ # checksum is only present if the checksum was uploaded with the object.
157
+ # When you use an API operation on an object that was uploaded using
158
+ # multipart uploads, this value may not be a direct checksum value of
159
+ # the full object. Instead, it's a calculation based on the checksum
160
+ # values of each individual part. For more information about how
161
+ # checksums are calculated with multipart uploads, see [ Checking object
162
+ # integrity][1] in the *Amazon S3 User Guide*.
162
163
  #
163
164
  #
164
165
  #
@@ -168,14 +169,26 @@ module Aws::S3
168
169
  data[:checksum_crc32c]
169
170
  end
170
171
 
171
- # The base64-encoded, 160-bit SHA-1 digest of the object. This will only
172
- # be present if it was uploaded with the object. When you use the API
173
- # operation on an object that was uploaded using multipart uploads, this
174
- # value may not be a direct checksum value of the full object. Instead,
175
- # it's a calculation based on the checksum values of each individual
176
- # part. For more information about how checksums are calculated with
177
- # multipart uploads, see [ Checking object integrity][1] in the *Amazon
178
- # S3 User Guide*.
172
+ # The Base64 encoded, 64-bit `CRC64NVME` checksum of the object. For
173
+ # more information, see [Checking object integrity in the Amazon S3 User
174
+ # Guide][1].
175
+ #
176
+ #
177
+ #
178
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
179
+ # @return [String]
180
+ def checksum_crc64nvme
181
+ data[:checksum_crc64nvme]
182
+ end
183
+
184
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum
185
+ # is only present if the checksum was uploaded with the object. When you
186
+ # use the API operation on an object that was uploaded using multipart
187
+ # uploads, this value may not be a direct checksum value of the full
188
+ # object. Instead, it's a calculation based on the checksum values of
189
+ # each individual part. For more information about how checksums are
190
+ # calculated with multipart uploads, see [ Checking object integrity][1]
191
+ # in the *Amazon S3 User Guide*.
179
192
  #
180
193
  #
181
194
  #
@@ -185,14 +198,14 @@ module Aws::S3
185
198
  data[:checksum_sha1]
186
199
  end
187
200
 
188
- # The base64-encoded, 256-bit SHA-256 digest of the object. This will
189
- # only be present if it was uploaded with the object. When you use an
190
- # API operation on an object that was uploaded using multipart uploads,
191
- # this value may not be a direct checksum value of the full object.
192
- # Instead, it's a calculation based on the checksum values of each
193
- # individual part. For more information about how checksums are
194
- # calculated with multipart uploads, see [ Checking object integrity][1]
195
- # in the *Amazon S3 User Guide*.
201
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
202
+ # checksum is only present if the checksum was uploaded with the object.
203
+ # When you use an API operation on an object that was uploaded using
204
+ # multipart uploads, this value may not be a direct checksum value of
205
+ # the full object. Instead, it's a calculation based on the checksum
206
+ # values of each individual part. For more information about how
207
+ # checksums are calculated with multipart uploads, see [ Checking object
208
+ # integrity][1] in the *Amazon S3 User Guide*.
196
209
  #
197
210
  #
198
211
  #
@@ -202,6 +215,21 @@ module Aws::S3
202
215
  data[:checksum_sha256]
203
216
  end
204
217
 
218
+ # The checksum type, which determines how part-level checksums are
219
+ # combined to create an object-level checksum for multipart objects. You
220
+ # can use this header response to verify that the checksum type that is
221
+ # received is the same checksum type that was specified in
222
+ # `CreateMultipartUpload` request. For more information, see [Checking
223
+ # object integrity in the Amazon S3 User Guide][1].
224
+ #
225
+ #
226
+ #
227
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
228
+ # @return [String]
229
+ def checksum_type
230
+ data[:checksum_type]
231
+ end
232
+
205
233
  # An entity tag (ETag) is an opaque identifier assigned by a web server
206
234
  # to a specific version of a resource found at a URL.
207
235
  # @return [String]
@@ -265,6 +293,13 @@ module Aws::S3
265
293
  data[:content_type]
266
294
  end
267
295
 
296
+ # The portion of the object returned in the response for a `GET`
297
+ # request.
298
+ # @return [String]
299
+ def content_range
300
+ data[:content_range]
301
+ end
302
+
268
303
  # The date and time at which the object is no longer cacheable.
269
304
  # @return [Time]
270
305
  def expires
@@ -289,7 +324,12 @@ module Aws::S3
289
324
  end
290
325
 
291
326
  # The server-side encryption algorithm used when you store this object
292
- # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
327
+ # in Amazon S3 or Amazon FSx.
328
+ #
329
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3 access
330
+ # points, the only valid server side encryption option is `aws:fsx`.
331
+ #
332
+ # </note>
293
333
  # @return [String]
294
334
  def server_side_encryption
295
335
  data[:server_side_encryption]
@@ -346,8 +386,10 @@ module Aws::S3
346
386
  #
347
387
  # For more information, see [Storage Classes][1].
348
388
  #
349
- # <note markdown="1"> <b>Directory buckets </b> - Only the S3 Express One Zone storage class
350
- # is supported by directory buckets to store objects.
389
+ # <note markdown="1"> <b>Directory buckets </b> - Directory buckets only support
390
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
391
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access
392
+ # storage class) in Dedicated Local Zones.
351
393
  #
352
394
  # </note>
353
395
  #
@@ -360,11 +402,17 @@ module Aws::S3
360
402
  end
361
403
 
362
404
  # If present, indicates that the requester was successfully charged for
363
- # the request.
405
+ # the request. For more information, see [Using Requester Pays buckets
406
+ # for storage transfers and usage][1] in the *Amazon Simple Storage
407
+ # Service user guide*.
364
408
  #
365
409
  # <note markdown="1"> This functionality is not supported for directory buckets.
366
410
  #
367
411
  # </note>
412
+ #
413
+ #
414
+ #
415
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
368
416
  # @return [String]
369
417
  def request_charged
370
418
  data[:request_charged]
@@ -427,6 +475,24 @@ module Aws::S3
427
475
  data[:parts_count]
428
476
  end
429
477
 
478
+ # The number of tags, if any, on the object, when you have the relevant
479
+ # permission to read object tags.
480
+ #
481
+ # You can use [GetObjectTagging][1] to retrieve the tag set associated
482
+ # with an object.
483
+ #
484
+ # <note markdown="1"> This functionality is not supported for directory buckets.
485
+ #
486
+ # </note>
487
+ #
488
+ #
489
+ #
490
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html
491
+ # @return [Integer]
492
+ def tag_count
493
+ data[:tag_count]
494
+ end
495
+
430
496
  # The Object Lock mode, if any, that's in effect for this object. This
431
497
  # header is only returned if the requester has the
432
498
  # `s3:GetObjectRetention` permission. For more information about S3
@@ -676,7 +742,7 @@ module Aws::S3
676
742
  # object.copy_from({
677
743
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
678
744
  # cache_control: "CacheControl",
679
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
745
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
680
746
  # content_disposition: "ContentDisposition",
681
747
  # content_encoding: "ContentEncoding",
682
748
  # content_language: "ContentLanguage",
@@ -691,13 +757,15 @@ module Aws::S3
691
757
  # grant_read: "GrantRead",
692
758
  # grant_read_acp: "GrantReadACP",
693
759
  # grant_write_acp: "GrantWriteACP",
760
+ # if_match: "IfMatch",
761
+ # if_none_match: "IfNoneMatch",
694
762
  # metadata: {
695
763
  # "MetadataKey" => "MetadataValue",
696
764
  # },
697
765
  # metadata_directive: "COPY", # accepts COPY, REPLACE
698
766
  # tagging_directive: "COPY", # accepts COPY, REPLACE
699
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
700
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
767
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
768
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
701
769
  # website_redirect_location: "WebsiteRedirectLocation",
702
770
  # sse_customer_algorithm: "SSECustomerAlgorithm",
703
771
  # sse_customer_key: "SSECustomerKey",
@@ -947,6 +1015,35 @@ module Aws::S3
947
1015
  # * This functionality is not supported for Amazon S3 on Outposts.
948
1016
  #
949
1017
  # </note>
1018
+ # @option options [String] :if_match
1019
+ # Copies the object if the entity tag (ETag) of the destination object
1020
+ # matches the specified tag. If the ETag values do not match, the
1021
+ # operation returns a `412 Precondition Failed` error. If a concurrent
1022
+ # operation occurs during the upload S3 returns a `409
1023
+ # ConditionalRequestConflict` response. On a 409 failure you should
1024
+ # fetch the object's ETag and retry the upload.
1025
+ #
1026
+ # Expects the ETag value as a string.
1027
+ #
1028
+ # For more information about conditional requests, see [RFC 7232][1].
1029
+ #
1030
+ #
1031
+ #
1032
+ # [1]: https://tools.ietf.org/html/rfc7232
1033
+ # @option options [String] :if_none_match
1034
+ # Copies the object only if the object key name at the destination does
1035
+ # not already exist in the bucket specified. Otherwise, Amazon S3
1036
+ # returns a `412 Precondition Failed` error. If a concurrent operation
1037
+ # occurs during the upload S3 returns a `409 ConditionalRequestConflict`
1038
+ # response. On a 409 failure you should retry the upload.
1039
+ #
1040
+ # Expects the '*' (asterisk) character.
1041
+ #
1042
+ # For more information about conditional requests, see [RFC 7232][1].
1043
+ #
1044
+ #
1045
+ #
1046
+ # [1]: https://tools.ietf.org/html/rfc7232
950
1047
  # @option options [Hash<String,String>] :metadata
951
1048
  # A map of metadata to store with the object in S3.
952
1049
  # @option options [String] :metadata_directive
@@ -1087,6 +1184,14 @@ module Aws::S3
1087
1184
  # key is the same customer managed key that you specified for the
1088
1185
  # directory bucket's default encryption configuration.
1089
1186
  #
1187
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
1188
+ # in Amazon FSx file systems using S3 access points, the only valid
1189
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
1190
+ # systems have encryption configured by default and are encrypted at
1191
+ # rest. Data is automatically encrypted before being written to the
1192
+ # file system, and automatically decrypted as it is read. These
1193
+ # processes are handled transparently by Amazon FSx.
1194
+ #
1090
1195
  #
1091
1196
  #
1092
1197
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
@@ -1101,10 +1206,12 @@ module Aws::S3
1101
1206
  # availability. Depending on performance needs, you can specify a
1102
1207
  # different Storage Class.
1103
1208
  #
1104
- # <note markdown="1"> * <b>Directory buckets </b> - For directory buckets, only the S3
1105
- # Express One Zone storage class is supported to store newly created
1106
- # objects. Unsupported storage class values won't write a destination
1107
- # object and will respond with the HTTP status code `400 Bad Request`.
1209
+ # <note markdown="1"> * <b>Directory buckets </b> - Directory buckets only support
1210
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
1211
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent
1212
+ # Access storage class) in Dedicated Local Zones. Unsupported storage
1213
+ # class values won't write a destination object and will respond with
1214
+ # the HTTP status code `400 Bad Request`.
1108
1215
  #
1109
1216
  # * <b>Amazon S3 on Outposts </b> - S3 on Outposts only uses the
1110
1217
  # `OUTPOSTS` Storage Class.
@@ -1192,20 +1299,17 @@ module Aws::S3
1192
1299
  # Signature Version in Request Authentication][1] in the *Amazon S3 User
1193
1300
  # Guide*.
1194
1301
  #
1195
- # **Directory buckets** - If you specify `x-amz-server-side-encryption`
1196
- # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
1197
- # header is implicitly assigned the ID of the KMS symmetric encryption
1198
- # customer managed key that's configured for your directory bucket's
1199
- # default encryption setting. If you want to specify the `
1200
- # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
1201
- # can only specify it with the ID (Key ID or Key ARN) of the KMS
1202
- # customer managed key that's configured for your directory bucket's
1203
- # default encryption setting. Otherwise, you get an HTTP `400 Bad
1204
- # Request` error. Only use the key ID or key ARN. The key alias format
1205
- # of the KMS key isn't supported. Your SSE-KMS configuration can only
1206
- # support 1 [customer managed key][2] per directory bucket for the
1207
- # lifetime of the bucket. The [Amazon Web Services managed key][3]
1208
- # (`aws/s3`) isn't supported.
1302
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
1303
+ # recommended to specify the `x-amz-server-side-encryption` header to
1304
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
1305
+ # header implicitly uses the bucket's default KMS customer managed key
1306
+ # ID. If you want to explicitly set the `
1307
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
1308
+ # bucket's default customer managed key (using key ID or ARN, not
1309
+ # alias). Your SSE-KMS configuration can only support 1 [customer
1310
+ # managed key][2] per directory bucket's lifetime. The [Amazon Web
1311
+ # Services managed key][3] (`aws/s3`) isn't supported. Incorrect key
1312
+ # specification results in an HTTP `400 Bad Request` error.
1209
1313
  #
1210
1314
  #
1211
1315
  #
@@ -1462,21 +1566,19 @@ module Aws::S3
1462
1566
  # you provide does not match the actual owner of the bucket, the request
1463
1567
  # fails with the HTTP status code `403 Forbidden` (access denied).
1464
1568
  # @option options [String] :if_match
1465
- # The `If-Match` header field makes the request method conditional on
1466
- # ETags. If the ETag value does not match, the operation returns a `412
1467
- # Precondition Failed` error. If the ETag matches or if the object
1468
- # doesn't exist, the operation will return a `204 Success (No Content)
1469
- # response`.
1470
- #
1471
- # For more information about conditional requests, see [RFC 7232][1].
1569
+ # Deletes the object if the ETag (entity tag) value provided during the
1570
+ # delete operation matches the ETag of the object in S3. If the ETag
1571
+ # values do not match, the operation returns a `412 Precondition Failed`
1572
+ # error.
1472
1573
  #
1473
- # <note markdown="1"> This functionality is only supported for directory buckets.
1574
+ # Expects the ETag value as a string. `If-Match` does accept a string
1575
+ # value of an '*' (asterisk) character to denote a match of any ETag.
1474
1576
  #
1475
- # </note>
1577
+ # For more information about conditional requests, see [RFC 7232][1].
1476
1578
  #
1477
1579
  #
1478
1580
  #
1479
- # [1]: https://docs.aws.amazon.com/https:/tools.ietf.org/html/rfc7232
1581
+ # [1]: https://tools.ietf.org/html/rfc7232
1480
1582
  # @option options [Time,DateTime,Date,Integer,String] :if_match_last_modified_time
1481
1583
  # If present, the object is deleted only if its modification times
1482
1584
  # matches the provided `Timestamp`. If the `Timestamp` values do not
@@ -1757,15 +1859,6 @@ module Aws::S3
1757
1859
  # fails with the HTTP status code `403 Forbidden` (access denied).
1758
1860
  # @option options [String] :checksum_mode
1759
1861
  # To retrieve the checksum, this mode must be enabled.
1760
- #
1761
- # **General purpose buckets** - In addition, if you enable checksum mode
1762
- # and the object is uploaded with a [checksum][1] and encrypted with an
1763
- # Key Management Service (KMS) key, you must have permission to use the
1764
- # `kms:Decrypt` action to retrieve the checksum.
1765
- #
1766
- #
1767
- #
1768
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
1769
1862
  # @return [Types::GetObjectOutput]
1770
1863
  def get(options = {}, &block)
1771
1864
  options = options.merge(
@@ -1795,8 +1888,8 @@ module Aws::S3
1795
1888
  # metadata: {
1796
1889
  # "MetadataKey" => "MetadataValue",
1797
1890
  # },
1798
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1799
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
1891
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
1892
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
1800
1893
  # website_redirect_location: "WebsiteRedirectLocation",
1801
1894
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1802
1895
  # sse_customer_key: "SSECustomerKey",
@@ -1810,7 +1903,8 @@ module Aws::S3
1810
1903
  # object_lock_retain_until_date: Time.now,
1811
1904
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
1812
1905
  # expected_bucket_owner: "AccountId",
1813
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1906
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
1907
+ # checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
1814
1908
  # })
1815
1909
  # @param [Hash] options ({})
1816
1910
  # @option options [String] :acl
@@ -2112,7 +2206,7 @@ module Aws::S3
2112
2206
  # A map of metadata to store with the object in S3.
2113
2207
  # @option options [String] :server_side_encryption
2114
2208
  # The server-side encryption algorithm used when you store this object
2115
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
2209
+ # in Amazon S3 or Amazon FSx.
2116
2210
  #
2117
2211
  # * <b>Directory buckets </b> - For directory buckets, there are only
2118
2212
  # two supported options for server-side encryption: server-side
@@ -2154,6 +2248,14 @@ module Aws::S3
2154
2248
  #
2155
2249
  # </note>
2156
2250
  #
2251
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2252
+ # in Amazon FSx file systems using S3 access points, the only valid
2253
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2254
+ # systems have encryption configured by default and are encrypted at
2255
+ # rest. Data is automatically encrypted before being written to the
2256
+ # file system, and automatically decrypted as it is read. These
2257
+ # processes are handled transparently by Amazon FSx.
2258
+ #
2157
2259
  #
2158
2260
  #
2159
2261
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
@@ -2167,8 +2269,9 @@ module Aws::S3
2167
2269
  # a different Storage Class. For more information, see [Storage
2168
2270
  # Classes][1] in the *Amazon S3 User Guide*.
2169
2271
  #
2170
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
2171
- # supported to store newly created objects.
2272
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
2273
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
2274
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
2172
2275
  #
2173
2276
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
2174
2277
  #
@@ -2225,20 +2328,17 @@ module Aws::S3
2225
2328
  # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
2226
2329
  # Amazon Web Services managed key (`aws/s3`) to protect the data.
2227
2330
  #
2228
- # **Directory buckets** - If you specify `x-amz-server-side-encryption`
2229
- # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
2230
- # header is implicitly assigned the ID of the KMS symmetric encryption
2231
- # customer managed key that's configured for your directory bucket's
2232
- # default encryption setting. If you want to specify the `
2233
- # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
2234
- # can only specify it with the ID (Key ID or Key ARN) of the KMS
2235
- # customer managed key that's configured for your directory bucket's
2236
- # default encryption setting. Otherwise, you get an HTTP `400 Bad
2237
- # Request` error. Only use the key ID or key ARN. The key alias format
2238
- # of the KMS key isn't supported. Your SSE-KMS configuration can only
2239
- # support 1 [customer managed key][1] per directory bucket for the
2240
- # lifetime of the bucket. The [Amazon Web Services managed key][2]
2241
- # (`aws/s3`) isn't supported.
2331
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
2332
+ # recommended to specify the `x-amz-server-side-encryption` header to
2333
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
2334
+ # header implicitly uses the bucket's default KMS customer managed key
2335
+ # ID. If you want to explicitly set the `
2336
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
2337
+ # bucket's default customer managed key (using key ID or ARN, not
2338
+ # alias). Your SSE-KMS configuration can only support 1 [customer
2339
+ # managed key][1] per directory bucket's lifetime. The [Amazon Web
2340
+ # Services managed key][2] (`aws/s3`) isn't supported. Incorrect key
2341
+ # specification results in an HTTP `400 Bad Request` error.
2242
2342
  #
2243
2343
  #
2244
2344
  #
@@ -2246,7 +2346,7 @@ module Aws::S3
2246
2346
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
2247
2347
  # @option options [String] :ssekms_encryption_context
2248
2348
  # Specifies the Amazon Web Services KMS Encryption Context to use for
2249
- # object encryption. The value of this header is a Base64-encoded string
2349
+ # object encryption. The value of this header is a Base64 encoded string
2250
2350
  # of a UTF-8 encoded JSON, which contains the encryption context as
2251
2351
  # key-value pairs.
2252
2352
  #
@@ -2335,6 +2435,14 @@ module Aws::S3
2335
2435
  #
2336
2436
  #
2337
2437
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2438
+ # @option options [String] :checksum_type
2439
+ # Indicates the checksum type that you want Amazon S3 to use to
2440
+ # calculate the object’s checksum value. For more information, see
2441
+ # [Checking object integrity in the Amazon S3 User Guide][1].
2442
+ #
2443
+ #
2444
+ #
2445
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2338
2446
  # @return [MultipartUpload]
2339
2447
  def initiate_multipart_upload(options = {})
2340
2448
  options = options.merge(
@@ -2364,9 +2472,10 @@ module Aws::S3
2364
2472
  # content_length: 1,
2365
2473
  # content_md5: "ContentMD5",
2366
2474
  # content_type: "ContentType",
2367
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
2475
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2368
2476
  # checksum_crc32: "ChecksumCRC32",
2369
2477
  # checksum_crc32c: "ChecksumCRC32C",
2478
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
2370
2479
  # checksum_sha1: "ChecksumSHA1",
2371
2480
  # checksum_sha256: "ChecksumSHA256",
2372
2481
  # expires: Time.now,
@@ -2380,8 +2489,8 @@ module Aws::S3
2380
2489
  # metadata: {
2381
2490
  # "MetadataKey" => "MetadataValue",
2382
2491
  # },
2383
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
2384
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
2492
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2493
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
2385
2494
  # website_redirect_location: "WebsiteRedirectLocation",
2386
2495
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2387
2496
  # sse_customer_key: "SSECustomerKey",
@@ -2472,7 +2581,7 @@ module Aws::S3
2472
2581
  #
2473
2582
  # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
2474
2583
  # @option options [String] :content_md5
2475
- # The base64-encoded 128-bit MD5 digest of the message (without the
2584
+ # The Base64 encoded 128-bit `MD5` digest of the message (without the
2476
2585
  # headers) according to RFC 1864. This header can be used as a message
2477
2586
  # integrity check to verify that the data is the same data that was
2478
2587
  # originally sent. Although it is optional, we recommend using the
@@ -2519,6 +2628,8 @@ module Aws::S3
2519
2628
  #
2520
2629
  # * `CRC32C`
2521
2630
  #
2631
+ # * `CRC64NVME`
2632
+ #
2522
2633
  # * `SHA1`
2523
2634
  #
2524
2635
  # * `SHA256`
@@ -2528,9 +2639,8 @@ module Aws::S3
2528
2639
  #
2529
2640
  # If the individual checksum value you provide through
2530
2641
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
2531
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
2532
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
2533
- # that matches the provided value in `x-amz-checksum-algorithm `.
2642
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
2643
+ # request with a `BadDigest` error.
2534
2644
  #
2535
2645
  # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
2536
2646
  # for any request to upload an object with a retention period configured
@@ -2550,7 +2660,7 @@ module Aws::S3
2550
2660
  # @option options [String] :checksum_crc32
2551
2661
  # This header can be used as a data integrity check to verify that the
2552
2662
  # data received is the same data that was originally sent. This header
2553
- # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
2663
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
2554
2664
  # For more information, see [Checking object integrity][1] in the
2555
2665
  # *Amazon S3 User Guide*.
2556
2666
  #
@@ -2560,17 +2670,28 @@ module Aws::S3
2560
2670
  # @option options [String] :checksum_crc32c
2561
2671
  # This header can be used as a data integrity check to verify that the
2562
2672
  # data received is the same data that was originally sent. This header
2563
- # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
2673
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
2564
2674
  # For more information, see [Checking object integrity][1] in the
2565
2675
  # *Amazon S3 User Guide*.
2566
2676
  #
2567
2677
  #
2568
2678
  #
2569
2679
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2680
+ # @option options [String] :checksum_crc64nvme
2681
+ # This header can be used as a data integrity check to verify that the
2682
+ # data received is the same data that was originally sent. This header
2683
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the
2684
+ # object. The `CRC64NVME` checksum is always a full object checksum. For
2685
+ # more information, see [Checking object integrity in the Amazon S3 User
2686
+ # Guide][1].
2687
+ #
2688
+ #
2689
+ #
2690
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2570
2691
  # @option options [String] :checksum_sha1
2571
2692
  # This header can be used as a data integrity check to verify that the
2572
2693
  # data received is the same data that was originally sent. This header
2573
- # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
2694
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
2574
2695
  # more information, see [Checking object integrity][1] in the *Amazon S3
2575
2696
  # User Guide*.
2576
2697
  #
@@ -2580,7 +2701,7 @@ module Aws::S3
2580
2701
  # @option options [String] :checksum_sha256
2581
2702
  # This header can be used as a data integrity check to verify that the
2582
2703
  # data received is the same data that was originally sent. This header
2583
- # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
2704
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
2584
2705
  # For more information, see [Checking object integrity][1] in the
2585
2706
  # *Amazon S3 User Guide*.
2586
2707
  #
@@ -2679,8 +2800,7 @@ module Aws::S3
2679
2800
  # A map of metadata to store with the object in S3.
2680
2801
  # @option options [String] :server_side_encryption
2681
2802
  # The server-side encryption algorithm that was used when you store this
2682
- # object in Amazon S3 (for example, `AES256`, `aws:kms`,
2683
- # `aws:kms:dsse`).
2803
+ # object in Amazon S3 or Amazon FSx.
2684
2804
  #
2685
2805
  # * <b>General purpose buckets </b> - You have four mutually exclusive
2686
2806
  # options to protect data using server-side encryption in Amazon S3,
@@ -2734,6 +2854,14 @@ module Aws::S3
2734
2854
  #
2735
2855
  # </note>
2736
2856
  #
2857
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2858
+ # in Amazon FSx file systems using S3 access points, the only valid
2859
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2860
+ # systems have encryption configured by default and are encrypted at
2861
+ # rest. Data is automatically encrypted before being written to the
2862
+ # file system, and automatically decrypted as it is read. These
2863
+ # processes are handled transparently by Amazon FSx.
2864
+ #
2737
2865
  #
2738
2866
  #
2739
2867
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
@@ -2748,8 +2876,9 @@ module Aws::S3
2748
2876
  # a different Storage Class. For more information, see [Storage
2749
2877
  # Classes][1] in the *Amazon S3 User Guide*.
2750
2878
  #
2751
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
2752
- # supported to store newly created objects.
2879
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
2880
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
2881
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
2753
2882
  #
2754
2883
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
2755
2884
  #
@@ -2827,20 +2956,17 @@ module Aws::S3
2827
2956
  # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
2828
2957
  # Amazon Web Services managed key (`aws/s3`) to protect the data.
2829
2958
  #
2830
- # **Directory buckets** - If you specify `x-amz-server-side-encryption`
2831
- # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
2832
- # header is implicitly assigned the ID of the KMS symmetric encryption
2833
- # customer managed key that's configured for your directory bucket's
2834
- # default encryption setting. If you want to specify the `
2835
- # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
2836
- # can only specify it with the ID (Key ID or Key ARN) of the KMS
2837
- # customer managed key that's configured for your directory bucket's
2838
- # default encryption setting. Otherwise, you get an HTTP `400 Bad
2839
- # Request` error. Only use the key ID or key ARN. The key alias format
2840
- # of the KMS key isn't supported. Your SSE-KMS configuration can only
2841
- # support 1 [customer managed key][1] per directory bucket for the
2842
- # lifetime of the bucket. The [Amazon Web Services managed key][2]
2843
- # (`aws/s3`) isn't supported.
2959
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
2960
+ # recommended to specify the `x-amz-server-side-encryption` header to
2961
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
2962
+ # header implicitly uses the bucket's default KMS customer managed key
2963
+ # ID. If you want to explicitly set the `
2964
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
2965
+ # bucket's default customer managed key (using key ID or ARN, not
2966
+ # alias). Your SSE-KMS configuration can only support 1 [customer
2967
+ # managed key][1] per directory bucket's lifetime. The [Amazon Web
2968
+ # Services managed key][2] (`aws/s3`) isn't supported. Incorrect key
2969
+ # specification results in an HTTP `400 Bad Request` error.
2844
2970
  #
2845
2971
  #
2846
2972
  #
@@ -2849,7 +2975,7 @@ module Aws::S3
2849
2975
  # @option options [String] :ssekms_encryption_context
2850
2976
  # Specifies the Amazon Web Services KMS Encryption Context as an
2851
2977
  # additional encryption context to use for object encryption. The value
2852
- # of this header is a Base64-encoded string of a UTF-8 encoded JSON,
2978
+ # of this header is a Base64 encoded string of a UTF-8 encoded JSON,
2853
2979
  # which contains the encryption context as key-value pairs. This value
2854
2980
  # is stored as object metadata and automatically gets passed on to
2855
2981
  # Amazon Web Services KMS for future `GetObject` operations on this
@@ -3008,7 +3134,7 @@ module Aws::S3
3008
3134
  # bucket_name: "BucketName", # required
3009
3135
  # prefix: "LocationPrefix", # required
3010
3136
  # encryption: {
3011
- # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
3137
+ # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
3012
3138
  # kms_key_id: "SSEKMSKeyId",
3013
3139
  # kms_context: "KMSContext",
3014
3140
  # },
@@ -3039,12 +3165,12 @@ module Aws::S3
3039
3165
  # value: "MetadataValue",
3040
3166
  # },
3041
3167
  # ],
3042
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
3168
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
3043
3169
  # },
3044
3170
  # },
3045
3171
  # },
3046
3172
  # request_payer: "requester", # accepts requester
3047
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
3173
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
3048
3174
  # expected_bucket_owner: "AccountId",
3049
3175
  # })
3050
3176
  # @param [Hash] options ({})
@@ -3411,7 +3537,7 @@ module Aws::S3
3411
3537
  # request_payer: "requester", # accepts requester
3412
3538
  # bypass_governance_retention: false,
3413
3539
  # expected_bucket_owner: "AccountId",
3414
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
3540
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
3415
3541
  # })
3416
3542
  # @param options ({})
3417
3543
  # @option options [String] :mfa
@@ -3479,6 +3605,8 @@ module Aws::S3
3479
3605
  #
3480
3606
  # * `CRC32C`
3481
3607
  #
3608
+ # * `CRC64NVME`
3609
+ #
3482
3610
  # * `SHA1`
3483
3611
  #
3484
3612
  # * `SHA256`
@@ -3488,9 +3616,8 @@ module Aws::S3
3488
3616
  #
3489
3617
  # If the individual checksum value you provide through
3490
3618
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
3491
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
3492
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
3493
- # that matches the provided value in `x-amz-checksum-algorithm `.
3619
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
3620
+ # request with a `BadDigest` error.
3494
3621
  #
3495
3622
  # If you provide an individual checksum, Amazon S3 ignores any provided
3496
3623
  # `ChecksumAlgorithm` parameter.