aws-sdk-s3 1.188.0 → 1.205.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +119 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +43 -4
  5. data/lib/aws-sdk-s3/bucket_versioning.rb +33 -0
  6. data/lib/aws-sdk-s3/client.rb +1943 -252
  7. data/lib/aws-sdk-s3/client_api.rb +289 -0
  8. data/lib/aws-sdk-s3/customizations/object.rb +76 -86
  9. data/lib/aws-sdk-s3/customizations.rb +3 -1
  10. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  11. data/lib/aws-sdk-s3/endpoint_parameters.rb +17 -17
  12. data/lib/aws-sdk-s3/endpoint_provider.rb +220 -50
  13. data/lib/aws-sdk-s3/endpoints.rb +110 -0
  14. data/lib/aws-sdk-s3/errors.rb +11 -0
  15. data/lib/aws-sdk-s3/file_downloader.rb +197 -134
  16. data/lib/aws-sdk-s3/file_uploader.rb +9 -13
  17. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  18. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  19. data/lib/aws-sdk-s3/multipart_file_uploader.rb +92 -107
  20. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +96 -107
  21. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  22. data/lib/aws-sdk-s3/object.rb +110 -35
  23. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -1
  24. data/lib/aws-sdk-s3/object_summary.rb +72 -20
  25. data/lib/aws-sdk-s3/object_version.rb +7 -9
  26. data/lib/aws-sdk-s3/plugins/endpoints.rb +1 -1
  27. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  28. data/lib/aws-sdk-s3/resource.rb +6 -0
  29. data/lib/aws-sdk-s3/transfer_manager.rb +303 -0
  30. data/lib/aws-sdk-s3/types.rb +1490 -189
  31. data/lib/aws-sdk-s3.rb +1 -1
  32. data/sig/bucket.rbs +12 -3
  33. data/sig/client.rbs +170 -31
  34. data/sig/errors.rbs +2 -0
  35. data/sig/multipart_upload.rbs +1 -1
  36. data/sig/object.rbs +15 -10
  37. data/sig/object_summary.rbs +11 -9
  38. data/sig/resource.rbs +8 -1
  39. data/sig/types.rbs +215 -29
  40. metadata +7 -4
@@ -136,10 +136,10 @@ module Aws::S3
136
136
  end
137
137
 
138
138
  # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
139
- # checksum is only be present if the checksum was uploaded with the
140
- # object. When you use an API operation on an object that was uploaded
141
- # using multipart uploads, this value may not be a direct checksum value
142
- # of the full object. Instead, it's a calculation based on the checksum
139
+ # checksum is only present if the checksum was uploaded with the object.
140
+ # When you use an API operation on an object that was uploaded using
141
+ # multipart uploads, this value may not be a direct checksum value of
142
+ # the full object. Instead, it's a calculation based on the checksum
143
143
  # values of each individual part. For more information about how
144
144
  # checksums are calculated with multipart uploads, see [ Checking object
145
145
  # integrity][1] in the *Amazon S3 User Guide*.
@@ -181,8 +181,8 @@ module Aws::S3
181
181
  data[:checksum_crc64nvme]
182
182
  end
183
183
 
184
- # The Base64 encoded, 160-bit `SHA1` digest of the object. This will
185
- # only be present if the object was uploaded with the object. When you
184
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This checksum
185
+ # is only present if the checksum was uploaded with the object. When you
186
186
  # use the API operation on an object that was uploaded using multipart
187
187
  # uploads, this value may not be a direct checksum value of the full
188
188
  # object. Instead, it's a calculation based on the checksum values of
@@ -198,14 +198,14 @@ module Aws::S3
198
198
  data[:checksum_sha1]
199
199
  end
200
200
 
201
- # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
202
- # only be present if the object was uploaded with the object. When you
203
- # use an API operation on an object that was uploaded using multipart
204
- # uploads, this value may not be a direct checksum value of the full
205
- # object. Instead, it's a calculation based on the checksum values of
206
- # each individual part. For more information about how checksums are
207
- # calculated with multipart uploads, see [ Checking object integrity][1]
208
- # in the *Amazon S3 User Guide*.
201
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
202
+ # checksum is only present if the checksum was uploaded with the object.
203
+ # When you use an API operation on an object that was uploaded using
204
+ # multipart uploads, this value may not be a direct checksum value of
205
+ # the full object. Instead, it's a calculation based on the checksum
206
+ # values of each individual part. For more information about how
207
+ # checksums are calculated with multipart uploads, see [ Checking object
208
+ # integrity][1] in the *Amazon S3 User Guide*.
209
209
  #
210
210
  #
211
211
  #
@@ -324,7 +324,12 @@ module Aws::S3
324
324
  end
325
325
 
326
326
  # The server-side encryption algorithm used when you store this object
327
- # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
327
+ # in Amazon S3 or Amazon FSx.
328
+ #
329
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3 access
330
+ # points, the only valid server side encryption option is `aws:fsx`.
331
+ #
332
+ # </note>
328
333
  # @return [String]
329
334
  def server_side_encryption
330
335
  data[:server_side_encryption]
@@ -470,6 +475,24 @@ module Aws::S3
470
475
  data[:parts_count]
471
476
  end
472
477
 
478
+ # The number of tags, if any, on the object, when you have the relevant
479
+ # permission to read object tags.
480
+ #
481
+ # You can use [GetObjectTagging][1] to retrieve the tag set associated
482
+ # with an object.
483
+ #
484
+ # <note markdown="1"> This functionality is not supported for directory buckets.
485
+ #
486
+ # </note>
487
+ #
488
+ #
489
+ #
490
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html
491
+ # @return [Integer]
492
+ def tag_count
493
+ data[:tag_count]
494
+ end
495
+
473
496
  # The Object Lock mode, if any, that's in effect for this object. This
474
497
  # header is only returned if the requester has the
475
498
  # `s3:GetObjectRetention` permission. For more information about S3
@@ -734,13 +757,15 @@ module Aws::S3
734
757
  # grant_read: "GrantRead",
735
758
  # grant_read_acp: "GrantReadACP",
736
759
  # grant_write_acp: "GrantWriteACP",
760
+ # if_match: "IfMatch",
761
+ # if_none_match: "IfNoneMatch",
737
762
  # metadata: {
738
763
  # "MetadataKey" => "MetadataValue",
739
764
  # },
740
765
  # metadata_directive: "COPY", # accepts COPY, REPLACE
741
766
  # tagging_directive: "COPY", # accepts COPY, REPLACE
742
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
743
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
767
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
768
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
744
769
  # website_redirect_location: "WebsiteRedirectLocation",
745
770
  # sse_customer_algorithm: "SSECustomerAlgorithm",
746
771
  # sse_customer_key: "SSECustomerKey",
@@ -990,6 +1015,35 @@ module Aws::S3
990
1015
  # * This functionality is not supported for Amazon S3 on Outposts.
991
1016
  #
992
1017
  # </note>
1018
+ # @option options [String] :if_match
1019
+ # Copies the object if the entity tag (ETag) of the destination object
1020
+ # matches the specified tag. If the ETag values do not match, the
1021
+ # operation returns a `412 Precondition Failed` error. If a concurrent
1022
+ # operation occurs during the upload S3 returns a `409
1023
+ # ConditionalRequestConflict` response. On a 409 failure you should
1024
+ # fetch the object's ETag and retry the upload.
1025
+ #
1026
+ # Expects the ETag value as a string.
1027
+ #
1028
+ # For more information about conditional requests, see [RFC 7232][1].
1029
+ #
1030
+ #
1031
+ #
1032
+ # [1]: https://tools.ietf.org/html/rfc7232
1033
+ # @option options [String] :if_none_match
1034
+ # Copies the object only if the object key name at the destination does
1035
+ # not already exist in the bucket specified. Otherwise, Amazon S3
1036
+ # returns a `412 Precondition Failed` error. If a concurrent operation
1037
+ # occurs during the upload S3 returns a `409 ConditionalRequestConflict`
1038
+ # response. On a 409 failure you should retry the upload.
1039
+ #
1040
+ # Expects the '*' (asterisk) character.
1041
+ #
1042
+ # For more information about conditional requests, see [RFC 7232][1].
1043
+ #
1044
+ #
1045
+ #
1046
+ # [1]: https://tools.ietf.org/html/rfc7232
993
1047
  # @option options [Hash<String,String>] :metadata
994
1048
  # A map of metadata to store with the object in S3.
995
1049
  # @option options [String] :metadata_directive
@@ -1130,6 +1184,14 @@ module Aws::S3
1130
1184
  # key is the same customer managed key that you specified for the
1131
1185
  # directory bucket's default encryption configuration.
1132
1186
  #
1187
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
1188
+ # in Amazon FSx file systems using S3 access points, the only valid
1189
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
1190
+ # systems have encryption configured by default and are encrypted at
1191
+ # rest. Data is automatically encrypted before being written to the
1192
+ # file system, and automatically decrypted as it is read. These
1193
+ # processes are handled transparently by Amazon FSx.
1194
+ #
1133
1195
  #
1134
1196
  #
1135
1197
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
@@ -1504,17 +1566,15 @@ module Aws::S3
1504
1566
  # you provide does not match the actual owner of the bucket, the request
1505
1567
  # fails with the HTTP status code `403 Forbidden` (access denied).
1506
1568
  # @option options [String] :if_match
1507
- # The `If-Match` header field makes the request method conditional on
1508
- # ETags. If the ETag value does not match, the operation returns a `412
1509
- # Precondition Failed` error. If the ETag matches or if the object
1510
- # doesn't exist, the operation will return a `204 Success (No Content)
1511
- # response`.
1512
- #
1513
- # For more information about conditional requests, see [RFC 7232][1].
1569
+ # Deletes the object if the ETag (entity tag) value provided during the
1570
+ # delete operation matches the ETag of the object in S3. If the ETag
1571
+ # values do not match, the operation returns a `412 Precondition Failed`
1572
+ # error.
1514
1573
  #
1515
- # <note markdown="1"> This functionality is only supported for directory buckets.
1574
+ # Expects the ETag value as a string. `If-Match` does accept a string
1575
+ # value of an '*' (asterisk) character to denote a match of any ETag.
1516
1576
  #
1517
- # </note>
1577
+ # For more information about conditional requests, see [RFC 7232][1].
1518
1578
  #
1519
1579
  #
1520
1580
  #
@@ -1828,8 +1888,8 @@ module Aws::S3
1828
1888
  # metadata: {
1829
1889
  # "MetadataKey" => "MetadataValue",
1830
1890
  # },
1831
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1832
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
1891
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
1892
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
1833
1893
  # website_redirect_location: "WebsiteRedirectLocation",
1834
1894
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1835
1895
  # sse_customer_key: "SSECustomerKey",
@@ -2146,7 +2206,7 @@ module Aws::S3
2146
2206
  # A map of metadata to store with the object in S3.
2147
2207
  # @option options [String] :server_side_encryption
2148
2208
  # The server-side encryption algorithm used when you store this object
2149
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
2209
+ # in Amazon S3 or Amazon FSx.
2150
2210
  #
2151
2211
  # * <b>Directory buckets </b> - For directory buckets, there are only
2152
2212
  # two supported options for server-side encryption: server-side
@@ -2188,6 +2248,14 @@ module Aws::S3
2188
2248
  #
2189
2249
  # </note>
2190
2250
  #
2251
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2252
+ # in Amazon FSx file systems using S3 access points, the only valid
2253
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2254
+ # systems have encryption configured by default and are encrypted at
2255
+ # rest. Data is automatically encrypted before being written to the
2256
+ # file system, and automatically decrypted as it is read. These
2257
+ # processes are handled transparently by Amazon FSx.
2258
+ #
2191
2259
  #
2192
2260
  #
2193
2261
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
@@ -2421,8 +2489,8 @@ module Aws::S3
2421
2489
  # metadata: {
2422
2490
  # "MetadataKey" => "MetadataValue",
2423
2491
  # },
2424
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
2425
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
2492
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2493
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
2426
2494
  # website_redirect_location: "WebsiteRedirectLocation",
2427
2495
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2428
2496
  # sse_customer_key: "SSECustomerKey",
@@ -2732,8 +2800,7 @@ module Aws::S3
2732
2800
  # A map of metadata to store with the object in S3.
2733
2801
  # @option options [String] :server_side_encryption
2734
2802
  # The server-side encryption algorithm that was used when you store this
2735
- # object in Amazon S3 (for example, `AES256`, `aws:kms`,
2736
- # `aws:kms:dsse`).
2803
+ # object in Amazon S3 or Amazon FSx.
2737
2804
  #
2738
2805
  # * <b>General purpose buckets </b> - You have four mutually exclusive
2739
2806
  # options to protect data using server-side encryption in Amazon S3,
@@ -2787,6 +2854,14 @@ module Aws::S3
2787
2854
  #
2788
2855
  # </note>
2789
2856
  #
2857
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2858
+ # in Amazon FSx file systems using S3 access points, the only valid
2859
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2860
+ # systems have encryption configured by default and are encrypted at
2861
+ # rest. Data is automatically encrypted before being written to the
2862
+ # file system, and automatically decrypted as it is read. These
2863
+ # processes are handled transparently by Amazon FSx.
2864
+ #
2790
2865
  #
2791
2866
  #
2792
2867
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
@@ -3059,7 +3134,7 @@ module Aws::S3
3059
3134
  # bucket_name: "BucketName", # required
3060
3135
  # prefix: "LocationPrefix", # required
3061
3136
  # encryption: {
3062
- # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
3137
+ # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
3063
3138
  # kms_key_id: "SSEKMSKeyId",
3064
3139
  # kms_context: "KMSContext",
3065
3140
  # },
@@ -3090,7 +3165,7 @@ module Aws::S3
3090
3165
  # value: "MetadataValue",
3091
3166
  # },
3092
3167
  # ],
3093
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
3168
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
3094
3169
  # },
3095
3170
  # },
3096
3171
  # },
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'thread'
4
- require 'cgi'
4
+ require "cgi/escape"
5
+ require "cgi/util" if RUBY_VERSION < "3.5"
5
6
 
6
7
  module Aws
7
8
  module S3
@@ -354,13 +354,15 @@ module Aws::S3
354
354
  # grant_read: "GrantRead",
355
355
  # grant_read_acp: "GrantReadACP",
356
356
  # grant_write_acp: "GrantWriteACP",
357
+ # if_match: "IfMatch",
358
+ # if_none_match: "IfNoneMatch",
357
359
  # metadata: {
358
360
  # "MetadataKey" => "MetadataValue",
359
361
  # },
360
362
  # metadata_directive: "COPY", # accepts COPY, REPLACE
361
363
  # tagging_directive: "COPY", # accepts COPY, REPLACE
362
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
363
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
364
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
365
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
364
366
  # website_redirect_location: "WebsiteRedirectLocation",
365
367
  # sse_customer_algorithm: "SSECustomerAlgorithm",
366
368
  # sse_customer_key: "SSECustomerKey",
@@ -610,6 +612,35 @@ module Aws::S3
610
612
  # * This functionality is not supported for Amazon S3 on Outposts.
611
613
  #
612
614
  # </note>
615
+ # @option options [String] :if_match
616
+ # Copies the object if the entity tag (ETag) of the destination object
617
+ # matches the specified tag. If the ETag values do not match, the
618
+ # operation returns a `412 Precondition Failed` error. If a concurrent
619
+ # operation occurs during the upload S3 returns a `409
620
+ # ConditionalRequestConflict` response. On a 409 failure you should
621
+ # fetch the object's ETag and retry the upload.
622
+ #
623
+ # Expects the ETag value as a string.
624
+ #
625
+ # For more information about conditional requests, see [RFC 7232][1].
626
+ #
627
+ #
628
+ #
629
+ # [1]: https://tools.ietf.org/html/rfc7232
630
+ # @option options [String] :if_none_match
631
+ # Copies the object only if the object key name at the destination does
632
+ # not already exist in the bucket specified. Otherwise, Amazon S3
633
+ # returns a `412 Precondition Failed` error. If a concurrent operation
634
+ # occurs during the upload S3 returns a `409 ConditionalRequestConflict`
635
+ # response. On a 409 failure you should retry the upload.
636
+ #
637
+ # Expects the '*' (asterisk) character.
638
+ #
639
+ # For more information about conditional requests, see [RFC 7232][1].
640
+ #
641
+ #
642
+ #
643
+ # [1]: https://tools.ietf.org/html/rfc7232
613
644
  # @option options [Hash<String,String>] :metadata
614
645
  # A map of metadata to store with the object in S3.
615
646
  # @option options [String] :metadata_directive
@@ -750,6 +781,14 @@ module Aws::S3
750
781
  # key is the same customer managed key that you specified for the
751
782
  # directory bucket's default encryption configuration.
752
783
  #
784
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
785
+ # in Amazon FSx file systems using S3 access points, the only valid
786
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
787
+ # systems have encryption configured by default and are encrypted at
788
+ # rest. Data is automatically encrypted before being written to the
789
+ # file system, and automatically decrypted as it is read. These
790
+ # processes are handled transparently by Amazon FSx.
791
+ #
753
792
  #
754
793
  #
755
794
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
@@ -1124,17 +1163,15 @@ module Aws::S3
1124
1163
  # you provide does not match the actual owner of the bucket, the request
1125
1164
  # fails with the HTTP status code `403 Forbidden` (access denied).
1126
1165
  # @option options [String] :if_match
1127
- # The `If-Match` header field makes the request method conditional on
1128
- # ETags. If the ETag value does not match, the operation returns a `412
1129
- # Precondition Failed` error. If the ETag matches or if the object
1130
- # doesn't exist, the operation will return a `204 Success (No Content)
1131
- # response`.
1132
- #
1133
- # For more information about conditional requests, see [RFC 7232][1].
1166
+ # Deletes the object if the ETag (entity tag) value provided during the
1167
+ # delete operation matches the ETag of the object in S3. If the ETag
1168
+ # values do not match, the operation returns a `412 Precondition Failed`
1169
+ # error.
1134
1170
  #
1135
- # <note markdown="1"> This functionality is only supported for directory buckets.
1171
+ # Expects the ETag value as a string. `If-Match` does accept a string
1172
+ # value of an '*' (asterisk) character to denote a match of any ETag.
1136
1173
  #
1137
- # </note>
1174
+ # For more information about conditional requests, see [RFC 7232][1].
1138
1175
  #
1139
1176
  #
1140
1177
  #
@@ -1448,8 +1485,8 @@ module Aws::S3
1448
1485
  # metadata: {
1449
1486
  # "MetadataKey" => "MetadataValue",
1450
1487
  # },
1451
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1452
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
1488
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
1489
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
1453
1490
  # website_redirect_location: "WebsiteRedirectLocation",
1454
1491
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1455
1492
  # sse_customer_key: "SSECustomerKey",
@@ -1766,7 +1803,7 @@ module Aws::S3
1766
1803
  # A map of metadata to store with the object in S3.
1767
1804
  # @option options [String] :server_side_encryption
1768
1805
  # The server-side encryption algorithm used when you store this object
1769
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
1806
+ # in Amazon S3 or Amazon FSx.
1770
1807
  #
1771
1808
  # * <b>Directory buckets </b> - For directory buckets, there are only
1772
1809
  # two supported options for server-side encryption: server-side
@@ -1808,6 +1845,14 @@ module Aws::S3
1808
1845
  #
1809
1846
  # </note>
1810
1847
  #
1848
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
1849
+ # in Amazon FSx file systems using S3 access points, the only valid
1850
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
1851
+ # systems have encryption configured by default and are encrypted at
1852
+ # rest. Data is automatically encrypted before being written to the
1853
+ # file system, and automatically decrypted as it is read. These
1854
+ # processes are handled transparently by Amazon FSx.
1855
+ #
1811
1856
  #
1812
1857
  #
1813
1858
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
@@ -2041,8 +2086,8 @@ module Aws::S3
2041
2086
  # metadata: {
2042
2087
  # "MetadataKey" => "MetadataValue",
2043
2088
  # },
2044
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
2045
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
2089
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2090
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
2046
2091
  # website_redirect_location: "WebsiteRedirectLocation",
2047
2092
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2048
2093
  # sse_customer_key: "SSECustomerKey",
@@ -2352,8 +2397,7 @@ module Aws::S3
2352
2397
  # A map of metadata to store with the object in S3.
2353
2398
  # @option options [String] :server_side_encryption
2354
2399
  # The server-side encryption algorithm that was used when you store this
2355
- # object in Amazon S3 (for example, `AES256`, `aws:kms`,
2356
- # `aws:kms:dsse`).
2400
+ # object in Amazon S3 or Amazon FSx.
2357
2401
  #
2358
2402
  # * <b>General purpose buckets </b> - You have four mutually exclusive
2359
2403
  # options to protect data using server-side encryption in Amazon S3,
@@ -2407,6 +2451,14 @@ module Aws::S3
2407
2451
  #
2408
2452
  # </note>
2409
2453
  #
2454
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2455
+ # in Amazon FSx file systems using S3 access points, the only valid
2456
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2457
+ # systems have encryption configured by default and are encrypted at
2458
+ # rest. Data is automatically encrypted before being written to the
2459
+ # file system, and automatically decrypted as it is read. These
2460
+ # processes are handled transparently by Amazon FSx.
2461
+ #
2410
2462
  #
2411
2463
  #
2412
2464
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
@@ -2679,7 +2731,7 @@ module Aws::S3
2679
2731
  # bucket_name: "BucketName", # required
2680
2732
  # prefix: "LocationPrefix", # required
2681
2733
  # encryption: {
2682
- # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
2734
+ # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2683
2735
  # kms_key_id: "SSEKMSKeyId",
2684
2736
  # kms_context: "KMSContext",
2685
2737
  # },
@@ -2710,7 +2762,7 @@ module Aws::S3
2710
2762
  # value: "MetadataValue",
2711
2763
  # },
2712
2764
  # ],
2713
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
2765
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
2714
2766
  # },
2715
2767
  # },
2716
2768
  # },
@@ -312,17 +312,15 @@ module Aws::S3
312
312
  # you provide does not match the actual owner of the bucket, the request
313
313
  # fails with the HTTP status code `403 Forbidden` (access denied).
314
314
  # @option options [String] :if_match
315
- # The `If-Match` header field makes the request method conditional on
316
- # ETags. If the ETag value does not match, the operation returns a `412
317
- # Precondition Failed` error. If the ETag matches or if the object
318
- # doesn't exist, the operation will return a `204 Success (No Content)
319
- # response`.
320
- #
321
- # For more information about conditional requests, see [RFC 7232][1].
315
+ # Deletes the object if the ETag (entity tag) value provided during the
316
+ # delete operation matches the ETag of the object in S3. If the ETag
317
+ # values do not match, the operation returns a `412 Precondition Failed`
318
+ # error.
322
319
  #
323
- # <note markdown="1"> This functionality is only supported for directory buckets.
320
+ # Expects the ETag value as a string. `If-Match` does accept a string
321
+ # value of an '*' (asterisk) character to denote a match of any ETag.
324
322
  #
325
- # </note>
323
+ # For more information about conditional requests, see [RFC 7232][1].
326
324
  #
327
325
  #
328
326
  #
@@ -25,7 +25,7 @@ The endpoint provider used to resolve endpoints. Any object that responds to
25
25
 
26
26
  option(
27
27
  :disable_s3_express_session_auth,
28
- doc_type: 'Boolean',
28
+ doc_type: 'boolean',
29
29
  docstring: <<~DOCS) do |cfg|
30
30
  Parameter to indicate whether S3Express session auth should be disabled
31
31
  DOCS
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'uri'
4
- require 'cgi'
4
+ require "cgi/escape"
5
+ require "cgi/util" if RUBY_VERSION < "3.5"
5
6
 
6
7
  module Aws
7
8
  module S3
@@ -50,6 +50,12 @@ module Aws::S3
50
50
  # data_redundancy: "SingleAvailabilityZone", # accepts SingleAvailabilityZone, SingleLocalZone
51
51
  # type: "Directory", # accepts Directory
52
52
  # },
53
+ # tags: [
54
+ # {
55
+ # key: "ObjectKey", # required
56
+ # value: "Value", # required
57
+ # },
58
+ # ],
53
59
  # },
54
60
  # grant_full_control: "GrantFullControl",
55
61
  # grant_read: "GrantRead",