aws-sdk-s3 1.220.0 → 1.232.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +89 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +26 -2
  5. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  6. data/lib/aws-sdk-s3/client.rb +869 -62
  7. data/lib/aws-sdk-s3/client_api.rb +301 -0
  8. data/lib/aws-sdk-s3/customizations/object.rb +55 -25
  9. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +14 -1
  10. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +13 -1
  11. data/lib/aws-sdk-s3/endpoint_provider.rb +6 -3
  12. data/lib/aws-sdk-s3/endpoints.rb +68 -0
  13. data/lib/aws-sdk-s3/errors.rb +66 -0
  14. data/lib/aws-sdk-s3/file_downloader.rb +3 -1
  15. data/lib/aws-sdk-s3/multipart_file_uploader.rb +1 -1
  16. data/lib/aws-sdk-s3/object.rb +150 -8
  17. data/lib/aws-sdk-s3/object_copier.rb +11 -22
  18. data/lib/aws-sdk-s3/object_multipart_copier.rb +177 -84
  19. data/lib/aws-sdk-s3/object_summary.rb +117 -8
  20. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +1 -1
  21. data/lib/aws-sdk-s3/transfer_manager.rb +44 -31
  22. data/lib/aws-sdk-s3/types.rb +1162 -46
  23. data/lib/aws-sdk-s3.rb +1 -1
  24. data/sig/bucket.rbs +7 -4
  25. data/sig/bucket_acl.rbs +1 -1
  26. data/sig/bucket_cors.rbs +1 -1
  27. data/sig/bucket_lifecycle.rbs +1 -1
  28. data/sig/bucket_lifecycle_configuration.rbs +4 -4
  29. data/sig/bucket_logging.rbs +1 -1
  30. data/sig/bucket_notification.rbs +9 -9
  31. data/sig/bucket_tagging.rbs +1 -1
  32. data/sig/bucket_website.rbs +1 -1
  33. data/sig/client.rbs +246 -198
  34. data/sig/errors.rbs +12 -0
  35. data/sig/multipart_upload.rbs +2 -2
  36. data/sig/object.rbs +32 -13
  37. data/sig/object_acl.rbs +1 -1
  38. data/sig/object_summary.rbs +22 -12
  39. data/sig/params.rbs +78 -0
  40. data/sig/resource.rbs +1 -1
  41. data/sig/types.rbs +249 -39
  42. metadata +4 -3
@@ -44,6 +44,19 @@ module Aws::S3
44
44
  AnalyticsId = Shapes::StringShape.new(name: 'AnalyticsId')
45
45
  AnalyticsS3BucketDestination = Shapes::StructureShape.new(name: 'AnalyticsS3BucketDestination')
46
46
  AnalyticsS3ExportFileFormat = Shapes::StringShape.new(name: 'AnalyticsS3ExportFileFormat')
47
+ AnnotationConfigurationState = Shapes::StringShape.new(name: 'AnnotationConfigurationState')
48
+ AnnotationCount = Shapes::IntegerShape.new(name: 'AnnotationCount')
49
+ AnnotationDirective = Shapes::StringShape.new(name: 'AnnotationDirective')
50
+ AnnotationEntry = Shapes::StructureShape.new(name: 'AnnotationEntry')
51
+ AnnotationLimitExceeded = Shapes::StructureShape.new(name: 'AnnotationLimitExceeded')
52
+ AnnotationList = Shapes::ListShape.new(name: 'AnnotationList')
53
+ AnnotationName = Shapes::StringShape.new(name: 'AnnotationName')
54
+ AnnotationNameTooLong = Shapes::StructureShape.new(name: 'AnnotationNameTooLong')
55
+ AnnotationPayload = Shapes::BlobShape.new(name: 'AnnotationPayload')
56
+ AnnotationPrefix = Shapes::StringShape.new(name: 'AnnotationPrefix')
57
+ AnnotationTableConfiguration = Shapes::StructureShape.new(name: 'AnnotationTableConfiguration')
58
+ AnnotationTableConfigurationResult = Shapes::StructureShape.new(name: 'AnnotationTableConfigurationResult')
59
+ AnnotationTableConfigurationUpdates = Shapes::StructureShape.new(name: 'AnnotationTableConfigurationUpdates')
47
60
  ArchiveStatus = Shapes::StringShape.new(name: 'ArchiveStatus')
48
61
  BlockedEncryptionTypes = Shapes::StructureShape.new(name: 'BlockedEncryptionTypes')
49
62
  Body = Shapes::BlobShape.new(name: 'Body')
@@ -166,6 +179,8 @@ module Aws::S3
166
179
  DeleteMarkerReplicationStatus = Shapes::StringShape.new(name: 'DeleteMarkerReplicationStatus')
167
180
  DeleteMarkerVersionId = Shapes::StringShape.new(name: 'DeleteMarkerVersionId')
168
181
  DeleteMarkers = Shapes::ListShape.new(name: 'DeleteMarkers', flattened: true)
182
+ DeleteObjectAnnotationOutput = Shapes::StructureShape.new(name: 'DeleteObjectAnnotationOutput')
183
+ DeleteObjectAnnotationRequest = Shapes::StructureShape.new(name: 'DeleteObjectAnnotationRequest')
169
184
  DeleteObjectOutput = Shapes::StructureShape.new(name: 'DeleteObjectOutput')
170
185
  DeleteObjectRequest = Shapes::StructureShape.new(name: 'DeleteObjectRequest')
171
186
  DeleteObjectTaggingOutput = Shapes::StructureShape.new(name: 'DeleteObjectTaggingOutput')
@@ -200,6 +215,7 @@ module Aws::S3
200
215
  Errors = Shapes::ListShape.new(name: 'Errors', flattened: true)
201
216
  Event = Shapes::StringShape.new(name: 'Event')
202
217
  EventBridgeConfiguration = Shapes::StructureShape.new(name: 'EventBridgeConfiguration')
218
+ EventHoldDuration = Shapes::StructureShape.new(name: 'EventHoldDuration')
203
219
  EventList = Shapes::ListShape.new(name: 'EventList', flattened: true)
204
220
  ExistingObjectReplication = Shapes::StructureShape.new(name: 'ExistingObjectReplication')
205
221
  ExistingObjectReplicationStatus = Shapes::StringShape.new(name: 'ExistingObjectReplicationStatus')
@@ -271,6 +287,8 @@ module Aws::S3
271
287
  GetBucketWebsiteRequest = Shapes::StructureShape.new(name: 'GetBucketWebsiteRequest')
272
288
  GetObjectAclOutput = Shapes::StructureShape.new(name: 'GetObjectAclOutput')
273
289
  GetObjectAclRequest = Shapes::StructureShape.new(name: 'GetObjectAclRequest')
290
+ GetObjectAnnotationOutput = Shapes::StructureShape.new(name: 'GetObjectAnnotationOutput')
291
+ GetObjectAnnotationRequest = Shapes::StructureShape.new(name: 'GetObjectAnnotationRequest')
274
292
  GetObjectAttributesOutput = Shapes::StructureShape.new(name: 'GetObjectAttributesOutput')
275
293
  GetObjectAttributesParts = Shapes::StructureShape.new(name: 'GetObjectAttributesParts')
276
294
  GetObjectAttributesRequest = Shapes::StructureShape.new(name: 'GetObjectAttributesRequest')
@@ -326,7 +344,9 @@ module Aws::S3
326
344
  IntelligentTieringFilter = Shapes::StructureShape.new(name: 'IntelligentTieringFilter')
327
345
  IntelligentTieringId = Shapes::StringShape.new(name: 'IntelligentTieringId')
328
346
  IntelligentTieringStatus = Shapes::StringShape.new(name: 'IntelligentTieringStatus')
347
+ InvalidAnnotationName = Shapes::StructureShape.new(name: 'InvalidAnnotationName')
329
348
  InvalidObjectState = Shapes::StructureShape.new(name: 'InvalidObjectState')
349
+ InvalidPrefix = Shapes::StructureShape.new(name: 'InvalidPrefix')
330
350
  InvalidRequest = Shapes::StructureShape.new(name: 'InvalidRequest')
331
351
  InvalidWriteOffset = Shapes::StructureShape.new(name: 'InvalidWriteOffset')
332
352
  InventoryConfiguration = Shapes::StructureShape.new(name: 'InventoryConfiguration')
@@ -387,6 +407,8 @@ module Aws::S3
387
407
  ListDirectoryBucketsRequest = Shapes::StructureShape.new(name: 'ListDirectoryBucketsRequest')
388
408
  ListMultipartUploadsOutput = Shapes::StructureShape.new(name: 'ListMultipartUploadsOutput')
389
409
  ListMultipartUploadsRequest = Shapes::StructureShape.new(name: 'ListMultipartUploadsRequest')
410
+ ListObjectAnnotationsOutput = Shapes::StructureShape.new(name: 'ListObjectAnnotationsOutput')
411
+ ListObjectAnnotationsRequest = Shapes::StructureShape.new(name: 'ListObjectAnnotationsRequest')
390
412
  ListObjectVersionsOutput = Shapes::StructureShape.new(name: 'ListObjectVersionsOutput')
391
413
  ListObjectVersionsRequest = Shapes::StructureShape.new(name: 'ListObjectVersionsRequest')
392
414
  ListObjectsOutput = Shapes::StructureShape.new(name: 'ListObjectsOutput')
@@ -406,6 +428,7 @@ module Aws::S3
406
428
  MFADeleteStatus = Shapes::StringShape.new(name: 'MFADeleteStatus')
407
429
  Marker = Shapes::StringShape.new(name: 'Marker')
408
430
  MaxAgeSeconds = Shapes::IntegerShape.new(name: 'MaxAgeSeconds')
431
+ MaxAnnotationResults = Shapes::IntegerShape.new(name: 'MaxAnnotationResults')
409
432
  MaxBuckets = Shapes::IntegerShape.new(name: 'MaxBuckets')
410
433
  MaxDirectoryBuckets = Shapes::IntegerShape.new(name: 'MaxDirectoryBuckets')
411
434
  MaxKeys = Shapes::IntegerShape.new(name: 'MaxKeys')
@@ -442,6 +465,7 @@ module Aws::S3
442
465
  NextToken = Shapes::StringShape.new(name: 'NextToken')
443
466
  NextUploadIdMarker = Shapes::StringShape.new(name: 'NextUploadIdMarker')
444
467
  NextVersionIdMarker = Shapes::StringShape.new(name: 'NextVersionIdMarker')
468
+ NoSuchAnnotation = Shapes::StructureShape.new(name: 'NoSuchAnnotation')
445
469
  NoSuchBucket = Shapes::StructureShape.new(name: 'NoSuchBucket')
446
470
  NoSuchKey = Shapes::StructureShape.new(name: 'NoSuchKey')
447
471
  NoSuchUpload = Shapes::StructureShape.new(name: 'NoSuchUpload')
@@ -461,11 +485,15 @@ module Aws::S3
461
485
  ObjectEncryption = Shapes::UnionShape.new(name: 'ObjectEncryption')
462
486
  ObjectIdentifier = Shapes::StructureShape.new(name: 'ObjectIdentifier')
463
487
  ObjectIdentifierList = Shapes::ListShape.new(name: 'ObjectIdentifierList', flattened: true)
488
+ ObjectIfMatch = Shapes::StringShape.new(name: 'ObjectIfMatch')
464
489
  ObjectKey = Shapes::StringShape.new(name: 'ObjectKey')
465
490
  ObjectList = Shapes::ListShape.new(name: 'ObjectList', flattened: true)
466
491
  ObjectLockConfiguration = Shapes::StructureShape.new(name: 'ObjectLockConfiguration')
467
492
  ObjectLockEnabled = Shapes::StringShape.new(name: 'ObjectLockEnabled')
468
493
  ObjectLockEnabledForBucket = Shapes::BooleanShape.new(name: 'ObjectLockEnabledForBucket')
494
+ ObjectLockEventHold = Shapes::StringShape.new(name: 'ObjectLockEventHold')
495
+ ObjectLockEventHoldDurationDays = Shapes::IntegerShape.new(name: 'ObjectLockEventHoldDurationDays')
496
+ ObjectLockEventHoldDurationYears = Shapes::IntegerShape.new(name: 'ObjectLockEventHoldDurationYears')
469
497
  ObjectLockLegalHold = Shapes::StructureShape.new(name: 'ObjectLockLegalHold')
470
498
  ObjectLockLegalHoldStatus = Shapes::StringShape.new(name: 'ObjectLockLegalHoldStatus')
471
499
  ObjectLockMode = Shapes::StringShape.new(name: 'ObjectLockMode')
@@ -537,6 +565,8 @@ module Aws::S3
537
565
  PutBucketWebsiteRequest = Shapes::StructureShape.new(name: 'PutBucketWebsiteRequest')
538
566
  PutObjectAclOutput = Shapes::StructureShape.new(name: 'PutObjectAclOutput')
539
567
  PutObjectAclRequest = Shapes::StructureShape.new(name: 'PutObjectAclRequest')
568
+ PutObjectAnnotationOutput = Shapes::StructureShape.new(name: 'PutObjectAnnotationOutput')
569
+ PutObjectAnnotationRequest = Shapes::StructureShape.new(name: 'PutObjectAnnotationRequest')
540
570
  PutObjectLegalHoldOutput = Shapes::StructureShape.new(name: 'PutObjectLegalHoldOutput')
541
571
  PutObjectLegalHoldRequest = Shapes::StructureShape.new(name: 'PutObjectLegalHoldRequest')
542
572
  PutObjectLockConfigurationOutput = Shapes::StructureShape.new(name: 'PutObjectLockConfigurationOutput')
@@ -686,6 +716,8 @@ module Aws::S3
686
716
  TransitionStorageClass = Shapes::StringShape.new(name: 'TransitionStorageClass')
687
717
  Type = Shapes::StringShape.new(name: 'Type')
688
718
  URI = Shapes::StringShape.new(name: 'URI')
719
+ UnsupportedMediaType = Shapes::StructureShape.new(name: 'UnsupportedMediaType')
720
+ UpdateBucketMetadataAnnotationTableConfigurationRequest = Shapes::StructureShape.new(name: 'UpdateBucketMetadataAnnotationTableConfigurationRequest')
689
721
  UpdateBucketMetadataInventoryTableConfigurationRequest = Shapes::StructureShape.new(name: 'UpdateBucketMetadataInventoryTableConfigurationRequest')
690
722
  UpdateBucketMetadataJournalTableConfigurationRequest = Shapes::StructureShape.new(name: 'UpdateBucketMetadataJournalTableConfigurationRequest')
691
723
  UpdateObjectEncryptionRequest = Shapes::StructureShape.new(name: 'UpdateObjectEncryptionRequest')
@@ -766,6 +798,38 @@ module Aws::S3
766
798
  AnalyticsS3BucketDestination.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location_name: "Prefix"))
767
799
  AnalyticsS3BucketDestination.struct_class = Types::AnalyticsS3BucketDestination
768
800
 
801
+ AnnotationEntry.add_member(:annotation_name, Shapes::ShapeRef.new(shape: AnnotationName, required: true, location_name: "AnnotationName"))
802
+ AnnotationEntry.add_member(:last_modified, Shapes::ShapeRef.new(shape: LastModified, required: true, location_name: "LastModified"))
803
+ AnnotationEntry.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
804
+ AnnotationEntry.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithmList, location_name: "ChecksumAlgorithm"))
805
+ AnnotationEntry.add_member(:size, Shapes::ShapeRef.new(shape: Size, required: true, location_name: "Size"))
806
+ AnnotationEntry.add_member(:replication_status, Shapes::ShapeRef.new(shape: ReplicationStatus, location_name: "ReplicationStatus"))
807
+ AnnotationEntry.struct_class = Types::AnnotationEntry
808
+
809
+ AnnotationLimitExceeded.struct_class = Types::AnnotationLimitExceeded
810
+
811
+ AnnotationList.member = Shapes::ShapeRef.new(shape: AnnotationEntry, location_name: "AnnotationEntry")
812
+
813
+ AnnotationNameTooLong.struct_class = Types::AnnotationNameTooLong
814
+
815
+ AnnotationTableConfiguration.add_member(:configuration_state, Shapes::ShapeRef.new(shape: AnnotationConfigurationState, required: true, location_name: "ConfigurationState"))
816
+ AnnotationTableConfiguration.add_member(:encryption_configuration, Shapes::ShapeRef.new(shape: MetadataTableEncryptionConfiguration, location_name: "EncryptionConfiguration"))
817
+ AnnotationTableConfiguration.add_member(:role, Shapes::ShapeRef.new(shape: Role, location_name: "Role"))
818
+ AnnotationTableConfiguration.struct_class = Types::AnnotationTableConfiguration
819
+
820
+ AnnotationTableConfigurationResult.add_member(:configuration_state, Shapes::ShapeRef.new(shape: AnnotationConfigurationState, required: true, location_name: "ConfigurationState"))
821
+ AnnotationTableConfigurationResult.add_member(:table_status, Shapes::ShapeRef.new(shape: MetadataTableStatus, location_name: "TableStatus"))
822
+ AnnotationTableConfigurationResult.add_member(:error, Shapes::ShapeRef.new(shape: ErrorDetails, location_name: "Error"))
823
+ AnnotationTableConfigurationResult.add_member(:table_name, Shapes::ShapeRef.new(shape: S3TablesName, location_name: "TableName"))
824
+ AnnotationTableConfigurationResult.add_member(:table_arn, Shapes::ShapeRef.new(shape: S3TablesArn, location_name: "TableArn"))
825
+ AnnotationTableConfigurationResult.add_member(:role, Shapes::ShapeRef.new(shape: Role, location_name: "Role"))
826
+ AnnotationTableConfigurationResult.struct_class = Types::AnnotationTableConfigurationResult
827
+
828
+ AnnotationTableConfigurationUpdates.add_member(:configuration_state, Shapes::ShapeRef.new(shape: AnnotationConfigurationState, required: true, location_name: "ConfigurationState"))
829
+ AnnotationTableConfigurationUpdates.add_member(:encryption_configuration, Shapes::ShapeRef.new(shape: MetadataTableEncryptionConfiguration, location_name: "EncryptionConfiguration"))
830
+ AnnotationTableConfigurationUpdates.add_member(:role, Shapes::ShapeRef.new(shape: Role, location_name: "Role"))
831
+ AnnotationTableConfigurationUpdates.struct_class = Types::AnnotationTableConfigurationUpdates
832
+
769
833
  BlockedEncryptionTypes.add_member(:encryption_type, Shapes::ShapeRef.new(shape: EncryptionTypeList, location_name: "EncryptionType"))
770
834
  BlockedEncryptionTypes.struct_class = Types::BlockedEncryptionTypes
771
835
 
@@ -961,6 +1025,7 @@ module Aws::S3
961
1025
  CopyObjectRequest.add_member(:metadata, Shapes::ShapeRef.new(shape: Metadata, location: "headers", location_name: "x-amz-meta-"))
962
1026
  CopyObjectRequest.add_member(:metadata_directive, Shapes::ShapeRef.new(shape: MetadataDirective, location: "header", location_name: "x-amz-metadata-directive"))
963
1027
  CopyObjectRequest.add_member(:tagging_directive, Shapes::ShapeRef.new(shape: TaggingDirective, location: "header", location_name: "x-amz-tagging-directive"))
1028
+ CopyObjectRequest.add_member(:annotation_directive, Shapes::ShapeRef.new(shape: AnnotationDirective, location: "header", location_name: "x-amz-object-annotation-directive"))
964
1029
  CopyObjectRequest.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
965
1030
  CopyObjectRequest.add_member(:storage_class, Shapes::ShapeRef.new(shape: StorageClass, location: "header", location_name: "x-amz-storage-class"))
966
1031
  CopyObjectRequest.add_member(:website_redirect_location, Shapes::ShapeRef.new(shape: WebsiteRedirectLocation, location: "header", location_name: "x-amz-website-redirect-location"))
@@ -978,6 +1043,9 @@ module Aws::S3
978
1043
  CopyObjectRequest.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
979
1044
  CopyObjectRequest.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
980
1045
  CopyObjectRequest.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
1046
+ CopyObjectRequest.add_member(:object_lock_event_hold, Shapes::ShapeRef.new(shape: ObjectLockEventHold, location: "header", location_name: "x-amz-object-lock-event-hold"))
1047
+ CopyObjectRequest.add_member(:object_lock_event_hold_duration_days, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationDays, location: "header", location_name: "x-amz-object-lock-event-hold-duration-days"))
1048
+ CopyObjectRequest.add_member(:object_lock_event_hold_duration_years, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationYears, location: "header", location_name: "x-amz-object-lock-event-hold-duration-years"))
981
1049
  CopyObjectRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
982
1050
  CopyObjectRequest.add_member(:expected_source_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-source-expected-bucket-owner"))
983
1051
  CopyObjectRequest.struct_class = Types::CopyObjectRequest
@@ -1098,6 +1166,9 @@ module Aws::S3
1098
1166
  CreateMultipartUploadRequest.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
1099
1167
  CreateMultipartUploadRequest.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
1100
1168
  CreateMultipartUploadRequest.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
1169
+ CreateMultipartUploadRequest.add_member(:object_lock_event_hold, Shapes::ShapeRef.new(shape: ObjectLockEventHold, location: "header", location_name: "x-amz-object-lock-event-hold"))
1170
+ CreateMultipartUploadRequest.add_member(:object_lock_event_hold_duration_days, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationDays, location: "header", location_name: "x-amz-object-lock-event-hold-duration-days"))
1171
+ CreateMultipartUploadRequest.add_member(:object_lock_event_hold_duration_years, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationYears, location: "header", location_name: "x-amz-object-lock-event-hold-duration-years"))
1101
1172
  CreateMultipartUploadRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1102
1173
  CreateMultipartUploadRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-checksum-algorithm"))
1103
1174
  CreateMultipartUploadRequest.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location: "header", location_name: "x-amz-checksum-type"))
@@ -1121,6 +1192,7 @@ module Aws::S3
1121
1192
  DefaultRetention.add_member(:mode, Shapes::ShapeRef.new(shape: ObjectLockRetentionMode, location_name: "Mode"))
1122
1193
  DefaultRetention.add_member(:days, Shapes::ShapeRef.new(shape: Days, location_name: "Days"))
1123
1194
  DefaultRetention.add_member(:years, Shapes::ShapeRef.new(shape: Years, location_name: "Years"))
1195
+ DefaultRetention.add_member(:default_event_hold, Shapes::ShapeRef.new(shape: EventHoldDuration, location_name: "DefaultEventHold"))
1124
1196
  DefaultRetention.struct_class = Types::DefaultRetention
1125
1197
 
1126
1198
  Delete.add_member(:objects, Shapes::ShapeRef.new(shape: ObjectIdentifierList, required: true, location_name: "Object"))
@@ -1203,6 +1275,19 @@ module Aws::S3
1203
1275
 
1204
1276
  DeleteMarkers.member = Shapes::ShapeRef.new(shape: DeleteMarkerEntry)
1205
1277
 
1278
+ DeleteObjectAnnotationOutput.add_member(:object_version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-object-version-id"))
1279
+ DeleteObjectAnnotationOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1280
+ DeleteObjectAnnotationOutput.struct_class = Types::DeleteObjectAnnotationOutput
1281
+
1282
+ DeleteObjectAnnotationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
1283
+ DeleteObjectAnnotationRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1284
+ DeleteObjectAnnotationRequest.add_member(:annotation_name, Shapes::ShapeRef.new(shape: AnnotationName, required: true, location: "querystring", location_name: "annotationName"))
1285
+ DeleteObjectAnnotationRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1286
+ DeleteObjectAnnotationRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1287
+ DeleteObjectAnnotationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1288
+ DeleteObjectAnnotationRequest.add_member(:object_if_match, Shapes::ShapeRef.new(shape: ObjectIfMatch, location: "header", location_name: "x-amz-object-if-match"))
1289
+ DeleteObjectAnnotationRequest.struct_class = Types::DeleteObjectAnnotationRequest
1290
+
1206
1291
  DeleteObjectOutput.add_member(:delete_marker, Shapes::ShapeRef.new(shape: DeleteMarker, location: "header", location_name: "x-amz-delete-marker"))
1207
1292
  DeleteObjectOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
1208
1293
  DeleteObjectOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
@@ -1302,6 +1387,10 @@ module Aws::S3
1302
1387
 
1303
1388
  EventBridgeConfiguration.struct_class = Types::EventBridgeConfiguration
1304
1389
 
1390
+ EventHoldDuration.add_member(:days, Shapes::ShapeRef.new(shape: Days, location_name: "Days"))
1391
+ EventHoldDuration.add_member(:years, Shapes::ShapeRef.new(shape: Years, location_name: "Years"))
1392
+ EventHoldDuration.struct_class = Types::EventHoldDuration
1393
+
1305
1394
  EventList.member = Shapes::ShapeRef.new(shape: Event)
1306
1395
 
1307
1396
  ExistingObjectReplication.add_member(:status, Shapes::ShapeRef.new(shape: ExistingObjectReplicationStatus, required: true, location_name: "Status"))
@@ -1536,6 +1625,38 @@ module Aws::S3
1536
1625
  GetObjectAclRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1537
1626
  GetObjectAclRequest.struct_class = Types::GetObjectAclRequest
1538
1627
 
1628
+ GetObjectAnnotationOutput.add_member(:annotation_payload, Shapes::ShapeRef.new(shape: AnnotationPayload, location_name: "AnnotationPayload", metadata: {"streaming" => true}))
1629
+ GetObjectAnnotationOutput.add_member(:object_version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-object-version-id"))
1630
+ GetObjectAnnotationOutput.add_member(:last_modified, Shapes::ShapeRef.new(shape: LastModified, location: "header", location_name: "Last-Modified"))
1631
+ GetObjectAnnotationOutput.add_member(:content_length, Shapes::ShapeRef.new(shape: ContentLength, location: "header", location_name: "Content-Length"))
1632
+ GetObjectAnnotationOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location: "header", location_name: "ETag"))
1633
+ GetObjectAnnotationOutput.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
1634
+ GetObjectAnnotationOutput.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
1635
+ GetObjectAnnotationOutput.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
1636
+ GetObjectAnnotationOutput.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
1637
+ GetObjectAnnotationOutput.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
1638
+ GetObjectAnnotationOutput.add_member(:checksum_sha512, Shapes::ShapeRef.new(shape: ChecksumSHA512, location: "header", location_name: "x-amz-checksum-sha512"))
1639
+ GetObjectAnnotationOutput.add_member(:checksum_md5, Shapes::ShapeRef.new(shape: ChecksumMD5, location: "header", location_name: "x-amz-checksum-md5"))
1640
+ GetObjectAnnotationOutput.add_member(:checksum_xxhash64, Shapes::ShapeRef.new(shape: ChecksumXXHASH64, location: "header", location_name: "x-amz-checksum-xxhash64"))
1641
+ GetObjectAnnotationOutput.add_member(:checksum_xxhash3, Shapes::ShapeRef.new(shape: ChecksumXXHASH3, location: "header", location_name: "x-amz-checksum-xxhash3"))
1642
+ GetObjectAnnotationOutput.add_member(:checksum_xxhash128, Shapes::ShapeRef.new(shape: ChecksumXXHASH128, location: "header", location_name: "x-amz-checksum-xxhash128"))
1643
+ GetObjectAnnotationOutput.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location: "header", location_name: "x-amz-checksum-type"))
1644
+ GetObjectAnnotationOutput.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
1645
+ GetObjectAnnotationOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1646
+ GetObjectAnnotationOutput.add_member(:replication_status, Shapes::ShapeRef.new(shape: ReplicationStatus, location: "header", location_name: "x-amz-replication-status"))
1647
+ GetObjectAnnotationOutput.struct_class = Types::GetObjectAnnotationOutput
1648
+ GetObjectAnnotationOutput[:payload] = :annotation_payload
1649
+ GetObjectAnnotationOutput[:payload_member] = GetObjectAnnotationOutput.member(:annotation_payload)
1650
+
1651
+ GetObjectAnnotationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
1652
+ GetObjectAnnotationRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam" => {"name" => "Key"}}))
1653
+ GetObjectAnnotationRequest.add_member(:annotation_name, Shapes::ShapeRef.new(shape: AnnotationName, required: true, location: "querystring", location_name: "annotationName"))
1654
+ GetObjectAnnotationRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1655
+ GetObjectAnnotationRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1656
+ GetObjectAnnotationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1657
+ GetObjectAnnotationRequest.add_member(:checksum_mode, Shapes::ShapeRef.new(shape: ChecksumMode, location: "header", location_name: "x-amz-checksum-mode"))
1658
+ GetObjectAnnotationRequest.struct_class = Types::GetObjectAnnotationRequest
1659
+
1539
1660
  GetObjectAttributesOutput.add_member(:delete_marker, Shapes::ShapeRef.new(shape: DeleteMarker, location: "header", location_name: "x-amz-delete-marker"))
1540
1661
  GetObjectAttributesOutput.add_member(:last_modified, Shapes::ShapeRef.new(shape: LastModified, location: "header", location_name: "Last-Modified"))
1541
1662
  GetObjectAttributesOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
@@ -1633,6 +1754,9 @@ module Aws::S3
1633
1754
  GetObjectOutput.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
1634
1755
  GetObjectOutput.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
1635
1756
  GetObjectOutput.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
1757
+ GetObjectOutput.add_member(:object_lock_event_hold, Shapes::ShapeRef.new(shape: ObjectLockEventHold, location: "header", location_name: "x-amz-object-lock-event-hold"))
1758
+ GetObjectOutput.add_member(:object_lock_event_hold_duration_days, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationDays, location: "header", location_name: "x-amz-object-lock-event-hold-duration-days"))
1759
+ GetObjectOutput.add_member(:object_lock_event_hold_duration_years, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationYears, location: "header", location_name: "x-amz-object-lock-event-hold-duration-years"))
1636
1760
  GetObjectOutput.struct_class = Types::GetObjectOutput
1637
1761
  GetObjectOutput[:payload] = :body
1638
1762
  GetObjectOutput[:payload_member] = GetObjectOutput.member(:body)
@@ -1775,6 +1899,9 @@ module Aws::S3
1775
1899
  HeadObjectOutput.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
1776
1900
  HeadObjectOutput.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
1777
1901
  HeadObjectOutput.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
1902
+ HeadObjectOutput.add_member(:object_lock_event_hold, Shapes::ShapeRef.new(shape: ObjectLockEventHold, location: "header", location_name: "x-amz-object-lock-event-hold"))
1903
+ HeadObjectOutput.add_member(:object_lock_event_hold_duration_days, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationDays, location: "header", location_name: "x-amz-object-lock-event-hold-duration-days"))
1904
+ HeadObjectOutput.add_member(:object_lock_event_hold_duration_years, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationYears, location: "header", location_name: "x-amz-object-lock-event-hold-duration-years"))
1778
1905
  HeadObjectOutput.struct_class = Types::HeadObjectOutput
1779
1906
 
1780
1907
  HeadObjectRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
@@ -1832,10 +1959,14 @@ module Aws::S3
1832
1959
  IntelligentTieringFilter.add_member(:and, Shapes::ShapeRef.new(shape: IntelligentTieringAndOperator, location_name: "And"))
1833
1960
  IntelligentTieringFilter.struct_class = Types::IntelligentTieringFilter
1834
1961
 
1962
+ InvalidAnnotationName.struct_class = Types::InvalidAnnotationName
1963
+
1835
1964
  InvalidObjectState.add_member(:storage_class, Shapes::ShapeRef.new(shape: StorageClass, location_name: "StorageClass"))
1836
1965
  InvalidObjectState.add_member(:access_tier, Shapes::ShapeRef.new(shape: IntelligentTieringAccessTier, location_name: "AccessTier"))
1837
1966
  InvalidObjectState.struct_class = Types::InvalidObjectState
1838
1967
 
1968
+ InvalidPrefix.struct_class = Types::InvalidPrefix
1969
+
1839
1970
  InvalidRequest.struct_class = Types::InvalidRequest
1840
1971
 
1841
1972
  InvalidWriteOffset.struct_class = Types::InvalidWriteOffset
@@ -2040,6 +2171,28 @@ module Aws::S3
2040
2171
  ListMultipartUploadsRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
2041
2172
  ListMultipartUploadsRequest.struct_class = Types::ListMultipartUploadsRequest
2042
2173
 
2174
+ ListObjectAnnotationsOutput.add_member(:annotations, Shapes::ShapeRef.new(shape: AnnotationList, location_name: "Annotations"))
2175
+ ListObjectAnnotationsOutput.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, location_name: "Bucket"))
2176
+ ListObjectAnnotationsOutput.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, location_name: "Key"))
2177
+ ListObjectAnnotationsOutput.add_member(:object_version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-object-version-id"))
2178
+ ListObjectAnnotationsOutput.add_member(:annotation_prefix, Shapes::ShapeRef.new(shape: AnnotationPrefix, location_name: "AnnotationPrefix"))
2179
+ ListObjectAnnotationsOutput.add_member(:max_annotation_results, Shapes::ShapeRef.new(shape: MaxAnnotationResults, location_name: "MaxAnnotationResults"))
2180
+ ListObjectAnnotationsOutput.add_member(:annotation_count, Shapes::ShapeRef.new(shape: AnnotationCount, location_name: "AnnotationCount"))
2181
+ ListObjectAnnotationsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location_name: "ContinuationToken"))
2182
+ ListObjectAnnotationsOutput.add_member(:next_continuation_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextContinuationToken"))
2183
+ ListObjectAnnotationsOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
2184
+ ListObjectAnnotationsOutput.struct_class = Types::ListObjectAnnotationsOutput
2185
+
2186
+ ListObjectAnnotationsRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
2187
+ ListObjectAnnotationsRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
2188
+ ListObjectAnnotationsRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
2189
+ ListObjectAnnotationsRequest.add_member(:max_annotation_results, Shapes::ShapeRef.new(shape: MaxAnnotationResults, location: "querystring", location_name: "max-annotation-results"))
2190
+ ListObjectAnnotationsRequest.add_member(:annotation_prefix, Shapes::ShapeRef.new(shape: AnnotationPrefix, location: "querystring", location_name: "annotation-prefix"))
2191
+ ListObjectAnnotationsRequest.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location: "querystring", location_name: "continuation-token"))
2192
+ ListObjectAnnotationsRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
2193
+ ListObjectAnnotationsRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
2194
+ ListObjectAnnotationsRequest.struct_class = Types::ListObjectAnnotationsRequest
2195
+
2043
2196
  ListObjectVersionsOutput.add_member(:is_truncated, Shapes::ShapeRef.new(shape: IsTruncated, location_name: "IsTruncated"))
2044
2197
  ListObjectVersionsOutput.add_member(:key_marker, Shapes::ShapeRef.new(shape: KeyMarker, location_name: "KeyMarker"))
2045
2198
  ListObjectVersionsOutput.add_member(:version_id_marker, Shapes::ShapeRef.new(shape: VersionIdMarker, location_name: "VersionIdMarker"))
@@ -2165,11 +2318,13 @@ module Aws::S3
2165
2318
 
2166
2319
  MetadataConfiguration.add_member(:journal_table_configuration, Shapes::ShapeRef.new(shape: JournalTableConfiguration, required: true, location_name: "JournalTableConfiguration"))
2167
2320
  MetadataConfiguration.add_member(:inventory_table_configuration, Shapes::ShapeRef.new(shape: InventoryTableConfiguration, location_name: "InventoryTableConfiguration"))
2321
+ MetadataConfiguration.add_member(:annotation_table_configuration, Shapes::ShapeRef.new(shape: AnnotationTableConfiguration, location_name: "AnnotationTableConfiguration"))
2168
2322
  MetadataConfiguration.struct_class = Types::MetadataConfiguration
2169
2323
 
2170
2324
  MetadataConfigurationResult.add_member(:destination_result, Shapes::ShapeRef.new(shape: DestinationResult, required: true, location_name: "DestinationResult"))
2171
2325
  MetadataConfigurationResult.add_member(:journal_table_configuration_result, Shapes::ShapeRef.new(shape: JournalTableConfigurationResult, location_name: "JournalTableConfigurationResult"))
2172
2326
  MetadataConfigurationResult.add_member(:inventory_table_configuration_result, Shapes::ShapeRef.new(shape: InventoryTableConfigurationResult, location_name: "InventoryTableConfigurationResult"))
2327
+ MetadataConfigurationResult.add_member(:annotation_table_configuration_result, Shapes::ShapeRef.new(shape: AnnotationTableConfigurationResult, location_name: "AnnotationTableConfigurationResult"))
2173
2328
  MetadataConfigurationResult.struct_class = Types::MetadataConfigurationResult
2174
2329
 
2175
2330
  MetadataEntry.add_member(:name, Shapes::ShapeRef.new(shape: MetadataKey, location_name: "Name"))
@@ -2219,6 +2374,8 @@ module Aws::S3
2219
2374
 
2220
2375
  MultipartUploadList.member = Shapes::ShapeRef.new(shape: MultipartUpload)
2221
2376
 
2377
+ NoSuchAnnotation.struct_class = Types::NoSuchAnnotation
2378
+
2222
2379
  NoSuchBucket.struct_class = Types::NoSuchBucket
2223
2380
 
2224
2381
  NoSuchKey.struct_class = Types::NoSuchKey
@@ -2291,6 +2448,8 @@ module Aws::S3
2291
2448
 
2292
2449
  ObjectLockRetention.add_member(:mode, Shapes::ShapeRef.new(shape: ObjectLockRetentionMode, location_name: "Mode"))
2293
2450
  ObjectLockRetention.add_member(:retain_until_date, Shapes::ShapeRef.new(shape: Date, location_name: "RetainUntilDate"))
2451
+ ObjectLockRetention.add_member(:event_hold, Shapes::ShapeRef.new(shape: ObjectLockEventHold, location_name: "EventHold"))
2452
+ ObjectLockRetention.add_member(:event_hold_duration, Shapes::ShapeRef.new(shape: EventHoldDuration, location_name: "EventHoldDuration"))
2294
2453
  ObjectLockRetention.struct_class = Types::ObjectLockRetention
2295
2454
 
2296
2455
  ObjectLockRule.add_member(:default_retention, Shapes::ShapeRef.new(shape: DefaultRetention, location_name: "DefaultRetention"))
@@ -2606,6 +2765,49 @@ module Aws::S3
2606
2765
  PutObjectAclRequest[:payload] = :access_control_policy
2607
2766
  PutObjectAclRequest[:payload_member] = PutObjectAclRequest.member(:access_control_policy)
2608
2767
 
2768
+ PutObjectAnnotationOutput.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, location_name: "Key"))
2769
+ PutObjectAnnotationOutput.add_member(:annotation_name, Shapes::ShapeRef.new(shape: AnnotationName, location_name: "AnnotationName"))
2770
+ PutObjectAnnotationOutput.add_member(:object_version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-object-version-id"))
2771
+ PutObjectAnnotationOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location: "header", location_name: "ETag"))
2772
+ PutObjectAnnotationOutput.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
2773
+ PutObjectAnnotationOutput.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
2774
+ PutObjectAnnotationOutput.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
2775
+ PutObjectAnnotationOutput.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
2776
+ PutObjectAnnotationOutput.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
2777
+ PutObjectAnnotationOutput.add_member(:checksum_sha512, Shapes::ShapeRef.new(shape: ChecksumSHA512, location: "header", location_name: "x-amz-checksum-sha512"))
2778
+ PutObjectAnnotationOutput.add_member(:checksum_md5, Shapes::ShapeRef.new(shape: ChecksumMD5, location: "header", location_name: "x-amz-checksum-md5"))
2779
+ PutObjectAnnotationOutput.add_member(:checksum_xxhash64, Shapes::ShapeRef.new(shape: ChecksumXXHASH64, location: "header", location_name: "x-amz-checksum-xxhash64"))
2780
+ PutObjectAnnotationOutput.add_member(:checksum_xxhash3, Shapes::ShapeRef.new(shape: ChecksumXXHASH3, location: "header", location_name: "x-amz-checksum-xxhash3"))
2781
+ PutObjectAnnotationOutput.add_member(:checksum_xxhash128, Shapes::ShapeRef.new(shape: ChecksumXXHASH128, location: "header", location_name: "x-amz-checksum-xxhash128"))
2782
+ PutObjectAnnotationOutput.add_member(:checksum_type, Shapes::ShapeRef.new(shape: ChecksumType, location: "header", location_name: "x-amz-checksum-type"))
2783
+ PutObjectAnnotationOutput.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
2784
+ PutObjectAnnotationOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
2785
+ PutObjectAnnotationOutput.struct_class = Types::PutObjectAnnotationOutput
2786
+
2787
+ PutObjectAnnotationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
2788
+ PutObjectAnnotationRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key", metadata: {"contextParam" => {"name" => "Key"}}))
2789
+ PutObjectAnnotationRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
2790
+ PutObjectAnnotationRequest.add_member(:annotation_name, Shapes::ShapeRef.new(shape: AnnotationName, required: true, location: "querystring", location_name: "annotationName"))
2791
+ PutObjectAnnotationRequest.add_member(:annotation_payload, Shapes::ShapeRef.new(shape: AnnotationPayload, required: true, location_name: "AnnotationPayload", metadata: {"streaming" => true}))
2792
+ PutObjectAnnotationRequest.add_member(:object_if_match, Shapes::ShapeRef.new(shape: ObjectIfMatch, location: "header", location_name: "x-amz-object-if-match"))
2793
+ PutObjectAnnotationRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-sdk-checksum-algorithm"))
2794
+ PutObjectAnnotationRequest.add_member(:checksum_crc32, Shapes::ShapeRef.new(shape: ChecksumCRC32, location: "header", location_name: "x-amz-checksum-crc32"))
2795
+ PutObjectAnnotationRequest.add_member(:checksum_crc32c, Shapes::ShapeRef.new(shape: ChecksumCRC32C, location: "header", location_name: "x-amz-checksum-crc32c"))
2796
+ PutObjectAnnotationRequest.add_member(:checksum_crc64nvme, Shapes::ShapeRef.new(shape: ChecksumCRC64NVME, location: "header", location_name: "x-amz-checksum-crc64nvme"))
2797
+ PutObjectAnnotationRequest.add_member(:checksum_sha1, Shapes::ShapeRef.new(shape: ChecksumSHA1, location: "header", location_name: "x-amz-checksum-sha1"))
2798
+ PutObjectAnnotationRequest.add_member(:checksum_sha256, Shapes::ShapeRef.new(shape: ChecksumSHA256, location: "header", location_name: "x-amz-checksum-sha256"))
2799
+ PutObjectAnnotationRequest.add_member(:checksum_sha512, Shapes::ShapeRef.new(shape: ChecksumSHA512, location: "header", location_name: "x-amz-checksum-sha512"))
2800
+ PutObjectAnnotationRequest.add_member(:checksum_md5, Shapes::ShapeRef.new(shape: ChecksumMD5, location: "header", location_name: "x-amz-checksum-md5"))
2801
+ PutObjectAnnotationRequest.add_member(:checksum_xxhash64, Shapes::ShapeRef.new(shape: ChecksumXXHASH64, location: "header", location_name: "x-amz-checksum-xxhash64"))
2802
+ PutObjectAnnotationRequest.add_member(:checksum_xxhash3, Shapes::ShapeRef.new(shape: ChecksumXXHASH3, location: "header", location_name: "x-amz-checksum-xxhash3"))
2803
+ PutObjectAnnotationRequest.add_member(:checksum_xxhash128, Shapes::ShapeRef.new(shape: ChecksumXXHASH128, location: "header", location_name: "x-amz-checksum-xxhash128"))
2804
+ PutObjectAnnotationRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
2805
+ PutObjectAnnotationRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
2806
+ PutObjectAnnotationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
2807
+ PutObjectAnnotationRequest.struct_class = Types::PutObjectAnnotationRequest
2808
+ PutObjectAnnotationRequest[:payload] = :annotation_payload
2809
+ PutObjectAnnotationRequest[:payload_member] = PutObjectAnnotationRequest.member(:annotation_payload)
2810
+
2609
2811
  PutObjectLegalHoldOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
2610
2812
  PutObjectLegalHoldOutput.struct_class = Types::PutObjectLegalHoldOutput
2611
2813
 
@@ -2704,6 +2906,9 @@ module Aws::S3
2704
2906
  PutObjectRequest.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
2705
2907
  PutObjectRequest.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
2706
2908
  PutObjectRequest.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
2909
+ PutObjectRequest.add_member(:object_lock_event_hold, Shapes::ShapeRef.new(shape: ObjectLockEventHold, location: "header", location_name: "x-amz-object-lock-event-hold"))
2910
+ PutObjectRequest.add_member(:object_lock_event_hold_duration_days, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationDays, location: "header", location_name: "x-amz-object-lock-event-hold-duration-days"))
2911
+ PutObjectRequest.add_member(:object_lock_event_hold_duration_years, Shapes::ShapeRef.new(shape: ObjectLockEventHoldDurationYears, location: "header", location_name: "x-amz-object-lock-event-hold-duration-years"))
2707
2912
  PutObjectRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
2708
2913
  PutObjectRequest.struct_class = Types::PutObjectRequest
2709
2914
  PutObjectRequest[:payload] = :body
@@ -3045,6 +3250,17 @@ module Aws::S3
3045
3250
 
3046
3251
  TransitionList.member = Shapes::ShapeRef.new(shape: Transition)
3047
3252
 
3253
+ UnsupportedMediaType.struct_class = Types::UnsupportedMediaType
3254
+
3255
+ UpdateBucketMetadataAnnotationTableConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
3256
+ UpdateBucketMetadataAnnotationTableConfigurationRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
3257
+ UpdateBucketMetadataAnnotationTableConfigurationRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-sdk-checksum-algorithm"))
3258
+ UpdateBucketMetadataAnnotationTableConfigurationRequest.add_member(:annotation_table_configuration, Shapes::ShapeRef.new(shape: AnnotationTableConfigurationUpdates, required: true, location_name: "AnnotationTableConfiguration", metadata: {"xmlNamespace" => {"uri" => "http://s3.amazonaws.com/doc/2006-03-01/"}}))
3259
+ UpdateBucketMetadataAnnotationTableConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
3260
+ UpdateBucketMetadataAnnotationTableConfigurationRequest.struct_class = Types::UpdateBucketMetadataAnnotationTableConfigurationRequest
3261
+ UpdateBucketMetadataAnnotationTableConfigurationRequest[:payload] = :annotation_table_configuration
3262
+ UpdateBucketMetadataAnnotationTableConfigurationRequest[:payload_member] = UpdateBucketMetadataAnnotationTableConfigurationRequest.member(:annotation_table_configuration)
3263
+
3048
3264
  UpdateBucketMetadataInventoryTableConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket", metadata: {"contextParam" => {"name" => "Bucket"}}))
3049
3265
  UpdateBucketMetadataInventoryTableConfigurationRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
3050
3266
  UpdateBucketMetadataInventoryTableConfigurationRequest.add_member(:checksum_algorithm, Shapes::ShapeRef.new(shape: ChecksumAlgorithm, location: "header", location_name: "x-amz-sdk-checksum-algorithm"))
@@ -3452,6 +3668,16 @@ module Aws::S3
3452
3668
  o.output = Shapes::ShapeRef.new(shape: DeleteObjectOutput)
3453
3669
  end)
3454
3670
 
3671
+ api.add_operation(:delete_object_annotation, Seahorse::Model::Operation.new.tap do |o|
3672
+ o.name = "DeleteObjectAnnotation"
3673
+ o.http_method = "DELETE"
3674
+ o.http_request_uri = "/{Key+}?annotation"
3675
+ o.input = Shapes::ShapeRef.new(shape: DeleteObjectAnnotationRequest)
3676
+ o.output = Shapes::ShapeRef.new(shape: DeleteObjectAnnotationOutput)
3677
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
3678
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
3679
+ end)
3680
+
3455
3681
  api.add_operation(:delete_object_tagging, Seahorse::Model::Operation.new.tap do |o|
3456
3682
  o.name = "DeleteObjectTagging"
3457
3683
  o.http_method = "DELETE"
@@ -3713,6 +3939,25 @@ module Aws::S3
3713
3939
  o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
3714
3940
  end)
3715
3941
 
3942
+ api.add_operation(:get_object_annotation, Seahorse::Model::Operation.new.tap do |o|
3943
+ o.name = "GetObjectAnnotation"
3944
+ o.http_method = "GET"
3945
+ o.http_request_uri = "/{Key+}?annotation"
3946
+ o.http_checksum = {
3947
+ "requestValidationModeMember" => "checksum_mode",
3948
+ "responseAlgorithms" => ["CRC64NVME", "CRC32", "CRC32C", "SHA256", "SHA1", "SHA512", "MD5", "XXHASH64", "XXHASH3", "XXHASH128"],
3949
+ }
3950
+ o.http_checksum = {
3951
+ "requestValidationModeMember" => "checksum_mode",
3952
+ "responseAlgorithms" => ["CRC64NVME", "CRC32", "CRC32C", "SHA256", "SHA1", "SHA512", "MD5", "XXHASH64", "XXHASH3", "XXHASH128"],
3953
+ }
3954
+ o.input = Shapes::ShapeRef.new(shape: GetObjectAnnotationRequest)
3955
+ o.output = Shapes::ShapeRef.new(shape: GetObjectAnnotationOutput)
3956
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
3957
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
3958
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchAnnotation)
3959
+ end)
3960
+
3716
3961
  api.add_operation(:get_object_attributes, Seahorse::Model::Operation.new.tap do |o|
3717
3962
  o.name = "GetObjectAttributes"
3718
3963
  o.http_method = "GET"
@@ -3864,6 +4109,23 @@ module Aws::S3
3864
4109
  )
3865
4110
  end)
3866
4111
 
4112
+ api.add_operation(:list_object_annotations, Seahorse::Model::Operation.new.tap do |o|
4113
+ o.name = "ListObjectAnnotations"
4114
+ o.http_method = "GET"
4115
+ o.http_request_uri = "/{Key+}?annotation"
4116
+ o.input = Shapes::ShapeRef.new(shape: ListObjectAnnotationsRequest)
4117
+ o.output = Shapes::ShapeRef.new(shape: ListObjectAnnotationsOutput)
4118
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
4119
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
4120
+ o.errors << Shapes::ShapeRef.new(shape: InvalidPrefix)
4121
+ o[:pager] = Aws::Pager.new(
4122
+ limit_key: "max_annotation_results",
4123
+ tokens: {
4124
+ "next_continuation_token" => "continuation_token"
4125
+ }
4126
+ )
4127
+ end)
4128
+
3867
4129
  api.add_operation(:list_object_versions, Seahorse::Model::Operation.new.tap do |o|
3868
4130
  o.name = "ListObjectVersions"
3869
4131
  o.http_method = "GET"
@@ -4262,6 +4524,29 @@ module Aws::S3
4262
4524
  o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
4263
4525
  end)
4264
4526
 
4527
+ api.add_operation(:put_object_annotation, Seahorse::Model::Operation.new.tap do |o|
4528
+ o.name = "PutObjectAnnotation"
4529
+ o.http_method = "PUT"
4530
+ o.http_request_uri = "/{Key+}?annotation"
4531
+ o.http_checksum = {
4532
+ "requestAlgorithmMember" => "checksum_algorithm",
4533
+ "requestChecksumRequired" => false,
4534
+ }
4535
+ o.http_checksum = {
4536
+ "requestAlgorithmMember" => "checksum_algorithm",
4537
+ "requestChecksumRequired" => false,
4538
+ }
4539
+ o.input = Shapes::ShapeRef.new(shape: PutObjectAnnotationRequest)
4540
+ o.output = Shapes::ShapeRef.new(shape: PutObjectAnnotationOutput)
4541
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchBucket)
4542
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
4543
+ o.errors << Shapes::ShapeRef.new(shape: InvalidRequest)
4544
+ o.errors << Shapes::ShapeRef.new(shape: AnnotationNameTooLong)
4545
+ o.errors << Shapes::ShapeRef.new(shape: AnnotationLimitExceeded)
4546
+ o.errors << Shapes::ShapeRef.new(shape: InvalidAnnotationName)
4547
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedMediaType)
4548
+ end)
4549
+
4265
4550
  api.add_operation(:put_object_legal_hold, Seahorse::Model::Operation.new.tap do |o|
4266
4551
  o.name = "PutObjectLegalHold"
4267
4552
  o.http_method = "PUT"
@@ -4381,6 +4666,22 @@ module Aws::S3
4381
4666
  o.output = Shapes::ShapeRef.new(shape: SelectObjectContentOutput)
4382
4667
  end)
4383
4668
 
4669
+ api.add_operation(:update_bucket_metadata_annotation_table_configuration, Seahorse::Model::Operation.new.tap do |o|
4670
+ o.name = "UpdateBucketMetadataAnnotationTableConfiguration"
4671
+ o.http_method = "PUT"
4672
+ o.http_request_uri = "/?metadataAnnotationTable"
4673
+ o.http_checksum = {
4674
+ "requestAlgorithmMember" => "checksum_algorithm",
4675
+ "requestChecksumRequired" => true,
4676
+ }
4677
+ o.http_checksum = {
4678
+ "requestAlgorithmMember" => "checksum_algorithm",
4679
+ "requestChecksumRequired" => true,
4680
+ }
4681
+ o.input = Shapes::ShapeRef.new(shape: UpdateBucketMetadataAnnotationTableConfigurationRequest)
4682
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
4683
+ end)
4684
+
4384
4685
  api.add_operation(:update_bucket_metadata_inventory_table_configuration, Seahorse::Model::Operation.new.tap do |o|
4385
4686
  o.name = "UpdateBucketMetadataInventoryTableConfiguration"
4386
4687
  o.http_method = "PUT"