This will return a string of the endpoint tree structure
        :param endpoint: Endpoint's Current path of the source
        :param index: int number of tabs to space over
        :return: str

def _create_tree(self, endpoint=None, index=0):
        """
        This will return a string of the endpoint tree structure
        :param endpoint: Endpoint's Current path of the source
        :param index: int number of tabs to space over
        :return: str
        """
        tab = ''  # '\t' * index
        ret = ''
        if endpoint:
            name = endpoint.path.split('.', 1)[1].replace('.', '/') + '/'
            ret += tab + name + '\n'
            ret += endpoint.method_calls(' ' * len(tab + name))
        else:
            endpoint = self

        for child_name in endpoint._endpoints:
            child = getattr(endpoint, child_name, None)
            if child:
                ret += self._create_tree(child, index + 1)
        return ret