code: async def version(self, tp, params, version=None, elem=None):
          
          if self.writing:
              return await self.set_version(tp, params, version, elem)
          else:
              return await self.get_version(tp, params)
docs: Symmetric version management
  
          :param tp:
          :param params:
          :param version:
          :return: