#[cfg(feature = "host")]
mod cache;
mod counts;
mod model;
mod projection;
mod text;
mod validation;
#[cfg(feature = "host")]
pub use cache::{
build_ic_node_provider_status_report, build_ic_node_provider_status_report_with_source,
build_ic_node_status_report, build_ic_node_status_report_with_source,
build_ic_subnet_status_report, build_ic_subnet_status_report_with_source,
ic_node_status_cache_path, ic_node_status_refresh_lock_path,
load_cached_ic_node_status_snapshot, load_or_refresh_missing_ic_node_status_snapshot,
load_or_refresh_missing_ic_node_status_snapshot_with_source,
load_or_refresh_stale_ic_node_status_snapshot,
load_or_refresh_stale_ic_node_status_snapshot_with_source, refresh_ic_node_status_snapshot,
refresh_ic_node_status_snapshot_with_source,
};
pub(in crate::ic) use counts::node_status_group_counts;
#[cfg(feature = "host")]
pub use model::IcNodeStatusSourceData;
pub use model::{
IcNodeAssignmentStatusCounts, IcNodeCountComparison, IcNodeCountComparisonCounts,
IcNodeOperationalStatus, IcNodeProviderStatusReport, IcNodeProviderStatusRow,
IcNodeStatusCacheEvidence, IcNodeStatusCounts, IcNodeStatusGroupCounts,
IcNodeStatusObservation, IcNodeStatusProjectionError, IcNodeStatusReport, IcNodeStatusRow,
IcNodeStatusScope, IcNodeStatusSnapshot, IcNodeStatusSnapshotRequest, IcNodeStatusView,
IcSubnetStatusReport, IcSubnetStatusRow,
};
#[cfg(feature = "host")]
pub use model::{
IcNodeStatusCacheRequest, IcNodeStatusHostError, IcNodeStatusReadRequest,
IcNodeStatusRefreshReport, IcNodeStatusRefreshRequest,
};
pub use projection::{
ic_node_provider_status_report_from_snapshot, ic_node_status_report_from_snapshot,
ic_subnet_status_report_from_snapshot,
};
#[cfg(feature = "host")]
pub use text::ic_node_status_refresh_report_text;
pub use text::{
ic_node_provider_status_report_text, ic_node_status_report_text, ic_subnet_status_report_text,
};
#[cfg(feature = "host")]
pub(in crate::ic) use validation::canonicalize_node_status_rows;
pub(in crate::ic) use validation::{
validate_canonical_node_status_rows, validate_default_node_scope,
};
pub const IC_NODE_STATUS_SCHEMA_VERSION: u32 = 1;
pub const MAX_IC_NODE_STATUS_ROWS: u32 = 10_000;
pub const DEFAULT_IC_NODE_STATUS_STALE_AFTER_SECONDS: u64 = 60;
pub const DEFAULT_IC_NODE_STATUS_REFRESH_LOCK_STALE_SECONDS: u64 = 5 * 60;
pub(super) const IC_NODE_STATUS_SCOPE: &str = "dashboard_mainnet_default";
#[cfg(test)]
mod tests;