aws-sdk-s3 1.156.0 → 1.162.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:
@@ -520,6 +532,12 @@ module Aws::S3
520
532
  # @option options [String] :ssl_ca_store
521
533
  # Sets the X509::Store to verify peer certificate.
522
534
  #
535
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
536
+ # Sets a client certificate when creating http connections.
537
+ #
538
+ # @option options [OpenSSL::PKey] :ssl_key
539
+ # Sets a client key when creating http connections.
540
+ #
523
541
  # @option options [Float] :ssl_timeout
524
542
  # Sets the SSL timeout in seconds
525
543
  #
@@ -544,12 +562,20 @@ module Aws::S3
544
562
  # for the part storage, you should call the [ListParts][1] API operation
545
563
  # and ensure that the parts list is empty.
546
564
  #
547
- # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
548
- # for this API operation to the Zonal endpoint. These endpoints support
549
- # virtual-hosted-style requests in the format
550
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
551
- # Path-style requests are not supported. For more information, see
552
- # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
565
+ # <note markdown="1"> * **Directory buckets** - If multipart uploads in a directory bucket
566
+ # are in progress, you can't delete the bucket until all the
567
+ # in-progress multipart uploads are aborted or completed. To delete
568
+ # these in-progress multipart uploads, use the `ListMultipartUploads`
569
+ # operation to list the in-progress multipart uploads in the bucket
570
+ # and use the `AbortMultupartUpload` operation to abort all the
571
+ # in-progress multipart uploads.
572
+ #
573
+ # * **Directory buckets** - For directory buckets, you must make
574
+ # requests for this API operation to the Zonal endpoint. These
575
+ # endpoints support virtual-hosted-style requests in the format
576
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
577
+ # `. Path-style requests are not supported. For more information, see
578
+ # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
553
579
  #
554
580
  # </note>
555
581
  #
@@ -789,6 +815,12 @@ module Aws::S3
789
815
  # interruptions when a session expires. For more information about
790
816
  # authorization, see [ `CreateSession` ][7].
791
817
  #
818
+ # * If you provide an [additional checksum value][8] in your
819
+ # `MultipartUpload` requests and the object is encrypted with Key
820
+ # Management Service, you must have permission to use the
821
+ # `kms:Decrypt` action for the `CompleteMultipartUpload` request to
822
+ # succeed.
823
+ #
792
824
  # Special errors
793
825
  # : * Error Code: `EntityTooSmall`
794
826
  #
@@ -828,15 +860,15 @@ module Aws::S3
828
860
  #
829
861
  # The following operations are related to `CompleteMultipartUpload`:
830
862
  #
831
- # * [CreateMultipartUpload][8]
863
+ # * [CreateMultipartUpload][9]
832
864
  #
833
865
  # * [UploadPart][1]
834
866
  #
835
- # * [AbortMultipartUpload][9]
867
+ # * [AbortMultipartUpload][10]
836
868
  #
837
- # * [ListParts][10]
869
+ # * [ListParts][11]
838
870
  #
839
- # * [ListMultipartUploads][11]
871
+ # * [ListMultipartUploads][12]
840
872
  #
841
873
  #
842
874
  #
@@ -847,10 +879,11 @@ module Aws::S3
847
879
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
848
880
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
849
881
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
850
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
851
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
852
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
853
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
882
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
883
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
884
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
885
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
886
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
854
887
  #
855
888
  # @option params [required, String] :bucket
856
889
  # Name of the bucket to which the multipart upload was initiated.
@@ -971,6 +1004,26 @@ module Aws::S3
971
1004
  # you provide does not match the actual owner of the bucket, the request
972
1005
  # fails with the HTTP status code `403 Forbidden` (access denied).
973
1006
  #
1007
+ # @option params [String] :if_none_match
1008
+ # Uploads the object only if the object key name does not already exist
1009
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
1010
+ # Precondition Failed` error.
1011
+ #
1012
+ # If a conflicting operation occurs during the upload S3 returns a `409
1013
+ # ConditionalRequestConflict` response. On a 409 failure you should
1014
+ # re-initiate the multipart upload with `CreateMultipartUpload` and
1015
+ # re-upload each part.
1016
+ #
1017
+ # Expects the '*' (asterisk) character.
1018
+ #
1019
+ # For more information about conditional requests, see [RFC 7232][1], or
1020
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
1021
+ #
1022
+ #
1023
+ #
1024
+ # [1]: https://tools.ietf.org/html/rfc7232
1025
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
1026
+ #
974
1027
  # @option params [String] :sse_customer_algorithm
975
1028
  # The server-side encryption (SSE) algorithm used to encrypt the object.
976
1029
  # This parameter is required only when the object was created using a
@@ -1086,6 +1139,7 @@ module Aws::S3
1086
1139
  # checksum_sha256: "ChecksumSHA256",
1087
1140
  # request_payer: "requester", # accepts requester
1088
1141
  # expected_bucket_owner: "AccountId",
1142
+ # if_none_match: "IfNoneMatch",
1089
1143
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1090
1144
  # sse_customer_key: "SSECustomerKey",
1091
1145
  # sse_customer_key_md5: "SSECustomerKeyMD5",
@@ -1132,12 +1186,20 @@ module Aws::S3
1132
1186
  # between directory buckets, and between general purpose buckets and
1133
1187
  # directory buckets.
1134
1188
  #
1135
- # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
1136
- # requests for this API operation to the Zonal endpoint. These endpoints
1137
- # support virtual-hosted-style requests in the format
1138
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
1139
- # Path-style requests are not supported. For more information, see
1140
- # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
1189
+ # <note markdown="1"> * Amazon S3 supports copy operations using Multi-Region Access Points
1190
+ # only as a destination when using the Multi-Region Access Point ARN.
1191
+ #
1192
+ # * <b>Directory buckets </b> - For directory buckets, you must make
1193
+ # requests for this API operation to the Zonal endpoint. These
1194
+ # endpoints support virtual-hosted-style requests in the format
1195
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
1196
+ # `. Path-style requests are not supported. For more information, see
1197
+ # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
1198
+ #
1199
+ # * VPC endpoints don't support cross-Region requests (including
1200
+ # copies). If you're using VPC endpoints, your source and destination
1201
+ # buckets should be in the same Amazon Web Services Region as your VPC
1202
+ # endpoint.
1141
1203
  #
1142
1204
  # </note>
1143
1205
  #
@@ -2454,24 +2516,23 @@ module Aws::S3
2454
2516
  # Version 4)][5] in the *Amazon S3 User Guide*.
2455
2517
  #
2456
2518
  # Permissions
2457
- # : * **General purpose bucket permissions** - For information about the
2458
- # permissions required to use the multipart upload API, see
2459
- # [Multipart upload and permissions][6] in the *Amazon S3 User
2460
- # Guide*.
2461
- #
2462
- # To perform a multipart upload with encryption by using an Amazon
2463
- # Web Services KMS key, the requester must have permission to the
2464
- # `kms:Decrypt` and `kms:GenerateDataKey*` actions on the key. These
2465
- # permissions are required because Amazon S3 must decrypt and read
2466
- # data from the encrypted file parts before it completes the
2467
- # multipart upload. For more information, see [Multipart upload API
2468
- # and permissions][7] and [Protecting data using server-side
2469
- # encryption with Amazon Web Services KMS][8] in the *Amazon S3 User
2470
- # Guide*.
2519
+ # : * **General purpose bucket permissions** - To perform a multipart
2520
+ # upload with encryption using an Key Management Service (KMS) KMS
2521
+ # key, the requester must have permission to the `kms:Decrypt` and
2522
+ # `kms:GenerateDataKey` actions on the key. The requester must also
2523
+ # have permissions for the `kms:GenerateDataKey` action for the
2524
+ # `CreateMultipartUpload` API. Then, the requester needs permissions
2525
+ # for the `kms:Decrypt` action on the `UploadPart` and
2526
+ # `UploadPartCopy` APIs. These permissions are required because
2527
+ # Amazon S3 must decrypt and read data from the encrypted file parts
2528
+ # before it completes the multipart upload. For more information,
2529
+ # see [Multipart upload API and permissions][6] and [Protecting data
2530
+ # using server-side encryption with Amazon Web Services KMS][7] in
2531
+ # the *Amazon S3 User Guide*.
2471
2532
  #
2472
2533
  # * **Directory bucket permissions** - To grant access to this API
2473
2534
  # operation on a directory bucket, we recommend that you use the [
2474
- # `CreateSession` ][9] API operation for session-based
2535
+ # `CreateSession` ][8] API operation for session-based
2475
2536
  # authorization. Specifically, you grant the
2476
2537
  # `s3express:CreateSession` permission to the directory bucket in a
2477
2538
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -2482,7 +2543,7 @@ module Aws::S3
2482
2543
  # token for use. Amazon Web Services CLI or SDKs create session and
2483
2544
  # refresh the session token automatically to avoid service
2484
2545
  # interruptions when a session expires. For more information about
2485
- # authorization, see [ `CreateSession` ][9].
2546
+ # authorization, see [ `CreateSession` ][8].
2486
2547
  #
2487
2548
  # Encryption
2488
2549
  # : * **General purpose buckets** - Server-side encryption is for data
@@ -2509,7 +2570,7 @@ module Aws::S3
2509
2570
  # the destination bucket, the encryption setting in your request
2510
2571
  # takes precedence. If you choose to provide your own encryption
2511
2572
  # key, the request headers you provide in [UploadPart][1] and
2512
- # [UploadPartCopy][10] requests must match the headers you used in
2573
+ # [UploadPartCopy][9] requests must match the headers you used in
2513
2574
  # the `CreateMultipartUpload` request.
2514
2575
  #
2515
2576
  # * Use KMS keys (SSE-KMS) that include the Amazon Web Services
@@ -2535,9 +2596,9 @@ module Aws::S3
2535
2596
  # actions on the key. These permissions are required because
2536
2597
  # Amazon S3 must decrypt and read data from the encrypted file
2537
2598
  # parts before it completes the multipart upload. For more
2538
- # information, see [Multipart upload API and permissions][7] and
2599
+ # information, see [Multipart upload API and permissions][6] and
2539
2600
  # [Protecting data using server-side encryption with Amazon Web
2540
- # Services KMS][8] in the *Amazon S3 User Guide*.
2601
+ # Services KMS][7] in the *Amazon S3 User Guide*.
2541
2602
  #
2542
2603
  # * If your Identity and Access Management (IAM) user or role is
2543
2604
  # in the same Amazon Web Services account as the KMS key, then
@@ -2552,13 +2613,13 @@ module Aws::S3
2552
2613
  # For information about configuring any of the officially
2553
2614
  # supported Amazon Web Services SDKs and Amazon Web Services
2554
2615
  # CLI, see [Specifying the Signature Version in Request
2555
- # Authentication][11] in the *Amazon S3 User Guide*.
2616
+ # Authentication][10] in the *Amazon S3 User Guide*.
2556
2617
  #
2557
2618
  # </note>
2558
2619
  #
2559
2620
  # For more information about server-side encryption with KMS keys
2560
2621
  # (SSE-KMS), see [Protecting Data Using Server-Side Encryption
2561
- # with KMS keys][8] in the *Amazon S3 User Guide*.
2622
+ # with KMS keys][7] in the *Amazon S3 User Guide*.
2562
2623
  #
2563
2624
  # * Use customer-provided encryption keys (SSE-C) – If you want to
2564
2625
  # manage your own encryption keys, provide all the following
@@ -2573,7 +2634,7 @@ module Aws::S3
2573
2634
  # For more information about server-side encryption with
2574
2635
  # customer-provided encryption keys (SSE-C), see [ Protecting data
2575
2636
  # using server-side encryption with customer-provided encryption
2576
- # keys (SSE-C)][12] in the *Amazon S3 User Guide*.
2637
+ # keys (SSE-C)][11] in the *Amazon S3 User Guide*.
2577
2638
  #
2578
2639
  # * **Directory buckets** -For directory buckets, only server-side
2579
2640
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
@@ -2588,13 +2649,13 @@ module Aws::S3
2588
2649
  #
2589
2650
  # * [UploadPart][1]
2590
2651
  #
2591
- # * [CompleteMultipartUpload][13]
2652
+ # * [CompleteMultipartUpload][12]
2592
2653
  #
2593
- # * [AbortMultipartUpload][14]
2654
+ # * [AbortMultipartUpload][13]
2594
2655
  #
2595
- # * [ListParts][15]
2656
+ # * [ListParts][14]
2596
2657
  #
2597
- # * [ListMultipartUploads][16]
2658
+ # * [ListMultipartUploads][15]
2598
2659
  #
2599
2660
  #
2600
2661
  #
@@ -2603,17 +2664,16 @@ module Aws::S3
2603
2664
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
2604
2665
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
2605
2666
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
2606
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
2607
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
2608
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
2609
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
2610
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2611
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
2612
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
2613
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
2614
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
2615
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
2616
- # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
2667
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
2668
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
2669
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
2670
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2671
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
2672
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
2673
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
2674
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
2675
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
2676
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
2617
2677
  #
2618
2678
  # @option params [String] :acl
2619
2679
  # The canned ACL to apply to the object. Amazon S3 supports a set of
@@ -4498,6 +4558,15 @@ module Aws::S3
4498
4558
  # * {Types::DeleteObjectOutput#request_charged #request_charged} => String
4499
4559
  #
4500
4560
  #
4561
+ # @example Example: To delete an object (from a non-versioned bucket)
4562
+ #
4563
+ # # The following example deletes an object from a non-versioned bucket.
4564
+ #
4565
+ # resp = client.delete_object({
4566
+ # bucket: "ExampleBucket",
4567
+ # key: "HappyFace.jpg",
4568
+ # })
4569
+ #
4501
4570
  # @example Example: To delete an object
4502
4571
  #
4503
4572
  # # The following example deletes an object from an S3 bucket.
@@ -4511,15 +4580,6 @@ module Aws::S3
4511
4580
  # {
4512
4581
  # }
4513
4582
  #
4514
- # @example Example: To delete an object (from a non-versioned bucket)
4515
- #
4516
- # # The following example deletes an object from a non-versioned bucket.
4517
- #
4518
- # resp = client.delete_object({
4519
- # bucket: "ExampleBucket",
4520
- # key: "HappyFace.jpg",
4521
- # })
4522
- #
4523
4583
  # @example Request syntax with placeholder values
4524
4584
  #
4525
4585
  # resp = client.delete_object({
@@ -7663,6 +7723,15 @@ module Aws::S3
7663
7723
  # @option params [String] :checksum_mode
7664
7724
  # To retrieve the checksum, this mode must be enabled.
7665
7725
  #
7726
+ # In addition, if you enable checksum mode and the object is uploaded
7727
+ # with a [checksum][1] and encrypted with an Key Management Service
7728
+ # (KMS) key, you must have permission to use the `kms:Decrypt` action to
7729
+ # retrieve the checksum.
7730
+ #
7731
+ #
7732
+ #
7733
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
7734
+ #
7666
7735
  # @return [Types::GetObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7667
7736
  #
7668
7737
  # * {Types::GetObjectOutput#body #body} => IO
@@ -7704,49 +7773,49 @@ module Aws::S3
7704
7773
  # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
7705
7774
  #
7706
7775
  #
7707
- # @example Example: To retrieve a byte range of an object
7776
+ # @example Example: To retrieve an object
7708
7777
  #
7709
- # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
7710
- # # specific byte range.
7778
+ # # The following example retrieves an object for an S3 bucket.
7711
7779
  #
7712
7780
  # resp = client.get_object({
7713
7781
  # bucket: "examplebucket",
7714
- # key: "SampleFile.txt",
7715
- # range: "bytes=0-9",
7782
+ # key: "HappyFace.jpg",
7716
7783
  # })
7717
7784
  #
7718
7785
  # resp.to_h outputs the following:
7719
7786
  # {
7720
7787
  # accept_ranges: "bytes",
7721
- # content_length: 10,
7722
- # content_range: "bytes 0-9/43",
7723
- # content_type: "text/plain",
7724
- # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
7725
- # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
7788
+ # content_length: 3191,
7789
+ # content_type: "image/jpeg",
7790
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
7791
+ # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
7726
7792
  # metadata: {
7727
7793
  # },
7794
+ # tag_count: 2,
7728
7795
  # version_id: "null",
7729
7796
  # }
7730
7797
  #
7731
- # @example Example: To retrieve an object
7798
+ # @example Example: To retrieve a byte range of an object
7732
7799
  #
7733
- # # The following example retrieves an object for an S3 bucket.
7800
+ # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
7801
+ # # specific byte range.
7734
7802
  #
7735
7803
  # resp = client.get_object({
7736
7804
  # bucket: "examplebucket",
7737
- # key: "HappyFace.jpg",
7805
+ # key: "SampleFile.txt",
7806
+ # range: "bytes=0-9",
7738
7807
  # })
7739
7808
  #
7740
7809
  # resp.to_h outputs the following:
7741
7810
  # {
7742
7811
  # accept_ranges: "bytes",
7743
- # content_length: 3191,
7744
- # content_type: "image/jpeg",
7745
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
7746
- # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
7812
+ # content_length: 10,
7813
+ # content_range: "bytes 0-9/43",
7814
+ # content_type: "text/plain",
7815
+ # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
7816
+ # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
7747
7817
  # metadata: {
7748
7818
  # },
7749
- # tag_count: 2,
7750
7819
  # version_id: "null",
7751
7820
  # }
7752
7821
  #
@@ -8746,49 +8815,49 @@ module Aws::S3
8746
8815
  # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array&lt;Types::Tag&gt;
8747
8816
  #
8748
8817
  #
8749
- # @example Example: To retrieve tag set of a specific object version
8818
+ # @example Example: To retrieve tag set of an object
8750
8819
  #
8751
- # # The following example retrieves tag set of an object. The request specifies object version.
8820
+ # # The following example retrieves tag set of an object.
8752
8821
  #
8753
8822
  # resp = client.get_object_tagging({
8754
8823
  # bucket: "examplebucket",
8755
- # key: "exampleobject",
8756
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8824
+ # key: "HappyFace.jpg",
8757
8825
  # })
8758
8826
  #
8759
8827
  # resp.to_h outputs the following:
8760
8828
  # {
8761
8829
  # tag_set: [
8762
8830
  # {
8763
- # key: "Key1",
8764
- # value: "Value1",
8831
+ # key: "Key4",
8832
+ # value: "Value4",
8833
+ # },
8834
+ # {
8835
+ # key: "Key3",
8836
+ # value: "Value3",
8765
8837
  # },
8766
8838
  # ],
8767
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8839
+ # version_id: "null",
8768
8840
  # }
8769
8841
  #
8770
- # @example Example: To retrieve tag set of an object
8842
+ # @example Example: To retrieve tag set of a specific object version
8771
8843
  #
8772
- # # The following example retrieves tag set of an object.
8844
+ # # The following example retrieves tag set of an object. The request specifies object version.
8773
8845
  #
8774
8846
  # resp = client.get_object_tagging({
8775
8847
  # bucket: "examplebucket",
8776
- # key: "HappyFace.jpg",
8848
+ # key: "exampleobject",
8849
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8777
8850
  # })
8778
8851
  #
8779
8852
  # resp.to_h outputs the following:
8780
8853
  # {
8781
8854
  # tag_set: [
8782
8855
  # {
8783
- # key: "Key4",
8784
- # value: "Value4",
8785
- # },
8786
- # {
8787
- # key: "Key3",
8788
- # value: "Value3",
8856
+ # key: "Key1",
8857
+ # value: "Value1",
8789
8858
  # },
8790
8859
  # ],
8791
- # version_id: "null",
8860
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8792
8861
  # }
8793
8862
  #
8794
8863
  # @example Request syntax with placeholder values
@@ -8997,29 +9066,24 @@ module Aws::S3
8997
9066
  # have permission to access it. The action returns a `200 OK` if the
8998
9067
  # bucket exists and you have permission to access it.
8999
9068
  #
9000
- # If the bucket does not exist or you do not have permission to access
9069
+ # <note markdown="1"> If the bucket does not exist or you do not have permission to access
9001
9070
  # it, the `HEAD` request returns a generic `400 Bad Request`, `403
9002
9071
  # Forbidden` or `404 Not Found` code. A message body is not included, so
9003
9072
  # you cannot determine the exception beyond these HTTP response codes.
9004
9073
  #
9005
- # <note markdown="1"> <b>Directory buckets </b> - You must make requests for this API
9006
- # operation to the Zonal endpoint. These endpoints support
9007
- # virtual-hosted-style requests in the format
9008
- # `https://bucket_name.s3express-az_id.region.amazonaws.com`. Path-style
9009
- # requests are not supported. For more information, see [Regional and
9010
- # Zonal endpoints][1] in the *Amazon S3 User Guide*.
9011
- #
9012
9074
  # </note>
9013
9075
  #
9014
9076
  # Authentication and authorization
9015
9077
  #
9016
- # : All `HeadBucket` requests must be authenticated and signed by using
9017
- # IAM credentials (access key ID and secret access key for the IAM
9018
- # identities). All headers with the `x-amz-` prefix, including
9078
+ # : **General purpose buckets** - Request to public buckets that grant
9079
+ # the s3:ListBucket permission publicly do not need to be signed. All
9080
+ # other `HeadBucket` requests must be authenticated and signed by
9081
+ # using IAM credentials (access key ID and secret access key for the
9082
+ # IAM identities). All headers with the `x-amz-` prefix, including
9019
9083
  # `x-amz-copy-source`, must be signed. For more information, see [REST
9020
- # Authentication][2].
9084
+ # Authentication][1].
9021
9085
  #
9022
- # **Directory bucket** - You must use IAM credentials to authenticate
9086
+ # **Directory buckets** - You must use IAM credentials to authenticate
9023
9087
  # and authorize your access to the `HeadBucket` API operation, instead
9024
9088
  # of using the temporary security credentials through the
9025
9089
  # `CreateSession` API operation.
@@ -9035,7 +9099,7 @@ module Aws::S3
9035
9099
  # you must have permissions to perform the `s3:ListBucket` action.
9036
9100
  # The bucket owner has this permission by default and can grant this
9037
9101
  # permission to others. For more information about permissions, see
9038
- # [Managing access permissions to your Amazon S3 resources][3] in
9102
+ # [Managing access permissions to your Amazon S3 resources][2] in
9039
9103
  # the *Amazon S3 User Guide*.
9040
9104
  #
9041
9105
  # * **Directory bucket permissions** - You must have the <b>
@@ -9046,9 +9110,9 @@ module Aws::S3
9046
9110
  # `ReadOnly` on the bucket.
9047
9111
  #
9048
9112
  # For more information about example bucket policies, see [Example
9049
- # bucket policies for S3 Express One Zone][4] and [Amazon Web
9113
+ # bucket policies for S3 Express One Zone][3] and [Amazon Web
9050
9114
  # Services Identity and Access Management (IAM) identity-based
9051
- # policies for S3 Express One Zone][5] in the *Amazon S3 User
9115
+ # policies for S3 Express One Zone][4] in the *Amazon S3 User
9052
9116
  # Guide*.
9053
9117
  #
9054
9118
  # HTTP Host header syntax
@@ -9056,13 +9120,21 @@ module Aws::S3
9056
9120
  # : <b>Directory buckets </b> - The HTTP Host header syntax is `
9057
9121
  # Bucket_name.s3express-az_id.region.amazonaws.com`.
9058
9122
  #
9123
+ # <note markdown="1"> You must make requests for this API operation to the Zonal endpoint.
9124
+ # These endpoints support virtual-hosted-style requests in the format
9125
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com`.
9126
+ # Path-style requests are not supported. For more information, see
9127
+ # [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*.
9059
9128
  #
9129
+ # </note>
9060
9130
  #
9061
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9062
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
9063
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
9064
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
9065
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
9131
+ #
9132
+ #
9133
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
9134
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
9135
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
9136
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
9137
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9066
9138
  #
9067
9139
  # @option params [required, String] :bucket
9068
9140
  # The bucket name.
@@ -9170,7 +9242,7 @@ module Aws::S3
9170
9242
  # returning the object itself. This operation is useful if you're
9171
9243
  # interested only in an object's metadata.
9172
9244
  #
9173
- # A `HEAD` request has the same options as a `GET` operation on an
9245
+ # <note markdown="1"> A `HEAD` request has the same options as a `GET` operation on an
9174
9246
  # object. The response is identical to the `GET` response except that
9175
9247
  # there is no response body. Because of this, if the `HEAD` request
9176
9248
  # generates an error, it returns a generic code, such as `400 Bad
@@ -9178,18 +9250,11 @@ module Aws::S3
9178
9250
  # `412 Precondition Failed`, or `304 Not Modified`. It's not possible
9179
9251
  # to retrieve the exact exception of these error codes.
9180
9252
  #
9253
+ # </note>
9254
+ #
9181
9255
  # Request headers are limited to 8 KB in size. For more information, see
9182
9256
  # [Common Request Headers][1].
9183
9257
  #
9184
- # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
9185
- # for this API operation to the Zonal endpoint. These endpoints support
9186
- # virtual-hosted-style requests in the format
9187
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
9188
- # Path-style requests are not supported. For more information, see
9189
- # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
9190
- #
9191
- # </note>
9192
- #
9193
9258
  # Permissions
9194
9259
  #
9195
9260
  # :
@@ -9198,7 +9263,7 @@ module Aws::S3
9198
9263
  # have the `s3:GetObject` permission. You need the relevant read
9199
9264
  # object (or version) permission for this operation. For more
9200
9265
  # information, see [Actions, resources, and condition keys for
9201
- # Amazon S3][3] in the *Amazon S3 User Guide*.
9266
+ # Amazon S3][2] in the *Amazon S3 User Guide*.
9202
9267
  #
9203
9268
  # If the object you request doesn't exist, the error that Amazon S3
9204
9269
  # returns depends on whether you also have the `s3:ListBucket`
@@ -9212,7 +9277,7 @@ module Aws::S3
9212
9277
  #
9213
9278
  # * **Directory bucket permissions** - To grant access to this API
9214
9279
  # operation on a directory bucket, we recommend that you use the [
9215
- # `CreateSession` ][4] API operation for session-based
9280
+ # `CreateSession` ][3] API operation for session-based
9216
9281
  # authorization. Specifically, you grant the
9217
9282
  # `s3express:CreateSession` permission to the directory bucket in a
9218
9283
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -9223,7 +9288,7 @@ module Aws::S3
9223
9288
  # token for use. Amazon Web Services CLI or SDKs create session and
9224
9289
  # refresh the session token automatically to avoid service
9225
9290
  # interruptions when a session expires. For more information about
9226
- # authorization, see [ `CreateSession` ][4].
9291
+ # authorization, see [ `CreateSession` ][3].
9227
9292
  #
9228
9293
  # Encryption
9229
9294
  # : <note markdown="1"> Encryption request headers, like `x-amz-server-side-encryption`,
@@ -9255,7 +9320,7 @@ module Aws::S3
9255
9320
  # * `x-amz-server-side-encryption-customer-key-MD5`
9256
9321
  #
9257
9322
  # For more information about SSE-C, see [Server-Side Encryption (Using
9258
- # Customer-Provided Encryption Keys)][5] in the *Amazon S3 User
9323
+ # Customer-Provided Encryption Keys)][4] in the *Amazon S3 User
9259
9324
  # Guide*.
9260
9325
  #
9261
9326
  # <note markdown="1"> **Directory bucket permissions** - For directory buckets, only
@@ -9289,6 +9354,15 @@ module Aws::S3
9289
9354
  # : <b>Directory buckets </b> - The HTTP Host header syntax is `
9290
9355
  # Bucket_name.s3express-az_id.region.amazonaws.com`.
9291
9356
  #
9357
+ # <note markdown="1"> For directory buckets, you must make requests for this API operation
9358
+ # to the Zonal endpoint. These endpoints support virtual-hosted-style
9359
+ # requests in the format
9360
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
9361
+ # `. Path-style requests are not supported. For more information, see
9362
+ # [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*.
9363
+ #
9364
+ # </note>
9365
+ #
9292
9366
  # The following actions are related to `HeadObject`:
9293
9367
  #
9294
9368
  # * [GetObject][6]
@@ -9298,10 +9372,10 @@ module Aws::S3
9298
9372
  #
9299
9373
  #
9300
9374
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html
9301
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9302
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html
9303
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
9304
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
9375
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html
9376
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
9377
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
9378
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9305
9379
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
9306
9380
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html
9307
9381
  #
@@ -9519,10 +9593,14 @@ module Aws::S3
9519
9593
  # @option params [String] :checksum_mode
9520
9594
  # To retrieve the checksum, this parameter must be enabled.
9521
9595
  #
9522
- # In addition, if you enable `ChecksumMode` and the object is encrypted
9523
- # with Amazon Web Services Key Management Service (Amazon Web Services
9524
- # KMS), you must have permission to use the `kms:Decrypt` action for the
9525
- # request to succeed.
9596
+ # In addition, if you enable checksum mode and the object is uploaded
9597
+ # with a [checksum][1] and encrypted with an Key Management Service
9598
+ # (KMS) key, you must have permission to use the `kms:Decrypt` action to
9599
+ # retrieve the checksum.
9600
+ #
9601
+ #
9602
+ #
9603
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
9526
9604
  #
9527
9605
  # @return [Types::HeadObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9528
9606
  #
@@ -10076,10 +10154,28 @@ module Aws::S3
10076
10154
  #
10077
10155
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html
10078
10156
  #
10157
+ # @option params [Integer] :max_buckets
10158
+ # Maximum number of buckets to be returned in response. When the number
10159
+ # is more than the count of buckets that are owned by an Amazon Web
10160
+ # Services account, return all the buckets in response.
10161
+ #
10162
+ # @option params [String] :continuation_token
10163
+ # `ContinuationToken` indicates to Amazon S3 that the list is being
10164
+ # continued on this bucket with a token. `ContinuationToken` is
10165
+ # obfuscated and is not a real key. You can use this `ContinuationToken`
10166
+ # for pagination of the list results.
10167
+ #
10168
+ # Length Constraints: Minimum length of 0. Maximum length of 1024.
10169
+ #
10170
+ # Required: No.
10171
+ #
10079
10172
  # @return [Types::ListBucketsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10080
10173
  #
10081
10174
  # * {Types::ListBucketsOutput#buckets #buckets} => Array&lt;Types::Bucket&gt;
10082
10175
  # * {Types::ListBucketsOutput#owner #owner} => Types::Owner
10176
+ # * {Types::ListBucketsOutput#continuation_token #continuation_token} => String
10177
+ #
10178
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
10083
10179
  #
10084
10180
  #
10085
10181
  # @example Example: To list all buckets
@@ -10111,6 +10207,13 @@ module Aws::S3
10111
10207
  # },
10112
10208
  # }
10113
10209
  #
10210
+ # @example Request syntax with placeholder values
10211
+ #
10212
+ # resp = client.list_buckets({
10213
+ # max_buckets: 1,
10214
+ # continuation_token: "Token",
10215
+ # })
10216
+ #
10114
10217
  # @example Response structure
10115
10218
  #
10116
10219
  # resp.buckets #=> Array
@@ -10118,6 +10221,7 @@ module Aws::S3
10118
10221
  # resp.buckets[0].creation_date #=> Time
10119
10222
  # resp.owner.display_name #=> String
10120
10223
  # resp.owner.id #=> String
10224
+ # resp.continuation_token #=> String
10121
10225
  #
10122
10226
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets AWS API Documentation
10123
10227
  #
@@ -10166,9 +10270,9 @@ module Aws::S3
10166
10270
  #
10167
10271
  # @option params [String] :continuation_token
10168
10272
  # `ContinuationToken` indicates to Amazon S3 that the list is being
10169
- # continued on this bucket with a token. `ContinuationToken` is
10170
- # obfuscated and is not a real key. You can use this `ContinuationToken`
10171
- # for pagination of the list results.
10273
+ # continued on buckets in this account with a token. `ContinuationToken`
10274
+ # is obfuscated and is not a real bucket name. You can use this
10275
+ # `ContinuationToken` for the pagination of the list results.
10172
10276
  #
10173
10277
  # @option params [Integer] :max_directory_buckets
10174
10278
  # Maximum number of buckets to be returned in response. When the number
@@ -10212,7 +10316,11 @@ module Aws::S3
10212
10316
  #
10213
10317
  # <note markdown="1"> **Directory buckets** - If multipart uploads in a directory bucket are
10214
10318
  # in progress, you can't delete the bucket until all the in-progress
10215
- # multipart uploads are aborted or completed.
10319
+ # multipart uploads are aborted or completed. To delete these
10320
+ # in-progress multipart uploads, use the `ListMultipartUploads`
10321
+ # operation to list the in-progress multipart uploads in the bucket and
10322
+ # use the `AbortMultupartUpload` operation to abort all the in-progress
10323
+ # multipart uploads.
10216
10324
  #
10217
10325
  # </note>
10218
10326
  #
@@ -10378,12 +10486,26 @@ module Aws::S3
10378
10486
  # </note>
10379
10487
  #
10380
10488
  # @option params [String] :encoding_type
10381
- # Requests Amazon S3 to encode the object keys in the response and
10382
- # specifies the encoding method to use. An object key can contain any
10383
- # Unicode character; however, the XML 1.0 parser cannot parse some
10384
- # characters, such as characters with an ASCII value from 0 to 10. For
10385
- # characters that are not supported in XML 1.0, you can add this
10386
- # parameter to request that Amazon S3 encode the keys in the response.
10489
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
10490
+ # response. Responses are encoded only in UTF-8. An object key can
10491
+ # contain any Unicode character. However, the XML 1.0 parser can't
10492
+ # parse certain characters, such as characters with an ASCII value from
10493
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
10494
+ # this parameter to request that Amazon S3 encode the keys in the
10495
+ # response. For more information about characters to avoid in object key
10496
+ # names, see [Object key naming guidelines][2].
10497
+ #
10498
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10499
+ # in an object's key name will be percent-encoded according to UTF-8
10500
+ # code values. For example, the object `test_file(3).png` will appear as
10501
+ # `test_file%283%29.png`.
10502
+ #
10503
+ # </note>
10504
+ #
10505
+ #
10506
+ #
10507
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10508
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10387
10509
  #
10388
10510
  # @option params [String] :key_marker
10389
10511
  # Specifies the multipart upload after which listing should begin.
@@ -10675,12 +10797,26 @@ module Aws::S3
10675
10797
  # the response.
10676
10798
  #
10677
10799
  # @option params [String] :encoding_type
10678
- # Requests Amazon S3 to encode the object keys in the response and
10679
- # specifies the encoding method to use. An object key can contain any
10680
- # Unicode character; however, the XML 1.0 parser cannot parse some
10681
- # characters, such as characters with an ASCII value from 0 to 10. For
10682
- # characters that are not supported in XML 1.0, you can add this
10683
- # parameter to request that Amazon S3 encode the keys in the response.
10800
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
10801
+ # response. Responses are encoded only in UTF-8. An object key can
10802
+ # contain any Unicode character. However, the XML 1.0 parser can't
10803
+ # parse certain characters, such as characters with an ASCII value from
10804
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
10805
+ # this parameter to request that Amazon S3 encode the keys in the
10806
+ # response. For more information about characters to avoid in object key
10807
+ # names, see [Object key naming guidelines][2].
10808
+ #
10809
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10810
+ # in an object's key name will be percent-encoded according to UTF-8
10811
+ # code values. For example, the object `test_file(3).png` will appear as
10812
+ # `test_file%283%29.png`.
10813
+ #
10814
+ # </note>
10815
+ #
10816
+ #
10817
+ #
10818
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10819
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10684
10820
  #
10685
10821
  # @option params [String] :key_marker
10686
10822
  # Specifies the key to start with when listing objects in a bucket.
@@ -10934,12 +11070,26 @@ module Aws::S3
10934
11070
  # A delimiter is a character that you use to group keys.
10935
11071
  #
10936
11072
  # @option params [String] :encoding_type
10937
- # Requests Amazon S3 to encode the object keys in the response and
10938
- # specifies the encoding method to use. An object key can contain any
10939
- # Unicode character; however, the XML 1.0 parser cannot parse some
10940
- # characters, such as characters with an ASCII value from 0 to 10. For
10941
- # characters that are not supported in XML 1.0, you can add this
10942
- # parameter to request that Amazon S3 encode the keys in the response.
11073
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
11074
+ # response. Responses are encoded only in UTF-8. An object key can
11075
+ # contain any Unicode character. However, the XML 1.0 parser can't
11076
+ # parse certain characters, such as characters with an ASCII value from
11077
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
11078
+ # this parameter to request that Amazon S3 encode the keys in the
11079
+ # response. For more information about characters to avoid in object key
11080
+ # names, see [Object key naming guidelines][2].
11081
+ #
11082
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
11083
+ # in an object's key name will be percent-encoded according to UTF-8
11084
+ # code values. For example, the object `test_file(3).png` will appear as
11085
+ # `test_file%283%29.png`.
11086
+ #
11087
+ # </note>
11088
+ #
11089
+ #
11090
+ #
11091
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
11092
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10943
11093
  #
10944
11094
  # @option params [String] :marker
10945
11095
  # Marker is where you want Amazon S3 to start listing from. Amazon S3
@@ -11081,12 +11231,20 @@ module Aws::S3
11081
11231
  # programmatically][1] in the *Amazon S3 User Guide*. To get a list of
11082
11232
  # your buckets, see [ListBuckets][2].
11083
11233
  #
11084
- # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
11085
- # for this API operation to the Zonal endpoint. These endpoints support
11086
- # virtual-hosted-style requests in the format
11087
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
11088
- # Path-style requests are not supported. For more information, see
11089
- # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*.
11234
+ # <note markdown="1"> * **General purpose bucket** - For general purpose buckets,
11235
+ # `ListObjectsV2` doesn't return prefixes that are related only to
11236
+ # in-progress multipart uploads.
11237
+ #
11238
+ # * **Directory buckets** - For directory buckets, `ListObjectsV2`
11239
+ # response includes the prefixes that are related only to in-progress
11240
+ # multipart uploads.
11241
+ #
11242
+ # * **Directory buckets** - For directory buckets, you must make
11243
+ # requests for this API operation to the Zonal endpoint. These
11244
+ # endpoints support virtual-hosted-style requests in the format
11245
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
11246
+ # `. Path-style requests are not supported. For more information, see
11247
+ # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*.
11090
11248
  #
11091
11249
  # </note>
11092
11250
  #
@@ -11215,10 +11373,26 @@ module Aws::S3
11215
11373
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
11216
11374
  #
11217
11375
  # @option params [String] :encoding_type
11218
- # Encoding type used by Amazon S3 to encode object keys in the response.
11219
- # If using `url`, non-ASCII characters used in an object's key name
11220
- # will be URL encoded. For example, the object `test_file(3).png` will
11221
- # appear as `test_file%283%29.png`.
11376
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
11377
+ # response. Responses are encoded only in UTF-8. An object key can
11378
+ # contain any Unicode character. However, the XML 1.0 parser can't
11379
+ # parse certain characters, such as characters with an ASCII value from
11380
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
11381
+ # this parameter to request that Amazon S3 encode the keys in the
11382
+ # response. For more information about characters to avoid in object key
11383
+ # names, see [Object key naming guidelines][2].
11384
+ #
11385
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
11386
+ # in an object's key name will be percent-encoded according to UTF-8
11387
+ # code values. For example, the object `test_file(3).png` will appear as
11388
+ # `test_file%283%29.png`.
11389
+ #
11390
+ # </note>
11391
+ #
11392
+ #
11393
+ #
11394
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
11395
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
11222
11396
  #
11223
11397
  # @option params [Integer] :max_keys
11224
11398
  # Sets the maximum number of keys returned in the response. By default,
@@ -12437,9 +12611,15 @@ module Aws::S3
12437
12611
  # S3 does not validate the KMS key ID provided in PutBucketEncryption
12438
12612
  # requests.
12439
12613
  #
12440
- # This action requires Amazon Web Services Signature Version 4. For more
12441
- # information, see [ Authenticating Requests (Amazon Web Services
12442
- # Signature Version 4)][3].
12614
+ # If you're specifying a customer managed KMS key, we recommend using a
12615
+ # fully qualified KMS key ARN. If you use a KMS key alias instead, then
12616
+ # KMS resolves the key within the requester’s account. This behavior can
12617
+ # result in data that's encrypted with a KMS key that belongs to the
12618
+ # requester, and not the bucket owner.
12619
+ #
12620
+ # Also, this action requires Amazon Web Services Signature Version 4.
12621
+ # For more information, see [ Authenticating Requests (Amazon Web
12622
+ # Services Signature Version 4)][3].
12443
12623
  #
12444
12624
  # To use this operation, you must have permission to perform the
12445
12625
  # `s3:PutEncryptionConfiguration` action. The bucket owner has this
@@ -14507,6 +14687,14 @@ module Aws::S3
14507
14687
  #
14508
14688
  # </note>
14509
14689
  #
14690
+ # <note markdown="1"> When you enable versioning on a bucket for the first time, it might
14691
+ # take a short amount of time for the change to be fully propagated. We
14692
+ # recommend that you wait for 15 minutes after enabling versioning
14693
+ # before issuing write operations (`PUT` or `DELETE`) on objects in the
14694
+ # bucket.
14695
+ #
14696
+ # </note>
14697
+ #
14510
14698
  # Sets the versioning state of an existing bucket.
14511
14699
  #
14512
14700
  # You can set the versioning state with one of the following values:
@@ -15182,6 +15370,25 @@ module Aws::S3
15182
15370
  #
15183
15371
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
15184
15372
  #
15373
+ # @option params [String] :if_none_match
15374
+ # Uploads the object only if the object key name does not already exist
15375
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
15376
+ # Precondition Failed` error.
15377
+ #
15378
+ # If a conflicting operation occurs during the upload S3 returns a `409
15379
+ # ConditionalRequestConflict` response. On a 409 failure you should
15380
+ # retry the upload.
15381
+ #
15382
+ # Expects the '*' (asterisk) character.
15383
+ #
15384
+ # For more information about conditional requests, see [RFC 7232][1], or
15385
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
15386
+ #
15387
+ #
15388
+ #
15389
+ # [1]: https://tools.ietf.org/html/rfc7232
15390
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
15391
+ #
15185
15392
  # @option params [String] :grant_full_control
15186
15393
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
15187
15394
  # object.
@@ -15445,82 +15652,57 @@ module Aws::S3
15445
15652
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
15446
15653
  #
15447
15654
  #
15448
- # @example Example: To upload an object
15655
+ # @example Example: To upload an object (specify optional headers)
15449
15656
  #
15450
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15451
- # # syntax. S3 returns VersionId of the newly created object.
15657
+ # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
15658
+ # # storage class and use server-side encryption.
15452
15659
  #
15453
15660
  # resp = client.put_object({
15454
15661
  # body: "HappyFace.jpg",
15455
15662
  # bucket: "examplebucket",
15456
15663
  # key: "HappyFace.jpg",
15664
+ # server_side_encryption: "AES256",
15665
+ # storage_class: "STANDARD_IA",
15457
15666
  # })
15458
15667
  #
15459
15668
  # resp.to_h outputs the following:
15460
15669
  # {
15461
15670
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15462
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15671
+ # server_side_encryption: "AES256",
15672
+ # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15463
15673
  # }
15464
15674
  #
15465
- # @example Example: To upload an object and specify server-side encryption and object tags
15675
+ # @example Example: To create an object.
15466
15676
  #
15467
- # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
15468
- # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
15677
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
15469
15678
  #
15470
15679
  # resp = client.put_object({
15471
15680
  # body: "filetoupload",
15472
15681
  # bucket: "examplebucket",
15473
- # key: "exampleobject",
15474
- # server_side_encryption: "AES256",
15475
- # tagging: "key1=value1&key2=value2",
15682
+ # key: "objectkey",
15476
15683
  # })
15477
15684
  #
15478
15685
  # resp.to_h outputs the following:
15479
15686
  # {
15480
15687
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15481
- # server_side_encryption: "AES256",
15482
- # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15688
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15483
15689
  # }
15484
15690
  #
15485
- # @example Example: To upload an object (specify optional headers)
15691
+ # @example Example: To upload an object
15486
15692
  #
15487
- # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
15488
- # # storage class and use server-side encryption.
15693
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15694
+ # # syntax. S3 returns VersionId of the newly created object.
15489
15695
  #
15490
15696
  # resp = client.put_object({
15491
15697
  # body: "HappyFace.jpg",
15492
15698
  # bucket: "examplebucket",
15493
15699
  # key: "HappyFace.jpg",
15494
- # server_side_encryption: "AES256",
15495
- # storage_class: "STANDARD_IA",
15496
- # })
15497
- #
15498
- # resp.to_h outputs the following:
15499
- # {
15500
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15501
- # server_side_encryption: "AES256",
15502
- # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15503
- # }
15504
- #
15505
- # @example Example: To upload object and specify user-defined metadata
15506
- #
15507
- # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
15508
- # # enabled, S3 returns version ID in response.
15509
- #
15510
- # resp = client.put_object({
15511
- # body: "filetoupload",
15512
- # bucket: "examplebucket",
15513
- # key: "exampleobject",
15514
- # metadata: {
15515
- # "metadata1" => "value1",
15516
- # "metadata2" => "value2",
15517
- # },
15518
15700
  # })
15519
15701
  #
15520
15702
  # resp.to_h outputs the following:
15521
15703
  # {
15522
15704
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15523
- # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15705
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15524
15706
  # }
15525
15707
  #
15526
15708
  # @example Example: To upload an object and specify optional tags
@@ -15559,20 +15741,45 @@ module Aws::S3
15559
15741
  # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
15560
15742
  # }
15561
15743
  #
15562
- # @example Example: To create an object.
15744
+ # @example Example: To upload object and specify user-defined metadata
15563
15745
  #
15564
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
15746
+ # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
15747
+ # # enabled, S3 returns version ID in response.
15565
15748
  #
15566
15749
  # resp = client.put_object({
15567
15750
  # body: "filetoupload",
15568
15751
  # bucket: "examplebucket",
15569
- # key: "objectkey",
15752
+ # key: "exampleobject",
15753
+ # metadata: {
15754
+ # "metadata1" => "value1",
15755
+ # "metadata2" => "value2",
15756
+ # },
15570
15757
  # })
15571
15758
  #
15572
15759
  # resp.to_h outputs the following:
15573
15760
  # {
15574
15761
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15575
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15762
+ # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15763
+ # }
15764
+ #
15765
+ # @example Example: To upload an object and specify server-side encryption and object tags
15766
+ #
15767
+ # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
15768
+ # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
15769
+ #
15770
+ # resp = client.put_object({
15771
+ # body: "filetoupload",
15772
+ # bucket: "examplebucket",
15773
+ # key: "exampleobject",
15774
+ # server_side_encryption: "AES256",
15775
+ # tagging: "key1=value1&key2=value2",
15776
+ # })
15777
+ #
15778
+ # resp.to_h outputs the following:
15779
+ # {
15780
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15781
+ # server_side_encryption: "AES256",
15782
+ # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15576
15783
  # }
15577
15784
  #
15578
15785
  # @example Streaming a file from disk
@@ -15600,6 +15807,7 @@ module Aws::S3
15600
15807
  # checksum_sha1: "ChecksumSHA1",
15601
15808
  # checksum_sha256: "ChecksumSHA256",
15602
15809
  # expires: Time.now,
15810
+ # if_none_match: "IfNoneMatch",
15603
15811
  # grant_full_control: "GrantFullControl",
15604
15812
  # grant_read: "GrantRead",
15605
15813
  # grant_read_acp: "GrantReadACP",
@@ -16699,6 +16907,10 @@ module Aws::S3
16699
16907
  #
16700
16908
  # </note>
16701
16909
  #
16910
+ # The `SELECT` job type for the RestoreObject operation is no longer
16911
+ # available to new customers. Existing customers of Amazon S3 Select can
16912
+ # continue to use the feature as usual. [Learn more][1]
16913
+ #
16702
16914
  # Restores an archived copy of an object back into Amazon S3
16703
16915
  #
16704
16916
  # This functionality is not supported for Amazon S3 on Outposts.
@@ -16712,11 +16924,11 @@ module Aws::S3
16712
16924
  # For more information about the `S3` structure in the request body, see
16713
16925
  # the following:
16714
16926
  #
16715
- # * [PutObject][1]
16927
+ # * [PutObject][2]
16716
16928
  #
16717
- # * [Managing Access with ACLs][2] in the *Amazon S3 User Guide*
16929
+ # * [Managing Access with ACLs][3] in the *Amazon S3 User Guide*
16718
16930
  #
16719
- # * [Protecting Data Using Server-Side Encryption][3] in the *Amazon S3
16931
+ # * [Protecting Data Using Server-Side Encryption][4] in the *Amazon S3
16720
16932
  # User Guide*
16721
16933
  #
16722
16934
  # Permissions
@@ -16725,8 +16937,8 @@ module Aws::S3
16725
16937
  # `s3:RestoreObject` action. The bucket owner has this permission by
16726
16938
  # default and can grant this permission to others. For more
16727
16939
  # information about permissions, see [Permissions Related to Bucket
16728
- # Subresource Operations][4] and [Managing Access Permissions to Your
16729
- # Amazon S3 Resources][5] in the *Amazon S3 User Guide*.
16940
+ # Subresource Operations][5] and [Managing Access Permissions to Your
16941
+ # Amazon S3 Resources][6] in the *Amazon S3 User Guide*.
16730
16942
  #
16731
16943
  # Restoring objects
16732
16944
  #
@@ -16789,11 +17001,11 @@ module Aws::S3
16789
17001
  #
16790
17002
  # For more information about archive retrieval options and provisioned
16791
17003
  # capacity for `Expedited` data access, see [Restoring Archived
16792
- # Objects][6] in the *Amazon S3 User Guide*.
17004
+ # Objects][7] in the *Amazon S3 User Guide*.
16793
17005
  #
16794
17006
  # You can use Amazon S3 restore speed upgrade to change the restore
16795
17007
  # speed to a faster speed while it is in progress. For more
16796
- # information, see [ Upgrading the speed of an in-progress restore][7]
17008
+ # information, see [ Upgrading the speed of an in-progress restore][8]
16797
17009
  # in the *Amazon S3 User Guide*.
16798
17010
  #
16799
17011
  # To get the status of object restoration, you can send a `HEAD`
@@ -16801,7 +17013,7 @@ module Aws::S3
16801
17013
  # provides information about the restoration status, in the response.
16802
17014
  # You can use Amazon S3 event notifications to notify you when a
16803
17015
  # restore is initiated or completed. For more information, see
16804
- # [Configuring Amazon S3 Event Notifications][8] in the *Amazon S3
17016
+ # [Configuring Amazon S3 Event Notifications][9] in the *Amazon S3
16805
17017
  # User Guide*.
16806
17018
  #
16807
17019
  # After restoring an archived object, you can update the restoration
@@ -16817,8 +17029,8 @@ module Aws::S3
16817
17029
  # restore an object copy for 10 days, but the object is scheduled to
16818
17030
  # expire in 3 days, Amazon S3 deletes the object in 3 days. For more
16819
17031
  # information about lifecycle configuration, see
16820
- # [PutBucketLifecycleConfiguration][9] and [Object Lifecycle
16821
- # Management][10] in *Amazon S3 User Guide*.
17032
+ # [PutBucketLifecycleConfiguration][10] and [Object Lifecycle
17033
+ # Management][11] in *Amazon S3 User Guide*.
16822
17034
  #
16823
17035
  # Responses
16824
17036
  #
@@ -16856,23 +17068,24 @@ module Aws::S3
16856
17068
  #
16857
17069
  # The following operations are related to `RestoreObject`:
16858
17070
  #
16859
- # * [PutBucketLifecycleConfiguration][9]
17071
+ # * [PutBucketLifecycleConfiguration][10]
16860
17072
  #
16861
- # * [GetBucketNotificationConfiguration][11]
17073
+ # * [GetBucketNotificationConfiguration][12]
16862
17074
  #
16863
17075
  #
16864
17076
  #
16865
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
16866
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
16867
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
16868
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
16869
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
16870
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
16871
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html
16872
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
16873
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
16874
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
16875
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html
17077
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
17078
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
17079
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
17080
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17081
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
17082
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
17083
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
17084
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html
17085
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
17086
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17087
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
17088
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html
16876
17089
  #
16877
17090
  # @option params [required, String] :bucket
16878
17091
  # The bucket name containing the object to restore.
@@ -17084,6 +17297,10 @@ module Aws::S3
17084
17297
  #
17085
17298
  # </note>
17086
17299
  #
17300
+ # The SelectObjectContent operation is no longer available to new
17301
+ # customers. Existing customers of Amazon S3 Select can continue to use
17302
+ # the operation as usual. [Learn more][1]
17303
+ #
17087
17304
  # This action filters the contents of an Amazon S3 object based on a
17088
17305
  # simple structured query language (SQL) statement. In the request,
17089
17306
  # along with the SQL expression, you must also specify a data
@@ -17095,7 +17312,7 @@ module Aws::S3
17095
17312
  # This functionality is not supported for Amazon S3 on Outposts.
17096
17313
  #
17097
17314
  # For more information about Amazon S3 Select, see [Selecting Content
17098
- # from Objects][1] and [SELECT Command][2] in the *Amazon S3 User
17315
+ # from Objects][2] and [SELECT Command][3] in the *Amazon S3 User
17099
17316
  # Guide*.
17100
17317
  #
17101
17318
  #
@@ -17105,7 +17322,7 @@ module Aws::S3
17105
17322
  # : You must have the `s3:GetObject` permission for this
17106
17323
  # operation. Amazon S3 Select does not support anonymous access. For
17107
17324
  # more information about permissions, see [Specifying Permissions in a
17108
- # Policy][3] in the *Amazon S3 User Guide*.
17325
+ # Policy][4] in the *Amazon S3 User Guide*.
17109
17326
  #
17110
17327
  # Object Data Formats
17111
17328
  #
@@ -17130,31 +17347,31 @@ module Aws::S3
17130
17347
  #
17131
17348
  # For objects that are encrypted with customer-provided encryption
17132
17349
  # keys (SSE-C), you must use HTTPS, and you must use the headers
17133
- # that are documented in the [GetObject][4]. For more information
17350
+ # that are documented in the [GetObject][5]. For more information
17134
17351
  # about SSE-C, see [Server-Side Encryption (Using Customer-Provided
17135
- # Encryption Keys)][5] in the *Amazon S3 User Guide*.
17352
+ # Encryption Keys)][6] in the *Amazon S3 User Guide*.
17136
17353
  #
17137
17354
  # For objects that are encrypted with Amazon S3 managed keys
17138
17355
  # (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side
17139
17356
  # encryption is handled transparently, so you don't need to specify
17140
17357
  # anything. For more information about server-side encryption,
17141
17358
  # including SSE-S3 and SSE-KMS, see [Protecting Data Using
17142
- # Server-Side Encryption][6] in the *Amazon S3 User Guide*.
17359
+ # Server-Side Encryption][7] in the *Amazon S3 User Guide*.
17143
17360
  #
17144
17361
  # Working with the Response Body
17145
17362
  #
17146
17363
  # : Given the response size is unknown, Amazon S3 Select streams the
17147
17364
  # response as a series of messages and includes a `Transfer-Encoding`
17148
17365
  # header with `chunked` as its value in the response. For more
17149
- # information, see [Appendix: SelectObjectContent Response][7].
17366
+ # information, see [Appendix: SelectObjectContent Response][8].
17150
17367
  #
17151
17368
  # GetObject Support
17152
17369
  #
17153
17370
  # : The `SelectObjectContent` action does not support the following
17154
- # `GetObject` functionality. For more information, see [GetObject][4].
17371
+ # `GetObject` functionality. For more information, see [GetObject][5].
17155
17372
  #
17156
17373
  # * `Range`: Although you can specify a scan range for an Amazon S3
17157
- # Select request (see [SelectObjectContentRequest - ScanRange][8] in
17374
+ # Select request (see [SelectObjectContentRequest - ScanRange][9] in
17158
17375
  # the request parameters), you cannot specify the range of bytes of
17159
17376
  # an object to return.
17160
17377
  #
@@ -17165,36 +17382,37 @@ module Aws::S3
17165
17382
  # storage classes, nor objects in the `ARCHIVE_ACCESS` or
17166
17383
  # `DEEP_ARCHIVE_ACCESS` access tiers of the `INTELLIGENT_TIERING`
17167
17384
  # storage class. For more information about storage classes, see
17168
- # [Using Amazon S3 storage classes][9] in the *Amazon S3 User
17385
+ # [Using Amazon S3 storage classes][10] in the *Amazon S3 User
17169
17386
  # Guide*.
17170
17387
  #
17171
17388
  # Special Errors
17172
17389
  #
17173
17390
  # : For a list of special errors for this operation, see [List of SELECT
17174
- # Object Content Error Codes][10]
17391
+ # Object Content Error Codes][11]
17175
17392
  #
17176
17393
  # The following operations are related to `SelectObjectContent`:
17177
17394
  #
17178
- # * [GetObject][4]
17395
+ # * [GetObject][5]
17179
17396
  #
17180
- # * [GetBucketLifecycleConfiguration][11]
17397
+ # * [GetBucketLifecycleConfiguration][12]
17181
17398
  #
17182
- # * [PutBucketLifecycleConfiguration][12]
17399
+ # * [PutBucketLifecycleConfiguration][13]
17183
17400
  #
17184
17401
  #
17185
17402
  #
17186
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
17187
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html
17188
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
17189
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
17190
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
17191
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17192
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html
17193
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange
17194
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
17195
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList
17196
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
17197
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17403
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
17404
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
17405
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html
17406
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
17407
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
17408
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
17409
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17410
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html
17411
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange
17412
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
17413
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList
17414
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
17415
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17198
17416
  #
17199
17417
  # @option params [required, String] :bucket
17200
17418
  # The S3 bucket.
@@ -17541,14 +17759,27 @@ module Aws::S3
17541
17759
  # </note>
17542
17760
  #
17543
17761
  # Permissions
17544
- # : * **General purpose bucket permissions** - For information on the
17545
- # permissions required to use the multipart upload API, see
17546
- # [Multipart Upload and Permissions][6] in the *Amazon S3 User
17547
- # Guide*.
17762
+ # : * **General purpose bucket permissions** - To perform a multipart
17763
+ # upload with encryption using an Key Management Service key, the
17764
+ # requester must have permission to the `kms:Decrypt` and
17765
+ # `kms:GenerateDataKey` actions on the key. The requester must also
17766
+ # have permissions for the `kms:GenerateDataKey` action for the
17767
+ # `CreateMultipartUpload` API. Then, the requester needs permissions
17768
+ # for the `kms:Decrypt` action on the `UploadPart` and
17769
+ # `UploadPartCopy` APIs.
17770
+ #
17771
+ # These permissions are required because Amazon S3 must decrypt and
17772
+ # read data from the encrypted file parts before it completes the
17773
+ # multipart upload. For more information about KMS permissions, see
17774
+ # [Protecting data using server-side encryption with KMS][6] in the
17775
+ # *Amazon S3 User Guide*. For information about the permissions
17776
+ # required to use the multipart upload API, see [Multipart upload
17777
+ # and permissions][7] and [Multipart upload API and permissions][8]
17778
+ # in the *Amazon S3 User Guide*.
17548
17779
  #
17549
17780
  # * **Directory bucket permissions** - To grant access to this API
17550
17781
  # operation on a directory bucket, we recommend that you use the [
17551
- # `CreateSession` ][7] API operation for session-based
17782
+ # `CreateSession` ][9] API operation for session-based
17552
17783
  # authorization. Specifically, you grant the
17553
17784
  # `s3express:CreateSession` permission to the directory bucket in a
17554
17785
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -17559,7 +17790,7 @@ module Aws::S3
17559
17790
  # token for use. Amazon Web Services CLI or SDKs create session and
17560
17791
  # refresh the session token automatically to avoid service
17561
17792
  # interruptions when a session expires. For more information about
17562
- # authorization, see [ `CreateSession` ][7].
17793
+ # authorization, see [ `CreateSession` ][9].
17563
17794
  #
17564
17795
  # Data integrity
17565
17796
  #
@@ -17571,7 +17802,7 @@ module Aws::S3
17571
17802
  # then Amazon Web Services S3 uses the `x-amz-content-sha256` header
17572
17803
  # as a checksum instead of `Content-MD5`. For more information see
17573
17804
  # [Authenticating Requests: Using the Authorization Header (Amazon Web
17574
- # Services Signature Version 4)][8].
17805
+ # Services Signature Version 4)][10].
17575
17806
  #
17576
17807
  # <note markdown="1"> **Directory buckets** - MD5 is not supported by directory buckets.
17577
17808
  # You can use checksum algorithms to check object integrity.
@@ -17616,7 +17847,7 @@ module Aws::S3
17616
17847
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
17617
17848
  # supported.
17618
17849
  #
17619
- # For more information, see [Using Server-Side Encryption][9] in the
17850
+ # For more information, see [Using Server-Side Encryption][11] in the
17620
17851
  # *Amazon S3 User Guide*.
17621
17852
  #
17622
17853
  # Special errors
@@ -17639,13 +17870,13 @@ module Aws::S3
17639
17870
  #
17640
17871
  # * [CreateMultipartUpload][2]
17641
17872
  #
17642
- # * [CompleteMultipartUpload][10]
17873
+ # * [CompleteMultipartUpload][12]
17643
17874
  #
17644
- # * [AbortMultipartUpload][11]
17875
+ # * [AbortMultipartUpload][13]
17645
17876
  #
17646
- # * [ListParts][12]
17877
+ # * [ListParts][14]
17647
17878
  #
17648
- # * [ListMultipartUploads][13]
17879
+ # * [ListMultipartUploads][15]
17649
17880
  #
17650
17881
  #
17651
17882
  #
@@ -17654,14 +17885,16 @@ module Aws::S3
17654
17885
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html
17655
17886
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
17656
17887
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
17657
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
17658
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
17659
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
17660
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
17661
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
17662
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
17663
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
17664
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
17888
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
17889
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
17890
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
17891
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
17892
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
17893
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
17894
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
17895
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
17896
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
17897
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
17665
17898
  #
17666
17899
  # @option params [String, StringIO, File] :body
17667
17900
  # Object data.
@@ -17994,9 +18227,21 @@ module Aws::S3
17994
18227
  # have the <b> <code>s3:PutObject</code> </b> permission to write
17995
18228
  # the object copy to the destination bucket.
17996
18229
  #
17997
- # For information about permissions required to use the multipart
17998
- # upload API, see [Multipart upload API and permissions][7] in the
17999
- # *Amazon S3 User Guide*.
18230
+ # * To perform a multipart upload with encryption using an Key
18231
+ # Management Service key, the requester must have permission to
18232
+ # the `kms:Decrypt` and `kms:GenerateDataKey` actions on the key.
18233
+ # The requester must also have permissions for the
18234
+ # `kms:GenerateDataKey` action for the `CreateMultipartUpload`
18235
+ # API. Then, the requester needs permissions for the `kms:Decrypt`
18236
+ # action on the `UploadPart` and `UploadPartCopy` APIs. These
18237
+ # permissions are required because Amazon S3 must decrypt and read
18238
+ # data from the encrypted file parts before it completes the
18239
+ # multipart upload. For more information about KMS permissions,
18240
+ # see [Protecting data using server-side encryption with KMS][7]
18241
+ # in the *Amazon S3 User Guide*. For information about the
18242
+ # permissions required to use the multipart upload API, see
18243
+ # [Multipart upload and permissions][8] and [Multipart upload API
18244
+ # and permissions][9] in the *Amazon S3 User Guide*.
18000
18245
  #
18001
18246
  # * **Directory bucket permissions** - You must have permissions in a
18002
18247
  # bucket policy or an IAM identity-based policy based on the source
@@ -18017,14 +18262,14 @@ module Aws::S3
18017
18262
  # set to `ReadOnly` on the copy destination.
18018
18263
  #
18019
18264
  # For example policies, see [Example bucket policies for S3 Express
18020
- # One Zone][8] and [Amazon Web Services Identity and Access
18265
+ # One Zone][10] and [Amazon Web Services Identity and Access
18021
18266
  # Management (IAM) identity-based policies for S3 Express One
18022
- # Zone][9] in the *Amazon S3 User Guide*.
18267
+ # Zone][11] in the *Amazon S3 User Guide*.
18023
18268
  #
18024
18269
  # Encryption
18025
18270
  # : * <b>General purpose buckets </b> - For information about using
18026
18271
  # server-side encryption with customer-provided encryption keys with
18027
- # the `UploadPartCopy` operation, see [CopyObject][10] and
18272
+ # the `UploadPartCopy` operation, see [CopyObject][12] and
18028
18273
  # [UploadPart][2].
18029
18274
  #
18030
18275
  # * <b>Directory buckets </b> - For directory buckets, only
@@ -18054,17 +18299,17 @@ module Aws::S3
18054
18299
  #
18055
18300
  # The following operations are related to `UploadPartCopy`:
18056
18301
  #
18057
- # * [CreateMultipartUpload][11]
18302
+ # * [CreateMultipartUpload][13]
18058
18303
  #
18059
18304
  # * [UploadPart][2]
18060
18305
  #
18061
- # * [CompleteMultipartUpload][12]
18306
+ # * [CompleteMultipartUpload][14]
18062
18307
  #
18063
- # * [AbortMultipartUpload][13]
18308
+ # * [AbortMultipartUpload][15]
18064
18309
  #
18065
- # * [ListParts][14]
18310
+ # * [ListParts][16]
18066
18311
  #
18067
- # * [ListMultipartUploads][15]
18312
+ # * [ListMultipartUploads][17]
18068
18313
  #
18069
18314
  #
18070
18315
  #
@@ -18074,15 +18319,17 @@ module Aws::S3
18074
18319
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html
18075
18320
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
18076
18321
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
18077
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
18078
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
18079
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
18080
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
18081
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
18082
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
18083
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
18084
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
18085
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
18322
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
18323
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
18324
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
18325
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
18326
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
18327
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
18328
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
18329
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
18330
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
18331
+ # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
18332
+ # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
18086
18333
  #
18087
18334
  # @option params [required, String] :bucket
18088
18335
  # The bucket name.
@@ -18856,14 +19103,19 @@ module Aws::S3
18856
19103
  # @api private
18857
19104
  def build_request(operation_name, params = {})
18858
19105
  handlers = @handlers.for(operation_name)
19106
+ tracer = config.telemetry_provider.tracer_provider.tracer(
19107
+ Aws::Telemetry.module_to_tracer_name('Aws::S3')
19108
+ )
18859
19109
  context = Seahorse::Client::RequestContext.new(
18860
19110
  operation_name: operation_name,
18861
19111
  operation: config.api.operation(operation_name),
18862
19112
  client: self,
18863
19113
  params: params,
18864
- config: config)
19114
+ config: config,
19115
+ tracer: tracer
19116
+ )
18865
19117
  context[:gem_name] = 'aws-sdk-s3'
18866
- context[:gem_version] = '1.156.0'
19118
+ context[:gem_version] = '1.162.0'
18867
19119
  Seahorse::Client::Request.new(handlers, context)
18868
19120
  end
18869
19121