aws-sdk-s3 1.151.0 → 1.153.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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +25 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +10 -10
  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 +66 -63
  17. data/lib/aws-sdk-s3/client_api.rb +2 -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 +12 -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 +5 -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.rb +1 -1
  42. metadata +4 -4
@@ -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
@@ -4918,20 +4921,22 @@ module Aws::S3
4918
4921
  # * {Types::DeleteObjectsOutput#errors #errors} => Array&lt;Types::Error&gt;
4919
4922
  #
4920
4923
  #
4921
- # @example Example: To delete multiple objects from a versioned bucket
4924
+ # @example Example: To delete multiple object versions from a versioned bucket
4922
4925
  #
4923
- # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
4924
- # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
4926
+ # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
4927
+ # # versions and returns the key and versions of deleted objects in the response.
4925
4928
  #
4926
4929
  # resp = client.delete_objects({
4927
4930
  # bucket: "examplebucket",
4928
4931
  # delete: {
4929
4932
  # objects: [
4930
4933
  # {
4931
- # key: "objectkey1",
4934
+ # key: "HappyFace.jpg",
4935
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
4932
4936
  # },
4933
4937
  # {
4934
- # key: "objectkey2",
4938
+ # key: "HappyFace.jpg",
4939
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
4935
4940
  # },
4936
4941
  # ],
4937
4942
  # quiet: false,
@@ -4942,34 +4947,30 @@ module Aws::S3
4942
4947
  # {
4943
4948
  # deleted: [
4944
4949
  # {
4945
- # delete_marker: true,
4946
- # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
4947
- # key: "objectkey1",
4950
+ # key: "HappyFace.jpg",
4951
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
4948
4952
  # },
4949
4953
  # {
4950
- # delete_marker: true,
4951
- # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
4952
- # key: "objectkey2",
4954
+ # key: "HappyFace.jpg",
4955
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
4953
4956
  # },
4954
4957
  # ],
4955
4958
  # }
4956
4959
  #
4957
- # @example Example: To delete multiple object versions from a versioned bucket
4960
+ # @example Example: To delete multiple objects from a versioned bucket
4958
4961
  #
4959
- # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
4960
- # # versions and returns the key and versions of deleted objects in the response.
4962
+ # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
4963
+ # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
4961
4964
  #
4962
4965
  # resp = client.delete_objects({
4963
4966
  # bucket: "examplebucket",
4964
4967
  # delete: {
4965
4968
  # objects: [
4966
4969
  # {
4967
- # key: "HappyFace.jpg",
4968
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
4970
+ # key: "objectkey1",
4969
4971
  # },
4970
4972
  # {
4971
- # key: "HappyFace.jpg",
4972
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
4973
+ # key: "objectkey2",
4973
4974
  # },
4974
4975
  # ],
4975
4976
  # quiet: false,
@@ -4980,12 +4981,14 @@ module Aws::S3
4980
4981
  # {
4981
4982
  # deleted: [
4982
4983
  # {
4983
- # key: "HappyFace.jpg",
4984
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
4984
+ # delete_marker: true,
4985
+ # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
4986
+ # key: "objectkey1",
4985
4987
  # },
4986
4988
  # {
4987
- # key: "HappyFace.jpg",
4988
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
4989
+ # delete_marker: true,
4990
+ # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
4991
+ # key: "objectkey2",
4989
4992
  # },
4990
4993
  # ],
4991
4994
  # }
@@ -15410,25 +15413,40 @@ module Aws::S3
15410
15413
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
15411
15414
  #
15412
15415
  #
15413
- # @example Example: To upload object and specify user-defined metadata
15416
+ # @example Example: To upload an object and specify server-side encryption and object tags
15414
15417
  #
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.
15418
+ # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
15419
+ # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
15417
15420
  #
15418
15421
  # resp = client.put_object({
15419
15422
  # body: "filetoupload",
15420
15423
  # bucket: "examplebucket",
15421
15424
  # key: "exampleobject",
15422
- # metadata: {
15423
- # "metadata1" => "value1",
15424
- # "metadata2" => "value2",
15425
- # },
15425
+ # server_side_encryption: "AES256",
15426
+ # tagging: "key1=value1&key2=value2",
15426
15427
  # })
15427
15428
  #
15428
15429
  # resp.to_h outputs the following:
15429
15430
  # {
15430
15431
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15431
- # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15432
+ # server_side_encryption: "AES256",
15433
+ # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15434
+ # }
15435
+ #
15436
+ # @example Example: To create an object.
15437
+ #
15438
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
15439
+ #
15440
+ # resp = client.put_object({
15441
+ # body: "filetoupload",
15442
+ # bucket: "examplebucket",
15443
+ # key: "objectkey",
15444
+ # })
15445
+ #
15446
+ # resp.to_h outputs the following:
15447
+ # {
15448
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15449
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15432
15450
  # }
15433
15451
  #
15434
15452
  # @example Example: To upload an object (specify optional headers)
@@ -15469,37 +15487,25 @@ module Aws::S3
15469
15487
  # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15470
15488
  # }
15471
15489
  #
15472
- # @example Example: To create an object.
15490
+ # @example Example: To upload object and specify user-defined metadata
15473
15491
  #
15474
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
15492
+ # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
15493
+ # # enabled, S3 returns version ID in response.
15475
15494
  #
15476
15495
  # resp = client.put_object({
15477
15496
  # body: "filetoupload",
15478
15497
  # bucket: "examplebucket",
15479
- # key: "objectkey",
15480
- # })
15481
- #
15482
- # resp.to_h outputs the following:
15483
- # {
15484
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15485
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15486
- # }
15487
- #
15488
- # @example Example: To upload an object
15489
- #
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.
15492
- #
15493
- # resp = client.put_object({
15494
- # body: "HappyFace.jpg",
15495
- # bucket: "examplebucket",
15496
- # key: "HappyFace.jpg",
15498
+ # key: "exampleobject",
15499
+ # metadata: {
15500
+ # "metadata1" => "value1",
15501
+ # "metadata2" => "value2",
15502
+ # },
15497
15503
  # })
15498
15504
  #
15499
15505
  # resp.to_h outputs the following:
15500
15506
  # {
15501
15507
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15502
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15508
+ # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15503
15509
  # }
15504
15510
  #
15505
15511
  # @example Example: To upload an object and specify canned ACL.
@@ -15520,24 +15526,21 @@ module Aws::S3
15520
15526
  # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
15521
15527
  # }
15522
15528
  #
15523
- # @example Example: To upload an object and specify server-side encryption and object tags
15529
+ # @example Example: To upload an object
15524
15530
  #
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.
15531
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15532
+ # # syntax. S3 returns VersionId of the newly created object.
15527
15533
  #
15528
15534
  # resp = client.put_object({
15529
- # body: "filetoupload",
15535
+ # body: "HappyFace.jpg",
15530
15536
  # bucket: "examplebucket",
15531
- # key: "exampleobject",
15532
- # server_side_encryption: "AES256",
15533
- # tagging: "key1=value1&key2=value2",
15537
+ # key: "HappyFace.jpg",
15534
15538
  # })
15535
15539
  #
15536
15540
  # resp.to_h outputs the following:
15537
15541
  # {
15538
15542
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15539
- # server_side_encryption: "AES256",
15540
- # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15543
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15541
15544
  # }
15542
15545
  #
15543
15546
  # @example Streaming a file from disk
@@ -18828,7 +18831,7 @@ module Aws::S3
18828
18831
  params: params,
18829
18832
  config: config)
18830
18833
  context[:gem_name] = 'aws-sdk-s3'
18831
- context[:gem_version] = '1.151.0'
18834
+ context[:gem_version] = '1.153.0'
18832
18835
  Seahorse::Client::Request.new(handlers, context)
18833
18836
  end
18834
18837
 
@@ -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"))
@@ -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'])
@@ -65,6 +65,11 @@ module Aws::S3
65
65
  #
66
66
  # @return [String]
67
67
  #
68
+ # @!attribute copy_source
69
+ # The Copy Source used for Copy Object request. This is an optional parameter that will be set automatically for operations that are scoped to Copy Source.
70
+ #
71
+ # @return [String]
72
+ #
68
73
  # @!attribute disable_access_points
69
74
  # Internal parameter to disable Access Point Buckets
70
75
  #
@@ -102,6 +107,7 @@ module Aws::S3
102
107
  :use_object_lambda_endpoint,
103
108
  :key,
104
109
  :prefix,
110
+ :copy_source,
105
111
  :disable_access_points,
106
112
  :disable_multi_region_access_points,
107
113
  :use_arn_region,
@@ -124,6 +130,7 @@ module Aws::S3
124
130
  'UseObjectLambdaEndpoint' => :use_object_lambda_endpoint,
125
131
  'Key' => :key,
126
132
  'Prefix' => :prefix,
133
+ 'CopySource' => :copy_source,
127
134
  'DisableAccessPoints' => :disable_access_points,
128
135
  'DisableMultiRegionAccessPoints' => :disable_multi_region_access_points,
129
136
  'UseArnRegion' => :use_arn_region,
@@ -164,6 +171,7 @@ module Aws::S3
164
171
  self[:use_object_lambda_endpoint] = options[:use_object_lambda_endpoint]
165
172
  self[:key] = options[:key]
166
173
  self[:prefix] = options[:prefix]
174
+ self[:copy_source] = options[:copy_source]
167
175
  self[:disable_access_points] = options[:disable_access_points]
168
176
  self[:disable_multi_region_access_points] = options[:disable_multi_region_access_points]
169
177
  self[:disable_multi_region_access_points] = false if self[:disable_multi_region_access_points].nil?
@@ -21,6 +21,7 @@ module Aws::S3
21
21
  use_object_lambda_endpoint = parameters.use_object_lambda_endpoint
22
22
  key = parameters.key
23
23
  prefix = parameters.prefix
24
+ copy_source = parameters.copy_source
24
25
  disable_access_points = parameters.disable_access_points
25
26
  disable_multi_region_access_points = parameters.disable_multi_region_access_points
26
27
  use_arn_region = parameters.use_arn_region