docs: def snapshot(self, lock=False):
          """Create a snapshot of latest objects in bucket.
  
          :param lock: Create the new bucket in a locked state.
          :returns: Newly created bucket containing copied ObjectVersion.
          """
          with db.session.begin_nested():
              bucket = Bucket(
                  default_location=self.default_location,
                  default_storage_class=self.default_storage_class,
                  quota_size=self.quota_size,
              )
              db.session.add(bucket)
  
          for o in ObjectVersion.get_by_bucket(self):
              o.copy(bucket=bucket)
  
          bucket.locked = True if lock else self.locked
  
          return bucket