Skip to main content

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

1#[cfg(feature = "host")]
2use crate::cache_file::JsonCacheReport;
3use serde::{Deserialize, Serialize};
4
5///
6/// NnsDataCenterListReport
7///
8#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
9pub struct NnsDataCenterListReport {
10    pub schema_version: u32,
11    pub network: String,
12    pub registry_canister_id: String,
13    pub registry_version: u64,
14    pub fetched_at: String,
15    pub source_endpoint: String,
16    pub fetched_by: String,
17    pub data_center_count: usize,
18    pub data_centers: Vec<NnsDataCenterRow>,
19}
20
21#[cfg(feature = "host")]
22impl JsonCacheReport for NnsDataCenterListReport {
23    fn schema_version(&self) -> u32 {
24        self.schema_version
25    }
26
27    fn network(&self) -> &str {
28        &self.network
29    }
30}
31
32///
33/// NnsDataCenterRow
34///
35#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
36pub struct NnsDataCenterRow {
37    pub data_center_id: String,
38    pub region: String,
39    pub owner: String,
40    pub latitude: Option<f32>,
41    pub longitude: Option<f32>,
42    pub node_operator_count: u32,
43    pub node_provider_count: u32,
44    pub node_count: u32,
45}
46
47///
48/// NnsDataCenterInfoReport
49///
50#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
51pub struct NnsDataCenterInfoReport {
52    pub schema_version: u32,
53    pub input: String,
54    pub resolved_from: String,
55    pub network: String,
56    pub registry_canister_id: String,
57    pub registry_version: u64,
58    pub fetched_at: String,
59    pub source_endpoint: String,
60    pub fetched_by: String,
61    pub data_center_id: String,
62    pub region: String,
63    pub owner: String,
64    pub latitude: Option<f32>,
65    pub longitude: Option<f32>,
66    pub node_operator_count: u32,
67    pub node_provider_count: u32,
68    pub node_count: u32,
69}
70
71///
72/// NnsDataCenterRefreshReport
73///
74#[cfg(feature = "host")]
75#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
76pub struct NnsDataCenterRefreshReport {
77    pub schema_version: u32,
78    pub network: String,
79    pub cache_path: String,
80    pub refresh_lock_path: String,
81    pub output_path: Option<String>,
82    pub registry_canister_id: String,
83    pub registry_version: u64,
84    pub fetched_at: String,
85    pub source_endpoint: String,
86    pub fetched_by: String,
87    pub dry_run: bool,
88    pub wrote_cache: bool,
89    pub replaced_existing_cache: bool,
90    pub data_center_count: usize,
91}