aws-sdk-s3 1.174.0 → 1.179.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +32 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +40 -26
  5. data/lib/aws-sdk-s3/bucket_acl.rb +5 -4
  6. data/lib/aws-sdk-s3/bucket_cors.rb +5 -4
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +1 -1
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +2 -2
  9. data/lib/aws-sdk-s3/bucket_logging.rb +1 -1
  10. data/lib/aws-sdk-s3/bucket_policy.rb +9 -8
  11. data/lib/aws-sdk-s3/bucket_request_payment.rb +2 -2
  12. data/lib/aws-sdk-s3/bucket_tagging.rb +2 -2
  13. data/lib/aws-sdk-s3/bucket_versioning.rb +6 -6
  14. data/lib/aws-sdk-s3/bucket_website.rb +2 -2
  15. data/lib/aws-sdk-s3/client.rb +1409 -867
  16. data/lib/aws-sdk-s3/client_api.rb +128 -2
  17. data/lib/aws-sdk-s3/endpoint_provider.rb +36 -0
  18. data/lib/aws-sdk-s3/endpoints.rb +42 -0
  19. data/lib/aws-sdk-s3/file_downloader.rb +4 -21
  20. data/lib/aws-sdk-s3/multipart_file_uploader.rb +31 -13
  21. data/lib/aws-sdk-s3/multipart_upload.rb +48 -6
  22. data/lib/aws-sdk-s3/multipart_upload_part.rb +52 -36
  23. data/lib/aws-sdk-s3/object.rb +111 -59
  24. data/lib/aws-sdk-s3/object_acl.rb +4 -4
  25. data/lib/aws-sdk-s3/object_summary.rb +63 -28
  26. data/lib/aws-sdk-s3/object_version.rb +21 -8
  27. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  28. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +11 -20
  29. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  30. data/lib/aws-sdk-s3/presigner.rb +5 -5
  31. data/lib/aws-sdk-s3/resource.rb +9 -8
  32. data/lib/aws-sdk-s3/types.rb +1264 -528
  33. data/lib/aws-sdk-s3.rb +1 -1
  34. data/sig/bucket.rbs +5 -4
  35. data/sig/bucket_acl.rbs +1 -1
  36. data/sig/bucket_cors.rbs +1 -1
  37. data/sig/bucket_lifecycle.rbs +1 -1
  38. data/sig/bucket_lifecycle_configuration.rbs +1 -1
  39. data/sig/bucket_logging.rbs +1 -1
  40. data/sig/bucket_policy.rbs +1 -1
  41. data/sig/bucket_request_payment.rbs +1 -1
  42. data/sig/bucket_tagging.rbs +1 -1
  43. data/sig/bucket_versioning.rbs +3 -3
  44. data/sig/bucket_website.rbs +1 -1
  45. data/sig/client.rbs +85 -31
  46. data/sig/multipart_upload.rbs +8 -1
  47. data/sig/multipart_upload_part.rbs +5 -1
  48. data/sig/object.rbs +13 -5
  49. data/sig/object_acl.rbs +1 -1
  50. data/sig/object_summary.rbs +11 -6
  51. data/sig/object_version.rbs +5 -2
  52. data/sig/resource.rbs +4 -2
  53. data/sig/types.rbs +126 -34
  54. metadata +5 -5
  55. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
@@ -76,9 +76,11 @@ module Aws::S3
76
76
  ChecksumAlgorithmList = Shapes::ListShape.new(name: 'ChecksumAlgorithmList', flattened: true)
77
77
  ChecksumCRC32 = Shapes::StringShape.new(name: 'ChecksumCRC32')
78
78
  ChecksumCRC32C = Shapes::StringShape.new(name: 'ChecksumCRC32C')
79
+ ChecksumCRC64NVME = Shapes::StringShape.new(name: 'ChecksumCRC64NVME')
79
80
  ChecksumMode = Shapes::StringShape.new(name: 'ChecksumMode')
80
81
  ChecksumSHA1 = Shapes::StringShape.new(name: 'ChecksumSHA1')
81
82
  ChecksumSHA256 = Shapes::StringShape.new(name: 'ChecksumSHA256')
83
+ ChecksumType = Shapes::StringShape.new(name: 'ChecksumType')
82
84
  CloudFunction = Shapes::StringShape.new(name: 'CloudFunction')
83
85
  CloudFunctionConfiguration = Shapes::StructureShape.new(name: 'CloudFunctionConfiguration')
84
86
  CloudFunctionInvocationRole = Shapes::StringShape.new(name: 'CloudFunctionInvocationRole')
@@ -117,6 +119,7 @@ module Aws::S3
117
119
  CopySourceSSECustomerKeyMD5 = Shapes::StringShape.new(name: 'CopySourceSSECustomerKeyMD5')
118
120
  CopySourceVersionId = Shapes::StringShape.new(name: 'CopySourceVersionId')
119
121
  CreateBucketConfiguration = Shapes::StructureShape.new(name: 'CreateBucketConfiguration')
122
+ CreateBucketMetadataTableConfigurationRequest = Shapes::StructureShape.new(name: 'CreateBucketMetadataTableConfigurationRequest')
120
123
  CreateBucketOutput = Shapes::StructureShape.new(name: 'CreateBucketOutput')
121
124
  CreateBucketRequest = Shapes::StructureShape.new(name: 'CreateBucketRequest')
122
125
  CreateMultipartUploadOutput = Shapes::StructureShape.new(name: 'CreateMultipartUploadOutput')
@@ -136,6 +139,7 @@ module Aws::S3
136
139
  DeleteBucketIntelligentTieringConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketIntelligentTieringConfigurationRequest')
137
140
  DeleteBucketInventoryConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketInventoryConfigurationRequest')
138
141
  DeleteBucketLifecycleRequest = Shapes::StructureShape.new(name: 'DeleteBucketLifecycleRequest')
142
+ DeleteBucketMetadataTableConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketMetadataTableConfigurationRequest')
139
143
  DeleteBucketMetricsConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketMetricsConfigurationRequest')
140
144
  DeleteBucketOwnershipControlsRequest = Shapes::StructureShape.new(name: 'DeleteBucketOwnershipControlsRequest')
141
145
  DeleteBucketPolicyRequest = Shapes::StructureShape.new(name: 'DeleteBucketPolicyRequest')
@@ -174,6 +178,7 @@ module Aws::S3
174
178
  EndEvent = Shapes::StructureShape.new(name: 'EndEvent')
175
179
  Error = Shapes::StructureShape.new(name: 'Error')
176
180
  ErrorCode = Shapes::StringShape.new(name: 'ErrorCode')
181
+ ErrorDetails = Shapes::StructureShape.new(name: 'ErrorDetails')
177
182
  ErrorDocument = Shapes::StructureShape.new(name: 'ErrorDocument')
178
183
  ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
179
184
  Errors = Shapes::ListShape.new(name: 'Errors', flattened: true)
@@ -220,6 +225,9 @@ module Aws::S3
220
225
  GetBucketLocationRequest = Shapes::StructureShape.new(name: 'GetBucketLocationRequest')
221
226
  GetBucketLoggingOutput = Shapes::StructureShape.new(name: 'GetBucketLoggingOutput')
222
227
  GetBucketLoggingRequest = Shapes::StructureShape.new(name: 'GetBucketLoggingRequest')
228
+ GetBucketMetadataTableConfigurationOutput = Shapes::StructureShape.new(name: 'GetBucketMetadataTableConfigurationOutput')
229
+ GetBucketMetadataTableConfigurationRequest = Shapes::StructureShape.new(name: 'GetBucketMetadataTableConfigurationRequest')
230
+ GetBucketMetadataTableConfigurationResult = Shapes::StructureShape.new(name: 'GetBucketMetadataTableConfigurationResult')
223
231
  GetBucketMetricsConfigurationOutput = Shapes::StructureShape.new(name: 'GetBucketMetricsConfigurationOutput')
224
232
  GetBucketMetricsConfigurationRequest = Shapes::StructureShape.new(name: 'GetBucketMetricsConfigurationRequest')
225
233
  GetBucketNotificationConfigurationRequest = Shapes::StructureShape.new(name: 'GetBucketNotificationConfigurationRequest')
@@ -377,6 +385,9 @@ module Aws::S3
377
385
  MetadataDirective = Shapes::StringShape.new(name: 'MetadataDirective')
378
386
  MetadataEntry = Shapes::StructureShape.new(name: 'MetadataEntry')
379
387
  MetadataKey = Shapes::StringShape.new(name: 'MetadataKey')
388
+ MetadataTableConfiguration = Shapes::StructureShape.new(name: 'MetadataTableConfiguration')
389
+ MetadataTableConfigurationResult = Shapes::StructureShape.new(name: 'MetadataTableConfigurationResult')
390
+ MetadataTableStatus = Shapes::StringShape.new(name: 'MetadataTableStatus')
380
391
  MetadataValue = Shapes::StringShape.new(name: 'MetadataValue')
381
392
  Metrics = Shapes::StructureShape.new(name: 'Metrics')
382
393
  MetricsAndOperator = Shapes::StructureShape.new(name: 'MetricsAndOperator')
@@ -387,6 +398,7 @@ module Aws::S3
387
398
  MetricsStatus = Shapes::StringShape.new(name: 'MetricsStatus')
388
399
  Minutes = Shapes::IntegerShape.new(name: 'Minutes')
389
400
  MissingMeta = Shapes::IntegerShape.new(name: 'MissingMeta')
401
+ MpuObjectSize = Shapes::IntegerShape.new(name: 'MpuObjectSize')
390
402
  MultipartUpload = Shapes::StructureShape.new(name: 'MultipartUpload')
391
403
  MultipartUploadId = Shapes::StringShape.new(name: 'MultipartUploadId')
392
404
  MultipartUploadList = Shapes::ListShape.new(name: 'MultipartUploadList', flattened: true)
@@ -555,6 +567,12 @@ module Aws::S3
555
567
  Rules = Shapes::ListShape.new(name: 'Rules', flattened: true)
556
568
  S3KeyFilter = Shapes::StructureShape.new(name: 'S3KeyFilter')
557
569
  S3Location = Shapes::StructureShape.new(name: 'S3Location')
570
+ S3TablesArn = Shapes::StringShape.new(name: 'S3TablesArn')
571
+ S3TablesBucketArn = Shapes::StringShape.new(name: 'S3TablesBucketArn')
572
+ S3TablesDestination = Shapes::StructureShape.new(name: 'S3TablesDestination')
573
+ S3TablesDestinationResult = Shapes::StructureShape.new(name: 'S3TablesDestinationResult')
574
+ S3TablesName = Shapes::StringShape.new(name: 'S3TablesName')
575
+ S3TablesNamespace = Shapes::StringShape.new(name: 'S3TablesNamespace')
558
576
  SSECustomerAlgorithm = Shapes::StringShape.new(name: 'SSECustomerAlgorithm')
559
577
  SSECustomerKey = Shapes::StringShape.new(name: 'SSECustomerKey')
560
578
  SSECustomerKeyMD5 = Shapes::StringShape.new(name: 'SSECustomerKeyMD5')
@@ -741,8 +759,10 @@ module Aws::S3
741
759
 
742
760
  Checksum.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location_name: "ChecksumCRC32"))
743
761
  Checksum.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location_name: "ChecksumCRC32C"))
762
+ Checksum.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location_name: "ChecksumCRC64NVME"))
744
763
  Checksum.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location_name: "ChecksumSHA1"))
745
764
  Checksum.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location_name: "ChecksumSHA256"))
765
+ Checksum.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location_name: "ChecksumType"))
746
766
  Checksum.struct_class = Types::Checksum
747
767
 
748
768
  ChecksumAlgorithmList.member = Shapes::ShapeRef.new(shape: ChecksumAlgorithm)
@@ -766,8 +786,10 @@ module Aws::S3
766
786
  CompleteMultipartUploadOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
767
787
  CompleteMultipartUploadOutput.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location_name: "ChecksumCRC32"))
768
788
  CompleteMultipartUploadOutput.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location_name: "ChecksumCRC32C"))
789
+ CompleteMultipartUploadOutput.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location_name: "ChecksumCRC64NVME"))
769
790
  CompleteMultipartUploadOutput.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location_name: "ChecksumSHA1"))
770
791
  CompleteMultipartUploadOutput.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location_name: "ChecksumSHA256"))
792
+ CompleteMultipartUploadOutput.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location_name: "ChecksumType"))
771
793
  CompleteMultipartUploadOutput.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
772
794
  CompleteMultipartUploadOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
773
795
  CompleteMultipartUploadOutput.add_member(:ssekms_key_id, Shapes::ShapeRef.new(shape: SSEKMSKeyId, location: "header", location_name: "x-amz-server-side-encryption-aws-kms-key-id"))
@@ -781,8 +803,11 @@ module Aws::S3
781
803
  CompleteMultipartUploadRequest.add_member(:upload_id, Shapes::ShapeRef.new(shape: MultipartUploadId, required: true, location: "querystring", location_name: "uploadId"))
782
804
  CompleteMultipartUploadRequest.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
783
805
  CompleteMultipartUploadRequest.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
806
+ CompleteMultipartUploadRequest.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
784
807
  CompleteMultipartUploadRequest.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
785
808
  CompleteMultipartUploadRequest.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
809
+ CompleteMultipartUploadRequest.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location: "header", location_name: "x-amz-checksum-type"))
810
+ CompleteMultipartUploadRequest.add_member(:mpu_object_size, Shapes::ShapeRef.new(shape: MpuObjectSize, location: "header", location_name: "x-amz-mp-object-size"))
786
811
  CompleteMultipartUploadRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
787
812
  CompleteMultipartUploadRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
788
813
  CompleteMultipartUploadRequest.add_member(:if_match, Shapes::ShapeRef.new(shape: IfMatch, location: "header", location_name: "If-Match"))
@@ -800,6 +825,7 @@ module Aws::S3
800
825
  CompletedPart.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
801
826
  CompletedPart.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location_name: "ChecksumCRC32"))
802
827
  CompletedPart.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location_name: "ChecksumCRC32C"))
828
+ CompletedPart.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location_name: "ChecksumCRC64NVME"))
803
829
  CompletedPart.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location_name: "ChecksumSHA1"))
804
830
  CompletedPart.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location_name: "ChecksumSHA256"))
805
831
  CompletedPart.add_member(:part_number, Shapes::ShapeRef.new(shape: PartNumber, location_name: "PartNumber"))
@@ -873,8 +899,10 @@ module Aws::S3
873
899
 
874
900
  CopyObjectResult.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
875
901
  CopyObjectResult.add_member(:last_modified, Shapes::ShapeRef.new(shape: LastModified, location_name: "LastModified"))
902
+ CopyObjectResult.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location_name: "ChecksumType"))
876
903
  CopyObjectResult.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location_name: "ChecksumCRC32"))
877
904
  CopyObjectResult.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location_name: "ChecksumCRC32C"))
905
+ CopyObjectResult.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location_name: "ChecksumCRC64NVME"))
878
906
  CopyObjectResult.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location_name: "ChecksumSHA1"))
879
907
  CopyObjectResult.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location_name: "ChecksumSHA256"))
880
908
  CopyObjectResult.struct_class = Types::CopyObjectResult
@@ -883,6 +911,7 @@ module Aws::S3
883
911
  CopyPartResult.add_member(:last_modified, Shapes::ShapeRef.new(shape: LastModified, location_name: "LastModified"))
884
912
  CopyPartResult.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location_name: "ChecksumCRC32"))
885
913
  CopyPartResult.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location_name: "ChecksumCRC32C"))
914
+ CopyPartResult.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location_name: "ChecksumCRC64NVME"))
886
915
  CopyPartResult.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location_name: "ChecksumSHA1"))
887
916
  CopyPartResult.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location_name: "ChecksumSHA256"))
888
917
  CopyPartResult.struct_class = Types::CopyPartResult
@@ -892,6 +921,15 @@ module Aws::S3
892
921
  CreateBucketConfiguration.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketInfo, location_name: "Bucket"))
893
922
  CreateBucketConfiguration.struct_class = Types::CreateBucketConfiguration
894
923
 
924
+ CreateBucketMetadataTableConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
925
+ CreateBucketMetadataTableConfigurationRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
926
+ CreateBucketMetadataTableConfigurationRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-sdk-checksum-algorithm"))
927
+ CreateBucketMetadataTableConfigurationRequest.add_member(:metadata_table_configuration, Shapes::ShapeRef.new(shape: MetadataTableConfiguration, required: true, location_name: "MetadataTableConfiguration", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
928
+ CreateBucketMetadataTableConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
929
+ CreateBucketMetadataTableConfigurationRequest.struct_class = Types::CreateBucketMetadataTableConfigurationRequest
930
+ CreateBucketMetadataTableConfigurationRequest[:payload] = :metadata_table_configuration
931
+ CreateBucketMetadataTableConfigurationRequest[:payload_member] = CreateBucketMetadataTableConfigurationRequest.member(:metadata_table_configuration)
932
+
895
933
  CreateBucketOutput.add_member(:location, Shapes::ShapeRef.new(shape: Location, location: "header", location_name: "Location"))
896
934
  CreateBucketOutput.struct_class = Types::CreateBucketOutput
897
935
 
@@ -922,6 +960,7 @@ module Aws::S3
922
960
  CreateMultipartUploadOutput.add_member(:bucket_key_enabled, Shapes::ShapeRef.new(shape: BucketKeyEnabled, location: "header", location_name: "x-amz-server-side-encryption-bucket-key-enabled"))
923
961
  CreateMultipartUploadOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
924
962
  CreateMultipartUploadOutput.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-checksum-algorithm"))
963
+ CreateMultipartUploadOutput.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location: "header", location_name: "x-amz-checksum-type"))
925
964
  CreateMultipartUploadOutput.struct_class = Types::CreateMultipartUploadOutput
926
965
 
927
966
  CreateMultipartUploadRequest.add_member(:acl, Shapes::ShapeRef.new(shape: ObjectCannedACL, location: "header", location_name: "x-amz-acl"))
@@ -954,6 +993,7 @@ module Aws::S3
954
993
  CreateMultipartUploadRequest.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
955
994
  CreateMultipartUploadRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
956
995
  CreateMultipartUploadRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-checksum-algorithm"))
996
+ CreateMultipartUploadRequest.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location: "header", location_name: "x-amz-checksum-type"))
957
997
  CreateMultipartUploadRequest.struct_class = Types::CreateMultipartUploadRequest
958
998
 
959
999
  CreateSessionOutput.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
@@ -1006,6 +1046,10 @@ module Aws::S3
1006
1046
  DeleteBucketLifecycleRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1007
1047
  DeleteBucketLifecycleRequest.struct_class = Types::DeleteBucketLifecycleRequest
1008
1048
 
1049
+ DeleteBucketMetadataTableConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
1050
+ DeleteBucketMetadataTableConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1051
+ DeleteBucketMetadataTableConfigurationRequest.struct_class = Types::DeleteBucketMetadataTableConfigurationRequest
1052
+
1009
1053
  DeleteBucketMetricsConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
1010
1054
  DeleteBucketMetricsConfigurationRequest.add_member(:id, Shapes::ShapeRef.new(shape: MetricsId, required: true, location: "querystring", location_name: "id"))
1011
1055
  DeleteBucketMetricsConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
@@ -1128,6 +1172,10 @@ module Aws::S3
1128
1172
  Error.add_member(:message, Shapes::ShapeRef.new(shape: Message, location_name: "Message"))
1129
1173
  Error.struct_class = Types::Error
1130
1174
 
1175
+ ErrorDetails.add_member(:error_code, Shapes::ShapeRef.new(shape: ErrorCode, location_name: "ErrorCode"))
1176
+ ErrorDetails.add_member(:error_message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "ErrorMessage"))
1177
+ ErrorDetails.struct_class = Types::ErrorDetails
1178
+
1131
1179
  ErrorDocument.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location_name: "Key"))
1132
1180
  ErrorDocument.struct_class = Types::ErrorDocument
1133
1181
 
@@ -1239,6 +1287,20 @@ module Aws::S3
1239
1287
  GetBucketLoggingRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1240
1288
  GetBucketLoggingRequest.struct_class = Types::GetBucketLoggingRequest
1241
1289
 
1290
+ GetBucketMetadataTableConfigurationOutput.add_member(:get_bucket_metadata_table_configuration_result, Shapes::ShapeRef.new(shape: GetBucketMetadataTableConfigurationResult, location_name: "GetBucketMetadataTableConfigurationResult"))
1291
+ GetBucketMetadataTableConfigurationOutput.struct_class = Types::GetBucketMetadataTableConfigurationOutput
1292
+ GetBucketMetadataTableConfigurationOutput[:payload] = :get_bucket_metadata_table_configuration_result
1293
+ GetBucketMetadataTableConfigurationOutput[:payload_member] = GetBucketMetadataTableConfigurationOutput.member(:get_bucket_metadata_table_configuration_result)
1294
+
1295
+ GetBucketMetadataTableConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
1296
+ GetBucketMetadataTableConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1297
+ GetBucketMetadataTableConfigurationRequest.struct_class = Types::GetBucketMetadataTableConfigurationRequest
1298
+
1299
+ GetBucketMetadataTableConfigurationResult.add_member(:metadata_table_configuration_result, Shapes::ShapeRef.new(shape: MetadataTableConfigurationResult, required: true, location_name: "MetadataTableConfigurationResult"))
1300
+ GetBucketMetadataTableConfigurationResult.add_member(:status, Shapes::ShapeRef.new(shape: MetadataTableStatus, required: true, location_name: "Status"))
1301
+ GetBucketMetadataTableConfigurationResult.add_member(:error, Shapes::ShapeRef.new(shape: ErrorDetails, location_name: "Error"))
1302
+ GetBucketMetadataTableConfigurationResult.struct_class = Types::GetBucketMetadataTableConfigurationResult
1303
+
1242
1304
  GetBucketMetricsConfigurationOutput.add_member(:metrics_configuration, Shapes::ShapeRef.new(shape: MetricsConfiguration, location_name: "MetricsConfiguration"))
1243
1305
  GetBucketMetricsConfigurationOutput.struct_class = Types::GetBucketMetricsConfigurationOutput
1244
1306
  GetBucketMetricsConfigurationOutput[:payload] = :metrics_configuration
@@ -1396,8 +1458,10 @@ module Aws::S3
1396
1458
  GetObjectOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location: "header", location_name: "ETag"))
1397
1459
  GetObjectOutput.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
1398
1460
  GetObjectOutput.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
1461
+ GetObjectOutput.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
1399
1462
  GetObjectOutput.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
1400
1463
  GetObjectOutput.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
1464
+ GetObjectOutput.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location: "header", location_name: "x-amz-checksum-type"))
1401
1465
  GetObjectOutput.add_member(:missing_meta, Shapes::ShapeRef.new(shape: MissingMeta, location: "header", location_name: "x-amz-missing-meta"))
1402
1466
  GetObjectOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
1403
1467
  GetObjectOutput.add_member(:cache_control, Shapes::ShapeRef.new(shape: CacheControl, location: "header", location_name: "Cache-Control"))
@@ -1529,8 +1593,10 @@ module Aws::S3
1529
1593
  HeadObjectOutput.add_member(:content_length, Shapes::ShapeRef.new(shape: ContentLength, location: "header", location_name: "Content-Length"))
1530
1594
  HeadObjectOutput.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
1531
1595
  HeadObjectOutput.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
1596
+ HeadObjectOutput.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
1532
1597
  HeadObjectOutput.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
1533
1598
  HeadObjectOutput.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
1599
+ HeadObjectOutput.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location: "header", location_name: "x-amz-checksum-type"))
1534
1600
  HeadObjectOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location: "header", location_name: "ETag"))
1535
1601
  HeadObjectOutput.add_member(:missing_meta, Shapes::ShapeRef.new(shape: MissingMeta, location: "header", location_name: "x-amz-missing-meta"))
1536
1602
  HeadObjectOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
@@ -1883,6 +1949,7 @@ module Aws::S3
1883
1949
  ListPartsOutput.add_member(:storage_class, Shapes::ShapeRef.new(shape: StorageClass, location_name: "StorageClass"))
1884
1950
  ListPartsOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1885
1951
  ListPartsOutput.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location_name: "ChecksumAlgorithm"))
1952
+ ListPartsOutput.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location_name: "ChecksumType"))
1886
1953
  ListPartsOutput.struct_class = Types::ListPartsOutput
1887
1954
 
1888
1955
  ListPartsRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam"=>{"name"=>"Bucket"}}))
@@ -1914,6 +1981,12 @@ module Aws::S3
1914
1981
  MetadataEntry.add_member(:value, Shapes::ShapeRef.new(shape: MetadataValue, location_name: "Value"))
1915
1982
  MetadataEntry.struct_class = Types::MetadataEntry
1916
1983
 
1984
+ MetadataTableConfiguration.add_member(:s3_tables_destination, Shapes::ShapeRef.new(shape: S3TablesDestination, required: true, location_name: "S3TablesDestination"))
1985
+ MetadataTableConfiguration.struct_class = Types::MetadataTableConfiguration
1986
+
1987
+ MetadataTableConfigurationResult.add_member(:s3_tables_destination_result, Shapes::ShapeRef.new(shape: S3TablesDestinationResult, required: true, location_name: "S3TablesDestinationResult"))
1988
+ MetadataTableConfigurationResult.struct_class = Types::MetadataTableConfigurationResult
1989
+
1917
1990
  Metrics.add_member(:status, Shapes::ShapeRef.new(shape: MetricsStatus, required: true, location_name: "Status"))
1918
1991
  Metrics.add_member(:event_threshold, Shapes::ShapeRef.new(shape: ReplicationTimeValue, location_name: "EventThreshold"))
1919
1992
  Metrics.struct_class = Types::Metrics
@@ -1942,6 +2015,7 @@ module Aws::S3
1942
2015
  MultipartUpload.add_member(:owner, Shapes::ShapeRef.new(shape: Owner, location_name: "Owner"))
1943
2016
  MultipartUpload.add_member(:initiator, Shapes::ShapeRef.new(shape: Initiator, location_name: "Initiator"))
1944
2017
  MultipartUpload.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location_name: "ChecksumAlgorithm"))
2018
+ MultipartUpload.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location_name: "ChecksumType"))
1945
2019
  MultipartUpload.struct_class = Types::MultipartUpload
1946
2020
 
1947
2021
  MultipartUploadList.member = Shapes::ShapeRef.new(shape: MultipartUpload)
@@ -1981,6 +2055,7 @@ module Aws::S3
1981
2055
  Object.add_member(:last_modified, Shapes::ShapeRef.new(shape: LastModified, location_name: "LastModified"))
1982
2056
  Object.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
1983
2057
  Object.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithmList, location_name: "ChecksumAlgorithm"))
2058
+ Object.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location_name: "ChecksumType"))
1984
2059
  Object.add_member(:size, Shapes::ShapeRef.new(shape: Size, location_name: "Size"))
1985
2060
  Object.add_member(:storage_class, Shapes::ShapeRef.new(shape: ObjectStorageClass, location_name: "StorageClass"))
1986
2061
  Object.add_member(:owner, Shapes::ShapeRef.new(shape: Owner, location_name: "Owner"))
@@ -2022,12 +2097,14 @@ module Aws::S3
2022
2097
  ObjectPart.add_member(:size, Shapes::ShapeRef.new(shape: Size, location_name: "Size"))
2023
2098
  ObjectPart.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location_name: "ChecksumCRC32"))
2024
2099
  ObjectPart.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location_name: "ChecksumCRC32C"))
2100
+ ObjectPart.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location_name: "ChecksumCRC64NVME"))
2025
2101
  ObjectPart.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location_name: "ChecksumSHA1"))
2026
2102
  ObjectPart.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location_name: "ChecksumSHA256"))
2027
2103
  ObjectPart.struct_class = Types::ObjectPart
2028
2104
 
2029
2105
  ObjectVersion.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
2030
2106
  ObjectVersion.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithmList, location_name: "ChecksumAlgorithm"))
2107
+ ObjectVersion.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location_name: "ChecksumType"))
2031
2108
  ObjectVersion.add_member(:size, Shapes::ShapeRef.new(shape: Size, location_name: "Size"))
2032
2109
  ObjectVersion.add_member(:storage_class, Shapes::ShapeRef.new(shape: ObjectVersionStorageClass, location_name: "StorageClass"))
2033
2110
  ObjectVersion.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, location_name: "Key"))
@@ -2069,6 +2146,7 @@ module Aws::S3
2069
2146
  Part.add_member(:size, Shapes::ShapeRef.new(shape: Size, location_name: "Size"))
2070
2147
  Part.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location_name: "ChecksumCRC32"))
2071
2148
  Part.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location_name: "ChecksumCRC32C"))
2149
+ Part.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location_name: "ChecksumCRC64NVME"))
2072
2150
  Part.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location_name: "ChecksumSHA1"))
2073
2151
  Part.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location_name: "ChecksumSHA256"))
2074
2152
  Part.struct_class = Types::Part
@@ -2335,8 +2413,10 @@ module Aws::S3
2335
2413
  PutObjectOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location: "header", location_name: "ETag"))
2336
2414
  PutObjectOutput.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
2337
2415
  PutObjectOutput.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
2416
+ PutObjectOutput.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
2338
2417
  PutObjectOutput.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
2339
2418
  PutObjectOutput.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
2419
+ PutObjectOutput.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location: "header", location_name: "x-amz-checksum-type"))
2340
2420
  PutObjectOutput.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
2341
2421
  PutObjectOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
2342
2422
  PutObjectOutput.add_member(:sse_customer_algorithm, Shapes::ShapeRef.new(shape: SSECustomerAlgorithm, location: "header", location_name: "x-amz-server-side-encryption-customer-algorithm"))
@@ -2361,6 +2441,7 @@ module Aws::S3
2361
2441
  PutObjectRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-sdk-checksum-algorithm"))
2362
2442
  PutObjectRequest.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
2363
2443
  PutObjectRequest.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
2444
+ PutObjectRequest.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
2364
2445
  PutObjectRequest.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
2365
2446
  PutObjectRequest.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
2366
2447
  PutObjectRequest.add_member(:expires, Shapes::ShapeRef.new(shape: Expires, location: "header", location_name: "Expires"))
@@ -2561,6 +2642,16 @@ module Aws::S3
2561
2642
  S3Location.add_member(:storage_class, Shapes::ShapeRef.new(shape: StorageClass, location_name: "StorageClass"))
2562
2643
  S3Location.struct_class = Types::S3Location
2563
2644
 
2645
+ S3TablesDestination.add_member(:table_bucket_arn, Shapes::ShapeRef.new(shape: S3TablesBucketArn, required: true, location_name: "TableBucketArn"))
2646
+ S3TablesDestination.add_member(:table_name, Shapes::ShapeRef.new(shape: S3TablesName, required: true, location_name: "TableName"))
2647
+ S3TablesDestination.struct_class = Types::S3TablesDestination
2648
+
2649
+ S3TablesDestinationResult.add_member(:table_bucket_arn, Shapes::ShapeRef.new(shape: S3TablesBucketArn, required: true, location_name: "TableBucketArn"))
2650
+ S3TablesDestinationResult.add_member(:table_name, Shapes::ShapeRef.new(shape: S3TablesName, required: true, location_name: "TableName"))
2651
+ S3TablesDestinationResult.add_member(:table_arn, Shapes::ShapeRef.new(shape: S3TablesArn, required: true, location_name: "TableArn"))
2652
+ S3TablesDestinationResult.add_member(:table_namespace, Shapes::ShapeRef.new(shape: S3TablesNamespace, required: true, location_name: "TableNamespace"))
2653
+ S3TablesDestinationResult.struct_class = Types::S3TablesDestinationResult
2654
+
2564
2655
  SSEKMS.add_member(:key_id, Shapes::ShapeRef.new(shape: SSEKMSKeyId, required: true, location_name: "KeyId"))
2565
2656
  SSEKMS.struct_class = Types::SSEKMS
2566
2657
 
@@ -2730,6 +2821,7 @@ module Aws::S3
2730
2821
  UploadPartOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location: "header", location_name: "ETag"))
2731
2822
  UploadPartOutput.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
2732
2823
  UploadPartOutput.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
2824
+ UploadPartOutput.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
2733
2825
  UploadPartOutput.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
2734
2826
  UploadPartOutput.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
2735
2827
  UploadPartOutput.add_member(:sse_customer_algorithm, Shapes::ShapeRef.new(shape: SSECustomerAlgorithm, location: "header", location_name: "x-amz-server-side-encryption-customer-algorithm"))
@@ -2746,6 +2838,7 @@ module Aws::S3
2746
2838
  UploadPartRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-sdk-checksum-algorithm"))
2747
2839
  UploadPartRequest.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
2748
2840
  UploadPartRequest.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
2841
+ UploadPartRequest.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
2749
2842
  UploadPartRequest.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
2750
2843
  UploadPartRequest.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
2751
2844
  UploadPartRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam"=>{"name"=>"Key"}}))
@@ -2788,6 +2881,7 @@ module Aws::S3
2788
2881
  WriteGetObjectResponseRequest.add_member(:content_type, Shapes::ShapeRef.new(shape: ContentType, location: "header", location_name: "x-amz-fwd-header-Content-Type"))
2789
2882
  WriteGetObjectResponseRequest.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-fwd-header-x-amz-checksum-crc32"))
2790
2883
  WriteGetObjectResponseRequest.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-fwd-header-x-amz-checksum-crc32c"))
2884
+ WriteGetObjectResponseRequest.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-fwd-header-x-amz-checksum-crc64nvme"))
2791
2885
  WriteGetObjectResponseRequest.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-fwd-header-x-amz-checksum-sha1"))
2792
2886
  WriteGetObjectResponseRequest.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-fwd-header-x-amz-checksum-sha256"))
2793
2887
  WriteGetObjectResponseRequest.add_member(:delete_marker, Shapes::ShapeRef.new(shape: DeleteMarker, location: "header", location_name: "x-amz-fwd-header-x-amz-delete-marker"))
@@ -2872,6 +2966,22 @@ module Aws::S3
2872
2966
  o.errors << Shapes::ShapeRef.new(shape: BucketAlreadyOwnedByYou)
2873
2967
  end)
2874
2968
 
2969
+ api.add_operation(:create_bucket_metadata_table_configuration, Seahorse::Model::Operation.new.tap do |o|
2970
+ o.name = "CreateBucketMetadataTableConfiguration"
2971
+ o.http_method = "POST"
2972
+ o.http_request_uri = "/?metadataTable"
2973
+ o.http_checksum = {
2974
+ "requestAlgorithmMember" => "checksum_algorithm",
2975
+ "requestChecksumRequired" => true,
2976
+ }
2977
+ o.http_checksum = {
2978
+ "requestAlgorithmMember" => "checksum_algorithm",
2979
+ "requestChecksumRequired" => true,
2980
+ }
2981
+ o.input = Shapes::ShapeRef.new(shape: CreateBucketMetadataTableConfigurationRequest)
2982
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2983
+ end)
2984
+
2875
2985
  api.add_operation(:create_multipart_upload, Seahorse::Model::Operation.new.tap do |o|
2876
2986
  o.name = "CreateMultipartUpload"
2877
2987
  o.http_method = "POST"
@@ -2945,6 +3055,14 @@ module Aws::S3
2945
3055
  o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2946
3056
  end)
2947
3057
 
3058
+ api.add_operation(:delete_bucket_metadata_table_configuration, Seahorse::Model::Operation.new.tap do |o|
3059
+ o.name = "DeleteBucketMetadataTableConfiguration"
3060
+ o.http_method = "DELETE"
3061
+ o.http_request_uri = "/?metadataTable"
3062
+ o.input = Shapes::ShapeRef.new(shape: DeleteBucketMetadataTableConfigurationRequest)
3063
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
3064
+ end)
3065
+
2948
3066
  api.add_operation(:delete_bucket_metrics_configuration, Seahorse::Model::Operation.new.tap do |o|
2949
3067
  o.name = "DeleteBucketMetricsConfiguration"
2950
3068
  o.http_method = "DELETE"
@@ -3122,6 +3240,14 @@ module Aws::S3
3122
3240
  o.output = Shapes::ShapeRef.new(shape: GetBucketLoggingOutput)
3123
3241
  end)
3124
3242
 
3243
+ api.add_operation(:get_bucket_metadata_table_configuration, Seahorse::Model::Operation.new.tap do |o|
3244
+ o.name = "GetBucketMetadataTableConfiguration"
3245
+ o.http_method = "GET"
3246
+ o.http_request_uri = "/?metadataTable"
3247
+ o.input = Shapes::ShapeRef.new(shape: GetBucketMetadataTableConfigurationRequest)
3248
+ o.output = Shapes::ShapeRef.new(shape: GetBucketMetadataTableConfigurationOutput)
3249
+ end)
3250
+
3125
3251
  api.add_operation(:get_bucket_metrics_configuration, Seahorse::Model::Operation.new.tap do |o|
3126
3252
  o.name = "GetBucketMetricsConfiguration"
3127
3253
  o.http_method = "GET"
@@ -3217,11 +3343,11 @@ module Aws::S3
3217
3343
  o.http_request_uri = "/{Key+}"
3218
3344
  o.http_checksum = {
3219
3345
  "requestValidationModeMember" => "checksum_mode",
3220
- "responseAlgorithms" => ["CRC32", "CRC32C", "SHA256", "SHA1"],
3346
+ "responseAlgorithms" => ["CRC64NVME", "CRC32", "CRC32C", "SHA256", "SHA1"],
3221
3347
  }
3222
3348
  o.http_checksum = {
3223
3349
  "requestValidationModeMember" => "checksum_mode",
3224
- "responseAlgorithms" => ["CRC32", "CRC32C", "SHA256", "SHA1"],
3350
+ "responseAlgorithms" => ["CRC64NVME", "CRC32", "CRC32C", "SHA256", "SHA1"],
3225
3351
  }
3226
3352
  o.input = Shapes::ShapeRef.new(shape: GetObjectRequest)
3227
3353
  o.output = Shapes::ShapeRef.new(shape: GetObjectOutput)
@@ -94,6 +94,24 @@ module Aws::S3
94
94
  end
95
95
  return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
96
96
  end
97
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 19, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 19, 21, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
98
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
99
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
100
+ end
101
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
102
+ end
103
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 20, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 20, 22, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
104
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
105
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
106
+ end
107
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
108
+ end
109
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 26, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 26, 28, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
110
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
111
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
112
+ end
113
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
114
+ end
97
115
  raise ArgumentError, "Unrecognized S3Express bucket name format."
98
116
  end
99
117
  if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 14, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 14, 16, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
@@ -108,6 +126,24 @@ module Aws::S3
108
126
  end
109
127
  return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
110
128
  end
129
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 19, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 19, 21, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
130
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
131
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
132
+ end
133
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
134
+ end
135
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 20, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 20, 22, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
136
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
137
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
138
+ end
139
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
140
+ end
141
+ if (s3express_availability_zone_id = Aws::Endpoints::Matchers.substring(bucket, 6, 26, true)) && (s3express_availability_zone_delim = Aws::Endpoints::Matchers.substring(bucket, 26, 28, true)) && Aws::Endpoints::Matchers.string_equals?(s3express_availability_zone_delim, "--")
142
+ if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
143
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-fips-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
144
+ end
145
+ return Aws::Endpoints::Endpoint.new(url: "https://#{bucket}.s3express-#{s3express_availability_zone_id}.#{region}.amazonaws.com", headers: {}, properties: {"backend"=>"S3Express", "authSchemes"=>[{"disableDoubleEncoding"=>true, "name"=>"sigv4-s3express", "signingName"=>"s3express", "signingRegion"=>"#{region}"}]})
146
+ end
111
147
  raise ArgumentError, "Unrecognized S3Express bucket name format."
112
148
  end
113
149
  raise ArgumentError, "S3Express bucket name is not a valid virtual hostable name."
@@ -63,6 +63,18 @@ module Aws::S3
63
63
  end
64
64
  end
65
65
 
66
+ class CreateBucketMetadataTableConfiguration
67
+ def self.build(context)
68
+ Aws::S3::EndpointParameters.create(
69
+ context.config,
70
+ bucket: context.params[:bucket],
71
+ use_dual_stack: context[:use_dualstack_endpoint],
72
+ accelerate: context[:use_accelerate_endpoint],
73
+ use_s3_express_control_endpoint: true,
74
+ )
75
+ end
76
+ end
77
+
66
78
  class CreateMultipartUpload
67
79
  def self.build(context)
68
80
  Aws::S3::EndpointParameters.create(
@@ -171,6 +183,18 @@ module Aws::S3
171
183
  end
172
184
  end
173
185
 
186
+ class DeleteBucketMetadataTableConfiguration
187
+ def self.build(context)
188
+ Aws::S3::EndpointParameters.create(
189
+ context.config,
190
+ bucket: context.params[:bucket],
191
+ use_dual_stack: context[:use_dualstack_endpoint],
192
+ accelerate: context[:use_accelerate_endpoint],
193
+ use_s3_express_control_endpoint: true,
194
+ )
195
+ end
196
+ end
197
+
174
198
  class DeleteBucketMetricsConfiguration
175
199
  def self.build(context)
176
200
  Aws::S3::EndpointParameters.create(
@@ -421,6 +445,18 @@ module Aws::S3
421
445
  end
422
446
  end
423
447
 
448
+ class GetBucketMetadataTableConfiguration
449
+ def self.build(context)
450
+ Aws::S3::EndpointParameters.create(
451
+ context.config,
452
+ bucket: context.params[:bucket],
453
+ use_dual_stack: context[:use_dualstack_endpoint],
454
+ accelerate: context[:use_accelerate_endpoint],
455
+ use_s3_express_control_endpoint: true,
456
+ )
457
+ end
458
+ end
459
+
424
460
  class GetBucketMetricsConfiguration
425
461
  def self.build(context)
426
462
  Aws::S3::EndpointParameters.create(
@@ -1194,6 +1230,8 @@ module Aws::S3
1194
1230
  CopyObject.build(context)
1195
1231
  when :create_bucket
1196
1232
  CreateBucket.build(context)
1233
+ when :create_bucket_metadata_table_configuration
1234
+ CreateBucketMetadataTableConfiguration.build(context)
1197
1235
  when :create_multipart_upload
1198
1236
  CreateMultipartUpload.build(context)
1199
1237
  when :create_session
@@ -1212,6 +1250,8 @@ module Aws::S3
1212
1250
  DeleteBucketInventoryConfiguration.build(context)
1213
1251
  when :delete_bucket_lifecycle
1214
1252
  DeleteBucketLifecycle.build(context)
1253
+ when :delete_bucket_metadata_table_configuration
1254
+ DeleteBucketMetadataTableConfiguration.build(context)
1215
1255
  when :delete_bucket_metrics_configuration
1216
1256
  DeleteBucketMetricsConfiguration.build(context)
1217
1257
  when :delete_bucket_ownership_controls
@@ -1254,6 +1294,8 @@ module Aws::S3
1254
1294
  GetBucketLocation.build(context)
1255
1295
  when :get_bucket_logging
1256
1296
  GetBucketLogging.build(context)
1297
+ when :get_bucket_metadata_table_configuration
1298
+ GetBucketMetadataTableConfiguration.build(context)
1257
1299
  when :get_bucket_metrics_configuration
1258
1300
  GetBucketMetricsConfiguration.build(context)
1259
1301
  when :get_bucket_notification
@@ -28,18 +28,10 @@ module Aws
28
28
  @chunk_size = options[:chunk_size]
29
29
  @params = {
30
30
  bucket: options[:bucket],
31
- key: options[:key],
31
+ key: options[:key]
32
32
  }
33
33
  @params[:version_id] = options[:version_id] if options[:version_id]
34
-
35
- # checksum_mode only supports the value "ENABLED"
36
- # falsey values (false/nil) or "DISABLED" should be considered
37
- # disabled and the api parameter should be unset.
38
- if (checksum_mode = options.fetch(:checksum_mode, 'ENABLED'))
39
- @params[:checksum_mode] = checksum_mode unless checksum_mode.upcase == 'DISABLED'
40
- end
41
34
  @on_checksum_validated = options[:on_checksum_validated]
42
-
43
35
  @progress_callback = options[:progress_callback]
44
36
 
45
37
  validate!
@@ -67,11 +59,6 @@ module Aws
67
59
  private
68
60
 
69
61
  def validate!
70
- if @on_checksum_validated && @params[:checksum_mode] != 'ENABLED'
71
- raise ArgumentError, "You must set checksum_mode: 'ENABLED' " +
72
- "when providing a on_checksum_validated callback"
73
- end
74
-
75
62
  if @on_checksum_validated && !@on_checksum_validated.respond_to?(:call)
76
63
  raise ArgumentError, 'on_checksum_validated must be callable'
77
64
  end
@@ -164,9 +151,7 @@ module Aws
164
151
 
165
152
  def download_in_threads(pending, total_size)
166
153
  threads = []
167
- if @progress_callback
168
- progress = MultipartProgress.new(pending, total_size, @progress_callback)
169
- end
154
+ progress = MultipartProgress.new(pending, total_size, @progress_callback) if @progress_callback
170
155
  @thread_count.times do
171
156
  thread = Thread.new do
172
157
  begin
@@ -208,9 +193,7 @@ module Aws
208
193
 
209
194
  return resp unless @on_checksum_validated
210
195
 
211
- if resp.checksum_validated
212
- @on_checksum_validated.call(resp.checksum_validated, resp)
213
- end
196
+ @on_checksum_validated.call(resp.checksum_validated, resp) if resp.checksum_validated
214
197
 
215
198
  resp
216
199
  end
@@ -251,7 +234,7 @@ module Aws
251
234
  end
252
235
 
253
236
  # @api private
254
- class MultipartProgress
237
+ class MultipartProgress
255
238
  def initialize(parts, total_size, progress_callback)
256
239
  @bytes_received = Array.new(parts.size, 0)
257
240
  @part_sizes = parts.map(&:size)