aws-sdk-s3 1.158.0 → 1.160.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.
@@ -32,6 +32,7 @@ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
32
  require 'aws-sdk-core/plugins/request_compression.rb'
33
33
  require 'aws-sdk-core/plugins/defaults_mode.rb'
34
34
  require 'aws-sdk-core/plugins/recursion_detection.rb'
35
+ require 'aws-sdk-core/plugins/telemetry.rb'
35
36
  require 'aws-sdk-core/plugins/sign.rb'
36
37
  require 'aws-sdk-core/plugins/protocols/rest_xml.rb'
37
38
  require 'aws-sdk-s3/plugins/accelerate.rb'
@@ -104,6 +105,7 @@ module Aws::S3
104
105
  add_plugin(Aws::Plugins::RequestCompression)
105
106
  add_plugin(Aws::Plugins::DefaultsMode)
106
107
  add_plugin(Aws::Plugins::RecursionDetection)
108
+ add_plugin(Aws::Plugins::Telemetry)
107
109
  add_plugin(Aws::Plugins::Sign)
108
110
  add_plugin(Aws::Plugins::Protocols::RestXml)
109
111
  add_plugin(Aws::S3::Plugins::Accelerate)
@@ -432,6 +434,16 @@ module Aws::S3
432
434
  # ** Please note ** When response stubbing is enabled, no HTTP
433
435
  # requests are made, and retries are disabled.
434
436
  #
437
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
438
+ # Allows you to provide a telemetry provider, which is used to
439
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
440
+ # will not record or emit any telemetry data. The SDK supports the
441
+ # following telemetry providers:
442
+ #
443
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
444
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
445
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
446
+ #
435
447
  # @option options [Aws::TokenProvider] :token_provider
436
448
  # A Bearer Token Provider. This can be an instance of any one of the
437
449
  # following classes:
@@ -797,6 +809,12 @@ module Aws::S3
797
809
  # interruptions when a session expires. For more information about
798
810
  # authorization, see [ `CreateSession` ][7].
799
811
  #
812
+ # * If you provide an [additional checksum value][8] in your
813
+ # `MultipartUpload` requests and the object is encrypted with Key
814
+ # Management Service, you must have permission to use the
815
+ # `kms:Decrypt` action for the `CompleteMultipartUpload` request to
816
+ # succeed.
817
+ #
800
818
  # Special errors
801
819
  # : * Error Code: `EntityTooSmall`
802
820
  #
@@ -836,15 +854,15 @@ module Aws::S3
836
854
  #
837
855
  # The following operations are related to `CompleteMultipartUpload`:
838
856
  #
839
- # * [CreateMultipartUpload][8]
857
+ # * [CreateMultipartUpload][9]
840
858
  #
841
859
  # * [UploadPart][1]
842
860
  #
843
- # * [AbortMultipartUpload][9]
861
+ # * [AbortMultipartUpload][10]
844
862
  #
845
- # * [ListParts][10]
863
+ # * [ListParts][11]
846
864
  #
847
- # * [ListMultipartUploads][11]
865
+ # * [ListMultipartUploads][12]
848
866
  #
849
867
  #
850
868
  #
@@ -855,10 +873,11 @@ module Aws::S3
855
873
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
856
874
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
857
875
  # [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
876
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
877
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
878
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
879
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
880
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
862
881
  #
863
882
  # @option params [required, String] :bucket
864
883
  # Name of the bucket to which the multipart upload was initiated.
@@ -979,6 +998,26 @@ module Aws::S3
979
998
  # you provide does not match the actual owner of the bucket, the request
980
999
  # fails with the HTTP status code `403 Forbidden` (access denied).
981
1000
  #
1001
+ # @option params [String] :if_none_match
1002
+ # Uploads the object only if the object key name does not already exist
1003
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
1004
+ # Precondition Failed` error.
1005
+ #
1006
+ # If a conflicting operation occurs during the upload S3 returns a `409
1007
+ # ConditionalRequestConflict` response. On a 409 failure you should
1008
+ # re-initiate the multipart upload with `CreateMultipartUpload` and
1009
+ # re-upload each part.
1010
+ #
1011
+ # Expects the '*' (asterisk) character.
1012
+ #
1013
+ # For more information about conditional requests, see [RFC 7232][1], or
1014
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
1015
+ #
1016
+ #
1017
+ #
1018
+ # [1]: https://tools.ietf.org/html/rfc7232
1019
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
1020
+ #
982
1021
  # @option params [String] :sse_customer_algorithm
983
1022
  # The server-side encryption (SSE) algorithm used to encrypt the object.
984
1023
  # This parameter is required only when the object was created using a
@@ -1094,6 +1133,7 @@ module Aws::S3
1094
1133
  # checksum_sha256: "ChecksumSHA256",
1095
1134
  # request_payer: "requester", # accepts requester
1096
1135
  # expected_bucket_owner: "AccountId",
1136
+ # if_none_match: "IfNoneMatch",
1097
1137
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1098
1138
  # sse_customer_key: "SSECustomerKey",
1099
1139
  # sse_customer_key_md5: "SSECustomerKeyMD5",
@@ -2470,24 +2510,23 @@ module Aws::S3
2470
2510
  # Version 4)][5] in the *Amazon S3 User Guide*.
2471
2511
  #
2472
2512
  # 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*.
2513
+ # : * **General purpose bucket permissions** - To perform a multipart
2514
+ # upload with encryption using an Key Management Service (KMS) KMS
2515
+ # key, the requester must have permission to the `kms:Decrypt` and
2516
+ # `kms:GenerateDataKey` actions on the key. The requester must also
2517
+ # have permissions for the `kms:GenerateDataKey` action for the
2518
+ # `CreateMultipartUpload` API. Then, the requester needs permissions
2519
+ # for the `kms:Decrypt` action on the `UploadPart` and
2520
+ # `UploadPartCopy` APIs. These permissions are required because
2521
+ # Amazon S3 must decrypt and read data from the encrypted file parts
2522
+ # before it completes the multipart upload. For more information,
2523
+ # see [Multipart upload API and permissions][6] and [Protecting data
2524
+ # using server-side encryption with Amazon Web Services KMS][7] in
2525
+ # the *Amazon S3 User Guide*.
2487
2526
  #
2488
2527
  # * **Directory bucket permissions** - To grant access to this API
2489
2528
  # operation on a directory bucket, we recommend that you use the [
2490
- # `CreateSession` ][9] API operation for session-based
2529
+ # `CreateSession` ][8] API operation for session-based
2491
2530
  # authorization. Specifically, you grant the
2492
2531
  # `s3express:CreateSession` permission to the directory bucket in a
2493
2532
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -2498,7 +2537,7 @@ module Aws::S3
2498
2537
  # token for use. Amazon Web Services CLI or SDKs create session and
2499
2538
  # refresh the session token automatically to avoid service
2500
2539
  # interruptions when a session expires. For more information about
2501
- # authorization, see [ `CreateSession` ][9].
2540
+ # authorization, see [ `CreateSession` ][8].
2502
2541
  #
2503
2542
  # Encryption
2504
2543
  # : * **General purpose buckets** - Server-side encryption is for data
@@ -2525,7 +2564,7 @@ module Aws::S3
2525
2564
  # the destination bucket, the encryption setting in your request
2526
2565
  # takes precedence. If you choose to provide your own encryption
2527
2566
  # key, the request headers you provide in [UploadPart][1] and
2528
- # [UploadPartCopy][10] requests must match the headers you used in
2567
+ # [UploadPartCopy][9] requests must match the headers you used in
2529
2568
  # the `CreateMultipartUpload` request.
2530
2569
  #
2531
2570
  # * Use KMS keys (SSE-KMS) that include the Amazon Web Services
@@ -2551,9 +2590,9 @@ module Aws::S3
2551
2590
  # actions on the key. These permissions are required because
2552
2591
  # Amazon S3 must decrypt and read data from the encrypted file
2553
2592
  # parts before it completes the multipart upload. For more
2554
- # information, see [Multipart upload API and permissions][7] and
2593
+ # information, see [Multipart upload API and permissions][6] and
2555
2594
  # [Protecting data using server-side encryption with Amazon Web
2556
- # Services KMS][8] in the *Amazon S3 User Guide*.
2595
+ # Services KMS][7] in the *Amazon S3 User Guide*.
2557
2596
  #
2558
2597
  # * If your Identity and Access Management (IAM) user or role is
2559
2598
  # in the same Amazon Web Services account as the KMS key, then
@@ -2568,13 +2607,13 @@ module Aws::S3
2568
2607
  # For information about configuring any of the officially
2569
2608
  # supported Amazon Web Services SDKs and Amazon Web Services
2570
2609
  # CLI, see [Specifying the Signature Version in Request
2571
- # Authentication][11] in the *Amazon S3 User Guide*.
2610
+ # Authentication][10] in the *Amazon S3 User Guide*.
2572
2611
  #
2573
2612
  # </note>
2574
2613
  #
2575
2614
  # For more information about server-side encryption with KMS keys
2576
2615
  # (SSE-KMS), see [Protecting Data Using Server-Side Encryption
2577
- # with KMS keys][8] in the *Amazon S3 User Guide*.
2616
+ # with KMS keys][7] in the *Amazon S3 User Guide*.
2578
2617
  #
2579
2618
  # * Use customer-provided encryption keys (SSE-C) – If you want to
2580
2619
  # manage your own encryption keys, provide all the following
@@ -2589,7 +2628,7 @@ module Aws::S3
2589
2628
  # For more information about server-side encryption with
2590
2629
  # customer-provided encryption keys (SSE-C), see [ Protecting data
2591
2630
  # using server-side encryption with customer-provided encryption
2592
- # keys (SSE-C)][12] in the *Amazon S3 User Guide*.
2631
+ # keys (SSE-C)][11] in the *Amazon S3 User Guide*.
2593
2632
  #
2594
2633
  # * **Directory buckets** -For directory buckets, only server-side
2595
2634
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
@@ -2604,13 +2643,13 @@ module Aws::S3
2604
2643
  #
2605
2644
  # * [UploadPart][1]
2606
2645
  #
2607
- # * [CompleteMultipartUpload][13]
2646
+ # * [CompleteMultipartUpload][12]
2608
2647
  #
2609
- # * [AbortMultipartUpload][14]
2648
+ # * [AbortMultipartUpload][13]
2610
2649
  #
2611
- # * [ListParts][15]
2650
+ # * [ListParts][14]
2612
2651
  #
2613
- # * [ListMultipartUploads][16]
2652
+ # * [ListMultipartUploads][15]
2614
2653
  #
2615
2654
  #
2616
2655
  #
@@ -2619,17 +2658,16 @@ module Aws::S3
2619
2658
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
2620
2659
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
2621
2660
  # [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
2661
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
2662
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
2663
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
2664
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2665
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
2666
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
2667
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
2668
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
2669
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
2670
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
2633
2671
  #
2634
2672
  # @option params [String] :acl
2635
2673
  # The canned ACL to apply to the object. Amazon S3 supports a set of
@@ -4634,35 +4672,35 @@ module Aws::S3
4634
4672
  # * {Types::DeleteObjectTaggingOutput#version_id #version_id} => String
4635
4673
  #
4636
4674
  #
4637
- # @example Example: To remove tag set from an object
4675
+ # @example Example: To remove tag set from an object version
4638
4676
  #
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.
4677
+ # # The following example removes tag set associated with the specified object version. The request specifies both the
4678
+ # # object key and object version.
4641
4679
  #
4642
4680
  # resp = client.delete_object_tagging({
4643
4681
  # bucket: "examplebucket",
4644
4682
  # key: "HappyFace.jpg",
4683
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4645
4684
  # })
4646
4685
  #
4647
4686
  # resp.to_h outputs the following:
4648
4687
  # {
4649
- # version_id: "null",
4688
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4650
4689
  # }
4651
4690
  #
4652
- # @example Example: To remove tag set from an object version
4691
+ # @example Example: To remove tag set from an object
4653
4692
  #
4654
- # # The following example removes tag set associated with the specified object version. The request specifies both the
4655
- # # object key and object version.
4693
+ # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
4694
+ # # operation removes tag set from the latest object version.
4656
4695
  #
4657
4696
  # resp = client.delete_object_tagging({
4658
4697
  # bucket: "examplebucket",
4659
4698
  # key: "HappyFace.jpg",
4660
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4661
4699
  # })
4662
4700
  #
4663
4701
  # resp.to_h outputs the following:
4664
4702
  # {
4665
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4703
+ # version_id: "null",
4666
4704
  # }
4667
4705
  #
4668
4706
  # @example Request syntax with placeholder values
@@ -7679,6 +7717,15 @@ module Aws::S3
7679
7717
  # @option params [String] :checksum_mode
7680
7718
  # To retrieve the checksum, this mode must be enabled.
7681
7719
  #
7720
+ # In addition, if you enable checksum mode and the object is uploaded
7721
+ # with a [checksum][1] and encrypted with an Key Management Service
7722
+ # (KMS) key, you must have permission to use the `kms:Decrypt` action to
7723
+ # retrieve the checksum.
7724
+ #
7725
+ #
7726
+ #
7727
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
7728
+ #
7682
7729
  # @return [Types::GetObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7683
7730
  #
7684
7731
  # * {Types::GetObjectOutput#body #body} => IO
@@ -8762,49 +8809,49 @@ module Aws::S3
8762
8809
  # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array&lt;Types::Tag&gt;
8763
8810
  #
8764
8811
  #
8765
- # @example Example: To retrieve tag set of a specific object version
8812
+ # @example Example: To retrieve tag set of an object
8766
8813
  #
8767
- # # The following example retrieves tag set of an object. The request specifies object version.
8814
+ # # The following example retrieves tag set of an object.
8768
8815
  #
8769
8816
  # resp = client.get_object_tagging({
8770
8817
  # bucket: "examplebucket",
8771
- # key: "exampleobject",
8772
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8818
+ # key: "HappyFace.jpg",
8773
8819
  # })
8774
8820
  #
8775
8821
  # resp.to_h outputs the following:
8776
8822
  # {
8777
8823
  # tag_set: [
8778
8824
  # {
8779
- # key: "Key1",
8780
- # value: "Value1",
8825
+ # key: "Key4",
8826
+ # value: "Value4",
8827
+ # },
8828
+ # {
8829
+ # key: "Key3",
8830
+ # value: "Value3",
8781
8831
  # },
8782
8832
  # ],
8783
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8833
+ # version_id: "null",
8784
8834
  # }
8785
8835
  #
8786
- # @example Example: To retrieve tag set of an object
8836
+ # @example Example: To retrieve tag set of a specific object version
8787
8837
  #
8788
- # # The following example retrieves tag set of an object.
8838
+ # # The following example retrieves tag set of an object. The request specifies object version.
8789
8839
  #
8790
8840
  # resp = client.get_object_tagging({
8791
8841
  # bucket: "examplebucket",
8792
- # key: "HappyFace.jpg",
8842
+ # key: "exampleobject",
8843
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8793
8844
  # })
8794
8845
  #
8795
8846
  # resp.to_h outputs the following:
8796
8847
  # {
8797
8848
  # tag_set: [
8798
8849
  # {
8799
- # key: "Key4",
8800
- # value: "Value4",
8801
- # },
8802
- # {
8803
- # key: "Key3",
8804
- # value: "Value3",
8850
+ # key: "Key1",
8851
+ # value: "Value1",
8805
8852
  # },
8806
8853
  # ],
8807
- # version_id: "null",
8854
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8808
8855
  # }
8809
8856
  #
8810
8857
  # @example Request syntax with placeholder values
@@ -9540,10 +9587,14 @@ module Aws::S3
9540
9587
  # @option params [String] :checksum_mode
9541
9588
  # To retrieve the checksum, this parameter must be enabled.
9542
9589
  #
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.
9590
+ # In addition, if you enable checksum mode and the object is uploaded
9591
+ # with a [checksum][1] and encrypted with an Key Management Service
9592
+ # (KMS) key, you must have permission to use the `kms:Decrypt` action to
9593
+ # retrieve the checksum.
9594
+ #
9595
+ #
9596
+ #
9597
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
9547
9598
  #
9548
9599
  # @return [Types::HeadObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9549
9600
  #
@@ -15313,6 +15364,25 @@ module Aws::S3
15313
15364
  #
15314
15365
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
15315
15366
  #
15367
+ # @option params [String] :if_none_match
15368
+ # Uploads the object only if the object key name does not already exist
15369
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
15370
+ # Precondition Failed` error.
15371
+ #
15372
+ # If a conflicting operation occurs during the upload S3 returns a `409
15373
+ # ConditionalRequestConflict` response. On a 409 failure you should
15374
+ # retry the upload.
15375
+ #
15376
+ # Expects the '*' (asterisk) character.
15377
+ #
15378
+ # For more information about conditional requests, see [RFC 7232][1], or
15379
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
15380
+ #
15381
+ #
15382
+ #
15383
+ # [1]: https://tools.ietf.org/html/rfc7232
15384
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
15385
+ #
15316
15386
  # @option params [String] :grant_full_control
15317
15387
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
15318
15388
  # object.
@@ -15576,6 +15646,26 @@ module Aws::S3
15576
15646
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
15577
15647
  #
15578
15648
  #
15649
+ # @example Example: To upload an object (specify optional headers)
15650
+ #
15651
+ # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
15652
+ # # storage class and use server-side encryption.
15653
+ #
15654
+ # resp = client.put_object({
15655
+ # body: "HappyFace.jpg",
15656
+ # bucket: "examplebucket",
15657
+ # key: "HappyFace.jpg",
15658
+ # server_side_encryption: "AES256",
15659
+ # storage_class: "STANDARD_IA",
15660
+ # })
15661
+ #
15662
+ # resp.to_h outputs the following:
15663
+ # {
15664
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15665
+ # server_side_encryption: "AES256",
15666
+ # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15667
+ # }
15668
+ #
15579
15669
  # @example Example: To create an object.
15580
15670
  #
15581
15671
  # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
@@ -15592,62 +15682,57 @@ module Aws::S3
15592
15682
  # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15593
15683
  # }
15594
15684
  #
15595
- # @example Example: To upload an object (specify optional headers)
15685
+ # @example Example: To upload an object
15596
15686
  #
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.
15687
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15688
+ # # syntax. S3 returns VersionId of the newly created object.
15599
15689
  #
15600
15690
  # resp = client.put_object({
15601
15691
  # body: "HappyFace.jpg",
15602
15692
  # bucket: "examplebucket",
15603
15693
  # key: "HappyFace.jpg",
15604
- # server_side_encryption: "AES256",
15605
- # storage_class: "STANDARD_IA",
15606
15694
  # })
15607
15695
  #
15608
15696
  # resp.to_h outputs the following:
15609
15697
  # {
15610
15698
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15611
- # server_side_encryption: "AES256",
15612
- # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15699
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15613
15700
  # }
15614
15701
  #
15615
- # @example Example: To upload an object and specify canned ACL.
15702
+ # @example Example: To upload an object and specify optional tags
15616
15703
  #
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.
15704
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
15705
+ # # S3 returns version ID of the newly created object.
15619
15706
  #
15620
15707
  # resp = client.put_object({
15621
- # acl: "authenticated-read",
15622
- # body: "filetoupload",
15708
+ # body: "c:\\HappyFace.jpg",
15623
15709
  # bucket: "examplebucket",
15624
- # key: "exampleobject",
15710
+ # key: "HappyFace.jpg",
15711
+ # tagging: "key1=value1&key2=value2",
15625
15712
  # })
15626
15713
  #
15627
15714
  # resp.to_h outputs the following:
15628
15715
  # {
15629
15716
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15630
- # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
15717
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15631
15718
  # }
15632
15719
  #
15633
- # @example Example: To upload an object and specify server-side encryption and object tags
15720
+ # @example Example: To upload an object and specify canned ACL.
15634
15721
  #
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.
15722
+ # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
15723
+ # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
15637
15724
  #
15638
15725
  # resp = client.put_object({
15726
+ # acl: "authenticated-read",
15639
15727
  # body: "filetoupload",
15640
15728
  # bucket: "examplebucket",
15641
15729
  # key: "exampleobject",
15642
- # server_side_encryption: "AES256",
15643
- # tagging: "key1=value1&key2=value2",
15644
15730
  # })
15645
15731
  #
15646
15732
  # resp.to_h outputs the following:
15647
15733
  # {
15648
15734
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15649
- # server_side_encryption: "AES256",
15650
- # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15735
+ # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
15651
15736
  # }
15652
15737
  #
15653
15738
  # @example Example: To upload object and specify user-defined metadata
@@ -15671,39 +15756,24 @@ module Aws::S3
15671
15756
  # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15672
15757
  # }
15673
15758
  #
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
15759
+ # @example Example: To upload an object and specify server-side encryption and object tags
15692
15760
  #
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.
15761
+ # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
15762
+ # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
15695
15763
  #
15696
15764
  # resp = client.put_object({
15697
- # body: "c:\\HappyFace.jpg",
15765
+ # body: "filetoupload",
15698
15766
  # bucket: "examplebucket",
15699
- # key: "HappyFace.jpg",
15767
+ # key: "exampleobject",
15768
+ # server_side_encryption: "AES256",
15700
15769
  # tagging: "key1=value1&key2=value2",
15701
15770
  # })
15702
15771
  #
15703
15772
  # resp.to_h outputs the following:
15704
15773
  # {
15705
15774
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15706
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15775
+ # server_side_encryption: "AES256",
15776
+ # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15707
15777
  # }
15708
15778
  #
15709
15779
  # @example Streaming a file from disk
@@ -15731,6 +15801,7 @@ module Aws::S3
15731
15801
  # checksum_sha1: "ChecksumSHA1",
15732
15802
  # checksum_sha256: "ChecksumSHA256",
15733
15803
  # expires: Time.now,
15804
+ # if_none_match: "IfNoneMatch",
15734
15805
  # grant_full_control: "GrantFullControl",
15735
15806
  # grant_read: "GrantRead",
15736
15807
  # grant_read_acp: "GrantReadACP",
@@ -16830,6 +16901,10 @@ module Aws::S3
16830
16901
  #
16831
16902
  # </note>
16832
16903
  #
16904
+ # The `SELECT` job type for the RestoreObject operation is no longer
16905
+ # available to new customers. Existing customers of Amazon S3 Select can
16906
+ # continue to use the feature as usual. [Learn more][1]
16907
+ #
16833
16908
  # Restores an archived copy of an object back into Amazon S3
16834
16909
  #
16835
16910
  # This functionality is not supported for Amazon S3 on Outposts.
@@ -16843,11 +16918,11 @@ module Aws::S3
16843
16918
  # For more information about the `S3` structure in the request body, see
16844
16919
  # the following:
16845
16920
  #
16846
- # * [PutObject][1]
16921
+ # * [PutObject][2]
16847
16922
  #
16848
- # * [Managing Access with ACLs][2] in the *Amazon S3 User Guide*
16923
+ # * [Managing Access with ACLs][3] in the *Amazon S3 User Guide*
16849
16924
  #
16850
- # * [Protecting Data Using Server-Side Encryption][3] in the *Amazon S3
16925
+ # * [Protecting Data Using Server-Side Encryption][4] in the *Amazon S3
16851
16926
  # User Guide*
16852
16927
  #
16853
16928
  # Permissions
@@ -16856,8 +16931,8 @@ module Aws::S3
16856
16931
  # `s3:RestoreObject` action. The bucket owner has this permission by
16857
16932
  # default and can grant this permission to others. For more
16858
16933
  # 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*.
16934
+ # Subresource Operations][5] and [Managing Access Permissions to Your
16935
+ # Amazon S3 Resources][6] in the *Amazon S3 User Guide*.
16861
16936
  #
16862
16937
  # Restoring objects
16863
16938
  #
@@ -16920,11 +16995,11 @@ module Aws::S3
16920
16995
  #
16921
16996
  # For more information about archive retrieval options and provisioned
16922
16997
  # capacity for `Expedited` data access, see [Restoring Archived
16923
- # Objects][6] in the *Amazon S3 User Guide*.
16998
+ # Objects][7] in the *Amazon S3 User Guide*.
16924
16999
  #
16925
17000
  # You can use Amazon S3 restore speed upgrade to change the restore
16926
17001
  # speed to a faster speed while it is in progress. For more
16927
- # information, see [ Upgrading the speed of an in-progress restore][7]
17002
+ # information, see [ Upgrading the speed of an in-progress restore][8]
16928
17003
  # in the *Amazon S3 User Guide*.
16929
17004
  #
16930
17005
  # To get the status of object restoration, you can send a `HEAD`
@@ -16932,7 +17007,7 @@ module Aws::S3
16932
17007
  # provides information about the restoration status, in the response.
16933
17008
  # You can use Amazon S3 event notifications to notify you when a
16934
17009
  # restore is initiated or completed. For more information, see
16935
- # [Configuring Amazon S3 Event Notifications][8] in the *Amazon S3
17010
+ # [Configuring Amazon S3 Event Notifications][9] in the *Amazon S3
16936
17011
  # User Guide*.
16937
17012
  #
16938
17013
  # After restoring an archived object, you can update the restoration
@@ -16948,8 +17023,8 @@ module Aws::S3
16948
17023
  # restore an object copy for 10 days, but the object is scheduled to
16949
17024
  # expire in 3 days, Amazon S3 deletes the object in 3 days. For more
16950
17025
  # information about lifecycle configuration, see
16951
- # [PutBucketLifecycleConfiguration][9] and [Object Lifecycle
16952
- # Management][10] in *Amazon S3 User Guide*.
17026
+ # [PutBucketLifecycleConfiguration][10] and [Object Lifecycle
17027
+ # Management][11] in *Amazon S3 User Guide*.
16953
17028
  #
16954
17029
  # Responses
16955
17030
  #
@@ -16987,23 +17062,24 @@ module Aws::S3
16987
17062
  #
16988
17063
  # The following operations are related to `RestoreObject`:
16989
17064
  #
16990
- # * [PutBucketLifecycleConfiguration][9]
17065
+ # * [PutBucketLifecycleConfiguration][10]
16991
17066
  #
16992
- # * [GetBucketNotificationConfiguration][11]
17067
+ # * [GetBucketNotificationConfiguration][12]
16993
17068
  #
16994
17069
  #
16995
17070
  #
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
17071
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
17072
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
17073
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
17074
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17075
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
17076
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
17077
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
17078
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html
17079
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
17080
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17081
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
17082
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html
17007
17083
  #
17008
17084
  # @option params [required, String] :bucket
17009
17085
  # The bucket name containing the object to restore.
@@ -17215,6 +17291,10 @@ module Aws::S3
17215
17291
  #
17216
17292
  # </note>
17217
17293
  #
17294
+ # The SelectObjectContent operation is no longer available to new
17295
+ # customers. Existing customers of Amazon S3 Select can continue to use
17296
+ # the operation as usual. [Learn more][1]
17297
+ #
17218
17298
  # This action filters the contents of an Amazon S3 object based on a
17219
17299
  # simple structured query language (SQL) statement. In the request,
17220
17300
  # along with the SQL expression, you must also specify a data
@@ -17226,7 +17306,7 @@ module Aws::S3
17226
17306
  # This functionality is not supported for Amazon S3 on Outposts.
17227
17307
  #
17228
17308
  # For more information about Amazon S3 Select, see [Selecting Content
17229
- # from Objects][1] and [SELECT Command][2] in the *Amazon S3 User
17309
+ # from Objects][2] and [SELECT Command][3] in the *Amazon S3 User
17230
17310
  # Guide*.
17231
17311
  #
17232
17312
  #
@@ -17236,7 +17316,7 @@ module Aws::S3
17236
17316
  # : You must have the `s3:GetObject` permission for this
17237
17317
  # operation. Amazon S3 Select does not support anonymous access. For
17238
17318
  # more information about permissions, see [Specifying Permissions in a
17239
- # Policy][3] in the *Amazon S3 User Guide*.
17319
+ # Policy][4] in the *Amazon S3 User Guide*.
17240
17320
  #
17241
17321
  # Object Data Formats
17242
17322
  #
@@ -17261,31 +17341,31 @@ module Aws::S3
17261
17341
  #
17262
17342
  # For objects that are encrypted with customer-provided encryption
17263
17343
  # keys (SSE-C), you must use HTTPS, and you must use the headers
17264
- # that are documented in the [GetObject][4]. For more information
17344
+ # that are documented in the [GetObject][5]. For more information
17265
17345
  # about SSE-C, see [Server-Side Encryption (Using Customer-Provided
17266
- # Encryption Keys)][5] in the *Amazon S3 User Guide*.
17346
+ # Encryption Keys)][6] in the *Amazon S3 User Guide*.
17267
17347
  #
17268
17348
  # For objects that are encrypted with Amazon S3 managed keys
17269
17349
  # (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side
17270
17350
  # encryption is handled transparently, so you don't need to specify
17271
17351
  # anything. For more information about server-side encryption,
17272
17352
  # including SSE-S3 and SSE-KMS, see [Protecting Data Using
17273
- # Server-Side Encryption][6] in the *Amazon S3 User Guide*.
17353
+ # Server-Side Encryption][7] in the *Amazon S3 User Guide*.
17274
17354
  #
17275
17355
  # Working with the Response Body
17276
17356
  #
17277
17357
  # : Given the response size is unknown, Amazon S3 Select streams the
17278
17358
  # response as a series of messages and includes a `Transfer-Encoding`
17279
17359
  # header with `chunked` as its value in the response. For more
17280
- # information, see [Appendix: SelectObjectContent Response][7].
17360
+ # information, see [Appendix: SelectObjectContent Response][8].
17281
17361
  #
17282
17362
  # GetObject Support
17283
17363
  #
17284
17364
  # : The `SelectObjectContent` action does not support the following
17285
- # `GetObject` functionality. For more information, see [GetObject][4].
17365
+ # `GetObject` functionality. For more information, see [GetObject][5].
17286
17366
  #
17287
17367
  # * `Range`: Although you can specify a scan range for an Amazon S3
17288
- # Select request (see [SelectObjectContentRequest - ScanRange][8] in
17368
+ # Select request (see [SelectObjectContentRequest - ScanRange][9] in
17289
17369
  # the request parameters), you cannot specify the range of bytes of
17290
17370
  # an object to return.
17291
17371
  #
@@ -17296,36 +17376,37 @@ module Aws::S3
17296
17376
  # storage classes, nor objects in the `ARCHIVE_ACCESS` or
17297
17377
  # `DEEP_ARCHIVE_ACCESS` access tiers of the `INTELLIGENT_TIERING`
17298
17378
  # storage class. For more information about storage classes, see
17299
- # [Using Amazon S3 storage classes][9] in the *Amazon S3 User
17379
+ # [Using Amazon S3 storage classes][10] in the *Amazon S3 User
17300
17380
  # Guide*.
17301
17381
  #
17302
17382
  # Special Errors
17303
17383
  #
17304
17384
  # : For a list of special errors for this operation, see [List of SELECT
17305
- # Object Content Error Codes][10]
17385
+ # Object Content Error Codes][11]
17306
17386
  #
17307
17387
  # The following operations are related to `SelectObjectContent`:
17308
17388
  #
17309
- # * [GetObject][4]
17389
+ # * [GetObject][5]
17310
17390
  #
17311
- # * [GetBucketLifecycleConfiguration][11]
17391
+ # * [GetBucketLifecycleConfiguration][12]
17312
17392
  #
17313
- # * [PutBucketLifecycleConfiguration][12]
17393
+ # * [PutBucketLifecycleConfiguration][13]
17314
17394
  #
17315
17395
  #
17316
17396
  #
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
17397
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
17398
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
17399
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html
17400
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
17401
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
17402
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
17403
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17404
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html
17405
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange
17406
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
17407
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList
17408
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
17409
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17329
17410
  #
17330
17411
  # @option params [required, String] :bucket
17331
17412
  # The S3 bucket.
@@ -17672,14 +17753,27 @@ module Aws::S3
17672
17753
  # </note>
17673
17754
  #
17674
17755
  # 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*.
17756
+ # : * **General purpose bucket permissions** - To perform a multipart
17757
+ # upload with encryption using an Key Management Service key, the
17758
+ # requester must have permission to the `kms:Decrypt` and
17759
+ # `kms:GenerateDataKey` actions on the key. The requester must also
17760
+ # have permissions for the `kms:GenerateDataKey` action for the
17761
+ # `CreateMultipartUpload` API. Then, the requester needs permissions
17762
+ # for the `kms:Decrypt` action on the `UploadPart` and
17763
+ # `UploadPartCopy` APIs.
17764
+ #
17765
+ # These permissions are required because Amazon S3 must decrypt and
17766
+ # read data from the encrypted file parts before it completes the
17767
+ # multipart upload. For more information about KMS permissions, see
17768
+ # [Protecting data using server-side encryption with KMS][6] in the
17769
+ # *Amazon S3 User Guide*. For information about the permissions
17770
+ # required to use the multipart upload API, see [Multipart upload
17771
+ # and permissions][7] and [Multipart upload API and permissions][8]
17772
+ # in the *Amazon S3 User Guide*.
17679
17773
  #
17680
17774
  # * **Directory bucket permissions** - To grant access to this API
17681
17775
  # operation on a directory bucket, we recommend that you use the [
17682
- # `CreateSession` ][7] API operation for session-based
17776
+ # `CreateSession` ][9] API operation for session-based
17683
17777
  # authorization. Specifically, you grant the
17684
17778
  # `s3express:CreateSession` permission to the directory bucket in a
17685
17779
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -17690,7 +17784,7 @@ module Aws::S3
17690
17784
  # token for use. Amazon Web Services CLI or SDKs create session and
17691
17785
  # refresh the session token automatically to avoid service
17692
17786
  # interruptions when a session expires. For more information about
17693
- # authorization, see [ `CreateSession` ][7].
17787
+ # authorization, see [ `CreateSession` ][9].
17694
17788
  #
17695
17789
  # Data integrity
17696
17790
  #
@@ -17702,7 +17796,7 @@ module Aws::S3
17702
17796
  # then Amazon Web Services S3 uses the `x-amz-content-sha256` header
17703
17797
  # as a checksum instead of `Content-MD5`. For more information see
17704
17798
  # [Authenticating Requests: Using the Authorization Header (Amazon Web
17705
- # Services Signature Version 4)][8].
17799
+ # Services Signature Version 4)][10].
17706
17800
  #
17707
17801
  # <note markdown="1"> **Directory buckets** - MD5 is not supported by directory buckets.
17708
17802
  # You can use checksum algorithms to check object integrity.
@@ -17747,7 +17841,7 @@ module Aws::S3
17747
17841
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
17748
17842
  # supported.
17749
17843
  #
17750
- # For more information, see [Using Server-Side Encryption][9] in the
17844
+ # For more information, see [Using Server-Side Encryption][11] in the
17751
17845
  # *Amazon S3 User Guide*.
17752
17846
  #
17753
17847
  # Special errors
@@ -17770,13 +17864,13 @@ module Aws::S3
17770
17864
  #
17771
17865
  # * [CreateMultipartUpload][2]
17772
17866
  #
17773
- # * [CompleteMultipartUpload][10]
17867
+ # * [CompleteMultipartUpload][12]
17774
17868
  #
17775
- # * [AbortMultipartUpload][11]
17869
+ # * [AbortMultipartUpload][13]
17776
17870
  #
17777
- # * [ListParts][12]
17871
+ # * [ListParts][14]
17778
17872
  #
17779
- # * [ListMultipartUploads][13]
17873
+ # * [ListMultipartUploads][15]
17780
17874
  #
17781
17875
  #
17782
17876
  #
@@ -17785,14 +17879,16 @@ module Aws::S3
17785
17879
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html
17786
17880
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
17787
17881
  # [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
17882
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
17883
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
17884
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
17885
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
17886
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
17887
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
17888
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
17889
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
17890
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
17891
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
17796
17892
  #
17797
17893
  # @option params [String, StringIO, File] :body
17798
17894
  # Object data.
@@ -18125,9 +18221,21 @@ module Aws::S3
18125
18221
  # have the <b> <code>s3:PutObject</code> </b> permission to write
18126
18222
  # the object copy to the destination bucket.
18127
18223
  #
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*.
18224
+ # * To perform a multipart upload with encryption using an Key
18225
+ # Management Service key, the requester must have permission to
18226
+ # the `kms:Decrypt` and `kms:GenerateDataKey` actions on the key.
18227
+ # The requester must also have permissions for the
18228
+ # `kms:GenerateDataKey` action for the `CreateMultipartUpload`
18229
+ # API. Then, the requester needs permissions for the `kms:Decrypt`
18230
+ # action on the `UploadPart` and `UploadPartCopy` APIs. These
18231
+ # permissions are required because Amazon S3 must decrypt and read
18232
+ # data from the encrypted file parts before it completes the
18233
+ # multipart upload. For more information about KMS permissions,
18234
+ # see [Protecting data using server-side encryption with KMS][7]
18235
+ # in the *Amazon S3 User Guide*. For information about the
18236
+ # permissions required to use the multipart upload API, see
18237
+ # [Multipart upload and permissions][8] and [Multipart upload API
18238
+ # and permissions][9] in the *Amazon S3 User Guide*.
18131
18239
  #
18132
18240
  # * **Directory bucket permissions** - You must have permissions in a
18133
18241
  # bucket policy or an IAM identity-based policy based on the source
@@ -18148,14 +18256,14 @@ module Aws::S3
18148
18256
  # set to `ReadOnly` on the copy destination.
18149
18257
  #
18150
18258
  # For example policies, see [Example bucket policies for S3 Express
18151
- # One Zone][8] and [Amazon Web Services Identity and Access
18259
+ # One Zone][10] and [Amazon Web Services Identity and Access
18152
18260
  # Management (IAM) identity-based policies for S3 Express One
18153
- # Zone][9] in the *Amazon S3 User Guide*.
18261
+ # Zone][11] in the *Amazon S3 User Guide*.
18154
18262
  #
18155
18263
  # Encryption
18156
18264
  # : * <b>General purpose buckets </b> - For information about using
18157
18265
  # server-side encryption with customer-provided encryption keys with
18158
- # the `UploadPartCopy` operation, see [CopyObject][10] and
18266
+ # the `UploadPartCopy` operation, see [CopyObject][12] and
18159
18267
  # [UploadPart][2].
18160
18268
  #
18161
18269
  # * <b>Directory buckets </b> - For directory buckets, only
@@ -18185,17 +18293,17 @@ module Aws::S3
18185
18293
  #
18186
18294
  # The following operations are related to `UploadPartCopy`:
18187
18295
  #
18188
- # * [CreateMultipartUpload][11]
18296
+ # * [CreateMultipartUpload][13]
18189
18297
  #
18190
18298
  # * [UploadPart][2]
18191
18299
  #
18192
- # * [CompleteMultipartUpload][12]
18300
+ # * [CompleteMultipartUpload][14]
18193
18301
  #
18194
- # * [AbortMultipartUpload][13]
18302
+ # * [AbortMultipartUpload][15]
18195
18303
  #
18196
- # * [ListParts][14]
18304
+ # * [ListParts][16]
18197
18305
  #
18198
- # * [ListMultipartUploads][15]
18306
+ # * [ListMultipartUploads][17]
18199
18307
  #
18200
18308
  #
18201
18309
  #
@@ -18205,15 +18313,17 @@ module Aws::S3
18205
18313
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html
18206
18314
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
18207
18315
  # [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
18316
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
18317
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
18318
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
18319
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
18320
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
18321
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
18322
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
18323
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
18324
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
18325
+ # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
18326
+ # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
18217
18327
  #
18218
18328
  # @option params [required, String] :bucket
18219
18329
  # The bucket name.
@@ -18987,14 +19097,19 @@ module Aws::S3
18987
19097
  # @api private
18988
19098
  def build_request(operation_name, params = {})
18989
19099
  handlers = @handlers.for(operation_name)
19100
+ tracer = config.telemetry_provider.tracer_provider.tracer(
19101
+ Aws::Telemetry.module_to_tracer_name('Aws::S3')
19102
+ )
18990
19103
  context = Seahorse::Client::RequestContext.new(
18991
19104
  operation_name: operation_name,
18992
19105
  operation: config.api.operation(operation_name),
18993
19106
  client: self,
18994
19107
  params: params,
18995
- config: config)
19108
+ config: config,
19109
+ tracer: tracer
19110
+ )
18996
19111
  context[:gem_name] = 'aws-sdk-s3'
18997
- context[:gem_version] = '1.158.0'
19112
+ context[:gem_version] = '1.160.0'
18998
19113
  Seahorse::Client::Request.new(handlers, context)
18999
19114
  end
19000
19115