aws-sdk-s3 1.158.0 → 1.159.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -797,6 +797,12 @@ module Aws::S3
797
797
  # interruptions when a session expires. For more information about
798
798
  # authorization, see [ `CreateSession` ][7].
799
799
  #
800
+ # * If you provide an [additional checksum value][8] in your
801
+ # `MultipartUpload` requests and the object is encrypted with Key
802
+ # Management Service, you must have permission to use the
803
+ # `kms:Decrypt` action for the `CompleteMultipartUpload` request to
804
+ # succeed.
805
+ #
800
806
  # Special errors
801
807
  # : * Error Code: `EntityTooSmall`
802
808
  #
@@ -836,15 +842,15 @@ module Aws::S3
836
842
  #
837
843
  # The following operations are related to `CompleteMultipartUpload`:
838
844
  #
839
- # * [CreateMultipartUpload][8]
845
+ # * [CreateMultipartUpload][9]
840
846
  #
841
847
  # * [UploadPart][1]
842
848
  #
843
- # * [AbortMultipartUpload][9]
849
+ # * [AbortMultipartUpload][10]
844
850
  #
845
- # * [ListParts][10]
851
+ # * [ListParts][11]
846
852
  #
847
- # * [ListMultipartUploads][11]
853
+ # * [ListMultipartUploads][12]
848
854
  #
849
855
  #
850
856
  #
@@ -855,10 +861,11 @@ module Aws::S3
855
861
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
856
862
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
857
863
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
858
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
859
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
860
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
861
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
864
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
865
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
866
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
867
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
868
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
862
869
  #
863
870
  # @option params [required, String] :bucket
864
871
  # Name of the bucket to which the multipart upload was initiated.
@@ -979,6 +986,26 @@ module Aws::S3
979
986
  # you provide does not match the actual owner of the bucket, the request
980
987
  # fails with the HTTP status code `403 Forbidden` (access denied).
981
988
  #
989
+ # @option params [String] :if_none_match
990
+ # Uploads the object only if the object key name does not already exist
991
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
992
+ # Precondition Failed` error.
993
+ #
994
+ # If a conflicting operation occurs during the upload S3 returns a `409
995
+ # ConditionalRequestConflict` response. On a 409 failure you should
996
+ # re-initiate the multipart upload with `CreateMultipartUpload` and
997
+ # re-upload each part.
998
+ #
999
+ # Expects the '*' (asterisk) character.
1000
+ #
1001
+ # For more information about conditional requests, see [RFC 7232][1], or
1002
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
1003
+ #
1004
+ #
1005
+ #
1006
+ # [1]: https://tools.ietf.org/html/rfc7232
1007
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
1008
+ #
982
1009
  # @option params [String] :sse_customer_algorithm
983
1010
  # The server-side encryption (SSE) algorithm used to encrypt the object.
984
1011
  # This parameter is required only when the object was created using a
@@ -1094,6 +1121,7 @@ module Aws::S3
1094
1121
  # checksum_sha256: "ChecksumSHA256",
1095
1122
  # request_payer: "requester", # accepts requester
1096
1123
  # expected_bucket_owner: "AccountId",
1124
+ # if_none_match: "IfNoneMatch",
1097
1125
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1098
1126
  # sse_customer_key: "SSECustomerKey",
1099
1127
  # sse_customer_key_md5: "SSECustomerKeyMD5",
@@ -2470,24 +2498,23 @@ module Aws::S3
2470
2498
  # Version 4)][5] in the *Amazon S3 User Guide*.
2471
2499
  #
2472
2500
  # Permissions
2473
- # : * **General purpose bucket permissions** - For information about the
2474
- # permissions required to use the multipart upload API, see
2475
- # [Multipart upload and permissions][6] in the *Amazon S3 User
2476
- # Guide*.
2477
- #
2478
- # To perform a multipart upload with encryption by using an Amazon
2479
- # Web Services KMS key, the requester must have permission to the
2480
- # `kms:Decrypt` and `kms:GenerateDataKey*` actions on the key. These
2481
- # permissions are required because Amazon S3 must decrypt and read
2482
- # data from the encrypted file parts before it completes the
2483
- # multipart upload. For more information, see [Multipart upload API
2484
- # and permissions][7] and [Protecting data using server-side
2485
- # encryption with Amazon Web Services KMS][8] in the *Amazon S3 User
2486
- # Guide*.
2501
+ # : * **General purpose bucket permissions** - To perform a multipart
2502
+ # upload with encryption using an Key Management Service (KMS) KMS
2503
+ # key, the requester must have permission to the `kms:Decrypt` and
2504
+ # `kms:GenerateDataKey` actions on the key. The requester must also
2505
+ # have permissions for the `kms:GenerateDataKey` action for the
2506
+ # `CreateMultipartUpload` API. Then, the requester needs permissions
2507
+ # for the `kms:Decrypt` action on the `UploadPart` and
2508
+ # `UploadPartCopy` APIs. These permissions are required because
2509
+ # Amazon S3 must decrypt and read data from the encrypted file parts
2510
+ # before it completes the multipart upload. For more information,
2511
+ # see [Multipart upload API and permissions][6] and [Protecting data
2512
+ # using server-side encryption with Amazon Web Services KMS][7] in
2513
+ # the *Amazon S3 User Guide*.
2487
2514
  #
2488
2515
  # * **Directory bucket permissions** - To grant access to this API
2489
2516
  # operation on a directory bucket, we recommend that you use the [
2490
- # `CreateSession` ][9] API operation for session-based
2517
+ # `CreateSession` ][8] API operation for session-based
2491
2518
  # authorization. Specifically, you grant the
2492
2519
  # `s3express:CreateSession` permission to the directory bucket in a
2493
2520
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -2498,7 +2525,7 @@ module Aws::S3
2498
2525
  # token for use. Amazon Web Services CLI or SDKs create session and
2499
2526
  # refresh the session token automatically to avoid service
2500
2527
  # interruptions when a session expires. For more information about
2501
- # authorization, see [ `CreateSession` ][9].
2528
+ # authorization, see [ `CreateSession` ][8].
2502
2529
  #
2503
2530
  # Encryption
2504
2531
  # : * **General purpose buckets** - Server-side encryption is for data
@@ -2525,7 +2552,7 @@ module Aws::S3
2525
2552
  # the destination bucket, the encryption setting in your request
2526
2553
  # takes precedence. If you choose to provide your own encryption
2527
2554
  # key, the request headers you provide in [UploadPart][1] and
2528
- # [UploadPartCopy][10] requests must match the headers you used in
2555
+ # [UploadPartCopy][9] requests must match the headers you used in
2529
2556
  # the `CreateMultipartUpload` request.
2530
2557
  #
2531
2558
  # * Use KMS keys (SSE-KMS) that include the Amazon Web Services
@@ -2551,9 +2578,9 @@ module Aws::S3
2551
2578
  # actions on the key. These permissions are required because
2552
2579
  # Amazon S3 must decrypt and read data from the encrypted file
2553
2580
  # parts before it completes the multipart upload. For more
2554
- # information, see [Multipart upload API and permissions][7] and
2581
+ # information, see [Multipart upload API and permissions][6] and
2555
2582
  # [Protecting data using server-side encryption with Amazon Web
2556
- # Services KMS][8] in the *Amazon S3 User Guide*.
2583
+ # Services KMS][7] in the *Amazon S3 User Guide*.
2557
2584
  #
2558
2585
  # * If your Identity and Access Management (IAM) user or role is
2559
2586
  # in the same Amazon Web Services account as the KMS key, then
@@ -2568,13 +2595,13 @@ module Aws::S3
2568
2595
  # For information about configuring any of the officially
2569
2596
  # supported Amazon Web Services SDKs and Amazon Web Services
2570
2597
  # CLI, see [Specifying the Signature Version in Request
2571
- # Authentication][11] in the *Amazon S3 User Guide*.
2598
+ # Authentication][10] in the *Amazon S3 User Guide*.
2572
2599
  #
2573
2600
  # </note>
2574
2601
  #
2575
2602
  # For more information about server-side encryption with KMS keys
2576
2603
  # (SSE-KMS), see [Protecting Data Using Server-Side Encryption
2577
- # with KMS keys][8] in the *Amazon S3 User Guide*.
2604
+ # with KMS keys][7] in the *Amazon S3 User Guide*.
2578
2605
  #
2579
2606
  # * Use customer-provided encryption keys (SSE-C) – If you want to
2580
2607
  # manage your own encryption keys, provide all the following
@@ -2589,7 +2616,7 @@ module Aws::S3
2589
2616
  # For more information about server-side encryption with
2590
2617
  # customer-provided encryption keys (SSE-C), see [ Protecting data
2591
2618
  # using server-side encryption with customer-provided encryption
2592
- # keys (SSE-C)][12] in the *Amazon S3 User Guide*.
2619
+ # keys (SSE-C)][11] in the *Amazon S3 User Guide*.
2593
2620
  #
2594
2621
  # * **Directory buckets** -For directory buckets, only server-side
2595
2622
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
@@ -2604,13 +2631,13 @@ module Aws::S3
2604
2631
  #
2605
2632
  # * [UploadPart][1]
2606
2633
  #
2607
- # * [CompleteMultipartUpload][13]
2634
+ # * [CompleteMultipartUpload][12]
2608
2635
  #
2609
- # * [AbortMultipartUpload][14]
2636
+ # * [AbortMultipartUpload][13]
2610
2637
  #
2611
- # * [ListParts][15]
2638
+ # * [ListParts][14]
2612
2639
  #
2613
- # * [ListMultipartUploads][16]
2640
+ # * [ListMultipartUploads][15]
2614
2641
  #
2615
2642
  #
2616
2643
  #
@@ -2619,17 +2646,16 @@ module Aws::S3
2619
2646
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
2620
2647
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
2621
2648
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
2622
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
2623
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
2624
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
2625
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
2626
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2627
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
2628
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
2629
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
2630
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
2631
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
2632
- # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
2649
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
2650
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
2651
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
2652
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2653
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
2654
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
2655
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
2656
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
2657
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
2658
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
2633
2659
  #
2634
2660
  # @option params [String] :acl
2635
2661
  # The canned ACL to apply to the object. Amazon S3 supports a set of
@@ -4634,35 +4660,35 @@ module Aws::S3
4634
4660
  # * {Types::DeleteObjectTaggingOutput#version_id #version_id} => String
4635
4661
  #
4636
4662
  #
4637
- # @example Example: To remove tag set from an object
4663
+ # @example Example: To remove tag set from an object version
4638
4664
  #
4639
- # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
4640
- # # operation removes tag set from the latest object version.
4665
+ # # The following example removes tag set associated with the specified object version. The request specifies both the
4666
+ # # object key and object version.
4641
4667
  #
4642
4668
  # resp = client.delete_object_tagging({
4643
4669
  # bucket: "examplebucket",
4644
4670
  # key: "HappyFace.jpg",
4671
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4645
4672
  # })
4646
4673
  #
4647
4674
  # resp.to_h outputs the following:
4648
4675
  # {
4649
- # version_id: "null",
4676
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4650
4677
  # }
4651
4678
  #
4652
- # @example Example: To remove tag set from an object version
4679
+ # @example Example: To remove tag set from an object
4653
4680
  #
4654
- # # The following example removes tag set associated with the specified object version. The request specifies both the
4655
- # # object key and object version.
4681
+ # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
4682
+ # # operation removes tag set from the latest object version.
4656
4683
  #
4657
4684
  # resp = client.delete_object_tagging({
4658
4685
  # bucket: "examplebucket",
4659
4686
  # key: "HappyFace.jpg",
4660
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4661
4687
  # })
4662
4688
  #
4663
4689
  # resp.to_h outputs the following:
4664
4690
  # {
4665
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4691
+ # version_id: "null",
4666
4692
  # }
4667
4693
  #
4668
4694
  # @example Request syntax with placeholder values
@@ -7679,6 +7705,15 @@ module Aws::S3
7679
7705
  # @option params [String] :checksum_mode
7680
7706
  # To retrieve the checksum, this mode must be enabled.
7681
7707
  #
7708
+ # In addition, if you enable checksum mode and the object is uploaded
7709
+ # with a [checksum][1] and encrypted with an Key Management Service
7710
+ # (KMS) key, you must have permission to use the `kms:Decrypt` action to
7711
+ # retrieve the checksum.
7712
+ #
7713
+ #
7714
+ #
7715
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
7716
+ #
7682
7717
  # @return [Types::GetObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7683
7718
  #
7684
7719
  # * {Types::GetObjectOutput#body #body} => IO
@@ -8762,49 +8797,49 @@ module Aws::S3
8762
8797
  # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array&lt;Types::Tag&gt;
8763
8798
  #
8764
8799
  #
8765
- # @example Example: To retrieve tag set of a specific object version
8800
+ # @example Example: To retrieve tag set of an object
8766
8801
  #
8767
- # # The following example retrieves tag set of an object. The request specifies object version.
8802
+ # # The following example retrieves tag set of an object.
8768
8803
  #
8769
8804
  # resp = client.get_object_tagging({
8770
8805
  # bucket: "examplebucket",
8771
- # key: "exampleobject",
8772
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8806
+ # key: "HappyFace.jpg",
8773
8807
  # })
8774
8808
  #
8775
8809
  # resp.to_h outputs the following:
8776
8810
  # {
8777
8811
  # tag_set: [
8778
8812
  # {
8779
- # key: "Key1",
8780
- # value: "Value1",
8813
+ # key: "Key4",
8814
+ # value: "Value4",
8815
+ # },
8816
+ # {
8817
+ # key: "Key3",
8818
+ # value: "Value3",
8781
8819
  # },
8782
8820
  # ],
8783
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8821
+ # version_id: "null",
8784
8822
  # }
8785
8823
  #
8786
- # @example Example: To retrieve tag set of an object
8824
+ # @example Example: To retrieve tag set of a specific object version
8787
8825
  #
8788
- # # The following example retrieves tag set of an object.
8826
+ # # The following example retrieves tag set of an object. The request specifies object version.
8789
8827
  #
8790
8828
  # resp = client.get_object_tagging({
8791
8829
  # bucket: "examplebucket",
8792
- # key: "HappyFace.jpg",
8830
+ # key: "exampleobject",
8831
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8793
8832
  # })
8794
8833
  #
8795
8834
  # resp.to_h outputs the following:
8796
8835
  # {
8797
8836
  # tag_set: [
8798
8837
  # {
8799
- # key: "Key4",
8800
- # value: "Value4",
8801
- # },
8802
- # {
8803
- # key: "Key3",
8804
- # value: "Value3",
8838
+ # key: "Key1",
8839
+ # value: "Value1",
8805
8840
  # },
8806
8841
  # ],
8807
- # version_id: "null",
8842
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8808
8843
  # }
8809
8844
  #
8810
8845
  # @example Request syntax with placeholder values
@@ -9540,10 +9575,14 @@ module Aws::S3
9540
9575
  # @option params [String] :checksum_mode
9541
9576
  # To retrieve the checksum, this parameter must be enabled.
9542
9577
  #
9543
- # In addition, if you enable `ChecksumMode` and the object is encrypted
9544
- # with Amazon Web Services Key Management Service (Amazon Web Services
9545
- # KMS), you must have permission to use the `kms:Decrypt` action for the
9546
- # request to succeed.
9578
+ # In addition, if you enable checksum mode and the object is uploaded
9579
+ # with a [checksum][1] and encrypted with an Key Management Service
9580
+ # (KMS) key, you must have permission to use the `kms:Decrypt` action to
9581
+ # retrieve the checksum.
9582
+ #
9583
+ #
9584
+ #
9585
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
9547
9586
  #
9548
9587
  # @return [Types::HeadObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9549
9588
  #
@@ -15313,6 +15352,25 @@ module Aws::S3
15313
15352
  #
15314
15353
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
15315
15354
  #
15355
+ # @option params [String] :if_none_match
15356
+ # Uploads the object only if the object key name does not already exist
15357
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
15358
+ # Precondition Failed` error.
15359
+ #
15360
+ # If a conflicting operation occurs during the upload S3 returns a `409
15361
+ # ConditionalRequestConflict` response. On a 409 failure you should
15362
+ # retry the upload.
15363
+ #
15364
+ # Expects the '*' (asterisk) character.
15365
+ #
15366
+ # For more information about conditional requests, see [RFC 7232][1], or
15367
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
15368
+ #
15369
+ #
15370
+ #
15371
+ # [1]: https://tools.ietf.org/html/rfc7232
15372
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
15373
+ #
15316
15374
  # @option params [String] :grant_full_control
15317
15375
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
15318
15376
  # object.
@@ -15576,6 +15634,26 @@ module Aws::S3
15576
15634
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
15577
15635
  #
15578
15636
  #
15637
+ # @example Example: To upload an object (specify optional headers)
15638
+ #
15639
+ # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
15640
+ # # storage class and use server-side encryption.
15641
+ #
15642
+ # resp = client.put_object({
15643
+ # body: "HappyFace.jpg",
15644
+ # bucket: "examplebucket",
15645
+ # key: "HappyFace.jpg",
15646
+ # server_side_encryption: "AES256",
15647
+ # storage_class: "STANDARD_IA",
15648
+ # })
15649
+ #
15650
+ # resp.to_h outputs the following:
15651
+ # {
15652
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15653
+ # server_side_encryption: "AES256",
15654
+ # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15655
+ # }
15656
+ #
15579
15657
  # @example Example: To create an object.
15580
15658
  #
15581
15659
  # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
@@ -15592,62 +15670,57 @@ module Aws::S3
15592
15670
  # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15593
15671
  # }
15594
15672
  #
15595
- # @example Example: To upload an object (specify optional headers)
15673
+ # @example Example: To upload an object
15596
15674
  #
15597
- # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
15598
- # # storage class and use server-side encryption.
15675
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15676
+ # # syntax. S3 returns VersionId of the newly created object.
15599
15677
  #
15600
15678
  # resp = client.put_object({
15601
15679
  # body: "HappyFace.jpg",
15602
15680
  # bucket: "examplebucket",
15603
15681
  # key: "HappyFace.jpg",
15604
- # server_side_encryption: "AES256",
15605
- # storage_class: "STANDARD_IA",
15606
15682
  # })
15607
15683
  #
15608
15684
  # resp.to_h outputs the following:
15609
15685
  # {
15610
15686
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15611
- # server_side_encryption: "AES256",
15612
- # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15687
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15613
15688
  # }
15614
15689
  #
15615
- # @example Example: To upload an object and specify canned ACL.
15690
+ # @example Example: To upload an object and specify optional tags
15616
15691
  #
15617
- # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
15618
- # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
15692
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
15693
+ # # S3 returns version ID of the newly created object.
15619
15694
  #
15620
15695
  # resp = client.put_object({
15621
- # acl: "authenticated-read",
15622
- # body: "filetoupload",
15696
+ # body: "c:\\HappyFace.jpg",
15623
15697
  # bucket: "examplebucket",
15624
- # key: "exampleobject",
15698
+ # key: "HappyFace.jpg",
15699
+ # tagging: "key1=value1&key2=value2",
15625
15700
  # })
15626
15701
  #
15627
15702
  # resp.to_h outputs the following:
15628
15703
  # {
15629
15704
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15630
- # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
15705
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15631
15706
  # }
15632
15707
  #
15633
- # @example Example: To upload an object and specify server-side encryption and object tags
15708
+ # @example Example: To upload an object and specify canned ACL.
15634
15709
  #
15635
- # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
15636
- # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
15710
+ # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
15711
+ # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
15637
15712
  #
15638
15713
  # resp = client.put_object({
15714
+ # acl: "authenticated-read",
15639
15715
  # body: "filetoupload",
15640
15716
  # bucket: "examplebucket",
15641
15717
  # key: "exampleobject",
15642
- # server_side_encryption: "AES256",
15643
- # tagging: "key1=value1&key2=value2",
15644
15718
  # })
15645
15719
  #
15646
15720
  # resp.to_h outputs the following:
15647
15721
  # {
15648
15722
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15649
- # server_side_encryption: "AES256",
15650
- # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15723
+ # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
15651
15724
  # }
15652
15725
  #
15653
15726
  # @example Example: To upload object and specify user-defined metadata
@@ -15671,39 +15744,24 @@ module Aws::S3
15671
15744
  # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15672
15745
  # }
15673
15746
  #
15674
- # @example Example: To upload an object
15675
- #
15676
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15677
- # # syntax. S3 returns VersionId of the newly created object.
15678
- #
15679
- # resp = client.put_object({
15680
- # body: "HappyFace.jpg",
15681
- # bucket: "examplebucket",
15682
- # key: "HappyFace.jpg",
15683
- # })
15684
- #
15685
- # resp.to_h outputs the following:
15686
- # {
15687
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15688
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15689
- # }
15690
- #
15691
- # @example Example: To upload an object and specify optional tags
15747
+ # @example Example: To upload an object and specify server-side encryption and object tags
15692
15748
  #
15693
- # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
15694
- # # S3 returns version ID of the newly created object.
15749
+ # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
15750
+ # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
15695
15751
  #
15696
15752
  # resp = client.put_object({
15697
- # body: "c:\\HappyFace.jpg",
15753
+ # body: "filetoupload",
15698
15754
  # bucket: "examplebucket",
15699
- # key: "HappyFace.jpg",
15755
+ # key: "exampleobject",
15756
+ # server_side_encryption: "AES256",
15700
15757
  # tagging: "key1=value1&key2=value2",
15701
15758
  # })
15702
15759
  #
15703
15760
  # resp.to_h outputs the following:
15704
15761
  # {
15705
15762
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15706
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15763
+ # server_side_encryption: "AES256",
15764
+ # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15707
15765
  # }
15708
15766
  #
15709
15767
  # @example Streaming a file from disk
@@ -15731,6 +15789,7 @@ module Aws::S3
15731
15789
  # checksum_sha1: "ChecksumSHA1",
15732
15790
  # checksum_sha256: "ChecksumSHA256",
15733
15791
  # expires: Time.now,
15792
+ # if_none_match: "IfNoneMatch",
15734
15793
  # grant_full_control: "GrantFullControl",
15735
15794
  # grant_read: "GrantRead",
15736
15795
  # grant_read_acp: "GrantReadACP",
@@ -16830,6 +16889,10 @@ module Aws::S3
16830
16889
  #
16831
16890
  # </note>
16832
16891
  #
16892
+ # The `SELECT` job type for the RestoreObject operation is no longer
16893
+ # available to new customers. Existing customers of Amazon S3 Select can
16894
+ # continue to use the feature as usual. [Learn more][1]
16895
+ #
16833
16896
  # Restores an archived copy of an object back into Amazon S3
16834
16897
  #
16835
16898
  # This functionality is not supported for Amazon S3 on Outposts.
@@ -16843,11 +16906,11 @@ module Aws::S3
16843
16906
  # For more information about the `S3` structure in the request body, see
16844
16907
  # the following:
16845
16908
  #
16846
- # * [PutObject][1]
16909
+ # * [PutObject][2]
16847
16910
  #
16848
- # * [Managing Access with ACLs][2] in the *Amazon S3 User Guide*
16911
+ # * [Managing Access with ACLs][3] in the *Amazon S3 User Guide*
16849
16912
  #
16850
- # * [Protecting Data Using Server-Side Encryption][3] in the *Amazon S3
16913
+ # * [Protecting Data Using Server-Side Encryption][4] in the *Amazon S3
16851
16914
  # User Guide*
16852
16915
  #
16853
16916
  # Permissions
@@ -16856,8 +16919,8 @@ module Aws::S3
16856
16919
  # `s3:RestoreObject` action. The bucket owner has this permission by
16857
16920
  # default and can grant this permission to others. For more
16858
16921
  # information about permissions, see [Permissions Related to Bucket
16859
- # Subresource Operations][4] and [Managing Access Permissions to Your
16860
- # Amazon S3 Resources][5] in the *Amazon S3 User Guide*.
16922
+ # Subresource Operations][5] and [Managing Access Permissions to Your
16923
+ # Amazon S3 Resources][6] in the *Amazon S3 User Guide*.
16861
16924
  #
16862
16925
  # Restoring objects
16863
16926
  #
@@ -16920,11 +16983,11 @@ module Aws::S3
16920
16983
  #
16921
16984
  # For more information about archive retrieval options and provisioned
16922
16985
  # capacity for `Expedited` data access, see [Restoring Archived
16923
- # Objects][6] in the *Amazon S3 User Guide*.
16986
+ # Objects][7] in the *Amazon S3 User Guide*.
16924
16987
  #
16925
16988
  # You can use Amazon S3 restore speed upgrade to change the restore
16926
16989
  # speed to a faster speed while it is in progress. For more
16927
- # information, see [ Upgrading the speed of an in-progress restore][7]
16990
+ # information, see [ Upgrading the speed of an in-progress restore][8]
16928
16991
  # in the *Amazon S3 User Guide*.
16929
16992
  #
16930
16993
  # To get the status of object restoration, you can send a `HEAD`
@@ -16932,7 +16995,7 @@ module Aws::S3
16932
16995
  # provides information about the restoration status, in the response.
16933
16996
  # You can use Amazon S3 event notifications to notify you when a
16934
16997
  # restore is initiated or completed. For more information, see
16935
- # [Configuring Amazon S3 Event Notifications][8] in the *Amazon S3
16998
+ # [Configuring Amazon S3 Event Notifications][9] in the *Amazon S3
16936
16999
  # User Guide*.
16937
17000
  #
16938
17001
  # After restoring an archived object, you can update the restoration
@@ -16948,8 +17011,8 @@ module Aws::S3
16948
17011
  # restore an object copy for 10 days, but the object is scheduled to
16949
17012
  # expire in 3 days, Amazon S3 deletes the object in 3 days. For more
16950
17013
  # information about lifecycle configuration, see
16951
- # [PutBucketLifecycleConfiguration][9] and [Object Lifecycle
16952
- # Management][10] in *Amazon S3 User Guide*.
17014
+ # [PutBucketLifecycleConfiguration][10] and [Object Lifecycle
17015
+ # Management][11] in *Amazon S3 User Guide*.
16953
17016
  #
16954
17017
  # Responses
16955
17018
  #
@@ -16987,23 +17050,24 @@ module Aws::S3
16987
17050
  #
16988
17051
  # The following operations are related to `RestoreObject`:
16989
17052
  #
16990
- # * [PutBucketLifecycleConfiguration][9]
17053
+ # * [PutBucketLifecycleConfiguration][10]
16991
17054
  #
16992
- # * [GetBucketNotificationConfiguration][11]
17055
+ # * [GetBucketNotificationConfiguration][12]
16993
17056
  #
16994
17057
  #
16995
17058
  #
16996
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
16997
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
16998
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
16999
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
17000
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
17001
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
17002
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html
17003
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
17004
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17005
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
17006
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html
17059
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
17060
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
17061
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
17062
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17063
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
17064
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
17065
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
17066
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html
17067
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
17068
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17069
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
17070
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html
17007
17071
  #
17008
17072
  # @option params [required, String] :bucket
17009
17073
  # The bucket name containing the object to restore.
@@ -17215,6 +17279,10 @@ module Aws::S3
17215
17279
  #
17216
17280
  # </note>
17217
17281
  #
17282
+ # The SelectObjectContent operation is no longer available to new
17283
+ # customers. Existing customers of Amazon S3 Select can continue to use
17284
+ # the operation as usual. [Learn more][1]
17285
+ #
17218
17286
  # This action filters the contents of an Amazon S3 object based on a
17219
17287
  # simple structured query language (SQL) statement. In the request,
17220
17288
  # along with the SQL expression, you must also specify a data
@@ -17226,7 +17294,7 @@ module Aws::S3
17226
17294
  # This functionality is not supported for Amazon S3 on Outposts.
17227
17295
  #
17228
17296
  # For more information about Amazon S3 Select, see [Selecting Content
17229
- # from Objects][1] and [SELECT Command][2] in the *Amazon S3 User
17297
+ # from Objects][2] and [SELECT Command][3] in the *Amazon S3 User
17230
17298
  # Guide*.
17231
17299
  #
17232
17300
  #
@@ -17236,7 +17304,7 @@ module Aws::S3
17236
17304
  # : You must have the `s3:GetObject` permission for this
17237
17305
  # operation. Amazon S3 Select does not support anonymous access. For
17238
17306
  # more information about permissions, see [Specifying Permissions in a
17239
- # Policy][3] in the *Amazon S3 User Guide*.
17307
+ # Policy][4] in the *Amazon S3 User Guide*.
17240
17308
  #
17241
17309
  # Object Data Formats
17242
17310
  #
@@ -17261,31 +17329,31 @@ module Aws::S3
17261
17329
  #
17262
17330
  # For objects that are encrypted with customer-provided encryption
17263
17331
  # keys (SSE-C), you must use HTTPS, and you must use the headers
17264
- # that are documented in the [GetObject][4]. For more information
17332
+ # that are documented in the [GetObject][5]. For more information
17265
17333
  # about SSE-C, see [Server-Side Encryption (Using Customer-Provided
17266
- # Encryption Keys)][5] in the *Amazon S3 User Guide*.
17334
+ # Encryption Keys)][6] in the *Amazon S3 User Guide*.
17267
17335
  #
17268
17336
  # For objects that are encrypted with Amazon S3 managed keys
17269
17337
  # (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side
17270
17338
  # encryption is handled transparently, so you don't need to specify
17271
17339
  # anything. For more information about server-side encryption,
17272
17340
  # including SSE-S3 and SSE-KMS, see [Protecting Data Using
17273
- # Server-Side Encryption][6] in the *Amazon S3 User Guide*.
17341
+ # Server-Side Encryption][7] in the *Amazon S3 User Guide*.
17274
17342
  #
17275
17343
  # Working with the Response Body
17276
17344
  #
17277
17345
  # : Given the response size is unknown, Amazon S3 Select streams the
17278
17346
  # response as a series of messages and includes a `Transfer-Encoding`
17279
17347
  # header with `chunked` as its value in the response. For more
17280
- # information, see [Appendix: SelectObjectContent Response][7].
17348
+ # information, see [Appendix: SelectObjectContent Response][8].
17281
17349
  #
17282
17350
  # GetObject Support
17283
17351
  #
17284
17352
  # : The `SelectObjectContent` action does not support the following
17285
- # `GetObject` functionality. For more information, see [GetObject][4].
17353
+ # `GetObject` functionality. For more information, see [GetObject][5].
17286
17354
  #
17287
17355
  # * `Range`: Although you can specify a scan range for an Amazon S3
17288
- # Select request (see [SelectObjectContentRequest - ScanRange][8] in
17356
+ # Select request (see [SelectObjectContentRequest - ScanRange][9] in
17289
17357
  # the request parameters), you cannot specify the range of bytes of
17290
17358
  # an object to return.
17291
17359
  #
@@ -17296,36 +17364,37 @@ module Aws::S3
17296
17364
  # storage classes, nor objects in the `ARCHIVE_ACCESS` or
17297
17365
  # `DEEP_ARCHIVE_ACCESS` access tiers of the `INTELLIGENT_TIERING`
17298
17366
  # storage class. For more information about storage classes, see
17299
- # [Using Amazon S3 storage classes][9] in the *Amazon S3 User
17367
+ # [Using Amazon S3 storage classes][10] in the *Amazon S3 User
17300
17368
  # Guide*.
17301
17369
  #
17302
17370
  # Special Errors
17303
17371
  #
17304
17372
  # : For a list of special errors for this operation, see [List of SELECT
17305
- # Object Content Error Codes][10]
17373
+ # Object Content Error Codes][11]
17306
17374
  #
17307
17375
  # The following operations are related to `SelectObjectContent`:
17308
17376
  #
17309
- # * [GetObject][4]
17377
+ # * [GetObject][5]
17310
17378
  #
17311
- # * [GetBucketLifecycleConfiguration][11]
17379
+ # * [GetBucketLifecycleConfiguration][12]
17312
17380
  #
17313
- # * [PutBucketLifecycleConfiguration][12]
17381
+ # * [PutBucketLifecycleConfiguration][13]
17314
17382
  #
17315
17383
  #
17316
17384
  #
17317
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
17318
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html
17319
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
17320
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
17321
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
17322
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17323
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html
17324
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange
17325
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
17326
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList
17327
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
17328
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17385
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
17386
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
17387
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html
17388
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
17389
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
17390
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
17391
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17392
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html
17393
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange
17394
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
17395
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList
17396
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
17397
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17329
17398
  #
17330
17399
  # @option params [required, String] :bucket
17331
17400
  # The S3 bucket.
@@ -17672,14 +17741,27 @@ module Aws::S3
17672
17741
  # </note>
17673
17742
  #
17674
17743
  # Permissions
17675
- # : * **General purpose bucket permissions** - For information on the
17676
- # permissions required to use the multipart upload API, see
17677
- # [Multipart Upload and Permissions][6] in the *Amazon S3 User
17678
- # Guide*.
17744
+ # : * **General purpose bucket permissions** - To perform a multipart
17745
+ # upload with encryption using an Key Management Service key, the
17746
+ # requester must have permission to the `kms:Decrypt` and
17747
+ # `kms:GenerateDataKey` actions on the key. The requester must also
17748
+ # have permissions for the `kms:GenerateDataKey` action for the
17749
+ # `CreateMultipartUpload` API. Then, the requester needs permissions
17750
+ # for the `kms:Decrypt` action on the `UploadPart` and
17751
+ # `UploadPartCopy` APIs.
17752
+ #
17753
+ # These permissions are required because Amazon S3 must decrypt and
17754
+ # read data from the encrypted file parts before it completes the
17755
+ # multipart upload. For more information about KMS permissions, see
17756
+ # [Protecting data using server-side encryption with KMS][6] in the
17757
+ # *Amazon S3 User Guide*. For information about the permissions
17758
+ # required to use the multipart upload API, see [Multipart upload
17759
+ # and permissions][7] and [Multipart upload API and permissions][8]
17760
+ # in the *Amazon S3 User Guide*.
17679
17761
  #
17680
17762
  # * **Directory bucket permissions** - To grant access to this API
17681
17763
  # operation on a directory bucket, we recommend that you use the [
17682
- # `CreateSession` ][7] API operation for session-based
17764
+ # `CreateSession` ][9] API operation for session-based
17683
17765
  # authorization. Specifically, you grant the
17684
17766
  # `s3express:CreateSession` permission to the directory bucket in a
17685
17767
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -17690,7 +17772,7 @@ module Aws::S3
17690
17772
  # token for use. Amazon Web Services CLI or SDKs create session and
17691
17773
  # refresh the session token automatically to avoid service
17692
17774
  # interruptions when a session expires. For more information about
17693
- # authorization, see [ `CreateSession` ][7].
17775
+ # authorization, see [ `CreateSession` ][9].
17694
17776
  #
17695
17777
  # Data integrity
17696
17778
  #
@@ -17702,7 +17784,7 @@ module Aws::S3
17702
17784
  # then Amazon Web Services S3 uses the `x-amz-content-sha256` header
17703
17785
  # as a checksum instead of `Content-MD5`. For more information see
17704
17786
  # [Authenticating Requests: Using the Authorization Header (Amazon Web
17705
- # Services Signature Version 4)][8].
17787
+ # Services Signature Version 4)][10].
17706
17788
  #
17707
17789
  # <note markdown="1"> **Directory buckets** - MD5 is not supported by directory buckets.
17708
17790
  # You can use checksum algorithms to check object integrity.
@@ -17747,7 +17829,7 @@ module Aws::S3
17747
17829
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
17748
17830
  # supported.
17749
17831
  #
17750
- # For more information, see [Using Server-Side Encryption][9] in the
17832
+ # For more information, see [Using Server-Side Encryption][11] in the
17751
17833
  # *Amazon S3 User Guide*.
17752
17834
  #
17753
17835
  # Special errors
@@ -17770,13 +17852,13 @@ module Aws::S3
17770
17852
  #
17771
17853
  # * [CreateMultipartUpload][2]
17772
17854
  #
17773
- # * [CompleteMultipartUpload][10]
17855
+ # * [CompleteMultipartUpload][12]
17774
17856
  #
17775
- # * [AbortMultipartUpload][11]
17857
+ # * [AbortMultipartUpload][13]
17776
17858
  #
17777
- # * [ListParts][12]
17859
+ # * [ListParts][14]
17778
17860
  #
17779
- # * [ListMultipartUploads][13]
17861
+ # * [ListMultipartUploads][15]
17780
17862
  #
17781
17863
  #
17782
17864
  #
@@ -17785,14 +17867,16 @@ module Aws::S3
17785
17867
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html
17786
17868
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
17787
17869
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
17788
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
17789
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
17790
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
17791
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
17792
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
17793
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
17794
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
17795
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
17870
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
17871
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
17872
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
17873
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
17874
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
17875
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
17876
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
17877
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
17878
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
17879
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
17796
17880
  #
17797
17881
  # @option params [String, StringIO, File] :body
17798
17882
  # Object data.
@@ -18125,9 +18209,21 @@ module Aws::S3
18125
18209
  # have the <b> <code>s3:PutObject</code> </b> permission to write
18126
18210
  # the object copy to the destination bucket.
18127
18211
  #
18128
- # For information about permissions required to use the multipart
18129
- # upload API, see [Multipart upload API and permissions][7] in the
18130
- # *Amazon S3 User Guide*.
18212
+ # * To perform a multipart upload with encryption using an Key
18213
+ # Management Service key, the requester must have permission to
18214
+ # the `kms:Decrypt` and `kms:GenerateDataKey` actions on the key.
18215
+ # The requester must also have permissions for the
18216
+ # `kms:GenerateDataKey` action for the `CreateMultipartUpload`
18217
+ # API. Then, the requester needs permissions for the `kms:Decrypt`
18218
+ # action on the `UploadPart` and `UploadPartCopy` APIs. These
18219
+ # permissions are required because Amazon S3 must decrypt and read
18220
+ # data from the encrypted file parts before it completes the
18221
+ # multipart upload. For more information about KMS permissions,
18222
+ # see [Protecting data using server-side encryption with KMS][7]
18223
+ # in the *Amazon S3 User Guide*. For information about the
18224
+ # permissions required to use the multipart upload API, see
18225
+ # [Multipart upload and permissions][8] and [Multipart upload API
18226
+ # and permissions][9] in the *Amazon S3 User Guide*.
18131
18227
  #
18132
18228
  # * **Directory bucket permissions** - You must have permissions in a
18133
18229
  # bucket policy or an IAM identity-based policy based on the source
@@ -18148,14 +18244,14 @@ module Aws::S3
18148
18244
  # set to `ReadOnly` on the copy destination.
18149
18245
  #
18150
18246
  # For example policies, see [Example bucket policies for S3 Express
18151
- # One Zone][8] and [Amazon Web Services Identity and Access
18247
+ # One Zone][10] and [Amazon Web Services Identity and Access
18152
18248
  # Management (IAM) identity-based policies for S3 Express One
18153
- # Zone][9] in the *Amazon S3 User Guide*.
18249
+ # Zone][11] in the *Amazon S3 User Guide*.
18154
18250
  #
18155
18251
  # Encryption
18156
18252
  # : * <b>General purpose buckets </b> - For information about using
18157
18253
  # server-side encryption with customer-provided encryption keys with
18158
- # the `UploadPartCopy` operation, see [CopyObject][10] and
18254
+ # the `UploadPartCopy` operation, see [CopyObject][12] and
18159
18255
  # [UploadPart][2].
18160
18256
  #
18161
18257
  # * <b>Directory buckets </b> - For directory buckets, only
@@ -18185,17 +18281,17 @@ module Aws::S3
18185
18281
  #
18186
18282
  # The following operations are related to `UploadPartCopy`:
18187
18283
  #
18188
- # * [CreateMultipartUpload][11]
18284
+ # * [CreateMultipartUpload][13]
18189
18285
  #
18190
18286
  # * [UploadPart][2]
18191
18287
  #
18192
- # * [CompleteMultipartUpload][12]
18288
+ # * [CompleteMultipartUpload][14]
18193
18289
  #
18194
- # * [AbortMultipartUpload][13]
18290
+ # * [AbortMultipartUpload][15]
18195
18291
  #
18196
- # * [ListParts][14]
18292
+ # * [ListParts][16]
18197
18293
  #
18198
- # * [ListMultipartUploads][15]
18294
+ # * [ListMultipartUploads][17]
18199
18295
  #
18200
18296
  #
18201
18297
  #
@@ -18205,15 +18301,17 @@ module Aws::S3
18205
18301
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html
18206
18302
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
18207
18303
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
18208
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
18209
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
18210
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
18211
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
18212
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
18213
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
18214
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
18215
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
18216
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
18304
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
18305
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
18306
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
18307
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
18308
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
18309
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
18310
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
18311
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
18312
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
18313
+ # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
18314
+ # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
18217
18315
  #
18218
18316
  # @option params [required, String] :bucket
18219
18317
  # The bucket name.
@@ -18994,7 +19092,7 @@ module Aws::S3
18994
19092
  params: params,
18995
19093
  config: config)
18996
19094
  context[:gem_name] = 'aws-sdk-s3'
18997
- context[:gem_version] = '1.158.0'
19095
+ context[:gem_version] = '1.159.0'
18998
19096
  Seahorse::Client::Request.new(handlers, context)
18999
19097
  end
19000
19098