ripestat_common/resources/
routing_history.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4pub struct RoutingHistoryRequest {
5 pub resource: String,
6 pub max_rows: Option<i64>,
7 pub include_first_hop: Option<bool>,
8 pub normalise_visibility: Option<bool>,
9 pub min_peers: Option<i64>,
10 pub starttime: Option<String>,
11 pub endtime: Option<String>,
12}
13
14#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
15pub struct RoutingHistoryResponse {
16 pub by_origin: Vec<ByOrigin>,
17 pub resource: String,
18 pub query_starttime: String,
19 pub query_endtime: String,
20 pub time_granularity: i64,
21 pub latest_max_ff_peers: LatestMaxFfPeers,
22}
23
24#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
25pub struct ByOrigin {
26 pub origin: String,
27 pub prefixes: Vec<Prefix>,
28}
29
30#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
31pub struct Prefix {
32 pub prefix: String,
33 pub timelines: Vec<RoutingHistoryTimeline>,
34}
35
36#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
37pub struct RoutingHistoryTimeline {
38 pub starttime: String,
39 pub endtime: String,
40 pub full_peers_seeing: f64,
41}
42
43#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
44pub struct LatestMaxFfPeers {
45 pub v4: i64,
46 pub v6: i64,
47}