ic-query 0.90.0

Internet Computer query library for CloudEngine, NNS, SNS, ICRC, system canisters, and public network metadata
Documentation
use serde::{Deserialize, Serialize};

///
/// NnsDataCenterListReport
///
/// Complete NNS data center inventory report with source metadata.
///

#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct NnsDataCenterListReport {
    pub schema_version: u32,
    /// Registry acquisition metadata, flattened in JSON.
    #[serde(flatten)]
    pub provenance: crate::nns::registry::NnsRegistryInventoryProvenance,
    pub data_centers: Vec<NnsDataCenterRow>,
}

#[cfg(feature = "nns-host")]
impl_nns_inventory_report!(
    NnsDataCenterListReport,
    super::super::NNS_DATA_CENTER_LIST_REPORT_SCHEMA_VERSION,
    "data_center",
    super::super::COLLECTION,
    data_centers,
    |_report: &NnsDataCenterListReport| None,
);

///
/// NnsDataCenterRow
///
/// One data center row projected from the NNS registry inventory.
///

#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
pub struct NnsDataCenterRow {
    pub data_center_id: String,
    pub region: String,
    pub owner: String,
    pub latitude: Option<f32>,
    pub longitude: Option<f32>,
    pub node_operator_count: u32,
    pub node_provider_count: u32,
    pub node_count: u32,
}

///
/// NnsDataCenterInfoReport
///
/// Detailed report for one resolved NNS data center.
///

#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
pub struct NnsDataCenterInfoReport {
    pub schema_version: u32,
    pub input: String,
    pub resolved_from: String,
    /// Registry acquisition metadata, flattened in JSON.
    #[serde(flatten)]
    pub provenance: crate::nns::registry::NnsRegistryInventoryProvenance,
    /// Resolved inventory row.
    #[serde(flatten)]
    pub data_center: NnsDataCenterRow,
}