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(
75 rename = "owner",
76 default,
77 with = "::serde_with::rust::double_option",
78 skip_serializing_if = "Option::is_none"
79 )]
80 pub owner: Option<Option<Box<crate::models::BriefOwner>>>,
81 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
82 pub comments: Option<String>,
83 #[serde(
84 rename = "l2vpn_termination",
85 default,
86 with = "::serde_with::rust::double_option",
87 skip_serializing_if = "Option::is_none"
88 )]
89 pub l2vpn_termination: Option<Option<Box<crate::models::BriefL2VpnTermination>>>,
90 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
91 pub tags: Option<Vec<crate::models::NestedTag>>,
92 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
93 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
94 #[serde(
95 rename = "created",
96 default,
97 with = "::serde_with::rust::double_option",
98 skip_serializing_if = "Option::is_none"
99 )]
100 pub created: Option<Option<String>>,
101 #[serde(
102 rename = "last_updated",
103 default,
104 with = "::serde_with::rust::double_option",
105 skip_serializing_if = "Option::is_none"
106 )]
107 pub last_updated: Option<Option<String>>,
108 #[serde(rename = "prefix_count", skip_serializing_if = "Option::is_none")]
109 pub prefix_count: Option<i64>,
110}
111
112impl Vlan {
113 pub fn new(vid: i32, name: String) -> Vlan {
115 Vlan {
116 id: None,
117 url: None,
118 display_url: None,
119 display: None,
120 site: None,
121 group: None,
122 vid,
123 name,
124 tenant: None,
125 status: None,
126 role: None,
127 description: None,
128 qinq_role: None,
129 qinq_svlan: None,
130 owner: None,
131 comments: None,
132 l2vpn_termination: None,
133 tags: None,
134 custom_fields: None,
135 created: None,
136 last_updated: None,
137 prefix_count: None,
138 }
139 }
140}