aws-sdk-s3 1.170.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.
@@ -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
@@ -1254,7 +1264,6 @@ module Aws::S3
1254
1264
  # * If the destination bucket is a general purpose bucket, you must
1255
1265
  # have <b> <code>s3:PutObject</code> </b> permission to write the
1256
1266
  # object copy to the destination bucket.
1257
- #
1258
1267
  # * **Directory bucket permissions** - You must have permissions in a
1259
1268
  # bucket policy or an IAM identity-based policy based on the source
1260
1269
  # and destination bucket types in a `CopyObject` operation.
@@ -1272,7 +1281,6 @@ module Aws::S3
1272
1281
  # `Action` element of a policy to write the object to the
1273
1282
  # destination. The `s3express:SessionMode` condition key can't be
1274
1283
  # set to `ReadOnly` on the copy destination bucket.
1275
- #
1276
1284
  # If the object is encrypted with SSE-KMS, you must also have the
1277
1285
  # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
1278
1286
  # identity-based policies and KMS key policies for the KMS key.
@@ -2309,7 +2317,6 @@ module Aws::S3
2309
2317
  # more information about S3 Block Public Access, see [Blocking
2310
2318
  # public access to your Amazon S3 storage ][6] in the *Amazon S3
2311
2319
  # User Guide*.
2312
- #
2313
2320
  # * **Directory bucket permissions** - You must have the
2314
2321
  # `s3express:CreateBucket` permission in an IAM identity-based
2315
2322
  # policy instead of a bucket policy. Cross-account access to this
@@ -2477,33 +2484,33 @@ module Aws::S3
2477
2484
  # * {Types::CreateBucketOutput#location #location} => String
2478
2485
  #
2479
2486
  #
2480
- # @example Example: To create a bucket in a specific region
2487
+ # @example Example: To create a bucket
2481
2488
  #
2482
- # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2489
+ # # The following example creates a bucket.
2483
2490
  #
2484
2491
  # resp = client.create_bucket({
2485
2492
  # bucket: "examplebucket",
2486
- # create_bucket_configuration: {
2487
- # location_constraint: "eu-west-1",
2488
- # },
2489
2493
  # })
2490
2494
  #
2491
2495
  # resp.to_h outputs the following:
2492
2496
  # {
2493
- # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2497
+ # location: "/examplebucket",
2494
2498
  # }
2495
2499
  #
2496
- # @example Example: To create a bucket
2500
+ # @example Example: To create a bucket in a specific region
2497
2501
  #
2498
- # # The following example creates a bucket.
2502
+ # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2499
2503
  #
2500
2504
  # resp = client.create_bucket({
2501
2505
  # bucket: "examplebucket",
2506
+ # create_bucket_configuration: {
2507
+ # location_constraint: "eu-west-1",
2508
+ # },
2502
2509
  # })
2503
2510
  #
2504
2511
  # resp.to_h outputs the following:
2505
2512
  # {
2506
- # location: "/examplebucket",
2513
+ # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2507
2514
  # }
2508
2515
  #
2509
2516
  # @example Request syntax with placeholder values
@@ -2660,7 +2667,6 @@ module Aws::S3
2660
2667
  # * `x-amz-server-side-encryption-aws-kms-key-id`
2661
2668
  #
2662
2669
  # * `x-amz-server-side-encryption-context`
2663
- #
2664
2670
  # <note markdown="1"> * If you specify `x-amz-server-side-encryption:aws:kms`, but
2665
2671
  # don't provide `x-amz-server-side-encryption-aws-kms-key-id`,
2666
2672
  # Amazon S3 uses the Amazon Web Services managed key (`aws/s3`
@@ -2706,12 +2712,10 @@ module Aws::S3
2706
2712
  # * `x-amz-server-side-encryption-customer-key`
2707
2713
  #
2708
2714
  # * `x-amz-server-side-encryption-customer-key-MD5`
2709
- #
2710
2715
  # For more information about server-side encryption with
2711
2716
  # customer-provided encryption keys (SSE-C), see [ Protecting data
2712
2717
  # using server-side encryption with customer-provided encryption
2713
2718
  # keys (SSE-C)][11] in the *Amazon S3 User Guide*.
2714
- #
2715
2719
  # * **Directory buckets** - For directory buckets, there are only two
2716
2720
  # supported options for server-side encryption: server-side
2717
2721
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
@@ -3885,7 +3889,7 @@ module Aws::S3
3885
3889
  req.send_request(options)
3886
3890
  end
3887
3891
 
3888
- # <note markdown="1"> This operation is not supported by directory buckets.
3892
+ # <note markdown="1"> This operation is not supported for directory buckets.
3889
3893
  #
3890
3894
  # </note>
3891
3895
  #
@@ -3951,7 +3955,7 @@ module Aws::S3
3951
3955
  req.send_request(options)
3952
3956
  end
3953
3957
 
3954
- # <note markdown="1"> This operation is not supported by directory buckets.
3958
+ # <note markdown="1"> This operation is not supported for directory buckets.
3955
3959
  #
3956
3960
  # </note>
3957
3961
  #
@@ -4115,7 +4119,7 @@ module Aws::S3
4115
4119
  req.send_request(options)
4116
4120
  end
4117
4121
 
4118
- # <note markdown="1"> This operation is not supported by directory buckets.
4122
+ # <note markdown="1"> This operation is not supported for directory buckets.
4119
4123
  #
4120
4124
  # </note>
4121
4125
  #
@@ -4182,7 +4186,7 @@ module Aws::S3
4182
4186
  req.send_request(options)
4183
4187
  end
4184
4188
 
4185
- # <note markdown="1"> This operation is not supported by directory buckets.
4189
+ # <note markdown="1"> This operation is not supported for directory buckets.
4186
4190
  #
4187
4191
  # </note>
4188
4192
  #
@@ -4247,38 +4251,71 @@ module Aws::S3
4247
4251
  req.send_request(options)
4248
4252
  end
4249
4253
 
4250
- # <note markdown="1"> This operation is not supported by directory buckets.
4251
- #
4252
- # </note>
4253
- #
4254
4254
  # Deletes the lifecycle configuration from the specified bucket. Amazon
4255
4255
  # S3 removes all the lifecycle configuration rules in the lifecycle
4256
4256
  # subresource associated with the bucket. Your objects never expire, and
4257
4257
  # Amazon S3 no longer automatically deletes any objects on the basis of
4258
4258
  # rules contained in the deleted lifecycle configuration.
4259
4259
  #
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.
4260
+ # Permissions
4261
+ # : * **General purpose bucket permissions** - By default, all Amazon S3
4262
+ # resources are private, including buckets, objects, and related
4263
+ # subresources (for example, lifecycle configuration and website
4264
+ # configuration). Only the resource owner (that is, the Amazon Web
4265
+ # Services account that created it) can access the resource. The
4266
+ # resource owner can optionally grant access permissions to others
4267
+ # by writing an access policy. For this operation, a user must have
4268
+ # the `s3:PutLifecycleConfiguration` permission.
4269
+ #
4270
+ # For more information about permissions, see [Managing Access
4271
+ # Permissions to Your Amazon S3 Resources][1].
4272
+ # ^
4273
+ #
4274
+ # * **Directory bucket permissions** - You must have the
4275
+ # `s3express:PutLifecycleConfiguration` permission in an IAM
4276
+ # identity-based policy to use this operation. Cross-account access
4277
+ # to this API operation isn't supported. The resource owner can
4278
+ # optionally grant access permissions to others by creating a role
4279
+ # or user for them as long as they are within the same account as
4280
+ # the owner and resource.
4281
+ #
4282
+ # For more information about directory bucket policies and
4283
+ # permissions, see [Authorizing Regional endpoint APIs with IAM][2]
4284
+ # in the *Amazon S3 User Guide*.
4264
4285
  #
4265
- # There is usually some time lag before lifecycle configuration deletion
4266
- # is fully propagated to all the Amazon S3 systems.
4286
+ # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
4287
+ # requests for this API operation to the Regional endpoint. These
4288
+ # endpoints support path-style requests in the format
4289
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name
4290
+ # `. Virtual-hosted-style requests aren't supported. For more
4291
+ # information, see [Regional and Zonal endpoints][3] in the *Amazon
4292
+ # S3 User Guide*.
4293
+ #
4294
+ # </note>
4295
+ # ^
4296
+ #
4297
+ # HTTP Host header syntax
4298
+ #
4299
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is
4300
+ # `s3express-control.region.amazonaws.com`.
4267
4301
  #
4268
4302
  # For more information about the object expiration, see [Elements to
4269
- # Describe Lifecycle Actions][1].
4303
+ # Describe Lifecycle Actions][4].
4270
4304
  #
4271
4305
  # Related actions include:
4272
4306
  #
4273
- # * [PutBucketLifecycleConfiguration][2]
4307
+ # * [PutBucketLifecycleConfiguration][5]
4274
4308
  #
4275
- # * [GetBucketLifecycleConfiguration][3]
4309
+ # * [GetBucketLifecycleConfiguration][6]
4276
4310
  #
4277
4311
  #
4278
4312
  #
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
4313
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
4314
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
4315
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
4316
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#intro-lifecycle-rules-actions
4317
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
4318
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
4282
4319
  #
4283
4320
  # @option params [required, String] :bucket
4284
4321
  # The bucket name of the lifecycle to delete.
@@ -4288,6 +4325,11 @@ module Aws::S3
4288
4325
  # you provide does not match the actual owner of the bucket, the request
4289
4326
  # fails with the HTTP status code `403 Forbidden` (access denied).
4290
4327
  #
4328
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
4329
+ # supported for directory bucket lifecycle configurations.
4330
+ #
4331
+ # </note>
4332
+ #
4291
4333
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4292
4334
  #
4293
4335
  #
@@ -4315,7 +4357,7 @@ module Aws::S3
4315
4357
  req.send_request(options)
4316
4358
  end
4317
4359
 
4318
- # <note markdown="1"> This operation is not supported by directory buckets.
4360
+ # <note markdown="1"> This operation is not supported for directory buckets.
4319
4361
  #
4320
4362
  # </note>
4321
4363
  #
@@ -4385,7 +4427,7 @@ module Aws::S3
4385
4427
  req.send_request(options)
4386
4428
  end
4387
4429
 
4388
- # <note markdown="1"> This operation is not supported by directory buckets.
4430
+ # <note markdown="1"> This operation is not supported for directory buckets.
4389
4431
  #
4390
4432
  # </note>
4391
4433
  #
@@ -4559,7 +4601,7 @@ module Aws::S3
4559
4601
  req.send_request(options)
4560
4602
  end
4561
4603
 
4562
- # <note markdown="1"> This operation is not supported by directory buckets.
4604
+ # <note markdown="1"> This operation is not supported for directory buckets.
4563
4605
  #
4564
4606
  # </note>
4565
4607
  #
@@ -4629,7 +4671,7 @@ module Aws::S3
4629
4671
  req.send_request(options)
4630
4672
  end
4631
4673
 
4632
- # <note markdown="1"> This operation is not supported by directory buckets.
4674
+ # <note markdown="1"> This operation is not supported for directory buckets.
4633
4675
  #
4634
4676
  # </note>
4635
4677
  #
@@ -4685,7 +4727,7 @@ module Aws::S3
4685
4727
  req.send_request(options)
4686
4728
  end
4687
4729
 
4688
- # <note markdown="1"> This operation is not supported by directory buckets.
4730
+ # <note markdown="1"> This operation is not supported for directory buckets.
4689
4731
  #
4690
4732
  # </note>
4691
4733
  #
@@ -4805,7 +4847,6 @@ module Aws::S3
4805
4847
  # objects from your bucket, you must deny them the
4806
4848
  # `s3:DeleteObject`, `s3:DeleteObjectVersion`, and
4807
4849
  # `s3:PutLifeCycleConfiguration` permissions.
4808
- #
4809
4850
  # * **Directory buckets permissions** - To grant access to this API
4810
4851
  # operation on a directory bucket, we recommend that you use the
4811
4852
  # CreateSession API operation for session-based authorization.
@@ -4925,6 +4966,49 @@ module Aws::S3
4925
4966
  # you provide does not match the actual owner of the bucket, the request
4926
4967
  # fails with the HTTP status code `403 Forbidden` (access denied).
4927
4968
  #
4969
+ # @option params [String] :if_match
4970
+ # The `If-Match` header field makes the request method conditional on
4971
+ # ETags. If the ETag value does not match, the operation returns a `412
4972
+ # Precondition Failed` error. If the ETag matches or if the object
4973
+ # doesn't exist, the operation will return a `204 Success (No Content)
4974
+ # response`.
4975
+ #
4976
+ # For more information about conditional requests, see [RFC 7232][1].
4977
+ #
4978
+ # <note markdown="1"> This functionality is only supported for directory buckets.
4979
+ #
4980
+ # </note>
4981
+ #
4982
+ #
4983
+ #
4984
+ # [1]: https://docs.aws.amazon.com/https:/tools.ietf.org/html/rfc7232
4985
+ #
4986
+ # @option params [Time,DateTime,Date,Integer,String] :if_match_last_modified_time
4987
+ # If present, the object is deleted only if its modification times
4988
+ # matches the provided `Timestamp`. If the `Timestamp` values do not
4989
+ # match, the operation returns a `412 Precondition Failed` error. If the
4990
+ # `Timestamp` matches or if the object doesn’t exist, the operation
4991
+ # returns a `204 Success (No Content)` response.
4992
+ #
4993
+ # <note markdown="1"> This functionality is only supported for directory buckets.
4994
+ #
4995
+ # </note>
4996
+ #
4997
+ # @option params [Integer] :if_match_size
4998
+ # If present, the object is deleted only if its size matches the
4999
+ # provided size in bytes. If the `Size` value does not match, the
5000
+ # operation returns a `412 Precondition Failed` error. If the `Size`
5001
+ # matches or if the object doesn’t exist, the operation returns a `204
5002
+ # Success (No Content)` response.
5003
+ #
5004
+ # <note markdown="1"> This functionality is only supported for directory buckets.
5005
+ #
5006
+ # </note>
5007
+ #
5008
+ # You can use the `If-Match`, `x-amz-if-match-last-modified-time` and
5009
+ # `x-amz-if-match-size` conditional headers in conjunction with
5010
+ # each-other or individually.
5011
+ #
4928
5012
  # @return [Types::DeleteObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4929
5013
  #
4930
5014
  # * {Types::DeleteObjectOutput#delete_marker #delete_marker} => Boolean
@@ -4932,15 +5016,6 @@ module Aws::S3
4932
5016
  # * {Types::DeleteObjectOutput#request_charged #request_charged} => String
4933
5017
  #
4934
5018
  #
4935
- # @example Example: To delete an object (from a non-versioned bucket)
4936
- #
4937
- # # The following example deletes an object from a non-versioned bucket.
4938
- #
4939
- # resp = client.delete_object({
4940
- # bucket: "ExampleBucket",
4941
- # key: "HappyFace.jpg",
4942
- # })
4943
- #
4944
5019
  # @example Example: To delete an object
4945
5020
  #
4946
5021
  # # The following example deletes an object from an S3 bucket.
@@ -4954,6 +5029,15 @@ module Aws::S3
4954
5029
  # {
4955
5030
  # }
4956
5031
  #
5032
+ # @example Example: To delete an object (from a non-versioned bucket)
5033
+ #
5034
+ # # The following example deletes an object from a non-versioned bucket.
5035
+ #
5036
+ # resp = client.delete_object({
5037
+ # bucket: "ExampleBucket",
5038
+ # key: "HappyFace.jpg",
5039
+ # })
5040
+ #
4957
5041
  # @example Request syntax with placeholder values
4958
5042
  #
4959
5043
  # resp = client.delete_object({
@@ -4964,6 +5048,9 @@ module Aws::S3
4964
5048
  # request_payer: "requester", # accepts requester
4965
5049
  # bypass_governance_retention: false,
4966
5050
  # expected_bucket_owner: "AccountId",
5051
+ # if_match: "IfMatch",
5052
+ # if_match_last_modified_time: Time.now,
5053
+ # if_match_size: 1,
4967
5054
  # })
4968
5055
  #
4969
5056
  # @example Response structure
@@ -4981,7 +5068,7 @@ module Aws::S3
4981
5068
  req.send_request(options)
4982
5069
  end
4983
5070
 
4984
- # <note markdown="1"> This operation is not supported by directory buckets.
5071
+ # <note markdown="1"> This operation is not supported for directory buckets.
4985
5072
  #
4986
5073
  # </note>
4987
5074
  #
@@ -5164,7 +5251,6 @@ module Aws::S3
5164
5251
  # * <b> <code>s3:DeleteObjectVersion</code> </b> - To delete a
5165
5252
  # specific version of an object from a versioning-enabled bucket,
5166
5253
  # you must specify the `s3:DeleteObjectVersion` permission.
5167
- #
5168
5254
  # * **Directory bucket permissions** - To grant access to this API
5169
5255
  # operation on a directory bucket, we recommend that you use the [
5170
5256
  # `CreateSession` ][3] API operation for session-based
@@ -5363,20 +5449,22 @@ module Aws::S3
5363
5449
  # * {Types::DeleteObjectsOutput#errors #errors} => Array&lt;Types::Error&gt;
5364
5450
  #
5365
5451
  #
5366
- # @example Example: To delete multiple objects from a versioned bucket
5452
+ # @example Example: To delete multiple object versions from a versioned bucket
5367
5453
  #
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.
5454
+ # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
5455
+ # # versions and returns the key and versions of deleted objects in the response.
5370
5456
  #
5371
5457
  # resp = client.delete_objects({
5372
5458
  # bucket: "examplebucket",
5373
5459
  # delete: {
5374
5460
  # objects: [
5375
5461
  # {
5376
- # key: "objectkey1",
5462
+ # key: "HappyFace.jpg",
5463
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5377
5464
  # },
5378
5465
  # {
5379
- # key: "objectkey2",
5466
+ # key: "HappyFace.jpg",
5467
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5380
5468
  # },
5381
5469
  # ],
5382
5470
  # quiet: false,
@@ -5387,34 +5475,30 @@ module Aws::S3
5387
5475
  # {
5388
5476
  # deleted: [
5389
5477
  # {
5390
- # delete_marker: true,
5391
- # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
5392
- # key: "objectkey1",
5478
+ # key: "HappyFace.jpg",
5479
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5393
5480
  # },
5394
5481
  # {
5395
- # delete_marker: true,
5396
- # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
5397
- # key: "objectkey2",
5482
+ # key: "HappyFace.jpg",
5483
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5398
5484
  # },
5399
5485
  # ],
5400
5486
  # }
5401
5487
  #
5402
- # @example Example: To delete multiple object versions from a versioned bucket
5488
+ # @example Example: To delete multiple objects from a versioned bucket
5403
5489
  #
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.
5490
+ # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
5491
+ # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
5406
5492
  #
5407
5493
  # resp = client.delete_objects({
5408
5494
  # bucket: "examplebucket",
5409
5495
  # delete: {
5410
5496
  # objects: [
5411
5497
  # {
5412
- # key: "HappyFace.jpg",
5413
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5498
+ # key: "objectkey1",
5414
5499
  # },
5415
5500
  # {
5416
- # key: "HappyFace.jpg",
5417
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5501
+ # key: "objectkey2",
5418
5502
  # },
5419
5503
  # ],
5420
5504
  # quiet: false,
@@ -5425,12 +5509,14 @@ module Aws::S3
5425
5509
  # {
5426
5510
  # deleted: [
5427
5511
  # {
5428
- # key: "HappyFace.jpg",
5429
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5512
+ # delete_marker: true,
5513
+ # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
5514
+ # key: "objectkey1",
5430
5515
  # },
5431
5516
  # {
5432
- # key: "HappyFace.jpg",
5433
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5517
+ # delete_marker: true,
5518
+ # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
5519
+ # key: "objectkey2",
5434
5520
  # },
5435
5521
  # ],
5436
5522
  # }
@@ -5444,6 +5530,9 @@ module Aws::S3
5444
5530
  # {
5445
5531
  # key: "ObjectKey", # required
5446
5532
  # version_id: "ObjectVersionId",
5533
+ # etag: "ETag",
5534
+ # last_modified_time: Time.now,
5535
+ # size: 1,
5447
5536
  # },
5448
5537
  # ],
5449
5538
  # quiet: false,
@@ -5478,7 +5567,7 @@ module Aws::S3
5478
5567
  req.send_request(options)
5479
5568
  end
5480
5569
 
5481
- # <note markdown="1"> This operation is not supported by directory buckets.
5570
+ # <note markdown="1"> This operation is not supported for directory buckets.
5482
5571
  #
5483
5572
  # </note>
5484
5573
  #
@@ -5535,7 +5624,7 @@ module Aws::S3
5535
5624
  req.send_request(options)
5536
5625
  end
5537
5626
 
5538
- # <note markdown="1"> This operation is not supported by directory buckets.
5627
+ # <note markdown="1"> This operation is not supported for directory buckets.
5539
5628
  #
5540
5629
  # </note>
5541
5630
  #
@@ -5631,7 +5720,7 @@ module Aws::S3
5631
5720
  req.send_request(options)
5632
5721
  end
5633
5722
 
5634
- # <note markdown="1"> This operation is not supported by directory buckets.
5723
+ # <note markdown="1"> This operation is not supported for directory buckets.
5635
5724
  #
5636
5725
  # </note>
5637
5726
  #
@@ -5727,7 +5816,7 @@ module Aws::S3
5727
5816
  req.send_request(options)
5728
5817
  end
5729
5818
 
5730
- # <note markdown="1"> This operation is not supported by directory buckets.
5819
+ # <note markdown="1"> This operation is not supported for directory buckets.
5731
5820
  #
5732
5821
  # </note>
5733
5822
  #
@@ -5813,7 +5902,7 @@ module Aws::S3
5813
5902
  req.send_request(options)
5814
5903
  end
5815
5904
 
5816
- # <note markdown="1"> This operation is not supported by directory buckets.
5905
+ # <note markdown="1"> This operation is not supported for directory buckets.
5817
5906
  #
5818
5907
  # </note>
5819
5908
  #
@@ -6046,7 +6135,7 @@ module Aws::S3
6046
6135
  req.send_request(options)
6047
6136
  end
6048
6137
 
6049
- # <note markdown="1"> This operation is not supported by directory buckets.
6138
+ # <note markdown="1"> This operation is not supported for directory buckets.
6050
6139
  #
6051
6140
  # </note>
6052
6141
  #
@@ -6130,7 +6219,7 @@ module Aws::S3
6130
6219
  req.send_request(options)
6131
6220
  end
6132
6221
 
6133
- # <note markdown="1"> This operation is not supported by directory buckets.
6222
+ # <note markdown="1"> This operation is not supported for directory buckets.
6134
6223
  #
6135
6224
  # </note>
6136
6225
  #
@@ -6219,7 +6308,7 @@ module Aws::S3
6219
6308
  # version of this topic. This topic is provided for backward
6220
6309
  # compatibility.
6221
6310
  #
6222
- # <note markdown="1"> This operation is not supported by directory buckets.
6311
+ # <note markdown="1"> This operation is not supported for directory buckets.
6223
6312
  #
6224
6313
  # </note>
6225
6314
  #
@@ -6331,34 +6420,65 @@ module Aws::S3
6331
6420
  req.send_request(options)
6332
6421
  end
6333
6422
 
6334
- # <note markdown="1"> This operation is not supported by directory buckets.
6335
- #
6336
- # </note>
6423
+ # Returns the lifecycle configuration information set on the bucket. For
6424
+ # information about lifecycle configuration, see [Object Lifecycle
6425
+ # Management][1].
6337
6426
  #
6338
- # <note markdown="1"> Bucket lifecycle configuration now supports specifying a lifecycle
6427
+ # Bucket lifecycle configuration now supports specifying a lifecycle
6339
6428
  # rule using an object key name prefix, one or more object tags, object
6340
6429
  # 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,
6430
+ # the latest API, which is compatible with the new functionality. The
6431
+ # previous version of the API supported filtering based only on an
6432
+ # object key name prefix, which is supported for general purpose buckets
6433
+ # for backward compatibility. For the related API description, see
6434
+ # [GetBucketLifecycle][2].
6435
+ #
6436
+ # <note markdown="1"> Lifecyle configurations for directory buckets only support expiring
6437
+ # objects and cancelling multipart uploads. Expiring of versioned
6438
+ # objects, transitions and tag filters are not supported.
6349
6439
  #
6350
6440
  # </note>
6351
6441
  #
6352
- # Returns the lifecycle configuration information set on the bucket. For
6353
- # information about lifecycle configuration, see [Object Lifecycle
6354
- # Management][2].
6442
+ # Permissions
6443
+ # : * **General purpose bucket permissions** - By default, all Amazon S3
6444
+ # resources are private, including buckets, objects, and related
6445
+ # subresources (for example, lifecycle configuration and website
6446
+ # configuration). Only the resource owner (that is, the Amazon Web
6447
+ # Services account that created it) can access the resource. The
6448
+ # resource owner can optionally grant access permissions to others
6449
+ # by writing an access policy. For this operation, a user must have
6450
+ # the `s3:GetLifecycleConfiguration` permission.
6451
+ #
6452
+ # For more information about permissions, see [Managing Access
6453
+ # Permissions to Your Amazon S3 Resources][3].
6454
+ # ^
6355
6455
  #
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].
6456
+ # * **Directory bucket permissions** - You must have the
6457
+ # `s3express:GetLifecycleConfiguration` permission in an IAM
6458
+ # identity-based policy to use this operation. Cross-account access
6459
+ # to this API operation isn't supported. The resource owner can
6460
+ # optionally grant access permissions to others by creating a role
6461
+ # or user for them as long as they are within the same account as
6462
+ # the owner and resource.
6463
+ #
6464
+ # For more information about directory bucket policies and
6465
+ # permissions, see [Authorizing Regional endpoint APIs with IAM][4]
6466
+ # in the *Amazon S3 User Guide*.
6467
+ #
6468
+ # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
6469
+ # requests for this API operation to the Regional endpoint. These
6470
+ # endpoints support path-style requests in the format
6471
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name
6472
+ # `. Virtual-hosted-style requests aren't supported. For more
6473
+ # information, see [Regional and Zonal endpoints][5] in the *Amazon
6474
+ # S3 User Guide*.
6475
+ #
6476
+ # </note>
6477
+ #
6478
+ # HTTP Host header syntax
6479
+ #
6480
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is
6481
+ # `s3express-control.region.amazonaws.com`.
6362
6482
  #
6363
6483
  # `GetBucketLifecycleConfiguration` has the following special error:
6364
6484
  #
@@ -6373,20 +6493,21 @@ module Aws::S3
6373
6493
  # The following operations are related to
6374
6494
  # `GetBucketLifecycleConfiguration`:
6375
6495
  #
6376
- # * [GetBucketLifecycle][1]
6496
+ # * [GetBucketLifecycle][2]
6377
6497
  #
6378
- # * [PutBucketLifecycle][5]
6498
+ # * [PutBucketLifecycle][6]
6379
6499
  #
6380
- # * [DeleteBucketLifecycle][6]
6500
+ # * [DeleteBucketLifecycle][7]
6381
6501
  #
6382
6502
  #
6383
6503
  #
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
6504
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
6505
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycle.html
6506
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
6507
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
6508
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
6509
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycle.html
6510
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html
6390
6511
  #
6391
6512
  # @option params [required, String] :bucket
6392
6513
  # The name of the bucket for which to get the lifecycle information.
@@ -6396,6 +6517,11 @@ module Aws::S3
6396
6517
  # you provide does not match the actual owner of the bucket, the request
6397
6518
  # fails with the HTTP status code `403 Forbidden` (access denied).
6398
6519
  #
6520
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
6521
+ # supported for directory bucket lifecycle configurations.
6522
+ #
6523
+ # </note>
6524
+ #
6399
6525
  # @return [Types::GetBucketLifecycleConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6400
6526
  #
6401
6527
  # * {Types::GetBucketLifecycleConfigurationOutput#rules #rules} => Array&lt;Types::LifecycleRule&gt;
@@ -6476,7 +6602,7 @@ module Aws::S3
6476
6602
  req.send_request(options)
6477
6603
  end
6478
6604
 
6479
- # <note markdown="1"> This operation is not supported by directory buckets.
6605
+ # <note markdown="1"> This operation is not supported for directory buckets.
6480
6606
  #
6481
6607
  # </note>
6482
6608
  #
@@ -6573,7 +6699,7 @@ module Aws::S3
6573
6699
  req.send_request(options)
6574
6700
  end
6575
6701
 
6576
- # <note markdown="1"> This operation is not supported by directory buckets.
6702
+ # <note markdown="1"> This operation is not supported for directory buckets.
6577
6703
  #
6578
6704
  # </note>
6579
6705
  #
@@ -6632,7 +6758,7 @@ module Aws::S3
6632
6758
  req.send_request(options)
6633
6759
  end
6634
6760
 
6635
- # <note markdown="1"> This operation is not supported by directory buckets.
6761
+ # <note markdown="1"> This operation is not supported for directory buckets.
6636
6762
  #
6637
6763
  # </note>
6638
6764
  #
@@ -6718,7 +6844,7 @@ module Aws::S3
6718
6844
  req.send_request(options)
6719
6845
  end
6720
6846
 
6721
- # <note markdown="1"> This operation is not supported by directory buckets.
6847
+ # <note markdown="1"> This operation is not supported for directory buckets.
6722
6848
  #
6723
6849
  # </note>
6724
6850
  #
@@ -6849,7 +6975,7 @@ module Aws::S3
6849
6975
  req.send_request(options)
6850
6976
  end
6851
6977
 
6852
- # <note markdown="1"> This operation is not supported by directory buckets.
6978
+ # <note markdown="1"> This operation is not supported for directory buckets.
6853
6979
  #
6854
6980
  # </note>
6855
6981
  #
@@ -6964,7 +7090,7 @@ module Aws::S3
6964
7090
  req.send_request(options)
6965
7091
  end
6966
7092
 
6967
- # <note markdown="1"> This operation is not supported by directory buckets.
7093
+ # <note markdown="1"> This operation is not supported for directory buckets.
6968
7094
  #
6969
7095
  # </note>
6970
7096
  #
@@ -7181,7 +7307,7 @@ module Aws::S3
7181
7307
  req.send_request(options, &block)
7182
7308
  end
7183
7309
 
7184
- # <note markdown="1"> This operation is not supported by directory buckets.
7310
+ # <note markdown="1"> This operation is not supported for directory buckets.
7185
7311
  #
7186
7312
  # </note>
7187
7313
  #
@@ -7246,7 +7372,7 @@ module Aws::S3
7246
7372
  req.send_request(options)
7247
7373
  end
7248
7374
 
7249
- # <note markdown="1"> This operation is not supported by directory buckets.
7375
+ # <note markdown="1"> This operation is not supported for directory buckets.
7250
7376
  #
7251
7377
  # </note>
7252
7378
  #
@@ -7369,7 +7495,7 @@ module Aws::S3
7369
7495
  req.send_request(options)
7370
7496
  end
7371
7497
 
7372
- # <note markdown="1"> This operation is not supported by directory buckets.
7498
+ # <note markdown="1"> This operation is not supported for directory buckets.
7373
7499
  #
7374
7500
  # </note>
7375
7501
  #
@@ -7435,7 +7561,7 @@ module Aws::S3
7435
7561
  req.send_request(options)
7436
7562
  end
7437
7563
 
7438
- # <note markdown="1"> This operation is not supported by directory buckets.
7564
+ # <note markdown="1"> This operation is not supported for directory buckets.
7439
7565
  #
7440
7566
  # </note>
7441
7567
  #
@@ -7521,7 +7647,7 @@ module Aws::S3
7521
7647
  req.send_request(options)
7522
7648
  end
7523
7649
 
7524
- # <note markdown="1"> This operation is not supported by directory buckets.
7650
+ # <note markdown="1"> This operation is not supported for directory buckets.
7525
7651
  #
7526
7652
  # </note>
7527
7653
  #
@@ -7598,7 +7724,7 @@ module Aws::S3
7598
7724
  req.send_request(options)
7599
7725
  end
7600
7726
 
7601
- # <note markdown="1"> This operation is not supported by directory buckets.
7727
+ # <note markdown="1"> This operation is not supported for directory buckets.
7602
7728
  #
7603
7729
  # </note>
7604
7730
  #
@@ -7744,7 +7870,6 @@ module Aws::S3
7744
7870
  #
7745
7871
  # * If you don’t have the `s3:ListBucket` permission, Amazon S3
7746
7872
  # returns an HTTP status code `403 Access Denied` error.
7747
- #
7748
7873
  # * **Directory bucket permissions** - To grant access to this API
7749
7874
  # operation on a directory bucket, we recommend that you use the [
7750
7875
  # `CreateSession` ][4] API operation for session-based
@@ -8223,7 +8348,7 @@ module Aws::S3
8223
8348
  # content_range: "bytes 0-9/43",
8224
8349
  # content_type: "text/plain",
8225
8350
  # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
8226
- # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
8351
+ # last_modified: Time.parse("2014-10-09T22:57:28.000Z"),
8227
8352
  # metadata: {
8228
8353
  # },
8229
8354
  # version_id: "null",
@@ -8244,7 +8369,7 @@ module Aws::S3
8244
8369
  # content_length: 3191,
8245
8370
  # content_type: "image/jpeg",
8246
8371
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
8247
- # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
8372
+ # last_modified: Time.parse("2016-12-15T01:19:41.000Z"),
8248
8373
  # metadata: {
8249
8374
  # },
8250
8375
  # tag_count: 2,
@@ -8356,7 +8481,7 @@ module Aws::S3
8356
8481
  req.send_request(options, &block)
8357
8482
  end
8358
8483
 
8359
- # <note markdown="1"> This operation is not supported by directory buckets.
8484
+ # <note markdown="1"> This operation is not supported for directory buckets.
8360
8485
  #
8361
8486
  # </note>
8362
8487
  #
@@ -8578,7 +8703,6 @@ module Aws::S3
8578
8703
  # * If you don't have the `s3:ListBucket` permission, Amazon S3
8579
8704
  # returns an HTTP status code `403 Forbidden` ("access denied")
8580
8705
  # error.
8581
- #
8582
8706
  # * **Directory bucket permissions** - To grant access to this API
8583
8707
  # operation on a directory bucket, we recommend that you use the [
8584
8708
  # `CreateSession` ][3] API operation for session-based
@@ -8665,7 +8789,6 @@ module Aws::S3
8665
8789
  # * `If-Match` condition evaluates to `true`.
8666
8790
  #
8667
8791
  # * `If-Unmodified-Since` condition evaluates to `false`.
8668
- #
8669
8792
  # For more information about conditional requests, see [RFC
8670
8793
  # 7232][7].
8671
8794
  #
@@ -8676,7 +8799,6 @@ module Aws::S3
8676
8799
  # * `If-None-Match` condition evaluates to `false`.
8677
8800
  #
8678
8801
  # * `If-Modified-Since` condition evaluates to `true`.
8679
- #
8680
8802
  # For more information about conditional requests, see [RFC
8681
8803
  # 7232][7].
8682
8804
  #
@@ -8902,7 +9024,7 @@ module Aws::S3
8902
9024
  req.send_request(options)
8903
9025
  end
8904
9026
 
8905
- # <note markdown="1"> This operation is not supported by directory buckets.
9027
+ # <note markdown="1"> This operation is not supported for directory buckets.
8906
9028
  #
8907
9029
  # </note>
8908
9030
  #
@@ -8998,7 +9120,7 @@ module Aws::S3
8998
9120
  req.send_request(options)
8999
9121
  end
9000
9122
 
9001
- # <note markdown="1"> This operation is not supported by directory buckets.
9123
+ # <note markdown="1"> This operation is not supported for directory buckets.
9002
9124
  #
9003
9125
  # </note>
9004
9126
  #
@@ -9068,7 +9190,7 @@ module Aws::S3
9068
9190
  req.send_request(options)
9069
9191
  end
9070
9192
 
9071
- # <note markdown="1"> This operation is not supported by directory buckets.
9193
+ # <note markdown="1"> This operation is not supported for directory buckets.
9072
9194
  #
9073
9195
  # </note>
9074
9196
  #
@@ -9165,7 +9287,7 @@ module Aws::S3
9165
9287
  req.send_request(options)
9166
9288
  end
9167
9289
 
9168
- # <note markdown="1"> This operation is not supported by directory buckets.
9290
+ # <note markdown="1"> This operation is not supported for directory buckets.
9169
9291
  #
9170
9292
  # </note>
9171
9293
  #
@@ -9263,49 +9385,49 @@ module Aws::S3
9263
9385
  # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array&lt;Types::Tag&gt;
9264
9386
  #
9265
9387
  #
9266
- # @example Example: To retrieve tag set of a specific object version
9388
+ # @example Example: To retrieve tag set of an object
9267
9389
  #
9268
- # # The following example retrieves tag set of an object. The request specifies object version.
9390
+ # # The following example retrieves tag set of an object.
9269
9391
  #
9270
9392
  # resp = client.get_object_tagging({
9271
9393
  # bucket: "examplebucket",
9272
- # key: "exampleobject",
9273
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
9394
+ # key: "HappyFace.jpg",
9274
9395
  # })
9275
9396
  #
9276
9397
  # resp.to_h outputs the following:
9277
9398
  # {
9278
9399
  # tag_set: [
9279
9400
  # {
9280
- # key: "Key1",
9281
- # value: "Value1",
9401
+ # key: "Key4",
9402
+ # value: "Value4",
9403
+ # },
9404
+ # {
9405
+ # key: "Key3",
9406
+ # value: "Value3",
9282
9407
  # },
9283
9408
  # ],
9284
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
9409
+ # version_id: "null",
9285
9410
  # }
9286
9411
  #
9287
- # @example Example: To retrieve tag set of an object
9412
+ # @example Example: To retrieve tag set of a specific object version
9288
9413
  #
9289
- # # The following example retrieves tag set of an object.
9414
+ # # The following example retrieves tag set of an object. The request specifies object version.
9290
9415
  #
9291
9416
  # resp = client.get_object_tagging({
9292
9417
  # bucket: "examplebucket",
9293
- # key: "HappyFace.jpg",
9418
+ # key: "exampleobject",
9419
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
9294
9420
  # })
9295
9421
  #
9296
9422
  # resp.to_h outputs the following:
9297
9423
  # {
9298
9424
  # tag_set: [
9299
9425
  # {
9300
- # key: "Key4",
9301
- # value: "Value4",
9302
- # },
9303
- # {
9304
- # key: "Key3",
9305
- # value: "Value3",
9426
+ # key: "Key1",
9427
+ # value: "Value1",
9306
9428
  # },
9307
9429
  # ],
9308
- # version_id: "null",
9430
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
9309
9431
  # }
9310
9432
  #
9311
9433
  # @example Request syntax with placeholder values
@@ -9334,7 +9456,7 @@ module Aws::S3
9334
9456
  req.send_request(options)
9335
9457
  end
9336
9458
 
9337
- # <note markdown="1"> This operation is not supported by directory buckets.
9459
+ # <note markdown="1"> This operation is not supported for directory buckets.
9338
9460
  #
9339
9461
  # </note>
9340
9462
  #
@@ -9435,7 +9557,7 @@ module Aws::S3
9435
9557
  req.send_request(options, &block)
9436
9558
  end
9437
9559
 
9438
- # <note markdown="1"> This operation is not supported by directory buckets.
9560
+ # <note markdown="1"> This operation is not supported for directory buckets.
9439
9561
  #
9440
9562
  # </note>
9441
9563
  #
@@ -9726,7 +9848,6 @@ module Aws::S3
9726
9848
  #
9727
9849
  # * If you don’t have the `s3:ListBucket` permission, Amazon S3
9728
9850
  # returns an HTTP status code `403 Forbidden` error.
9729
- #
9730
9851
  # * **Directory bucket permissions** - To grant access to this API
9731
9852
  # operation on a directory bucket, we recommend that you use the [
9732
9853
  # `CreateSession` ][3] API operation for session-based
@@ -9798,7 +9919,7 @@ module Aws::S3
9798
9919
  # a `405 Method Not Allowed` error and the `Last-Modified:
9799
9920
  # timestamp` response header.
9800
9921
  #
9801
- # <note markdown="1"> * **Directory buckets** - Delete marker is not supported by
9922
+ # <note markdown="1"> * **Directory buckets** - Delete marker is not supported for
9802
9923
  # directory buckets.
9803
9924
  #
9804
9925
  # * **Directory buckets** - S3 Versioning isn't enabled and supported
@@ -10123,7 +10244,7 @@ module Aws::S3
10123
10244
  # content_length: 3191,
10124
10245
  # content_type: "image/jpeg",
10125
10246
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
10126
- # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
10247
+ # last_modified: Time.parse("2016-12-15T01:19:41.000Z"),
10127
10248
  # metadata: {
10128
10249
  # },
10129
10250
  # version_id: "null",
@@ -10209,7 +10330,7 @@ module Aws::S3
10209
10330
  req.send_request(options)
10210
10331
  end
10211
10332
 
10212
- # <note markdown="1"> This operation is not supported by directory buckets.
10333
+ # <note markdown="1"> This operation is not supported for directory buckets.
10213
10334
  #
10214
10335
  # </note>
10215
10336
  #
@@ -10310,7 +10431,7 @@ module Aws::S3
10310
10431
  req.send_request(options)
10311
10432
  end
10312
10433
 
10313
- # <note markdown="1"> This operation is not supported by directory buckets.
10434
+ # <note markdown="1"> This operation is not supported for directory buckets.
10314
10435
  #
10315
10436
  # </note>
10316
10437
  #
@@ -10402,7 +10523,7 @@ module Aws::S3
10402
10523
  req.send_request(options)
10403
10524
  end
10404
10525
 
10405
- # <note markdown="1"> This operation is not supported by directory buckets.
10526
+ # <note markdown="1"> This operation is not supported for directory buckets.
10406
10527
  #
10407
10528
  # </note>
10408
10529
  #
@@ -10504,7 +10625,7 @@ module Aws::S3
10504
10625
  req.send_request(options)
10505
10626
  end
10506
10627
 
10507
- # <note markdown="1"> This operation is not supported by directory buckets.
10628
+ # <note markdown="1"> This operation is not supported for directory buckets.
10508
10629
  #
10509
10630
  # </note>
10510
10631
  #
@@ -10606,17 +10727,26 @@ module Aws::S3
10606
10727
  req.send_request(options)
10607
10728
  end
10608
10729
 
10609
- # <note markdown="1"> This operation is not supported by directory buckets.
10730
+ # <note markdown="1"> This operation is not supported for directory buckets.
10610
10731
  #
10611
10732
  # </note>
10612
10733
  #
10613
10734
  # 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.
10735
+ # request. To grant IAM permission to use this operation, you must add
10736
+ # the `s3:ListAllMyBuckets` policy action.
10616
10737
  #
10617
10738
  # For information about Amazon S3 buckets, see [Creating, configuring,
10618
10739
  # and working with Amazon S3 buckets][1].
10619
10740
  #
10741
+ # We strongly recommend using only paginated `ListBuckets` requests.
10742
+ # Unpaginated `ListBuckets` requests are only supported for Amazon Web
10743
+ # Services accounts set to the default general purpose bucket quota of
10744
+ # 10,000. If you have an approved general purpose bucket quota above
10745
+ # 10,000, you must send paginated `ListBuckets` requests to list your
10746
+ # account’s buckets. All unpaginated `ListBuckets` requests will be
10747
+ # rejected for Amazon Web Services accounts with a general purpose
10748
+ # bucket quota greater than 10,000.
10749
+ #
10620
10750
  #
10621
10751
  #
10622
10752
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html
@@ -10636,6 +10766,14 @@ module Aws::S3
10636
10766
  #
10637
10767
  # Required: No.
10638
10768
  #
10769
+ # <note markdown="1"> If you specify the `bucket-region`, `prefix`, or `continuation-token`
10770
+ # query parameters without using `max-buckets` to set the maximum number
10771
+ # of buckets returned in the response, Amazon S3 applies a default page
10772
+ # size of 10,000 and provides a continuation token if there are more
10773
+ # buckets.
10774
+ #
10775
+ # </note>
10776
+ #
10639
10777
  # @option params [String] :prefix
10640
10778
  # Limits the response to bucket names that begin with the specified
10641
10779
  # bucket name prefix.
@@ -10757,6 +10895,11 @@ module Aws::S3
10757
10895
  # : <b>Directory buckets </b> - The HTTP Host header syntax is
10758
10896
  # `s3express-control.region.amazonaws.com`.
10759
10897
  #
10898
+ # <note markdown="1"> The `BucketRegion` response element is not part of the
10899
+ # `ListDirectoryBuckets` Response Syntax.
10900
+ #
10901
+ # </note>
10902
+ #
10760
10903
  #
10761
10904
  #
10762
10905
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html
@@ -10815,7 +10958,7 @@ module Aws::S3
10815
10958
  # multipart uploads are aborted or completed. To delete these
10816
10959
  # in-progress multipart uploads, use the `ListMultipartUploads`
10817
10960
  # operation to list the in-progress multipart uploads in the bucket and
10818
- # use the `AbortMultupartUpload` operation to abort all the in-progress
10961
+ # use the `AbortMultipartUpload` operation to abort all the in-progress
10819
10962
  # multipart uploads.
10820
10963
  #
10821
10964
  # </note>
@@ -10888,7 +11031,6 @@ module Aws::S3
10888
11031
  # initiation time. Among uploads with the same key, the one that
10889
11032
  # was initiated first will appear before the ones that were
10890
11033
  # initiated later.
10891
- #
10892
11034
  # * **Directory bucket** - In the `ListMultipartUploads` response, the
10893
11035
  # multipart uploads aren't sorted lexicographically based on the
10894
11036
  # object keys.
@@ -11245,7 +11387,7 @@ module Aws::S3
11245
11387
  req.send_request(options)
11246
11388
  end
11247
11389
 
11248
- # <note markdown="1"> This operation is not supported by directory buckets.
11390
+ # <note markdown="1"> This operation is not supported for directory buckets.
11249
11391
  #
11250
11392
  # </note>
11251
11393
  #
@@ -11484,7 +11626,7 @@ module Aws::S3
11484
11626
  req.send_request(options)
11485
11627
  end
11486
11628
 
11487
- # <note markdown="1"> This operation is not supported by directory buckets.
11629
+ # <note markdown="1"> This operation is not supported for directory buckets.
11488
11630
  #
11489
11631
  # </note>
11490
11632
  #
@@ -12378,7 +12520,7 @@ module Aws::S3
12378
12520
  req.send_request(options)
12379
12521
  end
12380
12522
 
12381
- # <note markdown="1"> This operation is not supported by directory buckets.
12523
+ # <note markdown="1"> This operation is not supported for directory buckets.
12382
12524
  #
12383
12525
  # </note>
12384
12526
  #
@@ -12477,7 +12619,7 @@ module Aws::S3
12477
12619
  req.send_request(options)
12478
12620
  end
12479
12621
 
12480
- # <note markdown="1"> This operation is not supported by directory buckets.
12622
+ # <note markdown="1"> This operation is not supported for directory buckets.
12481
12623
  #
12482
12624
  # </note>
12483
12625
  #
@@ -12568,7 +12710,6 @@ module Aws::S3
12568
12710
  # General Reference.
12569
12711
  #
12570
12712
  # </note>
12571
- #
12572
12713
  # For example, the following `x-amz-grant-write` header grants
12573
12714
  # create, overwrite, and delete objects permission to LogDelivery
12574
12715
  # group predefined by Amazon S3 and two Amazon Web Services accounts
@@ -12771,7 +12912,7 @@ module Aws::S3
12771
12912
  req.send_request(options)
12772
12913
  end
12773
12914
 
12774
- # <note markdown="1"> This operation is not supported by directory buckets.
12915
+ # <note markdown="1"> This operation is not supported for directory buckets.
12775
12916
  #
12776
12917
  # </note>
12777
12918
  #
@@ -12809,14 +12950,12 @@ module Aws::S3
12809
12950
  # * *Code: InvalidArgument*
12810
12951
  #
12811
12952
  # * *Cause: Invalid argument.*
12812
- #
12813
12953
  # * * *HTTP Error: HTTP 400 Bad Request*
12814
12954
  #
12815
12955
  # * *Code: TooManyConfigurations*
12816
12956
  #
12817
12957
  # * *Cause: You are attempting to create a new configuration but have
12818
12958
  # already reached the 1,000-configuration limit.*
12819
- #
12820
12959
  # * * *HTTP Error: HTTP 403 Forbidden*
12821
12960
  #
12822
12961
  # * *Code: AccessDenied*
@@ -12909,7 +13048,7 @@ module Aws::S3
12909
13048
  req.send_request(options)
12910
13049
  end
12911
13050
 
12912
- # <note markdown="1"> This operation is not supported by directory buckets.
13051
+ # <note markdown="1"> This operation is not supported for directory buckets.
12913
13052
  #
12914
13053
  # </note>
12915
13054
  #
@@ -13118,7 +13257,6 @@ module Aws::S3
13118
13257
  # encryption][3] to SSE-KMS, you should verify that your KMS key ID
13119
13258
  # is correct. Amazon S3 doesn't validate the KMS key ID provided in
13120
13259
  # PutBucketEncryption requests.
13121
- #
13122
13260
  # * <b>Directory buckets </b> - You can optionally configure default
13123
13261
  # encryption for a bucket by using server-side encryption with Key
13124
13262
  # Management Service (KMS) keys (SSE-KMS).
@@ -13317,7 +13455,7 @@ module Aws::S3
13317
13455
  req.send_request(options)
13318
13456
  end
13319
13457
 
13320
- # <note markdown="1"> This operation is not supported by directory buckets.
13458
+ # <note markdown="1"> This operation is not supported for directory buckets.
13321
13459
  #
13322
13460
  # </note>
13323
13461
  #
@@ -13442,7 +13580,7 @@ module Aws::S3
13442
13580
  req.send_request(options)
13443
13581
  end
13444
13582
 
13445
- # <note markdown="1"> This operation is not supported by directory buckets.
13583
+ # <note markdown="1"> This operation is not supported for directory buckets.
13446
13584
  #
13447
13585
  # </note>
13448
13586
  #
@@ -13594,15 +13732,15 @@ module Aws::S3
13594
13732
  req.send_request(options)
13595
13733
  end
13596
13734
 
13597
- # <note markdown="1"> This operation is not supported by directory buckets.
13598
- #
13599
- # </note>
13600
- #
13601
13735
  # For an updated version of this API, see
13602
13736
  # [PutBucketLifecycleConfiguration][1]. This version has been
13603
13737
  # deprecated. Existing lifecycle configurations will work. For new
13604
13738
  # lifecycle configurations, use the updated API.
13605
13739
  #
13740
+ # <note markdown="1"> This operation is not supported for directory buckets.
13741
+ #
13742
+ # </note>
13743
+ #
13606
13744
  # Creates a new lifecycle configuration for the bucket or replaces an
13607
13745
  # existing lifecycle configuration. For information about lifecycle
13608
13746
  # configuration, see [Object Lifecycle Management][2] in the *Amazon S3
@@ -13745,10 +13883,6 @@ module Aws::S3
13745
13883
  req.send_request(options)
13746
13884
  end
13747
13885
 
13748
- # <note markdown="1"> This operation is not supported by directory buckets.
13749
- #
13750
- # </note>
13751
- #
13752
13886
  # Creates a new lifecycle configuration for the bucket or replaces an
13753
13887
  # existing lifecycle configuration. Keep in mind that this will
13754
13888
  # overwrite an existing lifecycle configuration, so if you want to
@@ -13757,6 +13891,8 @@ module Aws::S3
13757
13891
  # configuration, see [Managing your storage lifecycle][1].
13758
13892
  #
13759
13893
  # Rules
13894
+ # Permissions
13895
+ # HTTP Host header syntax
13760
13896
  #
13761
13897
  # : You specify the lifecycle configuration in your request body. The
13762
13898
  # lifecycle configuration is specified as XML consisting of one or
@@ -13768,8 +13904,14 @@ module Aws::S3
13768
13904
  # size, or any combination of these. Accordingly, this section
13769
13905
  # describes the latest API. The previous version of the API supported
13770
13906
  # 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].
13907
+ # supported for backward compatibility for general purpose buckets.
13908
+ # For the related API description, see [PutBucketLifecycle][2].
13909
+ #
13910
+ # <note markdown="1"> Lifecyle configurations for directory buckets only support expiring
13911
+ # objects and cancelling multipart uploads. Expiring of versioned
13912
+ # objects,transitions and tag filters are not supported.
13913
+ #
13914
+ # </note>
13773
13915
  #
13774
13916
  # A lifecycle rule consists of the following:
13775
13917
  #
@@ -13789,40 +13931,61 @@ module Aws::S3
13789
13931
  #
13790
13932
  # For more information, see [Object Lifecycle Management][3] and
13791
13933
  # [Lifecycle Configuration Elements][4].
13934
+ # : * **General purpose bucket permissions** - By default, all Amazon S3
13935
+ # resources are private, including buckets, objects, and related
13936
+ # subresources (for example, lifecycle configuration and website
13937
+ # configuration). Only the resource owner (that is, the Amazon Web
13938
+ # Services account that created it) can access the resource. The
13939
+ # resource owner can optionally grant access permissions to others
13940
+ # by writing an access policy. For this operation, a user must have
13941
+ # the `s3:PutLifecycleConfiguration` permission.
13792
13942
  #
13793
- # Permissions
13943
+ # You can also explicitly deny permissions. An explicit deny also
13944
+ # supersedes any other permissions. If you want to block users or
13945
+ # accounts from removing or deleting objects from your bucket, you
13946
+ # must deny them permissions for the following actions:
13794
13947
  #
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.
13948
+ # * `s3:DeleteObject`
13803
13949
  #
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:
13950
+ # * `s3:DeleteObjectVersion`
13808
13951
  #
13809
- # * `s3:DeleteObject`
13952
+ # * `s3:PutLifecycleConfiguration`
13810
13953
  #
13811
- # * `s3:DeleteObjectVersion`
13954
+ # For more information about permissions, see [Managing Access
13955
+ # Permissions to Your Amazon S3 Resources][5].
13956
+ # ^
13812
13957
  #
13813
- # * `s3:PutLifecycleConfiguration`
13958
+ # * **Directory bucket permissions** - You must have the
13959
+ # `s3express:PutLifecycleConfiguration` permission in an IAM
13960
+ # identity-based policy to use this operation. Cross-account access
13961
+ # to this API operation isn't supported. The resource owner can
13962
+ # optionally grant access permissions to others by creating a role
13963
+ # or user for them as long as they are within the same account as
13964
+ # the owner and resource.
13965
+ #
13966
+ # For more information about directory bucket policies and
13967
+ # permissions, see [Authorizing Regional endpoint APIs with IAM][6]
13968
+ # in the *Amazon S3 User Guide*.
13814
13969
  #
13815
- # For more information about permissions, see [Managing Access
13816
- # Permissions to Your Amazon S3 Resources][5].
13970
+ # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
13971
+ # requests for this API operation to the Regional endpoint. These
13972
+ # endpoints support path-style requests in the format
13973
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name
13974
+ # `. Virtual-hosted-style requests aren't supported. For more
13975
+ # information, see [Regional and Zonal endpoints][7] in the *Amazon
13976
+ # S3 User Guide*.
13817
13977
  #
13818
- # The following operations are related to
13819
- # `PutBucketLifecycleConfiguration`:
13978
+ # </note>
13979
+ #
13980
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is
13981
+ # `s3express-control.region.amazonaws.com`.
13820
13982
  #
13821
- # * [Examples of Lifecycle Configuration][6]
13983
+ # The following operations are related to
13984
+ # `PutBucketLifecycleConfiguration`:
13822
13985
  #
13823
- # * [GetBucketLifecycleConfiguration][7]
13986
+ # * [GetBucketLifecycleConfiguration][8]
13824
13987
  #
13825
- # * [DeleteBucketLifecycle][8]
13988
+ # * [DeleteBucketLifecycle][9]
13826
13989
  #
13827
13990
  #
13828
13991
  #
@@ -13831,9 +13994,10 @@ module Aws::S3
13831
13994
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
13832
13995
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html
13833
13996
  # [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
13997
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
13998
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
13999
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
14000
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketLifecycle.html
13837
14001
  #
13838
14002
  # @option params [required, String] :bucket
13839
14003
  # The name of the bucket for which to set the configuration.
@@ -13862,10 +14026,20 @@ module Aws::S3
13862
14026
  # you provide does not match the actual owner of the bucket, the request
13863
14027
  # fails with the HTTP status code `403 Forbidden` (access denied).
13864
14028
  #
14029
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
14030
+ # supported for directory bucket lifecycle configurations.
14031
+ #
14032
+ # </note>
14033
+ #
13865
14034
  # @option params [String] :transition_default_minimum_object_size
13866
14035
  # Indicates which default minimum object size behavior is applied to the
13867
14036
  # lifecycle configuration.
13868
14037
  #
14038
+ # <note markdown="1"> This parameter applies to general purpose buckets only. It is not
14039
+ # supported for directory bucket lifecycle configurations.
14040
+ #
14041
+ # </note>
14042
+ #
13869
14043
  # * `all_storage_classes_128K` - Objects smaller than 128 KB will not
13870
14044
  # transition to any storage class by default.
13871
14045
  #
@@ -13989,7 +14163,7 @@ module Aws::S3
13989
14163
  req.send_request(options)
13990
14164
  end
13991
14165
 
13992
- # <note markdown="1"> This operation is not supported by directory buckets.
14166
+ # <note markdown="1"> This operation is not supported for directory buckets.
13993
14167
  #
13994
14168
  # </note>
13995
14169
  #
@@ -14172,7 +14346,7 @@ module Aws::S3
14172
14346
  req.send_request(options)
14173
14347
  end
14174
14348
 
14175
- # <note markdown="1"> This operation is not supported by directory buckets.
14349
+ # <note markdown="1"> This operation is not supported for directory buckets.
14176
14350
  #
14177
14351
  # </note>
14178
14352
  #
@@ -14276,7 +14450,7 @@ module Aws::S3
14276
14450
  req.send_request(options)
14277
14451
  end
14278
14452
 
14279
- # <note markdown="1"> This operation is not supported by directory buckets.
14453
+ # <note markdown="1"> This operation is not supported for directory buckets.
14280
14454
  #
14281
14455
  # </note>
14282
14456
  #
@@ -14362,7 +14536,7 @@ module Aws::S3
14362
14536
  req.send_request(options)
14363
14537
  end
14364
14538
 
14365
- # <note markdown="1"> This operation is not supported by directory buckets.
14539
+ # <note markdown="1"> This operation is not supported for directory buckets.
14366
14540
  #
14367
14541
  # </note>
14368
14542
  #
@@ -14546,7 +14720,7 @@ module Aws::S3
14546
14720
  req.send_request(options)
14547
14721
  end
14548
14722
 
14549
- # <note markdown="1"> This operation is not supported by directory buckets.
14723
+ # <note markdown="1"> This operation is not supported for directory buckets.
14550
14724
  #
14551
14725
  # </note>
14552
14726
  #
@@ -14815,7 +14989,7 @@ module Aws::S3
14815
14989
  req.send_request(options)
14816
14990
  end
14817
14991
 
14818
- # <note markdown="1"> This operation is not supported by directory buckets.
14992
+ # <note markdown="1"> This operation is not supported for directory buckets.
14819
14993
  #
14820
14994
  # </note>
14821
14995
  #
@@ -15053,7 +15227,7 @@ module Aws::S3
15053
15227
  req.send_request(options)
15054
15228
  end
15055
15229
 
15056
- # <note markdown="1"> This operation is not supported by directory buckets.
15230
+ # <note markdown="1"> This operation is not supported for directory buckets.
15057
15231
  #
15058
15232
  # </note>
15059
15233
  #
@@ -15150,7 +15324,7 @@ module Aws::S3
15150
15324
  req.send_request(options)
15151
15325
  end
15152
15326
 
15153
- # <note markdown="1"> This operation is not supported by directory buckets.
15327
+ # <note markdown="1"> This operation is not supported for directory buckets.
15154
15328
  #
15155
15329
  # </note>
15156
15330
  #
@@ -15301,7 +15475,7 @@ module Aws::S3
15301
15475
  req.send_request(options)
15302
15476
  end
15303
15477
 
15304
- # <note markdown="1"> This operation is not supported by directory buckets.
15478
+ # <note markdown="1"> This operation is not supported for directory buckets.
15305
15479
  #
15306
15480
  # </note>
15307
15481
  #
@@ -15440,7 +15614,7 @@ module Aws::S3
15440
15614
  req.send_request(options)
15441
15615
  end
15442
15616
 
15443
- # <note markdown="1"> This operation is not supported by directory buckets.
15617
+ # <note markdown="1"> This operation is not supported for directory buckets.
15444
15618
  #
15445
15619
  # </note>
15446
15620
  #
@@ -15690,7 +15864,6 @@ module Aws::S3
15690
15864
  # * <b> <code>s3:PutObjectTagging</code> </b> - To successfully set
15691
15865
  # the tag-set with your `PutObject` request, you must have the
15692
15866
  # `s3:PutObjectTagging`.
15693
- #
15694
15867
  # * **Directory bucket permissions** - To grant access to this API
15695
15868
  # operation on a directory bucket, we recommend that you use the [
15696
15869
  # `CreateSession` ][5] API operation for session-based
@@ -16059,6 +16232,17 @@ module Aws::S3
16059
16232
  # @option params [required, String] :key
16060
16233
  # Object key for which the PUT action was initiated.
16061
16234
  #
16235
+ # @option params [Integer] :write_offset_bytes
16236
+ # Specifies the offset for appending data to existing objects in bytes.
16237
+ # The offset must be equal to the size of the existing object being
16238
+ # appended to. If no object exists, setting this header to 0 will create
16239
+ # a new object.
16240
+ #
16241
+ # <note markdown="1"> This functionality is only supported for objects in the Amazon S3
16242
+ # Express One Zone storage class in directory buckets.
16243
+ #
16244
+ # </note>
16245
+ #
16062
16246
  # @option params [Hash<String,String>] :metadata
16063
16247
  # A map of metadata to store with the object in S3.
16064
16248
  #
@@ -16361,44 +16545,44 @@ module Aws::S3
16361
16545
  # * {Types::PutObjectOutput#ssekms_key_id #ssekms_key_id} => String
16362
16546
  # * {Types::PutObjectOutput#ssekms_encryption_context #ssekms_encryption_context} => String
16363
16547
  # * {Types::PutObjectOutput#bucket_key_enabled #bucket_key_enabled} => Boolean
16548
+ # * {Types::PutObjectOutput#size #size} => Integer
16364
16549
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
16365
16550
  #
16366
16551
  #
16367
- # @example Example: To create an object.
16552
+ # @example Example: To upload an object and specify optional tags
16368
16553
  #
16369
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
16554
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
16555
+ # # S3 returns version ID of the newly created object.
16370
16556
  #
16371
16557
  # resp = client.put_object({
16372
- # body: "filetoupload",
16558
+ # body: "c:\\HappyFace.jpg",
16373
16559
  # bucket: "examplebucket",
16374
- # key: "objectkey",
16560
+ # key: "HappyFace.jpg",
16561
+ # tagging: "key1=value1&key2=value2",
16375
16562
  # })
16376
16563
  #
16377
16564
  # resp.to_h outputs the following:
16378
16565
  # {
16379
16566
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16380
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
16567
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
16381
16568
  # }
16382
16569
  #
16383
- # @example Example: To upload object and specify user-defined metadata
16570
+ # @example Example: To upload an object and specify canned ACL.
16384
16571
  #
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.
16572
+ # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
16573
+ # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
16387
16574
  #
16388
16575
  # resp = client.put_object({
16576
+ # acl: "authenticated-read",
16389
16577
  # body: "filetoupload",
16390
16578
  # bucket: "examplebucket",
16391
16579
  # key: "exampleobject",
16392
- # metadata: {
16393
- # "metadata1" => "value1",
16394
- # "metadata2" => "value2",
16395
- # },
16396
16580
  # })
16397
16581
  #
16398
16582
  # resp.to_h outputs the following:
16399
16583
  # {
16400
16584
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16401
- # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
16585
+ # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
16402
16586
  # }
16403
16587
  #
16404
16588
  # @example Example: To upload an object
@@ -16418,60 +16602,61 @@ module Aws::S3
16418
16602
  # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
16419
16603
  # }
16420
16604
  #
16421
- # @example Example: To upload an object and specify canned ACL.
16605
+ # @example Example: To upload object and specify user-defined metadata
16422
16606
  #
16423
- # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
16424
- # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
16607
+ # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
16608
+ # # enabled, S3 returns version ID in response.
16425
16609
  #
16426
16610
  # resp = client.put_object({
16427
- # acl: "authenticated-read",
16428
16611
  # body: "filetoupload",
16429
16612
  # bucket: "examplebucket",
16430
16613
  # key: "exampleobject",
16614
+ # metadata: {
16615
+ # "metadata1" => "value1",
16616
+ # "metadata2" => "value2",
16617
+ # },
16431
16618
  # })
16432
16619
  #
16433
16620
  # resp.to_h outputs the following:
16434
16621
  # {
16435
16622
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16436
- # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
16623
+ # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
16437
16624
  # }
16438
16625
  #
16439
- # @example Example: To upload an object (specify optional headers)
16626
+ # @example Example: To create an object.
16440
16627
  #
16441
- # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
16442
- # # storage class and use server-side encryption.
16628
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
16443
16629
  #
16444
16630
  # resp = client.put_object({
16445
- # body: "HappyFace.jpg",
16631
+ # body: "filetoupload",
16446
16632
  # bucket: "examplebucket",
16447
- # key: "HappyFace.jpg",
16448
- # server_side_encryption: "AES256",
16449
- # storage_class: "STANDARD_IA",
16633
+ # key: "objectkey",
16450
16634
  # })
16451
16635
  #
16452
16636
  # resp.to_h outputs the following:
16453
16637
  # {
16454
16638
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16455
- # server_side_encryption: "AES256",
16456
- # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
16639
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
16457
16640
  # }
16458
16641
  #
16459
- # @example Example: To upload an object and specify optional tags
16642
+ # @example Example: To upload an object (specify optional headers)
16460
16643
  #
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.
16644
+ # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
16645
+ # # storage class and use server-side encryption.
16463
16646
  #
16464
16647
  # resp = client.put_object({
16465
- # body: "c:\\HappyFace.jpg",
16648
+ # body: "HappyFace.jpg",
16466
16649
  # bucket: "examplebucket",
16467
16650
  # key: "HappyFace.jpg",
16468
- # tagging: "key1=value1&key2=value2",
16651
+ # server_side_encryption: "AES256",
16652
+ # storage_class: "STANDARD_IA",
16469
16653
  # })
16470
16654
  #
16471
16655
  # resp.to_h outputs the following:
16472
16656
  # {
16473
16657
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16474
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
16658
+ # server_side_encryption: "AES256",
16659
+ # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
16475
16660
  # }
16476
16661
  #
16477
16662
  # @example Example: To upload an object and specify server-side encryption and object tags
@@ -16525,6 +16710,7 @@ module Aws::S3
16525
16710
  # grant_read_acp: "GrantReadACP",
16526
16711
  # grant_write_acp: "GrantWriteACP",
16527
16712
  # key: "ObjectKey", # required
16713
+ # write_offset_bytes: 1,
16528
16714
  # metadata: {
16529
16715
  # "MetadataKey" => "MetadataValue",
16530
16716
  # },
@@ -16560,6 +16746,7 @@ module Aws::S3
16560
16746
  # resp.ssekms_key_id #=> String
16561
16747
  # resp.ssekms_encryption_context #=> String
16562
16748
  # resp.bucket_key_enabled #=> Boolean
16749
+ # resp.size #=> Integer
16563
16750
  # resp.request_charged #=> String, one of "requester"
16564
16751
  #
16565
16752
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObject AWS API Documentation
@@ -16571,7 +16758,7 @@ module Aws::S3
16571
16758
  req.send_request(options)
16572
16759
  end
16573
16760
 
16574
- # <note markdown="1"> This operation is not supported by directory buckets.
16761
+ # <note markdown="1"> This operation is not supported for directory buckets.
16575
16762
  #
16576
16763
  # </note>
16577
16764
  #
@@ -16655,7 +16842,6 @@ module Aws::S3
16655
16842
  # General Reference.
16656
16843
  #
16657
16844
  # </note>
16658
- #
16659
16845
  # For example, the following `x-amz-grant-read` header grants list
16660
16846
  # objects permission to the two Amazon Web Services accounts
16661
16847
  # identified by their email addresses.
@@ -16941,7 +17127,7 @@ module Aws::S3
16941
17127
  req.send_request(options)
16942
17128
  end
16943
17129
 
16944
- # <note markdown="1"> This operation is not supported by directory buckets.
17130
+ # <note markdown="1"> This operation is not supported for directory buckets.
16945
17131
  #
16946
17132
  # </note>
16947
17133
  #
@@ -17060,7 +17246,7 @@ module Aws::S3
17060
17246
  req.send_request(options)
17061
17247
  end
17062
17248
 
17063
- # <note markdown="1"> This operation is not supported by directory buckets.
17249
+ # <note markdown="1"> This operation is not supported for directory buckets.
17064
17250
  #
17065
17251
  # </note>
17066
17252
  #
@@ -17179,7 +17365,7 @@ module Aws::S3
17179
17365
  req.send_request(options)
17180
17366
  end
17181
17367
 
17182
- # <note markdown="1"> This operation is not supported by directory buckets.
17368
+ # <note markdown="1"> This operation is not supported for directory buckets.
17183
17369
  #
17184
17370
  # </note>
17185
17371
  #
@@ -17308,7 +17494,7 @@ module Aws::S3
17308
17494
  req.send_request(options)
17309
17495
  end
17310
17496
 
17311
- # <note markdown="1"> This operation is not supported by directory buckets.
17497
+ # <note markdown="1"> This operation is not supported for directory buckets.
17312
17498
  #
17313
17499
  # </note>
17314
17500
  #
@@ -17507,7 +17693,7 @@ module Aws::S3
17507
17693
  req.send_request(options)
17508
17694
  end
17509
17695
 
17510
- # <note markdown="1"> This operation is not supported by directory buckets.
17696
+ # <note markdown="1"> This operation is not supported for directory buckets.
17511
17697
  #
17512
17698
  # </note>
17513
17699
  #
@@ -17615,7 +17801,7 @@ module Aws::S3
17615
17801
  req.send_request(options)
17616
17802
  end
17617
17803
 
17618
- # <note markdown="1"> This operation is not supported by directory buckets.
17804
+ # <note markdown="1"> This operation is not supported for directory buckets.
17619
17805
  #
17620
17806
  # </note>
17621
17807
  #
@@ -17761,7 +17947,6 @@ module Aws::S3
17761
17947
  # * *HTTP Status Code: 409 Conflict*
17762
17948
  #
17763
17949
  # * *SOAP Fault Code Prefix: Client*
17764
- #
17765
17950
  # * * *Code: GlacierExpeditedRetrievalNotAvailable*
17766
17951
  #
17767
17952
  # * *Cause: expedited retrievals are currently not available. Try
@@ -18000,7 +18185,7 @@ module Aws::S3
18000
18185
  req.send_request(options)
18001
18186
  end
18002
18187
 
18003
- # <note markdown="1"> This operation is not supported by directory buckets.
18188
+ # <note markdown="1"> This operation is not supported for directory buckets.
18004
18189
  #
18005
18190
  # </note>
18006
18191
  #
@@ -18548,7 +18733,6 @@ module Aws::S3
18548
18733
  # * x-amz-server-side-encryption-customer-key
18549
18734
  #
18550
18735
  # * x-amz-server-side-encryption-customer-key-MD5
18551
- #
18552
18736
  # For more information, see [Using Server-Side Encryption][11] in
18553
18737
  # the *Amazon S3 User Guide*.
18554
18738
  #
@@ -18949,7 +19133,6 @@ module Aws::S3
18949
19133
  # permissions required to use the multipart upload API, see
18950
19134
  # [Multipart upload and permissions][8] and [Multipart upload API
18951
19135
  # and permissions][9] in the *Amazon S3 User Guide*.
18952
- #
18953
19136
  # * **Directory bucket permissions** - You must have permissions in a
18954
19137
  # bucket policy or an IAM identity-based policy based on the source
18955
19138
  # and destination bucket types in an `UploadPartCopy` operation.
@@ -18967,7 +19150,6 @@ module Aws::S3
18967
19150
  # `Action` element of a policy to write the object to the
18968
19151
  # destination. The `s3express:SessionMode` condition key cannot be
18969
19152
  # set to `ReadOnly` on the copy destination.
18970
- #
18971
19153
  # If the object is encrypted with SSE-KMS, you must also have the
18972
19154
  # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
18973
19155
  # identity-based policies and KMS key policies for the KMS key.
@@ -19012,7 +19194,6 @@ module Aws::S3
19012
19194
  # been aborted or completed.
19013
19195
  #
19014
19196
  # * HTTP Status Code: 404 Not Found
19015
- #
19016
19197
  # * Error Code: `InvalidRequest`
19017
19198
  #
19018
19199
  # * Description: The specified copy source is not supported as a
@@ -19345,45 +19526,45 @@ module Aws::S3
19345
19526
  # * {Types::UploadPartCopyOutput#request_charged #request_charged} => String
19346
19527
  #
19347
19528
  #
19348
- # @example Example: To upload a part by copying byte range from an existing object as data source
19529
+ # @example Example: To upload a part by copying data from an existing object as data source
19349
19530
  #
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.
19531
+ # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
19352
19532
  #
19353
19533
  # resp = client.upload_part_copy({
19354
19534
  # bucket: "examplebucket",
19355
19535
  # copy_source: "/bucketname/sourceobjectkey",
19356
- # copy_source_range: "bytes=1-100000",
19357
19536
  # key: "examplelargeobject",
19358
- # part_number: 2,
19537
+ # part_number: 1,
19359
19538
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
19360
19539
  # })
19361
19540
  #
19362
19541
  # resp.to_h outputs the following:
19363
19542
  # {
19364
19543
  # copy_part_result: {
19365
- # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
19366
- # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
19544
+ # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
19545
+ # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
19367
19546
  # },
19368
19547
  # }
19369
19548
  #
19370
- # @example Example: To upload a part by copying data from an existing object as data source
19549
+ # @example Example: To upload a part by copying byte range from an existing object as data source
19371
19550
  #
19372
- # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
19551
+ # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
19552
+ # # data source.
19373
19553
  #
19374
19554
  # resp = client.upload_part_copy({
19375
19555
  # bucket: "examplebucket",
19376
19556
  # copy_source: "/bucketname/sourceobjectkey",
19557
+ # copy_source_range: "bytes=1-100000",
19377
19558
  # key: "examplelargeobject",
19378
- # part_number: 1,
19559
+ # part_number: 2,
19379
19560
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
19380
19561
  # })
19381
19562
  #
19382
19563
  # resp.to_h outputs the following:
19383
19564
  # {
19384
19565
  # copy_part_result: {
19385
- # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
19386
- # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
19566
+ # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
19567
+ # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
19387
19568
  # },
19388
19569
  # }
19389
19570
  #
@@ -19436,7 +19617,7 @@ module Aws::S3
19436
19617
  req.send_request(options)
19437
19618
  end
19438
19619
 
19439
- # <note markdown="1"> This operation is not supported by directory buckets.
19620
+ # <note markdown="1"> This operation is not supported for directory buckets.
19440
19621
  #
19441
19622
  # </note>
19442
19623
  #
@@ -19845,7 +20026,7 @@ module Aws::S3
19845
20026
  tracer: tracer
19846
20027
  )
19847
20028
  context[:gem_name] = 'aws-sdk-s3'
19848
- context[:gem_version] = '1.170.0'
20029
+ context[:gem_version] = '1.173.0'
19849
20030
  Seahorse::Client::Request.new(handlers, context)
19850
20031
  end
19851
20032