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    pub network: String,
14    pub registry_canister_id: String,
15    pub registry_version: u64,
16    pub fetched_at: String,
17    pub source_endpoint: String,
18    pub fetched_by: String,
19    pub node_operator_count: usize,
20    pub node_operators: Vec<NnsNodeOperatorRow>,
21}
22
23#[cfg(feature = "nns-host")]
24impl_nns_inventory_report!(
25    NnsNodeOperatorListReport,
26    super::super::NNS_NODE_OPERATOR_LIST_REPORT_SCHEMA_VERSION,
27    "node_operator",
28    node_operator_count,
29    node_operators,
30    |_report: &NnsNodeOperatorListReport| None,
31);
32
33///
34/// NnsNodeOperatorRow
35///
36/// One node operator row projected from the NNS registry inventory.
37///
38
39#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
40pub struct NnsNodeOperatorRow {
41    pub node_operator_principal: String,
42    pub node_provider_principal: String,
43    pub node_allowance: u64,
44    pub data_center_id: String,
45    pub node_count: Option<u32>,
46}
47
48///
49/// NnsNodeOperatorInfoReport
50///
51/// Detailed report for one resolved NNS node operator.
52///
53
54#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
55pub struct NnsNodeOperatorInfoReport {
56    pub schema_version: u32,
57    pub input: String,
58    pub resolved_from: String,
59    pub network: String,
60    pub registry_canister_id: String,
61    pub registry_version: u64,
62    pub fetched_at: String,
63    pub source_endpoint: String,
64    pub fetched_by: String,
65    pub node_operator_principal: String,
66    pub node_provider_principal: String,
67    pub node_allowance: u64,
68    pub data_center_id: String,
69    pub node_count: Option<u32>,
70}