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