aws-sdk-s3 1.169.0 → 1.174.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -571,7 +571,7 @@ module Aws::S3
571
571
  # in-progress multipart uploads are aborted or completed. To delete
572
572
  # these in-progress multipart uploads, use the `ListMultipartUploads`
573
573
  # operation to list the in-progress multipart uploads in the bucket
574
- # and use the `AbortMultupartUpload` operation to abort all the
574
+ # and use the `AbortMultipartUpload` operation to abort all the
575
575
  # in-progress multipart uploads.
576
576
  #
577
577
  # * **Directory buckets** - For directory buckets, you must make
@@ -703,6 +703,18 @@ module Aws::S3
703
703
  # you provide does not match the actual owner of the bucket, the request
704
704
  # fails with the HTTP status code `403 Forbidden` (access denied).
705
705
  #
706
+ # @option params [Time,DateTime,Date,Integer,String] :if_match_initiated_time
707
+ # If present, this header aborts an in progress multipart upload only if
708
+ # it was initiated on the provided timestamp. If the initiated timestamp
709
+ # of the multipart upload does not match the provided value, the
710
+ # operation returns a `412 Precondition Failed` error. If the initiated
711
+ # timestamp matches or if the multipart upload doesn’t exist, the
712
+ # operation returns a `204 Success (No Content)` response.
713
+ #
714
+ # <note markdown="1"> This functionality is only supported for directory buckets.
715
+ #
716
+ # </note>
717
+ #
706
718
  # @return [Types::AbortMultipartUploadOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
707
719
  #
708
720
  # * {Types::AbortMultipartUploadOutput#request_charged #request_charged} => String
@@ -730,6 +742,7 @@ module Aws::S3
730
742
  # upload_id: "MultipartUploadId", # required
731
743
  # request_payer: "requester", # accepts requester
732
744
  # expected_bucket_owner: "AccountId",
745
+ # if_match_initiated_time: Time.now,
733
746
  # })
734
747
  #
735
748
  # @example Response structure
@@ -837,7 +850,6 @@ module Aws::S3
837
850
  # except the last part.
838
851
  #
839
852
  # * HTTP Status Code: 400 Bad Request
840
- #
841
853
  # * Error Code: `InvalidPart`
842
854
  #
843
855
  # * Description: One or more of the specified parts could not be
@@ -845,14 +857,12 @@ module Aws::S3
845
857
  # ETag might not have matched the uploaded part's ETag.
846
858
  #
847
859
  # * HTTP Status Code: 400 Bad Request
848
- #
849
860
  # * Error Code: `InvalidPartOrder`
850
861
  #
851
862
  # * Description: The list of parts was not in ascending order. The
852
863
  # parts list must be specified in order by part number.
853
864
  #
854
865
  # * HTTP Status Code: 400 Bad Request
855
- #
856
866
  # * Error Code: `NoSuchUpload`
857
867
  #
858
868
  # * Description: The specified multipart upload does not exist. The
@@ -1012,6 +1022,27 @@ module Aws::S3
1012
1022
  # you provide does not match the actual owner of the bucket, the request
1013
1023
  # fails with the HTTP status code `403 Forbidden` (access denied).
1014
1024
  #
1025
+ # @option params [String] :if_match
1026
+ # Uploads the object only if the ETag (entity tag) value provided during
1027
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
1028
+ # values do not match, the operation returns a `412 Precondition Failed`
1029
+ # error.
1030
+ #
1031
+ # If a conflicting operation occurs during the upload S3 returns a `409
1032
+ # ConditionalRequestConflict` response. On a 409 failure you should
1033
+ # fetch the object's ETag, re-initiate the multipart upload with
1034
+ # `CreateMultipartUpload`, and re-upload each part.
1035
+ #
1036
+ # Expects the ETag value as a string.
1037
+ #
1038
+ # For more information about conditional requests, see [RFC 7232][1], or
1039
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
1040
+ #
1041
+ #
1042
+ #
1043
+ # [1]: https://tools.ietf.org/html/rfc7232
1044
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
1045
+ #
1015
1046
  # @option params [String] :if_none_match
1016
1047
  # Uploads the object only if the object key name does not already exist
1017
1048
  # in the bucket specified. Otherwise, Amazon S3 returns a `412
@@ -1147,6 +1178,7 @@ module Aws::S3
1147
1178
  # checksum_sha256: "ChecksumSHA256",
1148
1179
  # request_payer: "requester", # accepts requester
1149
1180
  # expected_bucket_owner: "AccountId",
1181
+ # if_match: "IfMatch",
1150
1182
  # if_none_match: "IfNoneMatch",
1151
1183
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1152
1184
  # sse_customer_key: "SSECustomerKey",
@@ -1254,7 +1286,6 @@ module Aws::S3
1254
1286
  # * If the destination bucket is a general purpose bucket, you must
1255
1287
  # have <b> <code>s3:PutObject</code> </b> permission to write the
1256
1288
  # object copy to the destination bucket.
1257
- #
1258
1289
  # * **Directory bucket permissions** - You must have permissions in a
1259
1290
  # bucket policy or an IAM identity-based policy based on the source
1260
1291
  # and destination bucket types in a `CopyObject` operation.
@@ -1272,7 +1303,6 @@ module Aws::S3
1272
1303
  # `Action` element of a policy to write the object to the
1273
1304
  # destination. The `s3express:SessionMode` condition key can't be
1274
1305
  # set to `ReadOnly` on the copy destination bucket.
1275
- #
1276
1306
  # If the object is encrypted with SSE-KMS, you must also have the
1277
1307
  # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
1278
1308
  # identity-based policies and KMS key policies for the KMS key.
@@ -2309,7 +2339,6 @@ module Aws::S3
2309
2339
  # more information about S3 Block Public Access, see [Blocking
2310
2340
  # public access to your Amazon S3 storage ][6] in the *Amazon S3
2311
2341
  # User Guide*.
2312
- #
2313
2342
  # * **Directory bucket permissions** - You must have the
2314
2343
  # `s3express:CreateBucket` permission in an IAM identity-based
2315
2344
  # policy instead of a bucket policy. Cross-account access to this
@@ -2477,33 +2506,33 @@ module Aws::S3
2477
2506
  # * {Types::CreateBucketOutput#location #location} => String
2478
2507
  #
2479
2508
  #
2480
- # @example Example: To create a bucket in a specific region
2509
+ # @example Example: To create a bucket
2481
2510
  #
2482
- # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2511
+ # # The following example creates a bucket.
2483
2512
  #
2484
2513
  # resp = client.create_bucket({
2485
2514
  # bucket: "examplebucket",
2486
- # create_bucket_configuration: {
2487
- # location_constraint: "eu-west-1",
2488
- # },
2489
2515
  # })
2490
2516
  #
2491
2517
  # resp.to_h outputs the following:
2492
2518
  # {
2493
- # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2519
+ # location: "/examplebucket",
2494
2520
  # }
2495
2521
  #
2496
- # @example Example: To create a bucket
2522
+ # @example Example: To create a bucket in a specific region
2497
2523
  #
2498
- # # The following example creates a bucket.
2524
+ # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2499
2525
  #
2500
2526
  # resp = client.create_bucket({
2501
2527
  # bucket: "examplebucket",
2528
+ # create_bucket_configuration: {
2529
+ # location_constraint: "eu-west-1",
2530
+ # },
2502
2531
  # })
2503
2532
  #
2504
2533
  # resp.to_h outputs the following:
2505
2534
  # {
2506
- # location: "/examplebucket",
2535
+ # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2507
2536
  # }
2508
2537
  #
2509
2538
  # @example Request syntax with placeholder values
@@ -2660,7 +2689,6 @@ module Aws::S3
2660
2689
  # * `x-amz-server-side-encryption-aws-kms-key-id`
2661
2690
  #
2662
2691
  # * `x-amz-server-side-encryption-context`
2663
- #
2664
2692
  # <note markdown="1"> * If you specify `x-amz-server-side-encryption:aws:kms`, but
2665
2693
  # don't provide `x-amz-server-side-encryption-aws-kms-key-id`,
2666
2694
  # Amazon S3 uses the Amazon Web Services managed key (`aws/s3`
@@ -2706,12 +2734,10 @@ module Aws::S3
2706
2734
  # * `x-amz-server-side-encryption-customer-key`
2707
2735
  #
2708
2736
  # * `x-amz-server-side-encryption-customer-key-MD5`
2709
- #
2710
2737
  # For more information about server-side encryption with
2711
2738
  # customer-provided encryption keys (SSE-C), see [ Protecting data
2712
2739
  # using server-side encryption with customer-provided encryption
2713
2740
  # keys (SSE-C)][11] in the *Amazon S3 User Guide*.
2714
- #
2715
2741
  # * **Directory buckets** - For directory buckets, there are only two
2716
2742
  # supported options for server-side encryption: server-side
2717
2743
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
@@ -3885,7 +3911,7 @@ module Aws::S3
3885
3911
  req.send_request(options)
3886
3912
  end
3887
3913
 
3888
- # <note markdown="1"> This operation is not supported by directory buckets.
3914
+ # <note markdown="1"> This operation is not supported for directory buckets.
3889
3915
  #
3890
3916
  # </note>
3891
3917
  #
@@ -3951,7 +3977,7 @@ module Aws::S3
3951
3977
  req.send_request(options)
3952
3978
  end
3953
3979
 
3954
- # <note markdown="1"> This operation is not supported by directory buckets.
3980
+ # <note markdown="1"> This operation is not supported for directory buckets.
3955
3981
  #
3956
3982
  # </note>
3957
3983
  #
@@ -4115,7 +4141,7 @@ module Aws::S3
4115
4141
  req.send_request(options)
4116
4142
  end
4117
4143
 
4118
- # <note markdown="1"> This operation is not supported by directory buckets.
4144
+ # <note markdown="1"> This operation is not supported for directory buckets.
4119
4145
  #
4120
4146
  # </note>
4121
4147
  #
@@ -4182,7 +4208,7 @@ module Aws::S3
4182
4208
  req.send_request(options)
4183
4209
  end
4184
4210
 
4185
- # <note markdown="1"> This operation is not supported by directory buckets.
4211
+ # <note markdown="1"> This operation is not supported for directory buckets.
4186
4212
  #
4187
4213
  # </note>
4188
4214
  #
@@ -4247,38 +4273,71 @@ module Aws::S3
4247
4273
  req.send_request(options)
4248
4274
  end
4249
4275
 
4250
- # <note markdown="1"> This operation is not supported by directory buckets.
4251
- #
4252
- # </note>
4253
- #
4254
4276
  # Deletes the lifecycle configuration from the specified bucket. Amazon
4255
4277
  # S3 removes all the lifecycle configuration rules in the lifecycle
4256
4278
  # subresource associated with the bucket. Your objects never expire, and
4257
4279
  # Amazon S3 no longer automatically deletes any objects on the basis of
4258
4280
  # rules contained in the deleted lifecycle configuration.
4259
4281
  #
4260
- # To use this operation, you must have permission to perform the
4261
- # `s3:PutLifecycleConfiguration` action. By default, the bucket owner
4262
- # has this permission and the bucket owner can grant this permission to
4263
- # others.
4282
+ # Permissions
4283
+ # : * **General purpose bucket permissions** - By default, all Amazon S3
4284
+ # resources are private, including buckets, objects, and related
4285
+ # subresources (for example, lifecycle configuration and website
4286
+ # configuration). Only the resource owner (that is, the Amazon Web
4287
+ # Services account that created it) can access the resource. The
4288
+ # resource owner can optionally grant access permissions to others
4289
+ # by writing an access policy. For this operation, a user must have
4290
+ # the `s3:PutLifecycleConfiguration` permission.
4291
+ #
4292
+ # For more information about permissions, see [Managing Access
4293
+ # Permissions to Your Amazon S3 Resources][1].
4294
+ # ^
4264
4295
  #
4265
- # There is usually some time lag before lifecycle configuration deletion
4266
- # is fully propagated to all the Amazon S3 systems.
4296
+ # * **Directory bucket permissions** - You must have the
4297
+ # `s3express:PutLifecycleConfiguration` permission in an IAM
4298
+ # identity-based policy to use this operation. Cross-account access
4299
+ # to this API operation isn't supported. The resource owner can
4300
+ # optionally grant access permissions to others by creating a role
4301
+ # or user for them as long as they are within the same account as
4302
+ # the owner and resource.
4303
+ #
4304
+ # For more information about directory bucket policies and
4305
+ # permissions, see [Authorizing Regional endpoint APIs with IAM][2]
4306
+ # in the *Amazon S3 User Guide*.
4307
+ #
4308
+ # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
4309
+ # requests for this API operation to the Regional endpoint. These
4310
+ # endpoints support path-style requests in the format
4311
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name
4312
+ # `. Virtual-hosted-style requests aren't supported. For more
4313
+ # information, see [Regional and Zonal endpoints][3] in the *Amazon
4314
+ # S3 User Guide*.
4315
+ #
4316
+ # </note>
4317
+ # ^
4318
+ #
4319
+ # HTTP Host header syntax
4320
+ #
4321
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is
4322
+ # `s3express-control.region.amazonaws.com`.
4267
4323
  #
4268
4324
  # For more information about the object expiration, see [Elements to
4269
- # Describe Lifecycle Actions][1].
4325
+ # Describe Lifecycle Actions][4].
4270
4326
  #
4271
4327
  # Related actions include:
4272
4328
  #
4273
- # * [PutBucketLifecycleConfiguration][2]
4329
+ # * [PutBucketLifecycleConfiguration][5]
4274
4330
  #
4275
- # * [GetBucketLifecycleConfiguration][3]
4331
+ # * [GetBucketLifecycleConfiguration][6]
4276
4332
  #
4277
4333
  #
4278
4334
  #
4279
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions
4280
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
4281
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
4335
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
4336
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
4337
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
4338
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions
4339
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
4340
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
4282
4341
  #
4283
4342
  # @option params [required, String] :bucket
4284
4343
  # The bucket name of the lifecycle to delete.
@@ -4288,6 +4347,11 @@ module Aws::S3
4288
4347
  # you provide does not match the actual owner of the bucket, the request
4289
4348
  # fails with the HTTP status code `403 Forbidden` (access denied).
4290
4349
  #
4350
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
4351
+ # supported for directory bucket lifecycle configurations.
4352
+ #
4353
+ # </note>
4354
+ #
4291
4355
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4292
4356
  #
4293
4357
  #
@@ -4315,7 +4379,7 @@ module Aws::S3
4315
4379
  req.send_request(options)
4316
4380
  end
4317
4381
 
4318
- # <note markdown="1"> This operation is not supported by directory buckets.
4382
+ # <note markdown="1"> This operation is not supported for directory buckets.
4319
4383
  #
4320
4384
  # </note>
4321
4385
  #
@@ -4385,7 +4449,7 @@ module Aws::S3
4385
4449
  req.send_request(options)
4386
4450
  end
4387
4451
 
4388
- # <note markdown="1"> This operation is not supported by directory buckets.
4452
+ # <note markdown="1"> This operation is not supported for directory buckets.
4389
4453
  #
4390
4454
  # </note>
4391
4455
  #
@@ -4559,7 +4623,7 @@ module Aws::S3
4559
4623
  req.send_request(options)
4560
4624
  end
4561
4625
 
4562
- # <note markdown="1"> This operation is not supported by directory buckets.
4626
+ # <note markdown="1"> This operation is not supported for directory buckets.
4563
4627
  #
4564
4628
  # </note>
4565
4629
  #
@@ -4629,7 +4693,7 @@ module Aws::S3
4629
4693
  req.send_request(options)
4630
4694
  end
4631
4695
 
4632
- # <note markdown="1"> This operation is not supported by directory buckets.
4696
+ # <note markdown="1"> This operation is not supported for directory buckets.
4633
4697
  #
4634
4698
  # </note>
4635
4699
  #
@@ -4685,7 +4749,7 @@ module Aws::S3
4685
4749
  req.send_request(options)
4686
4750
  end
4687
4751
 
4688
- # <note markdown="1"> This operation is not supported by directory buckets.
4752
+ # <note markdown="1"> This operation is not supported for directory buckets.
4689
4753
  #
4690
4754
  # </note>
4691
4755
  #
@@ -4805,7 +4869,6 @@ module Aws::S3
4805
4869
  # objects from your bucket, you must deny them the
4806
4870
  # `s3:DeleteObject`, `s3:DeleteObjectVersion`, and
4807
4871
  # `s3:PutLifeCycleConfiguration` permissions.
4808
- #
4809
4872
  # * **Directory buckets permissions** - To grant access to this API
4810
4873
  # operation on a directory bucket, we recommend that you use the
4811
4874
  # CreateSession API operation for session-based authorization.
@@ -4925,6 +4988,49 @@ module Aws::S3
4925
4988
  # you provide does not match the actual owner of the bucket, the request
4926
4989
  # fails with the HTTP status code `403 Forbidden` (access denied).
4927
4990
  #
4991
+ # @option params [String] :if_match
4992
+ # The `If-Match` header field makes the request method conditional on
4993
+ # ETags. If the ETag value does not match, the operation returns a `412
4994
+ # Precondition Failed` error. If the ETag matches or if the object
4995
+ # doesn't exist, the operation will return a `204 Success (No Content)
4996
+ # response`.
4997
+ #
4998
+ # For more information about conditional requests, see [RFC 7232][1].
4999
+ #
5000
+ # <note markdown="1"> This functionality is only supported for directory buckets.
5001
+ #
5002
+ # </note>
5003
+ #
5004
+ #
5005
+ #
5006
+ # [1]: https://docs.aws.amazon.com/https:/tools.ietf.org/html/rfc7232
5007
+ #
5008
+ # @option params [Time,DateTime,Date,Integer,String] :if_match_last_modified_time
5009
+ # If present, the object is deleted only if its modification times
5010
+ # matches the provided `Timestamp`. If the `Timestamp` values do not
5011
+ # match, the operation returns a `412 Precondition Failed` error. If the
5012
+ # `Timestamp` matches or if the object doesn’t exist, the operation
5013
+ # returns a `204 Success (No Content)` response.
5014
+ #
5015
+ # <note markdown="1"> This functionality is only supported for directory buckets.
5016
+ #
5017
+ # </note>
5018
+ #
5019
+ # @option params [Integer] :if_match_size
5020
+ # If present, the object is deleted only if its size matches the
5021
+ # provided size in bytes. If the `Size` value does not match, the
5022
+ # operation returns a `412 Precondition Failed` error. If the `Size`
5023
+ # matches or if the object doesn’t exist, the operation returns a `204
5024
+ # Success (No Content)` response.
5025
+ #
5026
+ # <note markdown="1"> This functionality is only supported for directory buckets.
5027
+ #
5028
+ # </note>
5029
+ #
5030
+ # You can use the `If-Match`, `x-amz-if-match-last-modified-time` and
5031
+ # `x-amz-if-match-size` conditional headers in conjunction with
5032
+ # each-other or individually.
5033
+ #
4928
5034
  # @return [Types::DeleteObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4929
5035
  #
4930
5036
  # * {Types::DeleteObjectOutput#delete_marker #delete_marker} => Boolean
@@ -4964,6 +5070,9 @@ module Aws::S3
4964
5070
  # request_payer: "requester", # accepts requester
4965
5071
  # bypass_governance_retention: false,
4966
5072
  # expected_bucket_owner: "AccountId",
5073
+ # if_match: "IfMatch",
5074
+ # if_match_last_modified_time: Time.now,
5075
+ # if_match_size: 1,
4967
5076
  # })
4968
5077
  #
4969
5078
  # @example Response structure
@@ -4981,7 +5090,7 @@ module Aws::S3
4981
5090
  req.send_request(options)
4982
5091
  end
4983
5092
 
4984
- # <note markdown="1"> This operation is not supported by directory buckets.
5093
+ # <note markdown="1"> This operation is not supported for directory buckets.
4985
5094
  #
4986
5095
  # </note>
4987
5096
  #
@@ -5164,7 +5273,6 @@ module Aws::S3
5164
5273
  # * <b> <code>s3:DeleteObjectVersion</code> </b> - To delete a
5165
5274
  # specific version of an object from a versioning-enabled bucket,
5166
5275
  # you must specify the `s3:DeleteObjectVersion` permission.
5167
- #
5168
5276
  # * **Directory bucket permissions** - To grant access to this API
5169
5277
  # operation on a directory bucket, we recommend that you use the [
5170
5278
  # `CreateSession` ][3] API operation for session-based
@@ -5363,20 +5471,22 @@ module Aws::S3
5363
5471
  # * {Types::DeleteObjectsOutput#errors #errors} => Array&lt;Types::Error&gt;
5364
5472
  #
5365
5473
  #
5366
- # @example Example: To delete multiple objects from a versioned bucket
5474
+ # @example Example: To delete multiple object versions from a versioned bucket
5367
5475
  #
5368
- # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
5369
- # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
5476
+ # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
5477
+ # # versions and returns the key and versions of deleted objects in the response.
5370
5478
  #
5371
5479
  # resp = client.delete_objects({
5372
5480
  # bucket: "examplebucket",
5373
5481
  # delete: {
5374
5482
  # objects: [
5375
5483
  # {
5376
- # key: "objectkey1",
5484
+ # key: "HappyFace.jpg",
5485
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5377
5486
  # },
5378
5487
  # {
5379
- # key: "objectkey2",
5488
+ # key: "HappyFace.jpg",
5489
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5380
5490
  # },
5381
5491
  # ],
5382
5492
  # quiet: false,
@@ -5387,34 +5497,30 @@ module Aws::S3
5387
5497
  # {
5388
5498
  # deleted: [
5389
5499
  # {
5390
- # delete_marker: true,
5391
- # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
5392
- # key: "objectkey1",
5500
+ # key: "HappyFace.jpg",
5501
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5393
5502
  # },
5394
5503
  # {
5395
- # delete_marker: true,
5396
- # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
5397
- # key: "objectkey2",
5504
+ # key: "HappyFace.jpg",
5505
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5398
5506
  # },
5399
5507
  # ],
5400
5508
  # }
5401
5509
  #
5402
- # @example Example: To delete multiple object versions from a versioned bucket
5510
+ # @example Example: To delete multiple objects from a versioned bucket
5403
5511
  #
5404
- # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
5405
- # # versions and returns the key and versions of deleted objects in the response.
5512
+ # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
5513
+ # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
5406
5514
  #
5407
5515
  # resp = client.delete_objects({
5408
5516
  # bucket: "examplebucket",
5409
5517
  # delete: {
5410
5518
  # objects: [
5411
5519
  # {
5412
- # key: "HappyFace.jpg",
5413
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5520
+ # key: "objectkey1",
5414
5521
  # },
5415
5522
  # {
5416
- # key: "HappyFace.jpg",
5417
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5523
+ # key: "objectkey2",
5418
5524
  # },
5419
5525
  # ],
5420
5526
  # quiet: false,
@@ -5425,12 +5531,14 @@ module Aws::S3
5425
5531
  # {
5426
5532
  # deleted: [
5427
5533
  # {
5428
- # key: "HappyFace.jpg",
5429
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5534
+ # delete_marker: true,
5535
+ # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
5536
+ # key: "objectkey1",
5430
5537
  # },
5431
5538
  # {
5432
- # key: "HappyFace.jpg",
5433
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5539
+ # delete_marker: true,
5540
+ # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
5541
+ # key: "objectkey2",
5434
5542
  # },
5435
5543
  # ],
5436
5544
  # }
@@ -5444,6 +5552,9 @@ module Aws::S3
5444
5552
  # {
5445
5553
  # key: "ObjectKey", # required
5446
5554
  # version_id: "ObjectVersionId",
5555
+ # etag: "ETag",
5556
+ # last_modified_time: Time.now,
5557
+ # size: 1,
5447
5558
  # },
5448
5559
  # ],
5449
5560
  # quiet: false,
@@ -5478,7 +5589,7 @@ module Aws::S3
5478
5589
  req.send_request(options)
5479
5590
  end
5480
5591
 
5481
- # <note markdown="1"> This operation is not supported by directory buckets.
5592
+ # <note markdown="1"> This operation is not supported for directory buckets.
5482
5593
  #
5483
5594
  # </note>
5484
5595
  #
@@ -5535,7 +5646,7 @@ module Aws::S3
5535
5646
  req.send_request(options)
5536
5647
  end
5537
5648
 
5538
- # <note markdown="1"> This operation is not supported by directory buckets.
5649
+ # <note markdown="1"> This operation is not supported for directory buckets.
5539
5650
  #
5540
5651
  # </note>
5541
5652
  #
@@ -5631,7 +5742,7 @@ module Aws::S3
5631
5742
  req.send_request(options)
5632
5743
  end
5633
5744
 
5634
- # <note markdown="1"> This operation is not supported by directory buckets.
5745
+ # <note markdown="1"> This operation is not supported for directory buckets.
5635
5746
  #
5636
5747
  # </note>
5637
5748
  #
@@ -5727,7 +5838,7 @@ module Aws::S3
5727
5838
  req.send_request(options)
5728
5839
  end
5729
5840
 
5730
- # <note markdown="1"> This operation is not supported by directory buckets.
5841
+ # <note markdown="1"> This operation is not supported for directory buckets.
5731
5842
  #
5732
5843
  # </note>
5733
5844
  #
@@ -5813,7 +5924,7 @@ module Aws::S3
5813
5924
  req.send_request(options)
5814
5925
  end
5815
5926
 
5816
- # <note markdown="1"> This operation is not supported by directory buckets.
5927
+ # <note markdown="1"> This operation is not supported for directory buckets.
5817
5928
  #
5818
5929
  # </note>
5819
5930
  #
@@ -6046,7 +6157,7 @@ module Aws::S3
6046
6157
  req.send_request(options)
6047
6158
  end
6048
6159
 
6049
- # <note markdown="1"> This operation is not supported by directory buckets.
6160
+ # <note markdown="1"> This operation is not supported for directory buckets.
6050
6161
  #
6051
6162
  # </note>
6052
6163
  #
@@ -6130,7 +6241,7 @@ module Aws::S3
6130
6241
  req.send_request(options)
6131
6242
  end
6132
6243
 
6133
- # <note markdown="1"> This operation is not supported by directory buckets.
6244
+ # <note markdown="1"> This operation is not supported for directory buckets.
6134
6245
  #
6135
6246
  # </note>
6136
6247
  #
@@ -6219,7 +6330,7 @@ module Aws::S3
6219
6330
  # version of this topic. This topic is provided for backward
6220
6331
  # compatibility.
6221
6332
  #
6222
- # <note markdown="1"> This operation is not supported by directory buckets.
6333
+ # <note markdown="1"> This operation is not supported for directory buckets.
6223
6334
  #
6224
6335
  # </note>
6225
6336
  #
@@ -6331,34 +6442,65 @@ module Aws::S3
6331
6442
  req.send_request(options)
6332
6443
  end
6333
6444
 
6334
- # <note markdown="1"> This operation is not supported by directory buckets.
6335
- #
6336
- # </note>
6445
+ # Returns the lifecycle configuration information set on the bucket. For
6446
+ # information about lifecycle configuration, see [Object Lifecycle
6447
+ # Management][1].
6337
6448
  #
6338
- # <note markdown="1"> Bucket lifecycle configuration now supports specifying a lifecycle
6449
+ # Bucket lifecycle configuration now supports specifying a lifecycle
6339
6450
  # rule using an object key name prefix, one or more object tags, object
6340
6451
  # size, or any combination of these. Accordingly, this section describes
6341
- # the latest API. The previous version of the API supported filtering
6342
- # based only on an object key name prefix, which is supported for
6343
- # backward compatibility. For the related API description, see
6344
- # [GetBucketLifecycle][1]. Accordingly, this section describes the
6345
- # latest API. The response describes the new filter element that you can
6346
- # use to specify a filter to select a subset of objects to which the
6347
- # rule applies. If you are using a previous version of the lifecycle
6348
- # configuration, it still works. For the earlier action,
6452
+ # the latest API, which is compatible with the new functionality. The
6453
+ # previous version of the API supported filtering based only on an
6454
+ # object key name prefix, which is supported for general purpose buckets
6455
+ # for backward compatibility. For the related API description, see
6456
+ # [GetBucketLifecycle][2].
6457
+ #
6458
+ # <note markdown="1"> Lifecyle configurations for directory buckets only support expiring
6459
+ # objects and cancelling multipart uploads. Expiring of versioned
6460
+ # objects, transitions and tag filters are not supported.
6349
6461
  #
6350
6462
  # </note>
6351
6463
  #
6352
- # Returns the lifecycle configuration information set on the bucket. For
6353
- # information about lifecycle configuration, see [Object Lifecycle
6354
- # Management][2].
6464
+ # Permissions
6465
+ # : * **General purpose bucket permissions** - By default, all Amazon S3
6466
+ # resources are private, including buckets, objects, and related
6467
+ # subresources (for example, lifecycle configuration and website
6468
+ # configuration). Only the resource owner (that is, the Amazon Web
6469
+ # Services account that created it) can access the resource. The
6470
+ # resource owner can optionally grant access permissions to others
6471
+ # by writing an access policy. For this operation, a user must have
6472
+ # the `s3:GetLifecycleConfiguration` permission.
6473
+ #
6474
+ # For more information about permissions, see [Managing Access
6475
+ # Permissions to Your Amazon S3 Resources][3].
6476
+ # ^
6355
6477
  #
6356
- # To use this operation, you must have permission to perform the
6357
- # `s3:GetLifecycleConfiguration` action. The bucket owner has this
6358
- # permission, by default. The bucket owner can grant this permission to
6359
- # others. For more information about permissions, see [Permissions
6360
- # Related to Bucket Subresource Operations][3] and [Managing Access
6361
- # Permissions to Your Amazon S3 Resources][4].
6478
+ # * **Directory bucket permissions** - You must have the
6479
+ # `s3express:GetLifecycleConfiguration` permission in an IAM
6480
+ # identity-based policy to use this operation. Cross-account access
6481
+ # to this API operation isn't supported. The resource owner can
6482
+ # optionally grant access permissions to others by creating a role
6483
+ # or user for them as long as they are within the same account as
6484
+ # the owner and resource.
6485
+ #
6486
+ # For more information about directory bucket policies and
6487
+ # permissions, see [Authorizing Regional endpoint APIs with IAM][4]
6488
+ # in the *Amazon S3 User Guide*.
6489
+ #
6490
+ # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
6491
+ # requests for this API operation to the Regional endpoint. These
6492
+ # endpoints support path-style requests in the format
6493
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name
6494
+ # `. Virtual-hosted-style requests aren't supported. For more
6495
+ # information, see [Regional and Zonal endpoints][5] in the *Amazon
6496
+ # S3 User Guide*.
6497
+ #
6498
+ # </note>
6499
+ #
6500
+ # HTTP Host header syntax
6501
+ #
6502
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is
6503
+ # `s3express-control.region.amazonaws.com`.
6362
6504
  #
6363
6505
  # `GetBucketLifecycleConfiguration` has the following special error:
6364
6506
  #
@@ -6373,20 +6515,21 @@ module Aws::S3
6373
6515
  # The following operations are related to
6374
6516
  # `GetBucketLifecycleConfiguration`:
6375
6517
  #
6376
- # * [GetBucketLifecycle][1]
6518
+ # * [GetBucketLifecycle][2]
6377
6519
  #
6378
- # * [PutBucketLifecycle][5]
6520
+ # * [PutBucketLifecycle][6]
6379
6521
  #
6380
- # * [DeleteBucketLifecycle][6]
6522
+ # * [DeleteBucketLifecycle][7]
6381
6523
  #
6382
6524
  #
6383
6525
  #
6384
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html
6385
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
6386
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
6387
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
6388
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html
6389
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html
6526
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
6527
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html
6528
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
6529
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
6530
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
6531
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html
6532
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html
6390
6533
  #
6391
6534
  # @option params [required, String] :bucket
6392
6535
  # The name of the bucket for which to get the lifecycle information.
@@ -6396,6 +6539,11 @@ module Aws::S3
6396
6539
  # you provide does not match the actual owner of the bucket, the request
6397
6540
  # fails with the HTTP status code `403 Forbidden` (access denied).
6398
6541
  #
6542
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
6543
+ # supported for directory bucket lifecycle configurations.
6544
+ #
6545
+ # </note>
6546
+ #
6399
6547
  # @return [Types::GetBucketLifecycleConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6400
6548
  #
6401
6549
  # * {Types::GetBucketLifecycleConfigurationOutput#rules #rules} => Array&lt;Types::LifecycleRule&gt;
@@ -6476,7 +6624,7 @@ module Aws::S3
6476
6624
  req.send_request(options)
6477
6625
  end
6478
6626
 
6479
- # <note markdown="1"> This operation is not supported by directory buckets.
6627
+ # <note markdown="1"> This operation is not supported for directory buckets.
6480
6628
  #
6481
6629
  # </note>
6482
6630
  #
@@ -6573,7 +6721,7 @@ module Aws::S3
6573
6721
  req.send_request(options)
6574
6722
  end
6575
6723
 
6576
- # <note markdown="1"> This operation is not supported by directory buckets.
6724
+ # <note markdown="1"> This operation is not supported for directory buckets.
6577
6725
  #
6578
6726
  # </note>
6579
6727
  #
@@ -6632,7 +6780,7 @@ module Aws::S3
6632
6780
  req.send_request(options)
6633
6781
  end
6634
6782
 
6635
- # <note markdown="1"> This operation is not supported by directory buckets.
6783
+ # <note markdown="1"> This operation is not supported for directory buckets.
6636
6784
  #
6637
6785
  # </note>
6638
6786
  #
@@ -6718,7 +6866,7 @@ module Aws::S3
6718
6866
  req.send_request(options)
6719
6867
  end
6720
6868
 
6721
- # <note markdown="1"> This operation is not supported by directory buckets.
6869
+ # <note markdown="1"> This operation is not supported for directory buckets.
6722
6870
  #
6723
6871
  # </note>
6724
6872
  #
@@ -6849,7 +6997,7 @@ module Aws::S3
6849
6997
  req.send_request(options)
6850
6998
  end
6851
6999
 
6852
- # <note markdown="1"> This operation is not supported by directory buckets.
7000
+ # <note markdown="1"> This operation is not supported for directory buckets.
6853
7001
  #
6854
7002
  # </note>
6855
7003
  #
@@ -6964,7 +7112,7 @@ module Aws::S3
6964
7112
  req.send_request(options)
6965
7113
  end
6966
7114
 
6967
- # <note markdown="1"> This operation is not supported by directory buckets.
7115
+ # <note markdown="1"> This operation is not supported for directory buckets.
6968
7116
  #
6969
7117
  # </note>
6970
7118
  #
@@ -7181,7 +7329,7 @@ module Aws::S3
7181
7329
  req.send_request(options, &block)
7182
7330
  end
7183
7331
 
7184
- # <note markdown="1"> This operation is not supported by directory buckets.
7332
+ # <note markdown="1"> This operation is not supported for directory buckets.
7185
7333
  #
7186
7334
  # </note>
7187
7335
  #
@@ -7246,7 +7394,7 @@ module Aws::S3
7246
7394
  req.send_request(options)
7247
7395
  end
7248
7396
 
7249
- # <note markdown="1"> This operation is not supported by directory buckets.
7397
+ # <note markdown="1"> This operation is not supported for directory buckets.
7250
7398
  #
7251
7399
  # </note>
7252
7400
  #
@@ -7369,7 +7517,7 @@ module Aws::S3
7369
7517
  req.send_request(options)
7370
7518
  end
7371
7519
 
7372
- # <note markdown="1"> This operation is not supported by directory buckets.
7520
+ # <note markdown="1"> This operation is not supported for directory buckets.
7373
7521
  #
7374
7522
  # </note>
7375
7523
  #
@@ -7435,7 +7583,7 @@ module Aws::S3
7435
7583
  req.send_request(options)
7436
7584
  end
7437
7585
 
7438
- # <note markdown="1"> This operation is not supported by directory buckets.
7586
+ # <note markdown="1"> This operation is not supported for directory buckets.
7439
7587
  #
7440
7588
  # </note>
7441
7589
  #
@@ -7521,7 +7669,7 @@ module Aws::S3
7521
7669
  req.send_request(options)
7522
7670
  end
7523
7671
 
7524
- # <note markdown="1"> This operation is not supported by directory buckets.
7672
+ # <note markdown="1"> This operation is not supported for directory buckets.
7525
7673
  #
7526
7674
  # </note>
7527
7675
  #
@@ -7598,7 +7746,7 @@ module Aws::S3
7598
7746
  req.send_request(options)
7599
7747
  end
7600
7748
 
7601
- # <note markdown="1"> This operation is not supported by directory buckets.
7749
+ # <note markdown="1"> This operation is not supported for directory buckets.
7602
7750
  #
7603
7751
  # </note>
7604
7752
  #
@@ -7744,7 +7892,6 @@ module Aws::S3
7744
7892
  #
7745
7893
  # * If you don’t have the `s3:ListBucket` permission, Amazon S3
7746
7894
  # returns an HTTP status code `403 Access Denied` error.
7747
- #
7748
7895
  # * **Directory bucket permissions** - To grant access to this API
7749
7896
  # operation on a directory bucket, we recommend that you use the [
7750
7897
  # `CreateSession` ][4] API operation for session-based
@@ -8205,49 +8352,49 @@ module Aws::S3
8205
8352
  # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
8206
8353
  #
8207
8354
  #
8208
- # @example Example: To retrieve a byte range of an object
8355
+ # @example Example: To retrieve an object
8209
8356
  #
8210
- # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
8211
- # # specific byte range.
8357
+ # # The following example retrieves an object for an S3 bucket.
8212
8358
  #
8213
8359
  # resp = client.get_object({
8214
8360
  # bucket: "examplebucket",
8215
- # key: "SampleFile.txt",
8216
- # range: "bytes=0-9",
8361
+ # key: "HappyFace.jpg",
8217
8362
  # })
8218
8363
  #
8219
8364
  # resp.to_h outputs the following:
8220
8365
  # {
8221
8366
  # accept_ranges: "bytes",
8222
- # content_length: 10,
8223
- # content_range: "bytes 0-9/43",
8224
- # content_type: "text/plain",
8225
- # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
8226
- # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
8367
+ # content_length: 3191,
8368
+ # content_type: "image/jpeg",
8369
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
8370
+ # last_modified: Time.parse("2016-12-15T01:19:41.000Z"),
8227
8371
  # metadata: {
8228
8372
  # },
8373
+ # tag_count: 2,
8229
8374
  # version_id: "null",
8230
8375
  # }
8231
8376
  #
8232
- # @example Example: To retrieve an object
8377
+ # @example Example: To retrieve a byte range of an object
8233
8378
  #
8234
- # # The following example retrieves an object for an S3 bucket.
8379
+ # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
8380
+ # # specific byte range.
8235
8381
  #
8236
8382
  # resp = client.get_object({
8237
8383
  # bucket: "examplebucket",
8238
- # key: "HappyFace.jpg",
8384
+ # key: "SampleFile.txt",
8385
+ # range: "bytes=0-9",
8239
8386
  # })
8240
8387
  #
8241
8388
  # resp.to_h outputs the following:
8242
8389
  # {
8243
8390
  # accept_ranges: "bytes",
8244
- # content_length: 3191,
8245
- # content_type: "image/jpeg",
8246
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
8247
- # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
8391
+ # content_length: 10,
8392
+ # content_range: "bytes 0-9/43",
8393
+ # content_type: "text/plain",
8394
+ # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
8395
+ # last_modified: Time.parse("2014-10-09T22:57:28.000Z"),
8248
8396
  # metadata: {
8249
8397
  # },
8250
- # tag_count: 2,
8251
8398
  # version_id: "null",
8252
8399
  # }
8253
8400
  #
@@ -8356,7 +8503,7 @@ module Aws::S3
8356
8503
  req.send_request(options, &block)
8357
8504
  end
8358
8505
 
8359
- # <note markdown="1"> This operation is not supported by directory buckets.
8506
+ # <note markdown="1"> This operation is not supported for directory buckets.
8360
8507
  #
8361
8508
  # </note>
8362
8509
  #
@@ -8578,7 +8725,6 @@ module Aws::S3
8578
8725
  # * If you don't have the `s3:ListBucket` permission, Amazon S3
8579
8726
  # returns an HTTP status code `403 Forbidden` ("access denied")
8580
8727
  # error.
8581
- #
8582
8728
  # * **Directory bucket permissions** - To grant access to this API
8583
8729
  # operation on a directory bucket, we recommend that you use the [
8584
8730
  # `CreateSession` ][3] API operation for session-based
@@ -8665,7 +8811,6 @@ module Aws::S3
8665
8811
  # * `If-Match` condition evaluates to `true`.
8666
8812
  #
8667
8813
  # * `If-Unmodified-Since` condition evaluates to `false`.
8668
- #
8669
8814
  # For more information about conditional requests, see [RFC
8670
8815
  # 7232][7].
8671
8816
  #
@@ -8676,7 +8821,6 @@ module Aws::S3
8676
8821
  # * `If-None-Match` condition evaluates to `false`.
8677
8822
  #
8678
8823
  # * `If-Modified-Since` condition evaluates to `true`.
8679
- #
8680
8824
  # For more information about conditional requests, see [RFC
8681
8825
  # 7232][7].
8682
8826
  #
@@ -8902,7 +9046,7 @@ module Aws::S3
8902
9046
  req.send_request(options)
8903
9047
  end
8904
9048
 
8905
- # <note markdown="1"> This operation is not supported by directory buckets.
9049
+ # <note markdown="1"> This operation is not supported for directory buckets.
8906
9050
  #
8907
9051
  # </note>
8908
9052
  #
@@ -8998,7 +9142,7 @@ module Aws::S3
8998
9142
  req.send_request(options)
8999
9143
  end
9000
9144
 
9001
- # <note markdown="1"> This operation is not supported by directory buckets.
9145
+ # <note markdown="1"> This operation is not supported for directory buckets.
9002
9146
  #
9003
9147
  # </note>
9004
9148
  #
@@ -9068,7 +9212,7 @@ module Aws::S3
9068
9212
  req.send_request(options)
9069
9213
  end
9070
9214
 
9071
- # <note markdown="1"> This operation is not supported by directory buckets.
9215
+ # <note markdown="1"> This operation is not supported for directory buckets.
9072
9216
  #
9073
9217
  # </note>
9074
9218
  #
@@ -9165,7 +9309,7 @@ module Aws::S3
9165
9309
  req.send_request(options)
9166
9310
  end
9167
9311
 
9168
- # <note markdown="1"> This operation is not supported by directory buckets.
9312
+ # <note markdown="1"> This operation is not supported for directory buckets.
9169
9313
  #
9170
9314
  # </note>
9171
9315
  #
@@ -9334,7 +9478,7 @@ module Aws::S3
9334
9478
  req.send_request(options)
9335
9479
  end
9336
9480
 
9337
- # <note markdown="1"> This operation is not supported by directory buckets.
9481
+ # <note markdown="1"> This operation is not supported for directory buckets.
9338
9482
  #
9339
9483
  # </note>
9340
9484
  #
@@ -9435,7 +9579,7 @@ module Aws::S3
9435
9579
  req.send_request(options, &block)
9436
9580
  end
9437
9581
 
9438
- # <note markdown="1"> This operation is not supported by directory buckets.
9582
+ # <note markdown="1"> This operation is not supported for directory buckets.
9439
9583
  #
9440
9584
  # </note>
9441
9585
  #
@@ -9726,7 +9870,6 @@ module Aws::S3
9726
9870
  #
9727
9871
  # * If you don’t have the `s3:ListBucket` permission, Amazon S3
9728
9872
  # returns an HTTP status code `403 Forbidden` error.
9729
- #
9730
9873
  # * **Directory bucket permissions** - To grant access to this API
9731
9874
  # operation on a directory bucket, we recommend that you use the [
9732
9875
  # `CreateSession` ][3] API operation for session-based
@@ -9798,7 +9941,7 @@ module Aws::S3
9798
9941
  # a `405 Method Not Allowed` error and the `Last-Modified:
9799
9942
  # timestamp` response header.
9800
9943
  #
9801
- # <note markdown="1"> * **Directory buckets** - Delete marker is not supported by
9944
+ # <note markdown="1"> * **Directory buckets** - Delete marker is not supported for
9802
9945
  # directory buckets.
9803
9946
  #
9804
9947
  # * **Directory buckets** - S3 Versioning isn't enabled and supported
@@ -10123,7 +10266,7 @@ module Aws::S3
10123
10266
  # content_length: 3191,
10124
10267
  # content_type: "image/jpeg",
10125
10268
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
10126
- # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
10269
+ # last_modified: Time.parse("2016-12-15T01:19:41.000Z"),
10127
10270
  # metadata: {
10128
10271
  # },
10129
10272
  # version_id: "null",
@@ -10209,7 +10352,7 @@ module Aws::S3
10209
10352
  req.send_request(options)
10210
10353
  end
10211
10354
 
10212
- # <note markdown="1"> This operation is not supported by directory buckets.
10355
+ # <note markdown="1"> This operation is not supported for directory buckets.
10213
10356
  #
10214
10357
  # </note>
10215
10358
  #
@@ -10310,7 +10453,7 @@ module Aws::S3
10310
10453
  req.send_request(options)
10311
10454
  end
10312
10455
 
10313
- # <note markdown="1"> This operation is not supported by directory buckets.
10456
+ # <note markdown="1"> This operation is not supported for directory buckets.
10314
10457
  #
10315
10458
  # </note>
10316
10459
  #
@@ -10402,7 +10545,7 @@ module Aws::S3
10402
10545
  req.send_request(options)
10403
10546
  end
10404
10547
 
10405
- # <note markdown="1"> This operation is not supported by directory buckets.
10548
+ # <note markdown="1"> This operation is not supported for directory buckets.
10406
10549
  #
10407
10550
  # </note>
10408
10551
  #
@@ -10504,7 +10647,7 @@ module Aws::S3
10504
10647
  req.send_request(options)
10505
10648
  end
10506
10649
 
10507
- # <note markdown="1"> This operation is not supported by directory buckets.
10650
+ # <note markdown="1"> This operation is not supported for directory buckets.
10508
10651
  #
10509
10652
  # </note>
10510
10653
  #
@@ -10606,17 +10749,26 @@ module Aws::S3
10606
10749
  req.send_request(options)
10607
10750
  end
10608
10751
 
10609
- # <note markdown="1"> This operation is not supported by directory buckets.
10752
+ # <note markdown="1"> This operation is not supported for directory buckets.
10610
10753
  #
10611
10754
  # </note>
10612
10755
  #
10613
10756
  # Returns a list of all buckets owned by the authenticated sender of the
10614
- # request. To use this operation, you must have the
10615
- # `s3:ListAllMyBuckets` permission.
10757
+ # request. To grant IAM permission to use this operation, you must add
10758
+ # the `s3:ListAllMyBuckets` policy action.
10616
10759
  #
10617
10760
  # For information about Amazon S3 buckets, see [Creating, configuring,
10618
10761
  # and working with Amazon S3 buckets][1].
10619
10762
  #
10763
+ # We strongly recommend using only paginated `ListBuckets` requests.
10764
+ # Unpaginated `ListBuckets` requests are only supported for Amazon Web
10765
+ # Services accounts set to the default general purpose bucket quota of
10766
+ # 10,000. If you have an approved general purpose bucket quota above
10767
+ # 10,000, you must send paginated `ListBuckets` requests to list your
10768
+ # account’s buckets. All unpaginated `ListBuckets` requests will be
10769
+ # rejected for Amazon Web Services accounts with a general purpose
10770
+ # bucket quota greater than 10,000.
10771
+ #
10620
10772
  #
10621
10773
  #
10622
10774
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html
@@ -10636,6 +10788,14 @@ module Aws::S3
10636
10788
  #
10637
10789
  # Required: No.
10638
10790
  #
10791
+ # <note markdown="1"> If you specify the `bucket-region`, `prefix`, or `continuation-token`
10792
+ # query parameters without using `max-buckets` to set the maximum number
10793
+ # of buckets returned in the response, Amazon S3 applies a default page
10794
+ # size of 10,000 and provides a continuation token if there are more
10795
+ # buckets.
10796
+ #
10797
+ # </note>
10798
+ #
10639
10799
  # @option params [String] :prefix
10640
10800
  # Limits the response to bucket names that begin with the specified
10641
10801
  # bucket name prefix.
@@ -10757,6 +10917,11 @@ module Aws::S3
10757
10917
  # : <b>Directory buckets </b> - The HTTP Host header syntax is
10758
10918
  # `s3express-control.region.amazonaws.com`.
10759
10919
  #
10920
+ # <note markdown="1"> The `BucketRegion` response element is not part of the
10921
+ # `ListDirectoryBuckets` Response Syntax.
10922
+ #
10923
+ # </note>
10924
+ #
10760
10925
  #
10761
10926
  #
10762
10927
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html
@@ -10815,7 +10980,7 @@ module Aws::S3
10815
10980
  # multipart uploads are aborted or completed. To delete these
10816
10981
  # in-progress multipart uploads, use the `ListMultipartUploads`
10817
10982
  # operation to list the in-progress multipart uploads in the bucket and
10818
- # use the `AbortMultupartUpload` operation to abort all the in-progress
10983
+ # use the `AbortMultipartUpload` operation to abort all the in-progress
10819
10984
  # multipart uploads.
10820
10985
  #
10821
10986
  # </note>
@@ -10888,7 +11053,6 @@ module Aws::S3
10888
11053
  # initiation time. Among uploads with the same key, the one that
10889
11054
  # was initiated first will appear before the ones that were
10890
11055
  # initiated later.
10891
- #
10892
11056
  # * **Directory bucket** - In the `ListMultipartUploads` response, the
10893
11057
  # multipart uploads aren't sorted lexicographically based on the
10894
11058
  # object keys.
@@ -11245,7 +11409,7 @@ module Aws::S3
11245
11409
  req.send_request(options)
11246
11410
  end
11247
11411
 
11248
- # <note markdown="1"> This operation is not supported by directory buckets.
11412
+ # <note markdown="1"> This operation is not supported for directory buckets.
11249
11413
  #
11250
11414
  # </note>
11251
11415
  #
@@ -11484,7 +11648,7 @@ module Aws::S3
11484
11648
  req.send_request(options)
11485
11649
  end
11486
11650
 
11487
- # <note markdown="1"> This operation is not supported by directory buckets.
11651
+ # <note markdown="1"> This operation is not supported for directory buckets.
11488
11652
  #
11489
11653
  # </note>
11490
11654
  #
@@ -12378,7 +12542,7 @@ module Aws::S3
12378
12542
  req.send_request(options)
12379
12543
  end
12380
12544
 
12381
- # <note markdown="1"> This operation is not supported by directory buckets.
12545
+ # <note markdown="1"> This operation is not supported for directory buckets.
12382
12546
  #
12383
12547
  # </note>
12384
12548
  #
@@ -12477,7 +12641,7 @@ module Aws::S3
12477
12641
  req.send_request(options)
12478
12642
  end
12479
12643
 
12480
- # <note markdown="1"> This operation is not supported by directory buckets.
12644
+ # <note markdown="1"> This operation is not supported for directory buckets.
12481
12645
  #
12482
12646
  # </note>
12483
12647
  #
@@ -12568,7 +12732,6 @@ module Aws::S3
12568
12732
  # General Reference.
12569
12733
  #
12570
12734
  # </note>
12571
- #
12572
12735
  # For example, the following `x-amz-grant-write` header grants
12573
12736
  # create, overwrite, and delete objects permission to LogDelivery
12574
12737
  # group predefined by Amazon S3 and two Amazon Web Services accounts
@@ -12771,7 +12934,7 @@ module Aws::S3
12771
12934
  req.send_request(options)
12772
12935
  end
12773
12936
 
12774
- # <note markdown="1"> This operation is not supported by directory buckets.
12937
+ # <note markdown="1"> This operation is not supported for directory buckets.
12775
12938
  #
12776
12939
  # </note>
12777
12940
  #
@@ -12809,14 +12972,12 @@ module Aws::S3
12809
12972
  # * *Code: InvalidArgument*
12810
12973
  #
12811
12974
  # * *Cause: Invalid argument.*
12812
- #
12813
12975
  # * * *HTTP Error: HTTP 400 Bad Request*
12814
12976
  #
12815
12977
  # * *Code: TooManyConfigurations*
12816
12978
  #
12817
12979
  # * *Cause: You are attempting to create a new configuration but have
12818
12980
  # already reached the 1,000-configuration limit.*
12819
- #
12820
12981
  # * * *HTTP Error: HTTP 403 Forbidden*
12821
12982
  #
12822
12983
  # * *Code: AccessDenied*
@@ -12909,7 +13070,7 @@ module Aws::S3
12909
13070
  req.send_request(options)
12910
13071
  end
12911
13072
 
12912
- # <note markdown="1"> This operation is not supported by directory buckets.
13073
+ # <note markdown="1"> This operation is not supported for directory buckets.
12913
13074
  #
12914
13075
  # </note>
12915
13076
  #
@@ -13118,7 +13279,6 @@ module Aws::S3
13118
13279
  # encryption][3] to SSE-KMS, you should verify that your KMS key ID
13119
13280
  # is correct. Amazon S3 doesn't validate the KMS key ID provided in
13120
13281
  # PutBucketEncryption requests.
13121
- #
13122
13282
  # * <b>Directory buckets </b> - You can optionally configure default
13123
13283
  # encryption for a bucket by using server-side encryption with Key
13124
13284
  # Management Service (KMS) keys (SSE-KMS).
@@ -13317,7 +13477,7 @@ module Aws::S3
13317
13477
  req.send_request(options)
13318
13478
  end
13319
13479
 
13320
- # <note markdown="1"> This operation is not supported by directory buckets.
13480
+ # <note markdown="1"> This operation is not supported for directory buckets.
13321
13481
  #
13322
13482
  # </note>
13323
13483
  #
@@ -13442,7 +13602,7 @@ module Aws::S3
13442
13602
  req.send_request(options)
13443
13603
  end
13444
13604
 
13445
- # <note markdown="1"> This operation is not supported by directory buckets.
13605
+ # <note markdown="1"> This operation is not supported for directory buckets.
13446
13606
  #
13447
13607
  # </note>
13448
13608
  #
@@ -13594,15 +13754,15 @@ module Aws::S3
13594
13754
  req.send_request(options)
13595
13755
  end
13596
13756
 
13597
- # <note markdown="1"> This operation is not supported by directory buckets.
13598
- #
13599
- # </note>
13600
- #
13601
13757
  # For an updated version of this API, see
13602
13758
  # [PutBucketLifecycleConfiguration][1]. This version has been
13603
13759
  # deprecated. Existing lifecycle configurations will work. For new
13604
13760
  # lifecycle configurations, use the updated API.
13605
13761
  #
13762
+ # <note markdown="1"> This operation is not supported for directory buckets.
13763
+ #
13764
+ # </note>
13765
+ #
13606
13766
  # Creates a new lifecycle configuration for the bucket or replaces an
13607
13767
  # existing lifecycle configuration. For information about lifecycle
13608
13768
  # configuration, see [Object Lifecycle Management][2] in the *Amazon S3
@@ -13745,10 +13905,6 @@ module Aws::S3
13745
13905
  req.send_request(options)
13746
13906
  end
13747
13907
 
13748
- # <note markdown="1"> This operation is not supported by directory buckets.
13749
- #
13750
- # </note>
13751
- #
13752
13908
  # Creates a new lifecycle configuration for the bucket or replaces an
13753
13909
  # existing lifecycle configuration. Keep in mind that this will
13754
13910
  # overwrite an existing lifecycle configuration, so if you want to
@@ -13757,6 +13913,8 @@ module Aws::S3
13757
13913
  # configuration, see [Managing your storage lifecycle][1].
13758
13914
  #
13759
13915
  # Rules
13916
+ # Permissions
13917
+ # HTTP Host header syntax
13760
13918
  #
13761
13919
  # : You specify the lifecycle configuration in your request body. The
13762
13920
  # lifecycle configuration is specified as XML consisting of one or
@@ -13768,8 +13926,14 @@ module Aws::S3
13768
13926
  # size, or any combination of these. Accordingly, this section
13769
13927
  # describes the latest API. The previous version of the API supported
13770
13928
  # filtering based only on an object key name prefix, which is
13771
- # supported for backward compatibility. For the related API
13772
- # description, see [PutBucketLifecycle][2].
13929
+ # supported for backward compatibility for general purpose buckets.
13930
+ # For the related API description, see [PutBucketLifecycle][2].
13931
+ #
13932
+ # <note markdown="1"> Lifecyle configurations for directory buckets only support expiring
13933
+ # objects and cancelling multipart uploads. Expiring of versioned
13934
+ # objects,transitions and tag filters are not supported.
13935
+ #
13936
+ # </note>
13773
13937
  #
13774
13938
  # A lifecycle rule consists of the following:
13775
13939
  #
@@ -13789,40 +13953,61 @@ module Aws::S3
13789
13953
  #
13790
13954
  # For more information, see [Object Lifecycle Management][3] and
13791
13955
  # [Lifecycle Configuration Elements][4].
13956
+ # : * **General purpose bucket permissions** - By default, all Amazon S3
13957
+ # resources are private, including buckets, objects, and related
13958
+ # subresources (for example, lifecycle configuration and website
13959
+ # configuration). Only the resource owner (that is, the Amazon Web
13960
+ # Services account that created it) can access the resource. The
13961
+ # resource owner can optionally grant access permissions to others
13962
+ # by writing an access policy. For this operation, a user must have
13963
+ # the `s3:PutLifecycleConfiguration` permission.
13792
13964
  #
13793
- # Permissions
13965
+ # You can also explicitly deny permissions. An explicit deny also
13966
+ # supersedes any other permissions. If you want to block users or
13967
+ # accounts from removing or deleting objects from your bucket, you
13968
+ # must deny them permissions for the following actions:
13969
+ #
13970
+ # * `s3:DeleteObject`
13794
13971
  #
13795
- # : By default, all Amazon S3 resources are private, including buckets,
13796
- # objects, and related subresources (for example, lifecycle
13797
- # configuration and website configuration). Only the resource owner
13798
- # (that is, the Amazon Web Services account that created it) can
13799
- # access the resource. The resource owner can optionally grant access
13800
- # permissions to others by writing an access policy. For this
13801
- # operation, a user must get the `s3:PutLifecycleConfiguration`
13802
- # permission.
13972
+ # * `s3:DeleteObjectVersion`
13803
13973
  #
13804
- # You can also explicitly deny permissions. An explicit deny also
13805
- # supersedes any other permissions. If you want to block users or
13806
- # accounts from removing or deleting objects from your bucket, you
13807
- # must deny them permissions for the following actions:
13974
+ # * `s3:PutLifecycleConfiguration`
13808
13975
  #
13809
- # * `s3:DeleteObject`
13976
+ # For more information about permissions, see [Managing Access
13977
+ # Permissions to Your Amazon S3 Resources][5].
13978
+ # ^
13810
13979
  #
13811
- # * `s3:DeleteObjectVersion`
13980
+ # * **Directory bucket permissions** - You must have the
13981
+ # `s3express:PutLifecycleConfiguration` permission in an IAM
13982
+ # identity-based policy to use this operation. Cross-account access
13983
+ # to this API operation isn't supported. The resource owner can
13984
+ # optionally grant access permissions to others by creating a role
13985
+ # or user for them as long as they are within the same account as
13986
+ # the owner and resource.
13987
+ #
13988
+ # For more information about directory bucket policies and
13989
+ # permissions, see [Authorizing Regional endpoint APIs with IAM][6]
13990
+ # in the *Amazon S3 User Guide*.
13812
13991
  #
13813
- # * `s3:PutLifecycleConfiguration`
13992
+ # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
13993
+ # requests for this API operation to the Regional endpoint. These
13994
+ # endpoints support path-style requests in the format
13995
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name
13996
+ # `. Virtual-hosted-style requests aren't supported. For more
13997
+ # information, see [Regional and Zonal endpoints][7] in the *Amazon
13998
+ # S3 User Guide*.
13814
13999
  #
13815
- # For more information about permissions, see [Managing Access
13816
- # Permissions to Your Amazon S3 Resources][5].
14000
+ # </note>
13817
14001
  #
13818
- # The following operations are related to
13819
- # `PutBucketLifecycleConfiguration`:
14002
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is
14003
+ # `s3express-control.region.amazonaws.com`.
13820
14004
  #
13821
- # * [Examples of Lifecycle Configuration][6]
14005
+ # The following operations are related to
14006
+ # `PutBucketLifecycleConfiguration`:
13822
14007
  #
13823
- # * [GetBucketLifecycleConfiguration][7]
14008
+ # * [GetBucketLifecycleConfiguration][8]
13824
14009
  #
13825
- # * [DeleteBucketLifecycle][8]
14010
+ # * [DeleteBucketLifecycle][9]
13826
14011
  #
13827
14012
  #
13828
14013
  #
@@ -13831,9 +14016,10 @@ module Aws::S3
13831
14016
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
13832
14017
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html
13833
14018
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
13834
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-configuration-examples.html
13835
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
13836
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html
14019
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
14020
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
14021
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
14022
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html
13837
14023
  #
13838
14024
  # @option params [required, String] :bucket
13839
14025
  # The name of the bucket for which to set the configuration.
@@ -13862,10 +14048,20 @@ module Aws::S3
13862
14048
  # you provide does not match the actual owner of the bucket, the request
13863
14049
  # fails with the HTTP status code `403 Forbidden` (access denied).
13864
14050
  #
14051
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
14052
+ # supported for directory bucket lifecycle configurations.
14053
+ #
14054
+ # </note>
14055
+ #
13865
14056
  # @option params [String] :transition_default_minimum_object_size
13866
14057
  # Indicates which default minimum object size behavior is applied to the
13867
14058
  # lifecycle configuration.
13868
14059
  #
14060
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
14061
+ # supported for directory bucket lifecycle configurations.
14062
+ #
14063
+ # </note>
14064
+ #
13869
14065
  # * `all_storage_classes_128K` - Objects smaller than 128 KB will not
13870
14066
  # transition to any storage class by default.
13871
14067
  #
@@ -13989,7 +14185,7 @@ module Aws::S3
13989
14185
  req.send_request(options)
13990
14186
  end
13991
14187
 
13992
- # <note markdown="1"> This operation is not supported by directory buckets.
14188
+ # <note markdown="1"> This operation is not supported for directory buckets.
13993
14189
  #
13994
14190
  # </note>
13995
14191
  #
@@ -14172,7 +14368,7 @@ module Aws::S3
14172
14368
  req.send_request(options)
14173
14369
  end
14174
14370
 
14175
- # <note markdown="1"> This operation is not supported by directory buckets.
14371
+ # <note markdown="1"> This operation is not supported for directory buckets.
14176
14372
  #
14177
14373
  # </note>
14178
14374
  #
@@ -14276,7 +14472,7 @@ module Aws::S3
14276
14472
  req.send_request(options)
14277
14473
  end
14278
14474
 
14279
- # <note markdown="1"> This operation is not supported by directory buckets.
14475
+ # <note markdown="1"> This operation is not supported for directory buckets.
14280
14476
  #
14281
14477
  # </note>
14282
14478
  #
@@ -14362,7 +14558,7 @@ module Aws::S3
14362
14558
  req.send_request(options)
14363
14559
  end
14364
14560
 
14365
- # <note markdown="1"> This operation is not supported by directory buckets.
14561
+ # <note markdown="1"> This operation is not supported for directory buckets.
14366
14562
  #
14367
14563
  # </note>
14368
14564
  #
@@ -14546,7 +14742,7 @@ module Aws::S3
14546
14742
  req.send_request(options)
14547
14743
  end
14548
14744
 
14549
- # <note markdown="1"> This operation is not supported by directory buckets.
14745
+ # <note markdown="1"> This operation is not supported for directory buckets.
14550
14746
  #
14551
14747
  # </note>
14552
14748
  #
@@ -14815,7 +15011,7 @@ module Aws::S3
14815
15011
  req.send_request(options)
14816
15012
  end
14817
15013
 
14818
- # <note markdown="1"> This operation is not supported by directory buckets.
15014
+ # <note markdown="1"> This operation is not supported for directory buckets.
14819
15015
  #
14820
15016
  # </note>
14821
15017
  #
@@ -15053,7 +15249,7 @@ module Aws::S3
15053
15249
  req.send_request(options)
15054
15250
  end
15055
15251
 
15056
- # <note markdown="1"> This operation is not supported by directory buckets.
15252
+ # <note markdown="1"> This operation is not supported for directory buckets.
15057
15253
  #
15058
15254
  # </note>
15059
15255
  #
@@ -15150,7 +15346,7 @@ module Aws::S3
15150
15346
  req.send_request(options)
15151
15347
  end
15152
15348
 
15153
- # <note markdown="1"> This operation is not supported by directory buckets.
15349
+ # <note markdown="1"> This operation is not supported for directory buckets.
15154
15350
  #
15155
15351
  # </note>
15156
15352
  #
@@ -15301,15 +15497,17 @@ module Aws::S3
15301
15497
  req.send_request(options)
15302
15498
  end
15303
15499
 
15304
- # <note markdown="1"> This operation is not supported by directory buckets.
15500
+ # <note markdown="1"> This operation is not supported for directory buckets.
15305
15501
  #
15306
15502
  # </note>
15307
15503
  #
15308
15504
  # <note markdown="1"> When you enable versioning on a bucket for the first time, it might
15309
- # take a short amount of time for the change to be fully propagated. We
15310
- # recommend that you wait for 15 minutes after enabling versioning
15311
- # before issuing write operations (`PUT` or `DELETE`) on objects in the
15312
- # bucket.
15505
+ # take a short amount of time for the change to be fully propagated.
15506
+ # While this change is propagating, you may encounter intermittent `HTTP
15507
+ # 404 NoSuchKey` errors for requests to objects created or updated after
15508
+ # enabling versioning. We recommend that you wait for 15 minutes after
15509
+ # enabling versioning before issuing write operations (`PUT` or
15510
+ # `DELETE`) on objects in the bucket.
15313
15511
  #
15314
15512
  # </note>
15315
15513
  #
@@ -15440,7 +15638,7 @@ module Aws::S3
15440
15638
  req.send_request(options)
15441
15639
  end
15442
15640
 
15443
- # <note markdown="1"> This operation is not supported by directory buckets.
15641
+ # <note markdown="1"> This operation is not supported for directory buckets.
15444
15642
  #
15445
15643
  # </note>
15446
15644
  #
@@ -15690,7 +15888,6 @@ module Aws::S3
15690
15888
  # * <b> <code>s3:PutObjectTagging</code> </b> - To successfully set
15691
15889
  # the tag-set with your `PutObject` request, you must have the
15692
15890
  # `s3:PutObjectTagging`.
15693
- #
15694
15891
  # * **Directory bucket permissions** - To grant access to this API
15695
15892
  # operation on a directory bucket, we recommend that you use the [
15696
15893
  # `CreateSession` ][5] API operation for session-based
@@ -16000,6 +16197,26 @@ module Aws::S3
16000
16197
  #
16001
16198
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
16002
16199
  #
16200
+ # @option params [String] :if_match
16201
+ # Uploads the object only if the ETag (entity tag) value provided during
16202
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
16203
+ # values do not match, the operation returns a `412 Precondition Failed`
16204
+ # error.
16205
+ #
16206
+ # If a conflicting operation occurs during the upload S3 returns a `409
16207
+ # ConditionalRequestConflict` response. On a 409 failure you should
16208
+ # fetch the object's ETag and retry the upload.
16209
+ #
16210
+ # Expects the ETag value as a string.
16211
+ #
16212
+ # For more information about conditional requests, see [RFC 7232][1], or
16213
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
16214
+ #
16215
+ #
16216
+ #
16217
+ # [1]: https://tools.ietf.org/html/rfc7232
16218
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
16219
+ #
16003
16220
  # @option params [String] :if_none_match
16004
16221
  # Uploads the object only if the object key name does not already exist
16005
16222
  # in the bucket specified. Otherwise, Amazon S3 returns a `412
@@ -16059,6 +16276,17 @@ module Aws::S3
16059
16276
  # @option params [required, String] :key
16060
16277
  # Object key for which the PUT action was initiated.
16061
16278
  #
16279
+ # @option params [Integer] :write_offset_bytes
16280
+ # Specifies the offset for appending data to existing objects in bytes.
16281
+ # The offset must be equal to the size of the existing object being
16282
+ # appended to. If no object exists, setting this header to 0 will create
16283
+ # a new object.
16284
+ #
16285
+ # <note markdown="1"> This functionality is only supported for objects in the Amazon S3
16286
+ # Express One Zone storage class in directory buckets.
16287
+ #
16288
+ # </note>
16289
+ #
16062
16290
  # @option params [Hash<String,String>] :metadata
16063
16291
  # A map of metadata to store with the object in S3.
16064
16292
  #
@@ -16361,61 +16589,84 @@ module Aws::S3
16361
16589
  # * {Types::PutObjectOutput#ssekms_key_id #ssekms_key_id} => String
16362
16590
  # * {Types::PutObjectOutput#ssekms_encryption_context #ssekms_encryption_context} => String
16363
16591
  # * {Types::PutObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean
16592
+ # * {Types::PutObjectOutput#size #size} => Integer
16364
16593
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
16365
16594
  #
16366
16595
  #
16367
- # @example Example: To create an object.
16596
+ # @example Example: To upload an object and specify server-side encryption and object tags
16368
16597
  #
16369
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
16598
+ # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
16599
+ # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
16370
16600
  #
16371
16601
  # resp = client.put_object({
16372
16602
  # body: "filetoupload",
16373
16603
  # bucket: "examplebucket",
16374
- # key: "objectkey",
16604
+ # key: "exampleobject",
16605
+ # server_side_encryption: "AES256",
16606
+ # tagging: "key1=value1&key2=value2",
16375
16607
  # })
16376
16608
  #
16377
16609
  # resp.to_h outputs the following:
16378
16610
  # {
16379
16611
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16380
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
16612
+ # server_side_encryption: "AES256",
16613
+ # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
16381
16614
  # }
16382
16615
  #
16383
- # @example Example: To upload object and specify user-defined metadata
16616
+ # @example Example: To upload an object
16384
16617
  #
16385
- # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
16386
- # # enabled, S3 returns version ID in response.
16618
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
16619
+ # # syntax. S3 returns VersionId of the newly created object.
16387
16620
  #
16388
16621
  # resp = client.put_object({
16389
- # body: "filetoupload",
16622
+ # body: "HappyFace.jpg",
16390
16623
  # bucket: "examplebucket",
16391
- # key: "exampleobject",
16392
- # metadata: {
16393
- # "metadata1" => "value1",
16394
- # "metadata2" => "value2",
16395
- # },
16624
+ # key: "HappyFace.jpg",
16396
16625
  # })
16397
16626
  #
16398
16627
  # resp.to_h outputs the following:
16399
16628
  # {
16400
16629
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16401
- # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
16630
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
16402
16631
  # }
16403
16632
  #
16404
- # @example Example: To upload an object
16633
+ # @example Example: To upload an object and specify optional tags
16405
16634
  #
16406
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
16407
- # # syntax. S3 returns VersionId of the newly created object.
16635
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
16636
+ # # S3 returns version ID of the newly created object.
16408
16637
  #
16409
16638
  # resp = client.put_object({
16410
- # body: "HappyFace.jpg",
16639
+ # body: "c:\\HappyFace.jpg",
16411
16640
  # bucket: "examplebucket",
16412
16641
  # key: "HappyFace.jpg",
16642
+ # tagging: "key1=value1&key2=value2",
16413
16643
  # })
16414
16644
  #
16415
16645
  # resp.to_h outputs the following:
16416
16646
  # {
16417
16647
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16418
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
16648
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
16649
+ # }
16650
+ #
16651
+ # @example Example: To upload object and specify user-defined metadata
16652
+ #
16653
+ # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
16654
+ # # enabled, S3 returns version ID in response.
16655
+ #
16656
+ # resp = client.put_object({
16657
+ # body: "filetoupload",
16658
+ # bucket: "examplebucket",
16659
+ # key: "exampleobject",
16660
+ # metadata: {
16661
+ # "metadata1" => "value1",
16662
+ # "metadata2" => "value2",
16663
+ # },
16664
+ # })
16665
+ #
16666
+ # resp.to_h outputs the following:
16667
+ # {
16668
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16669
+ # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
16419
16670
  # }
16420
16671
  #
16421
16672
  # @example Example: To upload an object and specify canned ACL.
@@ -16456,42 +16707,20 @@ module Aws::S3
16456
16707
  # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
16457
16708
  # }
16458
16709
  #
16459
- # @example Example: To upload an object and specify optional tags
16460
- #
16461
- # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
16462
- # # S3 returns version ID of the newly created object.
16463
- #
16464
- # resp = client.put_object({
16465
- # body: "c:\\HappyFace.jpg",
16466
- # bucket: "examplebucket",
16467
- # key: "HappyFace.jpg",
16468
- # tagging: "key1=value1&key2=value2",
16469
- # })
16470
- #
16471
- # resp.to_h outputs the following:
16472
- # {
16473
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16474
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
16475
- # }
16476
- #
16477
- # @example Example: To upload an object and specify server-side encryption and object tags
16710
+ # @example Example: To create an object.
16478
16711
  #
16479
- # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
16480
- # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
16712
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
16481
16713
  #
16482
16714
  # resp = client.put_object({
16483
16715
  # body: "filetoupload",
16484
16716
  # bucket: "examplebucket",
16485
- # key: "exampleobject",
16486
- # server_side_encryption: "AES256",
16487
- # tagging: "key1=value1&key2=value2",
16717
+ # key: "objectkey",
16488
16718
  # })
16489
16719
  #
16490
16720
  # resp.to_h outputs the following:
16491
16721
  # {
16492
16722
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16493
- # server_side_encryption: "AES256",
16494
- # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
16723
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
16495
16724
  # }
16496
16725
  #
16497
16726
  # @example Streaming a file from disk
@@ -16519,12 +16748,14 @@ module Aws::S3
16519
16748
  # checksum_sha1: "ChecksumSHA1",
16520
16749
  # checksum_sha256: "ChecksumSHA256",
16521
16750
  # expires: Time.now,
16751
+ # if_match: "IfMatch",
16522
16752
  # if_none_match: "IfNoneMatch",
16523
16753
  # grant_full_control: "GrantFullControl",
16524
16754
  # grant_read: "GrantRead",
16525
16755
  # grant_read_acp: "GrantReadACP",
16526
16756
  # grant_write_acp: "GrantWriteACP",
16527
16757
  # key: "ObjectKey", # required
16758
+ # write_offset_bytes: 1,
16528
16759
  # metadata: {
16529
16760
  # "MetadataKey" => "MetadataValue",
16530
16761
  # },
@@ -16560,6 +16791,7 @@ module Aws::S3
16560
16791
  # resp.ssekms_key_id #=> String
16561
16792
  # resp.ssekms_encryption_context #=> String
16562
16793
  # resp.bucket_key_enabled #=> Boolean
16794
+ # resp.size #=> Integer
16563
16795
  # resp.request_charged #=> String, one of "requester"
16564
16796
  #
16565
16797
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject AWS API Documentation
@@ -16571,7 +16803,7 @@ module Aws::S3
16571
16803
  req.send_request(options)
16572
16804
  end
16573
16805
 
16574
- # <note markdown="1"> This operation is not supported by directory buckets.
16806
+ # <note markdown="1"> This operation is not supported for directory buckets.
16575
16807
  #
16576
16808
  # </note>
16577
16809
  #
@@ -16655,7 +16887,6 @@ module Aws::S3
16655
16887
  # General Reference.
16656
16888
  #
16657
16889
  # </note>
16658
- #
16659
16890
  # For example, the following `x-amz-grant-read` header grants list
16660
16891
  # objects permission to the two Amazon Web Services accounts
16661
16892
  # identified by their email addresses.
@@ -16941,7 +17172,7 @@ module Aws::S3
16941
17172
  req.send_request(options)
16942
17173
  end
16943
17174
 
16944
- # <note markdown="1"> This operation is not supported by directory buckets.
17175
+ # <note markdown="1"> This operation is not supported for directory buckets.
16945
17176
  #
16946
17177
  # </note>
16947
17178
  #
@@ -17060,7 +17291,7 @@ module Aws::S3
17060
17291
  req.send_request(options)
17061
17292
  end
17062
17293
 
17063
- # <note markdown="1"> This operation is not supported by directory buckets.
17294
+ # <note markdown="1"> This operation is not supported for directory buckets.
17064
17295
  #
17065
17296
  # </note>
17066
17297
  #
@@ -17179,7 +17410,7 @@ module Aws::S3
17179
17410
  req.send_request(options)
17180
17411
  end
17181
17412
 
17182
- # <note markdown="1"> This operation is not supported by directory buckets.
17413
+ # <note markdown="1"> This operation is not supported for directory buckets.
17183
17414
  #
17184
17415
  # </note>
17185
17416
  #
@@ -17308,7 +17539,7 @@ module Aws::S3
17308
17539
  req.send_request(options)
17309
17540
  end
17310
17541
 
17311
- # <note markdown="1"> This operation is not supported by directory buckets.
17542
+ # <note markdown="1"> This operation is not supported for directory buckets.
17312
17543
  #
17313
17544
  # </note>
17314
17545
  #
@@ -17507,7 +17738,7 @@ module Aws::S3
17507
17738
  req.send_request(options)
17508
17739
  end
17509
17740
 
17510
- # <note markdown="1"> This operation is not supported by directory buckets.
17741
+ # <note markdown="1"> This operation is not supported for directory buckets.
17511
17742
  #
17512
17743
  # </note>
17513
17744
  #
@@ -17615,7 +17846,7 @@ module Aws::S3
17615
17846
  req.send_request(options)
17616
17847
  end
17617
17848
 
17618
- # <note markdown="1"> This operation is not supported by directory buckets.
17849
+ # <note markdown="1"> This operation is not supported for directory buckets.
17619
17850
  #
17620
17851
  # </note>
17621
17852
  #
@@ -17761,7 +17992,6 @@ module Aws::S3
17761
17992
  # * *HTTP Status Code: 409 Conflict*
17762
17993
  #
17763
17994
  # * *SOAP Fault Code Prefix: Client*
17764
- #
17765
17995
  # * * *Code: GlacierExpeditedRetrievalNotAvailable*
17766
17996
  #
17767
17997
  # * *Cause: expedited retrievals are currently not available. Try
@@ -18000,7 +18230,7 @@ module Aws::S3
18000
18230
  req.send_request(options)
18001
18231
  end
18002
18232
 
18003
- # <note markdown="1"> This operation is not supported by directory buckets.
18233
+ # <note markdown="1"> This operation is not supported for directory buckets.
18004
18234
  #
18005
18235
  # </note>
18006
18236
  #
@@ -18548,7 +18778,6 @@ module Aws::S3
18548
18778
  # * x-amz-server-side-encryption-customer-key
18549
18779
  #
18550
18780
  # * x-amz-server-side-encryption-customer-key-MD5
18551
- #
18552
18781
  # For more information, see [Using Server-Side Encryption][11] in
18553
18782
  # the *Amazon S3 User Guide*.
18554
18783
  #
@@ -18949,7 +19178,6 @@ module Aws::S3
18949
19178
  # permissions required to use the multipart upload API, see
18950
19179
  # [Multipart upload and permissions][8] and [Multipart upload API
18951
19180
  # and permissions][9] in the *Amazon S3 User Guide*.
18952
- #
18953
19181
  # * **Directory bucket permissions** - You must have permissions in a
18954
19182
  # bucket policy or an IAM identity-based policy based on the source
18955
19183
  # and destination bucket types in an `UploadPartCopy` operation.
@@ -18967,7 +19195,6 @@ module Aws::S3
18967
19195
  # `Action` element of a policy to write the object to the
18968
19196
  # destination. The `s3express:SessionMode` condition key cannot be
18969
19197
  # set to `ReadOnly` on the copy destination.
18970
- #
18971
19198
  # If the object is encrypted with SSE-KMS, you must also have the
18972
19199
  # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
18973
19200
  # identity-based policies and KMS key policies for the KMS key.
@@ -19012,7 +19239,6 @@ module Aws::S3
19012
19239
  # been aborted or completed.
19013
19240
  #
19014
19241
  # * HTTP Status Code: 404 Not Found
19015
- #
19016
19242
  # * Error Code: `InvalidRequest`
19017
19243
  #
19018
19244
  # * Description: The specified copy source is not supported as a
@@ -19345,45 +19571,45 @@ module Aws::S3
19345
19571
  # * {Types::UploadPartCopyOutput#request_charged #request_charged} => String
19346
19572
  #
19347
19573
  #
19348
- # @example Example: To upload a part by copying byte range from an existing object as data source
19574
+ # @example Example: To upload a part by copying data from an existing object as data source
19349
19575
  #
19350
- # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
19351
- # # data source.
19576
+ # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
19352
19577
  #
19353
19578
  # resp = client.upload_part_copy({
19354
19579
  # bucket: "examplebucket",
19355
19580
  # copy_source: "/bucketname/sourceobjectkey",
19356
- # copy_source_range: "bytes=1-100000",
19357
19581
  # key: "examplelargeobject",
19358
- # part_number: 2,
19582
+ # part_number: 1,
19359
19583
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
19360
19584
  # })
19361
19585
  #
19362
19586
  # resp.to_h outputs the following:
19363
19587
  # {
19364
19588
  # copy_part_result: {
19365
- # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
19366
- # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
19589
+ # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
19590
+ # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
19367
19591
  # },
19368
19592
  # }
19369
19593
  #
19370
- # @example Example: To upload a part by copying data from an existing object as data source
19594
+ # @example Example: To upload a part by copying byte range from an existing object as data source
19371
19595
  #
19372
- # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
19596
+ # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
19597
+ # # data source.
19373
19598
  #
19374
19599
  # resp = client.upload_part_copy({
19375
19600
  # bucket: "examplebucket",
19376
19601
  # copy_source: "/bucketname/sourceobjectkey",
19602
+ # copy_source_range: "bytes=1-100000",
19377
19603
  # key: "examplelargeobject",
19378
- # part_number: 1,
19604
+ # part_number: 2,
19379
19605
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
19380
19606
  # })
19381
19607
  #
19382
19608
  # resp.to_h outputs the following:
19383
19609
  # {
19384
19610
  # copy_part_result: {
19385
- # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
19386
- # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
19611
+ # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
19612
+ # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
19387
19613
  # },
19388
19614
  # }
19389
19615
  #
@@ -19436,7 +19662,7 @@ module Aws::S3
19436
19662
  req.send_request(options)
19437
19663
  end
19438
19664
 
19439
- # <note markdown="1"> This operation is not supported by directory buckets.
19665
+ # <note markdown="1"> This operation is not supported for directory buckets.
19440
19666
  #
19441
19667
  # </note>
19442
19668
  #
@@ -19845,7 +20071,7 @@ module Aws::S3
19845
20071
  tracer: tracer
19846
20072
  )
19847
20073
  context[:gem_name] = 'aws-sdk-s3'
19848
- context[:gem_version] = '1.169.0'
20074
+ context[:gem_version] = '1.174.0'
19849
20075
  Seahorse::Client::Request.new(handlers, context)
19850
20076
  end
19851
20077