aws-sdk-s3 1.172.0 → 1.173.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -169,6 +169,7 @@ module Aws::S3
169
169
  EncodingType = Shapes::StringShape.new(name: 'EncodingType')
170
170
  Encryption = Shapes::StructureShape.new(name: 'Encryption')
171
171
  EncryptionConfiguration = Shapes::StructureShape.new(name: 'EncryptionConfiguration')
172
+ EncryptionTypeMismatch = Shapes::StructureShape.new(name: 'EncryptionTypeMismatch')
172
173
  End = Shapes::IntegerShape.new(name: 'End')
173
174
  EndEvent = Shapes::StructureShape.new(name: 'EndEvent')
174
175
  Error = Shapes::StructureShape.new(name: 'Error')
@@ -276,6 +277,9 @@ module Aws::S3
276
277
  HttpRedirectCode = Shapes::StringShape.new(name: 'HttpRedirectCode')
277
278
  ID = Shapes::StringShape.new(name: 'ID')
278
279
  IfMatch = Shapes::StringShape.new(name: 'IfMatch')
280
+ IfMatchInitiatedTime = Shapes::TimestampShape.new(name: 'IfMatchInitiatedTime', timestampFormat: "rfc822")
281
+ IfMatchLastModifiedTime = Shapes::TimestampShape.new(name: 'IfMatchLastModifiedTime', timestampFormat: "rfc822")
282
+ IfMatchSize = Shapes::IntegerShape.new(name: 'IfMatchSize')
279
283
  IfModifiedSince = Shapes::TimestampShape.new(name: 'IfModifiedSince')
280
284
  IfNoneMatch = Shapes::StringShape.new(name: 'IfNoneMatch')
281
285
  IfUnmodifiedSince = Shapes::TimestampShape.new(name: 'IfUnmodifiedSince')
@@ -292,6 +296,8 @@ module Aws::S3
292
296
  IntelligentTieringId = Shapes::StringShape.new(name: 'IntelligentTieringId')
293
297
  IntelligentTieringStatus = Shapes::StringShape.new(name: 'IntelligentTieringStatus')
294
298
  InvalidObjectState = Shapes::StructureShape.new(name: 'InvalidObjectState')
299
+ InvalidRequest = Shapes::StructureShape.new(name: 'InvalidRequest')
300
+ InvalidWriteOffset = Shapes::StructureShape.new(name: 'InvalidWriteOffset')
295
301
  InventoryConfiguration = Shapes::StructureShape.new(name: 'InventoryConfiguration')
296
302
  InventoryConfigurationList = Shapes::ListShape.new(name: 'InventoryConfigurationList', flattened: true)
297
303
  InventoryDestination = Shapes::StructureShape.new(name: 'InventoryDestination')
@@ -321,6 +327,7 @@ module Aws::S3
321
327
  LambdaFunctionConfiguration = Shapes::StructureShape.new(name: 'LambdaFunctionConfiguration')
322
328
  LambdaFunctionConfigurationList = Shapes::ListShape.new(name: 'LambdaFunctionConfigurationList', flattened: true)
323
329
  LastModified = Shapes::TimestampShape.new(name: 'LastModified')
330
+ LastModifiedTime = Shapes::TimestampShape.new(name: 'LastModifiedTime', timestampFormat: "rfc822")
324
331
  LifecycleConfiguration = Shapes::StructureShape.new(name: 'LifecycleConfiguration')
325
332
  LifecycleExpiration = Shapes::StructureShape.new(name: 'LifecycleExpiration')
326
333
  LifecycleRule = Shapes::StructureShape.new(name: 'LifecycleRule')
@@ -600,6 +607,7 @@ module Aws::S3
600
607
  Tiering = Shapes::StructureShape.new(name: 'Tiering')
601
608
  TieringList = Shapes::ListShape.new(name: 'TieringList', flattened: true)
602
609
  Token = Shapes::StringShape.new(name: 'Token')
610
+ TooManyParts = Shapes::StructureShape.new(name: 'TooManyParts')
603
611
  TopicArn = Shapes::StringShape.new(name: 'TopicArn')
604
612
  TopicConfiguration = Shapes::StructureShape.new(name: 'TopicConfiguration')
605
613
  TopicConfigurationDeprecated = Shapes::StructureShape.new(name: 'TopicConfigurationDeprecated')
@@ -623,6 +631,7 @@ module Aws::S3
623
631
  WebsiteConfiguration = Shapes::StructureShape.new(name: 'WebsiteConfiguration')
624
632
  WebsiteRedirectLocation = Shapes::StringShape.new(name: 'WebsiteRedirectLocation')
625
633
  WriteGetObjectResponseRequest = Shapes::StructureShape.new(name: 'WriteGetObjectResponseRequest')
634
+ WriteOffsetBytes = Shapes::IntegerShape.new(name: 'WriteOffsetBytes')
626
635
  Years = Shapes::IntegerShape.new(name: 'Years')
627
636
 
628
637
  AbortIncompleteMultipartUpload.add_member(:days_after_initiation, Shapes::ShapeRef.new(shape: DaysAfterInitiation, location_name: "DaysAfterInitiation"))
@@ -636,6 +645,7 @@ module Aws::S3
636
645
  AbortMultipartUploadRequest.add_member(:upload_id, Shapes::ShapeRef.new(shape: MultipartUploadId, required: true, location: "querystring", location_name: "uploadId"))
637
646
  AbortMultipartUploadRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
638
647
  AbortMultipartUploadRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
648
+ AbortMultipartUploadRequest.add_member(:if_match_initiated_time, Shapes::ShapeRef.new(shape: IfMatchInitiatedTime, location: "header", location_name: "x-amz-if-match-initiated-time"))
639
649
  AbortMultipartUploadRequest.struct_class = Types::AbortMultipartUploadRequest
640
650
 
641
651
  AccelerateConfiguration.add_member(:status, Shapes::ShapeRef.new(shape: BucketAccelerateStatus, location_name: "Status"))
@@ -1048,6 +1058,9 @@ module Aws::S3
1048
1058
  DeleteObjectRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1049
1059
  DeleteObjectRequest.add_member(:bypass_governance_retention, Shapes::ShapeRef.new(shape: BypassGovernanceRetention, location: "header", location_name: "x-amz-bypass-governance-retention"))
1050
1060
  DeleteObjectRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1061
+ DeleteObjectRequest.add_member(:if_match, Shapes::ShapeRef.new(shape: IfMatch, location: "header", location_name: "If-Match"))
1062
+ DeleteObjectRequest.add_member(:if_match_last_modified_time, Shapes::ShapeRef.new(shape: IfMatchLastModifiedTime, location: "header", location_name: "x-amz-if-match-last-modified-time"))
1063
+ DeleteObjectRequest.add_member(:if_match_size, Shapes::ShapeRef.new(shape: IfMatchSize, location: "header", location_name: "x-amz-if-match-size"))
1051
1064
  DeleteObjectRequest.struct_class = Types::DeleteObjectRequest
1052
1065
 
1053
1066
  DeleteObjectTaggingOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
@@ -1104,6 +1117,8 @@ module Aws::S3
1104
1117
  EncryptionConfiguration.add_member(:replica_kms_key_id, Shapes::ShapeRef.new(shape: ReplicaKmsKeyID, location_name: "ReplicaKmsKeyID"))
1105
1118
  EncryptionConfiguration.struct_class = Types::EncryptionConfiguration
1106
1119
 
1120
+ EncryptionTypeMismatch.struct_class = Types::EncryptionTypeMismatch
1121
+
1107
1122
  EndEvent.struct_class = Types::EndEvent
1108
1123
 
1109
1124
  Error.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, location_name: "Key"))
@@ -1598,6 +1613,10 @@ module Aws::S3
1598
1613
  InvalidObjectState.add_member(:access_tier, Shapes::ShapeRef.new(shape: IntelligentTieringAccessTier, location_name: "AccessTier"))
1599
1614
  InvalidObjectState.struct_class = Types::InvalidObjectState
1600
1615
 
1616
+ InvalidRequest.struct_class = Types::InvalidRequest
1617
+
1618
+ InvalidWriteOffset.struct_class = Types::InvalidWriteOffset
1619
+
1601
1620
  InventoryConfiguration.add_member(:destination, Shapes::ShapeRef.new(shape: InventoryDestination, required: true, location_name: "Destination"))
1602
1621
  InventoryConfiguration.add_member(:is_enabled, Shapes::ShapeRef.new(shape: IsEnabled, required: true, location_name: "IsEnabled"))
1603
1622
  InventoryConfiguration.add_member(:filter, Shapes::ShapeRef.new(shape: InventoryFilter, location_name: "Filter"))
@@ -1973,6 +1992,9 @@ module Aws::S3
1973
1992
 
1974
1993
  ObjectIdentifier.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location_name: "Key"))
1975
1994
  ObjectIdentifier.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location_name: "VersionId"))
1995
+ ObjectIdentifier.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
1996
+ ObjectIdentifier.add_member(:last_modified_time, Shapes::ShapeRef.new(shape: LastModifiedTime, location_name: "LastModifiedTime"))
1997
+ ObjectIdentifier.add_member(:size, Shapes::ShapeRef.new(shape: Size, location_name: "Size"))
1976
1998
  ObjectIdentifier.struct_class = Types::ObjectIdentifier
1977
1999
 
1978
2000
  ObjectIdentifierList.member = Shapes::ShapeRef.new(shape: ObjectIdentifier)
@@ -2321,6 +2343,7 @@ module Aws::S3
2321
2343
  PutObjectOutput.add_member(:ssekms_key_id, Shapes::ShapeRef.new(shape: SSEKMSKeyId, location: "header", location_name: "x-amz-server-side-encryption-aws-kms-key-id"))
2322
2344
  PutObjectOutput.add_member(:ssekms_encryption_context, Shapes::ShapeRef.new(shape: SSEKMSEncryptionContext, location: "header", location_name: "x-amz-server-side-encryption-context"))
2323
2345
  PutObjectOutput.add_member(:bucket_key_enabled, Shapes::ShapeRef.new(shape: BucketKeyEnabled, location: "header", location_name: "x-amz-server-side-encryption-bucket-key-enabled"))
2346
+ PutObjectOutput.add_member(:size, Shapes::ShapeRef.new(shape: Size, location: "header", location_name: "x-amz-object-size"))
2324
2347
  PutObjectOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
2325
2348
  PutObjectOutput.struct_class = Types::PutObjectOutput
2326
2349
 
@@ -2346,6 +2369,7 @@ module Aws::S3
2346
2369
  PutObjectRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
2347
2370
  PutObjectRequest.add_member(:grant_write_acp, Shapes::ShapeRef.new(shape: GrantWriteACP, location: "header", location_name: "x-amz-grant-write-acp"))
2348
2371
  PutObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
2372
+ PutObjectRequest.add_member(:write_offset_bytes, Shapes::ShapeRef.new(shape: WriteOffsetBytes, location: "header", location_name: "x-amz-write-offset-bytes"))
2349
2373
  PutObjectRequest.add_member(:metadata, Shapes::ShapeRef.new(shape: Metadata, location: "headers", location_name: "x-amz-meta-"))
2350
2374
  PutObjectRequest.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
2351
2375
  PutObjectRequest.add_member(:storage_class, Shapes::ShapeRef.new(shape: StorageClass, location: "header", location_name: "x-amz-storage-class"))
@@ -2644,6 +2668,8 @@ module Aws::S3
2644
2668
 
2645
2669
  TieringList.member = Shapes::ShapeRef.new(shape: Tiering)
2646
2670
 
2671
+ TooManyParts.struct_class = Types::TooManyParts
2672
+
2647
2673
  TopicConfiguration.add_member(:id, Shapes::ShapeRef.new(shape: NotificationId, location_name: "Id"))
2648
2674
  TopicConfiguration.add_member(:topic_arn, Shapes::ShapeRef.new(shape: TopicArn, required: true, location_name: "Topic"))
2649
2675
  TopicConfiguration.add_member(:events, Shapes::ShapeRef.new(shape: EventList, required: true, location_name: "Event"))
@@ -3714,6 +3740,10 @@ module Aws::S3
3714
3740
  }
3715
3741
  o.input = Shapes::ShapeRef.new(shape: PutObjectRequest)
3716
3742
  o.output = Shapes::ShapeRef.new(shape: PutObjectOutput)
3743
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequest)
3744
+ o.errors << Shapes::ShapeRef.new(shape: InvalidWriteOffset)
3745
+ o.errors << Shapes::ShapeRef.new(shape: TooManyParts)
3746
+ o.errors << Shapes::ShapeRef.new(shape: EncryptionTypeMismatch)
3717
3747
  end)
3718
3748
 
3719
3749
  api.add_operation(:put_object_acl, Seahorse::Model::Operation.new.tap do |o|
@@ -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(
@@ -1410,6 +1410,9 @@ module Aws::S3
1410
1410
  # request_payer: "requester", # accepts requester
1411
1411
  # bypass_governance_retention: false,
1412
1412
  # expected_bucket_owner: "AccountId",
1413
+ # if_match: "IfMatch",
1414
+ # if_match_last_modified_time: Time.now,
1415
+ # if_match_size: 1,
1413
1416
  # })
1414
1417
  # @param [Hash] options ({})
1415
1418
  # @option options [String] :mfa
@@ -1456,6 +1459,46 @@ module Aws::S3
1456
1459
  # The account ID of the expected bucket owner. If the account ID that
1457
1460
  # you provide does not match the actual owner of the bucket, the request
1458
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.
1459
1502
  # @return [Types::DeleteObjectOutput]
1460
1503
  def delete(options = {})
1461
1504
  options = options.merge(
@@ -2330,6 +2373,7 @@ module Aws::S3
2330
2373
  # grant_read: "GrantRead",
2331
2374
  # grant_read_acp: "GrantReadACP",
2332
2375
  # grant_write_acp: "GrantWriteACP",
2376
+ # write_offset_bytes: 1,
2333
2377
  # metadata: {
2334
2378
  # "MetadataKey" => "MetadataValue",
2335
2379
  # },
@@ -2599,6 +2643,16 @@ module Aws::S3
2599
2643
  # * This functionality is not supported for Amazon S3 on Outposts.
2600
2644
  #
2601
2645
  # </note>
2646
+ # @option options [Integer] :write_offset_bytes
2647
+ # Specifies the offset for appending data to existing objects in bytes.
2648
+ # The offset must be equal to the size of the existing object being
2649
+ # appended to. If no object exists, setting this header to 0 will create
2650
+ # a new object.
2651
+ #
2652
+ # <note markdown="1"> This functionality is only supported for objects in the Amazon S3
2653
+ # Express One Zone storage class in directory buckets.
2654
+ #
2655
+ # </note>
2602
2656
  # @option options [Hash<String,String>] :metadata
2603
2657
  # A map of metadata to store with the object in S3.
2604
2658
  # @option options [String] :server_side_encryption
@@ -1060,6 +1060,9 @@ module Aws::S3
1060
1060
  # request_payer: "requester", # accepts requester
1061
1061
  # bypass_governance_retention: false,
1062
1062
  # expected_bucket_owner: "AccountId",
1063
+ # if_match: "IfMatch",
1064
+ # if_match_last_modified_time: Time.now,
1065
+ # if_match_size: 1,
1063
1066
  # })
1064
1067
  # @param [Hash] options ({})
1065
1068
  # @option options [String] :mfa
@@ -1106,6 +1109,46 @@ module Aws::S3
1106
1109
  # The account ID of the expected bucket owner. If the account ID that
1107
1110
  # you provide does not match the actual owner of the bucket, the request
1108
1111
  # fails with the HTTP status code `403 Forbidden` (access denied).
1112
+ # @option options [String] :if_match
1113
+ # The `If-Match` header field makes the request method conditional on
1114
+ # ETags. If the ETag value does not match, the operation returns a `412
1115
+ # Precondition Failed` error. If the ETag matches or if the object
1116
+ # doesn't exist, the operation will return a `204 Success (No Content)
1117
+ # response`.
1118
+ #
1119
+ # For more information about conditional requests, see [RFC 7232][1].
1120
+ #
1121
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1122
+ #
1123
+ # </note>
1124
+ #
1125
+ #
1126
+ #
1127
+ # [1]: https://docs.aws.amazon.com/https:/tools.ietf.org/html/rfc7232
1128
+ # @option options [Time,DateTime,Date,Integer,String] :if_match_last_modified_time
1129
+ # If present, the object is deleted only if its modification times
1130
+ # matches the provided `Timestamp`. If the `Timestamp` values do not
1131
+ # match, the operation returns a `412 Precondition Failed` error. If the
1132
+ # `Timestamp` matches or if the object doesn’t exist, the operation
1133
+ # returns a `204 Success (No Content)` response.
1134
+ #
1135
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1136
+ #
1137
+ # </note>
1138
+ # @option options [Integer] :if_match_size
1139
+ # If present, the object is deleted only if its size matches the
1140
+ # provided size in bytes. If the `Size` value does not match, the
1141
+ # operation returns a `412 Precondition Failed` error. If the `Size`
1142
+ # matches or if the object doesn’t exist, the operation returns a `204
1143
+ # Success (No Content)` response.
1144
+ #
1145
+ # <note markdown="1"> This functionality is only supported for directory buckets.
1146
+ #
1147
+ # </note>
1148
+ #
1149
+ # You can use the `If-Match`, `x-amz-if-match-last-modified-time` and
1150
+ # `x-amz-if-match-size` conditional headers in conjunction with
1151
+ # each-other or individually.
1109
1152
  # @return [Types::DeleteObjectOutput]
1110
1153
  def delete(options = {})
1111
1154
  options = options.merge(
@@ -1980,6 +2023,7 @@ module Aws::S3
1980
2023
  # grant_read: "GrantRead",
1981
2024
  # grant_read_acp: "GrantReadACP",
1982
2025
  # grant_write_acp: "GrantWriteACP",
2026
+ # write_offset_bytes: 1,
1983
2027
  # metadata: {
1984
2028
  # "MetadataKey" => "MetadataValue",
1985
2029
  # },
@@ -2249,6 +2293,16 @@ module Aws::S3
2249
2293
  # * This functionality is not supported for Amazon S3 on Outposts.
2250
2294
  #
2251
2295
  # </note>
2296
+ # @option options [Integer] :write_offset_bytes
2297
+ # Specifies the offset for appending data to existing objects in bytes.
2298
+ # The offset must be equal to the size of the existing object being
2299
+ # appended to. If no object exists, setting this header to 0 will create
2300
+ # a new object.
2301
+ #
2302
+ # <note markdown="1"> This functionality is only supported for objects in the Amazon S3
2303
+ # Express One Zone storage class in directory buckets.
2304
+ #
2305
+ # </note>
2252
2306
  # @option options [Hash<String,String>] :metadata
2253
2307
  # A map of metadata to store with the object in S3.
2254
2308
  # @option options [String] :server_side_encryption
@@ -257,6 +257,9 @@ module Aws::S3
257
257
  # request_payer: "requester", # accepts requester
258
258
  # bypass_governance_retention: false,
259
259
  # expected_bucket_owner: "AccountId",
260
+ # if_match: "IfMatch",
261
+ # if_match_last_modified_time: Time.now,
262
+ # if_match_size: 1,
260
263
  # })
261
264
  # @param [Hash] options ({})
262
265
  # @option options [String] :mfa
@@ -296,6 +299,46 @@ module Aws::S3
296
299
  # The account ID of the expected bucket owner. If the account ID that
297
300
  # you provide does not match the actual owner of the bucket, the request
298
301
  # fails with the HTTP status code `403 Forbidden` (access denied).
302
+ # @option options [String] :if_match
303
+ # The `If-Match` header field makes the request method conditional on
304
+ # ETags. If the ETag value does not match, the operation returns a `412
305
+ # Precondition Failed` error. If the ETag matches or if the object
306
+ # doesn't exist, the operation will return a `204 Success (No Content)
307
+ # response`.
308
+ #
309
+ # For more information about conditional requests, see [RFC 7232][1].
310
+ #
311
+ # <note markdown="1"> This functionality is only supported for directory buckets.
312
+ #
313
+ # </note>
314
+ #
315
+ #
316
+ #
317
+ # [1]: https://docs.aws.amazon.com/https:/tools.ietf.org/html/rfc7232
318
+ # @option options [Time,DateTime,Date,Integer,String] :if_match_last_modified_time
319
+ # If present, the object is deleted only if its modification times
320
+ # matches the provided `Timestamp`. If the `Timestamp` values do not
321
+ # match, the operation returns a `412 Precondition Failed` error. If the
322
+ # `Timestamp` matches or if the object doesn’t exist, the operation
323
+ # returns a `204 Success (No Content)` response.
324
+ #
325
+ # <note markdown="1"> This functionality is only supported for directory buckets.
326
+ #
327
+ # </note>
328
+ # @option options [Integer] :if_match_size
329
+ # If present, the object is deleted only if its size matches the
330
+ # provided size in bytes. If the `Size` value does not match, the
331
+ # operation returns a `412 Precondition Failed` error. If the `Size`
332
+ # matches or if the object doesn’t exist, the operation returns a `204
333
+ # Success (No Content)` response.
334
+ #
335
+ # <note markdown="1"> This functionality is only supported for directory buckets.
336
+ #
337
+ # </note>
338
+ #
339
+ # You can use the `If-Match`, `x-amz-if-match-last-modified-time` and
340
+ # `x-amz-if-match-size` conditional headers in conjunction with
341
+ # each-other or individually.
299
342
  # @return [Types::DeleteObjectOutput]
300
343
  def delete(options = {})
301
344
  options = options.merge(