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