aws-sdk-s3 1.26.0 → 1.27.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.
@@ -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|