1use serde::{Deserialize, Serialize};
9
10use crate::common::{
11 RdapEntity, RdapEvent, RdapLink, RdapRemark, RdapRole, RdapStatus, ResponseMeta,
12};
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
16#[serde(rename_all = "camelCase")]
17pub struct EntityResponse {
18 pub query: String,
20
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub handle: Option<String>,
24
25 #[serde(skip_serializing_if = "Option::is_none")]
27 pub vcard_array: Option<serde_json::Value>,
28
29 #[serde(default, skip_serializing_if = "Vec::is_empty")]
30 pub roles: Vec<RdapRole>,
31
32 #[serde(default, skip_serializing_if = "Vec::is_empty")]
33 pub status: Vec<RdapStatus>,
34
35 #[serde(default, skip_serializing_if = "Vec::is_empty")]
37 pub entities: Vec<RdapEntity>,
38
39 #[serde(default, skip_serializing_if = "Vec::is_empty")]
40 pub events: Vec<RdapEvent>,
41
42 #[serde(default, skip_serializing_if = "Vec::is_empty")]
43 pub links: Vec<RdapLink>,
44
45 #[serde(default, skip_serializing_if = "Vec::is_empty")]
46 pub remarks: Vec<RdapRemark>,
47
48 pub meta: ResponseMeta,
49}