aws-sdk-s3 1.150.0 → 1.160.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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