1use serde::{Deserialize, Serialize};
6
7use crate::common::{RdapEntity, RdapEvent, RdapLink, RdapRemark, RdapStatus, ResponseMeta};
8
9#[derive(Debug, Clone, Serialize, Deserialize)]
11#[serde(rename_all = "camelCase")]
12pub struct AsnResponse {
13 pub query: u32,
15
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub handle: Option<String>,
19
20 #[serde(skip_serializing_if = "Option::is_none")]
22 pub start_autnum: Option<u32>,
23
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub end_autnum: Option<u32>,
27
28 #[serde(skip_serializing_if = "Option::is_none")]
30 pub name: Option<String>,
31
32 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
34 pub autnum_type: Option<String>,
35
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub country: Option<String>,
39
40 #[serde(default, skip_serializing_if = "Vec::is_empty")]
41 pub status: Vec<RdapStatus>,
42
43 #[serde(default, skip_serializing_if = "Vec::is_empty")]
44 pub entities: Vec<RdapEntity>,
45
46 #[serde(default, skip_serializing_if = "Vec::is_empty")]
47 pub events: Vec<RdapEvent>,
48
49 #[serde(default, skip_serializing_if = "Vec::is_empty")]
50 pub links: Vec<RdapLink>,
51
52 #[serde(default, skip_serializing_if = "Vec::is_empty")]
53 pub remarks: Vec<RdapRemark>,
54
55 pub meta: ResponseMeta,
56}