@@ -501,7 +501,20 @@ def bucket_dict(self, account_auth_token):
501501 ] = self .default_server_side_encryption .algorithm .value
502502 else :
503503 default_sse ['value' ] = {'mode' : EncryptionMode .UNKNOWN }
504- logger .debug ('default sse returned is: %s' , default_sse )
504+
505+ if self .is_allowed_to_read_bucket_retention (account_auth_token ):
506+ file_lock_configuration = {
507+ 'isClientAuthorizedToRead' : True ,
508+ 'value' : {
509+ 'defaultRetention' : {
510+ 'mode' : self .default_retention .mode .value ,
511+ 'period' : self .default_retention .period ,
512+ },
513+ 'isFileLockEnabled' : self .is_file_lock_enabled ,
514+ },
515+ } # yapf: disable
516+ else :
517+ file_lock_configuration = {'isClientAuthorizedToRead' : False , 'value' : None }
505518 return dict (
506519 accountId = self .account_id ,
507520 bucketName = self .bucket_name ,
@@ -513,6 +526,7 @@ def bucket_dict(self, account_auth_token):
513526 options = self .options_set ,
514527 revision = self .revision ,
515528 defaultServerSideEncryption = default_sse ,
529+ fileLockConfiguration = file_lock_configuration ,
516530 )
517531
518532 def cancel_large_file (self , file_id ):
@@ -797,8 +811,9 @@ def _update_bucket(
797811 bucket_info = None ,
798812 cors_rules = None ,
799813 lifecycle_rules = None ,
800- if_revision_is = None ,
801- default_server_side_encryption = None ,
814+ if_revision_is : Optional [int ] = None ,
815+ default_server_side_encryption : Optional [EncryptionSetting ] = None ,
816+ default_retention : Optional [BucketRetentionSetting ] = None ,
802817 ):
803818 if if_revision_is is not None and self .revision != if_revision_is :
804819 raise Conflict ()
@@ -813,6 +828,8 @@ def _update_bucket(
813828 self .lifecycle_rules = lifecycle_rules
814829 if default_server_side_encryption is not None :
815830 self .default_server_side_encryption = default_server_side_encryption
831+ if default_retention :
832+ self .default_retention = default_retention
816833 self .revision += 1
817834 return self .bucket_dict (self .api .current_token )
818835
@@ -1498,7 +1515,8 @@ def update_bucket(
14981515 cors_rules = None ,
14991516 lifecycle_rules = None ,
15001517 if_revision_is = None ,
1501- default_server_side_encryption = None ,
1518+ default_server_side_encryption : Optional [EncryptionSetting ] = None ,
1519+ default_retention : Optional [BucketRetentionSetting ] = None ,
15021520 ):
15031521 assert bucket_type or bucket_info or cors_rules or lifecycle_rules or default_server_side_encryption
15041522 bucket = self ._get_bucket_by_id (bucket_id )
@@ -1510,6 +1528,7 @@ def update_bucket(
15101528 lifecycle_rules = lifecycle_rules ,
15111529 if_revision_is = if_revision_is ,
15121530 default_server_side_encryption = default_server_side_encryption ,
1531+ default_retention = default_retention ,
15131532 )
15141533
15151534 def upload_file (
0 commit comments