def METHOD_NAME(
    url: str,
    taxonomy: Taxonomy,
    headers: Dict[str, str],
    dry: bool = False,
    diff: bool = False,
) -> None:
    """
    Push the current manifest file state to the server.
    """
    missing_datasets = get_orphan_datasets(taxonomy)
    if len(missing_datasets) > 0:
        echo_red(
            "Orphan Dataset Warning: The following datasets are not found referenced on a System"
        )
        for dataset in missing_datasets:
            print(dataset)
    for resource_type in taxonomy.__fields_set__:
        print("-" * 10)
        print(f"Processing {resource_type} resource(s)...")
        resource_list = getattr(taxonomy, resource_type)
        if diff or dry:
            existing_keys = [resource.fides_key for resource in resource_list]
            server_resource_list = get_server_resources(
                url, resource_type, existing_keys, headers
            )
            # Determine which resources should be created, updated, or are unchanged
            create_list, update_list = sort_create_update(
                resource_list, server_resource_list, diff
            )
            if dry:
                echo_results("would create", resource_type, len(create_list))
                echo_results("would update", resource_type, len(update_list))
                continue
        handle_cli_response(
            api.upsert(
                headers=headers,
                resource_type=resource_type,
                url=url,
                resources=[loads(resource.json()) for resource in resource_list],
            ),
            verbose=False,
        )
        echo_results("pushed", resource_type, len(resource_list))
    print("-" * 10)