def METHOD_NAME(
    name: str, notebooks: OrderedDict[str, Dict[str, Any]]
) -> prefect.Flow:
    """
    Build a prefect flow that runs a set of interdependent Jupyter notebooks.
    The FlowAPI URL will be available to the notebooks as parameter 'flowapi_url'.
    Parameters
    ----------
    name : str
        Name for the workflow
    notebooks : OrderedDict
        Ordered dictionary of dictionaries describing notebook tasks.
        Each should have keys 'filename' and 'parameters', and optionally 'output'.
    Returns
    -------
    prefect.Flow
        Workflow that runs the notebooks.
    """
    # Get parameter names from notebooks dict
    parameter_names = get_additional_parameter_names_for_notebooks(
        notebooks=notebooks, reserved_parameter_names={"flowapi_url"}
    )
    # Define workflow
    with prefect.Flow(name=name) as workflow:
        # Parameters
        parameter_tasks = {
            pname: prefect.Parameter(pname)
            for pname in parameter_names.union({"reference_date", "date_ranges"})
        }
        # Instantiating a Parameter doesn't add it to the flow. The available dates sensor
        # will always pass the "date_ranges" parameter, so we need to explicitly add this
        # parameter in case it's not used by any of the notebook tasks
        # (https://github.com/PrefectHQ/prefect/issues/1541)
        workflow.add_task(parameter_tasks["date_ranges"])
        # Get FlowAPI URL so that it can be passed as a parameter to notebook execution tasks
        parameter_tasks["flowapi_url"] = get_flowapi_url()
        # Get unique tag for this workflow run
        tag = get_tag(reference_date=parameter_tasks["reference_date"])
        # Execute notebooks
        for key, notebook in notebooks.items():
            parameter_tasks[key] = papermill_execute_notebook(
                input_filename=notebook["filename"],
                output_tag=tag,
                parameters={
                    k: parameter_tasks[v]
                    for k, v in notebook.get("parameters", {}).items()
                },
            )
            if "output" in notebook:
                # Create PDF report from notebook
                convert_notebook_to_pdf(
                    notebook_path=parameter_tasks[key],
                    asciidoc_template=notebook["output"]["template"],
                )
    return workflow