code: def read_meta(self, document_id=None):
          
          if document_id:
              if not self.abstract:
                  raise ImmutableDocumentException()
              self._id = document_id
  
          if self.abstract:
              raise AbstractDocumentException()
  
          metadata = self._api.get_document_meta(self.id)
  
          self._name = metadata['document_name']
          self._public = metadata['public']
          self._owner = metadata['owner']
          self._created_at = parse_xsd_datetime(metadata['created_at'])
          self._views = metadata['views_count']
  
          self._bundles = BundleManager(self._api, self)
  
          return self
docs: Load metadata associated with the document
  
          .. note::
             This method is called automatically if needed when a property is first accessed. You will not normally have
             to use this method manually.
  
          :param document_id: (optional) set the document id if this is an :py:meth:`abstract` document
          :return: self