use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct NnsNodeProviderListReport {
pub schema_version: u32,
#[serde(flatten)]
pub provenance: crate::nns::registry::NnsRegistryInventoryProvenance,
pub governance_canister_id: String,
pub governance_source: crate::report::CollectionSourceRequest,
pub node_providers: Vec<NnsNodeProviderRow>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct NnsNodeProviderRow {
pub node_provider_principal: String,
pub name: Option<String>,
pub node_count: Option<u32>,
pub reward_account_hex: Option<String>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
pub struct NnsNodeProviderInfoReport {
pub schema_version: u32,
pub input: String,
pub resolved_from: String,
#[serde(flatten)]
pub provenance: crate::nns::registry::NnsRegistryInventoryProvenance,
pub governance_canister_id: String,
pub governance_source: crate::report::CollectionSourceRequest,
#[serde(flatten)]
pub node_provider: NnsNodeProviderRow,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(deny_unknown_fields)]
pub struct NnsNodeProviderMetadata {
pub schema_version: u32,
#[serde(flatten)]
pub source: crate::report::CollectionSourceRequest,
pub governance_canister_id: String,
pub node_providers: Vec<NnsNodeProviderRow>,
}
#[cfg(feature = "nns-host")]
impl crate::cache_file::JsonCacheReport for NnsNodeProviderMetadata {
fn schema_version(&self) -> u32 {
self.schema_version
}
fn network(&self) -> &str {
&self.source.network
}
}