aws-sdk-s3 1.151.0 → 1.156.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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +40 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +12 -12
  5. data/lib/aws-sdk-s3/bucket_acl.rb +3 -3
  6. data/lib/aws-sdk-s3/bucket_cors.rb +4 -4
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +4 -4
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +4 -4
  9. data/lib/aws-sdk-s3/bucket_logging.rb +3 -3
  10. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  11. data/lib/aws-sdk-s3/bucket_policy.rb +4 -4
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +4 -4
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +5 -5
  15. data/lib/aws-sdk-s3/bucket_website.rb +4 -4
  16. data/lib/aws-sdk-s3/client.rb +123 -88
  17. data/lib/aws-sdk-s3/client_api.rb +10 -2
  18. data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
  19. data/lib/aws-sdk-s3/customizations/object.rb +5 -5
  20. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  21. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
  22. data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
  23. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
  24. data/lib/aws-sdk-s3/endpoint_parameters.rb +8 -0
  25. data/lib/aws-sdk-s3/endpoint_provider.rb +1 -0
  26. data/lib/aws-sdk-s3/endpoints.rb +100 -1
  27. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  28. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  29. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +1 -1
  30. data/lib/aws-sdk-s3/multipart_upload.rb +4 -4
  31. data/lib/aws-sdk-s3/multipart_upload_part.rb +3 -3
  32. data/lib/aws-sdk-s3/object.rb +30 -12
  33. data/lib/aws-sdk-s3/object_acl.rb +3 -3
  34. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  35. data/lib/aws-sdk-s3/object_summary.rb +10 -10
  36. data/lib/aws-sdk-s3/object_version.rb +23 -5
  37. data/lib/aws-sdk-s3/plugins/access_grants.rb +7 -1
  38. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +7 -1
  39. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  40. data/lib/aws-sdk-s3/resource.rb +2 -2
  41. data/lib/aws-sdk-s3/types.rb +48 -17
  42. data/lib/aws-sdk-s3.rb +1 -1
  43. data/sig/client.rbs +19 -0
  44. data/sig/object.rbs +6 -0
  45. data/sig/object_version.rbs +6 -0
  46. data/sig/resource.rbs +1 -0
  47. data/sig/types.rbs +6 -0
  48. data/sig/waiters.rbs +12 -0
  49. metadata +6 -6
@@ -131,6 +131,11 @@ module Aws::S3
131
131
 
132
132
  # @overload initialize(options)
133
133
  # @param [Hash] options
134
+ #
135
+ # @option options [Array<Seahorse::Client::Plugin>] :plugins ([]])
136
+ # A list of plugins to apply to the client. Each plugin is either a
137
+ # class name or an instance of a plugin class.
138
+ #
134
139
  # @option options [required, Aws::CredentialProvider] :credentials
135
140
  # Your AWS credentials. This can be an instance of any one of the
136
141
  # following classes:
@@ -271,7 +276,6 @@ module Aws::S3
271
276
  # 'https://example.com'
272
277
  # 'http://example.com:123'
273
278
  #
274
- #
275
279
  # @option options [Integer] :endpoint_cache_max_entries (1000)
276
280
  # Used for the maximum size limit of the LRU cache storing endpoints data
277
281
  # for endpoint discovery enabled operations. Defaults to 1000.
@@ -386,7 +390,6 @@ module Aws::S3
386
390
  # throttling. This is a provisional mode that may change behavior
387
391
  # in the future.
388
392
  #
389
- #
390
393
  # @option options [Boolean] :s3_disable_multiregion_access_points (false)
391
394
  # When set to `false` this will option will raise errors when multi-region
392
395
  # access point ARNs are used. Multi-region access points can potentially
@@ -411,6 +414,15 @@ module Aws::S3
411
414
  #
412
415
  # @option options [String] :session_token
413
416
  #
417
+ # @option options [Array] :sigv4a_signing_region_set
418
+ # A list of regions that should be signed with SigV4a signing. When
419
+ # not passed, a default `:sigv4a_signing_region_set` is searched for
420
+ # in the following locations:
421
+ #
422
+ # * `Aws.config[:sigv4a_signing_region_set]`
423
+ # * `ENV['AWS_SIGV4A_SIGNING_REGION_SET']`
424
+ # * `~/.aws/config`
425
+ #
414
426
  # @option options [Boolean] :stub_responses (false)
415
427
  # Causes the client to return stubbed responses. By default
416
428
  # fake responses are generated and returned. You can specify
@@ -1201,8 +1213,7 @@ module Aws::S3
1201
1213
  # : When the request is an HTTP 1.1 request, the response is chunk
1202
1214
  # encoded. When the request is not an HTTP 1.1 request, the response
1203
1215
  # 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.
1216
+ # entire response body to check if the copy succeeds.
1206
1217
  #
1207
1218
  # * If the copy is successful, you receive a response with information
1208
1219
  # about the copied object.
@@ -2328,33 +2339,33 @@ module Aws::S3
2328
2339
  # * {Types::CreateBucketOutput#location #location} => String
2329
2340
  #
2330
2341
  #
2331
- # @example Example: To create a bucket
2342
+ # @example Example: To create a bucket in a specific region
2332
2343
  #
2333
- # # The following example creates a bucket.
2344
+ # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2334
2345
  #
2335
2346
  # resp = client.create_bucket({
2336
2347
  # bucket: "examplebucket",
2348
+ # create_bucket_configuration: {
2349
+ # location_constraint: "eu-west-1",
2350
+ # },
2337
2351
  # })
2338
2352
  #
2339
2353
  # resp.to_h outputs the following:
2340
2354
  # {
2341
- # location: "/examplebucket",
2355
+ # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2342
2356
  # }
2343
2357
  #
2344
- # @example Example: To create a bucket in a specific region
2358
+ # @example Example: To create a bucket
2345
2359
  #
2346
- # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2360
+ # # The following example creates a bucket.
2347
2361
  #
2348
2362
  # resp = client.create_bucket({
2349
2363
  # bucket: "examplebucket",
2350
- # create_bucket_configuration: {
2351
- # location_constraint: "eu-west-1",
2352
- # },
2353
2364
  # })
2354
2365
  #
2355
2366
  # resp.to_h outputs the following:
2356
2367
  # {
2357
- # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2368
+ # location: "/examplebucket",
2358
2369
  # }
2359
2370
  #
2360
2371
  # @example Request syntax with placeholder values
@@ -4487,15 +4498,6 @@ module Aws::S3
4487
4498
  # * {Types::DeleteObjectOutput#request_charged #request_charged} => String
4488
4499
  #
4489
4500
  #
4490
- # @example Example: To delete an object (from a non-versioned bucket)
4491
- #
4492
- # # The following example deletes an object from a non-versioned bucket.
4493
- #
4494
- # resp = client.delete_object({
4495
- # bucket: "ExampleBucket",
4496
- # key: "HappyFace.jpg",
4497
- # })
4498
- #
4499
4501
  # @example Example: To delete an object
4500
4502
  #
4501
4503
  # # The following example deletes an object from an S3 bucket.
@@ -4509,6 +4511,15 @@ module Aws::S3
4509
4511
  # {
4510
4512
  # }
4511
4513
  #
4514
+ # @example Example: To delete an object (from a non-versioned bucket)
4515
+ #
4516
+ # # The following example deletes an object from a non-versioned bucket.
4517
+ #
4518
+ # resp = client.delete_object({
4519
+ # bucket: "ExampleBucket",
4520
+ # key: "HappyFace.jpg",
4521
+ # })
4522
+ #
4512
4523
  # @example Request syntax with placeholder values
4513
4524
  #
4514
4525
  # resp = client.delete_object({
@@ -4717,7 +4728,7 @@ module Aws::S3
4717
4728
  # permission.
4718
4729
  #
4719
4730
  # * <b> <code>s3:DeleteObjectVersion</code> </b> - To delete a
4720
- # specific version of an object from a versiong-enabled bucket,
4731
+ # specific version of an object from a versioning-enabled bucket,
4721
4732
  # you must specify the `s3:DeleteObjectVersion` permission.
4722
4733
  #
4723
4734
  # * **Directory bucket permissions** - To grant access to this API
@@ -8735,49 +8746,49 @@ module Aws::S3
8735
8746
  # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array&lt;Types::Tag&gt;
8736
8747
  #
8737
8748
  #
8738
- # @example Example: To retrieve tag set of an object
8749
+ # @example Example: To retrieve tag set of a specific object version
8739
8750
  #
8740
- # # The following example retrieves tag set of an object.
8751
+ # # The following example retrieves tag set of an object. The request specifies object version.
8741
8752
  #
8742
8753
  # resp = client.get_object_tagging({
8743
8754
  # bucket: "examplebucket",
8744
- # key: "HappyFace.jpg",
8755
+ # key: "exampleobject",
8756
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8745
8757
  # })
8746
8758
  #
8747
8759
  # resp.to_h outputs the following:
8748
8760
  # {
8749
8761
  # tag_set: [
8750
8762
  # {
8751
- # key: "Key4",
8752
- # value: "Value4",
8753
- # },
8754
- # {
8755
- # key: "Key3",
8756
- # value: "Value3",
8763
+ # key: "Key1",
8764
+ # value: "Value1",
8757
8765
  # },
8758
8766
  # ],
8759
- # version_id: "null",
8767
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8760
8768
  # }
8761
8769
  #
8762
- # @example Example: To retrieve tag set of a specific object version
8770
+ # @example Example: To retrieve tag set of an object
8763
8771
  #
8764
- # # The following example retrieves tag set of an object. The request specifies object version.
8772
+ # # The following example retrieves tag set of an object.
8765
8773
  #
8766
8774
  # resp = client.get_object_tagging({
8767
8775
  # bucket: "examplebucket",
8768
- # key: "exampleobject",
8769
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8776
+ # key: "HappyFace.jpg",
8770
8777
  # })
8771
8778
  #
8772
8779
  # resp.to_h outputs the following:
8773
8780
  # {
8774
8781
  # tag_set: [
8775
8782
  # {
8776
- # key: "Key1",
8777
- # value: "Value1",
8783
+ # key: "Key4",
8784
+ # value: "Value4",
8785
+ # },
8786
+ # {
8787
+ # key: "Key3",
8788
+ # value: "Value3",
8778
8789
  # },
8779
8790
  # ],
8780
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
8791
+ # version_id: "null",
8781
8792
  # }
8782
8793
  #
8783
8794
  # @example Request syntax with placeholder values
@@ -9423,6 +9434,24 @@ module Aws::S3
9423
9434
  # the Range is not satisfiable, S3 returns a `416 - Requested Range Not
9424
9435
  # Satisfiable` error.
9425
9436
  #
9437
+ # @option params [String] :response_cache_control
9438
+ # Sets the `Cache-Control` header of the response.
9439
+ #
9440
+ # @option params [String] :response_content_disposition
9441
+ # Sets the `Content-Disposition` header of the response.
9442
+ #
9443
+ # @option params [String] :response_content_encoding
9444
+ # Sets the `Content-Encoding` header of the response.
9445
+ #
9446
+ # @option params [String] :response_content_language
9447
+ # Sets the `Content-Language` header of the response.
9448
+ #
9449
+ # @option params [String] :response_content_type
9450
+ # Sets the `Content-Type` header of the response.
9451
+ #
9452
+ # @option params [Time,DateTime,Date,Integer,String] :response_expires
9453
+ # Sets the `Expires` header of the response.
9454
+ #
9426
9455
  # @option params [String] :version_id
9427
9456
  # Version ID used to reference a specific version of the object.
9428
9457
  #
@@ -9565,6 +9594,12 @@ module Aws::S3
9565
9594
  # if_unmodified_since: Time.now,
9566
9595
  # key: "ObjectKey", # required
9567
9596
  # range: "Range",
9597
+ # response_cache_control: "ResponseCacheControl",
9598
+ # response_content_disposition: "ResponseContentDisposition",
9599
+ # response_content_encoding: "ResponseContentEncoding",
9600
+ # response_content_language: "ResponseContentLanguage",
9601
+ # response_content_type: "ResponseContentType",
9602
+ # response_expires: Time.now,
9568
9603
  # version_id: "ObjectVersionId",
9569
9604
  # sse_customer_algorithm: "SSECustomerAlgorithm",
9570
9605
  # sse_customer_key: "SSECustomerKey",
@@ -11182,8 +11217,8 @@ module Aws::S3
11182
11217
  # @option params [String] :encoding_type
11183
11218
  # Encoding type used by Amazon S3 to encode object keys in the response.
11184
11219
  # 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.
11220
+ # will be URL encoded. For example, the object `test_file(3).png` will
11221
+ # appear as `test_file%283%29.png`.
11187
11222
  #
11188
11223
  # @option params [Integer] :max_keys
11189
11224
  # Sets the maximum number of keys returned in the response. By default,
@@ -15410,96 +15445,100 @@ module Aws::S3
15410
15445
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
15411
15446
  #
15412
15447
  #
15413
- # @example Example: To upload object and specify user-defined metadata
15448
+ # @example Example: To upload an object
15414
15449
  #
15415
- # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
15416
- # # enabled, S3 returns version ID in response.
15450
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15451
+ # # syntax. S3 returns VersionId of the newly created object.
15417
15452
  #
15418
15453
  # resp = client.put_object({
15419
- # body: "filetoupload",
15454
+ # body: "HappyFace.jpg",
15420
15455
  # bucket: "examplebucket",
15421
- # key: "exampleobject",
15422
- # metadata: {
15423
- # "metadata1" => "value1",
15424
- # "metadata2" => "value2",
15425
- # },
15456
+ # key: "HappyFace.jpg",
15426
15457
  # })
15427
15458
  #
15428
15459
  # resp.to_h outputs the following:
15429
15460
  # {
15430
15461
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15431
- # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15462
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15432
15463
  # }
15433
15464
  #
15434
- # @example Example: To upload an object (specify optional headers)
15465
+ # @example Example: To upload an object and specify server-side encryption and object tags
15435
15466
  #
15436
- # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
15437
- # # storage class and use server-side encryption.
15467
+ # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
15468
+ # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
15438
15469
  #
15439
15470
  # resp = client.put_object({
15440
- # body: "HappyFace.jpg",
15471
+ # body: "filetoupload",
15441
15472
  # bucket: "examplebucket",
15442
- # key: "HappyFace.jpg",
15473
+ # key: "exampleobject",
15443
15474
  # server_side_encryption: "AES256",
15444
- # storage_class: "STANDARD_IA",
15475
+ # tagging: "key1=value1&key2=value2",
15445
15476
  # })
15446
15477
  #
15447
15478
  # resp.to_h outputs the following:
15448
15479
  # {
15449
15480
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15450
15481
  # server_side_encryption: "AES256",
15451
- # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15482
+ # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15452
15483
  # }
15453
15484
  #
15454
- # @example Example: To upload an object and specify optional tags
15485
+ # @example Example: To upload an object (specify optional headers)
15455
15486
  #
15456
- # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
15457
- # # S3 returns version ID of the newly created object.
15487
+ # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
15488
+ # # storage class and use server-side encryption.
15458
15489
  #
15459
15490
  # resp = client.put_object({
15460
- # body: "c:\\HappyFace.jpg",
15491
+ # body: "HappyFace.jpg",
15461
15492
  # bucket: "examplebucket",
15462
15493
  # key: "HappyFace.jpg",
15463
- # tagging: "key1=value1&key2=value2",
15494
+ # server_side_encryption: "AES256",
15495
+ # storage_class: "STANDARD_IA",
15464
15496
  # })
15465
15497
  #
15466
15498
  # resp.to_h outputs the following:
15467
15499
  # {
15468
15500
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15469
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15501
+ # server_side_encryption: "AES256",
15502
+ # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15470
15503
  # }
15471
15504
  #
15472
- # @example Example: To create an object.
15505
+ # @example Example: To upload object and specify user-defined metadata
15473
15506
  #
15474
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
15507
+ # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
15508
+ # # enabled, S3 returns version ID in response.
15475
15509
  #
15476
15510
  # resp = client.put_object({
15477
15511
  # body: "filetoupload",
15478
15512
  # bucket: "examplebucket",
15479
- # key: "objectkey",
15513
+ # key: "exampleobject",
15514
+ # metadata: {
15515
+ # "metadata1" => "value1",
15516
+ # "metadata2" => "value2",
15517
+ # },
15480
15518
  # })
15481
15519
  #
15482
15520
  # resp.to_h outputs the following:
15483
15521
  # {
15484
15522
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15485
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15523
+ # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15486
15524
  # }
15487
15525
  #
15488
- # @example Example: To upload an object
15526
+ # @example Example: To upload an object and specify optional tags
15489
15527
  #
15490
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15491
- # # syntax. S3 returns VersionId of the newly created object.
15528
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
15529
+ # # S3 returns version ID of the newly created object.
15492
15530
  #
15493
15531
  # resp = client.put_object({
15494
- # body: "HappyFace.jpg",
15532
+ # body: "c:\\HappyFace.jpg",
15495
15533
  # bucket: "examplebucket",
15496
15534
  # key: "HappyFace.jpg",
15535
+ # tagging: "key1=value1&key2=value2",
15497
15536
  # })
15498
15537
  #
15499
15538
  # resp.to_h outputs the following:
15500
15539
  # {
15501
15540
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15502
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15541
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15503
15542
  # }
15504
15543
  #
15505
15544
  # @example Example: To upload an object and specify canned ACL.
@@ -15520,24 +15559,20 @@ module Aws::S3
15520
15559
  # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
15521
15560
  # }
15522
15561
  #
15523
- # @example Example: To upload an object and specify server-side encryption and object tags
15562
+ # @example Example: To create an object.
15524
15563
  #
15525
- # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
15526
- # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
15564
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
15527
15565
  #
15528
15566
  # resp = client.put_object({
15529
15567
  # body: "filetoupload",
15530
15568
  # bucket: "examplebucket",
15531
- # key: "exampleobject",
15532
- # server_side_encryption: "AES256",
15533
- # tagging: "key1=value1&key2=value2",
15569
+ # key: "objectkey",
15534
15570
  # })
15535
15571
  #
15536
15572
  # resp.to_h outputs the following:
15537
15573
  # {
15538
15574
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15539
- # server_side_encryption: "AES256",
15540
- # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15575
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15541
15576
  # }
15542
15577
  #
15543
15578
  # @example Streaming a file from disk
@@ -17960,7 +17995,7 @@ module Aws::S3
17960
17995
  # the object copy to the destination bucket.
17961
17996
  #
17962
17997
  # For information about permissions required to use the multipart
17963
- # upload API, see [Multipart Upload and Permissions][7] in the
17998
+ # upload API, see [Multipart upload API and permissions][7] in the
17964
17999
  # *Amazon S3 User Guide*.
17965
18000
  #
17966
18001
  # * **Directory bucket permissions** - You must have permissions in a
@@ -17970,9 +18005,9 @@ module Aws::S3
17970
18005
  # * If the source object that you want to copy is in a directory
17971
18006
  # bucket, you must have the <b>
17972
18007
  # <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`
18008
+ # `Action` element of a policy to read the object. By default, the
18009
+ # session is in the `ReadWrite` mode. If you want to restrict the
18010
+ # access, you can explicitly set the `s3express:SessionMode`
17976
18011
  # condition key to `ReadOnly` on the copy source bucket.
17977
18012
  #
17978
18013
  # * If the copy destination is a directory bucket, you must have the
@@ -18039,7 +18074,7 @@ module Aws::S3
18039
18074
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html
18040
18075
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
18041
18076
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
18042
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
18077
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
18043
18078
  # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
18044
18079
  # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
18045
18080
  # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
@@ -18828,7 +18863,7 @@ module Aws::S3
18828
18863
  params: params,
18829
18864
  config: config)
18830
18865
  context[:gem_name] = 'aws-sdk-s3'
18831
- context[:gem_version] = '1.151.0'
18866
+ context[:gem_version] = '1.156.0'
18832
18867
  Seahorse::Client::Request.new(handlers, context)
18833
18868
  end
18834
18869
 
@@ -817,7 +817,7 @@ module Aws::S3
817
817
  CopyObjectRequest.add_member(:content_encoding, Shapes::ShapeRef.new(shape: ContentEncoding, location: "header", location_name: "Content-Encoding"))
818
818
  CopyObjectRequest.add_member(:content_language, Shapes::ShapeRef.new(shape: ContentLanguage, location: "header", location_name: "Content-Language"))
819
819
  CopyObjectRequest.add_member(:content_type, Shapes::ShapeRef.new(shape: ContentType, location: "header", location_name: "Content-Type"))
820
- CopyObjectRequest.add_member(:copy_source, Shapes::ShapeRef.new(shape: CopySource, required: true, location: "header", location_name: "x-amz-copy-source"))
820
+ CopyObjectRequest.add_member(:copy_source, Shapes::ShapeRef.new(shape: CopySource, required: true, location: "header", location_name: "x-amz-copy-source", metadata: {"contextParam"=>{"name"=>"CopySource"}}))
821
821
  CopyObjectRequest.add_member(:copy_source_if_match, Shapes::ShapeRef.new(shape: CopySourceIfMatch, location: "header", location_name: "x-amz-copy-source-if-match"))
822
822
  CopyObjectRequest.add_member(:copy_source_if_modified_since, Shapes::ShapeRef.new(shape: CopySourceIfModifiedSince, location: "header", location_name: "x-amz-copy-source-if-modified-since"))
823
823
  CopyObjectRequest.add_member(:copy_source_if_none_match, Shapes::ShapeRef.new(shape: CopySourceIfNoneMatch, location: "header", location_name: "x-amz-copy-source-if-none-match"))
@@ -827,7 +827,7 @@ module Aws::S3
827
827
  CopyObjectRequest.add_member(:grant_read, Shapes::ShapeRef.new(shape: GrantRead, location: "header", location_name: "x-amz-grant-read"))
828
828
  CopyObjectRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
829
829
  CopyObjectRequest.add_member(:grant_write_acp, Shapes::ShapeRef.new(shape: GrantWriteACP, location: "header", location_name: "x-amz-grant-write-acp"))
830
- CopyObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
830
+ CopyObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
831
831
  CopyObjectRequest.add_member(:metadata, Shapes::ShapeRef.new(shape: Metadata, location: "headers", location_name: "x-amz-meta-"))
832
832
  CopyObjectRequest.add_member(:metadata_directive, Shapes::ShapeRef.new(shape: MetadataDirective, location: "header", location_name: "x-amz-metadata-directive"))
833
833
  CopyObjectRequest.add_member(:tagging_directive, Shapes::ShapeRef.new(shape: TaggingDirective, location: "header", location_name: "x-amz-tagging-directive"))
@@ -1531,6 +1531,12 @@ module Aws::S3
1531
1531
  HeadObjectRequest.add_member(:if_unmodified_since, Shapes::ShapeRef.new(shape: IfUnmodifiedSince, location: "header", location_name: "If-Unmodified-Since"))
1532
1532
  HeadObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
1533
1533
  HeadObjectRequest.add_member(:range, Shapes::ShapeRef.new(shape: Range, location: "header", location_name: "Range"))
1534
+ HeadObjectRequest.add_member(:response_cache_control, Shapes::ShapeRef.new(shape: ResponseCacheControl, location: "querystring", location_name: "response-cache-control"))
1535
+ HeadObjectRequest.add_member(:response_content_disposition, Shapes::ShapeRef.new(shape: ResponseContentDisposition, location: "querystring", location_name: "response-content-disposition"))
1536
+ HeadObjectRequest.add_member(:response_content_encoding, Shapes::ShapeRef.new(shape: ResponseContentEncoding, location: "querystring", location_name: "response-content-encoding"))
1537
+ HeadObjectRequest.add_member(:response_content_language, Shapes::ShapeRef.new(shape: ResponseContentLanguage, location: "querystring", location_name: "response-content-language"))
1538
+ HeadObjectRequest.add_member(:response_content_type, Shapes::ShapeRef.new(shape: ResponseContentType, location: "querystring", location_name: "response-content-type"))
1539
+ HeadObjectRequest.add_member(:response_expires, Shapes::ShapeRef.new(shape: ResponseExpires, location: "querystring", location_name: "response-expires"))
1534
1540
  HeadObjectRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1535
1541
  HeadObjectRequest.add_member(:sse_customer_algorithm, Shapes::ShapeRef.new(shape: SSECustomerAlgorithm, location: "header", location_name: "x-amz-server-side-encryption-customer-algorithm"))
1536
1542
  HeadObjectRequest.add_member(:sse_customer_key, Shapes::ShapeRef.new(shape: SSECustomerKey, location: "header", location_name: "x-amz-server-side-encryption-customer-key"))
@@ -2760,6 +2766,7 @@ module Aws::S3
2760
2766
 
2761
2767
  api.metadata = {
2762
2768
  "apiVersion" => "2006-03-01",
2769
+ "auth" => ["aws.auth#sigv4"],
2763
2770
  "checksumFormat" => "md5",
2764
2771
  "endpointPrefix" => "s3",
2765
2772
  "globalEndpoint" => "s3.amazonaws.com",
@@ -3829,6 +3836,7 @@ module Aws::S3
3829
3836
  o.http_method = "POST"
3830
3837
  o.http_request_uri = "/WriteGetObjectResponse"
3831
3838
  o['authtype'] = "v4-unsigned-body"
3839
+ o['unsignedPayload'] = true
3832
3840
  o.endpoint_pattern = {
3833
3841
  "hostPrefix" => "{RequestRoute}.",
3834
3842
  }
@@ -134,7 +134,7 @@ module Aws
134
134
 
135
135
  # @api private
136
136
  def load
137
- @data = Aws::Plugins::UserAgent.feature('resource') do
137
+ @data = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
138
138
  client.list_buckets.buckets.find { |b| b.name == name }
139
139
  end
140
140
  raise "unable to load bucket #{name}" if @data.nil?
@@ -76,7 +76,7 @@ module Aws
76
76
  # @see #copy_to
77
77
  #
78
78
  def copy_from(source, options = {})
79
- Aws::Plugins::UserAgent.feature('resource') do
79
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
80
80
  if Hash === source && source[:copy_source]
81
81
  # for backwards compatibility
82
82
  @client.copy_object(source.merge(bucket: bucket_name, key: key))
@@ -119,7 +119,7 @@ module Aws
119
119
  # object.copy_to('src-bucket/src-key', multipart_copy: true)
120
120
  #
121
121
  def copy_to(target, options = {})
122
- Aws::Plugins::UserAgent.feature('resource') do
122
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
123
123
  ObjectCopier.new(self, options).copy_to(target, options)
124
124
  end
125
125
  end
@@ -390,7 +390,7 @@ module Aws
390
390
  tempfile: uploading_options.delete(:tempfile),
391
391
  part_size: uploading_options.delete(:part_size)
392
392
  )
393
- Aws::Plugins::UserAgent.feature('resource') do
393
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
394
394
  uploader.upload(
395
395
  uploading_options.merge(bucket: bucket_name, key: key),
396
396
  &block
@@ -473,7 +473,7 @@ module Aws
473
473
  multipart_threshold: uploading_options.delete(:multipart_threshold),
474
474
  client: client
475
475
  )
476
- response = Aws::Plugins::UserAgent.feature('resource') do
476
+ response = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
477
477
  uploader.upload(
478
478
  source,
479
479
  uploading_options.merge(bucket: bucket_name, key: key)
@@ -551,7 +551,7 @@ module Aws
551
551
  # @see Client#head_object
552
552
  def download_file(destination, options = {})
553
553
  downloader = FileDownloader.new(client: client)
554
- Aws::Plugins::UserAgent.feature('resource') do
554
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
555
555
  downloader.download(
556
556
  destination,
557
557
  options.merge(bucket: bucket_name, key: key)
@@ -270,7 +270,7 @@ module Aws
270
270
  envelope_location: @envelope_location,
271
271
  instruction_file_suffix: @instruction_file_suffix,
272
272
  }
273
- Aws::Plugins::UserAgent.feature('S3CryptoV1n') do
273
+ Aws::Plugins::UserAgent.metric('S3_CRYPTO_V1N') do
274
274
  req.send_request
275
275
  end
276
276
  end
@@ -300,7 +300,7 @@ module Aws
300
300
  envelope_location: envelope_location,
301
301
  instruction_file_suffix: instruction_file_suffix,
302
302
  }
303
- Aws::Plugins::UserAgent.feature('S3CryptoV1n') do
303
+ Aws::Plugins::UserAgent.metric('S3_CRYPTO_V1N') do
304
304
  req.send_request(target: block)
305
305
  end
306
306
  end
@@ -17,7 +17,7 @@ module Aws
17
17
  # envelope and encryption cipher.
18
18
  def encryption_cipher
19
19
  encryption_context = { "kms_cmk_id" => @kms_key_id }
20
- key_data = Aws::Plugins::UserAgent.feature('S3CryptoV1n') do
20
+ key_data = Aws::Plugins::UserAgent.metric('S3_CRYPTO_V1N') do
21
21
  @kms_client.generate_data_key(
22
22
  key_id: @kms_key_id,
23
23
  encryption_context: encryption_context,
@@ -60,7 +60,7 @@ module Aws
60
60
  "#{envelope['x-amz-wrap-alg']}"
61
61
  end
62
62
 
63
- key = Aws::Plugins::UserAgent.feature('S3CryptoV1n') do
63
+ key = Aws::Plugins::UserAgent.metric('S3_CRYPTO_V1N') do
64
64
  @kms_client.decrypt(
65
65
  ciphertext_blob: decode64(envelope['x-amz-key-v2']),
66
66
  encryption_context: encryption_context
@@ -361,7 +361,7 @@ module Aws
361
361
  instruction_file_suffix: @instruction_file_suffix,
362
362
  kms_encryption_context: kms_encryption_context
363
363
  }
364
- Aws::Plugins::UserAgent.feature('S3CryptoV2') do
364
+ Aws::Plugins::UserAgent.metric('S3_CRYPTO_V2') do
365
365
  req.send_request
366
366
  end
367
367
  end
@@ -416,7 +416,7 @@ module Aws
416
416
  kms_allow_decrypt_with_any_cmk: kms_any_cmk_mode,
417
417
  security_profile: security_profile
418
418
  }
419
- Aws::Plugins::UserAgent.feature('S3CryptoV2') do
419
+ Aws::Plugins::UserAgent.metric('S3_CRYPTO_V2') do
420
420
  req.send_request(target: block)
421
421
  end
422
422
  end
@@ -24,7 +24,7 @@ module Aws
24
24
  def encryption_cipher(options = {})
25
25
  validate_key_for_encryption
26
26
  encryption_context = build_encryption_context(@content_encryption_schema, options)
27
- key_data = Aws::Plugins::UserAgent.feature('S3CryptoV2') do
27
+ key_data = Aws::Plugins::UserAgent.metric('S3_CRYPTO_V2') do
28
28
  @kms_client.generate_data_key(
29
29
  key_id: @kms_key_id,
30
30
  encryption_context: encryption_context,
@@ -85,7 +85,7 @@ module Aws
85
85
  decrypt_options[:key_id] = @kms_key_id
86
86
  end
87
87
 
88
- key = Aws::Plugins::UserAgent.feature('S3CryptoV2') do
88
+ key = Aws::Plugins::UserAgent.metric('S3_CRYPTO_V2') do
89
89
  @kms_client.decrypt(decrypt_options).plaintext
90
90
  end
91
91
  iv = decode64(envelope['x-amz-iv'])