1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
//! Single-namespace API types shared between `manta-cli` (Serialize
//! side) and `manta-server` (Deserialize side).
//!
//! Each submodule owns one resource end-to-end: HTTP request/response
//! bodies, query-string structs, and CLI-built parameter structs all
//! sit next to each other rather than being split across parallel
//! `wire/` and `params/` namespaces. Cross-cutting query and response
//! shapes live in [`queries`] and [`responses`].
//!
//! Convention:
//!
//! - Owned types (`String`, `Vec<String>`) throughout. The CLI pays a
//! small allocation cost on the outbound build; in exchange there is
//! exactly one type to keep in sync.
//! - Derives are `#[derive(Serialize, Deserialize, ToSchema)]` (or
//! `IntoParams` for query strings). The server uses `Deserialize` +
//! the utoipa derives for OpenAPI; the CLI uses `Serialize`.
//! - Field-level docs describe wire semantics. They show up in both
//! the OpenAPI spec and the rustdoc the CLI consumes.
//!
//! Types re-exported from `manta-backend-dispatcher` (response DTOs
//! owned by upstream crates) live in [`super::dto`], which is kept
//! separate because it serves a different concern: types we don't own.
/// Aggregate summary of CFS configurations + sessions + BOS templates +
/// IMS images flattened into image-centric rows
/// (`/api/v1/analysis/images`).
/// Boot-parameter request/response bodies (`/api/v1/boot-config`,
/// `/api/v1/boot-parameters`).
/// CLI-built params for `GET /clusters`.
/// CLI-built params for `GET /configurations`.
/// Wire shape for the per-row configuration-deletion-safety verdict
/// returned by `/api/v1/configurations`.
/// HSM group request/response bodies (`/api/v1/groups`,
/// `/api/v1/groups/{name}/members`).
/// CLI-built params for `GET /groups/hardware` and the
/// `/hardware-nodes-list` family.
/// Wire types for the `POST/DELETE /api/v1/hardware-clusters/{target}/*`
/// endpoints.
/// CLI-built params for `GET /images`.
/// Kernel-parameter request/response bodies
/// (`/api/v1/kernel-parameters/*`). The internal `KernelParamOperation`
/// enum is server-only and lives in `service::kernel_parameters`.
/// Wire types for the `POST /api/v1/migrate/*` endpoints.
/// Node request/response bodies (`/api/v1/nodes`).
/// Power request/response bodies (`/api/v1/power`).
/// Shared `IntoParams` query-string structs for every non-trivial GET
/// and DELETE endpoint.
/// CLI-built params for `GET/POST/PUT /redfish-endpoints`.
/// Tiny response shapes (`{ "created": true }`, `{ "id": "..." }`) so
/// the OpenAPI spec carries real types instead of `serde_json::Value`.
/// SAT-file element-apply request/response bodies (`POST
/// /api/v1/sat-file/*`) and CLI-built params for the whole-file
/// pass-through.
/// CFS session request/response bodies (`/api/v1/sessions`).
/// BOS session-template request/response bodies (`/api/v1/templates`,
/// `/api/v1/templates/{name}/sessions`).