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