def METHOD_NAME(self, baseurl, urlpath, entrypath):
    """
    Gets directory listing or file description or raw file dump
    :param baseurl: base URL of endpoint
    :param urlpath: base path of URL
    :param entrypath: basepath of the entry selected (equivalent of URL)
    :returns: `dict` of catalogs/collections or `dict` of GeoJSON item
    """
    thispath = os.path.join(baseurl, urlpath)
    resource_type = None
    root_link = None
    child_links = []
    data_path = self.data + entrypath
    if '/' not in entrypath:  # root
        root_link = baseurl
    else:
        parentpath = url_join(thispath, '.')
        child_links.append({
            'rel': 'parent',
            'href': f'{parentpath}?f=json',
            'type': 'application/json'
        })
        child_links.append({
            'rel': 'parent',
            'href': parentpath,
            'type': 'text/html'
        })
        depth = entrypath.count('/')
        root_path = '/'.replace('/', '../' * depth, 1)
        root_link = url_join(thispath, root_path)
    content = {
        'links': [{
            'rel': 'root',
            'href': f'{root_link}?f=json',
            'type': 'application/json'
            }, {
            'rel': 'root',
            'href': root_link,
            'type': 'text/html'
            }, {
            'rel': 'self',
            'href': f'{thispath}?f=json',
            'type': 'application/json',
            }, {
            'rel': 'self',
            'href': thispath,
            'type': 'text/html'
            }
        ]
    }
    LOGGER.debug('Checking if path exists as Catalog, Collection or Asset')
    try:
        jsondata = _get_json_data(f'{data_path}/catalog.json')
        resource_type = 'Catalog'
    except Exception:
        try:
            jsondata = _get_json_data(f'{data_path}/collection.json')
            resource_type = 'Collection'
        except Exception:
            try:
                filename = os.path.basename(data_path)
                jsondata = _get_json_data(f'{data_path}/{filename}.json')
                resource_type = 'Assets'
            except Exception:
                msg = f'Resource does not exist: {data_path}'
                LOGGER.error(msg)
                raise ProviderNotFoundError(msg)
    if resource_type == 'Catalog' or resource_type == 'Collection':
        content['type'] = resource_type
        link_href_list = []
        for link in jsondata["links"]:
            if resource_type in ['Catalog', 'Collection'] \
               and link["rel"] in ["child", "item"]:
                link_href_list.append(link["href"].replace('\\', '/'))
        link_href_list.sort()
        for link in link_href_list:
            unused, path_ending, entry_type = link.split('/')
            newpath = os.path.join(baseurl, urlpath, path_ending).replace('\\', '/') # noqa
            if entry_type == 'catalog.json':
                child_links.append({
                    'rel': 'child',
                    'href': newpath,
                    'type': 'text/html',
                    'created': "-",
                    'entry:type': 'Catalog'
                })
            elif entry_type == 'collection.json':
                child_links.append({
                    'rel': 'child',
                    'href': newpath,
                    'type': 'text/html',
                    'created': "-",
                    'entry:type': 'Collection'
                })
            else:
                child_links.append({
                    'rel': 'item',
                    'href': newpath,
                    'title': path_ending,
                    'created': "-",
                    'entry:type': 'Item'
                })
    elif resource_type == 'Assets':
        content = jsondata
        content['assets']['default'] = {
            'href': os.path.join(baseurl, urlpath).replace('\\', '/'),
        }
        for key in content['assets']:
            content['assets'][key]['file:size'] = 0
            content['assets'][key]['created'] = jsondata["properties"]["datetime"] # noqa
    content['links'].extend(child_links)
    return content