aws-sdk-s3 1.158.0 → 1.159.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.
@@ -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