aws-sdk-s3 1.150.0 → 1.160.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +65 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +12 -3
  5. data/lib/aws-sdk-s3/bucket.rb +89 -26
  6. data/lib/aws-sdk-s3/bucket_acl.rb +3 -3
  7. data/lib/aws-sdk-s3/bucket_cors.rb +4 -4
  8. data/lib/aws-sdk-s3/bucket_lifecycle.rb +4 -4
  9. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +4 -4
  10. data/lib/aws-sdk-s3/bucket_logging.rb +3 -3
  11. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  12. data/lib/aws-sdk-s3/bucket_policy.rb +4 -4
  13. data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
  14. data/lib/aws-sdk-s3/bucket_tagging.rb +4 -4
  15. data/lib/aws-sdk-s3/bucket_versioning.rb +5 -5
  16. data/lib/aws-sdk-s3/bucket_website.rb +4 -4
  17. data/lib/aws-sdk-s3/client.rb +632 -351
  18. data/lib/aws-sdk-s3/client_api.rb +27 -3
  19. data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
  20. data/lib/aws-sdk-s3/customizations/object.rb +5 -5
  21. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  22. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
  23. data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
  24. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
  25. data/lib/aws-sdk-s3/endpoint_parameters.rb +8 -0
  26. data/lib/aws-sdk-s3/endpoint_provider.rb +1 -0
  27. data/lib/aws-sdk-s3/endpoints.rb +100 -1
  28. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  29. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  30. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +1 -1
  31. data/lib/aws-sdk-s3/multipart_upload.rb +24 -4
  32. data/lib/aws-sdk-s3/multipart_upload_part.rb +3 -3
  33. data/lib/aws-sdk-s3/object.rb +66 -16
  34. data/lib/aws-sdk-s3/object_acl.rb +3 -3
  35. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  36. data/lib/aws-sdk-s3/object_summary.rb +38 -10
  37. data/lib/aws-sdk-s3/object_version.rb +40 -9
  38. data/lib/aws-sdk-s3/plugins/access_grants.rb +75 -5
  39. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +7 -1
  40. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  41. data/lib/aws-sdk-s3/resource.rb +12 -10
  42. data/lib/aws-sdk-s3/types.rb +340 -62
  43. data/lib/aws-sdk-s3.rb +1 -1
  44. data/sig/bucket.rbs +1 -0
  45. data/sig/client.rbs +27 -1
  46. data/sig/multipart_upload.rbs +1 -0
  47. data/sig/object.rbs +7 -0
  48. data/sig/object_summary.rbs +1 -0
  49. data/sig/object_version.rbs +6 -0
  50. data/sig/resource.rbs +4 -1
  51. data/sig/types.rbs +15 -0
  52. data/sig/waiters.rbs +12 -0
  53. metadata +6 -6
@@ -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)
@@ -131,6 +133,11 @@ module Aws::S3
131
133
 
132
134
  # @overload initialize(options)
133
135
  # @param [Hash] options
136
+ #
137
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
138
+ # A list of plugins to apply to the client. Each plugin is either a
139
+ # class name or an instance of a plugin class.
140
+ #
134
141
  # @option options [required, Aws::CredentialProvider] :credentials
135
142
  # Your AWS credentials. This can be an instance of any one of the
136
143
  # following classes:
@@ -271,7 +278,6 @@ module Aws::S3
271
278
  # 'https://example.com'
272
279
  # 'http://example.com:123'
273
280
  #
274
- #
275
281
  # @option options [Integer] :endpoint_cache_max_entries (1000)
276
282
  # Used for the maximum size limit of the LRU cache storing endpoints data
277
283
  # for endpoint discovery enabled operations. Defaults to 1000.
@@ -386,7 +392,6 @@ module Aws::S3
386
392
  # throttling. This is a provisional mode that may change behavior
387
393
  # in the future.
388
394
  #
389
- #
390
395
  # @option options [Boolean] :s3_disable_multiregion_access_points (false)
391
396
  # When set to `false` this will option will raise errors when multi-region
392
397
  # access point ARNs are used. Multi-region access points can potentially
@@ -411,6 +416,15 @@ module Aws::S3
411
416
  #
412
417
  # @option options [String] :session_token
413
418
  #
419
+ # @option options [Array] :sigv4a_signing_region_set
420
+ # A list of regions that should be signed with SigV4a signing. When
421
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
422
+ # in the following locations:
423
+ #
424
+ # * `Aws.config[:sigv4a_signing_region_set]`
425
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
426
+ # * `~/.aws/config`
427
+ #
414
428
  # @option options [Boolean] :stub_responses (false)
415
429
  # Causes the client to return stubbed responses. By default
416
430
  # fake responses are generated and returned. You can specify
@@ -420,6 +434,16 @@ module Aws::S3
420
434
  # ** Please note ** When response stubbing is enabled, no HTTP
421
435
  # requests are made, and retries are disabled.
422
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
+ #
423
447
  # @option options [Aws::TokenProvider] :token_provider
424
448
  # A Bearer Token Provider. This can be an instance of any one of the
425
449
  # following classes:
@@ -532,12 +556,20 @@ module Aws::S3
532
556
  # for the part storage, you should call the [ListParts][1] API operation
533
557
  # and ensure that the parts list is empty.
534
558
  #
535
- # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
536
- # for this API operation to the Zonal endpoint. These endpoints support
537
- # virtual-hosted-style requests in the format
538
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
539
- # Path-style requests are not supported. For more information, see
540
- # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
559
+ # <note markdown="1"> * **Directory buckets** - If multipart uploads in a directory bucket
560
+ # are in progress, you can't delete the bucket until all the
561
+ # in-progress multipart uploads are aborted or completed. To delete
562
+ # these in-progress multipart uploads, use the `ListMultipartUploads`
563
+ # operation to list the in-progress multipart uploads in the bucket
564
+ # and use the `AbortMultupartUpload` operation to abort all the
565
+ # in-progress multipart uploads.
566
+ #
567
+ # * **Directory buckets** - For directory buckets, you must make
568
+ # requests for this API operation to the Zonal endpoint. These
569
+ # endpoints support virtual-hosted-style requests in the format
570
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
571
+ # `. Path-style requests are not supported. For more information, see
572
+ # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
541
573
  #
542
574
  # </note>
543
575
  #
@@ -777,6 +809,12 @@ module Aws::S3
777
809
  # interruptions when a session expires. For more information about
778
810
  # authorization, see [ `CreateSession` ][7].
779
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
+ #
780
818
  # Special errors
781
819
  # : * Error Code: `EntityTooSmall`
782
820
  #
@@ -816,15 +854,15 @@ module Aws::S3
816
854
  #
817
855
  # The following operations are related to `CompleteMultipartUpload`:
818
856
  #
819
- # * [CreateMultipartUpload][8]
857
+ # * [CreateMultipartUpload][9]
820
858
  #
821
859
  # * [UploadPart][1]
822
860
  #
823
- # * [AbortMultipartUpload][9]
861
+ # * [AbortMultipartUpload][10]
824
862
  #
825
- # * [ListParts][10]
863
+ # * [ListParts][11]
826
864
  #
827
- # * [ListMultipartUploads][11]
865
+ # * [ListMultipartUploads][12]
828
866
  #
829
867
  #
830
868
  #
@@ -835,10 +873,11 @@ module Aws::S3
835
873
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
836
874
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
837
875
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
838
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
839
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
840
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
841
- # [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
842
881
  #
843
882
  # @option params [required, String] :bucket
844
883
  # Name of the bucket to which the multipart upload was initiated.
@@ -959,6 +998,26 @@ module Aws::S3
959
998
  # you provide does not match the actual owner of the bucket, the request
960
999
  # fails with the HTTP status code `403 Forbidden` (access denied).
961
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
+ #
962
1021
  # @option params [String] :sse_customer_algorithm
963
1022
  # The server-side encryption (SSE) algorithm used to encrypt the object.
964
1023
  # This parameter is required only when the object was created using a
@@ -1074,6 +1133,7 @@ module Aws::S3
1074
1133
  # checksum_sha256: "ChecksumSHA256",
1075
1134
  # request_payer: "requester", # accepts requester
1076
1135
  # expected_bucket_owner: "AccountId",
1136
+ # if_none_match: "IfNoneMatch",
1077
1137
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1078
1138
  # sse_customer_key: "SSECustomerKey",
1079
1139
  # sse_customer_key_md5: "SSECustomerKeyMD5",
@@ -1120,12 +1180,20 @@ module Aws::S3
1120
1180
  # between directory buckets, and between general purpose buckets and
1121
1181
  # directory buckets.
1122
1182
  #
1123
- # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
1124
- # requests for this API operation to the Zonal endpoint. These endpoints
1125
- # support virtual-hosted-style requests in the format
1126
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
1127
- # Path-style requests are not supported. For more information, see
1128
- # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
1183
+ # <note markdown="1"> * Amazon S3 supports copy operations using Multi-Region Access Points
1184
+ # only as a destination when using the Multi-Region Access Point ARN.
1185
+ #
1186
+ # * <b>Directory buckets </b> - For directory buckets, you must make
1187
+ # requests for this API operation to the Zonal endpoint. These
1188
+ # endpoints support virtual-hosted-style requests in the format
1189
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
1190
+ # `. Path-style requests are not supported. For more information, see
1191
+ # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
1192
+ #
1193
+ # * VPC endpoints don't support cross-Region requests (including
1194
+ # copies). If you're using VPC endpoints, your source and destination
1195
+ # buckets should be in the same Amazon Web Services Region as your VPC
1196
+ # endpoint.
1129
1197
  #
1130
1198
  # </note>
1131
1199
  #
@@ -1201,8 +1269,7 @@ module Aws::S3
1201
1269
  # : When the request is an HTTP 1.1 request, the response is chunk
1202
1270
  # encoded. When the request is not an HTTP 1.1 request, the response
1203
1271
  # would not contain the `Content-Length`. You always need to read the
1204
- # entire response body to check if the copy succeeds. to keep the
1205
- # connection alive while we copy the data.
1272
+ # entire response body to check if the copy succeeds.
1206
1273
  #
1207
1274
  # * If the copy is successful, you receive a response with information
1208
1275
  # about the copied object.
@@ -2328,33 +2395,33 @@ module Aws::S3
2328
2395
  # * {Types::CreateBucketOutput#location #location} => String
2329
2396
  #
2330
2397
  #
2331
- # @example Example: To create a bucket
2398
+ # @example Example: To create a bucket in a specific region
2332
2399
  #
2333
- # # The following example creates a bucket.
2400
+ # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2334
2401
  #
2335
2402
  # resp = client.create_bucket({
2336
2403
  # bucket: "examplebucket",
2404
+ # create_bucket_configuration: {
2405
+ # location_constraint: "eu-west-1",
2406
+ # },
2337
2407
  # })
2338
2408
  #
2339
2409
  # resp.to_h outputs the following:
2340
2410
  # {
2341
- # location: "/examplebucket",
2411
+ # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2342
2412
  # }
2343
2413
  #
2344
- # @example Example: To create a bucket in a specific region
2414
+ # @example Example: To create a bucket
2345
2415
  #
2346
- # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2416
+ # # The following example creates a bucket.
2347
2417
  #
2348
2418
  # resp = client.create_bucket({
2349
2419
  # bucket: "examplebucket",
2350
- # create_bucket_configuration: {
2351
- # location_constraint: "eu-west-1",
2352
- # },
2353
2420
  # })
2354
2421
  #
2355
2422
  # resp.to_h outputs the following:
2356
2423
  # {
2357
- # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2424
+ # location: "/examplebucket",
2358
2425
  # }
2359
2426
  #
2360
2427
  # @example Request syntax with placeholder values
@@ -2443,24 +2510,23 @@ module Aws::S3
2443
2510
  # Version 4)][5] in the *Amazon S3 User Guide*.
2444
2511
  #
2445
2512
  # Permissions
2446
- # : * **General purpose bucket permissions** - For information about the
2447
- # permissions required to use the multipart upload API, see
2448
- # [Multipart upload and permissions][6] in the *Amazon S3 User
2449
- # Guide*.
2450
- #
2451
- # To perform a multipart upload with encryption by using an Amazon
2452
- # Web Services KMS key, the requester must have permission to the
2453
- # `kms:Decrypt` and `kms:GenerateDataKey*` actions on the key. These
2454
- # permissions are required because Amazon S3 must decrypt and read
2455
- # data from the encrypted file parts before it completes the
2456
- # multipart upload. For more information, see [Multipart upload API
2457
- # and permissions][7] and [Protecting data using server-side
2458
- # encryption with Amazon Web Services KMS][8] in the *Amazon S3 User
2459
- # 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*.
2460
2526
  #
2461
2527
  # * **Directory bucket permissions** - To grant access to this API
2462
2528
  # operation on a directory bucket, we recommend that you use the [
2463
- # `CreateSession` ][9] API operation for session-based
2529
+ # `CreateSession` ][8] API operation for session-based
2464
2530
  # authorization. Specifically, you grant the
2465
2531
  # `s3express:CreateSession` permission to the directory bucket in a
2466
2532
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -2471,7 +2537,7 @@ module Aws::S3
2471
2537
  # token for use. Amazon Web Services CLI or SDKs create session and
2472
2538
  # refresh the session token automatically to avoid service
2473
2539
  # interruptions when a session expires. For more information about
2474
- # authorization, see [ `CreateSession` ][9].
2540
+ # authorization, see [ `CreateSession` ][8].
2475
2541
  #
2476
2542
  # Encryption
2477
2543
  # : * **General purpose buckets** - Server-side encryption is for data
@@ -2498,7 +2564,7 @@ module Aws::S3
2498
2564
  # the destination bucket, the encryption setting in your request
2499
2565
  # takes precedence. If you choose to provide your own encryption
2500
2566
  # key, the request headers you provide in [UploadPart][1] and
2501
- # [UploadPartCopy][10] requests must match the headers you used in
2567
+ # [UploadPartCopy][9] requests must match the headers you used in
2502
2568
  # the `CreateMultipartUpload` request.
2503
2569
  #
2504
2570
  # * Use KMS keys (SSE-KMS) that include the Amazon Web Services
@@ -2524,9 +2590,9 @@ module Aws::S3
2524
2590
  # actions on the key. These permissions are required because
2525
2591
  # Amazon S3 must decrypt and read data from the encrypted file
2526
2592
  # parts before it completes the multipart upload. For more
2527
- # information, see [Multipart upload API and permissions][7] and
2593
+ # information, see [Multipart upload API and permissions][6] and
2528
2594
  # [Protecting data using server-side encryption with Amazon Web
2529
- # Services KMS][8] in the *Amazon S3 User Guide*.
2595
+ # Services KMS][7] in the *Amazon S3 User Guide*.
2530
2596
  #
2531
2597
  # * If your Identity and Access Management (IAM) user or role is
2532
2598
  # in the same Amazon Web Services account as the KMS key, then
@@ -2541,13 +2607,13 @@ module Aws::S3
2541
2607
  # For information about configuring any of the officially
2542
2608
  # supported Amazon Web Services SDKs and Amazon Web Services
2543
2609
  # CLI, see [Specifying the Signature Version in Request
2544
- # Authentication][11] in the *Amazon S3 User Guide*.
2610
+ # Authentication][10] in the *Amazon S3 User Guide*.
2545
2611
  #
2546
2612
  # </note>
2547
2613
  #
2548
2614
  # For more information about server-side encryption with KMS keys
2549
2615
  # (SSE-KMS), see [Protecting Data Using Server-Side Encryption
2550
- # with KMS keys][8] in the *Amazon S3 User Guide*.
2616
+ # with KMS keys][7] in the *Amazon S3 User Guide*.
2551
2617
  #
2552
2618
  # * Use customer-provided encryption keys (SSE-C) – If you want to
2553
2619
  # manage your own encryption keys, provide all the following
@@ -2562,7 +2628,7 @@ module Aws::S3
2562
2628
  # For more information about server-side encryption with
2563
2629
  # customer-provided encryption keys (SSE-C), see [ Protecting data
2564
2630
  # using server-side encryption with customer-provided encryption
2565
- # keys (SSE-C)][12] in the *Amazon S3 User Guide*.
2631
+ # keys (SSE-C)][11] in the *Amazon S3 User Guide*.
2566
2632
  #
2567
2633
  # * **Directory buckets** -For directory buckets, only server-side
2568
2634
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
@@ -2577,13 +2643,13 @@ module Aws::S3
2577
2643
  #
2578
2644
  # * [UploadPart][1]
2579
2645
  #
2580
- # * [CompleteMultipartUpload][13]
2646
+ # * [CompleteMultipartUpload][12]
2581
2647
  #
2582
- # * [AbortMultipartUpload][14]
2648
+ # * [AbortMultipartUpload][13]
2583
2649
  #
2584
- # * [ListParts][15]
2650
+ # * [ListParts][14]
2585
2651
  #
2586
- # * [ListMultipartUploads][16]
2652
+ # * [ListMultipartUploads][15]
2587
2653
  #
2588
2654
  #
2589
2655
  #
@@ -2592,17 +2658,16 @@ module Aws::S3
2592
2658
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
2593
2659
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
2594
2660
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
2595
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
2596
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
2597
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
2598
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
2599
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2600
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
2601
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
2602
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
2603
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
2604
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
2605
- # [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
2606
2671
  #
2607
2672
  # @option params [String] :acl
2608
2673
  # The canned ACL to apply to the object. Amazon S3 supports a set of
@@ -4487,6 +4552,15 @@ module Aws::S3
4487
4552
  # * {Types::DeleteObjectOutput#request_charged #request_charged} => String
4488
4553
  #
4489
4554
  #
4555
+ # @example Example: To delete an object (from a non-versioned bucket)
4556
+ #
4557
+ # # The following example deletes an object from a non-versioned bucket.
4558
+ #
4559
+ # resp = client.delete_object({
4560
+ # bucket: "ExampleBucket",
4561
+ # key: "HappyFace.jpg",
4562
+ # })
4563
+ #
4490
4564
  # @example Example: To delete an object
4491
4565
  #
4492
4566
  # # The following example deletes an object from an S3 bucket.
@@ -4500,15 +4574,6 @@ module Aws::S3
4500
4574
  # {
4501
4575
  # }
4502
4576
  #
4503
- # @example Example: To delete an object (from a non-versioned bucket)
4504
- #
4505
- # # The following example deletes an object from a non-versioned bucket.
4506
- #
4507
- # resp = client.delete_object({
4508
- # bucket: "ExampleBucket",
4509
- # key: "HappyFace.jpg",
4510
- # })
4511
- #
4512
4577
  # @example Request syntax with placeholder values
4513
4578
  #
4514
4579
  # resp = client.delete_object({
@@ -4717,7 +4782,7 @@ module Aws::S3
4717
4782
  # permission.
4718
4783
  #
4719
4784
  # * <b> <code>s3:DeleteObjectVersion</code> </b> - To delete a
4720
- # specific version of an object from a versiong-enabled bucket,
4785
+ # specific version of an object from a versioning-enabled bucket,
4721
4786
  # you must specify the `s3:DeleteObjectVersion` permission.
4722
4787
  #
4723
4788
  # * **Directory bucket permissions** - To grant access to this API
@@ -4918,22 +4983,20 @@ module Aws::S3
4918
4983
  # * {Types::DeleteObjectsOutput#errors #errors} => Array&lt;Types::Error&gt;
4919
4984
  #
4920
4985
  #
4921
- # @example Example: To delete multiple object versions from a versioned bucket
4986
+ # @example Example: To delete multiple objects from a versioned bucket
4922
4987
  #
4923
- # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
4924
- # # versions and returns the key and versions of deleted objects in the response.
4988
+ # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
4989
+ # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
4925
4990
  #
4926
4991
  # resp = client.delete_objects({
4927
4992
  # bucket: "examplebucket",
4928
4993
  # delete: {
4929
4994
  # objects: [
4930
4995
  # {
4931
- # key: "HappyFace.jpg",
4932
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
4996
+ # key: "objectkey1",
4933
4997
  # },
4934
4998
  # {
4935
- # key: "HappyFace.jpg",
4936
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
4999
+ # key: "objectkey2",
4937
5000
  # },
4938
5001
  # ],
4939
5002
  # quiet: false,
@@ -4944,30 +5007,34 @@ module Aws::S3
4944
5007
  # {
4945
5008
  # deleted: [
4946
5009
  # {
4947
- # key: "HappyFace.jpg",
4948
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5010
+ # delete_marker: true,
5011
+ # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
5012
+ # key: "objectkey1",
4949
5013
  # },
4950
5014
  # {
4951
- # key: "HappyFace.jpg",
4952
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5015
+ # delete_marker: true,
5016
+ # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
5017
+ # key: "objectkey2",
4953
5018
  # },
4954
5019
  # ],
4955
5020
  # }
4956
5021
  #
4957
- # @example Example: To delete multiple objects from a versioned bucket
5022
+ # @example Example: To delete multiple object versions from a versioned bucket
4958
5023
  #
4959
- # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
4960
- # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
5024
+ # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
5025
+ # # versions and returns the key and versions of deleted objects in the response.
4961
5026
  #
4962
5027
  # resp = client.delete_objects({
4963
5028
  # bucket: "examplebucket",
4964
5029
  # delete: {
4965
5030
  # objects: [
4966
5031
  # {
4967
- # key: "objectkey1",
5032
+ # key: "HappyFace.jpg",
5033
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
4968
5034
  # },
4969
5035
  # {
4970
- # key: "objectkey2",
5036
+ # key: "HappyFace.jpg",
5037
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
4971
5038
  # },
4972
5039
  # ],
4973
5040
  # quiet: false,
@@ -4978,14 +5045,12 @@ module Aws::S3
4978
5045
  # {
4979
5046
  # deleted: [
4980
5047
  # {
4981
- # delete_marker: true,
4982
- # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
4983
- # key: "objectkey1",
5048
+ # key: "HappyFace.jpg",
5049
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
4984
5050
  # },
4985
5051
  # {
4986
- # delete_marker: true,
4987
- # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
4988
- # key: "objectkey2",
5052
+ # key: "HappyFace.jpg",
5053
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
4989
5054
  # },
4990
5055
  # ],
4991
5056
  # }
@@ -7652,6 +7717,15 @@ module Aws::S3
7652
7717
  # @option params [String] :checksum_mode
7653
7718
  # To retrieve the checksum, this mode must be enabled.
7654
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
+ #
7655
7729
  # @return [Types::GetObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7656
7730
  #
7657
7731
  # * {Types::GetObjectOutput#body #body} => IO
@@ -7693,49 +7767,49 @@ module Aws::S3
7693
7767
  # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
7694
7768
  #
7695
7769
  #
7696
- # @example Example: To retrieve a byte range of an object
7770
+ # @example Example: To retrieve an object
7697
7771
  #
7698
- # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
7699
- # # specific byte range.
7772
+ # # The following example retrieves an object for an S3 bucket.
7700
7773
  #
7701
7774
  # resp = client.get_object({
7702
7775
  # bucket: "examplebucket",
7703
- # key: "SampleFile.txt",
7704
- # range: "bytes=0-9",
7776
+ # key: "HappyFace.jpg",
7705
7777
  # })
7706
7778
  #
7707
7779
  # resp.to_h outputs the following:
7708
7780
  # {
7709
7781
  # accept_ranges: "bytes",
7710
- # content_length: 10,
7711
- # content_range: "bytes 0-9/43",
7712
- # content_type: "text/plain",
7713
- # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
7714
- # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
7782
+ # content_length: 3191,
7783
+ # content_type: "image/jpeg",
7784
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
7785
+ # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
7715
7786
  # metadata: {
7716
7787
  # },
7788
+ # tag_count: 2,
7717
7789
  # version_id: "null",
7718
7790
  # }
7719
7791
  #
7720
- # @example Example: To retrieve an object
7792
+ # @example Example: To retrieve a byte range of an object
7721
7793
  #
7722
- # # The following example retrieves an object for an S3 bucket.
7794
+ # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
7795
+ # # specific byte range.
7723
7796
  #
7724
7797
  # resp = client.get_object({
7725
7798
  # bucket: "examplebucket",
7726
- # key: "HappyFace.jpg",
7799
+ # key: "SampleFile.txt",
7800
+ # range: "bytes=0-9",
7727
7801
  # })
7728
7802
  #
7729
7803
  # resp.to_h outputs the following:
7730
7804
  # {
7731
7805
  # accept_ranges: "bytes",
7732
- # content_length: 3191,
7733
- # content_type: "image/jpeg",
7734
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
7735
- # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
7806
+ # content_length: 10,
7807
+ # content_range: "bytes 0-9/43",
7808
+ # content_type: "text/plain",
7809
+ # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
7810
+ # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
7736
7811
  # metadata: {
7737
7812
  # },
7738
- # tag_count: 2,
7739
7813
  # version_id: "null",
7740
7814
  # }
7741
7815
  #
@@ -8735,49 +8809,49 @@ module Aws::S3
8735
8809
  # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array&lt;Types::Tag&gt;
8736
8810
  #
8737
8811
  #
8738
- # @example Example: To retrieve tag set of a specific object version
8812
+ # @example Example: To retrieve tag set of an object
8739
8813
  #
8740
- # # The following example retrieves tag set of an object. The request specifies object version.
8814
+ # # The following example retrieves tag set of an object.
8741
8815
  #
8742
8816
  # resp = client.get_object_tagging({
8743
8817
  # bucket: "examplebucket",
8744
- # key: "exampleobject",
8745
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8818
+ # key: "HappyFace.jpg",
8746
8819
  # })
8747
8820
  #
8748
8821
  # resp.to_h outputs the following:
8749
8822
  # {
8750
8823
  # tag_set: [
8751
8824
  # {
8752
- # key: "Key1",
8753
- # value: "Value1",
8825
+ # key: "Key4",
8826
+ # value: "Value4",
8827
+ # },
8828
+ # {
8829
+ # key: "Key3",
8830
+ # value: "Value3",
8754
8831
  # },
8755
8832
  # ],
8756
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8833
+ # version_id: "null",
8757
8834
  # }
8758
8835
  #
8759
- # @example Example: To retrieve tag set of an object
8836
+ # @example Example: To retrieve tag set of a specific object version
8760
8837
  #
8761
- # # The following example retrieves tag set of an object.
8838
+ # # The following example retrieves tag set of an object. The request specifies object version.
8762
8839
  #
8763
8840
  # resp = client.get_object_tagging({
8764
8841
  # bucket: "examplebucket",
8765
- # key: "HappyFace.jpg",
8842
+ # key: "exampleobject",
8843
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8766
8844
  # })
8767
8845
  #
8768
8846
  # resp.to_h outputs the following:
8769
8847
  # {
8770
8848
  # tag_set: [
8771
8849
  # {
8772
- # key: "Key4",
8773
- # value: "Value4",
8774
- # },
8775
- # {
8776
- # key: "Key3",
8777
- # value: "Value3",
8850
+ # key: "Key1",
8851
+ # value: "Value1",
8778
8852
  # },
8779
8853
  # ],
8780
- # version_id: "null",
8854
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8781
8855
  # }
8782
8856
  #
8783
8857
  # @example Request syntax with placeholder values
@@ -8986,29 +9060,24 @@ module Aws::S3
8986
9060
  # have permission to access it. The action returns a `200 OK` if the
8987
9061
  # bucket exists and you have permission to access it.
8988
9062
  #
8989
- # If the bucket does not exist or you do not have permission to access
9063
+ # <note markdown="1"> If the bucket does not exist or you do not have permission to access
8990
9064
  # it, the `HEAD` request returns a generic `400 Bad Request`, `403
8991
9065
  # Forbidden` or `404 Not Found` code. A message body is not included, so
8992
9066
  # you cannot determine the exception beyond these HTTP response codes.
8993
9067
  #
8994
- # <note markdown="1"> <b>Directory buckets </b> - You must make requests for this API
8995
- # operation to the Zonal endpoint. These endpoints support
8996
- # virtual-hosted-style requests in the format
8997
- # `https://bucket_name.s3express-az_id.region.amazonaws.com`. Path-style
8998
- # requests are not supported. For more information, see [Regional and
8999
- # Zonal endpoints][1] in the *Amazon S3 User Guide*.
9000
- #
9001
9068
  # </note>
9002
9069
  #
9003
9070
  # Authentication and authorization
9004
9071
  #
9005
- # : All `HeadBucket` requests must be authenticated and signed by using
9006
- # IAM credentials (access key ID and secret access key for the IAM
9007
- # identities). All headers with the `x-amz-` prefix, including
9072
+ # : **General purpose buckets** - Request to public buckets that grant
9073
+ # the s3:ListBucket permission publicly do not need to be signed. All
9074
+ # other `HeadBucket` requests must be authenticated and signed by
9075
+ # using IAM credentials (access key ID and secret access key for the
9076
+ # IAM identities). All headers with the `x-amz-` prefix, including
9008
9077
  # `x-amz-copy-source`, must be signed. For more information, see [REST
9009
- # Authentication][2].
9078
+ # Authentication][1].
9010
9079
  #
9011
- # **Directory bucket** - You must use IAM credentials to authenticate
9080
+ # **Directory buckets** - You must use IAM credentials to authenticate
9012
9081
  # and authorize your access to the `HeadBucket` API operation, instead
9013
9082
  # of using the temporary security credentials through the
9014
9083
  # `CreateSession` API operation.
@@ -9024,7 +9093,7 @@ module Aws::S3
9024
9093
  # you must have permissions to perform the `s3:ListBucket` action.
9025
9094
  # The bucket owner has this permission by default and can grant this
9026
9095
  # permission to others. For more information about permissions, see
9027
- # [Managing access permissions to your Amazon S3 resources][3] in
9096
+ # [Managing access permissions to your Amazon S3 resources][2] in
9028
9097
  # the *Amazon S3 User Guide*.
9029
9098
  #
9030
9099
  # * **Directory bucket permissions** - You must have the <b>
@@ -9035,9 +9104,9 @@ module Aws::S3
9035
9104
  # `ReadOnly` on the bucket.
9036
9105
  #
9037
9106
  # For more information about example bucket policies, see [Example
9038
- # bucket policies for S3 Express One Zone][4] and [Amazon Web
9107
+ # bucket policies for S3 Express One Zone][3] and [Amazon Web
9039
9108
  # Services Identity and Access Management (IAM) identity-based
9040
- # policies for S3 Express One Zone][5] in the *Amazon S3 User
9109
+ # policies for S3 Express One Zone][4] in the *Amazon S3 User
9041
9110
  # Guide*.
9042
9111
  #
9043
9112
  # HTTP Host header syntax
@@ -9045,13 +9114,21 @@ module Aws::S3
9045
9114
  # : <b>Directory buckets </b> - The HTTP Host header syntax is `
9046
9115
  # Bucket_name.s3express-az_id.region.amazonaws.com`.
9047
9116
  #
9117
+ # <note markdown="1"> You must make requests for this API operation to the Zonal endpoint.
9118
+ # These endpoints support virtual-hosted-style requests in the format
9119
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com`.
9120
+ # Path-style requests are not supported. For more information, see
9121
+ # [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*.
9122
+ #
9123
+ # </note>
9048
9124
  #
9049
9125
  #
9050
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9051
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
9052
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
9053
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
9054
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
9126
+ #
9127
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
9128
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
9129
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
9130
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
9131
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9055
9132
  #
9056
9133
  # @option params [required, String] :bucket
9057
9134
  # The bucket name.
@@ -9159,7 +9236,7 @@ module Aws::S3
9159
9236
  # returning the object itself. This operation is useful if you're
9160
9237
  # interested only in an object's metadata.
9161
9238
  #
9162
- # A `HEAD` request has the same options as a `GET` operation on an
9239
+ # <note markdown="1"> A `HEAD` request has the same options as a `GET` operation on an
9163
9240
  # object. The response is identical to the `GET` response except that
9164
9241
  # there is no response body. Because of this, if the `HEAD` request
9165
9242
  # generates an error, it returns a generic code, such as `400 Bad
@@ -9167,18 +9244,11 @@ module Aws::S3
9167
9244
  # `412 Precondition Failed`, or `304 Not Modified`. It's not possible
9168
9245
  # to retrieve the exact exception of these error codes.
9169
9246
  #
9247
+ # </note>
9248
+ #
9170
9249
  # Request headers are limited to 8 KB in size. For more information, see
9171
9250
  # [Common Request Headers][1].
9172
9251
  #
9173
- # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
9174
- # for this API operation to the Zonal endpoint. These endpoints support
9175
- # virtual-hosted-style requests in the format
9176
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
9177
- # Path-style requests are not supported. For more information, see
9178
- # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
9179
- #
9180
- # </note>
9181
- #
9182
9252
  # Permissions
9183
9253
  #
9184
9254
  # :
@@ -9187,7 +9257,7 @@ module Aws::S3
9187
9257
  # have the `s3:GetObject` permission. You need the relevant read
9188
9258
  # object (or version) permission for this operation. For more
9189
9259
  # information, see [Actions, resources, and condition keys for
9190
- # Amazon S3][3] in the *Amazon S3 User Guide*.
9260
+ # Amazon S3][2] in the *Amazon S3 User Guide*.
9191
9261
  #
9192
9262
  # If the object you request doesn't exist, the error that Amazon S3
9193
9263
  # returns depends on whether you also have the `s3:ListBucket`
@@ -9201,7 +9271,7 @@ module Aws::S3
9201
9271
  #
9202
9272
  # * **Directory bucket permissions** - To grant access to this API
9203
9273
  # operation on a directory bucket, we recommend that you use the [
9204
- # `CreateSession` ][4] API operation for session-based
9274
+ # `CreateSession` ][3] API operation for session-based
9205
9275
  # authorization. Specifically, you grant the
9206
9276
  # `s3express:CreateSession` permission to the directory bucket in a
9207
9277
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -9212,7 +9282,7 @@ module Aws::S3
9212
9282
  # token for use. Amazon Web Services CLI or SDKs create session and
9213
9283
  # refresh the session token automatically to avoid service
9214
9284
  # interruptions when a session expires. For more information about
9215
- # authorization, see [ `CreateSession` ][4].
9285
+ # authorization, see [ `CreateSession` ][3].
9216
9286
  #
9217
9287
  # Encryption
9218
9288
  # : <note markdown="1"> Encryption request headers, like `x-amz-server-side-encryption`,
@@ -9244,7 +9314,7 @@ module Aws::S3
9244
9314
  # * `x-amz-server-side-encryption-customer-key-MD5`
9245
9315
  #
9246
9316
  # For more information about SSE-C, see [Server-Side Encryption (Using
9247
- # Customer-Provided Encryption Keys)][5] in the *Amazon S3 User
9317
+ # Customer-Provided Encryption Keys)][4] in the *Amazon S3 User
9248
9318
  # Guide*.
9249
9319
  #
9250
9320
  # <note markdown="1"> **Directory bucket permissions** - For directory buckets, only
@@ -9278,6 +9348,15 @@ module Aws::S3
9278
9348
  # : <b>Directory buckets </b> - The HTTP Host header syntax is `
9279
9349
  # Bucket_name.s3express-az_id.region.amazonaws.com`.
9280
9350
  #
9351
+ # <note markdown="1"> For directory buckets, you must make requests for this API operation
9352
+ # to the Zonal endpoint. These endpoints support virtual-hosted-style
9353
+ # requests in the format
9354
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
9355
+ # `. Path-style requests are not supported. For more information, see
9356
+ # [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*.
9357
+ #
9358
+ # </note>
9359
+ #
9281
9360
  # The following actions are related to `HeadObject`:
9282
9361
  #
9283
9362
  # * [GetObject][6]
@@ -9287,10 +9366,10 @@ module Aws::S3
9287
9366
  #
9288
9367
  #
9289
9368
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html
9290
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9291
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html
9292
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
9293
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
9369
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html
9370
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
9371
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
9372
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9294
9373
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
9295
9374
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html
9296
9375
  #
@@ -9423,6 +9502,24 @@ module Aws::S3
9423
9502
  # the Range is not satisfiable, S3 returns a `416 - Requested Range Not
9424
9503
  # Satisfiable` error.
9425
9504
  #
9505
+ # @option params [String] :response_cache_control
9506
+ # Sets the `Cache-Control` header of the response.
9507
+ #
9508
+ # @option params [String] :response_content_disposition
9509
+ # Sets the `Content-Disposition` header of the response.
9510
+ #
9511
+ # @option params [String] :response_content_encoding
9512
+ # Sets the `Content-Encoding` header of the response.
9513
+ #
9514
+ # @option params [String] :response_content_language
9515
+ # Sets the `Content-Language` header of the response.
9516
+ #
9517
+ # @option params [String] :response_content_type
9518
+ # Sets the `Content-Type` header of the response.
9519
+ #
9520
+ # @option params [Time,DateTime,Date,Integer,String] :response_expires
9521
+ # Sets the `Expires` header of the response.
9522
+ #
9426
9523
  # @option params [String] :version_id
9427
9524
  # Version ID used to reference a specific version of the object.
9428
9525
  #
@@ -9490,10 +9587,14 @@ module Aws::S3
9490
9587
  # @option params [String] :checksum_mode
9491
9588
  # To retrieve the checksum, this parameter must be enabled.
9492
9589
  #
9493
- # In addition, if you enable `ChecksumMode` and the object is encrypted
9494
- # with Amazon Web Services Key Management Service (Amazon Web Services
9495
- # KMS), you must have permission to use the `kms:Decrypt` action for the
9496
- # 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
9497
9598
  #
9498
9599
  # @return [Types::HeadObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9499
9600
  #
@@ -9565,6 +9666,12 @@ module Aws::S3
9565
9666
  # if_unmodified_since: Time.now,
9566
9667
  # key: "ObjectKey", # required
9567
9668
  # range: "Range",
9669
+ # response_cache_control: "ResponseCacheControl",
9670
+ # response_content_disposition: "ResponseContentDisposition",
9671
+ # response_content_encoding: "ResponseContentEncoding",
9672
+ # response_content_language: "ResponseContentLanguage",
9673
+ # response_content_type: "ResponseContentType",
9674
+ # response_expires: Time.now,
9568
9675
  # version_id: "ObjectVersionId",
9569
9676
  # sse_customer_algorithm: "SSECustomerAlgorithm",
9570
9677
  # sse_customer_key: "SSECustomerKey",
@@ -10041,10 +10148,28 @@ module Aws::S3
10041
10148
  #
10042
10149
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html
10043
10150
  #
10151
+ # @option params [Integer] :max_buckets
10152
+ # Maximum number of buckets to be returned in response. When the number
10153
+ # is more than the count of buckets that are owned by an Amazon Web
10154
+ # Services account, return all the buckets in response.
10155
+ #
10156
+ # @option params [String] :continuation_token
10157
+ # `ContinuationToken` indicates to Amazon S3 that the list is being
10158
+ # continued on this bucket with a token. `ContinuationToken` is
10159
+ # obfuscated and is not a real key. You can use this `ContinuationToken`
10160
+ # for pagination of the list results.
10161
+ #
10162
+ # Length Constraints: Minimum length of 0. Maximum length of 1024.
10163
+ #
10164
+ # Required: No.
10165
+ #
10044
10166
  # @return [Types::ListBucketsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10045
10167
  #
10046
10168
  # * {Types::ListBucketsOutput#buckets #buckets} => Array&lt;Types::Bucket&gt;
10047
10169
  # * {Types::ListBucketsOutput#owner #owner} => Types::Owner
10170
+ # * {Types::ListBucketsOutput#continuation_token #continuation_token} => String
10171
+ #
10172
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
10048
10173
  #
10049
10174
  #
10050
10175
  # @example Example: To list all buckets
@@ -10076,6 +10201,13 @@ module Aws::S3
10076
10201
  # },
10077
10202
  # }
10078
10203
  #
10204
+ # @example Request syntax with placeholder values
10205
+ #
10206
+ # resp = client.list_buckets({
10207
+ # max_buckets: 1,
10208
+ # continuation_token: "Token",
10209
+ # })
10210
+ #
10079
10211
  # @example Response structure
10080
10212
  #
10081
10213
  # resp.buckets #=> Array
@@ -10083,6 +10215,7 @@ module Aws::S3
10083
10215
  # resp.buckets[0].creation_date #=> Time
10084
10216
  # resp.owner.display_name #=> String
10085
10217
  # resp.owner.id #=> String
10218
+ # resp.continuation_token #=> String
10086
10219
  #
10087
10220
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets AWS API Documentation
10088
10221
  #
@@ -10131,9 +10264,9 @@ module Aws::S3
10131
10264
  #
10132
10265
  # @option params [String] :continuation_token
10133
10266
  # `ContinuationToken` indicates to Amazon S3 that the list is being
10134
- # continued on this bucket with a token. `ContinuationToken` is
10135
- # obfuscated and is not a real key. You can use this `ContinuationToken`
10136
- # for pagination of the list results.
10267
+ # continued on buckets in this account with a token. `ContinuationToken`
10268
+ # is obfuscated and is not a real bucket name. You can use this
10269
+ # `ContinuationToken` for the pagination of the list results.
10137
10270
  #
10138
10271
  # @option params [Integer] :max_directory_buckets
10139
10272
  # Maximum number of buckets to be returned in response. When the number
@@ -10177,7 +10310,11 @@ module Aws::S3
10177
10310
  #
10178
10311
  # <note markdown="1"> **Directory buckets** - If multipart uploads in a directory bucket are
10179
10312
  # in progress, you can't delete the bucket until all the in-progress
10180
- # multipart uploads are aborted or completed.
10313
+ # multipart uploads are aborted or completed. To delete these
10314
+ # in-progress multipart uploads, use the `ListMultipartUploads`
10315
+ # operation to list the in-progress multipart uploads in the bucket and
10316
+ # use the `AbortMultupartUpload` operation to abort all the in-progress
10317
+ # multipart uploads.
10181
10318
  #
10182
10319
  # </note>
10183
10320
  #
@@ -10343,12 +10480,26 @@ module Aws::S3
10343
10480
  # </note>
10344
10481
  #
10345
10482
  # @option params [String] :encoding_type
10346
- # Requests Amazon S3 to encode the object keys in the response and
10347
- # specifies the encoding method to use. An object key can contain any
10348
- # Unicode character; however, the XML 1.0 parser cannot parse some
10349
- # characters, such as characters with an ASCII value from 0 to 10. For
10350
- # characters that are not supported in XML 1.0, you can add this
10351
- # parameter to request that Amazon S3 encode the keys in the response.
10483
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
10484
+ # response. Responses are encoded only in UTF-8. An object key can
10485
+ # contain any Unicode character. However, the XML 1.0 parser can't
10486
+ # parse certain characters, such as characters with an ASCII value from
10487
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
10488
+ # this parameter to request that Amazon S3 encode the keys in the
10489
+ # response. For more information about characters to avoid in object key
10490
+ # names, see [Object key naming guidelines][2].
10491
+ #
10492
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10493
+ # in an object's key name will be percent-encoded according to UTF-8
10494
+ # code values. For example, the object `test_file(3).png` will appear as
10495
+ # `test_file%283%29.png`.
10496
+ #
10497
+ # </note>
10498
+ #
10499
+ #
10500
+ #
10501
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10502
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10352
10503
  #
10353
10504
  # @option params [String] :key_marker
10354
10505
  # Specifies the multipart upload after which listing should begin.
@@ -10640,12 +10791,26 @@ module Aws::S3
10640
10791
  # the response.
10641
10792
  #
10642
10793
  # @option params [String] :encoding_type
10643
- # Requests Amazon S3 to encode the object keys in the response and
10644
- # specifies the encoding method to use. An object key can contain any
10645
- # Unicode character; however, the XML 1.0 parser cannot parse some
10646
- # characters, such as characters with an ASCII value from 0 to 10. For
10647
- # characters that are not supported in XML 1.0, you can add this
10648
- # parameter to request that Amazon S3 encode the keys in the response.
10794
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
10795
+ # response. Responses are encoded only in UTF-8. An object key can
10796
+ # contain any Unicode character. However, the XML 1.0 parser can't
10797
+ # parse certain characters, such as characters with an ASCII value from
10798
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
10799
+ # this parameter to request that Amazon S3 encode the keys in the
10800
+ # response. For more information about characters to avoid in object key
10801
+ # names, see [Object key naming guidelines][2].
10802
+ #
10803
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10804
+ # in an object's key name will be percent-encoded according to UTF-8
10805
+ # code values. For example, the object `test_file(3).png` will appear as
10806
+ # `test_file%283%29.png`.
10807
+ #
10808
+ # </note>
10809
+ #
10810
+ #
10811
+ #
10812
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10813
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10649
10814
  #
10650
10815
  # @option params [String] :key_marker
10651
10816
  # Specifies the key to start with when listing objects in a bucket.
@@ -10899,12 +11064,26 @@ module Aws::S3
10899
11064
  # A delimiter is a character that you use to group keys.
10900
11065
  #
10901
11066
  # @option params [String] :encoding_type
10902
- # Requests Amazon S3 to encode the object keys in the response and
10903
- # specifies the encoding method to use. An object key can contain any
10904
- # Unicode character; however, the XML 1.0 parser cannot parse some
10905
- # characters, such as characters with an ASCII value from 0 to 10. For
10906
- # characters that are not supported in XML 1.0, you can add this
10907
- # parameter to request that Amazon S3 encode the keys in the response.
11067
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
11068
+ # response. Responses are encoded only in UTF-8. An object key can
11069
+ # contain any Unicode character. However, the XML 1.0 parser can't
11070
+ # parse certain characters, such as characters with an ASCII value from
11071
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
11072
+ # this parameter to request that Amazon S3 encode the keys in the
11073
+ # response. For more information about characters to avoid in object key
11074
+ # names, see [Object key naming guidelines][2].
11075
+ #
11076
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
11077
+ # in an object's key name will be percent-encoded according to UTF-8
11078
+ # code values. For example, the object `test_file(3).png` will appear as
11079
+ # `test_file%283%29.png`.
11080
+ #
11081
+ # </note>
11082
+ #
11083
+ #
11084
+ #
11085
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
11086
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10908
11087
  #
10909
11088
  # @option params [String] :marker
10910
11089
  # Marker is where you want Amazon S3 to start listing from. Amazon S3
@@ -11046,12 +11225,20 @@ module Aws::S3
11046
11225
  # programmatically][1] in the *Amazon S3 User Guide*. To get a list of
11047
11226
  # your buckets, see [ListBuckets][2].
11048
11227
  #
11049
- # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
11050
- # for this API operation to the Zonal endpoint. These endpoints support
11051
- # virtual-hosted-style requests in the format
11052
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
11053
- # Path-style requests are not supported. For more information, see
11054
- # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*.
11228
+ # <note markdown="1"> * **General purpose bucket** - For general purpose buckets,
11229
+ # `ListObjectsV2` doesn't return prefixes that are related only to
11230
+ # in-progress multipart uploads.
11231
+ #
11232
+ # * **Directory buckets** - For directory buckets, `ListObjectsV2`
11233
+ # response includes the prefixes that are related only to in-progress
11234
+ # multipart uploads.
11235
+ #
11236
+ # * **Directory buckets** - For directory buckets, you must make
11237
+ # requests for this API operation to the Zonal endpoint. These
11238
+ # endpoints support virtual-hosted-style requests in the format
11239
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
11240
+ # `. Path-style requests are not supported. For more information, see
11241
+ # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*.
11055
11242
  #
11056
11243
  # </note>
11057
11244
  #
@@ -11180,10 +11367,26 @@ module Aws::S3
11180
11367
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
11181
11368
  #
11182
11369
  # @option params [String] :encoding_type
11183
- # Encoding type used by Amazon S3 to encode object keys in the response.
11184
- # If using `url`, non-ASCII characters used in an object's key name
11185
- # will be URL encoded. For example, the object test\_file(3).png will
11186
- # appear as test\_file%283%29.png.
11370
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
11371
+ # response. Responses are encoded only in UTF-8. An object key can
11372
+ # contain any Unicode character. However, the XML 1.0 parser can't
11373
+ # parse certain characters, such as characters with an ASCII value from
11374
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
11375
+ # this parameter to request that Amazon S3 encode the keys in the
11376
+ # response. For more information about characters to avoid in object key
11377
+ # names, see [Object key naming guidelines][2].
11378
+ #
11379
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
11380
+ # in an object's key name will be percent-encoded according to UTF-8
11381
+ # code values. For example, the object `test_file(3).png` will appear as
11382
+ # `test_file%283%29.png`.
11383
+ #
11384
+ # </note>
11385
+ #
11386
+ #
11387
+ #
11388
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
11389
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
11187
11390
  #
11188
11391
  # @option params [Integer] :max_keys
11189
11392
  # Sets the maximum number of keys returned in the response. By default,
@@ -12402,9 +12605,15 @@ module Aws::S3
12402
12605
  # S3 does not validate the KMS key ID provided in PutBucketEncryption
12403
12606
  # requests.
12404
12607
  #
12405
- # This action requires Amazon Web Services Signature Version 4. For more
12406
- # information, see [ Authenticating Requests (Amazon Web Services
12407
- # Signature Version 4)][3].
12608
+ # If you're specifying a customer managed KMS key, we recommend using a
12609
+ # fully qualified KMS key ARN. If you use a KMS key alias instead, then
12610
+ # KMS resolves the key within the requester’s account. This behavior can
12611
+ # result in data that's encrypted with a KMS key that belongs to the
12612
+ # requester, and not the bucket owner.
12613
+ #
12614
+ # Also, this action requires Amazon Web Services Signature Version 4.
12615
+ # For more information, see [ Authenticating Requests (Amazon Web
12616
+ # Services Signature Version 4)][3].
12408
12617
  #
12409
12618
  # To use this operation, you must have permission to perform the
12410
12619
  # `s3:PutEncryptionConfiguration` action. The bucket owner has this
@@ -14472,6 +14681,14 @@ module Aws::S3
14472
14681
  #
14473
14682
  # </note>
14474
14683
  #
14684
+ # <note markdown="1"> When you enable versioning on a bucket for the first time, it might
14685
+ # take a short amount of time for the change to be fully propagated. We
14686
+ # recommend that you wait for 15 minutes after enabling versioning
14687
+ # before issuing write operations (`PUT` or `DELETE`) on objects in the
14688
+ # bucket.
14689
+ #
14690
+ # </note>
14691
+ #
14475
14692
  # Sets the versioning state of an existing bucket.
14476
14693
  #
14477
14694
  # You can set the versioning state with one of the following values:
@@ -15147,6 +15364,25 @@ module Aws::S3
15147
15364
  #
15148
15365
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
15149
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
+ #
15150
15386
  # @option params [String] :grant_full_control
15151
15387
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
15152
15388
  # object.
@@ -15410,62 +15646,75 @@ module Aws::S3
15410
15646
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
15411
15647
  #
15412
15648
  #
15413
- # @example Example: To upload an object
15649
+ # @example Example: To upload an object (specify optional headers)
15414
15650
  #
15415
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15416
- # # syntax. S3 returns VersionId of the newly created object.
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.
15417
15653
  #
15418
15654
  # resp = client.put_object({
15419
15655
  # body: "HappyFace.jpg",
15420
15656
  # bucket: "examplebucket",
15421
15657
  # key: "HappyFace.jpg",
15658
+ # server_side_encryption: "AES256",
15659
+ # storage_class: "STANDARD_IA",
15422
15660
  # })
15423
15661
  #
15424
15662
  # resp.to_h outputs the following:
15425
15663
  # {
15426
15664
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15427
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15665
+ # server_side_encryption: "AES256",
15666
+ # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15428
15667
  # }
15429
15668
  #
15430
- # @example Example: To upload an object (specify optional headers)
15669
+ # @example Example: To create an object.
15431
15670
  #
15432
- # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
15433
- # # storage class and use server-side encryption.
15671
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
15672
+ #
15673
+ # resp = client.put_object({
15674
+ # body: "filetoupload",
15675
+ # bucket: "examplebucket",
15676
+ # key: "objectkey",
15677
+ # })
15678
+ #
15679
+ # resp.to_h outputs the following:
15680
+ # {
15681
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15682
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15683
+ # }
15684
+ #
15685
+ # @example Example: To upload an object
15686
+ #
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.
15434
15689
  #
15435
15690
  # resp = client.put_object({
15436
15691
  # body: "HappyFace.jpg",
15437
15692
  # bucket: "examplebucket",
15438
15693
  # key: "HappyFace.jpg",
15439
- # server_side_encryption: "AES256",
15440
- # storage_class: "STANDARD_IA",
15441
15694
  # })
15442
15695
  #
15443
15696
  # resp.to_h outputs the following:
15444
15697
  # {
15445
15698
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15446
- # server_side_encryption: "AES256",
15447
- # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15699
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15448
15700
  # }
15449
15701
  #
15450
- # @example Example: To upload object and specify user-defined metadata
15702
+ # @example Example: To upload an object and specify optional tags
15451
15703
  #
15452
- # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
15453
- # # 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.
15454
15706
  #
15455
15707
  # resp = client.put_object({
15456
- # body: "filetoupload",
15708
+ # body: "c:\\HappyFace.jpg",
15457
15709
  # bucket: "examplebucket",
15458
- # key: "exampleobject",
15459
- # metadata: {
15460
- # "metadata1" => "value1",
15461
- # "metadata2" => "value2",
15462
- # },
15710
+ # key: "HappyFace.jpg",
15711
+ # tagging: "key1=value1&key2=value2",
15463
15712
  # })
15464
15713
  #
15465
15714
  # resp.to_h outputs the following:
15466
15715
  # {
15467
15716
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15468
- # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15717
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15469
15718
  # }
15470
15719
  #
15471
15720
  # @example Example: To upload an object and specify canned ACL.
@@ -15486,20 +15735,25 @@ module Aws::S3
15486
15735
  # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
15487
15736
  # }
15488
15737
  #
15489
- # @example Example: To create an object.
15738
+ # @example Example: To upload object and specify user-defined metadata
15490
15739
  #
15491
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
15740
+ # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
15741
+ # # enabled, S3 returns version ID in response.
15492
15742
  #
15493
15743
  # resp = client.put_object({
15494
15744
  # body: "filetoupload",
15495
15745
  # bucket: "examplebucket",
15496
- # key: "objectkey",
15746
+ # key: "exampleobject",
15747
+ # metadata: {
15748
+ # "metadata1" => "value1",
15749
+ # "metadata2" => "value2",
15750
+ # },
15497
15751
  # })
15498
15752
  #
15499
15753
  # resp.to_h outputs the following:
15500
15754
  # {
15501
15755
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15502
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15756
+ # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15503
15757
  # }
15504
15758
  #
15505
15759
  # @example Example: To upload an object and specify server-side encryption and object tags
@@ -15522,24 +15776,6 @@ module Aws::S3
15522
15776
  # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15523
15777
  # }
15524
15778
  #
15525
- # @example Example: To upload an object and specify optional tags
15526
- #
15527
- # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
15528
- # # S3 returns version ID of the newly created object.
15529
- #
15530
- # resp = client.put_object({
15531
- # body: "c:\\HappyFace.jpg",
15532
- # bucket: "examplebucket",
15533
- # key: "HappyFace.jpg",
15534
- # tagging: "key1=value1&key2=value2",
15535
- # })
15536
- #
15537
- # resp.to_h outputs the following:
15538
- # {
15539
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15540
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15541
- # }
15542
- #
15543
15779
  # @example Streaming a file from disk
15544
15780
  # # upload file from disk in a single request, may not exceed 5GB
15545
15781
  # File.open('/source/file/path', 'rb') do |file|
@@ -15565,6 +15801,7 @@ module Aws::S3
15565
15801
  # checksum_sha1: "ChecksumSHA1",
15566
15802
  # checksum_sha256: "ChecksumSHA256",
15567
15803
  # expires: Time.now,
15804
+ # if_none_match: "IfNoneMatch",
15568
15805
  # grant_full_control: "GrantFullControl",
15569
15806
  # grant_read: "GrantRead",
15570
15807
  # grant_read_acp: "GrantReadACP",
@@ -16664,6 +16901,10 @@ module Aws::S3
16664
16901
  #
16665
16902
  # </note>
16666
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
+ #
16667
16908
  # Restores an archived copy of an object back into Amazon S3
16668
16909
  #
16669
16910
  # This functionality is not supported for Amazon S3 on Outposts.
@@ -16677,11 +16918,11 @@ module Aws::S3
16677
16918
  # For more information about the `S3` structure in the request body, see
16678
16919
  # the following:
16679
16920
  #
16680
- # * [PutObject][1]
16921
+ # * [PutObject][2]
16681
16922
  #
16682
- # * [Managing Access with ACLs][2] in the *Amazon S3 User Guide*
16923
+ # * [Managing Access with ACLs][3] in the *Amazon S3 User Guide*
16683
16924
  #
16684
- # * [Protecting Data Using Server-Side Encryption][3] in the *Amazon S3
16925
+ # * [Protecting Data Using Server-Side Encryption][4] in the *Amazon S3
16685
16926
  # User Guide*
16686
16927
  #
16687
16928
  # Permissions
@@ -16690,8 +16931,8 @@ module Aws::S3
16690
16931
  # `s3:RestoreObject` action. The bucket owner has this permission by
16691
16932
  # default and can grant this permission to others. For more
16692
16933
  # information about permissions, see [Permissions Related to Bucket
16693
- # Subresource Operations][4] and [Managing Access Permissions to Your
16694
- # 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*.
16695
16936
  #
16696
16937
  # Restoring objects
16697
16938
  #
@@ -16754,11 +16995,11 @@ module Aws::S3
16754
16995
  #
16755
16996
  # For more information about archive retrieval options and provisioned
16756
16997
  # capacity for `Expedited` data access, see [Restoring Archived
16757
- # Objects][6] in the *Amazon S3 User Guide*.
16998
+ # Objects][7] in the *Amazon S3 User Guide*.
16758
16999
  #
16759
17000
  # You can use Amazon S3 restore speed upgrade to change the restore
16760
17001
  # speed to a faster speed while it is in progress. For more
16761
- # information, see [ Upgrading the speed of an in-progress restore][7]
17002
+ # information, see [ Upgrading the speed of an in-progress restore][8]
16762
17003
  # in the *Amazon S3 User Guide*.
16763
17004
  #
16764
17005
  # To get the status of object restoration, you can send a `HEAD`
@@ -16766,7 +17007,7 @@ module Aws::S3
16766
17007
  # provides information about the restoration status, in the response.
16767
17008
  # You can use Amazon S3 event notifications to notify you when a
16768
17009
  # restore is initiated or completed. For more information, see
16769
- # [Configuring Amazon S3 Event Notifications][8] in the *Amazon S3
17010
+ # [Configuring Amazon S3 Event Notifications][9] in the *Amazon S3
16770
17011
  # User Guide*.
16771
17012
  #
16772
17013
  # After restoring an archived object, you can update the restoration
@@ -16782,8 +17023,8 @@ module Aws::S3
16782
17023
  # restore an object copy for 10 days, but the object is scheduled to
16783
17024
  # expire in 3 days, Amazon S3 deletes the object in 3 days. For more
16784
17025
  # information about lifecycle configuration, see
16785
- # [PutBucketLifecycleConfiguration][9] and [Object Lifecycle
16786
- # Management][10] in *Amazon S3 User Guide*.
17026
+ # [PutBucketLifecycleConfiguration][10] and [Object Lifecycle
17027
+ # Management][11] in *Amazon S3 User Guide*.
16787
17028
  #
16788
17029
  # Responses
16789
17030
  #
@@ -16821,23 +17062,24 @@ module Aws::S3
16821
17062
  #
16822
17063
  # The following operations are related to `RestoreObject`:
16823
17064
  #
16824
- # * [PutBucketLifecycleConfiguration][9]
17065
+ # * [PutBucketLifecycleConfiguration][10]
16825
17066
  #
16826
- # * [GetBucketNotificationConfiguration][11]
17067
+ # * [GetBucketNotificationConfiguration][12]
16827
17068
  #
16828
17069
  #
16829
17070
  #
16830
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
16831
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
16832
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
16833
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
16834
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
16835
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
16836
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html
16837
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
16838
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
16839
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
16840
- # [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
16841
17083
  #
16842
17084
  # @option params [required, String] :bucket
16843
17085
  # The bucket name containing the object to restore.
@@ -17049,6 +17291,10 @@ module Aws::S3
17049
17291
  #
17050
17292
  # </note>
17051
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
+ #
17052
17298
  # This action filters the contents of an Amazon S3 object based on a
17053
17299
  # simple structured query language (SQL) statement. In the request,
17054
17300
  # along with the SQL expression, you must also specify a data
@@ -17060,7 +17306,7 @@ module Aws::S3
17060
17306
  # This functionality is not supported for Amazon S3 on Outposts.
17061
17307
  #
17062
17308
  # For more information about Amazon S3 Select, see [Selecting Content
17063
- # 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
17064
17310
  # Guide*.
17065
17311
  #
17066
17312
  #
@@ -17070,7 +17316,7 @@ module Aws::S3
17070
17316
  # : You must have the `s3:GetObject` permission for this
17071
17317
  # operation. Amazon S3 Select does not support anonymous access. For
17072
17318
  # more information about permissions, see [Specifying Permissions in a
17073
- # Policy][3] in the *Amazon S3 User Guide*.
17319
+ # Policy][4] in the *Amazon S3 User Guide*.
17074
17320
  #
17075
17321
  # Object Data Formats
17076
17322
  #
@@ -17095,31 +17341,31 @@ module Aws::S3
17095
17341
  #
17096
17342
  # For objects that are encrypted with customer-provided encryption
17097
17343
  # keys (SSE-C), you must use HTTPS, and you must use the headers
17098
- # that are documented in the [GetObject][4]. For more information
17344
+ # that are documented in the [GetObject][5]. For more information
17099
17345
  # about SSE-C, see [Server-Side Encryption (Using Customer-Provided
17100
- # Encryption Keys)][5] in the *Amazon S3 User Guide*.
17346
+ # Encryption Keys)][6] in the *Amazon S3 User Guide*.
17101
17347
  #
17102
17348
  # For objects that are encrypted with Amazon S3 managed keys
17103
17349
  # (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side
17104
17350
  # encryption is handled transparently, so you don't need to specify
17105
17351
  # anything. For more information about server-side encryption,
17106
17352
  # including SSE-S3 and SSE-KMS, see [Protecting Data Using
17107
- # Server-Side Encryption][6] in the *Amazon S3 User Guide*.
17353
+ # Server-Side Encryption][7] in the *Amazon S3 User Guide*.
17108
17354
  #
17109
17355
  # Working with the Response Body
17110
17356
  #
17111
17357
  # : Given the response size is unknown, Amazon S3 Select streams the
17112
17358
  # response as a series of messages and includes a `Transfer-Encoding`
17113
17359
  # header with `chunked` as its value in the response. For more
17114
- # information, see [Appendix: SelectObjectContent Response][7].
17360
+ # information, see [Appendix: SelectObjectContent Response][8].
17115
17361
  #
17116
17362
  # GetObject Support
17117
17363
  #
17118
17364
  # : The `SelectObjectContent` action does not support the following
17119
- # `GetObject` functionality. For more information, see [GetObject][4].
17365
+ # `GetObject` functionality. For more information, see [GetObject][5].
17120
17366
  #
17121
17367
  # * `Range`: Although you can specify a scan range for an Amazon S3
17122
- # Select request (see [SelectObjectContentRequest - ScanRange][8] in
17368
+ # Select request (see [SelectObjectContentRequest - ScanRange][9] in
17123
17369
  # the request parameters), you cannot specify the range of bytes of
17124
17370
  # an object to return.
17125
17371
  #
@@ -17130,36 +17376,37 @@ module Aws::S3
17130
17376
  # storage classes, nor objects in the `ARCHIVE_ACCESS` or
17131
17377
  # `DEEP_ARCHIVE_ACCESS` access tiers of the `INTELLIGENT_TIERING`
17132
17378
  # storage class. For more information about storage classes, see
17133
- # [Using Amazon S3 storage classes][9] in the *Amazon S3 User
17379
+ # [Using Amazon S3 storage classes][10] in the *Amazon S3 User
17134
17380
  # Guide*.
17135
17381
  #
17136
17382
  # Special Errors
17137
17383
  #
17138
17384
  # : For a list of special errors for this operation, see [List of SELECT
17139
- # Object Content Error Codes][10]
17385
+ # Object Content Error Codes][11]
17140
17386
  #
17141
17387
  # The following operations are related to `SelectObjectContent`:
17142
17388
  #
17143
- # * [GetObject][4]
17389
+ # * [GetObject][5]
17144
17390
  #
17145
- # * [GetBucketLifecycleConfiguration][11]
17391
+ # * [GetBucketLifecycleConfiguration][12]
17146
17392
  #
17147
- # * [PutBucketLifecycleConfiguration][12]
17393
+ # * [PutBucketLifecycleConfiguration][13]
17148
17394
  #
17149
17395
  #
17150
17396
  #
17151
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
17152
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html
17153
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
17154
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
17155
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
17156
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17157
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html
17158
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange
17159
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
17160
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList
17161
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
17162
- # [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
17163
17410
  #
17164
17411
  # @option params [required, String] :bucket
17165
17412
  # The S3 bucket.
@@ -17506,14 +17753,27 @@ module Aws::S3
17506
17753
  # </note>
17507
17754
  #
17508
17755
  # Permissions
17509
- # : * **General purpose bucket permissions** - For information on the
17510
- # permissions required to use the multipart upload API, see
17511
- # [Multipart Upload and Permissions][6] in the *Amazon S3 User
17512
- # 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*.
17513
17773
  #
17514
17774
  # * **Directory bucket permissions** - To grant access to this API
17515
17775
  # operation on a directory bucket, we recommend that you use the [
17516
- # `CreateSession` ][7] API operation for session-based
17776
+ # `CreateSession` ][9] API operation for session-based
17517
17777
  # authorization. Specifically, you grant the
17518
17778
  # `s3express:CreateSession` permission to the directory bucket in a
17519
17779
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -17524,7 +17784,7 @@ module Aws::S3
17524
17784
  # token for use. Amazon Web Services CLI or SDKs create session and
17525
17785
  # refresh the session token automatically to avoid service
17526
17786
  # interruptions when a session expires. For more information about
17527
- # authorization, see [ `CreateSession` ][7].
17787
+ # authorization, see [ `CreateSession` ][9].
17528
17788
  #
17529
17789
  # Data integrity
17530
17790
  #
@@ -17536,7 +17796,7 @@ module Aws::S3
17536
17796
  # then Amazon Web Services S3 uses the `x-amz-content-sha256` header
17537
17797
  # as a checksum instead of `Content-MD5`. For more information see
17538
17798
  # [Authenticating Requests: Using the Authorization Header (Amazon Web
17539
- # Services Signature Version 4)][8].
17799
+ # Services Signature Version 4)][10].
17540
17800
  #
17541
17801
  # <note markdown="1"> **Directory buckets** - MD5 is not supported by directory buckets.
17542
17802
  # You can use checksum algorithms to check object integrity.
@@ -17581,7 +17841,7 @@ module Aws::S3
17581
17841
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
17582
17842
  # supported.
17583
17843
  #
17584
- # For more information, see [Using Server-Side Encryption][9] in the
17844
+ # For more information, see [Using Server-Side Encryption][11] in the
17585
17845
  # *Amazon S3 User Guide*.
17586
17846
  #
17587
17847
  # Special errors
@@ -17604,13 +17864,13 @@ module Aws::S3
17604
17864
  #
17605
17865
  # * [CreateMultipartUpload][2]
17606
17866
  #
17607
- # * [CompleteMultipartUpload][10]
17867
+ # * [CompleteMultipartUpload][12]
17608
17868
  #
17609
- # * [AbortMultipartUpload][11]
17869
+ # * [AbortMultipartUpload][13]
17610
17870
  #
17611
- # * [ListParts][12]
17871
+ # * [ListParts][14]
17612
17872
  #
17613
- # * [ListMultipartUploads][13]
17873
+ # * [ListMultipartUploads][15]
17614
17874
  #
17615
17875
  #
17616
17876
  #
@@ -17619,14 +17879,16 @@ module Aws::S3
17619
17879
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html
17620
17880
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
17621
17881
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
17622
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
17623
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
17624
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
17625
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
17626
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
17627
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
17628
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
17629
- # [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
17630
17892
  #
17631
17893
  # @option params [String, StringIO, File] :body
17632
17894
  # Object data.
@@ -17959,9 +18221,21 @@ module Aws::S3
17959
18221
  # have the <b> <code>s3:PutObject</code> </b> permission to write
17960
18222
  # the object copy to the destination bucket.
17961
18223
  #
17962
- # For information about permissions required to use the multipart
17963
- # upload API, see [Multipart Upload and Permissions][7] in the
17964
- # *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*.
17965
18239
  #
17966
18240
  # * **Directory bucket permissions** - You must have permissions in a
17967
18241
  # bucket policy or an IAM identity-based policy based on the source
@@ -17970,9 +18244,9 @@ module Aws::S3
17970
18244
  # * If the source object that you want to copy is in a directory
17971
18245
  # bucket, you must have the <b>
17972
18246
  # <code>s3express:CreateSession</code> </b> permission in the
17973
- # `Action` element of a policy to read the object . By default,
17974
- # the session is in the `ReadWrite` mode. If you want to restrict
17975
- # the access, you can explicitly set the `s3express:SessionMode`
18247
+ # `Action` element of a policy to read the object. By default, the
18248
+ # session is in the `ReadWrite` mode. If you want to restrict the
18249
+ # access, you can explicitly set the `s3express:SessionMode`
17976
18250
  # condition key to `ReadOnly` on the copy source bucket.
17977
18251
  #
17978
18252
  # * If the copy destination is a directory bucket, you must have the
@@ -17982,14 +18256,14 @@ module Aws::S3
17982
18256
  # set to `ReadOnly` on the copy destination.
17983
18257
  #
17984
18258
  # For example policies, see [Example bucket policies for S3 Express
17985
- # One Zone][8] and [Amazon Web Services Identity and Access
18259
+ # One Zone][10] and [Amazon Web Services Identity and Access
17986
18260
  # Management (IAM) identity-based policies for S3 Express One
17987
- # Zone][9] in the *Amazon S3 User Guide*.
18261
+ # Zone][11] in the *Amazon S3 User Guide*.
17988
18262
  #
17989
18263
  # Encryption
17990
18264
  # : * <b>General purpose buckets </b> - For information about using
17991
18265
  # server-side encryption with customer-provided encryption keys with
17992
- # the `UploadPartCopy` operation, see [CopyObject][10] and
18266
+ # the `UploadPartCopy` operation, see [CopyObject][12] and
17993
18267
  # [UploadPart][2].
17994
18268
  #
17995
18269
  # * <b>Directory buckets </b> - For directory buckets, only
@@ -18019,17 +18293,17 @@ module Aws::S3
18019
18293
  #
18020
18294
  # The following operations are related to `UploadPartCopy`:
18021
18295
  #
18022
- # * [CreateMultipartUpload][11]
18296
+ # * [CreateMultipartUpload][13]
18023
18297
  #
18024
18298
  # * [UploadPart][2]
18025
18299
  #
18026
- # * [CompleteMultipartUpload][12]
18300
+ # * [CompleteMultipartUpload][14]
18027
18301
  #
18028
- # * [AbortMultipartUpload][13]
18302
+ # * [AbortMultipartUpload][15]
18029
18303
  #
18030
- # * [ListParts][14]
18304
+ # * [ListParts][16]
18031
18305
  #
18032
- # * [ListMultipartUploads][15]
18306
+ # * [ListMultipartUploads][17]
18033
18307
  #
18034
18308
  #
18035
18309
  #
@@ -18039,15 +18313,17 @@ module Aws::S3
18039
18313
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html
18040
18314
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
18041
18315
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
18042
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
18043
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
18044
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
18045
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
18046
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
18047
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
18048
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
18049
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
18050
- # [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
18051
18327
  #
18052
18328
  # @option params [required, String] :bucket
18053
18329
  # The bucket name.
@@ -18821,14 +19097,19 @@ module Aws::S3
18821
19097
  # @api private
18822
19098
  def build_request(operation_name, params = {})
18823
19099
  handlers = @handlers.for(operation_name)
19100
+ tracer = config.telemetry_provider.tracer_provider.tracer(
19101
+ Aws::Telemetry.module_to_tracer_name('Aws::S3')
19102
+ )
18824
19103
  context = Seahorse::Client::RequestContext.new(
18825
19104
  operation_name: operation_name,
18826
19105
  operation: config.api.operation(operation_name),
18827
19106
  client: self,
18828
19107
  params: params,
18829
- config: config)
19108
+ config: config,
19109
+ tracer: tracer
19110
+ )
18830
19111
  context[:gem_name] = 'aws-sdk-s3'
18831
- context[:gem_version] = '1.150.0'
19112
+ context[:gem_version] = '1.160.0'
18832
19113
  Seahorse::Client::Request.new(handlers, context)
18833
19114
  end
18834
19115