-
Notifications
You must be signed in to change notification settings - Fork 0
/
ripeStruct.go
151 lines (146 loc) · 5.39 KB
/
ripeStruct.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
package main
type RIPEStatVisibilityResp struct {
Messages [][]string `json:"messages"`
SeeAlso []interface{} `json:"see_also"`
Version string `json:"version"`
DataCallName string `json:"data_call_name"`
DataCallStatus string `json:"data_call_status"`
Cached bool `json:"cached"`
Data struct {
Visibilities []struct {
Probe struct {
City string `json:"city"`
Country string `json:"country"`
Longitude float64 `json:"longitude"`
Latitude float64 `json:"latitude"`
Name string `json:"name"`
Ipv4PeerCount int `json:"ipv4_peer_count"`
Ipv6PeerCount int `json:"ipv6_peer_count"`
Ixp string `json:"ixp"`
} `json:"probe"`
Ipv4FullTablePeersNotSeeing []interface{} `json:"ipv4_full_table_peers_not_seeing"`
Ipv6FullTablePeersNotSeeing []interface{} `json:"ipv6_full_table_peers_not_seeing"`
Ipv4FullTablePeerCount int `json:"ipv4_full_table_peer_count"`
Ipv6FullTablePeerCount int `json:"ipv6_full_table_peer_count"`
Ipv4FullTablePeersSeeing []struct {
Asn int `json:"asn"`
IP string `json:"ip"`
PrefixCount int `json:"prefix_count"`
} `json:"ipv4_full_table_peers_seeing"`
Ipv6FullTablePeersSeeing []struct {
Asn int `json:"asn"`
IP string `json:"ip"`
PrefixCount int `json:"prefix_count"`
} `json:"ipv6_full_table_peers_seeing"`
} `json:"visibilities"`
Resource string `json:"resource"`
RelatedPrefixes []interface{} `json:"related_prefixes"`
QueryTime string `json:"query_time"`
LatestTime string `json:"latest_time"`
Include []string `json:"include"`
} `json:"data"`
QueryID string `json:"query_id"`
ProcessTime int `json:"process_time"`
ServerID string `json:"server_id"`
BuildVersion string `json:"build_version"`
Status string `json:"status"`
StatusCode int `json:"status_code"`
Time string `json:"time"`
}
type RIPEStatLookingGlassResp struct {
Messages []interface{} `json:"messages"`
SeeAlso []interface{} `json:"see_also"`
Version string `json:"version"`
DataCallName string `json:"data_call_name"`
DataCallStatus string `json:"data_call_status"`
Cached bool `json:"cached"`
Data struct {
Rrcs []struct {
Rrc string `json:"rrc"`
Location string `json:"location"`
Peers []struct {
AsnOrigin string `json:"asn_origin"`
AsPath string `json:"as_path"`
Community string `json:"community"`
LastUpdated string `json:"last_updated"`
Prefix string `json:"prefix"`
Peer string `json:"peer"`
Origin string `json:"origin"`
NextHop string `json:"next_hop"`
LatestTime string `json:"latest_time"`
} `json:"peers"`
} `json:"rrcs"`
QueryTime string `json:"query_time"`
LatestTime string `json:"latest_time"`
Parameters struct {
Resource string `json:"resource"`
LookBackLimit int `json:"look_back_limit"`
Cache interface{} `json:"cache"`
} `json:"parameters"`
} `json:"data"`
QueryID string `json:"query_id"`
ProcessTime int `json:"process_time"`
ServerID string `json:"server_id"`
BuildVersion string `json:"build_version"`
Status string `json:"status"`
StatusCode int `json:"status_code"`
Time string `json:"time"`
}
type risResponse struct {
Messages [][]string `json:"messages"`
SeeAlso []string `json:"see_also"`
Version string `json:"version"`
DataCall struct {
Name string `json:"data_call_name"`
Status string `json:"data_call_status"`
} `json:"data_call"`
Cached bool `json:"cached"`
Data struct {
Peers struct {
RRC00 []risPeer `json:"rrc00"`
RRC01 []risPeer `json:"rrc01"`
RRC03 []risPeer `json:"rrc03"`
RRC04 []risPeer `json:"rrc04"`
RRC05 []risPeer `json:"rrc05"`
RRC06 []risPeer `json:"rrc06"`
RRC07 []risPeer `json:"rrc07"`
RRC10 []risPeer `json:"rrc10"`
RRC11 []risPeer `json:"rrc11"`
RRC13 []risPeer `json:"rrc13"`
RRC14 []risPeer `json:"rrc14"`
RRC15 []risPeer `json:"rrc15"`
RRC16 []risPeer `json:"rrc16"`
RRC18 []risPeer `json:"rrc18"`
RRC19 []risPeer `json:"rrc19"`
RRC20 []risPeer `json:"rrc20"`
RRC21 []risPeer `json:"rrc21"`
RRC22 []risPeer `json:"rrc22"`
RRC23 []risPeer `json:"rrc23"`
RRC24 []risPeer `json:"rrc24"`
RRC25 []risPeer `json:"rrc25"`
RRC26 []risPeer `json:"rrc26"`
} `json:"peers"`
LatestTime string `json:"latest_time"`
EarliestTime string `json:"earliest_time"`
Parameters risParameters `json:"parameters"`
} `json:"data"`
QueryID string `json:"query_id"`
ProcessTime int `json:"process_time"`
ServerID string `json:"server_id"`
BuildVersion string `json:"build_version"`
Status string `json:"status"`
StatusCode int `json:"status_code"`
Time string `json:"time"`
}
// Peer represents an individual peer in the RIS system
type risPeer struct {
ASN string `json:"asn"`
IP string `json:"ip"`
V4PrefixCount int `json:"v4_prefix_count"`
V6PrefixCount int `json:"v6_prefix_count"`
}
// Parameters represents the query parameters
type risParameters struct {
QueryTime string `json:"query_time"`
Cache interface{} `json:"cache"`
}