aws-sdk-s3 1.166.0 → 1.174.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.
@@ -29,12 +29,16 @@ module Aws::S3
29
29
  # ## Error Classes
30
30
  # * {BucketAlreadyExists}
31
31
  # * {BucketAlreadyOwnedByYou}
32
+ # * {EncryptionTypeMismatch}
32
33
  # * {InvalidObjectState}
34
+ # * {InvalidRequest}
35
+ # * {InvalidWriteOffset}
33
36
  # * {NoSuchBucket}
34
37
  # * {NoSuchKey}
35
38
  # * {NoSuchUpload}
36
39
  # * {ObjectAlreadyInActiveTierError}
37
40
  # * {ObjectNotInActiveTierError}
41
+ # * {TooManyParts}
38
42
  #
39
43
  # Additionally, error classes are dynamically generated for service errors based on the error code
40
44
  # if they are not defined above.
@@ -62,6 +66,16 @@ module Aws::S3
62
66
  end
63
67
  end
64
68
 
69
+ class EncryptionTypeMismatch < ServiceError
70
+
71
+ # @param [Seahorse::Client::RequestContext] context
72
+ # @param [String] message
73
+ # @param [Aws::S3::Types::EncryptionTypeMismatch] data
74
+ def initialize(context, message, data = Aws::EmptyStructure.new)
75
+ super(context, message, data)
76
+ end
77
+ end
78
+
65
79
  class InvalidObjectState < ServiceError
66
80
 
67
81
  # @param [Seahorse::Client::RequestContext] context
@@ -82,6 +96,26 @@ module Aws::S3
82
96
  end
83
97
  end
84
98
 
99
+ class InvalidRequest < ServiceError
100
+
101
+ # @param [Seahorse::Client::RequestContext] context
102
+ # @param [String] message
103
+ # @param [Aws::S3::Types::InvalidRequest] data
104
+ def initialize(context, message, data = Aws::EmptyStructure.new)
105
+ super(context, message, data)
106
+ end
107
+ end
108
+
109
+ class InvalidWriteOffset < ServiceError
110
+
111
+ # @param [Seahorse::Client::RequestContext] context
112
+ # @param [String] message
113
+ # @param [Aws::S3::Types::InvalidWriteOffset] data
114
+ def initialize(context, message, data = Aws::EmptyStructure.new)
115
+ super(context, message, data)
116
+ end
117
+ end
118
+
85
119
  class NoSuchBucket < ServiceError
86
120
 
87
121
  # @param [Seahorse::Client::RequestContext] context
@@ -132,6 +166,16 @@ module Aws::S3
132
166
  end
133
167
  end
134
168
 
169
+ class TooManyParts < ServiceError
170
+
171
+ # @param [Seahorse::Client::RequestContext] context
172
+ # @param [String] message
173
+ # @param [Aws::S3::Types::TooManyParts] data
174
+ def initialize(context, message, data = Aws::EmptyStructure.new)
175
+ super(context, message, data)
176
+ end
177
+ end
178
+
135
179
  end
136
180
  end
137
181
 
@@ -239,6 +239,7 @@ module Aws::S3
239
239
  # multipart_upload.abort({
240
240
  # request_payer: "requester", # accepts requester
241
241
  # expected_bucket_owner: "AccountId",
242
+ # if_match_initiated_time: Time.now,
242
243
  # })
243
244
  # @param [Hash] options ({})
244
245
  # @option options [String] :request_payer
@@ -261,6 +262,17 @@ module Aws::S3
261
262
  # The account ID of the expected bucket owner. If the account ID that
262
263
  # you provide does not match the actual owner of the bucket, the request
263
264
  # fails with the HTTP status code `403 Forbidden` (access denied).
265
+ # @option options [Time,DateTime,Date,Integer,String] :if_match_initiated_time
266
+ # If present, this header aborts an in progress multipart upload only if
267
+ # it was initiated on the provided timestamp. If the initiated timestamp
268
+ # of the multipart upload does not match the provided value, the
269
+ # operation returns a `412 Precondition Failed` error. If the initiated
270
+ # timestamp matches or if the multipart upload doesn’t exist, the
271
+ # operation returns a `204 Success (No Content)` response.
272
+ #
273
+ # <note markdown="1"> This functionality is only supported for directory buckets.
274
+ #
275
+ # </note>
264
276
  # @return [Types::AbortMultipartUploadOutput]
265
277
  def abort(options = {})
266
278
  options = options.merge(
@@ -295,6 +307,7 @@ module Aws::S3
295
307
  # checksum_sha256: "ChecksumSHA256",
296
308
  # request_payer: "requester", # accepts requester
297
309
  # expected_bucket_owner: "AccountId",
310
+ # if_match: "IfMatch",
298
311
  # if_none_match: "IfNoneMatch",
299
312
  # sse_customer_algorithm: "SSECustomerAlgorithm",
300
313
  # sse_customer_key: "SSECustomerKey",
@@ -306,9 +319,9 @@ module Aws::S3
306
319
  # @option options [String] :checksum_crc32
307
320
  # This header can be used as a data integrity check to verify that the
308
321
  # data received is the same data that was originally sent. This header
309
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
310
- # more information, see [Checking object integrity][1] in the *Amazon S3
311
- # User Guide*.
322
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
323
+ # For more information, see [Checking object integrity][1] in the
324
+ # *Amazon S3 User Guide*.
312
325
  #
313
326
  #
314
327
  #
@@ -316,7 +329,7 @@ module Aws::S3
316
329
  # @option options [String] :checksum_crc32c
317
330
  # This header can be used as a data integrity check to verify that the
318
331
  # data received is the same data that was originally sent. This header
319
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
332
+ # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
320
333
  # For more information, see [Checking object integrity][1] in the
321
334
  # *Amazon S3 User Guide*.
322
335
  #
@@ -363,6 +376,26 @@ module Aws::S3
363
376
  # The account ID of the expected bucket owner. If the account ID that
364
377
  # you provide does not match the actual owner of the bucket, the request
365
378
  # fails with the HTTP status code `403 Forbidden` (access denied).
379
+ # @option options [String] :if_match
380
+ # Uploads the object only if the ETag (entity tag) value provided during
381
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
382
+ # values do not match, the operation returns a `412 Precondition Failed`
383
+ # error.
384
+ #
385
+ # If a conflicting operation occurs during the upload S3 returns a `409
386
+ # ConditionalRequestConflict` response. On a 409 failure you should
387
+ # fetch the object's ETag, re-initiate the multipart upload with
388
+ # `CreateMultipartUpload`, and re-upload each part.
389
+ #
390
+ # Expects the ETag value as a string.
391
+ #
392
+ # For more information about conditional requests, see [RFC 7232][1], or
393
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
394
+ #
395
+ #
396
+ #
397
+ # [1]: https://tools.ietf.org/html/rfc7232
398
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
366
399
  # @option options [String] :if_none_match
367
400
  # Uploads the object only if the object key name does not already exist
368
401
  # in the bucket specified. Otherwise, Amazon S3 returns a `412
@@ -78,9 +78,9 @@ module Aws::S3
78
78
 
79
79
  # This header can be used as a data integrity check to verify that the
80
80
  # data received is the same data that was originally sent. This header
81
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
82
- # more information, see [Checking object integrity][1] in the *Amazon S3
83
- # User Guide*.
81
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
82
+ # For more information, see [Checking object integrity][1] in the
83
+ # *Amazon S3 User Guide*.
84
84
  #
85
85
  #
86
86
  #
@@ -90,7 +90,7 @@ module Aws::S3
90
90
  data[:checksum_crc32]
91
91
  end
92
92
 
93
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
93
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
94
94
  # only be present if it was uploaded with the object. When you use an
95
95
  # API operation on an object that was uploaded using multipart uploads,
96
96
  # this value may not be a direct checksum value of the full object.
@@ -558,9 +558,9 @@ module Aws::S3
558
558
  # @option options [String] :checksum_crc32
559
559
  # This header can be used as a data integrity check to verify that the
560
560
  # data received is the same data that was originally sent. This header
561
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
562
- # more information, see [Checking object integrity][1] in the *Amazon S3
563
- # User Guide*.
561
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
562
+ # For more information, see [Checking object integrity][1] in the
563
+ # *Amazon S3 User Guide*.
564
564
  #
565
565
  #
566
566
  #
@@ -568,7 +568,7 @@ module Aws::S3
568
568
  # @option options [String] :checksum_crc32c
569
569
  # This header can be used as a data integrity check to verify that the
570
570
  # data received is the same data that was originally sent. This header
571
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
571
+ # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
572
572
  # For more information, see [Checking object integrity][1] in the
573
573
  # *Amazon S3 User Guide*.
574
574
  #
@@ -132,7 +132,7 @@ module Aws::S3
132
132
  data[:content_length]
133
133
  end
134
134
 
135
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
135
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
136
136
  # only be present if it was uploaded with the object. When you use an
137
137
  # API operation on an object that was uploaded using multipart uploads,
138
138
  # this value may not be a direct checksum value of the full object.
@@ -149,7 +149,7 @@ module Aws::S3
149
149
  data[:checksum_crc32]
150
150
  end
151
151
 
152
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
152
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
153
153
  # only be present if it was uploaded with the object. When you use an
154
154
  # API operation on an object that was uploaded using multipart uploads,
155
155
  # this value may not be a direct checksum value of the full object.
@@ -1073,17 +1073,17 @@ module Aws::S3
1073
1073
  # * To encrypt new object copies to a directory bucket with SSE-KMS, we
1074
1074
  # recommend you specify SSE-KMS as the directory bucket's default
1075
1075
  # encryption configuration with a KMS key (specifically, a [customer
1076
- # managed key][4]). [Amazon Web Services managed key][5] (`aws/s3`)
1077
- # isn't supported. Your SSE-KMS configuration can only support 1
1078
- # [customer managed key][4] per directory bucket for the lifetime of
1079
- # the bucket. After you specify a customer managed key for SSE-KMS,
1080
- # you can't override the customer managed key for the bucket's
1081
- # SSE-KMS configuration. Then, when you perform a `CopyObject`
1082
- # operation and want to specify server-side encryption settings for
1083
- # new object copies with SSE-KMS in the encryption-related request
1084
- # headers, you must ensure the encryption key is the same customer
1085
- # managed key that you specified for the directory bucket's default
1086
- # encryption configuration.
1076
+ # managed key][4]). The [Amazon Web Services managed key][5]
1077
+ # (`aws/s3`) isn't supported. Your SSE-KMS configuration can only
1078
+ # support 1 [customer managed key][4] per directory bucket for the
1079
+ # lifetime of the bucket. After you specify a customer managed key for
1080
+ # SSE-KMS, you can't override the customer managed key for the
1081
+ # bucket's SSE-KMS configuration. Then, when you perform a
1082
+ # `CopyObject` operation and want to specify server-side encryption
1083
+ # settings for new object copies with SSE-KMS in the
1084
+ # encryption-related request headers, you must ensure the encryption
1085
+ # key is the same customer managed key that you specified for the
1086
+ # directory bucket's default encryption configuration.
1087
1087
  #
1088
1088
  #
1089
1089
  #
@@ -1191,14 +1191,19 @@ module Aws::S3
1191
1191
  # Guide*.
1192
1192
  #
1193
1193
  # **Directory buckets** - If you specify `x-amz-server-side-encryption`
1194
- # with `aws:kms`, you must specify the `
1195
- # x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key
1196
- # ID or Key ARN) of the KMS symmetric encryption customer managed key to
1197
- # use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the
1198
- # key ID or key ARN. The key alias format of the KMS key isn't
1199
- # supported. Your SSE-KMS configuration can only support 1 [customer
1200
- # managed key][2] per directory bucket for the lifetime of the bucket.
1201
- # [Amazon Web Services managed key][3] (`aws/s3`) isn't supported.
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.
1202
1207
  #
1203
1208
  #
1204
1209
  #
@@ -1405,6 +1410,9 @@ module Aws::S3
1405
1410
  # request_payer: "requester", # accepts requester
1406
1411
  # bypass_governance_retention: false,
1407
1412
  # expected_bucket_owner: "AccountId",
1413
+ # if_match: "IfMatch",
1414
+ # if_match_last_modified_time: Time.now,
1415
+ # if_match_size: 1,
1408
1416
  # })
1409
1417
  # @param [Hash] options ({})
1410
1418
  # @option options [String] :mfa
@@ -1451,6 +1459,46 @@ module Aws::S3
1451
1459
  # The account ID of the expected bucket owner. If the account ID that
1452
1460
  # you provide does not match the actual owner of the bucket, the request
1453
1461
  # fails with the HTTP status code `403 Forbidden` (access denied).
1462
+ # @option options [String] :if_match
1463
+ # The `If-Match` header field makes the request method conditional on
1464
+ # ETags. If the ETag value does not match, the operation returns a `412
1465
+ # Precondition Failed` error. If the ETag matches or if the object
1466
+ # doesn't exist, the operation will return a `204 Success (No Content)
1467
+ # response`.
1468
+ #
1469
+ # For more information about conditional requests, see [RFC 7232][1].
1470
+ #
1471
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1472
+ #
1473
+ # </note>
1474
+ #
1475
+ #
1476
+ #
1477
+ # [1]: https://docs.aws.amazon.com/https:/tools.ietf.org/html/rfc7232
1478
+ # @option options [Time,DateTime,Date,Integer,String] :if_match_last_modified_time
1479
+ # If present, the object is deleted only if its modification times
1480
+ # matches the provided `Timestamp`. If the `Timestamp` values do not
1481
+ # match, the operation returns a `412 Precondition Failed` error. If the
1482
+ # `Timestamp` matches or if the object doesn’t exist, the operation
1483
+ # returns a `204 Success (No Content)` response.
1484
+ #
1485
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1486
+ #
1487
+ # </note>
1488
+ # @option options [Integer] :if_match_size
1489
+ # If present, the object is deleted only if its size matches the
1490
+ # provided size in bytes. If the `Size` value does not match, the
1491
+ # operation returns a `412 Precondition Failed` error. If the `Size`
1492
+ # matches or if the object doesn’t exist, the operation returns a `204
1493
+ # Success (No Content)` response.
1494
+ #
1495
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1496
+ #
1497
+ # </note>
1498
+ #
1499
+ # You can use the `If-Match`, `x-amz-if-match-last-modified-time` and
1500
+ # `x-amz-if-match-size` conditional headers in conjunction with
1501
+ # each-other or individually.
1454
1502
  # @return [Types::DeleteObjectOutput]
1455
1503
  def delete(options = {})
1456
1504
  options = options.merge(
@@ -2176,14 +2224,19 @@ module Aws::S3
2176
2224
  # Amazon Web Services managed key (`aws/s3`) to protect the data.
2177
2225
  #
2178
2226
  # **Directory buckets** - If you specify `x-amz-server-side-encryption`
2179
- # with `aws:kms`, you must specify the `
2180
- # x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key
2181
- # ID or Key ARN) of the KMS symmetric encryption customer managed key to
2182
- # use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the
2183
- # key ID or key ARN. The key alias format of the KMS key isn't
2184
- # supported. Your SSE-KMS configuration can only support 1 [customer
2185
- # managed key][1] per directory bucket for the lifetime of the bucket.
2186
- # [Amazon Web Services managed key][2] (`aws/s3`) isn't supported.
2227
+ # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
2228
+ # header is implicitly assigned the ID of the KMS symmetric encryption
2229
+ # customer managed key that's configured for your directory bucket's
2230
+ # default encryption setting. If you want to specify the `
2231
+ # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
2232
+ # can only specify it with the ID (Key ID or Key ARN) of the KMS
2233
+ # customer managed key that's configured for your directory bucket's
2234
+ # default encryption setting. Otherwise, you get an HTTP `400 Bad
2235
+ # Request` error. Only use the key ID or key ARN. The key alias format
2236
+ # of the KMS key isn't supported. Your SSE-KMS configuration can only
2237
+ # support 1 [customer managed key][1] per directory bucket for the
2238
+ # lifetime of the bucket. The [Amazon Web Services managed key][2]
2239
+ # (`aws/s3`) isn't supported.
2187
2240
  #
2188
2241
  #
2189
2242
  #
@@ -2315,11 +2368,13 @@ module Aws::S3
2315
2368
  # checksum_sha1: "ChecksumSHA1",
2316
2369
  # checksum_sha256: "ChecksumSHA256",
2317
2370
  # expires: Time.now,
2371
+ # if_match: "IfMatch",
2318
2372
  # if_none_match: "IfNoneMatch",
2319
2373
  # grant_full_control: "GrantFullControl",
2320
2374
  # grant_read: "GrantRead",
2321
2375
  # grant_read_acp: "GrantReadACP",
2322
2376
  # grant_write_acp: "GrantWriteACP",
2377
+ # write_offset_bytes: 1,
2323
2378
  # metadata: {
2324
2379
  # "MetadataKey" => "MetadataValue",
2325
2380
  # },
@@ -2423,10 +2478,11 @@ module Aws::S3
2423
2478
  # information about REST request authentication, see [REST
2424
2479
  # Authentication][1].
2425
2480
  #
2426
- # <note markdown="1"> The `Content-MD5` header is required for any request to upload an
2427
- # object with a retention period configured using Amazon S3 Object Lock.
2428
- # For more information about Amazon S3 Object Lock, see [Amazon S3
2429
- # Object Lock Overview][2] in the *Amazon S3 User Guide*.
2481
+ # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
2482
+ # for any request to upload an object with a retention period configured
2483
+ # using Amazon S3 Object Lock. For more information, see [Uploading
2484
+ # objects to an Object Lock enabled bucket ][2] in the *Amazon S3 User
2485
+ # Guide*.
2430
2486
  #
2431
2487
  # </note>
2432
2488
  #
@@ -2437,7 +2493,7 @@ module Aws::S3
2437
2493
  #
2438
2494
  #
2439
2495
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
2440
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html
2496
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object
2441
2497
  # @option options [String] :content_type
2442
2498
  # A standard MIME type describing the format of the contents. For more
2443
2499
  # information, see
@@ -2457,13 +2513,13 @@ module Aws::S3
2457
2513
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
2458
2514
  # the supported algorithm from the following list:
2459
2515
  #
2460
- # * CRC32
2516
+ # * `CRC32`
2461
2517
  #
2462
- # * CRC32C
2518
+ # * `CRC32C`
2463
2519
  #
2464
- # * SHA1
2520
+ # * `SHA1`
2465
2521
  #
2466
- # * SHA256
2522
+ # * `SHA256`
2467
2523
  #
2468
2524
  # For more information, see [Checking object integrity][1] in the
2469
2525
  # *Amazon S3 User Guide*.
@@ -2474,20 +2530,27 @@ module Aws::S3
2474
2530
  # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
2475
2531
  # that matches the provided value in `x-amz-checksum-algorithm `.
2476
2532
  #
2477
- # <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
2478
- # is the default checksum algorithm that's used for performance.
2533
+ # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
2534
+ # for any request to upload an object with a retention period configured
2535
+ # using Amazon S3 Object Lock. For more information, see [Uploading
2536
+ # objects to an Object Lock enabled bucket ][2] in the *Amazon S3 User
2537
+ # Guide*.
2479
2538
  #
2480
2539
  # </note>
2481
2540
  #
2541
+ # For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
2542
+ # is the default checksum algorithm that's used for performance.
2543
+ #
2482
2544
  #
2483
2545
  #
2484
2546
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2547
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object
2485
2548
  # @option options [String] :checksum_crc32
2486
2549
  # This header can be used as a data integrity check to verify that the
2487
2550
  # data received is the same data that was originally sent. This header
2488
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
2489
- # more information, see [Checking object integrity][1] in the *Amazon S3
2490
- # User Guide*.
2551
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
2552
+ # For more information, see [Checking object integrity][1] in the
2553
+ # *Amazon S3 User Guide*.
2491
2554
  #
2492
2555
  #
2493
2556
  #
@@ -2495,7 +2558,7 @@ module Aws::S3
2495
2558
  # @option options [String] :checksum_crc32c
2496
2559
  # This header can be used as a data integrity check to verify that the
2497
2560
  # data received is the same data that was originally sent. This header
2498
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
2561
+ # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
2499
2562
  # For more information, see [Checking object integrity][1] in the
2500
2563
  # *Amazon S3 User Guide*.
2501
2564
  #
@@ -2530,6 +2593,25 @@ module Aws::S3
2530
2593
  #
2531
2594
  #
2532
2595
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
2596
+ # @option options [String] :if_match
2597
+ # Uploads the object only if the ETag (entity tag) value provided during
2598
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
2599
+ # values do not match, the operation returns a `412 Precondition Failed`
2600
+ # error.
2601
+ #
2602
+ # If a conflicting operation occurs during the upload S3 returns a `409
2603
+ # ConditionalRequestConflict` response. On a 409 failure you should
2604
+ # fetch the object's ETag and retry the upload.
2605
+ #
2606
+ # Expects the ETag value as a string.
2607
+ #
2608
+ # For more information about conditional requests, see [RFC 7232][1], or
2609
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
2610
+ #
2611
+ #
2612
+ #
2613
+ # [1]: https://tools.ietf.org/html/rfc7232
2614
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
2533
2615
  # @option options [String] :if_none_match
2534
2616
  # Uploads the object only if the object key name does not already exist
2535
2617
  # in the bucket specified. Otherwise, Amazon S3 returns a `412
@@ -2581,6 +2663,16 @@ module Aws::S3
2581
2663
  # * This functionality is not supported for Amazon S3 on Outposts.
2582
2664
  #
2583
2665
  # </note>
2666
+ # @option options [Integer] :write_offset_bytes
2667
+ # Specifies the offset for appending data to existing objects in bytes.
2668
+ # The offset must be equal to the size of the existing object being
2669
+ # appended to. If no object exists, setting this header to 0 will create
2670
+ # a new object.
2671
+ #
2672
+ # <note markdown="1"> This functionality is only supported for objects in the Amazon S3
2673
+ # Express One Zone storage class in directory buckets.
2674
+ #
2675
+ # </note>
2584
2676
  # @option options [Hash<String,String>] :metadata
2585
2677
  # A map of metadata to store with the object in S3.
2586
2678
  # @option options [String] :server_side_encryption
@@ -2734,14 +2826,19 @@ module Aws::S3
2734
2826
  # Amazon Web Services managed key (`aws/s3`) to protect the data.
2735
2827
  #
2736
2828
  # **Directory buckets** - If you specify `x-amz-server-side-encryption`
2737
- # with `aws:kms`, you must specify the `
2738
- # x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key
2739
- # ID or Key ARN) of the KMS symmetric encryption customer managed key to
2740
- # use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the
2741
- # key ID or key ARN. The key alias format of the KMS key isn't
2742
- # supported. Your SSE-KMS configuration can only support 1 [customer
2743
- # managed key][1] per directory bucket for the lifetime of the bucket.
2744
- # [Amazon Web Services managed key][2] (`aws/s3`) isn't supported.
2829
+ # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
2830
+ # header is implicitly assigned the ID of the KMS symmetric encryption
2831
+ # customer managed key that's configured for your directory bucket's
2832
+ # default encryption setting. If you want to specify the `
2833
+ # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
2834
+ # can only specify it with the ID (Key ID or Key ARN) of the KMS
2835
+ # customer managed key that's configured for your directory bucket's
2836
+ # default encryption setting. Otherwise, you get an HTTP `400 Bad
2837
+ # Request` error. Only use the key ID or key ARN. The key alias format
2838
+ # of the KMS key isn't supported. Your SSE-KMS configuration can only
2839
+ # support 1 [customer managed key][1] per directory bucket for the
2840
+ # lifetime of the bucket. The [Amazon Web Services managed key][2]
2841
+ # (`aws/s3`) isn't supported.
2745
2842
  #
2746
2843
  #
2747
2844
  #
@@ -3376,13 +3473,13 @@ module Aws::S3
3376
3473
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
3377
3474
  # the supported algorithm from the following list:
3378
3475
  #
3379
- # * CRC32
3476
+ # * `CRC32`
3380
3477
  #
3381
- # * CRC32C
3478
+ # * `CRC32C`
3382
3479
  #
3383
- # * SHA1
3480
+ # * `SHA1`
3384
3481
  #
3385
- # * SHA256
3482
+ # * `SHA256`
3386
3483
  #
3387
3484
  # For more information, see [Checking object integrity][1] in the
3388
3485
  # *Amazon S3 User Guide*.