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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
//! Lightweight response shapes for handlers that return ad-hoc JSON
//! maps such as `{ "created": true }` or `{ "id": "..." }`.
//!
//! Defined here so the OpenAPI spec carries a real type instead of
//! the catch-all `serde_json::Value`. Each struct matches the literal
//! JSON the handler emits today via `serde_json::json!({ ... })`.
use ;
use ToSchema;
/// Response for endpoints that simply confirm a write happened.
///
/// Emitted by `POST /api/v1/redfish-endpoints`,
/// `POST /api/v1/boot-parameters`, and `POST /api/v1/groups`.
///
/// # Wire shape
///
/// ```json
/// { "created": true }
/// ```
/// Response for `POST /api/v1/nodes` — echoes the registered xname.
///
/// Paired with [`super::node::AddNodeRequest`].
///
/// # Wire shape
///
/// ```json
/// { "id": "x3000c0s1b0n0" }
/// ```
/// Response for `POST /api/v1/sessions` — names of the created CFS
/// session and its underlying configuration.
///
/// Paired with [`super::session::CreateSessionRequest`]. When the
/// caller did not supply `cfs_conf_sess_name`, the server-generated
/// name is echoed back here.
/// Response for `POST /api/v1/ephemeral-env` — the freshly provisioned
/// ephemeral host.
/// Response for endpoints that simply confirm a backup / restore /
/// long-running migrate operation finished. Emitted by
/// `POST /api/v1/migrate/backup` and `POST /api/v1/migrate/restore`.
///
/// # Wire shape
///
/// ```json
/// { "completed": true }
/// ```
/// One migration pair's result; mirrors
/// `manta_server::service::migrate::NodeMigrationResult` on the wire.
/// Embedded inside [`MigrateNodesResponse`] without importing the
/// server-side type into the shared crate.
/// Response for `POST /api/v1/migrate/nodes` — moved xnames plus a
/// per-(target,parent) result list. Dry-run uses the same shape so the
/// CLI consumes one type regardless of mode.
///
/// Paired with [`super::migrate::MigrateNodesRequest`]. The `results`
/// array runs in lockstep with the request's `target_hsm_names` /
/// `parent_hsm_names` pairs.