docs: def reload(self, obj, extra_params=None):
          """Reload an object from server. This method is immutable and will return a new object.
  
          :param obj: object to reload
          :type obj: :py:obj:`obj`
          :param extra_params: additional object specific extra query string params (eg for activity)
          :type extra_params: dict
          :return: a new object
          :raises NotFoundError: if original object is not found or deleted in the mean time
          """
          if not obj._json_data.get('url'):  # pragma: no cover
              raise NotFoundError("Could not reload object, there is no url for object '{}' configured".format(obj))
  
          response = self._request('GET', obj._json_data.get('url'), params=extra_params)
  
          if response.status_code != requests.codes.ok:  # pragma: no cover
              raise NotFoundError("Could not reload object ({})".format(response))
  
          data = response.json()
  
          return obj.__class__(data['results'][0], client=self)