manta_shared/shared/params/sat_file.rs
1//! Parameters for `POST /sat-file`.
2
3/// Parameters for applying a SAT file.
4///
5/// The CLI renders Jinja2, parses the rendered YAML into a structured
6/// value, applies the `image_only` / `session_template_only` filters
7/// client-side (by removing top-level keys), and forwards the resulting
8/// `serde_json::Value` plus the apply-time flags through the server to
9/// the backend.
10pub struct ApplySatFileParams<'a> {
11 /// SAT file parsed into a structured value — Jinja2 already
12 /// evaluated and `image_only` / `session_template_only` filters
13 /// already applied client-side.
14 pub sat_file: serde_json::Value,
15 /// Ansible verbosity level (0–4) passed to any CFS sessions
16 /// created by this SAT file.
17 pub ansible_verbosity: Option<u8>,
18 /// Extra arguments forwarded verbatim to `ansible-playbook`.
19 pub ansible_passthrough: Option<&'a str>,
20 /// When true, reboot affected nodes after the session templates
21 /// are applied.
22 pub reboot: bool,
23 /// When true, stream CFS session logs to the caller as part of
24 /// the response.
25 pub watch_logs: bool,
26 /// When true, prefix each streamed log line with its timestamp.
27 pub timestamps: bool,
28 /// Overwrite existing CFS configurations or IMS images instead
29 /// of erroring on conflict.
30 pub overwrite: bool,
31 /// Render and validate the SAT file without creating any
32 /// resources.
33 pub dry_run: bool,
34}