Skip to main content

ic_query/nns/node_operator/report/model/
report.rs

1use serde::{Deserialize, Serialize};
2
3///
4/// NnsNodeOperatorListReport
5///
6/// Complete NNS node operator inventory report with source metadata.
7///
8
9#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
10#[serde(deny_unknown_fields)]
11pub struct NnsNodeOperatorListReport {
12    pub schema_version: u32,
13    /// Registry acquisition metadata, flattened in JSON.
14    #[serde(flatten)]
15    pub provenance: crate::nns::registry::NnsRegistryInventoryProvenance,
16    pub node_operators: Vec<NnsNodeOperatorRow>,
17}
18
19///
20/// NnsNodeOperatorRow
21///
22/// One node operator row projected from the NNS registry inventory.
23///
24
25#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
26#[serde(deny_unknown_fields)]
27pub struct NnsNodeOperatorRow {
28    pub node_operator_principal: String,
29    pub node_provider_principal: String,
30    pub node_allowance: u64,
31    pub data_center_id: String,
32    pub node_count: Option<u32>,
33}
34
35///
36/// NnsNodeOperatorInfoReport
37///
38/// Detailed report for one resolved NNS node operator.
39///
40
41#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
42pub struct NnsNodeOperatorInfoReport {
43    pub schema_version: u32,
44    pub input: String,
45    pub resolved_from: String,
46    /// Registry acquisition metadata, flattened in JSON.
47    #[serde(flatten)]
48    pub provenance: crate::nns::registry::NnsRegistryInventoryProvenance,
49    /// Resolved inventory row.
50    #[serde(flatten)]
51    pub node_operator: NnsNodeOperatorRow,
52}