"""Validate a small explicit JSON settings object and send it once. Never render."""
import argparse
from resolve_api_connection import connect
from resolve_api_output import cli_target, cli_write, load_settings, print_result, run_action


def main():
    p = argparse.ArgumentParser(description=__doc__)
    cli_target(p)
    cli_write(p)
    p.add_argument("--settings", required=True, help="Local UTF-8 JSON file, at most 16 KiB")
    a = p.parse_args()

    def task():
        payload = load_settings(a.settings)  # Reject invalid settings before native connection.
        return run_action(connect(), a.project_id, a.timeline_id, "settings", settings=payload,
                          apply=a.apply, expect_plan=a.expect_plan, test_copy=a.test_copy)

    return print_result(task)


if __name__ == "__main__":
    raise SystemExit(main())
