ripestat-common 0.0.5

Common structs/enums for the RIPEstat API
Documentation
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct RoutingHistoryRequest {
    pub resource: String,
    pub max_rows: Option<i64>,
    pub include_first_hop: Option<bool>,
    pub normalise_visibility: Option<bool>,
    pub min_peers: Option<i64>,
    pub starttime: Option<String>,
    pub endtime: Option<String>,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RoutingHistoryResponse {
    pub by_origin: Vec<ByOrigin>,
    pub resource: String,
    pub query_starttime: String,
    pub query_endtime: String,
    pub time_granularity: i64,
    pub latest_max_ff_peers: LatestMaxFfPeers,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ByOrigin {
    pub origin: String,
    pub prefixes: Vec<Prefix>,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Prefix {
    pub prefix: String,
    pub timelines: Vec<RoutingHistoryTimeline>,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RoutingHistoryTimeline {
    pub starttime: String,
    pub endtime: String,
    pub full_peers_seeing: f64,
}

#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct LatestMaxFfPeers {
    pub v4: i64,
    pub v6: i64,
}