aws-sdk-s3 1.186.1 → 1.191.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.
@@ -81,6 +81,7 @@ module Aws::S3
81
81
  ChecksumSHA1 = Shapes::StringShape.new(name: 'ChecksumSHA1')
82
82
  ChecksumSHA256 = Shapes::StringShape.new(name: 'ChecksumSHA256')
83
83
  ChecksumType = Shapes::StringShape.new(name: 'ChecksumType')
84
+ ClientToken = Shapes::StringShape.new(name: 'ClientToken')
84
85
  CloudFunction = Shapes::StringShape.new(name: 'CloudFunction')
85
86
  CloudFunctionConfiguration = Shapes::StructureShape.new(name: 'CloudFunctionConfiguration')
86
87
  CloudFunctionInvocationRole = Shapes::StringShape.new(name: 'CloudFunctionInvocationRole')
@@ -284,6 +285,7 @@ module Aws::S3
284
285
  HttpErrorCodeReturnedEquals = Shapes::StringShape.new(name: 'HttpErrorCodeReturnedEquals')
285
286
  HttpRedirectCode = Shapes::StringShape.new(name: 'HttpRedirectCode')
286
287
  ID = Shapes::StringShape.new(name: 'ID')
288
+ IdempotencyParameterMismatch = Shapes::StructureShape.new(name: 'IdempotencyParameterMismatch')
287
289
  IfMatch = Shapes::StringShape.new(name: 'IfMatch')
288
290
  IfMatchInitiatedTime = Shapes::TimestampShape.new(name: 'IfMatchInitiatedTime', timestampFormat: "rfc822")
289
291
  IfMatchLastModifiedTime = Shapes::TimestampShape.new(name: 'IfMatchLastModifiedTime', timestampFormat: "rfc822")
@@ -525,6 +527,13 @@ module Aws::S3
525
527
  Redirect = Shapes::StructureShape.new(name: 'Redirect')
526
528
  RedirectAllRequestsTo = Shapes::StructureShape.new(name: 'RedirectAllRequestsTo')
527
529
  Region = Shapes::StringShape.new(name: 'Region')
530
+ RenameObjectOutput = Shapes::StructureShape.new(name: 'RenameObjectOutput')
531
+ RenameObjectRequest = Shapes::StructureShape.new(name: 'RenameObjectRequest')
532
+ RenameSource = Shapes::StringShape.new(name: 'RenameSource')
533
+ RenameSourceIfMatch = Shapes::StringShape.new(name: 'RenameSourceIfMatch')
534
+ RenameSourceIfModifiedSince = Shapes::TimestampShape.new(name: 'RenameSourceIfModifiedSince', timestampFormat: "rfc822")
535
+ RenameSourceIfNoneMatch = Shapes::StringShape.new(name: 'RenameSourceIfNoneMatch')
536
+ RenameSourceIfUnmodifiedSince = Shapes::TimestampShape.new(name: 'RenameSourceIfUnmodifiedSince', timestampFormat: "rfc822")
528
537
  ReplaceKeyPrefixWith = Shapes::StringShape.new(name: 'ReplaceKeyPrefixWith')
529
538
  ReplaceKeyWith = Shapes::StringShape.new(name: 'ReplaceKeyWith')
530
539
  ReplicaKmsKeyID = Shapes::StringShape.new(name: 'ReplicaKmsKeyID')
@@ -1035,6 +1044,7 @@ module Aws::S3
1035
1044
 
1036
1045
  DeleteBucketIntelligentTieringConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
1037
1046
  DeleteBucketIntelligentTieringConfigurationRequest.add_member(:id, Shapes::ShapeRef.new(shape: IntelligentTieringId, required: true, location: "querystring", location_name: "id"))
1047
+ DeleteBucketIntelligentTieringConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1038
1048
  DeleteBucketIntelligentTieringConfigurationRequest.struct_class = Types::DeleteBucketIntelligentTieringConfigurationRequest
1039
1049
 
1040
1050
  DeleteBucketInventoryConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
@@ -1246,6 +1256,7 @@ module Aws::S3
1246
1256
 
1247
1257
  GetBucketIntelligentTieringConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
1248
1258
  GetBucketIntelligentTieringConfigurationRequest.add_member(:id, Shapes::ShapeRef.new(shape: IntelligentTieringId, required: true, location: "querystring", location_name: "id"))
1259
+ GetBucketIntelligentTieringConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1249
1260
  GetBucketIntelligentTieringConfigurationRequest.struct_class = Types::GetBucketIntelligentTieringConfigurationRequest
1250
1261
 
1251
1262
  GetBucketInventoryConfigurationOutput.add_member(:inventory_configuration, Shapes::ShapeRef.new(shape: InventoryConfiguration, location_name: "InventoryConfiguration"))
@@ -1619,6 +1630,7 @@ module Aws::S3
1619
1630
  HeadObjectOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1620
1631
  HeadObjectOutput.add_member(:replication_status, Shapes::ShapeRef.new(shape: ReplicationStatus, location: "header", location_name: "x-amz-replication-status"))
1621
1632
  HeadObjectOutput.add_member(:parts_count, Shapes::ShapeRef.new(shape: PartsCount, location: "header", location_name: "x-amz-mp-parts-count"))
1633
+ HeadObjectOutput.add_member(:tag_count, Shapes::ShapeRef.new(shape: TagCount, location: "header", location_name: "x-amz-tagging-count"))
1622
1634
  HeadObjectOutput.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
1623
1635
  HeadObjectOutput.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
1624
1636
  HeadObjectOutput.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
@@ -1647,6 +1659,8 @@ module Aws::S3
1647
1659
  HeadObjectRequest.add_member(:checksum_mode, Shapes::ShapeRef.new(shape: ChecksumMode, location: "header", location_name: "x-amz-checksum-mode"))
1648
1660
  HeadObjectRequest.struct_class = Types::HeadObjectRequest
1649
1661
 
1662
+ IdempotencyParameterMismatch.struct_class = Types::IdempotencyParameterMismatch
1663
+
1650
1664
  IndexDocument.add_member(:suffix, Shapes::ShapeRef.new(shape: Suffix, required: true, location_name: "Suffix"))
1651
1665
  IndexDocument.struct_class = Types::IndexDocument
1652
1666
 
@@ -1785,6 +1799,7 @@ module Aws::S3
1785
1799
 
1786
1800
  ListBucketIntelligentTieringConfigurationsRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
1787
1801
  ListBucketIntelligentTieringConfigurationsRequest.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location: "querystring", location_name: "continuation-token"))
1802
+ ListBucketIntelligentTieringConfigurationsRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1788
1803
  ListBucketIntelligentTieringConfigurationsRequest.struct_class = Types::ListBucketIntelligentTieringConfigurationsRequest
1789
1804
 
1790
1805
  ListBucketInventoryConfigurationsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location_name: "ContinuationToken"))
@@ -2227,6 +2242,7 @@ module Aws::S3
2227
2242
 
2228
2243
  PutBucketIntelligentTieringConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
2229
2244
  PutBucketIntelligentTieringConfigurationRequest.add_member(:id, Shapes::ShapeRef.new(shape: IntelligentTieringId, required: true, location: "querystring", location_name: "id"))
2245
+ PutBucketIntelligentTieringConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
2230
2246
  PutBucketIntelligentTieringConfigurationRequest.add_member(:intelligent_tiering_configuration, Shapes::ShapeRef.new(shape: IntelligentTieringConfiguration, required: true, location_name: "IntelligentTieringConfiguration", metadata: {"xmlNamespace" => {"uri" => "http://s3.amazonaws.com/doc/2006-03-01/"}}))
2231
2247
  PutBucketIntelligentTieringConfigurationRequest.struct_class = Types::PutBucketIntelligentTieringConfigurationRequest
2232
2248
  PutBucketIntelligentTieringConfigurationRequest[:payload] = :intelligent_tiering_configuration
@@ -2299,6 +2315,7 @@ module Aws::S3
2299
2315
  PutBucketOwnershipControlsRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
2300
2316
  PutBucketOwnershipControlsRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
2301
2317
  PutBucketOwnershipControlsRequest.add_member(:ownership_controls, Shapes::ShapeRef.new(shape: OwnershipControls, required: true, location_name: "OwnershipControls", metadata: {"xmlNamespace" => {"uri" => "http://s3.amazonaws.com/doc/2006-03-01/"}}))
2318
+ PutBucketOwnershipControlsRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-sdk-checksum-algorithm"))
2302
2319
  PutBucketOwnershipControlsRequest.struct_class = Types::PutBucketOwnershipControlsRequest
2303
2320
  PutBucketOwnershipControlsRequest[:payload] = :ownership_controls
2304
2321
  PutBucketOwnershipControlsRequest[:payload_member] = PutBucketOwnershipControlsRequest.member(:ownership_controls)
@@ -2542,6 +2559,22 @@ module Aws::S3
2542
2559
  RedirectAllRequestsTo.add_member(:protocol, Shapes::ShapeRef.new(shape: Protocol, location_name: "Protocol"))
2543
2560
  RedirectAllRequestsTo.struct_class = Types::RedirectAllRequestsTo
2544
2561
 
2562
+ RenameObjectOutput.struct_class = Types::RenameObjectOutput
2563
+
2564
+ RenameObjectRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
2565
+ RenameObjectRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam" => {"name" => "Key"}}))
2566
+ RenameObjectRequest.add_member(:rename_source, Shapes::ShapeRef.new(shape: RenameSource, required: true, location: "header", location_name: "x-amz-rename-source"))
2567
+ RenameObjectRequest.add_member(:destination_if_match, Shapes::ShapeRef.new(shape: IfMatch, location: "header", location_name: "If-Match"))
2568
+ RenameObjectRequest.add_member(:destination_if_none_match, Shapes::ShapeRef.new(shape: IfNoneMatch, location: "header", location_name: "If-None-Match"))
2569
+ RenameObjectRequest.add_member(:destination_if_modified_since, Shapes::ShapeRef.new(shape: IfModifiedSince, location: "header", location_name: "If-Modified-Since"))
2570
+ RenameObjectRequest.add_member(:destination_if_unmodified_since, Shapes::ShapeRef.new(shape: IfUnmodifiedSince, location: "header", location_name: "If-Unmodified-Since"))
2571
+ RenameObjectRequest.add_member(:source_if_match, Shapes::ShapeRef.new(shape: RenameSourceIfMatch, location: "header", location_name: "x-amz-rename-source-if-match"))
2572
+ RenameObjectRequest.add_member(:source_if_none_match, Shapes::ShapeRef.new(shape: RenameSourceIfNoneMatch, location: "header", location_name: "x-amz-rename-source-if-none-match"))
2573
+ RenameObjectRequest.add_member(:source_if_modified_since, Shapes::ShapeRef.new(shape: RenameSourceIfModifiedSince, location: "header", location_name: "x-amz-rename-source-if-modified-since"))
2574
+ RenameObjectRequest.add_member(:source_if_unmodified_since, Shapes::ShapeRef.new(shape: RenameSourceIfUnmodifiedSince, location: "header", location_name: "x-amz-rename-source-if-unmodified-since"))
2575
+ RenameObjectRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location: "header", location_name: "x-amz-client-token", metadata: {"idempotencyToken" => true}))
2576
+ RenameObjectRequest.struct_class = Types::RenameObjectRequest
2577
+
2545
2578
  ReplicaModifications.add_member(:status, Shapes::ShapeRef.new(shape: ReplicaModificationsStatus, required: true, location_name: "Status"))
2546
2579
  ReplicaModifications.struct_class = Types::ReplicaModifications
2547
2580
 
@@ -3753,6 +3786,11 @@ module Aws::S3
3753
3786
  o.http_method = "PUT"
3754
3787
  o.http_request_uri = "/?ownershipControls"
3755
3788
  o.http_checksum = {
3789
+ "requestAlgorithmMember" => "checksum_algorithm",
3790
+ "requestChecksumRequired" => true,
3791
+ }
3792
+ o.http_checksum = {
3793
+ "requestAlgorithmMember" => "checksum_algorithm",
3756
3794
  "requestChecksumRequired" => true,
3757
3795
  }
3758
3796
  o.input = Shapes::ShapeRef.new(shape: PutBucketOwnershipControlsRequest)
@@ -3972,6 +4010,15 @@ module Aws::S3
3972
4010
  o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
3973
4011
  end)
3974
4012
 
4013
+ api.add_operation(:rename_object, Seahorse::Model::Operation.new.tap do |o|
4014
+ o.name = "RenameObject"
4015
+ o.http_method = "PUT"
4016
+ o.http_request_uri = "/{Key+}?renameObject"
4017
+ o.input = Shapes::ShapeRef.new(shape: RenameObjectRequest)
4018
+ o.output = Shapes::ShapeRef.new(shape: RenameObjectOutput)
4019
+ o.errors << Shapes::ShapeRef.new(shape: IdempotencyParameterMismatch)
4020
+ end)
4021
+
3975
4022
  api.add_operation(:restore_object, Seahorse::Model::Operation.new.tap do |o|
3976
4023
  o.name = "RestoreObject"
3977
4024
  o.http_method = "POST"
@@ -1162,6 +1162,18 @@ module Aws::S3
1162
1162
  end
1163
1163
  end
1164
1164
 
1165
+ class RenameObject
1166
+ def self.build(context)
1167
+ Aws::S3::EndpointParameters.create(
1168
+ context.config,
1169
+ bucket: context.params[:bucket],
1170
+ use_dual_stack: context[:use_dualstack_endpoint],
1171
+ accelerate: context[:use_accelerate_endpoint],
1172
+ key: context.params[:key],
1173
+ )
1174
+ end
1175
+ end
1176
+
1165
1177
  class RestoreObject
1166
1178
  def self.build(context)
1167
1179
  Aws::S3::EndpointParameters.create(
@@ -1416,6 +1428,8 @@ module Aws::S3
1416
1428
  PutObjectTagging.build(context)
1417
1429
  when :put_public_access_block
1418
1430
  PutPublicAccessBlock.build(context)
1431
+ when :rename_object
1432
+ RenameObject.build(context)
1419
1433
  when :restore_object
1420
1434
  RestoreObject.build(context)
1421
1435
  when :select_object_content
@@ -30,6 +30,7 @@ module Aws::S3
30
30
  # * {BucketAlreadyExists}
31
31
  # * {BucketAlreadyOwnedByYou}
32
32
  # * {EncryptionTypeMismatch}
33
+ # * {IdempotencyParameterMismatch}
33
34
  # * {InvalidObjectState}
34
35
  # * {InvalidRequest}
35
36
  # * {InvalidWriteOffset}
@@ -76,6 +77,16 @@ module Aws::S3
76
77
  end
77
78
  end
78
79
 
80
+ class IdempotencyParameterMismatch < ServiceError
81
+
82
+ # @param [Seahorse::Client::RequestContext] context
83
+ # @param [String] message
84
+ # @param [Aws::S3::Types::IdempotencyParameterMismatch] data
85
+ def initialize(context, message, data = Aws::EmptyStructure.new)
86
+ super(context, message, data)
87
+ end
88
+ end
89
+
79
90
  class InvalidObjectState < ServiceError
80
91
 
81
92
  # @param [Seahorse::Client::RequestContext] context
@@ -3,7 +3,8 @@
3
3
  require 'set'
4
4
  require 'time'
5
5
  require 'openssl'
6
- require 'cgi'
6
+ require "cgi/escape"
7
+ require "cgi/util" if RUBY_VERSION < "3.5"
7
8
  require 'aws-sdk-core/query'
8
9
 
9
10
  module Aws
@@ -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]
@@ -397,11 +402,17 @@ module Aws::S3
397
402
  end
398
403
 
399
404
  # If present, indicates that the requester was successfully charged for
400
- # the request.
405
+ # the request. For more information, see [Using Requester Pays buckets
406
+ # for storage transfers and usage][1] in the *Amazon Simple Storage
407
+ # Service user guide*.
401
408
  #
402
409
  # <note markdown="1"> This functionality is not supported for directory buckets.
403
410
  #
404
411
  # </note>
412
+ #
413
+ #
414
+ #
415
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
405
416
  # @return [String]
406
417
  def request_charged
407
418
  data[:request_charged]
@@ -464,6 +475,24 @@ module Aws::S3
464
475
  data[:parts_count]
465
476
  end
466
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
+
467
496
  # The Object Lock mode, if any, that's in effect for this object. This
468
497
  # header is only returned if the requester has the
469
498
  # `s3:GetObjectRetention` permission. For more information about S3
@@ -733,8 +762,8 @@ module Aws::S3
733
762
  # },
734
763
  # metadata_directive: "COPY", # accepts COPY, REPLACE
735
764
  # tagging_directive: "COPY", # accepts COPY, REPLACE
736
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
737
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
765
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
766
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
738
767
  # website_redirect_location: "WebsiteRedirectLocation",
739
768
  # sse_customer_algorithm: "SSECustomerAlgorithm",
740
769
  # sse_customer_key: "SSECustomerKey",
@@ -1124,6 +1153,14 @@ module Aws::S3
1124
1153
  # key is the same customer managed key that you specified for the
1125
1154
  # directory bucket's default encryption configuration.
1126
1155
  #
1156
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
1157
+ # in Amazon FSx file systems using S3 access points, the only valid
1158
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
1159
+ # systems have encryption configured by default and are encrypted at
1160
+ # rest. Data is automatically encrypted before being written to the
1161
+ # file system, and automatically decrypted as it is read. These
1162
+ # processes are handled transparently by Amazon FSx.
1163
+ #
1127
1164
  #
1128
1165
  #
1129
1166
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
@@ -1822,8 +1859,8 @@ module Aws::S3
1822
1859
  # metadata: {
1823
1860
  # "MetadataKey" => "MetadataValue",
1824
1861
  # },
1825
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
1826
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
1862
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
1863
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
1827
1864
  # website_redirect_location: "WebsiteRedirectLocation",
1828
1865
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1829
1866
  # sse_customer_key: "SSECustomerKey",
@@ -2140,7 +2177,7 @@ module Aws::S3
2140
2177
  # A map of metadata to store with the object in S3.
2141
2178
  # @option options [String] :server_side_encryption
2142
2179
  # The server-side encryption algorithm used when you store this object
2143
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
2180
+ # in Amazon S3 or Amazon FSx.
2144
2181
  #
2145
2182
  # * <b>Directory buckets </b> - For directory buckets, there are only
2146
2183
  # two supported options for server-side encryption: server-side
@@ -2182,6 +2219,14 @@ module Aws::S3
2182
2219
  #
2183
2220
  # </note>
2184
2221
  #
2222
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2223
+ # in Amazon FSx file systems using S3 access points, the only valid
2224
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2225
+ # systems have encryption configured by default and are encrypted at
2226
+ # rest. Data is automatically encrypted before being written to the
2227
+ # file system, and automatically decrypted as it is read. These
2228
+ # processes are handled transparently by Amazon FSx.
2229
+ #
2185
2230
  #
2186
2231
  #
2187
2232
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
@@ -2415,8 +2460,8 @@ module Aws::S3
2415
2460
  # metadata: {
2416
2461
  # "MetadataKey" => "MetadataValue",
2417
2462
  # },
2418
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
2419
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
2463
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2464
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
2420
2465
  # website_redirect_location: "WebsiteRedirectLocation",
2421
2466
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2422
2467
  # sse_customer_key: "SSECustomerKey",
@@ -2726,8 +2771,7 @@ module Aws::S3
2726
2771
  # A map of metadata to store with the object in S3.
2727
2772
  # @option options [String] :server_side_encryption
2728
2773
  # The server-side encryption algorithm that was used when you store this
2729
- # object in Amazon S3 (for example, `AES256`, `aws:kms`,
2730
- # `aws:kms:dsse`).
2774
+ # object in Amazon S3 or Amazon FSx.
2731
2775
  #
2732
2776
  # * <b>General purpose buckets </b> - You have four mutually exclusive
2733
2777
  # options to protect data using server-side encryption in Amazon S3,
@@ -2781,6 +2825,14 @@ module Aws::S3
2781
2825
  #
2782
2826
  # </note>
2783
2827
  #
2828
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2829
+ # in Amazon FSx file systems using S3 access points, the only valid
2830
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2831
+ # systems have encryption configured by default and are encrypted at
2832
+ # rest. Data is automatically encrypted before being written to the
2833
+ # file system, and automatically decrypted as it is read. These
2834
+ # processes are handled transparently by Amazon FSx.
2835
+ #
2784
2836
  #
2785
2837
  #
2786
2838
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
@@ -3053,7 +3105,7 @@ module Aws::S3
3053
3105
  # bucket_name: "BucketName", # required
3054
3106
  # prefix: "LocationPrefix", # required
3055
3107
  # encryption: {
3056
- # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
3108
+ # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
3057
3109
  # kms_key_id: "SSEKMSKeyId",
3058
3110
  # kms_context: "KMSContext",
3059
3111
  # },
@@ -3084,7 +3136,7 @@ module Aws::S3
3084
3136
  # value: "MetadataValue",
3085
3137
  # },
3086
3138
  # ],
3087
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
3139
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS
3088
3140
  # },
3089
3141
  # },
3090
3142
  # },
@@ -55,11 +55,17 @@ module Aws::S3
55
55
  end
56
56
 
57
57
  # If present, indicates that the requester was successfully charged for
58
- # the request.
58
+ # the request. For more information, see [Using Requester Pays buckets
59
+ # for storage transfers and usage][1] in the *Amazon Simple Storage
60
+ # Service user guide*.
59
61
  #
60
62
  # <note markdown="1"> This functionality is not supported for directory buckets.
61
63
  #
62
64
  # </note>
65
+ #
66
+ #
67
+ #
68
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
63
69
  # @return [String]
64
70
  def request_charged
65
71
  data[:request_charged]
@@ -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
@@ -359,8 +359,8 @@ module Aws::S3
359
359
  # },
360
360
  # metadata_directive: "COPY", # accepts COPY, REPLACE
361
361
  # 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
362
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, 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, FSX_OPENZFS
364
364
  # website_redirect_location: "WebsiteRedirectLocation",
365
365
  # sse_customer_algorithm: "SSECustomerAlgorithm",
366
366
  # sse_customer_key: "SSECustomerKey",
@@ -750,6 +750,14 @@ module Aws::S3
750
750
  # key is the same customer managed key that you specified for the
751
751
  # directory bucket's default encryption configuration.
752
752
  #
753
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
754
+ # in Amazon FSx file systems using S3 access points, the only valid
755
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
756
+ # systems have encryption configured by default and are encrypted at
757
+ # rest. Data is automatically encrypted before being written to the
758
+ # file system, and automatically decrypted as it is read. These
759
+ # processes are handled transparently by Amazon FSx.
760
+ #
753
761
  #
754
762
  #
755
763
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
@@ -1448,8 +1456,8 @@ module Aws::S3
1448
1456
  # metadata: {
1449
1457
  # "MetadataKey" => "MetadataValue",
1450
1458
  # },
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
1459
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
1460
+ # 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
1461
  # website_redirect_location: "WebsiteRedirectLocation",
1454
1462
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1455
1463
  # sse_customer_key: "SSECustomerKey",
@@ -1766,7 +1774,7 @@ module Aws::S3
1766
1774
  # A map of metadata to store with the object in S3.
1767
1775
  # @option options [String] :server_side_encryption
1768
1776
  # The server-side encryption algorithm used when you store this object
1769
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
1777
+ # in Amazon S3 or Amazon FSx.
1770
1778
  #
1771
1779
  # * <b>Directory buckets </b> - For directory buckets, there are only
1772
1780
  # two supported options for server-side encryption: server-side
@@ -1808,6 +1816,14 @@ module Aws::S3
1808
1816
  #
1809
1817
  # </note>
1810
1818
  #
1819
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
1820
+ # in Amazon FSx file systems using S3 access points, the only valid
1821
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
1822
+ # systems have encryption configured by default and are encrypted at
1823
+ # rest. Data is automatically encrypted before being written to the
1824
+ # file system, and automatically decrypted as it is read. These
1825
+ # processes are handled transparently by Amazon FSx.
1826
+ #
1811
1827
  #
1812
1828
  #
1813
1829
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
@@ -2041,8 +2057,8 @@ module Aws::S3
2041
2057
  # metadata: {
2042
2058
  # "MetadataKey" => "MetadataValue",
2043
2059
  # },
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
2060
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2061
+ # 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
2062
  # website_redirect_location: "WebsiteRedirectLocation",
2047
2063
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2048
2064
  # sse_customer_key: "SSECustomerKey",
@@ -2352,8 +2368,7 @@ module Aws::S3
2352
2368
  # A map of metadata to store with the object in S3.
2353
2369
  # @option options [String] :server_side_encryption
2354
2370
  # 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`).
2371
+ # object in Amazon S3 or Amazon FSx.
2357
2372
  #
2358
2373
  # * <b>General purpose buckets </b> - You have four mutually exclusive
2359
2374
  # options to protect data using server-side encryption in Amazon S3,
@@ -2407,6 +2422,14 @@ module Aws::S3
2407
2422
  #
2408
2423
  # </note>
2409
2424
  #
2425
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
2426
+ # in Amazon FSx file systems using S3 access points, the only valid
2427
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
2428
+ # systems have encryption configured by default and are encrypted at
2429
+ # rest. Data is automatically encrypted before being written to the
2430
+ # file system, and automatically decrypted as it is read. These
2431
+ # processes are handled transparently by Amazon FSx.
2432
+ #
2410
2433
  #
2411
2434
  #
2412
2435
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
@@ -2679,7 +2702,7 @@ module Aws::S3
2679
2702
  # bucket_name: "BucketName", # required
2680
2703
  # prefix: "LocationPrefix", # required
2681
2704
  # encryption: {
2682
- # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
2705
+ # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2683
2706
  # kms_key_id: "SSEKMSKeyId",
2684
2707
  # kms_context: "KMSContext",
2685
2708
  # },
@@ -2710,7 +2733,7 @@ module Aws::S3
2710
2733
  # value: "MetadataValue",
2711
2734
  # },
2712
2735
  # ],
2713
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
2736
+ # 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
2737
  # },
2715
2738
  # },
2716
2739
  # },
@@ -62,18 +62,16 @@ module Aws
62
62
  class Handler < Seahorse::Client::Handler
63
63
 
64
64
  def call(context)
65
- target = context.params[:response_target] || context[:response_target]
66
-
67
65
  # retry is only supported when range is NOT set on the initial request
68
- if supported_target?(target) && !context.params[:range]
69
- add_event_listeners(context, target)
66
+ if supported_target?(context) && !context.params[:range]
67
+ add_event_listeners(context)
70
68
  end
71
69
  @handler.call(context)
72
70
  end
73
71
 
74
72
  private
75
73
 
76
- def add_event_listeners(context, target)
74
+ def add_event_listeners(context)
77
75
  context.http_response.on_headers(200..299) do
78
76
  case context.http_response.body
79
77
  when Seahorse::Client::BlockIO then
@@ -123,8 +121,8 @@ module Aws
123
121
  context.http_response.body.is_a?(RetryableManagedFile)
124
122
  end
125
123
 
126
- def supported_target?(target)
127
- case target
124
+ def supported_target?(context)
125
+ case context[:response_target]
128
126
  when Proc, String, Pathname then true
129
127
  else false
130
128
  end
@@ -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