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