def _get_by_ref_or_id(self, ref_or_id, exclude_fields=None):

        if ResourceReference.is_resource_reference(ref_or_id):
            # references always contain a dot and id's can't contain it
            is_reference = True
        else:
            is_reference = False

        if is_reference:
            resource_db = self._get_by_ref(resource_ref=ref_or_id, exclude_fields=exclude_fields)
        else:
            resource_db = self._get_by_id(resource_id=ref_or_id, exclude_fields=exclude_fields)

        if not resource_db:
            msg = 'Resource with a reference or id "%s" not found' % (ref_or_id)
            raise StackStormDBObjectNotFoundError(msg)

        return resource_db
Other keyword args get passed in as a matter of course, like BBOX, time, and elevation, but this basic driver
dataset/ETHPy150Open StackStorm/st2/st2api/st2api/controllers/resource.py/ContentPackResourceController._get_by_ref_or_id--crossover with--dataset/ETHPy150Open hydroshare/hydroshare2/ga_resources/drivers/shapefile.py/ShapefileDriver.ready_data_resource