netbox_openapi/models/
vlan_request.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct VlanRequest {
15 #[serde(
16 rename = "site",
17 default,
18 with = "::serde_with::rust::double_option",
19 skip_serializing_if = "Option::is_none"
20 )]
21 pub site: Option<Option<Box<crate::models::PatchedWritableVlanRequestSite>>>,
22 #[serde(
23 rename = "group",
24 default,
25 with = "::serde_with::rust::double_option",
26 skip_serializing_if = "Option::is_none"
27 )]
28 pub group: Option<Option<Box<crate::models::PatchedWritableVlanRequestGroup>>>,
29 #[serde(rename = "vid")]
31 pub vid: i32,
32 #[serde(rename = "name")]
33 pub name: String,
34 #[serde(
35 rename = "tenant",
36 default,
37 with = "::serde_with::rust::double_option",
38 skip_serializing_if = "Option::is_none"
39 )]
40 pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
41 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
43 pub status: Option<Status>,
44 #[serde(
45 rename = "role",
46 default,
47 with = "::serde_with::rust::double_option",
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub role: Option<Option<Box<crate::models::IpRangeRequestRole>>>,
51 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
52 pub description: Option<String>,
53 #[serde(
55 rename = "qinq_role",
56 default,
57 with = "::serde_with::rust::double_option",
58 skip_serializing_if = "Option::is_none"
59 )]
60 pub qinq_role: Option<Option<QinqRole>>,
61 #[serde(
62 rename = "qinq_svlan",
63 default,
64 with = "::serde_with::rust::double_option",
65 skip_serializing_if = "Option::is_none"
66 )]
67 pub qinq_svlan: Option<Option<Box<crate::models::NestedVlanRequest>>>,
68 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
69 pub comments: Option<String>,
70 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
71 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
72 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
73 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
74}
75
76impl VlanRequest {
77 pub fn new(vid: i32, name: String) -> VlanRequest {
79 VlanRequest {
80 site: None,
81 group: None,
82 vid,
83 name,
84 tenant: None,
85 status: None,
86 role: None,
87 description: None,
88 qinq_role: None,
89 qinq_svlan: None,
90 comments: None,
91 tags: None,
92 custom_fields: None,
93 }
94 }
95}
96
97#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
99pub enum Status {
100 #[serde(rename = "active")]
101 Active,
102 #[serde(rename = "reserved")]
103 Reserved,
104 #[serde(rename = "deprecated")]
105 Deprecated,
106}
107
108impl Default for Status {
109 fn default() -> Status {
110 Self::Active
111 }
112}
113#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
115pub enum QinqRole {
116 #[serde(rename = "svlan")]
117 Svlan,
118 #[serde(rename = "cvlan")]
119 Cvlan,
120 #[serde(rename = "null")]
121 Null,
122}
123
124impl Default for QinqRole {
125 fn default() -> QinqRole {
126 Self::Svlan
127 }
128}