aws-sdk-s3 1.171.0 → 1.173.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.
@@ -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(