aws-sdk-s3 1.150.0 → 1.169.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 (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'