ic_query/nns/node_operator/report/model/
report.rs1#[cfg(feature = "nns-host")]
2use crate::cache_file::JsonCacheReport;
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
12#[serde(deny_unknown_fields)]
13pub struct NnsNodeOperatorListReport {
14 pub schema_version: u32,
15 pub network: String,
16 pub registry_canister_id: String,
17 pub registry_version: u64,
18 pub fetched_at: String,
19 pub source_endpoint: String,
20 pub fetched_by: String,
21 pub node_operator_count: usize,
22 pub node_operators: Vec<NnsNodeOperatorRow>,
23}
24
25#[cfg(feature = "nns-host")]
26impl JsonCacheReport for NnsNodeOperatorListReport {
27 fn schema_version(&self) -> u32 {
28 self.schema_version
29 }
30
31 fn network(&self) -> &str {
32 &self.network
33 }
34}
35
36#[cfg(feature = "nns-host")]
37impl_nns_inventory_report!(
38 NnsNodeOperatorListReport,
39 super::super::NNS_NODE_OPERATOR_LIST_REPORT_SCHEMA_VERSION,
40 "node_operator",
41 node_operator_count,
42 node_operators,
43 |_report: &NnsNodeOperatorListReport| None,
44);
45
46#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
53pub struct NnsNodeOperatorRow {
54 pub node_operator_principal: String,
55 pub node_provider_principal: String,
56 pub node_allowance: u64,
57 pub data_center_id: String,
58 pub node_count: Option<u32>,
59}
60
61#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
68pub struct NnsNodeOperatorInfoReport {
69 pub schema_version: u32,
70 pub input: String,
71 pub resolved_from: String,
72 pub network: String,
73 pub registry_canister_id: String,
74 pub registry_version: u64,
75 pub fetched_at: String,
76 pub source_endpoint: String,
77 pub fetched_by: String,
78 pub node_operator_principal: String,
79 pub node_provider_principal: String,
80 pub node_allowance: u64,
81 pub data_center_id: String,
82 pub node_count: Option<u32>,
83}