aws-sdk-s3 1.26.0 → 1.27.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -49,6 +49,7 @@ module Aws::S3
49
49
  BucketName = Shapes::StringShape.new(name: 'BucketName')
50
50
  BucketVersioningStatus = Shapes::StringShape.new(name: 'BucketVersioningStatus')
51
51
  Buckets = Shapes::ListShape.new(name: 'Buckets')
52
+ BypassGovernanceRetention = Shapes::BooleanShape.new(name: 'BypassGovernanceRetention')
52
53
  BytesProcessed = Shapes::IntegerShape.new(name: 'BytesProcessed')
53
54
  BytesReturned = Shapes::IntegerShape.new(name: 'BytesReturned')
54
55
  BytesScanned = Shapes::IntegerShape.new(name: 'BytesScanned')
@@ -104,6 +105,7 @@ module Aws::S3
104
105
  Date = Shapes::TimestampShape.new(name: 'Date', timestampFormat: "iso8601")
105
106
  Days = Shapes::IntegerShape.new(name: 'Days')
106
107
  DaysAfterInitiation = Shapes::IntegerShape.new(name: 'DaysAfterInitiation')
108
+ DefaultRetention = Shapes::StructureShape.new(name: 'DefaultRetention')
107
109
  Delete = Shapes::StructureShape.new(name: 'Delete')
108
110
  DeleteBucketAnalyticsConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketAnalyticsConfigurationRequest')
109
111
  DeleteBucketCorsRequest = Shapes::StructureShape.new(name: 'DeleteBucketCorsRequest')
@@ -202,8 +204,14 @@ module Aws::S3
202
204
  GetBucketWebsiteRequest = Shapes::StructureShape.new(name: 'GetBucketWebsiteRequest')
203
205
  GetObjectAclOutput = Shapes::StructureShape.new(name: 'GetObjectAclOutput')
204
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')
205
211
  GetObjectOutput = Shapes::StructureShape.new(name: 'GetObjectOutput')
206
212
  GetObjectRequest = Shapes::StructureShape.new(name: 'GetObjectRequest')
213
+ GetObjectRetentionOutput = Shapes::StructureShape.new(name: 'GetObjectRetentionOutput')
214
+ GetObjectRetentionRequest = Shapes::StructureShape.new(name: 'GetObjectRetentionRequest')
207
215
  GetObjectTaggingOutput = Shapes::StructureShape.new(name: 'GetObjectTaggingOutput')
208
216
  GetObjectTaggingRequest = Shapes::StructureShape.new(name: 'GetObjectTaggingRequest')
209
217
  GetObjectTorrentOutput = Shapes::StructureShape.new(name: 'GetObjectTorrentOutput')
@@ -334,6 +342,17 @@ module Aws::S3
334
342
  ObjectIdentifierList = Shapes::ListShape.new(name: 'ObjectIdentifierList', flattened: true)
335
343
  ObjectKey = Shapes::StringShape.new(name: 'ObjectKey')
336
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')
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')
337
356
  ObjectNotInActiveTierError = Shapes::StructureShape.new(name: 'ObjectNotInActiveTierError')
338
357
  ObjectStorageClass = Shapes::StringShape.new(name: 'ObjectStorageClass')
339
358
  ObjectVersion = Shapes::StructureShape.new(name: 'ObjectVersion')
@@ -380,8 +399,14 @@ module Aws::S3
380
399
  PutBucketWebsiteRequest = Shapes::StructureShape.new(name: 'PutBucketWebsiteRequest')
381
400
  PutObjectAclOutput = Shapes::StructureShape.new(name: 'PutObjectAclOutput')
382
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')
383
406
  PutObjectOutput = Shapes::StructureShape.new(name: 'PutObjectOutput')
384
407
  PutObjectRequest = Shapes::StructureShape.new(name: 'PutObjectRequest')
408
+ PutObjectRetentionOutput = Shapes::StructureShape.new(name: 'PutObjectRetentionOutput')
409
+ PutObjectRetentionRequest = Shapes::StructureShape.new(name: 'PutObjectRetentionRequest')
385
410
  PutObjectTaggingOutput = Shapes::StructureShape.new(name: 'PutObjectTaggingOutput')
386
411
  PutObjectTaggingRequest = Shapes::StructureShape.new(name: 'PutObjectTaggingRequest')
387
412
  PutPublicAccessBlockRequest = Shapes::StructureShape.new(name: 'PutPublicAccessBlockRequest')
@@ -491,6 +516,7 @@ module Aws::S3
491
516
  VersioningConfiguration = Shapes::StructureShape.new(name: 'VersioningConfiguration')
492
517
  WebsiteConfiguration = Shapes::StructureShape.new(name: 'WebsiteConfiguration')
493
518
  WebsiteRedirectLocation = Shapes::StringShape.new(name: 'WebsiteRedirectLocation')
519
+ Years = Shapes::IntegerShape.new(name: 'Years')
494
520
 
495
521
  AbortIncompleteMultipartUpload.add_member(:days_after_initiation, Shapes::ShapeRef.new(shape: DaysAfterInitiation, location_name: "DaysAfterInitiation"))
496
522
  AbortIncompleteMultipartUpload.struct_class = Types::AbortIncompleteMultipartUpload
@@ -678,6 +704,9 @@ module Aws::S3
678
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"))
679
705
  CopyObjectRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
680
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"))
681
710
  CopyObjectRequest.struct_class = Types::CopyObjectRequest
682
711
 
683
712
  CopyObjectResult.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
@@ -702,6 +731,7 @@ module Aws::S3
702
731
  CreateBucketRequest.add_member(:grant_read_acp, Shapes::ShapeRef.new(shape: GrantReadACP, location: "header", location_name: "x-amz-grant-read-acp"))
703
732
  CreateBucketRequest.add_member(:grant_write, Shapes::ShapeRef.new(shape: GrantWrite, location: "header", location_name: "x-amz-grant-write"))
704
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"))
705
735
  CreateBucketRequest.struct_class = Types::CreateBucketRequest
706
736
  CreateBucketRequest[:payload] = :create_bucket_configuration
707
737
  CreateBucketRequest[:payload_member] = CreateBucketRequest.member(:create_bucket_configuration)
@@ -741,8 +771,16 @@ module Aws::S3
741
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"))
742
772
  CreateMultipartUploadRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
743
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"))
744
777
  CreateMultipartUploadRequest.struct_class = Types::CreateMultipartUploadRequest
745
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
+
746
784
  Delete.add_member(:objects, Shapes::ShapeRef.new(shape: ObjectIdentifierList, required: true, location_name: "Object"))
747
785
  Delete.add_member(:quiet, Shapes::ShapeRef.new(shape: Quiet, location_name: "Quiet"))
748
786
  Delete.struct_class = Types::Delete
@@ -805,6 +843,7 @@ module Aws::S3
805
843
  DeleteObjectRequest.add_member(:mfa, Shapes::ShapeRef.new(shape: MFA, location: "header", location_name: "x-amz-mfa"))
806
844
  DeleteObjectRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
807
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"))
808
847
  DeleteObjectRequest.struct_class = Types::DeleteObjectRequest
809
848
 
810
849
  DeleteObjectTaggingOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
@@ -824,6 +863,7 @@ module Aws::S3
824
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/"}}))
825
864
  DeleteObjectsRequest.add_member(:mfa, Shapes::ShapeRef.new(shape: MFA, location: "header", location_name: "x-amz-mfa"))
826
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"))
827
867
  DeleteObjectsRequest.struct_class = Types::DeleteObjectsRequest
828
868
  DeleteObjectsRequest[:payload] = :delete
829
869
  DeleteObjectsRequest[:payload_member] = DeleteObjectsRequest.member(:delete)
@@ -1021,6 +1061,25 @@ module Aws::S3
1021
1061
  GetObjectAclRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1022
1062
  GetObjectAclRequest.struct_class = Types::GetObjectAclRequest
1023
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
+
1024
1083
  GetObjectOutput.add_member(:body, Shapes::ShapeRef.new(shape: Body, location_name: "Body", metadata: {"streaming"=>true}))
1025
1084
  GetObjectOutput.add_member(:delete_marker, Shapes::ShapeRef.new(shape: DeleteMarker, location: "header", location_name: "x-amz-delete-marker"))
1026
1085
  GetObjectOutput.add_member(:accept_ranges, Shapes::ShapeRef.new(shape: AcceptRanges, location: "header", location_name: "accept-ranges"))
@@ -1050,6 +1109,9 @@ module Aws::S3
1050
1109
  GetObjectOutput.add_member(:replication_status, Shapes::ShapeRef.new(shape: ReplicationStatus, location: "header", location_name: "x-amz-replication-status"))
1051
1110
  GetObjectOutput.add_member(:parts_count, Shapes::ShapeRef.new(shape: PartsCount, location: "header", location_name: "x-amz-mp-parts-count"))
1052
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"))
1053
1115
  GetObjectOutput.struct_class = Types::GetObjectOutput
1054
1116
  GetObjectOutput[:payload] = :body
1055
1117
  GetObjectOutput[:payload_member] = GetObjectOutput.member(:body)
@@ -1075,6 +1137,17 @@ module Aws::S3
1075
1137
  GetObjectRequest.add_member(:part_number, Shapes::ShapeRef.new(shape: PartNumber, location: "querystring", location_name: "partNumber"))
1076
1138
  GetObjectRequest.struct_class = Types::GetObjectRequest
1077
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
+
1078
1151
  GetObjectTaggingOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
1079
1152
  GetObjectTaggingOutput.add_member(:tag_set, Shapes::ShapeRef.new(shape: TagSet, required: true, location_name: "TagSet"))
1080
1153
  GetObjectTaggingOutput.struct_class = Types::GetObjectTaggingOutput
@@ -1148,6 +1221,9 @@ module Aws::S3
1148
1221
  HeadObjectOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1149
1222
  HeadObjectOutput.add_member(:replication_status, Shapes::ShapeRef.new(shape: ReplicationStatus, location: "header", location_name: "x-amz-replication-status"))
1150
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"))
1151
1227
  HeadObjectOutput.struct_class = Types::HeadObjectOutput
1152
1228
 
1153
1229
  HeadObjectRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
@@ -1481,6 +1557,20 @@ module Aws::S3
1481
1557
 
1482
1558
  ObjectList.member = Shapes::ShapeRef.new(shape: Object)
1483
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
+
1484
1574
  ObjectVersion.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location_name: "ETag"))
1485
1575
  ObjectVersion.add_member(:size, Shapes::ShapeRef.new(shape: Size, location_name: "Size"))
1486
1576
  ObjectVersion.add_member(:storage_class, Shapes::ShapeRef.new(shape: ObjectVersionStorageClass, location_name: "StorageClass"))
@@ -1681,6 +1771,31 @@ module Aws::S3
1681
1771
  PutObjectAclRequest[:payload] = :access_control_policy
1682
1772
  PutObjectAclRequest[:payload_member] = PutObjectAclRequest.member(:access_control_policy)
1683
1773
 
1774
+ PutObjectLegalHoldOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1775
+ PutObjectLegalHoldOutput.struct_class = Types::PutObjectLegalHoldOutput
1776
+
1777
+ PutObjectLegalHoldRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1778
+ PutObjectLegalHoldRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1779
+ PutObjectLegalHoldRequest.add_member(:legal_hold, Shapes::ShapeRef.new(shape: ObjectLockLegalHold, location_name: "LegalHold", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
1780
+ PutObjectLegalHoldRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1781
+ PutObjectLegalHoldRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1782
+ PutObjectLegalHoldRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
1783
+ PutObjectLegalHoldRequest.struct_class = Types::PutObjectLegalHoldRequest
1784
+ PutObjectLegalHoldRequest[:payload] = :legal_hold
1785
+ PutObjectLegalHoldRequest[:payload_member] = PutObjectLegalHoldRequest.member(:legal_hold)
1786
+
1787
+ PutObjectLockConfigurationOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1788
+ PutObjectLockConfigurationOutput.struct_class = Types::PutObjectLockConfigurationOutput
1789
+
1790
+ PutObjectLockConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1791
+ 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/"}}))
1792
+ PutObjectLockConfigurationRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1793
+ PutObjectLockConfigurationRequest.add_member(:token, Shapes::ShapeRef.new(shape: ObjectLockToken, location: "header", location_name: "x-amz-bucket-object-lock-token"))
1794
+ PutObjectLockConfigurationRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
1795
+ PutObjectLockConfigurationRequest.struct_class = Types::PutObjectLockConfigurationRequest
1796
+ PutObjectLockConfigurationRequest[:payload] = :object_lock_configuration
1797
+ PutObjectLockConfigurationRequest[:payload_member] = PutObjectLockConfigurationRequest.member(:object_lock_configuration)
1798
+
1684
1799
  PutObjectOutput.add_member(:expiration, Shapes::ShapeRef.new(shape: Expiration, location: "header", location_name: "x-amz-expiration"))
1685
1800
  PutObjectOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location: "header", location_name: "ETag"))
1686
1801
  PutObjectOutput.add_member(:server_side_encryption, Shapes::ShapeRef.new(shape: ServerSideEncryption, location: "header", location_name: "x-amz-server-side-encryption"))
@@ -1717,10 +1832,27 @@ module Aws::S3
1717
1832
  PutObjectRequest.add_member(:ssekms_key_id, Shapes::ShapeRef.new(shape: SSEKMSKeyId, location: "header", location_name: "x-amz-server-side-encryption-aws-kms-key-id"))
1718
1833
  PutObjectRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1719
1834
  PutObjectRequest.add_member(:tagging, Shapes::ShapeRef.new(shape: TaggingHeader, location: "header", location_name: "x-amz-tagging"))
1835
+ PutObjectRequest.add_member(:object_lock_mode, Shapes::ShapeRef.new(shape: ObjectLockMode, location: "header", location_name: "x-amz-object-lock-mode"))
1836
+ PutObjectRequest.add_member(:object_lock_retain_until_date, Shapes::ShapeRef.new(shape: ObjectLockRetainUntilDate, location: "header", location_name: "x-amz-object-lock-retain-until-date"))
1837
+ PutObjectRequest.add_member(:object_lock_legal_hold_status, Shapes::ShapeRef.new(shape: ObjectLockLegalHoldStatus, location: "header", location_name: "x-amz-object-lock-legal-hold"))
1720
1838
  PutObjectRequest.struct_class = Types::PutObjectRequest
1721
1839
  PutObjectRequest[:payload] = :body
1722
1840
  PutObjectRequest[:payload_member] = PutObjectRequest.member(:body)
1723
1841
 
1842
+ PutObjectRetentionOutput.add_member(:request_charged, Shapes::ShapeRef.new(shape: RequestCharged, location: "header", location_name: "x-amz-request-charged"))
1843
+ PutObjectRetentionOutput.struct_class = Types::PutObjectRetentionOutput
1844
+
1845
+ PutObjectRetentionRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1846
+ PutObjectRetentionRequest.add_member(:key, Shapes::ShapeRef.new(shape: ObjectKey, required: true, location: "uri", location_name: "Key"))
1847
+ PutObjectRetentionRequest.add_member(:retention, Shapes::ShapeRef.new(shape: ObjectLockRetention, location_name: "Retention", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
1848
+ PutObjectRetentionRequest.add_member(:request_payer, Shapes::ShapeRef.new(shape: RequestPayer, location: "header", location_name: "x-amz-request-payer"))
1849
+ PutObjectRetentionRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "querystring", location_name: "versionId"))
1850
+ PutObjectRetentionRequest.add_member(:bypass_governance_retention, Shapes::ShapeRef.new(shape: BypassGovernanceRetention, location: "header", location_name: "x-amz-bypass-governance-retention"))
1851
+ PutObjectRetentionRequest.add_member(:content_md5, Shapes::ShapeRef.new(shape: ContentMD5, location: "header", location_name: "Content-MD5"))
1852
+ PutObjectRetentionRequest.struct_class = Types::PutObjectRetentionRequest
1853
+ PutObjectRetentionRequest[:payload] = :retention
1854
+ PutObjectRetentionRequest[:payload_member] = PutObjectRetentionRequest.member(:retention)
1855
+
1724
1856
  PutObjectTaggingOutput.add_member(:version_id, Shapes::ShapeRef.new(shape: ObjectVersionId, location: "header", location_name: "x-amz-version-id"))
1725
1857
  PutObjectTaggingOutput.struct_class = Types::PutObjectTaggingOutput
1726
1858
 
@@ -2383,6 +2515,30 @@ module Aws::S3
2383
2515
  o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
2384
2516
  end)
2385
2517
 
2518
+ api.add_operation(:get_object_legal_hold, Seahorse::Model::Operation.new.tap do |o|
2519
+ o.name = "GetObjectLegalHold"
2520
+ o.http_method = "GET"
2521
+ o.http_request_uri = "/{Bucket}/{Key+}?legal-hold"
2522
+ o.input = Shapes::ShapeRef.new(shape: GetObjectLegalHoldRequest)
2523
+ o.output = Shapes::ShapeRef.new(shape: GetObjectLegalHoldOutput)
2524
+ end)
2525
+
2526
+ api.add_operation(:get_object_lock_configuration, Seahorse::Model::Operation.new.tap do |o|
2527
+ o.name = "GetObjectLockConfiguration"
2528
+ o.http_method = "GET"
2529
+ o.http_request_uri = "/{Bucket}?object-lock"
2530
+ o.input = Shapes::ShapeRef.new(shape: GetObjectLockConfigurationRequest)
2531
+ o.output = Shapes::ShapeRef.new(shape: GetObjectLockConfigurationOutput)
2532
+ end)
2533
+
2534
+ api.add_operation(:get_object_retention, Seahorse::Model::Operation.new.tap do |o|
2535
+ o.name = "GetObjectRetention"
2536
+ o.http_method = "GET"
2537
+ o.http_request_uri = "/{Bucket}/{Key+}?retention"
2538
+ o.input = Shapes::ShapeRef.new(shape: GetObjectRetentionRequest)
2539
+ o.output = Shapes::ShapeRef.new(shape: GetObjectRetentionOutput)
2540
+ end)
2541
+
2386
2542
  api.add_operation(:get_object_tagging, Seahorse::Model::Operation.new.tap do |o|
2387
2543
  o.name = "GetObjectTagging"
2388
2544
  o.http_method = "GET"
@@ -2698,6 +2854,30 @@ module Aws::S3
2698
2854
  o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
2699
2855
  end)
2700
2856
 
2857
+ api.add_operation(:put_object_legal_hold, Seahorse::Model::Operation.new.tap do |o|
2858
+ o.name = "PutObjectLegalHold"
2859
+ o.http_method = "PUT"
2860
+ o.http_request_uri = "/{Bucket}/{Key+}?legal-hold"
2861
+ o.input = Shapes::ShapeRef.new(shape: PutObjectLegalHoldRequest)
2862
+ o.output = Shapes::ShapeRef.new(shape: PutObjectLegalHoldOutput)
2863
+ end)
2864
+
2865
+ api.add_operation(:put_object_lock_configuration, Seahorse::Model::Operation.new.tap do |o|
2866
+ o.name = "PutObjectLockConfiguration"
2867
+ o.http_method = "PUT"
2868
+ o.http_request_uri = "/{Bucket}?object-lock"
2869
+ o.input = Shapes::ShapeRef.new(shape: PutObjectLockConfigurationRequest)
2870
+ o.output = Shapes::ShapeRef.new(shape: PutObjectLockConfigurationOutput)
2871
+ end)
2872
+
2873
+ api.add_operation(:put_object_retention, Seahorse::Model::Operation.new.tap do |o|
2874
+ o.name = "PutObjectRetention"
2875
+ o.http_method = "PUT"
2876
+ o.http_request_uri = "/{Bucket}/{Key+}?retention"
2877
+ o.input = Shapes::ShapeRef.new(shape: PutObjectRetentionRequest)
2878
+ o.output = Shapes::ShapeRef.new(shape: PutObjectRetentionOutput)
2879
+ end)
2880
+
2701
2881
  api.add_operation(:put_object_tagging, Seahorse::Model::Operation.new.tap do |o|
2702
2882
  o.name = "PutObjectTagging"
2703
2883
  o.http_method = "PUT"
@@ -213,6 +213,24 @@ module Aws::S3
213
213
  data[:parts_count]
214
214
  end
215
215
 
216
+ # The Object Lock mode currently in place for this object.
217
+ # @return [String]
218
+ def object_lock_mode
219
+ data[:object_lock_mode]
220
+ end
221
+
222
+ # The date and time when this object's Object Lock will expire.
223
+ # @return [Time]
224
+ def object_lock_retain_until_date
225
+ data[:object_lock_retain_until_date]
226
+ end
227
+
228
+ # The Legal Hold status for the specified object.
229
+ # @return [String]
230
+ def object_lock_legal_hold_status
231
+ data[:object_lock_legal_hold_status]
232
+ end
233
+
216
234
  # @!endgroup
217
235
 
218
236
  # @return [Client]
@@ -425,7 +443,7 @@ module Aws::S3
425
443
  # metadata_directive: "COPY", # accepts COPY, REPLACE
426
444
  # tagging_directive: "COPY", # accepts COPY, REPLACE
427
445
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
428
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
446
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
429
447
  # website_redirect_location: "WebsiteRedirectLocation",
430
448
  # sse_customer_algorithm: "SSECustomerAlgorithm",
431
449
  # sse_customer_key: "SSECustomerKey",
@@ -436,6 +454,9 @@ module Aws::S3
436
454
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
437
455
  # request_payer: "requester", # accepts requester
438
456
  # tagging: "TaggingHeader",
457
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
458
+ # object_lock_retain_until_date: Time.now,
459
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
439
460
  # })
440
461
  # @param [Hash] options ({})
441
462
  # @option options [String] :acl
@@ -533,6 +554,13 @@ module Aws::S3
533
554
  # The tag-set for the object destination object this value must be used
534
555
  # in conjunction with the TaggingDirective. The tag-set must be encoded
535
556
  # as URL Query parameters
557
+ # @option options [String] :object_lock_mode
558
+ # The Object Lock mode that you want to apply to the copied object.
559
+ # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
560
+ # The date and time when you want the copied object's Object Lock to
561
+ # expire.
562
+ # @option options [String] :object_lock_legal_hold_status
563
+ # Specifies whether you want to apply a Legal Hold to the copied object.
536
564
  # @return [Types::CopyObjectOutput]
537
565
  def copy_from(options = {})
538
566
  options = options.merge(
@@ -549,6 +577,7 @@ module Aws::S3
549
577
  # mfa: "MFA",
550
578
  # version_id: "ObjectVersionId",
551
579
  # request_payer: "requester", # accepts requester
580
+ # bypass_governance_retention: false,
552
581
  # })
553
582
  # @param [Hash] options ({})
554
583
  # @option options [String] :mfa
@@ -562,6 +591,7 @@ module Aws::S3
562
591
  # requests. Documentation on downloading objects from requester pays
563
592
  # buckets can be found at
564
593
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
594
+ # @option options [Boolean] :bypass_governance_retention
565
595
  # @return [Types::DeleteObjectOutput]
566
596
  def delete(options = {})
567
597
  options = options.merge(
@@ -676,7 +706,7 @@ module Aws::S3
676
706
  # "MetadataKey" => "MetadataValue",
677
707
  # },
678
708
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
679
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
709
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
680
710
  # website_redirect_location: "WebsiteRedirectLocation",
681
711
  # sse_customer_algorithm: "SSECustomerAlgorithm",
682
712
  # sse_customer_key: "SSECustomerKey",
@@ -684,6 +714,9 @@ module Aws::S3
684
714
  # ssekms_key_id: "SSEKMSKeyId",
685
715
  # request_payer: "requester", # accepts requester
686
716
  # tagging: "TaggingHeader",
717
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
718
+ # object_lock_retain_until_date: Time.now,
719
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
687
720
  # })
688
721
  # @param [Hash] options ({})
689
722
  # @option options [String] :acl
@@ -750,6 +783,14 @@ module Aws::S3
750
783
  # @option options [String] :tagging
751
784
  # The tag-set for the object. The tag-set must be encoded as URL Query
752
785
  # parameters
786
+ # @option options [String] :object_lock_mode
787
+ # Specifies the Object Lock mode that you want to apply to the uploaded
788
+ # object.
789
+ # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
790
+ # Specifies the date and time when you want the Object Lock to expire.
791
+ # @option options [String] :object_lock_legal_hold_status
792
+ # Specifies whether you want to apply a Legal Hold to the uploaded
793
+ # object.
753
794
  # @return [MultipartUpload]
754
795
  def initiate_multipart_upload(options = {})
755
796
  options = options.merge(
@@ -786,7 +827,7 @@ module Aws::S3
786
827
  # "MetadataKey" => "MetadataValue",
787
828
  # },
788
829
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
789
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
830
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
790
831
  # website_redirect_location: "WebsiteRedirectLocation",
791
832
  # sse_customer_algorithm: "SSECustomerAlgorithm",
792
833
  # sse_customer_key: "SSECustomerKey",
@@ -794,6 +835,9 @@ module Aws::S3
794
835
  # ssekms_key_id: "SSEKMSKeyId",
795
836
  # request_payer: "requester", # accepts requester
796
837
  # tagging: "TaggingHeader",
838
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
839
+ # object_lock_retain_until_date: Time.now,
840
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
797
841
  # })
798
842
  # @param [Hash] options ({})
799
843
  # @option options [String] :acl
@@ -867,6 +911,12 @@ module Aws::S3
867
911
  # @option options [String] :tagging
868
912
  # The tag-set for the object. The tag-set must be encoded as URL Query
869
913
  # parameters. (For example, "Key1=Value1")
914
+ # @option options [String] :object_lock_mode
915
+ # The Object Lock mode that you want to apply to this object.
916
+ # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
917
+ # The date and time when you want this object's Object Lock to expire.
918
+ # @option options [String] :object_lock_legal_hold_status
919
+ # The Legal Hold status that you want to apply to the specified object.
870
920
  # @return [Types::PutObjectOutput]
871
921
  def put(options = {})
872
922
  options = options.merge(
@@ -958,7 +1008,7 @@ module Aws::S3
958
1008
  # value: "MetadataValue",
959
1009
  # },
960
1010
  # ],
961
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
1011
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
962
1012
  # },
963
1013
  # },
964
1014
  # },
@@ -1093,6 +1143,7 @@ module Aws::S3
1093
1143
  # object.batch_delete!({
1094
1144
  # mfa: "MFA",
1095
1145
  # request_payer: "requester", # accepts requester
1146
+ # bypass_governance_retention: false,
1096
1147
  # })
1097
1148
  # @param options ({})
1098
1149
  # @option options [String] :mfa
@@ -1104,6 +1155,10 @@ module Aws::S3
1104
1155
  # requests. Documentation on downloading objects from requester pays
1105
1156
  # buckets can be found at
1106
1157
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1158
+ # @option options [Boolean] :bypass_governance_retention
1159
+ # Specifies whether you want to delete this object even if it has a
1160
+ # Governance-type Object Lock in place. You must have sufficient
1161
+ # permissions to perform this operation.
1107
1162
  # @return [void]
1108
1163
  def batch_delete!(options = {})
1109
1164
  batch_enum.each do |batch|