def filter(cls, parent=None, **filters):
        """
        Gets all resources of the given type and parent (if provided) which match the given filters.
        This will trigger an api GET request.
        :param parent ResourceBase: the parent of the resource - used for nesting the request url, optional
        :param **filters: any number of keyword arguments to filter by, e.g name='example name'
        :returns: a list of matching resources
        """
        data = cls._process_filter_request(parent, **filters)
        return cls._load_resources(data)