aws-sdk-s3 1.169.0 → 1.189.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +118 -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 +2529 -1652
  16. data/lib/aws-sdk-s3/client_api.rb +325 -160
  17. data/lib/aws-sdk-s3/endpoint_provider.rb +400 -276
  18. data/lib/aws-sdk-s3/endpoints.rb +42 -0
  19. data/lib/aws-sdk-s3/errors.rb +44 -0
  20. data/lib/aws-sdk-s3/file_downloader.rb +14 -31
  21. data/lib/aws-sdk-s3/multipart_file_uploader.rb +31 -13
  22. data/lib/aws-sdk-s3/multipart_upload.rb +83 -6
  23. data/lib/aws-sdk-s3/multipart_upload_part.rb +50 -34
  24. data/lib/aws-sdk-s3/object.rb +242 -114
  25. data/lib/aws-sdk-s3/object_acl.rb +11 -5
  26. data/lib/aws-sdk-s3/object_summary.rb +180 -82
  27. data/lib/aws-sdk-s3/object_version.rb +60 -13
  28. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  29. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +11 -20
  30. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +3 -3
  31. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  32. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +5 -7
  33. data/lib/aws-sdk-s3/presigner.rb +5 -5
  34. data/lib/aws-sdk-s3/resource.rb +10 -9
  35. data/lib/aws-sdk-s3/types.rb +2300 -1050
  36. data/lib/aws-sdk-s3.rb +1 -1
  37. data/sig/bucket.rbs +12 -6
  38. data/sig/bucket_acl.rbs +1 -1
  39. data/sig/bucket_cors.rbs +1 -1
  40. data/sig/bucket_lifecycle.rbs +1 -1
  41. data/sig/bucket_lifecycle_configuration.rbs +1 -1
  42. data/sig/bucket_logging.rbs +1 -1
  43. data/sig/bucket_policy.rbs +1 -1
  44. data/sig/bucket_request_payment.rbs +1 -1
  45. data/sig/bucket_tagging.rbs +1 -1
  46. data/sig/bucket_versioning.rbs +3 -3
  47. data/sig/bucket_website.rbs +1 -1
  48. data/sig/client.rbs +104 -37
  49. data/sig/errors.rbs +8 -0
  50. data/sig/multipart_upload.rbs +11 -2
  51. data/sig/multipart_upload_part.rbs +5 -1
  52. data/sig/object.rbs +22 -6
  53. data/sig/object_acl.rbs +1 -1
  54. data/sig/object_summary.rbs +17 -7
  55. data/sig/object_version.rbs +9 -3
  56. data/sig/resource.rbs +5 -3
  57. data/sig/types.rbs +153 -36
  58. metadata +7 -10
  59. 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]
@@ -674,7 +719,7 @@ module Aws::S3
674
719
  # object.copy_from({
675
720
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
676
721
  # cache_control: "CacheControl",
677
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
722
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
678
723
  # content_disposition: "ContentDisposition",
679
724
  # content_encoding: "ContentEncoding",
680
725
  # content_language: "ContentLanguage",
@@ -1099,10 +1144,12 @@ module Aws::S3
1099
1144
  # availability. Depending on performance needs, you can specify a
1100
1145
  # different Storage Class.
1101
1146
  #
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`.
1147
+ # <note markdown="1"> * <b>Directory buckets </b> - Directory buckets only support
1148
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
1149
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent
1150
+ # Access storage class) in Dedicated Local Zones. Unsupported storage
1151
+ # class values won't write a destination object and will respond with
1152
+ # the HTTP status code `400 Bad Request`.
1106
1153
  #
1107
1154
  # * <b>Amazon S3 on Outposts </b> - S3 on Outposts only uses the
1108
1155
  # `OUTPOSTS` Storage Class.
@@ -1190,20 +1237,17 @@ module Aws::S3
1190
1237
  # Signature Version in Request Authentication][1] in the *Amazon S3 User
1191
1238
  # Guide*.
1192
1239
  #
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.
1240
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
1241
+ # recommended to specify the `x-amz-server-side-encryption` header to
1242
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
1243
+ # header implicitly uses the bucket's default KMS customer managed key
1244
+ # ID. If you want to explicitly set the `
1245
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
1246
+ # bucket's default customer managed key (using key ID or ARN, not
1247
+ # alias). Your SSE-KMS configuration can only support 1 [customer
1248
+ # managed key][2] per directory bucket's lifetime. The [Amazon Web
1249
+ # Services managed key][3] (`aws/s3`) isn't supported. Incorrect key
1250
+ # specification results in an HTTP `400 Bad Request` error.
1207
1251
  #
1208
1252
  #
1209
1253
  #
@@ -1410,6 +1454,9 @@ module Aws::S3
1410
1454
  # request_payer: "requester", # accepts requester
1411
1455
  # bypass_governance_retention: false,
1412
1456
  # expected_bucket_owner: "AccountId",
1457
+ # if_match: "IfMatch",
1458
+ # if_match_last_modified_time: Time.now,
1459
+ # if_match_size: 1,
1413
1460
  # })
1414
1461
  # @param [Hash] options ({})
1415
1462
  # @option options [String] :mfa
@@ -1456,6 +1503,46 @@ module Aws::S3
1456
1503
  # The account ID of the expected bucket owner. If the account ID that
1457
1504
  # you provide does not match the actual owner of the bucket, the request
1458
1505
  # fails with the HTTP status code `403 Forbidden` (access denied).
1506
+ # @option options [String] :if_match
1507
+ # The `If-Match` header field makes the request method conditional on
1508
+ # ETags. If the ETag value does not match, the operation returns a `412
1509
+ # Precondition Failed` error. If the ETag matches or if the object
1510
+ # doesn't exist, the operation will return a `204 Success (No Content)
1511
+ # response`.
1512
+ #
1513
+ # For more information about conditional requests, see [RFC 7232][1].
1514
+ #
1515
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1516
+ #
1517
+ # </note>
1518
+ #
1519
+ #
1520
+ #
1521
+ # [1]: https://tools.ietf.org/html/rfc7232
1522
+ # @option options [Time,DateTime,Date,Integer,String] :if_match_last_modified_time
1523
+ # If present, the object is deleted only if its modification times
1524
+ # matches the provided `Timestamp`. If the `Timestamp` values do not
1525
+ # match, the operation returns a `412 Precondition Failed` error. If the
1526
+ # `Timestamp` matches or if the object doesn’t exist, the operation
1527
+ # returns a `204 Success (No Content)` response.
1528
+ #
1529
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1530
+ #
1531
+ # </note>
1532
+ # @option options [Integer] :if_match_size
1533
+ # If present, the object is deleted only if its size matches the
1534
+ # provided size in bytes. If the `Size` value does not match, the
1535
+ # operation returns a `412 Precondition Failed` error. If the `Size`
1536
+ # matches or if the object doesn’t exist, the operation returns a `204
1537
+ # Success (No Content)` response.
1538
+ #
1539
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1540
+ #
1541
+ # </note>
1542
+ #
1543
+ # You can use the `If-Match`, `x-amz-if-match-last-modified-time` and
1544
+ # `x-amz-if-match-size` conditional headers in conjunction with
1545
+ # each-other or individually.
1459
1546
  # @return [Types::DeleteObjectOutput]
1460
1547
  def delete(options = {})
1461
1548
  options = options.merge(
@@ -1712,15 +1799,6 @@ module Aws::S3
1712
1799
  # fails with the HTTP status code `403 Forbidden` (access denied).
1713
1800
  # @option options [String] :checksum_mode
1714
1801
  # 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
1802
  # @return [Types::GetObjectOutput]
1725
1803
  def get(options = {}, &block)
1726
1804
  options = options.merge(
@@ -1765,7 +1843,8 @@ module Aws::S3
1765
1843
  # object_lock_retain_until_date: Time.now,
1766
1844
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
1767
1845
  # expected_bucket_owner: "AccountId",
1768
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1846
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
1847
+ # checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
1769
1848
  # })
1770
1849
  # @param [Hash] options ({})
1771
1850
  # @option options [String] :acl
@@ -2122,8 +2201,9 @@ module Aws::S3
2122
2201
  # a different Storage Class. For more information, see [Storage
2123
2202
  # Classes][1] in the *Amazon S3 User Guide*.
2124
2203
  #
2125
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
2126
- # supported to store newly created objects.
2204
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
2205
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
2206
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
2127
2207
  #
2128
2208
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
2129
2209
  #
@@ -2180,20 +2260,17 @@ module Aws::S3
2180
2260
  # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
2181
2261
  # Amazon Web Services managed key (`aws/s3`) to protect the data.
2182
2262
  #
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.
2263
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
2264
+ # recommended to specify the `x-amz-server-side-encryption` header to
2265
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
2266
+ # header implicitly uses the bucket's default KMS customer managed key
2267
+ # ID. If you want to explicitly set the `
2268
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
2269
+ # bucket's default customer managed key (using key ID or ARN, not
2270
+ # alias). Your SSE-KMS configuration can only support 1 [customer
2271
+ # managed key][1] per directory bucket's lifetime. The [Amazon Web
2272
+ # Services managed key][2] (`aws/s3`) isn't supported. Incorrect key
2273
+ # specification results in an HTTP `400 Bad Request` error.
2197
2274
  #
2198
2275
  #
2199
2276
  #
@@ -2201,7 +2278,7 @@ module Aws::S3
2201
2278
  # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
2202
2279
  # @option options [String] :ssekms_encryption_context
2203
2280
  # Specifies the Amazon Web Services KMS Encryption Context to use for
2204
- # object encryption. The value of this header is a Base64-encoded string
2281
+ # object encryption. The value of this header is a Base64 encoded string
2205
2282
  # of a UTF-8 encoded JSON, which contains the encryption context as
2206
2283
  # key-value pairs.
2207
2284
  #
@@ -2290,6 +2367,14 @@ module Aws::S3
2290
2367
  #
2291
2368
  #
2292
2369
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2370
+ # @option options [String] :checksum_type
2371
+ # Indicates the checksum type that you want Amazon S3 to use to
2372
+ # calculate the object’s checksum value. For more information, see
2373
+ # [Checking object integrity in the Amazon S3 User Guide][1].
2374
+ #
2375
+ #
2376
+ #
2377
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2293
2378
  # @return [MultipartUpload]
2294
2379
  def initiate_multipart_upload(options = {})
2295
2380
  options = options.merge(
@@ -2319,17 +2404,20 @@ module Aws::S3
2319
2404
  # content_length: 1,
2320
2405
  # content_md5: "ContentMD5",
2321
2406
  # content_type: "ContentType",
2322
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
2407
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2323
2408
  # checksum_crc32: "ChecksumCRC32",
2324
2409
  # checksum_crc32c: "ChecksumCRC32C",
2410
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
2325
2411
  # checksum_sha1: "ChecksumSHA1",
2326
2412
  # checksum_sha256: "ChecksumSHA256",
2327
2413
  # expires: Time.now,
2414
+ # if_match: "IfMatch",
2328
2415
  # if_none_match: "IfNoneMatch",
2329
2416
  # grant_full_control: "GrantFullControl",
2330
2417
  # grant_read: "GrantRead",
2331
2418
  # grant_read_acp: "GrantReadACP",
2332
2419
  # grant_write_acp: "GrantWriteACP",
2420
+ # write_offset_bytes: 1,
2333
2421
  # metadata: {
2334
2422
  # "MetadataKey" => "MetadataValue",
2335
2423
  # },
@@ -2425,7 +2513,7 @@ module Aws::S3
2425
2513
  #
2426
2514
  # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
2427
2515
  # @option options [String] :content_md5
2428
- # The base64-encoded 128-bit MD5 digest of the message (without the
2516
+ # The Base64 encoded 128-bit `MD5` digest of the message (without the
2429
2517
  # headers) according to RFC 1864. This header can be used as a message
2430
2518
  # integrity check to verify that the data is the same data that was
2431
2519
  # originally sent. Although it is optional, we recommend using the
@@ -2472,6 +2560,8 @@ module Aws::S3
2472
2560
  #
2473
2561
  # * `CRC32C`
2474
2562
  #
2563
+ # * `CRC64NVME`
2564
+ #
2475
2565
  # * `SHA1`
2476
2566
  #
2477
2567
  # * `SHA256`
@@ -2481,9 +2571,8 @@ module Aws::S3
2481
2571
  #
2482
2572
  # If the individual checksum value you provide through
2483
2573
  # `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 `.
2574
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
2575
+ # request with a `BadDigest` error.
2487
2576
  #
2488
2577
  # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
2489
2578
  # for any request to upload an object with a retention period configured
@@ -2503,7 +2592,7 @@ module Aws::S3
2503
2592
  # @option options [String] :checksum_crc32
2504
2593
  # This header can be used as a data integrity check to verify that the
2505
2594
  # 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.
2595
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
2507
2596
  # For more information, see [Checking object integrity][1] in the
2508
2597
  # *Amazon S3 User Guide*.
2509
2598
  #
@@ -2513,17 +2602,28 @@ module Aws::S3
2513
2602
  # @option options [String] :checksum_crc32c
2514
2603
  # This header can be used as a data integrity check to verify that the
2515
2604
  # 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.
2605
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
2517
2606
  # For more information, see [Checking object integrity][1] in the
2518
2607
  # *Amazon S3 User Guide*.
2519
2608
  #
2520
2609
  #
2521
2610
  #
2522
2611
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2612
+ # @option options [String] :checksum_crc64nvme
2613
+ # This header can be used as a data integrity check to verify that the
2614
+ # data received is the same data that was originally sent. This header
2615
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the
2616
+ # object. The `CRC64NVME` checksum is always a full object checksum. For
2617
+ # more information, see [Checking object integrity in the Amazon S3 User
2618
+ # Guide][1].
2619
+ #
2620
+ #
2621
+ #
2622
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2523
2623
  # @option options [String] :checksum_sha1
2524
2624
  # This header can be used as a data integrity check to verify that the
2525
2625
  # 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
2626
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
2527
2627
  # more information, see [Checking object integrity][1] in the *Amazon S3
2528
2628
  # User Guide*.
2529
2629
  #
@@ -2533,7 +2633,7 @@ module Aws::S3
2533
2633
  # @option options [String] :checksum_sha256
2534
2634
  # This header can be used as a data integrity check to verify that the
2535
2635
  # 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.
2636
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
2537
2637
  # For more information, see [Checking object integrity][1] in the
2538
2638
  # *Amazon S3 User Guide*.
2539
2639
  #
@@ -2548,6 +2648,25 @@ module Aws::S3
2548
2648
  #
2549
2649
  #
2550
2650
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
2651
+ # @option options [String] :if_match
2652
+ # Uploads the object only if the ETag (entity tag) value provided during
2653
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
2654
+ # values do not match, the operation returns a `412 Precondition Failed`
2655
+ # error.
2656
+ #
2657
+ # If a conflicting operation occurs during the upload S3 returns a `409
2658
+ # ConditionalRequestConflict` response. On a 409 failure you should
2659
+ # fetch the object's ETag and retry the upload.
2660
+ #
2661
+ # Expects the ETag value as a string.
2662
+ #
2663
+ # For more information about conditional requests, see [RFC 7232][1], or
2664
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
2665
+ #
2666
+ #
2667
+ #
2668
+ # [1]: https://tools.ietf.org/html/rfc7232
2669
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
2551
2670
  # @option options [String] :if_none_match
2552
2671
  # Uploads the object only if the object key name does not already exist
2553
2672
  # in the bucket specified. Otherwise, Amazon S3 returns a `412
@@ -2599,6 +2718,16 @@ module Aws::S3
2599
2718
  # * This functionality is not supported for Amazon S3 on Outposts.
2600
2719
  #
2601
2720
  # </note>
2721
+ # @option options [Integer] :write_offset_bytes
2722
+ # Specifies the offset for appending data to existing objects in bytes.
2723
+ # The offset must be equal to the size of the existing object being
2724
+ # appended to. If no object exists, setting this header to 0 will create
2725
+ # a new object.
2726
+ #
2727
+ # <note markdown="1"> This functionality is only supported for objects in the Amazon S3
2728
+ # Express One Zone storage class in directory buckets.
2729
+ #
2730
+ # </note>
2602
2731
  # @option options [Hash<String,String>] :metadata
2603
2732
  # A map of metadata to store with the object in S3.
2604
2733
  # @option options [String] :server_side_encryption
@@ -2672,8 +2801,9 @@ module Aws::S3
2672
2801
  # a different Storage Class. For more information, see [Storage
2673
2802
  # Classes][1] in the *Amazon S3 User Guide*.
2674
2803
  #
2675
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
2676
- # supported to store newly created objects.
2804
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
2805
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
2806
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
2677
2807
  #
2678
2808
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
2679
2809
  #
@@ -2751,20 +2881,17 @@ module Aws::S3
2751
2881
  # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
2752
2882
  # Amazon Web Services managed key (`aws/s3`) to protect the data.
2753
2883
  #
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.
2884
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
2885
+ # recommended to specify the `x-amz-server-side-encryption` header to
2886
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
2887
+ # header implicitly uses the bucket's default KMS customer managed key
2888
+ # ID. If you want to explicitly set the `
2889
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
2890
+ # bucket's default customer managed key (using key ID or ARN, not
2891
+ # alias). Your SSE-KMS configuration can only support 1 [customer
2892
+ # managed key][1] per directory bucket's lifetime. The [Amazon Web
2893
+ # Services managed key][2] (`aws/s3`) isn't supported. Incorrect key
2894
+ # specification results in an HTTP `400 Bad Request` error.
2768
2895
  #
2769
2896
  #
2770
2897
  #
@@ -2773,7 +2900,7 @@ module Aws::S3
2773
2900
  # @option options [String] :ssekms_encryption_context
2774
2901
  # Specifies the Amazon Web Services KMS Encryption Context as an
2775
2902
  # 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,
2903
+ # of this header is a Base64 encoded string of a UTF-8 encoded JSON,
2777
2904
  # which contains the encryption context as key-value pairs. This value
2778
2905
  # is stored as object metadata and automatically gets passed on to
2779
2906
  # Amazon Web Services KMS for future `GetObject` operations on this
@@ -2968,7 +3095,7 @@ module Aws::S3
2968
3095
  # },
2969
3096
  # },
2970
3097
  # request_payer: "requester", # accepts requester
2971
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
3098
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2972
3099
  # expected_bucket_owner: "AccountId",
2973
3100
  # })
2974
3101
  # @param [Hash] options ({})
@@ -3335,7 +3462,7 @@ module Aws::S3
3335
3462
  # request_payer: "requester", # accepts requester
3336
3463
  # bypass_governance_retention: false,
3337
3464
  # expected_bucket_owner: "AccountId",
3338
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
3465
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
3339
3466
  # })
3340
3467
  # @param options ({})
3341
3468
  # @option options [String] :mfa
@@ -3403,6 +3530,8 @@ module Aws::S3
3403
3530
  #
3404
3531
  # * `CRC32C`
3405
3532
  #
3533
+ # * `CRC64NVME`
3534
+ #
3406
3535
  # * `SHA1`
3407
3536
  #
3408
3537
  # * `SHA256`
@@ -3412,9 +3541,8 @@ module Aws::S3
3412
3541
  #
3413
3542
  # If the individual checksum value you provide through
3414
3543
  # `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 `.
3544
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
3545
+ # request with a `BadDigest` error.
3418
3546
  #
3419
3547
  # If you provide an individual checksum, Amazon S3 ignores any provided
3420
3548
  # `ChecksumAlgorithm` parameter.