1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct Vlan {
15 #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
16 pub id: Option<i32>,
17 #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
18 pub url: Option<String>,
19 #[serde(rename = "display_url", skip_serializing_if = "Option::is_none")]
20 pub display_url: Option<String>,
21 #[serde(rename = "display", skip_serializing_if = "Option::is_none")]
22 pub display: Option<String>,
23 #[serde(
24 rename = "site",
25 default,
26 with = "::serde_with::rust::double_option",
27 skip_serializing_if = "Option::is_none"
28 )]
29 pub site: Option<Option<Box<crate::models::BriefSite>>>,
30 #[serde(
31 rename = "group",
32 default,
33 with = "::serde_with::rust::double_option",
34 skip_serializing_if = "Option::is_none"
35 )]
36 pub group: Option<Option<Box<crate::models::BriefVlanGroup>>>,
37 #[serde(rename = "vid")]
39 pub vid: i32,
40 #[serde(rename = "name")]
41 pub name: String,
42 #[serde(
43 rename = "tenant",
44 default,
45 with = "::serde_with::rust::double_option",
46 skip_serializing_if = "Option::is_none"
47 )]
48 pub tenant: Option<Option<Box<crate::models::BriefTenant>>>,
49 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
50 pub status: Option<Box<crate::models::IpRangeStatus>>,
51 #[serde(
52 rename = "role",
53 default,
54 with = "::serde_with::rust::double_option",
55 skip_serializing_if = "Option::is_none"
56 )]
57 pub role: Option<Option<Box<crate::models::BriefRole>>>,
58 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
59 pub description: Option<String>,
60 #[serde(
61 rename = "qinq_role",
62 default,
63 with = "::serde_with::rust::double_option",
64 skip_serializing_if = "Option::is_none"
65 )]
66 pub qinq_role: Option<Option<Box<crate::models::VlanQinqRole>>>,
67 #[serde(
68 rename = "qinq_svlan",
69 default,
70 with = "::serde_with::rust::double_option",
71 skip_serializing_if = "Option::is_none"
72 )]
73 pub qinq_svlan: Option<Option<Box<crate::models::NestedVlan>>>,
74 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
75 pub comments: Option<String>,
76 #[serde(
77 rename = "l2vpn_termination",
78 default,
79 with = "::serde_with::rust::double_option",
80 skip_serializing_if = "Option::is_none"
81 )]
82 pub l2vpn_termination: Option<Option<Box<crate::models::BriefL2VpnTermination>>>,
83 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
84 pub tags: Option<Vec<crate::models::NestedTag>>,
85 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
86 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
87 #[serde(
88 rename = "created",
89 default,
90 with = "::serde_with::rust::double_option",
91 skip_serializing_if = "Option::is_none"
92 )]
93 pub created: Option<Option<String>>,
94 #[serde(
95 rename = "last_updated",
96 default,
97 with = "::serde_with::rust::double_option",
98 skip_serializing_if = "Option::is_none"
99 )]
100 pub last_updated: Option<Option<String>>,
101 #[serde(rename = "prefix_count", skip_serializing_if = "Option::is_none")]
102 pub prefix_count: Option<i64>,
103}
104
105impl Vlan {
106 pub fn new(vid: i32, name: String) -> Vlan {
108 Vlan {
109 id: None,
110 url: None,
111 display_url: None,
112 display: None,
113 site: None,
114 group: None,
115 vid,
116 name,
117 tenant: None,
118 status: None,
119 role: None,
120 description: None,
121 qinq_role: None,
122 qinq_svlan: None,
123 comments: None,
124 l2vpn_termination: None,
125 tags: None,
126 custom_fields: None,
127 created: None,
128 last_updated: None,
129 prefix_count: None,
130 }
131 }
132}