aws-sdk-s3 1.158.0 → 1.160.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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