aws-sdk-s3 1.169.0 → 1.190.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 (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +128 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +79 -33
  5. data/lib/aws-sdk-s3/bucket_acl.rb +6 -5
  6. data/lib/aws-sdk-s3/bucket_cors.rb +6 -5
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +7 -2
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +22 -2
  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 +9 -9
  14. data/lib/aws-sdk-s3/bucket_website.rb +3 -3
  15. data/lib/aws-sdk-s3/client.rb +2964 -1677
  16. data/lib/aws-sdk-s3/client_api.rb +366 -160
  17. data/lib/aws-sdk-s3/endpoint_provider.rb +400 -276
  18. data/lib/aws-sdk-s3/endpoints.rb +56 -0
  19. data/lib/aws-sdk-s3/errors.rb +55 -0
  20. data/lib/aws-sdk-s3/file_downloader.rb +14 -31
  21. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  22. data/lib/aws-sdk-s3/multipart_file_uploader.rb +31 -13
  23. data/lib/aws-sdk-s3/multipart_upload.rb +83 -6
  24. data/lib/aws-sdk-s3/multipart_upload_part.rb +50 -34
  25. data/lib/aws-sdk-s3/object.rb +260 -114
  26. data/lib/aws-sdk-s3/object_acl.rb +11 -5
  27. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -1
  28. data/lib/aws-sdk-s3/object_summary.rb +180 -82
  29. data/lib/aws-sdk-s3/object_version.rb +60 -13
  30. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  31. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +11 -20
  32. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +3 -3
  33. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  34. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +5 -7
  35. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  36. data/lib/aws-sdk-s3/presigner.rb +5 -5
  37. data/lib/aws-sdk-s3/resource.rb +10 -9
  38. data/lib/aws-sdk-s3/types.rb +2511 -1060
  39. data/lib/aws-sdk-s3.rb +1 -1
  40. data/sig/bucket.rbs +12 -6
  41. data/sig/bucket_acl.rbs +1 -1
  42. data/sig/bucket_cors.rbs +1 -1
  43. data/sig/bucket_lifecycle.rbs +1 -1
  44. data/sig/bucket_lifecycle_configuration.rbs +1 -1
  45. data/sig/bucket_logging.rbs +1 -1
  46. data/sig/bucket_policy.rbs +1 -1
  47. data/sig/bucket_request_payment.rbs +1 -1
  48. data/sig/bucket_tagging.rbs +1 -1
  49. data/sig/bucket_versioning.rbs +3 -3
  50. data/sig/bucket_website.rbs +1 -1
  51. data/sig/client.rbs +132 -40
  52. data/sig/errors.rbs +10 -0
  53. data/sig/multipart_upload.rbs +11 -2
  54. data/sig/multipart_upload_part.rbs +5 -1
  55. data/sig/object.rbs +25 -6
  56. data/sig/object_acl.rbs +1 -1
  57. data/sig/object_summary.rbs +17 -7
  58. data/sig/object_version.rbs +9 -3
  59. data/sig/resource.rbs +5 -3
  60. data/sig/types.rbs +180 -36
  61. metadata +7 -10
  62. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
@@ -66,7 +66,9 @@ module Aws::S3
66
66
  # providing object expiration information. The value of the `rule-id` is
67
67
  # URL-encoded.
68
68
  #
69
- # <note markdown="1"> This functionality is not supported for directory buckets.
69
+ # <note markdown="1"> Object expiration information is not returned in directory buckets and
70
+ # this header returns the value "`NotImplemented`" in all responses
71
+ # for directory buckets.
70
72
  #
71
73
  # </note>
72
74
  #
@@ -95,9 +97,10 @@ module Aws::S3
95
97
  # For more information about archiving objects, see [Transitioning
96
98
  # Objects: General Considerations][2].
97
99
  #
98
- # <note markdown="1"> This functionality is not supported for directory buckets. Only the S3
99
- # Express One Zone storage class is supported by directory buckets to
100
- # 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.
101
104
  #
102
105
  # </note>
103
106
  #
@@ -132,14 +135,14 @@ module Aws::S3
132
135
  data[:content_length]
133
136
  end
134
137
 
135
- # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
136
- # only be present if it was uploaded with the object. When you use an
137
- # API operation on an object that was uploaded using multipart uploads,
138
- # this value may not be a direct checksum value of the full object.
139
- # Instead, it's a calculation based on the checksum values of each
140
- # individual part. For more information about how checksums are
141
- # calculated with multipart uploads, see [ Checking object integrity][1]
142
- # in the *Amazon S3 User Guide*.
138
+ # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
139
+ # checksum is only be present if the checksum was uploaded with the
140
+ # object. When you use an API operation on an object that was uploaded
141
+ # using multipart uploads, this value may not be a direct checksum value
142
+ # of 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*.
143
146
  #
144
147
  #
145
148
  #
@@ -149,14 +152,14 @@ module Aws::S3
149
152
  data[:checksum_crc32]
150
153
  end
151
154
 
152
- # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
153
- # only be present if it was uploaded with the object. When you use an
154
- # API operation on an object that was uploaded using multipart uploads,
155
- # this value may not be a direct checksum value of the full object.
156
- # Instead, it's a calculation based on the checksum values of each
157
- # individual part. For more information about how checksums are
158
- # calculated with multipart uploads, see [ Checking object integrity][1]
159
- # 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*.
160
163
  #
161
164
  #
162
165
  #
@@ -166,14 +169,26 @@ module Aws::S3
166
169
  data[:checksum_crc32c]
167
170
  end
168
171
 
169
- # The base64-encoded, 160-bit SHA-1 digest of the object. This will only
170
- # be present if it was uploaded with the object. When you use the API
171
- # operation on an object that was uploaded using multipart uploads, this
172
- # value may not be a direct checksum value of the full object. Instead,
173
- # it's a calculation based on the checksum values of each individual
174
- # part. For more information about how checksums are calculated with
175
- # multipart uploads, see [ Checking object integrity][1] in the *Amazon
176
- # 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 will
185
+ # only be present if the object 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*.
177
192
  #
178
193
  #
179
194
  #
@@ -183,12 +198,12 @@ module Aws::S3
183
198
  data[:checksum_sha1]
184
199
  end
185
200
 
186
- # The base64-encoded, 256-bit SHA-256 digest of the object. This will
187
- # only be present if it was uploaded with the object. When you use an
188
- # API operation on an object that was uploaded using multipart uploads,
189
- # this value may not be a direct checksum value of the full object.
190
- # Instead, it's a calculation based on the checksum values of each
191
- # individual part. For more information about how checksums are
201
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
202
+ # only be present if the object was uploaded with the object. When you
203
+ # use an API operation on an object that was uploaded using multipart
204
+ # uploads, this value may not be a direct checksum value of the full
205
+ # object. Instead, it's a calculation based on the checksum values of
206
+ # each individual part. For more information about how checksums are
192
207
  # calculated with multipart uploads, see [ Checking object integrity][1]
193
208
  # in the *Amazon S3 User Guide*.
194
209
  #
@@ -200,6 +215,21 @@ module Aws::S3
200
215
  data[:checksum_sha256]
201
216
  end
202
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
+
203
233
  # An entity tag (ETag) is an opaque identifier assigned by a web server
204
234
  # to a specific version of a resource found at a URL.
205
235
  # @return [String]
@@ -263,6 +293,13 @@ module Aws::S3
263
293
  data[:content_type]
264
294
  end
265
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
+
266
303
  # The date and time at which the object is no longer cacheable.
267
304
  # @return [Time]
268
305
  def expires
@@ -344,8 +381,10 @@ module Aws::S3
344
381
  #
345
382
  # For more information, see [Storage Classes][1].
346
383
  #
347
- # <note markdown="1"> <b>Directory buckets </b> - Only the S3 Express One Zone storage class
348
- # is supported by directory buckets to store objects.
384
+ # <note markdown="1"> <b>Directory buckets </b> - Directory buckets only support
385
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
386
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access
387
+ # storage class) in Dedicated Local Zones.
349
388
  #
350
389
  # </note>
351
390
  #
@@ -358,11 +397,17 @@ module Aws::S3
358
397
  end
359
398
 
360
399
  # If present, indicates that the requester was successfully charged for
361
- # the request.
400
+ # the request. For more information, see [Using Requester Pays buckets
401
+ # for storage transfers and usage][1] in the *Amazon Simple Storage
402
+ # Service user guide*.
362
403
  #
363
404
  # <note markdown="1"> This functionality is not supported for directory buckets.
364
405
  #
365
406
  # </note>
407
+ #
408
+ #
409
+ #
410
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
366
411
  # @return [String]
367
412
  def request_charged
368
413
  data[:request_charged]
@@ -425,6 +470,24 @@ module Aws::S3
425
470
  data[:parts_count]
426
471
  end
427
472
 
473
+ # The number of tags, if any, on the object, when you have the relevant
474
+ # permission to read object tags.
475
+ #
476
+ # You can use [GetObjectTagging][1] to retrieve the tag set associated
477
+ # with an object.
478
+ #
479
+ # <note markdown="1"> This functionality is not supported for directory buckets.
480
+ #
481
+ # </note>
482
+ #
483
+ #
484
+ #
485
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html
486
+ # @return [Integer]
487
+ def tag_count
488
+ data[:tag_count]
489
+ end
490
+
428
491
  # The Object Lock mode, if any, that's in effect for this object. This
429
492
  # header is only returned if the requester has the
430
493
  # `s3:GetObjectRetention` permission. For more information about S3
@@ -674,7 +737,7 @@ module Aws::S3
674
737
  # object.copy_from({
675
738
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
676
739
  # cache_control: "CacheControl",
677
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
740
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
678
741
  # content_disposition: "ContentDisposition",
679
742
  # content_encoding: "ContentEncoding",
680
743
  # content_language: "ContentLanguage",
@@ -1099,10 +1162,12 @@ module Aws::S3
1099
1162
  # availability. Depending on performance needs, you can specify a
1100
1163
  # different Storage Class.
1101
1164
  #
1102
- # <note markdown="1"> * <b>Directory buckets </b> - For directory buckets, only the S3
1103
- # Express One Zone storage class is supported to store newly created
1104
- # objects. Unsupported storage class values won't write a destination
1105
- # object and will respond with the HTTP status code `400 Bad Request`.
1165
+ # <note markdown="1"> * <b>Directory buckets </b> - Directory buckets only support
1166
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
1167
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent
1168
+ # Access storage class) in Dedicated Local Zones. Unsupported storage
1169
+ # class values won't write a destination object and will respond with
1170
+ # the HTTP status code `400 Bad Request`.
1106
1171
  #
1107
1172
  # * <b>Amazon S3 on Outposts </b> - S3 on Outposts only uses the
1108
1173
  # `OUTPOSTS` Storage Class.
@@ -1190,20 +1255,17 @@ module Aws::S3
1190
1255
  # Signature Version in Request Authentication][1] in the *Amazon S3 User
1191
1256
  # Guide*.
1192
1257
  #
1193
- # **Directory buckets** - If you specify `x-amz-server-side-encryption`
1194
- # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
1195
- # header is implicitly assigned the ID of the KMS symmetric encryption
1196
- # customer managed key that's configured for your directory bucket's
1197
- # default encryption setting. If you want to specify the `
1198
- # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
1199
- # can only specify it with the ID (Key ID or Key ARN) of the KMS
1200
- # customer managed key that's configured for your directory bucket's
1201
- # default encryption setting. Otherwise, you get an HTTP `400 Bad
1202
- # Request` error. Only use the key ID or key ARN. The key alias format
1203
- # of the KMS key isn't supported. Your SSE-KMS configuration can only
1204
- # support 1 [customer managed key][2] per directory bucket for the
1205
- # lifetime of the bucket. The [Amazon Web Services managed key][3]
1206
- # (`aws/s3`) isn't supported.
1258
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
1259
+ # recommended to specify the `x-amz-server-side-encryption` header to
1260
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
1261
+ # header implicitly uses the bucket's default KMS customer managed key
1262
+ # ID. If you want to explicitly set the `
1263
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
1264
+ # bucket's default customer managed key (using key ID or ARN, not
1265
+ # alias). Your SSE-KMS configuration can only support 1 [customer
1266
+ # managed key][2] per directory bucket's lifetime. The [Amazon Web
1267
+ # Services managed key][3] (`aws/s3`) isn't supported. Incorrect key
1268
+ # specification results in an HTTP `400 Bad Request` error.
1207
1269
  #
1208
1270
  #
1209
1271
  #
@@ -1410,6 +1472,9 @@ module Aws::S3
1410
1472
  # request_payer: "requester", # accepts requester
1411
1473
  # bypass_governance_retention: false,
1412
1474
  # expected_bucket_owner: "AccountId",
1475
+ # if_match: "IfMatch",
1476
+ # if_match_last_modified_time: Time.now,
1477
+ # if_match_size: 1,
1413
1478
  # })
1414
1479
  # @param [Hash] options ({})
1415
1480
  # @option options [String] :mfa
@@ -1456,6 +1521,46 @@ module Aws::S3
1456
1521
  # The account ID of the expected bucket owner. If the account ID that
1457
1522
  # you provide does not match the actual owner of the bucket, the request
1458
1523
  # fails with the HTTP status code `403 Forbidden` (access denied).
1524
+ # @option options [String] :if_match
1525
+ # The `If-Match` header field makes the request method conditional on
1526
+ # ETags. If the ETag value does not match, the operation returns a `412
1527
+ # Precondition Failed` error. If the ETag matches or if the object
1528
+ # doesn't exist, the operation will return a `204 Success (No Content)
1529
+ # response`.
1530
+ #
1531
+ # For more information about conditional requests, see [RFC 7232][1].
1532
+ #
1533
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1534
+ #
1535
+ # </note>
1536
+ #
1537
+ #
1538
+ #
1539
+ # [1]: https://tools.ietf.org/html/rfc7232
1540
+ # @option options [Time,DateTime,Date,Integer,String] :if_match_last_modified_time
1541
+ # If present, the object is deleted only if its modification times
1542
+ # matches the provided `Timestamp`. If the `Timestamp` values do not
1543
+ # match, the operation returns a `412 Precondition Failed` error. If the
1544
+ # `Timestamp` matches or if the object doesn’t exist, the operation
1545
+ # returns a `204 Success (No Content)` response.
1546
+ #
1547
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1548
+ #
1549
+ # </note>
1550
+ # @option options [Integer] :if_match_size
1551
+ # If present, the object is deleted only if its size matches the
1552
+ # provided size in bytes. If the `Size` value does not match, the
1553
+ # operation returns a `412 Precondition Failed` error. If the `Size`
1554
+ # matches or if the object doesn’t exist, the operation returns a `204
1555
+ # Success (No Content)` response.
1556
+ #
1557
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1558
+ #
1559
+ # </note>
1560
+ #
1561
+ # You can use the `If-Match`, `x-amz-if-match-last-modified-time` and
1562
+ # `x-amz-if-match-size` conditional headers in conjunction with
1563
+ # each-other or individually.
1459
1564
  # @return [Types::DeleteObjectOutput]
1460
1565
  def delete(options = {})
1461
1566
  options = options.merge(
@@ -1712,15 +1817,6 @@ module Aws::S3
1712
1817
  # fails with the HTTP status code `403 Forbidden` (access denied).
1713
1818
  # @option options [String] :checksum_mode
1714
1819
  # To retrieve the checksum, this mode must be enabled.
1715
- #
1716
- # **General purpose buckets** - In addition, if you enable checksum mode
1717
- # and the object is uploaded with a [checksum][1] and encrypted with an
1718
- # Key Management Service (KMS) key, you must have permission to use the
1719
- # `kms:Decrypt` action to retrieve the checksum.
1720
- #
1721
- #
1722
- #
1723
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
1724
1820
  # @return [Types::GetObjectOutput]
1725
1821
  def get(options = {}, &block)
1726
1822
  options = options.merge(
@@ -1765,7 +1861,8 @@ module Aws::S3
1765
1861
  # object_lock_retain_until_date: Time.now,
1766
1862
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
1767
1863
  # expected_bucket_owner: "AccountId",
1768
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1864
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
1865
+ # checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
1769
1866
  # })
1770
1867
  # @param [Hash] options ({})
1771
1868
  # @option options [String] :acl
@@ -2122,8 +2219,9 @@ module Aws::S3
2122
2219
  # a different Storage Class. For more information, see [Storage
2123
2220
  # Classes][1] in the *Amazon S3 User Guide*.
2124
2221
  #
2125
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
2126
- # supported to store newly created objects.
2222
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
2223
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
2224
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
2127
2225
  #
2128
2226
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
2129
2227
  #
@@ -2180,20 +2278,17 @@ module Aws::S3
2180
2278
  # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
2181
2279
  # Amazon Web Services managed key (`aws/s3`) to protect the data.
2182
2280
  #
2183
- # **Directory buckets** - If you specify `x-amz-server-side-encryption`
2184
- # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
2185
- # header is implicitly assigned the ID of the KMS symmetric encryption
2186
- # customer managed key that's configured for your directory bucket's
2187
- # default encryption setting. If you want to specify the `
2188
- # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
2189
- # can only specify it with the ID (Key ID or Key ARN) of the KMS
2190
- # customer managed key that's configured for your directory bucket's
2191
- # default encryption setting. Otherwise, you get an HTTP `400 Bad
2192
- # Request` error. Only use the key ID or key ARN. The key alias format
2193
- # of the KMS key isn't supported. Your SSE-KMS configuration can only
2194
- # support 1 [customer managed key][1] per directory bucket for the
2195
- # lifetime of the bucket. The [Amazon Web Services managed key][2]
2196
- # (`aws/s3`) isn't supported.
2281
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
2282
+ # recommended to specify the `x-amz-server-side-encryption` header to
2283
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
2284
+ # header implicitly uses the bucket's default KMS customer managed key
2285
+ # ID. If you want to explicitly set the `
2286
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
2287
+ # bucket's default customer managed key (using key ID or ARN, not
2288
+ # alias). Your SSE-KMS configuration can only support 1 [customer
2289
+ # managed key][1] per directory bucket's lifetime. The [Amazon Web
2290
+ # Services managed key][2] (`aws/s3`) isn't supported. Incorrect key
2291
+ # specification results in an HTTP `400 Bad Request` error.
2197
2292
  #
2198
2293
  #
2199
2294
  #
@@ -2201,7 +2296,7 @@ module Aws::S3
2201
2296
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
2202
2297
  # @option options [String] :ssekms_encryption_context
2203
2298
  # Specifies the Amazon Web Services KMS Encryption Context to use for
2204
- # object encryption. The value of this header is a Base64-encoded string
2299
+ # object encryption. The value of this header is a Base64 encoded string
2205
2300
  # of a UTF-8 encoded JSON, which contains the encryption context as
2206
2301
  # key-value pairs.
2207
2302
  #
@@ -2290,6 +2385,14 @@ module Aws::S3
2290
2385
  #
2291
2386
  #
2292
2387
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2388
+ # @option options [String] :checksum_type
2389
+ # Indicates the checksum type that you want Amazon S3 to use to
2390
+ # calculate the object’s checksum value. For more information, see
2391
+ # [Checking object integrity in the Amazon S3 User Guide][1].
2392
+ #
2393
+ #
2394
+ #
2395
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2293
2396
  # @return [MultipartUpload]
2294
2397
  def initiate_multipart_upload(options = {})
2295
2398
  options = options.merge(
@@ -2319,17 +2422,20 @@ module Aws::S3
2319
2422
  # content_length: 1,
2320
2423
  # content_md5: "ContentMD5",
2321
2424
  # content_type: "ContentType",
2322
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
2425
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2323
2426
  # checksum_crc32: "ChecksumCRC32",
2324
2427
  # checksum_crc32c: "ChecksumCRC32C",
2428
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
2325
2429
  # checksum_sha1: "ChecksumSHA1",
2326
2430
  # checksum_sha256: "ChecksumSHA256",
2327
2431
  # expires: Time.now,
2432
+ # if_match: "IfMatch",
2328
2433
  # if_none_match: "IfNoneMatch",
2329
2434
  # grant_full_control: "GrantFullControl",
2330
2435
  # grant_read: "GrantRead",
2331
2436
  # grant_read_acp: "GrantReadACP",
2332
2437
  # grant_write_acp: "GrantWriteACP",
2438
+ # write_offset_bytes: 1,
2333
2439
  # metadata: {
2334
2440
  # "MetadataKey" => "MetadataValue",
2335
2441
  # },
@@ -2425,7 +2531,7 @@ module Aws::S3
2425
2531
  #
2426
2532
  # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
2427
2533
  # @option options [String] :content_md5
2428
- # The base64-encoded 128-bit MD5 digest of the message (without the
2534
+ # The Base64 encoded 128-bit `MD5` digest of the message (without the
2429
2535
  # headers) according to RFC 1864. This header can be used as a message
2430
2536
  # integrity check to verify that the data is the same data that was
2431
2537
  # originally sent. Although it is optional, we recommend using the
@@ -2472,6 +2578,8 @@ module Aws::S3
2472
2578
  #
2473
2579
  # * `CRC32C`
2474
2580
  #
2581
+ # * `CRC64NVME`
2582
+ #
2475
2583
  # * `SHA1`
2476
2584
  #
2477
2585
  # * `SHA256`
@@ -2481,9 +2589,8 @@ module Aws::S3
2481
2589
  #
2482
2590
  # If the individual checksum value you provide through
2483
2591
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
2484
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
2485
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
2486
- # that matches the provided value in `x-amz-checksum-algorithm `.
2592
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
2593
+ # request with a `BadDigest` error.
2487
2594
  #
2488
2595
  # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
2489
2596
  # for any request to upload an object with a retention period configured
@@ -2503,7 +2610,7 @@ module Aws::S3
2503
2610
  # @option options [String] :checksum_crc32
2504
2611
  # This header can be used as a data integrity check to verify that the
2505
2612
  # data received is the same data that was originally sent. This header
2506
- # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
2613
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
2507
2614
  # For more information, see [Checking object integrity][1] in the
2508
2615
  # *Amazon S3 User Guide*.
2509
2616
  #
@@ -2513,17 +2620,28 @@ module Aws::S3
2513
2620
  # @option options [String] :checksum_crc32c
2514
2621
  # This header can be used as a data integrity check to verify that the
2515
2622
  # data received is the same data that was originally sent. This header
2516
- # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
2623
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
2517
2624
  # For more information, see [Checking object integrity][1] in the
2518
2625
  # *Amazon S3 User Guide*.
2519
2626
  #
2520
2627
  #
2521
2628
  #
2522
2629
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2630
+ # @option options [String] :checksum_crc64nvme
2631
+ # This header can be used as a data integrity check to verify that the
2632
+ # data received is the same data that was originally sent. This header
2633
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the
2634
+ # object. The `CRC64NVME` checksum is always a full object checksum. For
2635
+ # more information, see [Checking object integrity in the Amazon S3 User
2636
+ # Guide][1].
2637
+ #
2638
+ #
2639
+ #
2640
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2523
2641
  # @option options [String] :checksum_sha1
2524
2642
  # This header can be used as a data integrity check to verify that the
2525
2643
  # data received is the same data that was originally sent. This header
2526
- # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
2644
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
2527
2645
  # more information, see [Checking object integrity][1] in the *Amazon S3
2528
2646
  # User Guide*.
2529
2647
  #
@@ -2533,7 +2651,7 @@ module Aws::S3
2533
2651
  # @option options [String] :checksum_sha256
2534
2652
  # This header can be used as a data integrity check to verify that the
2535
2653
  # data received is the same data that was originally sent. This header
2536
- # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
2654
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
2537
2655
  # For more information, see [Checking object integrity][1] in the
2538
2656
  # *Amazon S3 User Guide*.
2539
2657
  #
@@ -2548,6 +2666,25 @@ module Aws::S3
2548
2666
  #
2549
2667
  #
2550
2668
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
2669
+ # @option options [String] :if_match
2670
+ # Uploads the object only if the ETag (entity tag) value provided during
2671
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
2672
+ # values do not match, the operation returns a `412 Precondition Failed`
2673
+ # error.
2674
+ #
2675
+ # If a conflicting operation occurs during the upload S3 returns a `409
2676
+ # ConditionalRequestConflict` response. On a 409 failure you should
2677
+ # fetch the object's ETag and retry the upload.
2678
+ #
2679
+ # Expects the ETag value as a string.
2680
+ #
2681
+ # For more information about conditional requests, see [RFC 7232][1], or
2682
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
2683
+ #
2684
+ #
2685
+ #
2686
+ # [1]: https://tools.ietf.org/html/rfc7232
2687
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
2551
2688
  # @option options [String] :if_none_match
2552
2689
  # Uploads the object only if the object key name does not already exist
2553
2690
  # in the bucket specified. Otherwise, Amazon S3 returns a `412
@@ -2599,6 +2736,16 @@ module Aws::S3
2599
2736
  # * This functionality is not supported for Amazon S3 on Outposts.
2600
2737
  #
2601
2738
  # </note>
2739
+ # @option options [Integer] :write_offset_bytes
2740
+ # Specifies the offset for appending data to existing objects in bytes.
2741
+ # The offset must be equal to the size of the existing object being
2742
+ # appended to. If no object exists, setting this header to 0 will create
2743
+ # a new object.
2744
+ #
2745
+ # <note markdown="1"> This functionality is only supported for objects in the Amazon S3
2746
+ # Express One Zone storage class in directory buckets.
2747
+ #
2748
+ # </note>
2602
2749
  # @option options [Hash<String,String>] :metadata
2603
2750
  # A map of metadata to store with the object in S3.
2604
2751
  # @option options [String] :server_side_encryption
@@ -2672,8 +2819,9 @@ module Aws::S3
2672
2819
  # a different Storage Class. For more information, see [Storage
2673
2820
  # Classes][1] in the *Amazon S3 User Guide*.
2674
2821
  #
2675
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
2676
- # supported to store newly created objects.
2822
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
2823
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
2824
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
2677
2825
  #
2678
2826
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
2679
2827
  #
@@ -2751,20 +2899,17 @@ module Aws::S3
2751
2899
  # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
2752
2900
  # Amazon Web Services managed key (`aws/s3`) to protect the data.
2753
2901
  #
2754
- # **Directory buckets** - If you specify `x-amz-server-side-encryption`
2755
- # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
2756
- # header is implicitly assigned the ID of the KMS symmetric encryption
2757
- # customer managed key that's configured for your directory bucket's
2758
- # default encryption setting. If you want to specify the `
2759
- # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
2760
- # can only specify it with the ID (Key ID or Key ARN) of the KMS
2761
- # customer managed key that's configured for your directory bucket's
2762
- # default encryption setting. Otherwise, you get an HTTP `400 Bad
2763
- # Request` error. Only use the key ID or key ARN. The key alias format
2764
- # of the KMS key isn't supported. Your SSE-KMS configuration can only
2765
- # support 1 [customer managed key][1] per directory bucket for the
2766
- # lifetime of the bucket. The [Amazon Web Services managed key][2]
2767
- # (`aws/s3`) isn't supported.
2902
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
2903
+ # recommended to specify the `x-amz-server-side-encryption` header to
2904
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
2905
+ # header implicitly uses the bucket's default KMS customer managed key
2906
+ # ID. If you want to explicitly set the `
2907
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
2908
+ # bucket's default customer managed key (using key ID or ARN, not
2909
+ # alias). Your SSE-KMS configuration can only support 1 [customer
2910
+ # managed key][1] per directory bucket's lifetime. The [Amazon Web
2911
+ # Services managed key][2] (`aws/s3`) isn't supported. Incorrect key
2912
+ # specification results in an HTTP `400 Bad Request` error.
2768
2913
  #
2769
2914
  #
2770
2915
  #
@@ -2773,7 +2918,7 @@ module Aws::S3
2773
2918
  # @option options [String] :ssekms_encryption_context
2774
2919
  # Specifies the Amazon Web Services KMS Encryption Context as an
2775
2920
  # additional encryption context to use for object encryption. The value
2776
- # of this header is a Base64-encoded string of a UTF-8 encoded JSON,
2921
+ # of this header is a Base64 encoded string of a UTF-8 encoded JSON,
2777
2922
  # which contains the encryption context as key-value pairs. This value
2778
2923
  # is stored as object metadata and automatically gets passed on to
2779
2924
  # Amazon Web Services KMS for future `GetObject` operations on this
@@ -2968,7 +3113,7 @@ module Aws::S3
2968
3113
  # },
2969
3114
  # },
2970
3115
  # request_payer: "requester", # accepts requester
2971
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
3116
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2972
3117
  # expected_bucket_owner: "AccountId",
2973
3118
  # })
2974
3119
  # @param [Hash] options ({})
@@ -3335,7 +3480,7 @@ module Aws::S3
3335
3480
  # request_payer: "requester", # accepts requester
3336
3481
  # bypass_governance_retention: false,
3337
3482
  # expected_bucket_owner: "AccountId",
3338
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
3483
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
3339
3484
  # })
3340
3485
  # @param options ({})
3341
3486
  # @option options [String] :mfa
@@ -3403,6 +3548,8 @@ module Aws::S3
3403
3548
  #
3404
3549
  # * `CRC32C`
3405
3550
  #
3551
+ # * `CRC64NVME`
3552
+ #
3406
3553
  # * `SHA1`
3407
3554
  #
3408
3555
  # * `SHA256`
@@ -3412,9 +3559,8 @@ module Aws::S3
3412
3559
  #
3413
3560
  # If the individual checksum value you provide through
3414
3561
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
3415
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
3416
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
3417
- # that matches the provided value in `x-amz-checksum-algorithm `.
3562
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
3563
+ # request with a `BadDigest` error.
3418
3564
  #
3419
3565
  # If you provide an individual checksum, Amazon S3 ignores any provided
3420
3566
  # `ChecksumAlgorithm` parameter.