def METHOD_NAME(self, params=None, admin_params=None, wait=True):
    """
    Run the macro from the project
    .. note::
        If the authentication of the api client does not have admin rights, admin
        params are ignored.
    Usage example:
    .. code-block:: python
        # list all datasets on a connection.            
        connection_name = 'filesystem_managed'
        macro = project.get_macro('pyrunnable_builtin-macros_list-datasets-using-connection')
        run_id = macro.run(params={'connection': connection_name}, wait=True)
        # the result of this builtin macro is of type RESULT_TABLE
        result = macro.get_result(run_id, as_type="json")
        for record in result["records"]:
            print("Used by %s" % record[0])
    :param dict params: parameters to the macro run (defaults to `{}`)
    :param dict admin_params: admin parameters to the macro run (defaults to `{}`)
    :param boolean wait: if True, the call blocks until the run is finished
    :return: a run identifier to use with :meth:`abort()`, :meth:`get_status()` and :meth:`get_result()`
    :rtype: string
    """
    if params is None:
        params = {}
    if admin_params is None:
        admin_params = {}
    return self.client._perform_json(
        "POST", "/projects/%s/runnables/%s" % (self.project_key, self.runnable_type), 
        params={'wait':wait}, body={'params':params, 'adminParams':admin_params})['runId']