aws-sdk-s3 1.9.0 → 1.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-sdk-s3/bucket.rb +22 -3
  3. data/lib/aws-sdk-s3/bucket_acl.rb +1 -0
  4. data/lib/aws-sdk-s3/bucket_cors.rb +1 -0
  5. data/lib/aws-sdk-s3/bucket_lifecycle.rb +3 -2
  6. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +3 -2
  7. data/lib/aws-sdk-s3/bucket_notification.rb +9 -5
  8. data/lib/aws-sdk-s3/bucket_tagging.rb +1 -0
  9. data/lib/aws-sdk-s3/bucket_website.rb +4 -0
  10. data/lib/aws-sdk-s3/client.rb +1303 -351
  11. data/lib/aws-sdk-s3/client_api.rb +352 -2
  12. data/lib/aws-sdk-s3/customizations/bucket.rb +2 -2
  13. data/lib/aws-sdk-s3/customizations/object.rb +60 -0
  14. data/lib/aws-sdk-s3/customizations/object_summary.rb +7 -0
  15. data/lib/aws-sdk-s3/customizations.rb +1 -0
  16. data/lib/aws-sdk-s3/encryption/client.rb +1 -1
  17. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +9 -3
  18. data/lib/aws-sdk-s3/event_streams.rb +62 -0
  19. data/lib/aws-sdk-s3/file_downloader.rb +10 -9
  20. data/lib/aws-sdk-s3/file_part.rb +5 -7
  21. data/lib/aws-sdk-s3/file_uploader.rb +1 -3
  22. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +162 -0
  23. data/lib/aws-sdk-s3/multipart_upload.rb +1 -0
  24. data/lib/aws-sdk-s3/multipart_upload_part.rb +2 -2
  25. data/lib/aws-sdk-s3/object.rb +71 -7
  26. data/lib/aws-sdk-s3/object_acl.rb +1 -0
  27. data/lib/aws-sdk-s3/object_summary.rb +54 -7
  28. data/lib/aws-sdk-s3/object_version.rb +11 -0
  29. data/lib/aws-sdk-s3/plugins/accelerate.rb +4 -0
  30. data/lib/aws-sdk-s3/plugins/md5s.rb +4 -1
  31. data/lib/aws-sdk-s3/plugins/redirects.rb +3 -1
  32. data/lib/aws-sdk-s3/plugins/s3_signer.rb +6 -1
  33. data/lib/aws-sdk-s3/presigner.rb +4 -0
  34. data/lib/aws-sdk-s3/resource.rb +4 -0
  35. data/lib/aws-sdk-s3/types.rb +1539 -227
  36. data/lib/aws-sdk-s3.rb +2 -1
  37. metadata +12 -4
@@ -21,6 +21,7 @@ module Aws::S3
21
21
  AccessControlPolicy = Shapes::StructureShape.new(name: 'AccessControlPolicy')
22
22
  AccessControlTranslation = Shapes::StructureShape.new(name: 'AccessControlTranslation')
23
23
  AccountId = Shapes::StringShape.new(name: 'AccountId')
24
+ AllowQuotedRecordDelimiter = Shapes::BooleanShape.new(name: 'AllowQuotedRecordDelimiter')
24
25
  AllowedHeader = Shapes::StringShape.new(name: 'AllowedHeader')
25
26
  AllowedHeaders = Shapes::ListShape.new(name: 'AllowedHeaders', flattened: true)
26
27
  AllowedMethod = Shapes::StringShape.new(name: 'AllowedMethod')
@@ -48,7 +49,9 @@ module Aws::S3
48
49
  BucketName = Shapes::StringShape.new(name: 'BucketName')
49
50
  BucketVersioningStatus = Shapes::StringShape.new(name: 'BucketVersioningStatus')
50
51
  Buckets = Shapes::ListShape.new(name: 'Buckets')
52
+ BypassGovernanceRetention = Shapes::BooleanShape.new(name: 'BypassGovernanceRetention')
51
53
  BytesProcessed = Shapes::IntegerShape.new(name: 'BytesProcessed')
54
+ BytesReturned = Shapes::IntegerShape.new(name: 'BytesReturned')
52
55
  BytesScanned = Shapes::IntegerShape.new(name: 'BytesScanned')
53
56
  CORSConfiguration = Shapes::StructureShape.new(name: 'CORSConfiguration')
54
57
  CORSRule = Shapes::StructureShape.new(name: 'CORSRule')
@@ -78,6 +81,7 @@ module Aws::S3
78
81
  ContentMD5 = Shapes::StringShape.new(name: 'ContentMD5')
79
82
  ContentRange = Shapes::StringShape.new(name: 'ContentRange')
80
83
  ContentType = Shapes::StringShape.new(name: 'ContentType')
84
+ ContinuationEvent = Shapes::StructureShape.new(name: 'ContinuationEvent')
81
85
  CopyObjectOutput = Shapes::StructureShape.new(name: 'CopyObjectOutput')
82
86
  CopyObjectRequest = Shapes::StructureShape.new(name: 'CopyObjectRequest')
83
87
  CopyObjectResult = Shapes::StructureShape.new(name: 'CopyObjectResult')
@@ -101,6 +105,7 @@ module Aws::S3
101
105
  Date = Shapes::TimestampShape.new(name: 'Date', timestampFormat: "iso8601")
102
106
  Days = Shapes::IntegerShape.new(name: 'Days')
103
107
  DaysAfterInitiation = Shapes::IntegerShape.new(name: 'DaysAfterInitiation')
108
+ DefaultRetention = Shapes::StructureShape.new(name: 'DefaultRetention')
104
109
  Delete = Shapes::StructureShape.new(name: 'Delete')
105
110
  DeleteBucketAnalyticsConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketAnalyticsConfigurationRequest')
106
111
  DeleteBucketCorsRequest = Shapes::StructureShape.new(name: 'DeleteBucketCorsRequest')
@@ -115,6 +120,8 @@ module Aws::S3
115
120
  DeleteBucketWebsiteRequest = Shapes::StructureShape.new(name: 'DeleteBucketWebsiteRequest')
116
121
  DeleteMarker = Shapes::BooleanShape.new(name: 'DeleteMarker')
117
122
  DeleteMarkerEntry = Shapes::StructureShape.new(name: 'DeleteMarkerEntry')
123
+ DeleteMarkerReplication = Shapes::StructureShape.new(name: 'DeleteMarkerReplication')
124
+ DeleteMarkerReplicationStatus = Shapes::StringShape.new(name: 'DeleteMarkerReplicationStatus')
118
125
  DeleteMarkerVersionId = Shapes::StringShape.new(name: 'DeleteMarkerVersionId')
119
126
  DeleteMarkers = Shapes::ListShape.new(name: 'DeleteMarkers', flattened: true)
120
127
  DeleteObjectOutput = Shapes::StructureShape.new(name: 'DeleteObjectOutput')
@@ -123,6 +130,7 @@ module Aws::S3
123
130
  DeleteObjectTaggingRequest = Shapes::StructureShape.new(name: 'DeleteObjectTaggingRequest')
124
131
  DeleteObjectsOutput = Shapes::StructureShape.new(name: 'DeleteObjectsOutput')
125
132
  DeleteObjectsRequest = Shapes::StructureShape.new(name: 'DeleteObjectsRequest')
133
+ DeletePublicAccessBlockRequest = Shapes::StructureShape.new(name: 'DeletePublicAccessBlockRequest')
126
134
  DeletedObject = Shapes::StructureShape.new(name: 'DeletedObject')
127
135
  DeletedObjects = Shapes::ListShape.new(name: 'DeletedObjects', flattened: true)
128
136
  Delimiter = Shapes::StringShape.new(name: 'Delimiter')
@@ -135,6 +143,7 @@ module Aws::S3
135
143
  EncodingType = Shapes::StringShape.new(name: 'EncodingType')
136
144
  Encryption = Shapes::StructureShape.new(name: 'Encryption')
137
145
  EncryptionConfiguration = Shapes::StructureShape.new(name: 'EncryptionConfiguration')
146
+ EndEvent = Shapes::StructureShape.new(name: 'EndEvent')
138
147
  Error = Shapes::StructureShape.new(name: 'Error')
139
148
  ErrorDocument = Shapes::StructureShape.new(name: 'ErrorDocument')
140
149
  Errors = Shapes::ListShape.new(name: 'Errors', flattened: true)
@@ -181,6 +190,8 @@ module Aws::S3
181
190
  GetBucketNotificationConfigurationRequest = Shapes::StructureShape.new(name: 'GetBucketNotificationConfigurationRequest')
182
191
  GetBucketPolicyOutput = Shapes::StructureShape.new(name: 'GetBucketPolicyOutput')
183
192
  GetBucketPolicyRequest = Shapes::StructureShape.new(name: 'GetBucketPolicyRequest')
193
+ GetBucketPolicyStatusOutput = Shapes::StructureShape.new(name: 'GetBucketPolicyStatusOutput')
194
+ GetBucketPolicyStatusRequest = Shapes::StructureShape.new(name: 'GetBucketPolicyStatusRequest')
184
195
  GetBucketReplicationOutput = Shapes::StructureShape.new(name: 'GetBucketReplicationOutput')
185
196
  GetBucketReplicationRequest = Shapes::StructureShape.new(name: 'GetBucketReplicationRequest')
186
197
  GetBucketRequestPaymentOutput = Shapes::StructureShape.new(name: 'GetBucketRequestPaymentOutput')
@@ -193,12 +204,20 @@ module Aws::S3
193
204
  GetBucketWebsiteRequest = Shapes::StructureShape.new(name: 'GetBucketWebsiteRequest')
194
205
  GetObjectAclOutput = Shapes::StructureShape.new(name: 'GetObjectAclOutput')
195
206
  GetObjectAclRequest = Shapes::StructureShape.new(name: 'GetObjectAclRequest')
207
+ GetObjectLegalHoldOutput = Shapes::StructureShape.new(name: 'GetObjectLegalHoldOutput')
208
+ GetObjectLegalHoldRequest = Shapes::StructureShape.new(name: 'GetObjectLegalHoldRequest')
209
+ GetObjectLockConfigurationOutput = Shapes::StructureShape.new(name: 'GetObjectLockConfigurationOutput')
210
+ GetObjectLockConfigurationRequest = Shapes::StructureShape.new(name: 'GetObjectLockConfigurationRequest')
196
211
  GetObjectOutput = Shapes::StructureShape.new(name: 'GetObjectOutput')
197
212
  GetObjectRequest = Shapes::StructureShape.new(name: 'GetObjectRequest')
213
+ GetObjectRetentionOutput = Shapes::StructureShape.new(name: 'GetObjectRetentionOutput')
214
+ GetObjectRetentionRequest = Shapes::StructureShape.new(name: 'GetObjectRetentionRequest')
198
215
  GetObjectTaggingOutput = Shapes::StructureShape.new(name: 'GetObjectTaggingOutput')
199
216
  GetObjectTaggingRequest = Shapes::StructureShape.new(name: 'GetObjectTaggingRequest')
200
217
  GetObjectTorrentOutput = Shapes::StructureShape.new(name: 'GetObjectTorrentOutput')
201
218
  GetObjectTorrentRequest = Shapes::StructureShape.new(name: 'GetObjectTorrentRequest')
219
+ GetPublicAccessBlockOutput = Shapes::StructureShape.new(name: 'GetPublicAccessBlockOutput')
220
+ GetPublicAccessBlockRequest = Shapes::StructureShape.new(name: 'GetPublicAccessBlockRequest')
202
221
  GlacierJobParameters = Shapes::StructureShape.new(name: 'GlacierJobParameters')
203
222
  Grant = Shapes::StructureShape.new(name: 'Grant')
204
223
  GrantFullControl = Shapes::StringShape.new(name: 'GrantFullControl')
@@ -238,6 +257,7 @@ module Aws::S3
238
257
  InventorySchedule = Shapes::StructureShape.new(name: 'InventorySchedule')
239
258
  IsEnabled = Shapes::BooleanShape.new(name: 'IsEnabled')
240
259
  IsLatest = Shapes::BooleanShape.new(name: 'IsLatest')
260
+ IsPublic = Shapes::BooleanShape.new(name: 'IsPublic')
241
261
  IsTruncated = Shapes::BooleanShape.new(name: 'IsTruncated')
242
262
  JSONInput = Shapes::StructureShape.new(name: 'JSONInput')
243
263
  JSONOutput = Shapes::StructureShape.new(name: 'JSONOutput')
@@ -322,6 +342,17 @@ module Aws::S3
322
342
  ObjectIdentifierList = Shapes::ListShape.new(name: 'ObjectIdentifierList', flattened: true)
323
343
  ObjectKey = Shapes::StringShape.new(name: 'ObjectKey')
324
344
  ObjectList = Shapes::ListShape.new(name: 'ObjectList', flattened: true)
345
+ ObjectLockConfiguration = Shapes::StructureShape.new(name: 'ObjectLockConfiguration')
346
+ ObjectLockEnabled = Shapes::StringShape.new(name: 'ObjectLockEnabled')
347
+ ObjectLockEnabledForBucket = Shapes::BooleanShape.new(name: 'ObjectLockEnabledForBucket')
348
+ ObjectLockLegalHold = Shapes::StructureShape.new(name: 'ObjectLockLegalHold')
349
+ ObjectLockLegalHoldStatus = Shapes::StringShape.new(name: 'ObjectLockLegalHoldStatus')
350
+ ObjectLockMode = Shapes::StringShape.new(name: 'ObjectLockMode')
351
+ ObjectLockRetainUntilDate = Shapes::TimestampShape.new(name: 'ObjectLockRetainUntilDate', timestampFormat: "iso8601")
352
+ ObjectLockRetention = Shapes::StructureShape.new(name: 'ObjectLockRetention')
353
+ ObjectLockRetentionMode = Shapes::StringShape.new(name: 'ObjectLockRetentionMode')
354
+ ObjectLockRule = Shapes::StructureShape.new(name: 'ObjectLockRule')
355
+ ObjectLockToken = Shapes::StringShape.new(name: 'ObjectLockToken')
325
356
  ObjectNotInActiveTierError = Shapes::StructureShape.new(name: 'ObjectNotInActiveTierError')
326
357
  ObjectStorageClass = Shapes::StringShape.new(name: 'ObjectStorageClass')
327
358
  ObjectVersion = Shapes::StructureShape.new(name: 'ObjectVersion')
@@ -332,6 +363,7 @@ module Aws::S3
332
363
  OutputSerialization = Shapes::StructureShape.new(name: 'OutputSerialization')
333
364
  Owner = Shapes::StructureShape.new(name: 'Owner')
334
365
  OwnerOverride = Shapes::StringShape.new(name: 'OwnerOverride')
366
+ ParquetInput = Shapes::StructureShape.new(name: 'ParquetInput')
335
367
  Part = Shapes::StructureShape.new(name: 'Part')
336
368
  PartNumber = Shapes::IntegerShape.new(name: 'PartNumber')
337
369
  PartNumberMarker = Shapes::IntegerShape.new(name: 'PartNumberMarker')
@@ -340,9 +372,13 @@ module Aws::S3
340
372
  Payer = Shapes::StringShape.new(name: 'Payer')
341
373
  Permission = Shapes::StringShape.new(name: 'Permission')
342
374
  Policy = Shapes::StringShape.new(name: 'Policy')
375
+ PolicyStatus = Shapes::StructureShape.new(name: 'PolicyStatus')
343
376
  Prefix = Shapes::StringShape.new(name: 'Prefix')
377
+ Priority = Shapes::IntegerShape.new(name: 'Priority')
344
378
  Progress = Shapes::StructureShape.new(name: 'Progress')
379
+ ProgressEvent = Shapes::StructureShape.new(name: 'ProgressEvent')
345
380
  Protocol = Shapes::StringShape.new(name: 'Protocol')
381
+ PublicAccessBlockConfiguration = Shapes::StructureShape.new(name: 'PublicAccessBlockConfiguration')
346
382
  PutBucketAccelerateConfigurationRequest = Shapes::StructureShape.new(name: 'PutBucketAccelerateConfigurationRequest')
347
383
  PutBucketAclRequest = Shapes::StructureShape.new(name: 'PutBucketAclRequest')
348
384
  PutBucketAnalyticsConfigurationRequest = Shapes::StructureShape.new(name: 'PutBucketAnalyticsConfigurationRequest')
@@ -363,10 +399,17 @@ module Aws::S3
363
399
  PutBucketWebsiteRequest = Shapes::StructureShape.new(name: 'PutBucketWebsiteRequest')
364
400
  PutObjectAclOutput = Shapes::StructureShape.new(name: 'PutObjectAclOutput')
365
401
  PutObjectAclRequest = Shapes::StructureShape.new(name: 'PutObjectAclRequest')
402
+ PutObjectLegalHoldOutput = Shapes::StructureShape.new(name: 'PutObjectLegalHoldOutput')
403
+ PutObjectLegalHoldRequest = Shapes::StructureShape.new(name: 'PutObjectLegalHoldRequest')
404
+ PutObjectLockConfigurationOutput = Shapes::StructureShape.new(name: 'PutObjectLockConfigurationOutput')
405
+ PutObjectLockConfigurationRequest = Shapes::StructureShape.new(name: 'PutObjectLockConfigurationRequest')
366
406
  PutObjectOutput = Shapes::StructureShape.new(name: 'PutObjectOutput')
367
407
  PutObjectRequest = Shapes::StructureShape.new(name: 'PutObjectRequest')
408
+ PutObjectRetentionOutput = Shapes::StructureShape.new(name: 'PutObjectRetentionOutput')
409
+ PutObjectRetentionRequest = Shapes::StructureShape.new(name: 'PutObjectRetentionRequest')
368
410
  PutObjectTaggingOutput = Shapes::StructureShape.new(name: 'PutObjectTaggingOutput')
369
411
  PutObjectTaggingRequest = Shapes::StructureShape.new(name: 'PutObjectTaggingRequest')
412
+ PutPublicAccessBlockRequest = Shapes::StructureShape.new(name: 'PutPublicAccessBlockRequest')
370
413
  QueueArn = Shapes::StringShape.new(name: 'QueueArn')
371
414
  QueueConfiguration = Shapes::StructureShape.new(name: 'QueueConfiguration')
372
415
  QueueConfigurationDeprecated = Shapes::StructureShape.new(name: 'QueueConfigurationDeprecated')
@@ -377,6 +420,7 @@ module Aws::S3
377
420
  QuoteFields = Shapes::StringShape.new(name: 'QuoteFields')
378
421
  Range = Shapes::StringShape.new(name: 'Range')
379
422
  RecordDelimiter = Shapes::StringShape.new(name: 'RecordDelimiter')
423
+ RecordsEvent = Shapes::StructureShape.new(name: 'RecordsEvent')
380
424
  Redirect = Shapes::StructureShape.new(name: 'Redirect')
381
425
  RedirectAllRequestsTo = Shapes::StructureShape.new(name: 'RedirectAllRequestsTo')
382
426
  ReplaceKeyPrefixWith = Shapes::StringShape.new(name: 'ReplaceKeyPrefixWith')
@@ -384,6 +428,8 @@ module Aws::S3
384
428
  ReplicaKmsKeyID = Shapes::StringShape.new(name: 'ReplicaKmsKeyID')
385
429
  ReplicationConfiguration = Shapes::StructureShape.new(name: 'ReplicationConfiguration')
386
430
  ReplicationRule = Shapes::StructureShape.new(name: 'ReplicationRule')
431
+ ReplicationRuleAndOperator = Shapes::StructureShape.new(name: 'ReplicationRuleAndOperator')
432
+ ReplicationRuleFilter = Shapes::StructureShape.new(name: 'ReplicationRuleFilter')
387
433
  ReplicationRuleStatus = Shapes::StringShape.new(name: 'ReplicationRuleStatus')
388
434
  ReplicationRules = Shapes::ListShape.new(name: 'ReplicationRules', flattened: true)
389
435
  ReplicationStatus = Shapes::StringShape.new(name: 'ReplicationStatus')
@@ -416,18 +462,23 @@ module Aws::S3
416
462
  SSEKMS = Shapes::StructureShape.new(name: 'SSEKMS')
417
463
  SSEKMSKeyId = Shapes::StringShape.new(name: 'SSEKMSKeyId')
418
464
  SSES3 = Shapes::StructureShape.new(name: 'SSES3')
465
+ SelectObjectContentEventStream = Shapes::StructureShape.new(name: 'SelectObjectContentEventStream')
466
+ SelectObjectContentOutput = Shapes::StructureShape.new(name: 'SelectObjectContentOutput')
467
+ SelectObjectContentRequest = Shapes::StructureShape.new(name: 'SelectObjectContentRequest')
419
468
  SelectParameters = Shapes::StructureShape.new(name: 'SelectParameters')
420
469
  ServerSideEncryption = Shapes::StringShape.new(name: 'ServerSideEncryption')
421
470
  ServerSideEncryptionByDefault = Shapes::StructureShape.new(name: 'ServerSideEncryptionByDefault')
422
471
  ServerSideEncryptionConfiguration = Shapes::StructureShape.new(name: 'ServerSideEncryptionConfiguration')
423
472
  ServerSideEncryptionRule = Shapes::StructureShape.new(name: 'ServerSideEncryptionRule')
424
473
  ServerSideEncryptionRules = Shapes::ListShape.new(name: 'ServerSideEncryptionRules', flattened: true)
474
+ Setting = Shapes::BooleanShape.new(name: 'Setting')
425
475
  Size = Shapes::IntegerShape.new(name: 'Size')
426
476
  SourceSelectionCriteria = Shapes::StructureShape.new(name: 'SourceSelectionCriteria')
427
477
  SseKmsEncryptedObjects = Shapes::StructureShape.new(name: 'SseKmsEncryptedObjects')
428
478
  SseKmsEncryptedObjectsStatus = Shapes::StringShape.new(name: 'SseKmsEncryptedObjectsStatus')
429
479
  StartAfter = Shapes::StringShape.new(name: 'StartAfter')
430
480
  Stats = Shapes::StructureShape.new(name: 'Stats')
481
+ StatsEvent = Shapes::StructureShape.new(name: 'StatsEvent')
431
482
  StorageClass = Shapes::StringShape.new(name: 'StorageClass')
432
483
  StorageClassAnalysis = Shapes::StructureShape.new(name: 'StorageClassAnalysis')
433
484
  StorageClassAnalysisDataExport = Shapes::StructureShape.new(name: 'StorageClassAnalysisDataExport')
@@ -465,6 +516,7 @@ module Aws::S3
465
516
  VersioningConfiguration = Shapes::StructureShape.new(name: 'VersioningConfiguration')
466
517
  WebsiteConfiguration = Shapes::StructureShape.new(name: 'WebsiteConfiguration')
467
518
  WebsiteRedirectLocation = Shapes::StringShape.new(name: 'WebsiteRedirectLocation')
519
+ Years = Shapes::IntegerShape.new(name: 'Years')
468
520
 
469
521
  AbortIncompleteMultipartUpload.add_member(:days_after_initiation, Shapes::ShapeRef.new(shape: DaysAfterInitiation, location_name: "DaysAfterInitiation"))
470
522
  AbortIncompleteMultipartUpload.struct_class = Types::AbortIncompleteMultipartUpload
@@ -549,6 +601,7 @@ module Aws::S3
549
601
  CSVInput.add_member(:record_delimiter, Shapes::ShapeRef.new(shape: RecordDelimiter, location_name: "RecordDelimiter"))
550
602
  CSVInput.add_member(:field_delimiter, Shapes::ShapeRef.new(shape: FieldDelimiter, location_name: "FieldDelimiter"))
551
603
  CSVInput.add_member(:quote_character, Shapes::ShapeRef.new(shape: QuoteCharacter, location_name: "QuoteCharacter"))
604
+ CSVInput.add_member(:allow_quoted_record_delimiter, Shapes::ShapeRef.new(shape: AllowQuotedRecordDelimiter, location_name: "AllowQuotedRecordDelimiter"))
552
605
  CSVInput.struct_class = Types::CSVInput
553
606
 
554
607
  CSVOutput.add_member(:quote_fields, Shapes::ShapeRef.new(shape: QuoteFields, location_name: "QuoteFields"))
@@ -603,6 +656,8 @@ module Aws::S3
603
656
  Condition.add_member(:key_prefix_equals, Shapes::ShapeRef.new(shape: KeyPrefixEquals, location_name: "KeyPrefixEquals"))
604
657
  Condition.struct_class = Types::Condition
605
658
 
659
+ ContinuationEvent.struct_class = Types::ContinuationEvent
660
+
606
661
  CopyObjectOutput.add_member(:copy_object_result, Shapes::ShapeRef.new(shape: CopyObjectResult, location_name: "CopyObjectResult"))
607
662
  CopyObjectOutput.add_member(:expiration, Shapes::ShapeRef.new(shape: Expiration, location: "header", location_name: "x-amz-expiration"))
608
663
  CopyObjectOutput.add_member(:copy_source_version_id, Shapes::ShapeRef.new(shape: CopySourceVersionId, location: "header", location_name: "x-amz-copy-source-version-id"))
@@ -649,6 +704,9 @@ module Aws::S3
649
704
  CopyObjectRequest.add_member(:copy_source_sse_customer_key_md5, Shapes::ShapeRef.new(shape: CopySourceSSECustomerKeyMD5, location: "header", location_name: "x-amz-copy-source-server-side-encryption-customer-key-MD5"))
650
705
  CopyObjectRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
651
706
  CopyObjectRequest.add_member(:tagging, Shapes::ShapeRef.new(shape: TaggingHeader, location: "header", location_name: "x-amz-tagging"))
707
+ CopyObjectRequest.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
708
+ CopyObjectRequest.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
709
+ CopyObjectRequest.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
652
710
  CopyObjectRequest.struct_class = Types::CopyObjectRequest
653
711
 
654
712
  CopyObjectResult.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
@@ -673,6 +731,7 @@ module Aws::S3
673
731
  CreateBucketRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
674
732
  CreateBucketRequest.add_member(:grant_write, Shapes::ShapeRef.new(shape: GrantWrite, location: "header", location_name: "x-amz-grant-write"))
675
733
  CreateBucketRequest.add_member(:grant_write_acp, Shapes::ShapeRef.new(shape: GrantWriteACP, location: "header", location_name: "x-amz-grant-write-acp"))
734
+ CreateBucketRequest.add_member(:object_lock_enabled_for_bucket, Shapes::ShapeRef.new(shape: ObjectLockEnabledForBucket, location: "header", location_name: "x-amz-bucket-object-lock-enabled"))
676
735
  CreateBucketRequest.struct_class = Types::CreateBucketRequest
677
736
  CreateBucketRequest[:payload] = :create_bucket_configuration
678
737
  CreateBucketRequest[:payload_member] = CreateBucketRequest.member(:create_bucket_configuration)
@@ -712,8 +771,16 @@ module Aws::S3
712
771
  CreateMultipartUploadRequest.add_member(:ssekms_key_id, Shapes::ShapeRef.new(shape: SSEKMSKeyId, location: "header", location_name: "x-amz-server-side-encryption-aws-kms-key-id"))
713
772
  CreateMultipartUploadRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
714
773
  CreateMultipartUploadRequest.add_member(:tagging, Shapes::ShapeRef.new(shape: TaggingHeader, location: "header", location_name: "x-amz-tagging"))
774
+ CreateMultipartUploadRequest.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
775
+ CreateMultipartUploadRequest.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
776
+ CreateMultipartUploadRequest.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
715
777
  CreateMultipartUploadRequest.struct_class = Types::CreateMultipartUploadRequest
716
778
 
779
+ DefaultRetention.add_member(:mode, Shapes::ShapeRef.new(shape: ObjectLockRetentionMode, location_name: "Mode"))
780
+ DefaultRetention.add_member(:days, Shapes::ShapeRef.new(shape: Days, location_name: "Days"))
781
+ DefaultRetention.add_member(:years, Shapes::ShapeRef.new(shape: Years, location_name: "Years"))
782
+ DefaultRetention.struct_class = Types::DefaultRetention
783
+
717
784
  Delete.add_member(:objects, Shapes::ShapeRef.new(shape: ObjectIdentifierList, required: true, location_name: "Object"))
718
785
  Delete.add_member(:quiet, Shapes::ShapeRef.new(shape: Quiet, location_name: "Quiet"))
719
786
  Delete.struct_class = Types::Delete
@@ -761,6 +828,9 @@ module Aws::S3
761
828
  DeleteMarkerEntry.add_member(:last_modified, Shapes::ShapeRef.new(shape: LastModified, location_name: "LastModified"))
762
829
  DeleteMarkerEntry.struct_class = Types::DeleteMarkerEntry
763
830
 
831
+ DeleteMarkerReplication.add_member(:status, Shapes::ShapeRef.new(shape: DeleteMarkerReplicationStatus, location_name: "Status"))
832
+ DeleteMarkerReplication.struct_class = Types::DeleteMarkerReplication
833
+
764
834
  DeleteMarkers.member = Shapes::ShapeRef.new(shape: DeleteMarkerEntry)
765
835
 
766
836
  DeleteObjectOutput.add_member(:delete_marker, Shapes::ShapeRef.new(shape: DeleteMarker, location: "header", location_name: "x-amz-delete-marker"))
@@ -773,6 +843,7 @@ module Aws::S3
773
843
  DeleteObjectRequest.add_member(:mfa, Shapes::ShapeRef.new(shape: MFA, location: "header", location_name: "x-amz-mfa"))
774
844
  DeleteObjectRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
775
845
  DeleteObjectRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
846
+ DeleteObjectRequest.add_member(:bypass_governance_retention, Shapes::ShapeRef.new(shape: BypassGovernanceRetention, location: "header", location_name: "x-amz-bypass-governance-retention"))
776
847
  DeleteObjectRequest.struct_class = Types::DeleteObjectRequest
777
848
 
778
849
  DeleteObjectTaggingOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
@@ -792,10 +863,14 @@ module Aws::S3
792
863
  DeleteObjectsRequest.add_member(:delete, Shapes::ShapeRef.new(shape: Delete, required: true, location_name: "Delete", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
793
864
  DeleteObjectsRequest.add_member(:mfa, Shapes::ShapeRef.new(shape: MFA, location: "header", location_name: "x-amz-mfa"))
794
865
  DeleteObjectsRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
866
+ DeleteObjectsRequest.add_member(:bypass_governance_retention, Shapes::ShapeRef.new(shape: BypassGovernanceRetention, location: "header", location_name: "x-amz-bypass-governance-retention"))
795
867
  DeleteObjectsRequest.struct_class = Types::DeleteObjectsRequest
796
868
  DeleteObjectsRequest[:payload] = :delete
797
869
  DeleteObjectsRequest[:payload_member] = DeleteObjectsRequest.member(:delete)
798
870
 
871
+ DeletePublicAccessBlockRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
872
+ DeletePublicAccessBlockRequest.struct_class = Types::DeletePublicAccessBlockRequest
873
+
799
874
  DeletedObject.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, location_name: "Key"))
800
875
  DeletedObject.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location_name: "VersionId"))
801
876
  DeletedObject.add_member(:delete_marker, Shapes::ShapeRef.new(shape: DeleteMarker, location_name: "DeleteMarker"))
@@ -819,6 +894,8 @@ module Aws::S3
819
894
  EncryptionConfiguration.add_member(:replica_kms_key_id, Shapes::ShapeRef.new(shape: ReplicaKmsKeyID, location_name: "ReplicaKmsKeyID"))
820
895
  EncryptionConfiguration.struct_class = Types::EncryptionConfiguration
821
896
 
897
+ EndEvent.struct_class = Types::EndEvent
898
+
822
899
  Error.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, location_name: "Key"))
823
900
  Error.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location_name: "VersionId"))
824
901
  Error.add_member(:code, Shapes::ShapeRef.new(shape: Code, location_name: "Code"))
@@ -929,6 +1006,14 @@ module Aws::S3
929
1006
  GetBucketPolicyRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
930
1007
  GetBucketPolicyRequest.struct_class = Types::GetBucketPolicyRequest
931
1008
 
1009
+ GetBucketPolicyStatusOutput.add_member(:policy_status, Shapes::ShapeRef.new(shape: PolicyStatus, location_name: "PolicyStatus"))
1010
+ GetBucketPolicyStatusOutput.struct_class = Types::GetBucketPolicyStatusOutput
1011
+ GetBucketPolicyStatusOutput[:payload] = :policy_status
1012
+ GetBucketPolicyStatusOutput[:payload_member] = GetBucketPolicyStatusOutput.member(:policy_status)
1013
+
1014
+ GetBucketPolicyStatusRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1015
+ GetBucketPolicyStatusRequest.struct_class = Types::GetBucketPolicyStatusRequest
1016
+
932
1017
  GetBucketReplicationOutput.add_member(:replication_configuration, Shapes::ShapeRef.new(shape: ReplicationConfiguration, location_name: "ReplicationConfiguration"))
933
1018
  GetBucketReplicationOutput.struct_class = Types::GetBucketReplicationOutput
934
1019
  GetBucketReplicationOutput[:payload] = :replication_configuration
@@ -976,6 +1061,25 @@ module Aws::S3
976
1061
  GetObjectAclRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
977
1062
  GetObjectAclRequest.struct_class = Types::GetObjectAclRequest
978
1063
 
1064
+ GetObjectLegalHoldOutput.add_member(:legal_hold, Shapes::ShapeRef.new(shape: ObjectLockLegalHold, location_name: "LegalHold"))
1065
+ GetObjectLegalHoldOutput.struct_class = Types::GetObjectLegalHoldOutput
1066
+ GetObjectLegalHoldOutput[:payload] = :legal_hold
1067
+ GetObjectLegalHoldOutput[:payload_member] = GetObjectLegalHoldOutput.member(:legal_hold)
1068
+
1069
+ GetObjectLegalHoldRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1070
+ GetObjectLegalHoldRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1071
+ GetObjectLegalHoldRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1072
+ GetObjectLegalHoldRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1073
+ GetObjectLegalHoldRequest.struct_class = Types::GetObjectLegalHoldRequest
1074
+
1075
+ GetObjectLockConfigurationOutput.add_member(:object_lock_configuration, Shapes::ShapeRef.new(shape: ObjectLockConfiguration, location_name: "ObjectLockConfiguration"))
1076
+ GetObjectLockConfigurationOutput.struct_class = Types::GetObjectLockConfigurationOutput
1077
+ GetObjectLockConfigurationOutput[:payload] = :object_lock_configuration
1078
+ GetObjectLockConfigurationOutput[:payload_member] = GetObjectLockConfigurationOutput.member(:object_lock_configuration)
1079
+
1080
+ GetObjectLockConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1081
+ GetObjectLockConfigurationRequest.struct_class = Types::GetObjectLockConfigurationRequest
1082
+
979
1083
  GetObjectOutput.add_member(:body, Shapes::ShapeRef.new(shape: Body, location_name: "Body", metadata: {"streaming"=>true}))
980
1084
  GetObjectOutput.add_member(:delete_marker, Shapes::ShapeRef.new(shape: DeleteMarker, location: "header", location_name: "x-amz-delete-marker"))
981
1085
  GetObjectOutput.add_member(:accept_ranges, Shapes::ShapeRef.new(shape: AcceptRanges, location: "header", location_name: "accept-ranges"))
@@ -1005,6 +1109,9 @@ module Aws::S3
1005
1109
  GetObjectOutput.add_member(:replication_status, Shapes::ShapeRef.new(shape: ReplicationStatus, location: "header", location_name: "x-amz-replication-status"))
1006
1110
  GetObjectOutput.add_member(:parts_count, Shapes::ShapeRef.new(shape: PartsCount, location: "header", location_name: "x-amz-mp-parts-count"))
1007
1111
  GetObjectOutput.add_member(:tag_count, Shapes::ShapeRef.new(shape: TagCount, location: "header", location_name: "x-amz-tagging-count"))
1112
+ GetObjectOutput.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
1113
+ GetObjectOutput.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
1114
+ GetObjectOutput.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
1008
1115
  GetObjectOutput.struct_class = Types::GetObjectOutput
1009
1116
  GetObjectOutput[:payload] = :body
1010
1117
  GetObjectOutput[:payload_member] = GetObjectOutput.member(:body)
@@ -1030,6 +1137,17 @@ module Aws::S3
1030
1137
  GetObjectRequest.add_member(:part_number, Shapes::ShapeRef.new(shape: PartNumber, location: "querystring", location_name: "partNumber"))
1031
1138
  GetObjectRequest.struct_class = Types::GetObjectRequest
1032
1139
 
1140
+ GetObjectRetentionOutput.add_member(:retention, Shapes::ShapeRef.new(shape: ObjectLockRetention, location_name: "Retention"))
1141
+ GetObjectRetentionOutput.struct_class = Types::GetObjectRetentionOutput
1142
+ GetObjectRetentionOutput[:payload] = :retention
1143
+ GetObjectRetentionOutput[:payload_member] = GetObjectRetentionOutput.member(:retention)
1144
+
1145
+ GetObjectRetentionRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1146
+ GetObjectRetentionRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1147
+ GetObjectRetentionRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1148
+ GetObjectRetentionRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1149
+ GetObjectRetentionRequest.struct_class = Types::GetObjectRetentionRequest
1150
+
1033
1151
  GetObjectTaggingOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
1034
1152
  GetObjectTaggingOutput.add_member(:tag_set, Shapes::ShapeRef.new(shape: TagSet, required: true, location_name: "TagSet"))
1035
1153
  GetObjectTaggingOutput.struct_class = Types::GetObjectTaggingOutput
@@ -1050,6 +1168,14 @@ module Aws::S3
1050
1168
  GetObjectTorrentRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1051
1169
  GetObjectTorrentRequest.struct_class = Types::GetObjectTorrentRequest
1052
1170
 
1171
+ GetPublicAccessBlockOutput.add_member(:public_access_block_configuration, Shapes::ShapeRef.new(shape: PublicAccessBlockConfiguration, location_name: "PublicAccessBlockConfiguration"))
1172
+ GetPublicAccessBlockOutput.struct_class = Types::GetPublicAccessBlockOutput
1173
+ GetPublicAccessBlockOutput[:payload] = :public_access_block_configuration
1174
+ GetPublicAccessBlockOutput[:payload_member] = GetPublicAccessBlockOutput.member(:public_access_block_configuration)
1175
+
1176
+ GetPublicAccessBlockRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1177
+ GetPublicAccessBlockRequest.struct_class = Types::GetPublicAccessBlockRequest
1178
+
1053
1179
  GlacierJobParameters.add_member(:tier, Shapes::ShapeRef.new(shape: Tier, required: true, location_name: "Tier"))
1054
1180
  GlacierJobParameters.struct_class = Types::GlacierJobParameters
1055
1181
 
@@ -1095,6 +1221,9 @@ module Aws::S3
1095
1221
  HeadObjectOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1096
1222
  HeadObjectOutput.add_member(:replication_status, Shapes::ShapeRef.new(shape: ReplicationStatus, location: "header", location_name: "x-amz-replication-status"))
1097
1223
  HeadObjectOutput.add_member(:parts_count, Shapes::ShapeRef.new(shape: PartsCount, location: "header", location_name: "x-amz-mp-parts-count"))
1224
+ HeadObjectOutput.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
1225
+ HeadObjectOutput.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
1226
+ HeadObjectOutput.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
1098
1227
  HeadObjectOutput.struct_class = Types::HeadObjectOutput
1099
1228
 
1100
1229
  HeadObjectRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
@@ -1122,6 +1251,7 @@ module Aws::S3
1122
1251
  InputSerialization.add_member(:csv, Shapes::ShapeRef.new(shape: CSVInput, location_name: "CSV"))
1123
1252
  InputSerialization.add_member(:compression_type, Shapes::ShapeRef.new(shape: CompressionType, location_name: "CompressionType"))
1124
1253
  InputSerialization.add_member(:json, Shapes::ShapeRef.new(shape: JSONInput, location_name: "JSON"))
1254
+ InputSerialization.add_member(:parquet, Shapes::ShapeRef.new(shape: ParquetInput, location_name: "Parquet"))
1125
1255
  InputSerialization.struct_class = Types::InputSerialization
1126
1256
 
1127
1257
  InventoryConfiguration.add_member(:destination, Shapes::ShapeRef.new(shape: InventoryDestination, required: true, location_name: "Destination"))
@@ -1427,6 +1557,20 @@ module Aws::S3
1427
1557
 
1428
1558
  ObjectList.member = Shapes::ShapeRef.new(shape: Object)
1429
1559
 
1560
+ ObjectLockConfiguration.add_member(:object_lock_enabled, Shapes::ShapeRef.new(shape: ObjectLockEnabled, location_name: "ObjectLockEnabled"))
1561
+ ObjectLockConfiguration.add_member(:rule, Shapes::ShapeRef.new(shape: ObjectLockRule, location_name: "Rule"))
1562
+ ObjectLockConfiguration.struct_class = Types::ObjectLockConfiguration
1563
+
1564
+ ObjectLockLegalHold.add_member(:status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location_name: "Status"))
1565
+ ObjectLockLegalHold.struct_class = Types::ObjectLockLegalHold
1566
+
1567
+ ObjectLockRetention.add_member(:mode, Shapes::ShapeRef.new(shape: ObjectLockRetentionMode, location_name: "Mode"))
1568
+ ObjectLockRetention.add_member(:retain_until_date, Shapes::ShapeRef.new(shape: Date, location_name: "RetainUntilDate"))
1569
+ ObjectLockRetention.struct_class = Types::ObjectLockRetention
1570
+
1571
+ ObjectLockRule.add_member(:default_retention, Shapes::ShapeRef.new(shape: DefaultRetention, location_name: "DefaultRetention"))
1572
+ ObjectLockRule.struct_class = Types::ObjectLockRule
1573
+
1430
1574
  ObjectVersion.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
1431
1575
  ObjectVersion.add_member(:size, Shapes::ShapeRef.new(shape: Size, location_name: "Size"))
1432
1576
  ObjectVersion.add_member(:storage_class, Shapes::ShapeRef.new(shape: ObjectVersionStorageClass, location_name: "StorageClass"))
@@ -1450,6 +1594,8 @@ module Aws::S3
1450
1594
  Owner.add_member(:id, Shapes::ShapeRef.new(shape: ID, location_name: "ID"))
1451
1595
  Owner.struct_class = Types::Owner
1452
1596
 
1597
+ ParquetInput.struct_class = Types::ParquetInput
1598
+
1453
1599
  Part.add_member(:part_number, Shapes::ShapeRef.new(shape: PartNumber, location_name: "PartNumber"))
1454
1600
  Part.add_member(:last_modified, Shapes::ShapeRef.new(shape: LastModified, location_name: "LastModified"))
1455
1601
  Part.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
@@ -1458,10 +1604,23 @@ module Aws::S3
1458
1604
 
1459
1605
  Parts.member = Shapes::ShapeRef.new(shape: Part)
1460
1606
 
1607
+ PolicyStatus.add_member(:is_public, Shapes::ShapeRef.new(shape: IsPublic, location_name: "IsPublic"))
1608
+ PolicyStatus.struct_class = Types::PolicyStatus
1609
+
1461
1610
  Progress.add_member(:bytes_scanned, Shapes::ShapeRef.new(shape: BytesScanned, location_name: "BytesScanned"))
1462
1611
  Progress.add_member(:bytes_processed, Shapes::ShapeRef.new(shape: BytesProcessed, location_name: "BytesProcessed"))
1612
+ Progress.add_member(:bytes_returned, Shapes::ShapeRef.new(shape: BytesReturned, location_name: "BytesReturned"))
1463
1613
  Progress.struct_class = Types::Progress
1464
1614
 
1615
+ ProgressEvent.add_member(:details, Shapes::ShapeRef.new(shape: Progress, eventpayload: true, eventpayload_type: 'structure', location_name: "Details", metadata: {"eventpayload"=>true}))
1616
+ ProgressEvent.struct_class = Types::ProgressEvent
1617
+
1618
+ PublicAccessBlockConfiguration.add_member(:block_public_acls, Shapes::ShapeRef.new(shape: Setting, location_name: "BlockPublicAcls"))
1619
+ PublicAccessBlockConfiguration.add_member(:ignore_public_acls, Shapes::ShapeRef.new(shape: Setting, location_name: "IgnorePublicAcls"))
1620
+ PublicAccessBlockConfiguration.add_member(:block_public_policy, Shapes::ShapeRef.new(shape: Setting, location_name: "BlockPublicPolicy"))
1621
+ PublicAccessBlockConfiguration.add_member(:restrict_public_buckets, Shapes::ShapeRef.new(shape: Setting, location_name: "RestrictPublicBuckets"))
1622
+ PublicAccessBlockConfiguration.struct_class = Types::PublicAccessBlockConfiguration
1623
+
1465
1624
  PutBucketAccelerateConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1466
1625
  PutBucketAccelerateConfigurationRequest.add_member(:accelerate_configuration, Shapes::ShapeRef.new(shape: AccelerateConfiguration, required: true, location_name: "AccelerateConfiguration", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
1467
1626
  PutBucketAccelerateConfigurationRequest.struct_class = Types::PutBucketAccelerateConfigurationRequest
@@ -1560,6 +1719,7 @@ module Aws::S3
1560
1719
  PutBucketReplicationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1561
1720
  PutBucketReplicationRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
1562
1721
  PutBucketReplicationRequest.add_member(:replication_configuration, Shapes::ShapeRef.new(shape: ReplicationConfiguration, required: true, location_name: "ReplicationConfiguration", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
1722
+ PutBucketReplicationRequest.add_member(:token, Shapes::ShapeRef.new(shape: ObjectLockToken, location: "header", location_name: "x-amz-bucket-object-lock-token"))
1563
1723
  PutBucketReplicationRequest.struct_class = Types::PutBucketReplicationRequest
1564
1724
  PutBucketReplicationRequest[:payload] = :replication_configuration
1565
1725
  PutBucketReplicationRequest[:payload_member] = PutBucketReplicationRequest.member(:replication_configuration)
@@ -1612,6 +1772,31 @@ module Aws::S3
1612
1772
  PutObjectAclRequest[:payload] = :access_control_policy
1613
1773
  PutObjectAclRequest[:payload_member] = PutObjectAclRequest.member(:access_control_policy)
1614
1774
 
1775
+ PutObjectLegalHoldOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1776
+ PutObjectLegalHoldOutput.struct_class = Types::PutObjectLegalHoldOutput
1777
+
1778
+ PutObjectLegalHoldRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1779
+ PutObjectLegalHoldRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1780
+ PutObjectLegalHoldRequest.add_member(:legal_hold, Shapes::ShapeRef.new(shape: ObjectLockLegalHold, location_name: "LegalHold", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
1781
+ PutObjectLegalHoldRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1782
+ PutObjectLegalHoldRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1783
+ PutObjectLegalHoldRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
1784
+ PutObjectLegalHoldRequest.struct_class = Types::PutObjectLegalHoldRequest
1785
+ PutObjectLegalHoldRequest[:payload] = :legal_hold
1786
+ PutObjectLegalHoldRequest[:payload_member] = PutObjectLegalHoldRequest.member(:legal_hold)
1787
+
1788
+ PutObjectLockConfigurationOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1789
+ PutObjectLockConfigurationOutput.struct_class = Types::PutObjectLockConfigurationOutput
1790
+
1791
+ PutObjectLockConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1792
+ PutObjectLockConfigurationRequest.add_member(:object_lock_configuration, Shapes::ShapeRef.new(shape: ObjectLockConfiguration, location_name: "ObjectLockConfiguration", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
1793
+ PutObjectLockConfigurationRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1794
+ PutObjectLockConfigurationRequest.add_member(:token, Shapes::ShapeRef.new(shape: ObjectLockToken, location: "header", location_name: "x-amz-bucket-object-lock-token"))
1795
+ PutObjectLockConfigurationRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
1796
+ PutObjectLockConfigurationRequest.struct_class = Types::PutObjectLockConfigurationRequest
1797
+ PutObjectLockConfigurationRequest[:payload] = :object_lock_configuration
1798
+ PutObjectLockConfigurationRequest[:payload_member] = PutObjectLockConfigurationRequest.member(:object_lock_configuration)
1799
+
1615
1800
  PutObjectOutput.add_member(:expiration, Shapes::ShapeRef.new(shape: Expiration, location: "header", location_name: "x-amz-expiration"))
1616
1801
  PutObjectOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location: "header", location_name: "ETag"))
1617
1802
  PutObjectOutput.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
@@ -1648,10 +1833,27 @@ module Aws::S3
1648
1833
  PutObjectRequest.add_member(:ssekms_key_id, Shapes::ShapeRef.new(shape: SSEKMSKeyId, location: "header", location_name: "x-amz-server-side-encryption-aws-kms-key-id"))
1649
1834
  PutObjectRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1650
1835
  PutObjectRequest.add_member(:tagging, Shapes::ShapeRef.new(shape: TaggingHeader, location: "header", location_name: "x-amz-tagging"))
1836
+ PutObjectRequest.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
1837
+ PutObjectRequest.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
1838
+ PutObjectRequest.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
1651
1839
  PutObjectRequest.struct_class = Types::PutObjectRequest
1652
1840
  PutObjectRequest[:payload] = :body
1653
1841
  PutObjectRequest[:payload_member] = PutObjectRequest.member(:body)
1654
1842
 
1843
+ PutObjectRetentionOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1844
+ PutObjectRetentionOutput.struct_class = Types::PutObjectRetentionOutput
1845
+
1846
+ PutObjectRetentionRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1847
+ PutObjectRetentionRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1848
+ PutObjectRetentionRequest.add_member(:retention, Shapes::ShapeRef.new(shape: ObjectLockRetention, location_name: "Retention", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
1849
+ PutObjectRetentionRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1850
+ PutObjectRetentionRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1851
+ PutObjectRetentionRequest.add_member(:bypass_governance_retention, Shapes::ShapeRef.new(shape: BypassGovernanceRetention, location: "header", location_name: "x-amz-bypass-governance-retention"))
1852
+ PutObjectRetentionRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
1853
+ PutObjectRetentionRequest.struct_class = Types::PutObjectRetentionRequest
1854
+ PutObjectRetentionRequest[:payload] = :retention
1855
+ PutObjectRetentionRequest[:payload_member] = PutObjectRetentionRequest.member(:retention)
1856
+
1655
1857
  PutObjectTaggingOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
1656
1858
  PutObjectTaggingOutput.struct_class = Types::PutObjectTaggingOutput
1657
1859
 
@@ -1664,6 +1866,13 @@ module Aws::S3
1664
1866
  PutObjectTaggingRequest[:payload] = :tagging
1665
1867
  PutObjectTaggingRequest[:payload_member] = PutObjectTaggingRequest.member(:tagging)
1666
1868
 
1869
+ PutPublicAccessBlockRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1870
+ PutPublicAccessBlockRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
1871
+ PutPublicAccessBlockRequest.add_member(:public_access_block_configuration, Shapes::ShapeRef.new(shape: PublicAccessBlockConfiguration, required: true, location_name: "PublicAccessBlockConfiguration", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
1872
+ PutPublicAccessBlockRequest.struct_class = Types::PutPublicAccessBlockRequest
1873
+ PutPublicAccessBlockRequest[:payload] = :public_access_block_configuration
1874
+ PutPublicAccessBlockRequest[:payload_member] = PutPublicAccessBlockRequest.member(:public_access_block_configuration)
1875
+
1667
1876
  QueueConfiguration.add_member(:id, Shapes::ShapeRef.new(shape: NotificationId, location_name: "Id"))
1668
1877
  QueueConfiguration.add_member(:queue_arn, Shapes::ShapeRef.new(shape: QueueArn, required: true, location_name: "Queue"))
1669
1878
  QueueConfiguration.add_member(:events, Shapes::ShapeRef.new(shape: EventList, required: true, location_name: "Event"))
@@ -1678,6 +1887,9 @@ module Aws::S3
1678
1887
 
1679
1888
  QueueConfigurationList.member = Shapes::ShapeRef.new(shape: QueueConfiguration)
1680
1889
 
1890
+ RecordsEvent.add_member(:payload, Shapes::ShapeRef.new(shape: Body, eventpayload: true, eventpayload_type: 'blob', location_name: "Payload", metadata: {"eventpayload"=>true}))
1891
+ RecordsEvent.struct_class = Types::RecordsEvent
1892
+
1681
1893
  Redirect.add_member(:host_name, Shapes::ShapeRef.new(shape: HostName, location_name: "HostName"))
1682
1894
  Redirect.add_member(:http_redirect_code, Shapes::ShapeRef.new(shape: HttpRedirectCode, location_name: "HttpRedirectCode"))
1683
1895
  Redirect.add_member(:protocol, Shapes::ShapeRef.new(shape: Protocol, location_name: "Protocol"))
@@ -1694,12 +1906,24 @@ module Aws::S3
1694
1906
  ReplicationConfiguration.struct_class = Types::ReplicationConfiguration
1695
1907
 
1696
1908
  ReplicationRule.add_member(:id, Shapes::ShapeRef.new(shape: ID, location_name: "ID"))
1697
- ReplicationRule.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, required: true, location_name: "Prefix"))
1909
+ ReplicationRule.add_member(:priority, Shapes::ShapeRef.new(shape: Priority, location_name: "Priority"))
1910
+ ReplicationRule.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, deprecated: true, location_name: "Prefix"))
1911
+ ReplicationRule.add_member(:filter, Shapes::ShapeRef.new(shape: ReplicationRuleFilter, location_name: "Filter"))
1698
1912
  ReplicationRule.add_member(:status, Shapes::ShapeRef.new(shape: ReplicationRuleStatus, required: true, location_name: "Status"))
1699
1913
  ReplicationRule.add_member(:source_selection_criteria, Shapes::ShapeRef.new(shape: SourceSelectionCriteria, location_name: "SourceSelectionCriteria"))
1700
1914
  ReplicationRule.add_member(:destination, Shapes::ShapeRef.new(shape: Destination, required: true, location_name: "Destination"))
1915
+ ReplicationRule.add_member(:delete_marker_replication, Shapes::ShapeRef.new(shape: DeleteMarkerReplication, location_name: "DeleteMarkerReplication"))
1701
1916
  ReplicationRule.struct_class = Types::ReplicationRule
1702
1917
 
1918
+ ReplicationRuleAndOperator.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location_name: "Prefix"))
1919
+ ReplicationRuleAndOperator.add_member(:tags, Shapes::ShapeRef.new(shape: TagSet, location_name: "Tag", metadata: {"flattened"=>true}))
1920
+ ReplicationRuleAndOperator.struct_class = Types::ReplicationRuleAndOperator
1921
+
1922
+ ReplicationRuleFilter.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location_name: "Prefix"))
1923
+ ReplicationRuleFilter.add_member(:tag, Shapes::ShapeRef.new(shape: Tag, location_name: "Tag"))
1924
+ ReplicationRuleFilter.add_member(:and, Shapes::ShapeRef.new(shape: ReplicationRuleAndOperator, location_name: "And"))
1925
+ ReplicationRuleFilter.struct_class = Types::ReplicationRuleFilter
1926
+
1703
1927
  ReplicationRules.member = Shapes::ShapeRef.new(shape: ReplicationRule)
1704
1928
 
1705
1929
  RequestPaymentConfiguration.add_member(:payer, Shapes::ShapeRef.new(shape: Payer, required: true, location_name: "Payer"))
@@ -1766,6 +1990,30 @@ module Aws::S3
1766
1990
 
1767
1991
  SSES3.struct_class = Types::SSES3
1768
1992
 
1993
+ SelectObjectContentEventStream.add_member(:records, Shapes::ShapeRef.new(shape: RecordsEvent, event: true, location_name: "Records"))
1994
+ SelectObjectContentEventStream.add_member(:stats, Shapes::ShapeRef.new(shape: StatsEvent, event: true, location_name: "Stats"))
1995
+ SelectObjectContentEventStream.add_member(:progress, Shapes::ShapeRef.new(shape: ProgressEvent, event: true, location_name: "Progress"))
1996
+ SelectObjectContentEventStream.add_member(:cont, Shapes::ShapeRef.new(shape: ContinuationEvent, event: true, location_name: "Cont"))
1997
+ SelectObjectContentEventStream.add_member(:end, Shapes::ShapeRef.new(shape: EndEvent, event: true, location_name: "End"))
1998
+ SelectObjectContentEventStream.struct_class = Types::SelectObjectContentEventStream
1999
+
2000
+ SelectObjectContentOutput.add_member(:payload, Shapes::ShapeRef.new(shape: SelectObjectContentEventStream, eventstream: true, location_name: "Payload"))
2001
+ SelectObjectContentOutput.struct_class = Types::SelectObjectContentOutput
2002
+ SelectObjectContentOutput[:payload] = :payload
2003
+ SelectObjectContentOutput[:payload_member] = SelectObjectContentOutput.member(:payload)
2004
+
2005
+ SelectObjectContentRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
2006
+ SelectObjectContentRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
2007
+ SelectObjectContentRequest.add_member(:sse_customer_algorithm, Shapes::ShapeRef.new(shape: SSECustomerAlgorithm, location: "header", location_name: "x-amz-server-side-encryption-customer-algorithm"))
2008
+ SelectObjectContentRequest.add_member(:sse_customer_key, Shapes::ShapeRef.new(shape: SSECustomerKey, location: "header", location_name: "x-amz-server-side-encryption-customer-key"))
2009
+ SelectObjectContentRequest.add_member(:sse_customer_key_md5, Shapes::ShapeRef.new(shape: SSECustomerKeyMD5, location: "header", location_name: "x-amz-server-side-encryption-customer-key-MD5"))
2010
+ SelectObjectContentRequest.add_member(:expression, Shapes::ShapeRef.new(shape: Expression, required: true, location_name: "Expression"))
2011
+ SelectObjectContentRequest.add_member(:expression_type, Shapes::ShapeRef.new(shape: ExpressionType, required: true, location_name: "ExpressionType"))
2012
+ SelectObjectContentRequest.add_member(:request_progress, Shapes::ShapeRef.new(shape: RequestProgress, location_name: "RequestProgress"))
2013
+ SelectObjectContentRequest.add_member(:input_serialization, Shapes::ShapeRef.new(shape: InputSerialization, required: true, location_name: "InputSerialization"))
2014
+ SelectObjectContentRequest.add_member(:output_serialization, Shapes::ShapeRef.new(shape: OutputSerialization, required: true, location_name: "OutputSerialization"))
2015
+ SelectObjectContentRequest.struct_class = Types::SelectObjectContentRequest
2016
+
1769
2017
  SelectParameters.add_member(:input_serialization, Shapes::ShapeRef.new(shape: InputSerialization, required: true, location_name: "InputSerialization"))
1770
2018
  SelectParameters.add_member(:expression_type, Shapes::ShapeRef.new(shape: ExpressionType, required: true, location_name: "ExpressionType"))
1771
2019
  SelectParameters.add_member(:expression, Shapes::ShapeRef.new(shape: Expression, required: true, location_name: "Expression"))
@@ -1792,8 +2040,12 @@ module Aws::S3
1792
2040
 
1793
2041
  Stats.add_member(:bytes_scanned, Shapes::ShapeRef.new(shape: BytesScanned, location_name: "BytesScanned"))
1794
2042
  Stats.add_member(:bytes_processed, Shapes::ShapeRef.new(shape: BytesProcessed, location_name: "BytesProcessed"))
2043
+ Stats.add_member(:bytes_returned, Shapes::ShapeRef.new(shape: BytesReturned, location_name: "BytesReturned"))
1795
2044
  Stats.struct_class = Types::Stats
1796
2045
 
2046
+ StatsEvent.add_member(:details, Shapes::ShapeRef.new(shape: Stats, eventpayload: true, eventpayload_type: 'structure', location_name: "Details", metadata: {"eventpayload"=>true}))
2047
+ StatsEvent.struct_class = Types::StatsEvent
2048
+
1797
2049
  StorageClassAnalysis.add_member(:data_export, Shapes::ShapeRef.new(shape: StorageClassAnalysisDataExport, location_name: "DataExport"))
1798
2050
  StorageClassAnalysis.struct_class = Types::StorageClassAnalysis
1799
2051
 
@@ -1909,10 +2161,15 @@ module Aws::S3
1909
2161
  api.version = "2006-03-01"
1910
2162
 
1911
2163
  api.metadata = {
2164
+ "apiVersion" => "2006-03-01",
2165
+ "checksumFormat" => "md5",
1912
2166
  "endpointPrefix" => "s3",
2167
+ "globalEndpoint" => "s3.amazonaws.com",
1913
2168
  "protocol" => "rest-xml",
2169
+ "serviceAbbreviation" => "Amazon S3",
1914
2170
  "serviceFullName" => "Amazon Simple Storage Service",
1915
- "timestampFormat" => "rfc822",
2171
+ "serviceId" => "S3",
2172
+ "uid" => "s3-2006-03-01",
1916
2173
  }
1917
2174
 
1918
2175
  api.add_operation(:abort_multipart_upload, Seahorse::Model::Operation.new.tap do |o|
@@ -2071,6 +2328,14 @@ module Aws::S3
2071
2328
  o.output = Shapes::ShapeRef.new(shape: DeleteObjectsOutput)
2072
2329
  end)
2073
2330
 
2331
+ api.add_operation(:delete_public_access_block, Seahorse::Model::Operation.new.tap do |o|
2332
+ o.name = "DeletePublicAccessBlock"
2333
+ o.http_method = "DELETE"
2334
+ o.http_request_uri = "/{Bucket}?publicAccessBlock"
2335
+ o.input = Shapes::ShapeRef.new(shape: DeletePublicAccessBlockRequest)
2336
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2337
+ end)
2338
+
2074
2339
  api.add_operation(:get_bucket_accelerate_configuration, Seahorse::Model::Operation.new.tap do |o|
2075
2340
  o.name = "GetBucketAccelerateConfiguration"
2076
2341
  o.http_method = "GET"
@@ -2185,6 +2450,14 @@ module Aws::S3
2185
2450
  o.output = Shapes::ShapeRef.new(shape: GetBucketPolicyOutput)
2186
2451
  end)
2187
2452
 
2453
+ api.add_operation(:get_bucket_policy_status, Seahorse::Model::Operation.new.tap do |o|
2454
+ o.name = "GetBucketPolicyStatus"
2455
+ o.http_method = "GET"
2456
+ o.http_request_uri = "/{Bucket}?policyStatus"
2457
+ o.input = Shapes::ShapeRef.new(shape: GetBucketPolicyStatusRequest)
2458
+ o.output = Shapes::ShapeRef.new(shape: GetBucketPolicyStatusOutput)
2459
+ end)
2460
+
2188
2461
  api.add_operation(:get_bucket_replication, Seahorse::Model::Operation.new.tap do |o|
2189
2462
  o.name = "GetBucketReplication"
2190
2463
  o.http_method = "GET"
@@ -2243,6 +2516,30 @@ module Aws::S3
2243
2516
  o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
2244
2517
  end)
2245
2518
 
2519
+ api.add_operation(:get_object_legal_hold, Seahorse::Model::Operation.new.tap do |o|
2520
+ o.name = "GetObjectLegalHold"
2521
+ o.http_method = "GET"
2522
+ o.http_request_uri = "/{Bucket}/{Key+}?legal-hold"
2523
+ o.input = Shapes::ShapeRef.new(shape: GetObjectLegalHoldRequest)
2524
+ o.output = Shapes::ShapeRef.new(shape: GetObjectLegalHoldOutput)
2525
+ end)
2526
+
2527
+ api.add_operation(:get_object_lock_configuration, Seahorse::Model::Operation.new.tap do |o|
2528
+ o.name = "GetObjectLockConfiguration"
2529
+ o.http_method = "GET"
2530
+ o.http_request_uri = "/{Bucket}?object-lock"
2531
+ o.input = Shapes::ShapeRef.new(shape: GetObjectLockConfigurationRequest)
2532
+ o.output = Shapes::ShapeRef.new(shape: GetObjectLockConfigurationOutput)
2533
+ end)
2534
+
2535
+ api.add_operation(:get_object_retention, Seahorse::Model::Operation.new.tap do |o|
2536
+ o.name = "GetObjectRetention"
2537
+ o.http_method = "GET"
2538
+ o.http_request_uri = "/{Bucket}/{Key+}?retention"
2539
+ o.input = Shapes::ShapeRef.new(shape: GetObjectRetentionRequest)
2540
+ o.output = Shapes::ShapeRef.new(shape: GetObjectRetentionOutput)
2541
+ end)
2542
+
2246
2543
  api.add_operation(:get_object_tagging, Seahorse::Model::Operation.new.tap do |o|
2247
2544
  o.name = "GetObjectTagging"
2248
2545
  o.http_method = "GET"
@@ -2259,6 +2556,14 @@ module Aws::S3
2259
2556
  o.output = Shapes::ShapeRef.new(shape: GetObjectTorrentOutput)
2260
2557
  end)
2261
2558
 
2559
+ api.add_operation(:get_public_access_block, Seahorse::Model::Operation.new.tap do |o|
2560
+ o.name = "GetPublicAccessBlock"
2561
+ o.http_method = "GET"
2562
+ o.http_request_uri = "/{Bucket}?publicAccessBlock"
2563
+ o.input = Shapes::ShapeRef.new(shape: GetPublicAccessBlockRequest)
2564
+ o.output = Shapes::ShapeRef.new(shape: GetPublicAccessBlockOutput)
2565
+ end)
2566
+
2262
2567
  api.add_operation(:head_bucket, Seahorse::Model::Operation.new.tap do |o|
2263
2568
  o.name = "HeadBucket"
2264
2569
  o.http_method = "HEAD"
@@ -2550,6 +2855,30 @@ module Aws::S3
2550
2855
  o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
2551
2856
  end)
2552
2857
 
2858
+ api.add_operation(:put_object_legal_hold, Seahorse::Model::Operation.new.tap do |o|
2859
+ o.name = "PutObjectLegalHold"
2860
+ o.http_method = "PUT"
2861
+ o.http_request_uri = "/{Bucket}/{Key+}?legal-hold"
2862
+ o.input = Shapes::ShapeRef.new(shape: PutObjectLegalHoldRequest)
2863
+ o.output = Shapes::ShapeRef.new(shape: PutObjectLegalHoldOutput)
2864
+ end)
2865
+
2866
+ api.add_operation(:put_object_lock_configuration, Seahorse::Model::Operation.new.tap do |o|
2867
+ o.name = "PutObjectLockConfiguration"
2868
+ o.http_method = "PUT"
2869
+ o.http_request_uri = "/{Bucket}?object-lock"
2870
+ o.input = Shapes::ShapeRef.new(shape: PutObjectLockConfigurationRequest)
2871
+ o.output = Shapes::ShapeRef.new(shape: PutObjectLockConfigurationOutput)
2872
+ end)
2873
+
2874
+ api.add_operation(:put_object_retention, Seahorse::Model::Operation.new.tap do |o|
2875
+ o.name = "PutObjectRetention"
2876
+ o.http_method = "PUT"
2877
+ o.http_request_uri = "/{Bucket}/{Key+}?retention"
2878
+ o.input = Shapes::ShapeRef.new(shape: PutObjectRetentionRequest)
2879
+ o.output = Shapes::ShapeRef.new(shape: PutObjectRetentionOutput)
2880
+ end)
2881
+
2553
2882
  api.add_operation(:put_object_tagging, Seahorse::Model::Operation.new.tap do |o|
2554
2883
  o.name = "PutObjectTagging"
2555
2884
  o.http_method = "PUT"
@@ -2558,6 +2887,14 @@ module Aws::S3
2558
2887
  o.output = Shapes::ShapeRef.new(shape: PutObjectTaggingOutput)
2559
2888
  end)
2560
2889
 
2890
+ api.add_operation(:put_public_access_block, Seahorse::Model::Operation.new.tap do |o|
2891
+ o.name = "PutPublicAccessBlock"
2892
+ o.http_method = "PUT"
2893
+ o.http_request_uri = "/{Bucket}?publicAccessBlock"
2894
+ o.input = Shapes::ShapeRef.new(shape: PutPublicAccessBlockRequest)
2895
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2896
+ end)
2897
+
2561
2898
  api.add_operation(:restore_object, Seahorse::Model::Operation.new.tap do |o|
2562
2899
  o.name = "RestoreObject"
2563
2900
  o.http_method = "POST"
@@ -2567,6 +2904,19 @@ module Aws::S3
2567
2904
  o.errors << Shapes::ShapeRef.new(shape: ObjectAlreadyInActiveTierError)
2568
2905
  end)
2569
2906
 
2907
+ api.add_operation(:select_object_content, Seahorse::Model::Operation.new.tap do |o|
2908
+ o.name = "SelectObjectContent"
2909
+ o.http_method = "POST"
2910
+ o.http_request_uri = "/{Bucket}/{Key+}?select&select-type=2"
2911
+ o.input = Shapes::ShapeRef.new(shape: SelectObjectContentRequest,
2912
+ location_name: "SelectObjectContentRequest",
2913
+ metadata: {
2914
+ "xmlNamespace" => {"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}
2915
+ }
2916
+ )
2917
+ o.output = Shapes::ShapeRef.new(shape: SelectObjectContentOutput)
2918
+ end)
2919
+
2570
2920
  api.add_operation(:upload_part, Seahorse::Model::Operation.new.tap do |o|
2571
2921
  o.name = "UploadPart"
2572
2922
  o.http_method = "PUT"