Skip to main content

ic_query/nns/data_center/report/model/
report.rs

1use serde::{Deserialize, Serialize};
2
3///
4/// NnsDataCenterListReport
5///
6/// Complete NNS data center inventory report with source metadata.
7///
8
9#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
10#[serde(deny_unknown_fields)]
11pub struct NnsDataCenterListReport {
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 data_center_count: usize,
20    pub data_centers: Vec<NnsDataCenterRow>,
21}
22
23#[cfg(feature = "nns-host")]
24impl_nns_inventory_report!(
25    NnsDataCenterListReport,
26    super::super::NNS_DATA_CENTER_LIST_REPORT_SCHEMA_VERSION,
27    "data_center",
28    data_center_count,
29    data_centers,
30    |_report: &NnsDataCenterListReport| None,
31);
32
33///
34/// NnsDataCenterRow
35///
36/// One data center row projected from the NNS registry inventory.
37///
38
39#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
40pub struct NnsDataCenterRow {
41    pub data_center_id: String,
42    pub region: String,
43    pub owner: String,
44    pub latitude: Option<f32>,
45    pub longitude: Option<f32>,
46    pub node_operator_count: u32,
47    pub node_provider_count: u32,
48    pub node_count: u32,
49}
50
51///
52/// NnsDataCenterInfoReport
53///
54/// Detailed report for one resolved NNS data center.
55///
56
57#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
58pub struct NnsDataCenterInfoReport {
59    pub schema_version: u32,
60    pub input: String,
61    pub resolved_from: String,
62    pub network: String,
63    pub registry_canister_id: String,
64    pub registry_version: u64,
65    pub fetched_at: String,
66    pub source_endpoint: String,
67    pub fetched_by: String,
68    pub data_center_id: String,
69    pub region: String,
70    pub owner: String,
71    pub latitude: Option<f32>,
72    pub longitude: Option<f32>,
73    pub node_operator_count: u32,
74    pub node_provider_count: u32,
75    pub node_count: u32,
76}