Gets the resource of the given type and parent (if provided) with matching id.
        This will trigger an api GET request.
        :param parent ResourceBase: the parent of the resource - used for nesting the request url, optional
        :param id int: the id of the resource to be fetched
        :returns: the matching resource
        :raises ResourceError: if the resource cannot be found

def find(cls, id, parent=None):
        """
        Gets the resource of the given type and parent (if provided) with matching id.
        This will trigger an api GET request.
        :param parent ResourceBase: the parent of the resource - used for nesting the request url, optional
        :param id int: the id of the resource to be fetched
        :returns: the matching resource
        :raises ResourceError: if the resource cannot be found
        """
        try:
            data = cls._process_request(connection.get, parent=parent, id=id)
            return cls._load_resource(data)
        except connection.RequestError as error:
            raise cls.ResourceError(error)