aws-sdk-s3 1.150.0 → 1.169.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +110 -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 +252 -88
  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 +42 -5
  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 +8 -8
  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 +1685 -668
  18. data/lib/aws-sdk-s3/client_api.rb +49 -4
  19. data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
  20. data/lib/aws-sdk-s3/customizations/object.rb +11 -5
  21. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  22. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  23. data/lib/aws-sdk-s3/customizations.rb +24 -38
  24. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  25. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
  26. data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
  27. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
  28. data/lib/aws-sdk-s3/endpoint_parameters.rb +21 -18
  29. data/lib/aws-sdk-s3/endpoint_provider.rb +1 -0
  30. data/lib/aws-sdk-s3/endpoints.rb +416 -1614
  31. data/lib/aws-sdk-s3/errors.rb +3 -0
  32. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  33. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  34. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +1 -1
  35. data/lib/aws-sdk-s3/multipart_upload.rb +31 -8
  36. data/lib/aws-sdk-s3/multipart_upload_part.rb +11 -11
  37. data/lib/aws-sdk-s3/object.rb +441 -158
  38. data/lib/aws-sdk-s3/object_acl.rb +3 -3
  39. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  40. data/lib/aws-sdk-s3/object_summary.rb +403 -134
  41. data/lib/aws-sdk-s3/object_version.rb +53 -13
  42. data/lib/aws-sdk-s3/plugins/access_grants.rb +75 -5
  43. data/lib/aws-sdk-s3/plugins/endpoints.rb +24 -212
  44. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +7 -1
  45. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  46. data/lib/aws-sdk-s3/resource.rb +37 -11
  47. data/lib/aws-sdk-s3/types.rb +1106 -401
  48. data/lib/aws-sdk-s3.rb +35 -31
  49. data/sig/bucket.rbs +4 -0
  50. data/sig/bucket_lifecycle_configuration.rbs +7 -3
  51. data/sig/client.rbs +49 -5
  52. data/sig/multipart_upload.rbs +1 -0
  53. data/sig/object.rbs +7 -0
  54. data/sig/object_summary.rbs +1 -0
  55. data/sig/object_version.rbs +6 -0
  56. data/sig/resource.rbs +7 -1
  57. data/sig/types.rbs +36 -2
  58. data/sig/waiters.rbs +12 -0
  59. metadata +7 -6
@@ -186,7 +186,7 @@ module Aws::S3
186
186
  options, params = separate_params_and_options(options)
187
187
  waiter = Waiters::ObjectExists.new(options)
188
188
  yield_waiter_and_warn(waiter, &block) if block_given?
189
- Aws::Plugins::UserAgent.feature('resource') do
189
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
190
190
  waiter.wait(params.merge(bucket: @bucket_name,
191
191
  key: @key))
192
192
  end
@@ -207,7 +207,7 @@ module Aws::S3
207
207
  options, params = separate_params_and_options(options)
208
208
  waiter = Waiters::ObjectNotExists.new(options)
209
209
  yield_waiter_and_warn(waiter, &block) if block_given?
210
- Aws::Plugins::UserAgent.feature('resource') do
210
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
211
211
  waiter.wait(params.merge(bucket: @bucket_name,
212
212
  key: @key))
213
213
  end
@@ -312,7 +312,7 @@ module Aws::S3
312
312
  :retry
313
313
  end
314
314
  end
315
- Aws::Plugins::UserAgent.feature('resource') do
315
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
316
316
  Aws::Waiters::Waiter.new(options).wait({})
317
317
  end
318
318
  end
@@ -667,9 +667,8 @@ module Aws::S3
667
667
  # </note>
668
668
  # @option options [String] :server_side_encryption
669
669
  # The server-side encryption algorithm used when storing this object in
670
- # Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
671
- # Unrecognized or unsupported values won’t write a destination object
672
- # and will receive a `400 Bad Request` response.
670
+ # Amazon S3. Unrecognized or unsupported values won’t write a
671
+ # destination object and will receive a `400 Bad Request` response.
673
672
  #
674
673
  # Amazon S3 automatically encrypts all new objects that are copied to an
675
674
  # S3 bucket. When copying an object, if you don't specify encryption
@@ -677,35 +676,72 @@ module Aws::S3
677
676
  # object is set to the default encryption configuration of the
678
677
  # destination bucket. By default, all buckets have a base level of
679
678
  # encryption configuration that uses server-side encryption with Amazon
680
- # S3 managed keys (SSE-S3). If the destination bucket has a default
681
- # encryption configuration that uses server-side encryption with Key
682
- # Management Service (KMS) keys (SSE-KMS), dual-layer server-side
683
- # encryption with Amazon Web Services KMS keys (DSSE-KMS), or
684
- # server-side encryption with customer-provided encryption keys (SSE-C),
685
- # Amazon S3 uses the corresponding KMS key, or a customer-provided key
686
- # to encrypt the target object copy.
687
- #
688
- # When you perform a `CopyObject` operation, if you want to use a
689
- # different type of encryption setting for the target object, you can
690
- # specify appropriate encryption-related headers to encrypt the target
691
- # object with an Amazon S3 managed key, a KMS key, or a
692
- # customer-provided key. If the encryption setting in your request is
693
- # different from the default encryption configuration of the destination
694
- # bucket, the encryption setting in your request takes precedence.
679
+ # S3 managed keys (SSE-S3). If the destination bucket has a different
680
+ # default encryption configuration, Amazon S3 uses the corresponding
681
+ # encryption key to encrypt the target object copy.
695
682
  #
696
683
  # With server-side encryption, Amazon S3 encrypts your data as it writes
697
684
  # your data to disks in its data centers and decrypts the data when you
698
685
  # access it. For more information about server-side encryption, see
699
686
  # [Using Server-Side Encryption][1] in the *Amazon S3 User Guide*.
700
687
  #
701
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
702
- # managed keys (SSE-S3) (`AES256`) is supported.
703
- #
704
- # </note>
688
+ # <b>General purpose buckets </b>
689
+ #
690
+ # * For general purpose buckets, there are the following supported
691
+ # options for server-side encryption: server-side encryption with Key
692
+ # Management Service (KMS) keys (SSE-KMS), dual-layer server-side
693
+ # encryption with Amazon Web Services KMS keys (DSSE-KMS), and
694
+ # server-side encryption with customer-provided encryption keys
695
+ # (SSE-C). Amazon S3 uses the corresponding KMS key, or a
696
+ # customer-provided key to encrypt the target object copy.
697
+ #
698
+ # * When you perform a `CopyObject` operation, if you want to use a
699
+ # different type of encryption setting for the target object, you can
700
+ # specify appropriate encryption-related headers to encrypt the target
701
+ # object with an Amazon S3 managed key, a KMS key, or a
702
+ # customer-provided key. If the encryption setting in your request is
703
+ # different from the default encryption configuration of the
704
+ # destination bucket, the encryption setting in your request takes
705
+ # precedence.
706
+ #
707
+ # <b>Directory buckets </b>
708
+ #
709
+ # * For directory buckets, there are only two supported options for
710
+ # server-side encryption: server-side encryption with Amazon S3
711
+ # managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS
712
+ # keys (SSE-KMS) (`aws:kms`). We recommend that the bucket's default
713
+ # encryption uses the desired encryption configuration and you don't
714
+ # override the bucket default encryption in your `CreateSession`
715
+ # requests or `PUT` object requests. Then, new objects are
716
+ # automatically encrypted with the desired encryption settings. For
717
+ # more information, see [Protecting data with server-side
718
+ # encryption][2] in the *Amazon S3 User Guide*. For more information
719
+ # about the encryption overriding behaviors in directory buckets, see
720
+ # [Specifying server-side encryption with KMS for new object
721
+ # uploads][3].
722
+ #
723
+ # * To encrypt new object copies to a directory bucket with SSE-KMS, we
724
+ # recommend you specify SSE-KMS as the directory bucket's default
725
+ # encryption configuration with a KMS key (specifically, a [customer
726
+ # managed key][4]). The [Amazon Web Services managed key][5]
727
+ # (`aws/s3`) isn't supported. Your SSE-KMS configuration can only
728
+ # support 1 [customer managed key][4] per directory bucket for the
729
+ # lifetime of the bucket. After you specify a customer managed key for
730
+ # SSE-KMS, you can't override the customer managed key for the
731
+ # bucket's SSE-KMS configuration. Then, when you perform a
732
+ # `CopyObject` operation and want to specify server-side encryption
733
+ # settings for new object copies with SSE-KMS in the
734
+ # encryption-related request headers, you must ensure the encryption
735
+ # key is the same customer managed key that you specified for the
736
+ # directory bucket's default encryption configuration.
705
737
  #
706
738
  #
707
739
  #
708
740
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
741
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
742
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
743
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
744
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
709
745
  # @option options [String] :storage_class
710
746
  # If the `x-amz-storage-class` header is not used, the copied object
711
747
  # will be stored in the `STANDARD` Storage Class by default. The
@@ -796,32 +832,55 @@ module Aws::S3
796
832
  #
797
833
  # </note>
798
834
  # @option options [String] :ssekms_key_id
799
- # Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for object
800
- # encryption. All GET and PUT requests for an object protected by KMS
801
- # will fail if they're not made via SSL or using SigV4. For information
802
- # about configuring any of the officially supported Amazon Web Services
803
- # SDKs and Amazon Web Services CLI, see [Specifying the Signature
804
- # Version in Request Authentication][1] in the *Amazon S3 User Guide*.
805
- #
806
- # <note markdown="1"> This functionality is not supported when the destination bucket is a
807
- # directory bucket.
808
- #
809
- # </note>
835
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
836
+ # object encryption. All GET and PUT requests for an object protected by
837
+ # KMS will fail if they're not made via SSL or using SigV4. For
838
+ # information about configuring any of the officially supported Amazon
839
+ # Web Services SDKs and Amazon Web Services CLI, see [Specifying the
840
+ # Signature Version in Request Authentication][1] in the *Amazon S3 User
841
+ # Guide*.
842
+ #
843
+ # **Directory buckets** - If you specify `x-amz-server-side-encryption`
844
+ # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
845
+ # header is implicitly assigned the ID of the KMS symmetric encryption
846
+ # customer managed key that's configured for your directory bucket's
847
+ # default encryption setting. If you want to specify the `
848
+ # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
849
+ # can only specify it with the ID (Key ID or Key ARN) of the KMS
850
+ # customer managed key that's configured for your directory bucket's
851
+ # default encryption setting. Otherwise, you get an HTTP `400 Bad
852
+ # Request` error. Only use the key ID or key ARN. The key alias format
853
+ # of the KMS key isn't supported. Your SSE-KMS configuration can only
854
+ # support 1 [customer managed key][2] per directory bucket for the
855
+ # lifetime of the bucket. The [Amazon Web Services managed key][3]
856
+ # (`aws/s3`) isn't supported.
810
857
  #
811
858
  #
812
859
  #
813
860
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
861
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
862
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
814
863
  # @option options [String] :ssekms_encryption_context
815
- # Specifies the Amazon Web Services KMS Encryption Context to use for
816
- # object encryption. The value of this header is a base64-encoded UTF-8
817
- # string holding JSON with the encryption context key-value pairs. This
818
- # value must be explicitly added to specify encryption context for
819
- # `CopyObject` requests.
864
+ # Specifies the Amazon Web Services KMS Encryption Context as an
865
+ # additional encryption context to use for the destination object
866
+ # encryption. The value of this header is a base64-encoded UTF-8 string
867
+ # holding JSON with the encryption context key-value pairs.
820
868
  #
821
- # <note markdown="1"> This functionality is not supported when the destination bucket is a
822
- # directory bucket.
869
+ # **General purpose buckets** - This value must be explicitly added to
870
+ # specify encryption context for `CopyObject` requests if you want an
871
+ # additional encryption context for your destination object. The
872
+ # additional encryption context of the source object won't be copied to
873
+ # the destination object. For more information, see [Encryption
874
+ # context][1] in the *Amazon S3 User Guide*.
823
875
  #
824
- # </note>
876
+ # **Directory buckets** - You can optionally provide an explicit
877
+ # encryption context value. The value must match the default encryption
878
+ # context - the bucket Amazon Resource Name (ARN). An additional
879
+ # encryption context value is not supported.
880
+ #
881
+ #
882
+ #
883
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
825
884
  # @option options [Boolean] :bucket_key_enabled
826
885
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
827
886
  # encryption with server-side encryption using Key Management Service
@@ -835,14 +894,19 @@ module Aws::S3
835
894
  # For more information, see [Amazon S3 Bucket Keys][1] in the *Amazon S3
836
895
  # User Guide*.
837
896
  #
838
- # <note markdown="1"> This functionality is not supported when the destination bucket is a
839
- # directory bucket.
897
+ # <note markdown="1"> **Directory buckets** - S3 Bucket Keys aren't supported, when you
898
+ # copy SSE-KMS encrypted objects from general purpose buckets to
899
+ # directory buckets, from directory buckets to general purpose buckets,
900
+ # or between directory buckets, through [CopyObject][2]. In this case,
901
+ # Amazon S3 makes a call to KMS every time a copy request is made for a
902
+ # KMS-encrypted object.
840
903
  #
841
904
  # </note>
842
905
  #
843
906
  #
844
907
  #
845
908
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
909
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
846
910
  # @option options [String] :copy_source_sse_customer_algorithm
847
911
  # Specifies the algorithm to use when decrypting the source object (for
848
912
  # example, `AES256`).
@@ -982,7 +1046,7 @@ module Aws::S3
982
1046
  bucket: @bucket_name,
983
1047
  key: @key
984
1048
  )
985
- resp = Aws::Plugins::UserAgent.feature('resource') do
1049
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
986
1050
  @client.copy_object(options)
987
1051
  end
988
1052
  resp.data
@@ -1048,7 +1112,7 @@ module Aws::S3
1048
1112
  bucket: @bucket_name,
1049
1113
  key: @key
1050
1114
  )
1051
- resp = Aws::Plugins::UserAgent.feature('resource') do
1115
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1052
1116
  @client.delete_object(options)
1053
1117
  end
1054
1118
  resp.data
@@ -1298,13 +1362,22 @@ module Aws::S3
1298
1362
  # fails with the HTTP status code `403 Forbidden` (access denied).
1299
1363
  # @option options [String] :checksum_mode
1300
1364
  # To retrieve the checksum, this mode must be enabled.
1365
+ #
1366
+ # **General purpose buckets** - In addition, if you enable checksum mode
1367
+ # and the object is uploaded with a [checksum][1] and encrypted with an
1368
+ # Key Management Service (KMS) key, you must have permission to use the
1369
+ # `kms:Decrypt` action to retrieve the checksum.
1370
+ #
1371
+ #
1372
+ #
1373
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
1301
1374
  # @return [Types::GetObjectOutput]
1302
1375
  def get(options = {}, &block)
1303
1376
  options = options.merge(
1304
1377
  bucket: @bucket_name,
1305
1378
  key: @key
1306
1379
  )
1307
- resp = Aws::Plugins::UserAgent.feature('resource') do
1380
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1308
1381
  @client.get_object(options, &block)
1309
1382
  end
1310
1383
  resp.data
@@ -1646,10 +1719,52 @@ module Aws::S3
1646
1719
  # The server-side encryption algorithm used when you store this object
1647
1720
  # in Amazon S3 (for example, `AES256`, `aws:kms`).
1648
1721
  #
1649
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
1650
- # managed keys (SSE-S3) (`AES256`) is supported.
1722
+ # * <b>Directory buckets </b> - For directory buckets, there are only
1723
+ # two supported options for server-side encryption: server-side
1724
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
1725
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
1726
+ # recommend that the bucket's default encryption uses the desired
1727
+ # encryption configuration and you don't override the bucket default
1728
+ # encryption in your `CreateSession` requests or `PUT` object
1729
+ # requests. Then, new objects are automatically encrypted with the
1730
+ # desired encryption settings. For more information, see [Protecting
1731
+ # data with server-side encryption][1] in the *Amazon S3 User Guide*.
1732
+ # For more information about the encryption overriding behaviors in
1733
+ # directory buckets, see [Specifying server-side encryption with KMS
1734
+ # for new object uploads][2].
1735
+ #
1736
+ # In the Zonal endpoint API calls (except [CopyObject][3] and
1737
+ # [UploadPartCopy][4]) using the REST API, the encryption request
1738
+ # headers must match the encryption settings that are specified in the
1739
+ # `CreateSession` request. You can't override the values of the
1740
+ # encryption settings (`x-amz-server-side-encryption`,
1741
+ # `x-amz-server-side-encryption-aws-kms-key-id`,
1742
+ # `x-amz-server-side-encryption-context`, and
1743
+ # `x-amz-server-side-encryption-bucket-key-enabled`) that are
1744
+ # specified in the `CreateSession` request. You don't need to
1745
+ # explicitly specify these encryption settings values in Zonal
1746
+ # endpoint API calls, and Amazon S3 will use the encryption settings
1747
+ # values from the `CreateSession` request to protect new objects in
1748
+ # the directory bucket.
1749
+ #
1750
+ # <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
1751
+ # `CreateSession`, the session token refreshes automatically to avoid
1752
+ # service interruptions when a session expires. The CLI or the Amazon
1753
+ # Web Services SDKs use the bucket's default encryption configuration
1754
+ # for the `CreateSession` request. It's not supported to override the
1755
+ # encryption settings values in the `CreateSession` request. So in the
1756
+ # Zonal endpoint API calls (except [CopyObject][3] and
1757
+ # [UploadPartCopy][4]), the encryption request headers must match the
1758
+ # default encryption configuration of the directory bucket.
1651
1759
  #
1652
- # </note>
1760
+ # </note>
1761
+ #
1762
+ #
1763
+ #
1764
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
1765
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
1766
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
1767
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
1653
1768
  # @option options [String] :storage_class
1654
1769
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1655
1770
  # created objects. The STANDARD storage class provides high durability
@@ -1702,32 +1817,74 @@ module Aws::S3
1702
1817
  #
1703
1818
  # </note>
1704
1819
  # @option options [String] :ssekms_key_id
1705
- # Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric
1706
- # encryption customer managed key to use for object encryption.
1707
- #
1708
- # <note markdown="1"> This functionality is not supported for directory buckets.
1709
- #
1710
- # </note>
1820
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
1821
+ # object encryption. If the KMS key doesn't exist in the same account
1822
+ # that's issuing the command, you must use the full Key ARN not the Key
1823
+ # ID.
1824
+ #
1825
+ # **General purpose buckets** - If you specify
1826
+ # `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
1827
+ # header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key
1828
+ # to use. If you specify `x-amz-server-side-encryption:aws:kms` or
1829
+ # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
1830
+ # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
1831
+ # Amazon Web Services managed key (`aws/s3`) to protect the data.
1832
+ #
1833
+ # **Directory buckets** - If you specify `x-amz-server-side-encryption`
1834
+ # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
1835
+ # header is implicitly assigned the ID of the KMS symmetric encryption
1836
+ # customer managed key that's configured for your directory bucket's
1837
+ # default encryption setting. If you want to specify the `
1838
+ # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
1839
+ # can only specify it with the ID (Key ID or Key ARN) of the KMS
1840
+ # customer managed key that's configured for your directory bucket's
1841
+ # default encryption setting. Otherwise, you get an HTTP `400 Bad
1842
+ # Request` error. Only use the key ID or key ARN. The key alias format
1843
+ # of the KMS key isn't supported. Your SSE-KMS configuration can only
1844
+ # support 1 [customer managed key][1] per directory bucket for the
1845
+ # lifetime of the bucket. The [Amazon Web Services managed key][2]
1846
+ # (`aws/s3`) isn't supported.
1847
+ #
1848
+ #
1849
+ #
1850
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
1851
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
1711
1852
  # @option options [String] :ssekms_encryption_context
1712
1853
  # Specifies the Amazon Web Services KMS Encryption Context to use for
1713
- # object encryption. The value of this header is a base64-encoded UTF-8
1714
- # string holding JSON with the encryption context key-value pairs.
1715
- #
1716
- # <note markdown="1"> This functionality is not supported for directory buckets.
1717
- #
1718
- # </note>
1854
+ # object encryption. The value of this header is a Base64-encoded string
1855
+ # of a UTF-8 encoded JSON, which contains the encryption context as
1856
+ # key-value pairs.
1857
+ #
1858
+ # **Directory buckets** - You can optionally provide an explicit
1859
+ # encryption context value. The value must match the default encryption
1860
+ # context - the bucket Amazon Resource Name (ARN). An additional
1861
+ # encryption context value is not supported.
1719
1862
  # @option options [Boolean] :bucket_key_enabled
1720
1863
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1721
1864
  # encryption with server-side encryption using Key Management Service
1722
- # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
1723
- # to use an S3 Bucket Key for object encryption with SSE-KMS.
1865
+ # (KMS) keys (SSE-KMS).
1724
1866
  #
1725
- # Specifying this header with an object action doesn’t affect
1867
+ # **General purpose buckets** - Setting this header to `true` causes
1868
+ # Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
1869
+ # Also, specifying this header with a PUT action doesn't affect
1726
1870
  # bucket-level settings for S3 Bucket Key.
1727
1871
  #
1728
- # <note markdown="1"> This functionality is not supported for directory buckets.
1872
+ # **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
1873
+ # and `PUT` operations in a directory bucket and can’t be disabled. S3
1874
+ # Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects
1875
+ # from general purpose buckets to directory buckets, from directory
1876
+ # buckets to general purpose buckets, or between directory buckets,
1877
+ # through [CopyObject][1], [UploadPartCopy][2], [the Copy operation in
1878
+ # Batch Operations][3], or [the import jobs][4]. In this case, Amazon S3
1879
+ # makes a call to KMS every time a copy request is made for a
1880
+ # KMS-encrypted object.
1729
1881
  #
1730
- # </note>
1882
+ #
1883
+ #
1884
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
1885
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
1886
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
1887
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
1731
1888
  # @option options [String] :request_payer
1732
1889
  # Confirms that the requester knows that they will be charged for the
1733
1890
  # request. Bucket owners need not specify this parameter in their
@@ -1789,7 +1946,7 @@ module Aws::S3
1789
1946
  bucket: @bucket_name,
1790
1947
  key: @key
1791
1948
  )
1792
- resp = Aws::Plugins::UserAgent.feature('resource') do
1949
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
1793
1950
  @client.create_multipart_upload(options)
1794
1951
  end
1795
1952
  MultipartUpload.new(
@@ -1818,6 +1975,7 @@ module Aws::S3
1818
1975
  # checksum_sha1: "ChecksumSHA1",
1819
1976
  # checksum_sha256: "ChecksumSHA256",
1820
1977
  # expires: Time.now,
1978
+ # if_none_match: "IfNoneMatch",
1821
1979
  # grant_full_control: "GrantFullControl",
1822
1980
  # grant_read: "GrantRead",
1823
1981
  # grant_read_acp: "GrantReadACP",
@@ -1925,10 +2083,11 @@ module Aws::S3
1925
2083
  # information about REST request authentication, see [REST
1926
2084
  # Authentication][1].
1927
2085
  #
1928
- # <note markdown="1"> The `Content-MD5` header is required for any request to upload an
1929
- # object with a retention period configured using Amazon S3 Object Lock.
1930
- # For more information about Amazon S3 Object Lock, see [Amazon S3
1931
- # Object Lock Overview][2] in the *Amazon S3 User Guide*.
2086
+ # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
2087
+ # for any request to upload an object with a retention period configured
2088
+ # using Amazon S3 Object Lock. For more information, see [Uploading
2089
+ # objects to an Object Lock enabled bucket ][2] in the *Amazon S3 User
2090
+ # Guide*.
1932
2091
  #
1933
2092
  # </note>
1934
2093
  #
@@ -1939,7 +2098,7 @@ module Aws::S3
1939
2098
  #
1940
2099
  #
1941
2100
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
1942
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html
2101
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object
1943
2102
  # @option options [String] :content_type
1944
2103
  # A standard MIME type describing the format of the contents. For more
1945
2104
  # information, see
@@ -1959,13 +2118,13 @@ module Aws::S3
1959
2118
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
1960
2119
  # the supported algorithm from the following list:
1961
2120
  #
1962
- # * CRC32
2121
+ # * `CRC32`
1963
2122
  #
1964
- # * CRC32C
2123
+ # * `CRC32C`
1965
2124
  #
1966
- # * SHA1
2125
+ # * `SHA1`
1967
2126
  #
1968
- # * SHA256
2127
+ # * `SHA256`
1969
2128
  #
1970
2129
  # For more information, see [Checking object integrity][1] in the
1971
2130
  # *Amazon S3 User Guide*.
@@ -1976,20 +2135,27 @@ module Aws::S3
1976
2135
  # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
1977
2136
  # that matches the provided value in `x-amz-checksum-algorithm `.
1978
2137
  #
1979
- # <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
1980
- # is the default checksum algorithm that's used for performance.
2138
+ # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
2139
+ # for any request to upload an object with a retention period configured
2140
+ # using Amazon S3 Object Lock. For more information, see [Uploading
2141
+ # objects to an Object Lock enabled bucket ][2] in the *Amazon S3 User
2142
+ # Guide*.
1981
2143
  #
1982
2144
  # </note>
1983
2145
  #
2146
+ # For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
2147
+ # is the default checksum algorithm that's used for performance.
2148
+ #
1984
2149
  #
1985
2150
  #
1986
2151
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
2152
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object
1987
2153
  # @option options [String] :checksum_crc32
1988
2154
  # This header can be used as a data integrity check to verify that the
1989
2155
  # data received is the same data that was originally sent. This header
1990
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
1991
- # more information, see [Checking object integrity][1] in the *Amazon S3
1992
- # User Guide*.
2156
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
2157
+ # For more information, see [Checking object integrity][1] in the
2158
+ # *Amazon S3 User Guide*.
1993
2159
  #
1994
2160
  #
1995
2161
  #
@@ -1997,7 +2163,7 @@ module Aws::S3
1997
2163
  # @option options [String] :checksum_crc32c
1998
2164
  # This header can be used as a data integrity check to verify that the
1999
2165
  # data received is the same data that was originally sent. This header
2000
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
2166
+ # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
2001
2167
  # For more information, see [Checking object integrity][1] in the
2002
2168
  # *Amazon S3 User Guide*.
2003
2169
  #
@@ -2032,6 +2198,24 @@ module Aws::S3
2032
2198
  #
2033
2199
  #
2034
2200
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
2201
+ # @option options [String] :if_none_match
2202
+ # Uploads the object only if the object key name does not already exist
2203
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
2204
+ # Precondition Failed` error.
2205
+ #
2206
+ # If a conflicting operation occurs during the upload S3 returns a `409
2207
+ # ConditionalRequestConflict` response. On a 409 failure you should
2208
+ # retry the upload.
2209
+ #
2210
+ # Expects the '*' (asterisk) character.
2211
+ #
2212
+ # For more information about conditional requests, see [RFC 7232][1], or
2213
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
2214
+ #
2215
+ #
2216
+ #
2217
+ # [1]: https://tools.ietf.org/html/rfc7232
2218
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
2035
2219
  # @option options [String] :grant_full_control
2036
2220
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
2037
2221
  # object.
@@ -2072,25 +2256,65 @@ module Aws::S3
2072
2256
  # object in Amazon S3 (for example, `AES256`, `aws:kms`,
2073
2257
  # `aws:kms:dsse`).
2074
2258
  #
2075
- # <b>General purpose buckets </b> - You have four mutually exclusive
2076
- # options to protect data using server-side encryption in Amazon S3,
2077
- # depending on how you choose to manage the encryption keys.
2078
- # Specifically, the encryption key options are Amazon S3 managed keys
2079
- # (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
2080
- # customer-provided keys (SSE-C). Amazon S3 encrypts data with
2081
- # server-side encryption by using Amazon S3 managed keys (SSE-S3) by
2082
- # default. You can optionally tell Amazon S3 to encrypt data at rest by
2083
- # using server-side encryption with other key options. For more
2084
- # information, see [Using Server-Side Encryption][1] in the *Amazon S3
2085
- # User Guide*.
2259
+ # * <b>General purpose buckets </b> - You have four mutually exclusive
2260
+ # options to protect data using server-side encryption in Amazon S3,
2261
+ # depending on how you choose to manage the encryption keys.
2262
+ # Specifically, the encryption key options are Amazon S3 managed keys
2263
+ # (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
2264
+ # customer-provided keys (SSE-C). Amazon S3 encrypts data with
2265
+ # server-side encryption by using Amazon S3 managed keys (SSE-S3) by
2266
+ # default. You can optionally tell Amazon S3 to encrypt data at rest
2267
+ # by using server-side encryption with other key options. For more
2268
+ # information, see [Using Server-Side Encryption][1] in the *Amazon S3
2269
+ # User Guide*.
2270
+ #
2271
+ # * <b>Directory buckets </b> - For directory buckets, there are only
2272
+ # two supported options for server-side encryption: server-side
2273
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
2274
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
2275
+ # recommend that the bucket's default encryption uses the desired
2276
+ # encryption configuration and you don't override the bucket default
2277
+ # encryption in your `CreateSession` requests or `PUT` object
2278
+ # requests. Then, new objects are automatically encrypted with the
2279
+ # desired encryption settings. For more information, see [Protecting
2280
+ # data with server-side encryption][2] in the *Amazon S3 User Guide*.
2281
+ # For more information about the encryption overriding behaviors in
2282
+ # directory buckets, see [Specifying server-side encryption with KMS
2283
+ # for new object uploads][3].
2284
+ #
2285
+ # In the Zonal endpoint API calls (except [CopyObject][4] and
2286
+ # [UploadPartCopy][5]) using the REST API, the encryption request
2287
+ # headers must match the encryption settings that are specified in the
2288
+ # `CreateSession` request. You can't override the values of the
2289
+ # encryption settings (`x-amz-server-side-encryption`,
2290
+ # `x-amz-server-side-encryption-aws-kms-key-id`,
2291
+ # `x-amz-server-side-encryption-context`, and
2292
+ # `x-amz-server-side-encryption-bucket-key-enabled`) that are
2293
+ # specified in the `CreateSession` request. You don't need to
2294
+ # explicitly specify these encryption settings values in Zonal
2295
+ # endpoint API calls, and Amazon S3 will use the encryption settings
2296
+ # values from the `CreateSession` request to protect new objects in
2297
+ # the directory bucket.
2298
+ #
2299
+ # <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
2300
+ # `CreateSession`, the session token refreshes automatically to avoid
2301
+ # service interruptions when a session expires. The CLI or the Amazon
2302
+ # Web Services SDKs use the bucket's default encryption configuration
2303
+ # for the `CreateSession` request. It's not supported to override the
2304
+ # encryption settings values in the `CreateSession` request. So in the
2305
+ # Zonal endpoint API calls (except [CopyObject][4] and
2306
+ # [UploadPartCopy][5]), the encryption request headers must match the
2307
+ # default encryption configuration of the directory bucket.
2086
2308
  #
2087
- # <b>Directory buckets </b> - For directory buckets, only the
2088
- # server-side encryption with Amazon S3 managed keys (SSE-S3) (`AES256`)
2089
- # value is supported.
2309
+ # </note>
2090
2310
  #
2091
2311
  #
2092
2312
  #
2093
2313
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
2314
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
2315
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
2316
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
2317
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2094
2318
  # @option options [String] :storage_class
2095
2319
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
2096
2320
  # created objects. The STANDARD storage class provides high durability
@@ -2164,44 +2388,86 @@ module Aws::S3
2164
2388
  #
2165
2389
  # </note>
2166
2390
  # @option options [String] :ssekms_key_id
2167
- # If `x-amz-server-side-encryption` has a valid value of `aws:kms` or
2168
- # `aws:kms:dsse`, this header specifies the ID (Key ID, Key ARN, or Key
2169
- # Alias) of the Key Management Service (KMS) symmetric encryption
2170
- # customer managed key that was used for the object. If you specify
2171
- # `x-amz-server-side-encryption:aws:kms` or
2172
- # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide`
2173
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
2174
- # Amazon Web Services managed key (`aws/s3`) to protect the data. If the
2175
- # KMS key does not exist in the same account that's issuing the
2176
- # command, you must use the full ARN and not just the ID.
2391
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
2392
+ # object encryption. If the KMS key doesn't exist in the same account
2393
+ # that's issuing the command, you must use the full Key ARN not the Key
2394
+ # ID.
2395
+ #
2396
+ # **General purpose buckets** - If you specify
2397
+ # `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
2398
+ # header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key
2399
+ # to use. If you specify `x-amz-server-side-encryption:aws:kms` or
2400
+ # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
2401
+ # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
2402
+ # Amazon Web Services managed key (`aws/s3`) to protect the data.
2403
+ #
2404
+ # **Directory buckets** - If you specify `x-amz-server-side-encryption`
2405
+ # with `aws:kms`, the ` x-amz-server-side-encryption-aws-kms-key-id`
2406
+ # header is implicitly assigned the ID of the KMS symmetric encryption
2407
+ # customer managed key that's configured for your directory bucket's
2408
+ # default encryption setting. If you want to specify the `
2409
+ # x-amz-server-side-encryption-aws-kms-key-id` header explicitly, you
2410
+ # can only specify it with the ID (Key ID or Key ARN) of the KMS
2411
+ # customer managed key that's configured for your directory bucket's
2412
+ # default encryption setting. Otherwise, you get an HTTP `400 Bad
2413
+ # Request` error. Only use the key ID or key ARN. The key alias format
2414
+ # of the KMS key isn't supported. Your SSE-KMS configuration can only
2415
+ # support 1 [customer managed key][1] per directory bucket for the
2416
+ # lifetime of the bucket. The [Amazon Web Services managed key][2]
2417
+ # (`aws/s3`) isn't supported.
2418
+ #
2419
+ #
2420
+ #
2421
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
2422
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
2423
+ # @option options [String] :ssekms_encryption_context
2424
+ # Specifies the Amazon Web Services KMS Encryption Context as an
2425
+ # additional encryption context to use for object encryption. The value
2426
+ # of this header is a Base64-encoded string of a UTF-8 encoded JSON,
2427
+ # which contains the encryption context as key-value pairs. This value
2428
+ # is stored as object metadata and automatically gets passed on to
2429
+ # Amazon Web Services KMS for future `GetObject` operations on this
2430
+ # object.
2177
2431
  #
2178
- # <note markdown="1"> This functionality is not supported for directory buckets.
2432
+ # **General purpose buckets** - This value must be explicitly added
2433
+ # during `CopyObject` operations if you want an additional encryption
2434
+ # context for your object. For more information, see [Encryption
2435
+ # context][1] in the *Amazon S3 User Guide*.
2179
2436
  #
2180
- # </note>
2181
- # @option options [String] :ssekms_encryption_context
2182
- # Specifies the Amazon Web Services KMS Encryption Context to use for
2183
- # object encryption. The value of this header is a base64-encoded UTF-8
2184
- # string holding JSON with the encryption context key-value pairs. This
2185
- # value is stored as object metadata and automatically gets passed on to
2186
- # Amazon Web Services KMS for future `GetObject` or `CopyObject`
2187
- # operations on this object. This value must be explicitly added during
2188
- # `CopyObject` operations.
2437
+ # **Directory buckets** - You can optionally provide an explicit
2438
+ # encryption context value. The value must match the default encryption
2439
+ # context - the bucket Amazon Resource Name (ARN). An additional
2440
+ # encryption context value is not supported.
2189
2441
  #
2190
- # <note markdown="1"> This functionality is not supported for directory buckets.
2191
2442
  #
2192
- # </note>
2443
+ #
2444
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
2193
2445
  # @option options [Boolean] :bucket_key_enabled
2194
2446
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
2195
2447
  # encryption with server-side encryption using Key Management Service
2196
- # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
2197
- # to use an S3 Bucket Key for object encryption with SSE-KMS.
2448
+ # (KMS) keys (SSE-KMS).
2198
2449
  #
2199
- # Specifying this header with a PUT action doesn’t affect bucket-level
2200
- # settings for S3 Bucket Key.
2450
+ # **General purpose buckets** - Setting this header to `true` causes
2451
+ # Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
2452
+ # Also, specifying this header with a PUT action doesn't affect
2453
+ # bucket-level settings for S3 Bucket Key.
2201
2454
  #
2202
- # <note markdown="1"> This functionality is not supported for directory buckets.
2455
+ # **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
2456
+ # and `PUT` operations in a directory bucket and can’t be disabled. S3
2457
+ # Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects
2458
+ # from general purpose buckets to directory buckets, from directory
2459
+ # buckets to general purpose buckets, or between directory buckets,
2460
+ # through [CopyObject][1], [UploadPartCopy][2], [the Copy operation in
2461
+ # Batch Operations][3], or [the import jobs][4]. In this case, Amazon S3
2462
+ # makes a call to KMS every time a copy request is made for a
2463
+ # KMS-encrypted object.
2203
2464
  #
2204
- # </note>
2465
+ #
2466
+ #
2467
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
2468
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2469
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
2470
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
2205
2471
  # @option options [String] :request_payer
2206
2472
  # Confirms that the requester knows that they will be charged for the
2207
2473
  # request. Bucket owners need not specify this parameter in their
@@ -2260,7 +2526,7 @@ module Aws::S3
2260
2526
  bucket: @bucket_name,
2261
2527
  key: @key
2262
2528
  )
2263
- resp = Aws::Plugins::UserAgent.feature('resource') do
2529
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2264
2530
  @client.put_object(options)
2265
2531
  end
2266
2532
  resp.data
@@ -2401,7 +2667,7 @@ module Aws::S3
2401
2667
  bucket: @bucket_name,
2402
2668
  key: @key
2403
2669
  )
2404
- resp = Aws::Plugins::UserAgent.feature('resource') do
2670
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2405
2671
  @client.restore_object(options)
2406
2672
  end
2407
2673
  resp.data
@@ -2593,13 +2859,13 @@ module Aws::S3
2593
2859
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
2594
2860
  # the supported algorithm from the following list:
2595
2861
  #
2596
- # * CRC32
2862
+ # * `CRC32`
2597
2863
  #
2598
- # * CRC32C
2864
+ # * `CRC32C`
2599
2865
  #
2600
- # * SHA1
2866
+ # * `SHA1`
2601
2867
  #
2602
- # * SHA256
2868
+ # * `SHA256`
2603
2869
  #
2604
2870
  # For more information, see [Checking object integrity][1] in the
2605
2871
  # *Amazon S3 User Guide*.
@@ -2628,7 +2894,7 @@ module Aws::S3
2628
2894
  key: item.key
2629
2895
  }
2630
2896
  end
2631
- Aws::Plugins::UserAgent.feature('resource') do
2897
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
2632
2898
  batch[0].client.delete_objects(params)
2633
2899
  end
2634
2900
  end
@@ -2640,3 +2906,6 @@ module Aws::S3
2640
2906
  end
2641
2907
  end
2642
2908
  end
2909
+
2910
+ # Load customizations if they exist
2911
+ require 'aws-sdk-s3/customizations/object_summary'