/** NGINX configuration management (`nginx.read`, `nginx.manage`). */
import { call } from "../transport";
import type { Payload } from "../types";

export const nginx = Object.freeze({
  inspect: (sessionId: string) => call<Payload>("module_nginx_inspect", "plugin:nginx:inspect", { sessionId }),
  readConfig: (sessionId: string, payload: Payload) => call<Payload>("module_nginx_read_config", "plugin:nginx:readConfig", { ...payload, sessionId }),
  dumpConfig: (sessionId: string, sudoPassword?: string) => call<Payload>("module_nginx_dump_config", "plugin:nginx:dumpConfig", { sessionId, sudoPassword }),
  testConfig: (sessionId: string, sudoPassword?: string) => call<Payload>("module_nginx_test_config", "plugin:nginx:testConfig", { sessionId, sudoPassword }),
  saveConfig: (sessionId: string, payload: Payload) => call<Payload>("module_nginx_save_config", "plugin:nginx:saveConfig", { ...payload, sessionId }),
  reload: (sessionId: string, sudoPassword?: string, confirm = false) => call<Payload>("module_nginx_reload", "plugin:nginx:reload", { sessionId, sudoPassword, confirm })
});
