aws-sdk-s3 1.114.0 → 1.136.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +163 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +123 -61
  5. data/lib/aws-sdk-s3/bucket_acl.rb +9 -3
  6. data/lib/aws-sdk-s3/bucket_cors.rb +12 -4
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +12 -4
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -4
  9. data/lib/aws-sdk-s3/bucket_logging.rb +9 -3
  10. data/lib/aws-sdk-s3/bucket_notification.rb +9 -3
  11. data/lib/aws-sdk-s3/bucket_policy.rb +12 -4
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +9 -3
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +12 -4
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +15 -5
  15. data/lib/aws-sdk-s3/bucket_website.rb +12 -4
  16. data/lib/aws-sdk-s3/client.rb +2084 -1724
  17. data/lib/aws-sdk-s3/client_api.rb +213 -189
  18. data/lib/aws-sdk-s3/customizations/bucket.rb +23 -47
  19. data/lib/aws-sdk-s3/customizations/errors.rb +27 -0
  20. data/lib/aws-sdk-s3/customizations/object.rb +95 -19
  21. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  22. data/lib/aws-sdk-s3/customizations.rb +2 -0
  23. data/lib/aws-sdk-s3/encryption/client.rb +6 -2
  24. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  25. data/lib/aws-sdk-s3/encryptionV2/client.rb +6 -2
  26. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -0
  27. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  28. data/lib/aws-sdk-s3/endpoint_parameters.rb +146 -0
  29. data/lib/aws-sdk-s3/endpoint_provider.rb +509 -0
  30. data/lib/aws-sdk-s3/endpoints.rb +2150 -0
  31. data/lib/aws-sdk-s3/file_downloader.rb +170 -44
  32. data/lib/aws-sdk-s3/file_uploader.rb +8 -6
  33. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +41 -13
  34. data/lib/aws-sdk-s3/multipart_upload.rb +27 -13
  35. data/lib/aws-sdk-s3/multipart_upload_part.rb +20 -10
  36. data/lib/aws-sdk-s3/object.rb +156 -110
  37. data/lib/aws-sdk-s3/object_acl.rb +14 -6
  38. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  39. data/lib/aws-sdk-s3/object_multipart_copier.rb +41 -19
  40. data/lib/aws-sdk-s3/object_summary.rb +149 -94
  41. data/lib/aws-sdk-s3/object_version.rb +55 -21
  42. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -50
  43. data/lib/aws-sdk-s3/plugins/arn.rb +0 -184
  44. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  45. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  46. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -49
  47. data/lib/aws-sdk-s3/plugins/endpoints.rb +262 -0
  48. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  49. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +0 -29
  50. data/lib/aws-sdk-s3/plugins/s3_signer.rb +32 -126
  51. data/lib/aws-sdk-s3/presigned_post.rb +61 -59
  52. data/lib/aws-sdk-s3/presigner.rb +24 -35
  53. data/lib/aws-sdk-s3/resource.rb +7 -3
  54. data/lib/aws-sdk-s3/types.rb +858 -4125
  55. data/lib/aws-sdk-s3.rb +5 -1
  56. metadata +12 -11
  57. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  58. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +0 -68
  59. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  60. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -74
  61. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
@@ -239,11 +239,8 @@ module Aws::S3
239
239
  data[:website_redirect_location]
240
240
  end
241
241
 
242
- # If the object is stored using server-side encryption either with an
243
- # Amazon Web Services KMS key or an Amazon S3-managed encryption key,
244
- # the response includes this header with the value of the server-side
245
- # encryption algorithm used when storing this object in Amazon S3 (for
246
- # example, AES256, aws:kms).
242
+ # The server-side encryption algorithm used when storing this object in
243
+ # Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
247
244
  # @return [String]
248
245
  def server_side_encryption
249
246
  data[:server_side_encryption]
@@ -272,16 +269,16 @@ module Aws::S3
272
269
  data[:sse_customer_key_md5]
273
270
  end
274
271
 
275
- # If present, specifies the ID of the Amazon Web Services Key Management
276
- # Service (Amazon Web Services KMS) symmetric customer managed key that
277
- # was used for the object.
272
+ # If present, specifies the ID of the Key Management Service (KMS)
273
+ # symmetric encryption customer managed key that was used for the
274
+ # object.
278
275
  # @return [String]
279
276
  def ssekms_key_id
280
277
  data[:ssekms_key_id]
281
278
  end
282
279
 
283
280
  # Indicates whether the object uses an S3 Bucket Key for server-side
284
- # encryption with Amazon Web Services KMS (SSE-KMS).
281
+ # encryption with Key Management Service (KMS) keys (SSE-KMS).
285
282
  # @return [Boolean]
286
283
  def bucket_key_enabled
287
284
  data[:bucket_key_enabled]
@@ -410,10 +407,12 @@ module Aws::S3
410
407
  #
411
408
  # @return [self]
412
409
  def load
413
- resp = @client.head_object(
410
+ resp = Aws::Plugins::UserAgent.feature('resource') do
411
+ @client.head_object(
414
412
  bucket: @bucket_name,
415
413
  key: @key
416
414
  )
415
+ end
417
416
  @data = resp.data
418
417
  self
419
418
  end
@@ -458,8 +457,10 @@ module Aws::S3
458
457
  options, params = separate_params_and_options(options)
459
458
  waiter = Waiters::ObjectExists.new(options)
460
459
  yield_waiter_and_warn(waiter, &block) if block_given?
461
- waiter.wait(params.merge(bucket: @bucket_name,
460
+ Aws::Plugins::UserAgent.feature('resource') do
461
+ waiter.wait(params.merge(bucket: @bucket_name,
462
462
  key: @key))
463
+ end
463
464
  Object.new({
464
465
  bucket_name: @bucket_name,
465
466
  key: @key,
@@ -477,8 +478,10 @@ module Aws::S3
477
478
  options, params = separate_params_and_options(options)
478
479
  waiter = Waiters::ObjectNotExists.new(options)
479
480
  yield_waiter_and_warn(waiter, &block) if block_given?
480
- waiter.wait(params.merge(bucket: @bucket_name,
481
+ Aws::Plugins::UserAgent.feature('resource') do
482
+ waiter.wait(params.merge(bucket: @bucket_name,
481
483
  key: @key))
484
+ end
482
485
  Object.new({
483
486
  bucket_name: @bucket_name,
484
487
  key: @key,
@@ -580,7 +583,9 @@ module Aws::S3
580
583
  :retry
581
584
  end
582
585
  end
583
- Aws::Waiters::Waiter.new(options).wait({})
586
+ Aws::Plugins::UserAgent.feature('resource') do
587
+ Aws::Waiters::Waiter.new(options).wait({})
588
+ end
584
589
  end
585
590
 
586
591
  # @!group Actions
@@ -610,8 +615,8 @@ module Aws::S3
610
615
  # },
611
616
  # metadata_directive: "COPY", # accepts COPY, REPLACE
612
617
  # tagging_directive: "COPY", # accepts COPY, REPLACE
613
- # server_side_encryption: "AES256", # accepts AES256, aws:kms
614
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
618
+ # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
619
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW
615
620
  # website_redirect_location: "WebsiteRedirectLocation",
616
621
  # sse_customer_algorithm: "SSECustomerAlgorithm",
617
622
  # sse_customer_key: "SSECustomerKey",
@@ -658,7 +663,7 @@ module Aws::S3
658
663
  # @option options [required, String] :copy_source
659
664
  # Specifies the source object for the copy operation. You specify the
660
665
  # value in one of two formats, depending on whether you want to access
661
- # the source object through an [access point][1]\:
666
+ # the source object through an [access point][1]:
662
667
  #
663
668
  # * For objects not accessed through an access point, specify the name
664
669
  # of the source bucket and the key of the source object, separated by
@@ -740,14 +745,15 @@ module Aws::S3
740
745
  # or replaced with tag-set provided in the request.
741
746
  # @option options [String] :server_side_encryption
742
747
  # The server-side encryption algorithm used when storing this object in
743
- # Amazon S3 (for example, AES256, aws:kms).
748
+ # Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
744
749
  # @option options [String] :storage_class
745
- # By default, Amazon S3 uses the STANDARD Storage Class to store newly
746
- # created objects. The STANDARD storage class provides high durability
747
- # and high availability. Depending on performance needs, you can specify
748
- # a different Storage Class. Amazon S3 on Outposts only uses the
749
- # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
750
- # in the *Amazon S3 User Guide*.
750
+ # If the `x-amz-storage-class` header is not used, the copied object
751
+ # will be stored in the STANDARD Storage Class by default. The STANDARD
752
+ # storage class provides high durability and high availability.
753
+ # Depending on performance needs, you can specify a different Storage
754
+ # Class. Amazon S3 on Outposts only uses the OUTPOSTS Storage Class. For
755
+ # more information, see [Storage Classes][1] in the *Amazon S3 User
756
+ # Guide*.
751
757
  #
752
758
  #
753
759
  #
@@ -755,7 +761,10 @@ module Aws::S3
755
761
  # @option options [String] :website_redirect_location
756
762
  # If the bucket is configured as a website, redirects requests for this
757
763
  # object to another object in the same bucket or to an external URL.
758
- # Amazon S3 stores the value of this header in the object metadata.
764
+ # Amazon S3 stores the value of this header in the object metadata. This
765
+ # value is unique to each object and is not copied when using the
766
+ # `x-amz-metadata-directive` header. Instead, you may opt to provide
767
+ # this header in combination with the directive.
759
768
  # @option options [String] :sse_customer_algorithm
760
769
  # Specifies the algorithm to use to when encrypting the object (for
761
770
  # example, AES256).
@@ -770,13 +779,12 @@ module Aws::S3
770
779
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
771
780
  # ensure that the encryption key was transmitted without error.
772
781
  # @option options [String] :ssekms_key_id
773
- # Specifies the Amazon Web Services KMS key ID to use for object
774
- # encryption. All GET and PUT requests for an object protected by Amazon
775
- # Web Services KMS will fail if not made via SSL or using SigV4. For
776
- # information about configuring using any of the officially supported
777
- # Amazon Web Services SDKs and Amazon Web Services CLI, see [Specifying
778
- # the Signature Version in Request Authentication][1] in the *Amazon S3
779
- # User Guide*.
782
+ # Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for object
783
+ # encryption. All GET and PUT requests for an object protected by KMS
784
+ # will fail if they're not made via SSL or using SigV4. For information
785
+ # about configuring any of the officially supported Amazon Web Services
786
+ # SDKs and Amazon Web Services CLI, see [Specifying the Signature
787
+ # Version in Request Authentication][1] in the *Amazon S3 User Guide*.
780
788
  #
781
789
  #
782
790
  #
@@ -787,9 +795,9 @@ module Aws::S3
787
795
  # string holding JSON with the encryption context key-value pairs.
788
796
  # @option options [Boolean] :bucket_key_enabled
789
797
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
790
- # encryption with server-side encryption using AWS KMS (SSE-KMS).
791
- # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
792
- # for object encryption with SSE-KMS.
798
+ # encryption with server-side encryption using Key Management Service
799
+ # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
800
+ # to use an S3 Bucket Key for object encryption with SSE-KMS.
793
801
  #
794
802
  # Specifying this header with a COPY action doesn’t affect bucket-level
795
803
  # settings for S3 Bucket Key.
@@ -807,9 +815,11 @@ module Aws::S3
807
815
  # @option options [String] :request_payer
808
816
  # Confirms that the requester knows that they will be charged for the
809
817
  # request. Bucket owners need not specify this parameter in their
810
- # requests. For information about downloading objects from Requester
811
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
812
- # in the *Amazon S3 User Guide*.
818
+ # requests. If either the source or destination Amazon S3 bucket has
819
+ # Requester Pays enabled, the requester will pay for corresponding
820
+ # charges to copy the object. For information about downloading objects
821
+ # from Requester Pays buckets, see [Downloading Objects in Requester
822
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
813
823
  #
814
824
  #
815
825
  #
@@ -839,7 +849,9 @@ module Aws::S3
839
849
  bucket: @bucket_name,
840
850
  key: @key
841
851
  )
842
- resp = @client.copy_object(options)
852
+ resp = Aws::Plugins::UserAgent.feature('resource') do
853
+ @client.copy_object(options)
854
+ end
843
855
  resp.data
844
856
  end
845
857
 
@@ -863,9 +875,11 @@ module Aws::S3
863
875
  # @option options [String] :request_payer
864
876
  # Confirms that the requester knows that they will be charged for the
865
877
  # request. Bucket owners need not specify this parameter in their
866
- # requests. For information about downloading objects from Requester
867
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
868
- # in the *Amazon S3 User Guide*.
878
+ # requests. If either the source or destination Amazon S3 bucket has
879
+ # Requester Pays enabled, the requester will pay for corresponding
880
+ # charges to copy the object. For information about downloading objects
881
+ # from Requester Pays buckets, see [Downloading Objects in Requester
882
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
869
883
  #
870
884
  #
871
885
  #
@@ -884,7 +898,9 @@ module Aws::S3
884
898
  bucket: @bucket_name,
885
899
  key: @key
886
900
  )
887
- resp = @client.delete_object(options)
901
+ resp = Aws::Plugins::UserAgent.feature('resource') do
902
+ @client.delete_object(options)
903
+ end
888
904
  resp.data
889
905
  end
890
906
 
@@ -927,7 +943,7 @@ module Aws::S3
927
943
  # @option options [String] :range
928
944
  # Downloads the specified range bytes of an object. For more information
929
945
  # about the HTTP Range header, see
930
- # [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
946
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-range][1].
931
947
  #
932
948
  # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
933
949
  # `GET` request.
@@ -936,7 +952,7 @@ module Aws::S3
936
952
  #
937
953
  #
938
954
  #
939
- # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
955
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-range
940
956
  # @option options [String] :response_cache_control
941
957
  # Sets the `Cache-Control` header of the response.
942
958
  # @option options [String] :response_content_disposition
@@ -967,9 +983,11 @@ module Aws::S3
967
983
  # @option options [String] :request_payer
968
984
  # Confirms that the requester knows that they will be charged for the
969
985
  # request. Bucket owners need not specify this parameter in their
970
- # requests. For information about downloading objects from Requester
971
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
972
- # in the *Amazon S3 User Guide*.
986
+ # requests. If either the source or destination Amazon S3 bucket has
987
+ # Requester Pays enabled, the requester will pay for corresponding
988
+ # charges to copy the object. For information about downloading objects
989
+ # from Requester Pays buckets, see [Downloading Objects in Requester
990
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
973
991
  #
974
992
  #
975
993
  #
@@ -991,7 +1009,9 @@ module Aws::S3
991
1009
  bucket: @bucket_name,
992
1010
  key: @key
993
1011
  )
994
- resp = @client.get_object(options, &block)
1012
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1013
+ @client.get_object(options, &block)
1014
+ end
995
1015
  resp.data
996
1016
  end
997
1017
 
@@ -1012,8 +1032,8 @@ module Aws::S3
1012
1032
  # metadata: {
1013
1033
  # "MetadataKey" => "MetadataValue",
1014
1034
  # },
1015
- # server_side_encryption: "AES256", # accepts AES256, aws:kms
1016
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
1035
+ # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1036
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW
1017
1037
  # website_redirect_location: "WebsiteRedirectLocation",
1018
1038
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1019
1039
  # sse_customer_key: "SSECustomerKey",
@@ -1069,7 +1089,7 @@ module Aws::S3
1069
1089
  # A map of metadata to store with the object in S3.
1070
1090
  # @option options [String] :server_side_encryption
1071
1091
  # The server-side encryption algorithm used when storing this object in
1072
- # Amazon S3 (for example, AES256, aws:kms).
1092
+ # Amazon S3 (for example, `AES256`, `aws:kms`).
1073
1093
  # @option options [String] :storage_class
1074
1094
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1075
1095
  # created objects. The STANDARD storage class provides high durability
@@ -1099,13 +1119,13 @@ module Aws::S3
1099
1119
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1100
1120
  # ensure that the encryption key was transmitted without error.
1101
1121
  # @option options [String] :ssekms_key_id
1102
- # Specifies the ID of the symmetric customer managed key to use for
1103
- # object encryption. All GET and PUT requests for an object protected by
1104
- # Amazon Web Services KMS will fail if not made via SSL or using SigV4.
1105
- # For information about configuring using any of the officially
1106
- # supported Amazon Web Services SDKs and Amazon Web Services CLI, see
1107
- # [Specifying the Signature Version in Request Authentication][1] in the
1108
- # *Amazon S3 User Guide*.
1122
+ # Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric
1123
+ # encryption customer managed key to use for object encryption. All GET
1124
+ # and PUT requests for an object protected by KMS will fail if they're
1125
+ # not made via SSL or using SigV4. For information about configuring any
1126
+ # of the officially supported Amazon Web Services SDKs and Amazon Web
1127
+ # Services CLI, see [Specifying the Signature Version in Request
1128
+ # Authentication][1] in the *Amazon S3 User Guide*.
1109
1129
  #
1110
1130
  #
1111
1131
  #
@@ -1116,18 +1136,20 @@ module Aws::S3
1116
1136
  # string holding JSON with the encryption context key-value pairs.
1117
1137
  # @option options [Boolean] :bucket_key_enabled
1118
1138
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1119
- # encryption with server-side encryption using AWS KMS (SSE-KMS).
1120
- # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1121
- # for object encryption with SSE-KMS.
1139
+ # encryption with server-side encryption using Key Management Service
1140
+ # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
1141
+ # to use an S3 Bucket Key for object encryption with SSE-KMS.
1122
1142
  #
1123
1143
  # Specifying this header with an object action doesn’t affect
1124
1144
  # bucket-level settings for S3 Bucket Key.
1125
1145
  # @option options [String] :request_payer
1126
1146
  # Confirms that the requester knows that they will be charged for the
1127
1147
  # request. Bucket owners need not specify this parameter in their
1128
- # requests. For information about downloading objects from Requester
1129
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1130
- # in the *Amazon S3 User Guide*.
1148
+ # requests. If either the source or destination Amazon S3 bucket has
1149
+ # Requester Pays enabled, the requester will pay for corresponding
1150
+ # charges to copy the object. For information about downloading objects
1151
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1152
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1131
1153
  #
1132
1154
  #
1133
1155
  #
@@ -1161,7 +1183,9 @@ module Aws::S3
1161
1183
  bucket: @bucket_name,
1162
1184
  key: @key
1163
1185
  )
1164
- resp = @client.create_multipart_upload(options)
1186
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1187
+ @client.create_multipart_upload(options)
1188
+ end
1165
1189
  MultipartUpload.new(
1166
1190
  bucket_name: @bucket_name,
1167
1191
  object_key: @key,
@@ -1195,8 +1219,8 @@ module Aws::S3
1195
1219
  # metadata: {
1196
1220
  # "MetadataKey" => "MetadataValue",
1197
1221
  # },
1198
- # server_side_encryption: "AES256", # accepts AES256, aws:kms
1199
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
1222
+ # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1223
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW
1200
1224
  # website_redirect_location: "WebsiteRedirectLocation",
1201
1225
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1202
1226
  # sse_customer_key: "SSECustomerKey",
@@ -1234,30 +1258,30 @@ module Aws::S3
1234
1258
  # @option options [String] :content_disposition
1235
1259
  # Specifies presentational information for the object. For more
1236
1260
  # information, see
1237
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1][1].
1261
+ # [https://www.rfc-editor.org/rfc/rfc6266#section-4][1].
1238
1262
  #
1239
1263
  #
1240
1264
  #
1241
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1
1265
+ # [1]: https://www.rfc-editor.org/rfc/rfc6266#section-4
1242
1266
  # @option options [String] :content_encoding
1243
1267
  # Specifies what content encodings have been applied to the object and
1244
1268
  # thus what decoding mechanisms must be applied to obtain the media-type
1245
1269
  # referenced by the Content-Type header field. For more information, see
1246
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11][1].
1270
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding][1].
1247
1271
  #
1248
1272
  #
1249
1273
  #
1250
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
1274
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding
1251
1275
  # @option options [String] :content_language
1252
1276
  # The language the content is in.
1253
1277
  # @option options [Integer] :content_length
1254
1278
  # Size of the body in bytes. This parameter is useful when the size of
1255
1279
  # the body cannot be determined automatically. For more information, see
1256
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13][1].
1280
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length][1].
1257
1281
  #
1258
1282
  #
1259
1283
  #
1260
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
1284
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
1261
1285
  # @option options [String] :content_md5
1262
1286
  # The base64-encoded 128-bit MD5 digest of the message (without the
1263
1287
  # headers) according to RFC 1864. This header can be used as a message
@@ -1273,11 +1297,11 @@ module Aws::S3
1273
1297
  # @option options [String] :content_type
1274
1298
  # A standard MIME type describing the format of the contents. For more
1275
1299
  # information, see
1276
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17][1].
1300
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type][1].
1277
1301
  #
1278
1302
  #
1279
1303
  #
1280
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
1304
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type
1281
1305
  # @option options [String] :checksum_algorithm
1282
1306
  # Indicates the algorithm used to create the checksum for the object
1283
1307
  # when using the SDK. This header will not provide any additional
@@ -1336,11 +1360,11 @@ module Aws::S3
1336
1360
  # @option options [Time,DateTime,Date,Integer,String] :expires
1337
1361
  # The date and time at which the object is no longer cacheable. For more
1338
1362
  # information, see
1339
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21][1].
1363
+ # [https://www.rfc-editor.org/rfc/rfc7234#section-5.3][1].
1340
1364
  #
1341
1365
  #
1342
1366
  #
1343
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21
1367
+ # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
1344
1368
  # @option options [String] :grant_full_control
1345
1369
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
1346
1370
  # object.
@@ -1362,7 +1386,7 @@ module Aws::S3
1362
1386
  # A map of metadata to store with the object in S3.
1363
1387
  # @option options [String] :server_side_encryption
1364
1388
  # The server-side encryption algorithm used when storing this object in
1365
- # Amazon S3 (for example, AES256, aws:kms).
1389
+ # Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
1366
1390
  # @option options [String] :storage_class
1367
1391
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1368
1392
  # created objects. The STANDARD storage class provides high durability
@@ -1413,33 +1437,39 @@ module Aws::S3
1413
1437
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1414
1438
  # ensure that the encryption key was transmitted without error.
1415
1439
  # @option options [String] :ssekms_key_id
1416
- # If `x-amz-server-side-encryption` is present and has the value of
1417
- # `aws:kms`, this header specifies the ID of the Amazon Web Services Key
1418
- # Management Service (Amazon Web Services KMS) symmetrical customer
1419
- # managed key that was used for the object. If you specify
1420
- # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1440
+ # If `x-amz-server-side-encryption` has a valid value of `aws:kms` or
1441
+ # `aws:kms:dsse`, this header specifies the ID (Key ID, Key ARN, or Key
1442
+ # Alias) of the Key Management Service (KMS) symmetric encryption
1443
+ # customer managed key that was used for the object. If you specify
1444
+ # `x-amz-server-side-encryption:aws:kms` or
1445
+ # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide`
1421
1446
  # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
1422
- # Amazon Web Services managed key to protect the data. If the KMS key
1423
- # does not exist in the same account issuing the command, you must use
1424
- # the full ARN and not just the ID.
1447
+ # Amazon Web Services managed key (`aws/s3`) to protect the data. If the
1448
+ # KMS key does not exist in the same account that's issuing the
1449
+ # command, you must use the full ARN and not just the ID.
1425
1450
  # @option options [String] :ssekms_encryption_context
1426
1451
  # Specifies the Amazon Web Services KMS Encryption Context to use for
1427
1452
  # object encryption. The value of this header is a base64-encoded UTF-8
1428
- # string holding JSON with the encryption context key-value pairs.
1453
+ # string holding JSON with the encryption context key-value pairs. This
1454
+ # value is stored as object metadata and automatically gets passed on to
1455
+ # Amazon Web Services KMS for future `GetObject` or `CopyObject`
1456
+ # operations on this object.
1429
1457
  # @option options [Boolean] :bucket_key_enabled
1430
1458
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1431
- # encryption with server-side encryption using AWS KMS (SSE-KMS).
1432
- # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1433
- # for object encryption with SSE-KMS.
1459
+ # encryption with server-side encryption using Key Management Service
1460
+ # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
1461
+ # to use an S3 Bucket Key for object encryption with SSE-KMS.
1434
1462
  #
1435
1463
  # Specifying this header with a PUT action doesn’t affect bucket-level
1436
1464
  # settings for S3 Bucket Key.
1437
1465
  # @option options [String] :request_payer
1438
1466
  # Confirms that the requester knows that they will be charged for the
1439
1467
  # request. Bucket owners need not specify this parameter in their
1440
- # requests. For information about downloading objects from Requester
1441
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1442
- # in the *Amazon S3 User Guide*.
1468
+ # requests. If either the source or destination Amazon S3 bucket has
1469
+ # Requester Pays enabled, the requester will pay for corresponding
1470
+ # charges to copy the object. For information about downloading objects
1471
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1472
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1443
1473
  #
1444
1474
  #
1445
1475
  #
@@ -1469,7 +1499,9 @@ module Aws::S3
1469
1499
  bucket: @bucket_name,
1470
1500
  key: @key
1471
1501
  )
1472
- resp = @client.put_object(options)
1502
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1503
+ @client.put_object(options)
1504
+ end
1473
1505
  resp.data
1474
1506
  end
1475
1507
 
@@ -1523,7 +1555,7 @@ module Aws::S3
1523
1555
  # bucket_name: "BucketName", # required
1524
1556
  # prefix: "LocationPrefix", # required
1525
1557
  # encryption: {
1526
- # encryption_type: "AES256", # required, accepts AES256, aws:kms
1558
+ # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
1527
1559
  # kms_key_id: "SSEKMSKeyId",
1528
1560
  # kms_context: "KMSContext",
1529
1561
  # },
@@ -1554,7 +1586,7 @@ module Aws::S3
1554
1586
  # value: "MetadataValue",
1555
1587
  # },
1556
1588
  # ],
1557
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
1589
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW
1558
1590
  # },
1559
1591
  # },
1560
1592
  # },
@@ -1570,9 +1602,11 @@ module Aws::S3
1570
1602
  # @option options [String] :request_payer
1571
1603
  # Confirms that the requester knows that they will be charged for the
1572
1604
  # request. Bucket owners need not specify this parameter in their
1573
- # requests. For information about downloading objects from Requester
1574
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1575
- # in the *Amazon S3 User Guide*.
1605
+ # requests. If either the source or destination Amazon S3 bucket has
1606
+ # Requester Pays enabled, the requester will pay for corresponding
1607
+ # charges to copy the object. For information about downloading objects
1608
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1609
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1576
1610
  #
1577
1611
  #
1578
1612
  #
@@ -1602,7 +1636,9 @@ module Aws::S3
1602
1636
  bucket: @bucket_name,
1603
1637
  key: @key
1604
1638
  )
1605
- resp = @client.restore_object(options)
1639
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1640
+ @client.restore_object(options)
1641
+ end
1606
1642
  resp.data
1607
1643
  end
1608
1644
 
@@ -1637,8 +1673,10 @@ module Aws::S3
1637
1673
  # Return the object only if it has not been modified since the specified
1638
1674
  # time; otherwise, return a 412 (precondition failed) error.
1639
1675
  # @option options [String] :range
1640
- # Because `HeadObject` returns only the metadata for an object, this
1641
- # parameter has no effect.
1676
+ # HeadObject returns only the metadata for an object. If the Range is
1677
+ # satisfiable, only the `ContentLength` is affected in the response. If
1678
+ # the Range is not satisfiable, S3 returns a `416 - Requested Range Not
1679
+ # Satisfiable` error.
1642
1680
  # @option options [String] :version_id
1643
1681
  # VersionId used to reference a specific version of the object.
1644
1682
  # @option options [String] :sse_customer_algorithm
@@ -1657,9 +1695,11 @@ module Aws::S3
1657
1695
  # @option options [String] :request_payer
1658
1696
  # Confirms that the requester knows that they will be charged for the
1659
1697
  # request. Bucket owners need not specify this parameter in their
1660
- # requests. For information about downloading objects from Requester
1661
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1662
- # in the *Amazon S3 User Guide*.
1698
+ # requests. If either the source or destination Amazon S3 bucket has
1699
+ # Requester Pays enabled, the requester will pay for corresponding
1700
+ # charges to copy the object. For information about downloading objects
1701
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1702
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1663
1703
  #
1664
1704
  #
1665
1705
  #
@@ -1686,7 +1726,9 @@ module Aws::S3
1686
1726
  bucket: @bucket_name,
1687
1727
  key: @key
1688
1728
  )
1689
- resp = @client.head_object(options)
1729
+ resp = Aws::Plugins::UserAgent.feature('resource') do
1730
+ @client.head_object(options)
1731
+ end
1690
1732
  resp.data
1691
1733
  end
1692
1734
 
@@ -1814,9 +1856,11 @@ module Aws::S3
1814
1856
  # @option options [String] :request_payer
1815
1857
  # Confirms that the requester knows that they will be charged for the
1816
1858
  # request. Bucket owners need not specify this parameter in their
1817
- # requests. For information about downloading objects from Requester
1818
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1819
- # in the *Amazon S3 User Guide*.
1859
+ # requests. If either the source or destination Amazon S3 bucket has
1860
+ # Requester Pays enabled, the requester will pay for corresponding
1861
+ # charges to copy the object. For information about downloading objects
1862
+ # from Requester Pays buckets, see [Downloading Objects in Requester
1863
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
1820
1864
  #
1821
1865
  #
1822
1866
  #
@@ -1859,7 +1903,9 @@ module Aws::S3
1859
1903
  key: item.key
1860
1904
  }
1861
1905
  end
1862
- batch[0].client.delete_objects(params)
1906
+ Aws::Plugins::UserAgent.feature('resource') do
1907
+ batch[0].client.delete_objects(params)
1908
+ end
1863
1909
  end
1864
1910
  nil
1865
1911
  end
@@ -75,10 +75,12 @@ module Aws::S3
75
75
  #
76
76
  # @return [self]
77
77
  def load
78
- resp = @client.get_object_acl(
78
+ resp = Aws::Plugins::UserAgent.feature('resource') do
79
+ @client.get_object_acl(
79
80
  bucket: @bucket_name,
80
81
  key: @object_key
81
82
  )
83
+ end
82
84
  @data = resp.data
83
85
  self
84
86
  end
@@ -193,7 +195,9 @@ module Aws::S3
193
195
  :retry
194
196
  end
195
197
  end
196
- Aws::Waiters::Waiter.new(options).wait({})
198
+ Aws::Plugins::UserAgent.feature('resource') do
199
+ Aws::Waiters::Waiter.new(options).wait({})
200
+ end
197
201
  end
198
202
 
199
203
  # @!group Actions
@@ -295,9 +299,11 @@ module Aws::S3
295
299
  # @option options [String] :request_payer
296
300
  # Confirms that the requester knows that they will be charged for the
297
301
  # request. Bucket owners need not specify this parameter in their
298
- # requests. For information about downloading objects from Requester
299
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
300
- # in the *Amazon S3 User Guide*.
302
+ # requests. If either the source or destination Amazon S3 bucket has
303
+ # Requester Pays enabled, the requester will pay for corresponding
304
+ # charges to copy the object. For information about downloading objects
305
+ # from Requester Pays buckets, see [Downloading Objects in Requester
306
+ # Pays Buckets][1] in the *Amazon S3 User Guide*.
301
307
  #
302
308
  #
303
309
  #
@@ -314,7 +320,9 @@ module Aws::S3
314
320
  bucket: @bucket_name,
315
321
  key: @object_key
316
322
  )
317
- resp = @client.put_object_acl(options)
323
+ resp = Aws::Plugins::UserAgent.feature('resource') do
324
+ @client.put_object_acl(options)
325
+ end
318
326
  resp.data
319
327
  end
320
328