ripestat_common/resources/
routing_status.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
4pub struct RoutingStatusRequest {
5 pub resource: String,
6 pub timestamp: Option<String>,
7 pub min_peers_seeing: Option<i64>,
8}
9
10#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
11pub struct RoutingStatusResponse {
12 pub first_seen: FirstSeen,
13 pub last_seen: LastSeen,
14 pub visibility: IpVisibility,
15
16 pub announced_space: AnnouncedSpace,
18 pub observed_neighbours: i64,
19
20 pub origins: Vec<Origin>,
22 pub less_specifics: Vec<SpecificOrigin>,
23 pub more_specifics: Vec<SpecificOrigin>,
24
25 pub resource: String,
26 pub query_time: String,
27}
28
29#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
30pub struct Origin {
31 pub origin: String,
32 pub route_objects: Vec<String>,
33}
34
35#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
36pub struct SpecificOrigin {
37 pub prefix: String,
38 pub origin: String,
39}
40
41#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
42pub struct FirstSeen {
43 pub prefix: String,
44 pub origin: String,
45 pub time: String,
46}
47
48#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
49pub struct LastSeen {
50 pub prefix: String,
51 pub origin: String,
52 pub time: String,
53}
54
55#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
56pub struct IpVisibility {
57 pub v4: V4RisPeers,
58 pub v6: V6RisPeers,
59}
60
61#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
62pub struct AnnouncedSpace {
63 pub v4: V4RisPeers,
64 pub v6: V6RisPeers,
65}
66
67#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
68pub struct V4RisPeers {
69 pub ris_peers_seeing: i64,
70 pub total_ris_peers: i64,
71}
72
73#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
74pub struct V6RisPeers {
75 pub ris_peers_seeing: i64,
76 pub total_ris_peers: i64,
77}