aws-sdk-s3 1.151.0 → 1.156.0

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