aws-sdk-s3 1.166.0 → 1.174.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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*.