1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct PatchedWritableL2VpnRequest {
15 #[serde(
16 rename = "identifier",
17 default,
18 with = "::serde_with::rust::double_option",
19 skip_serializing_if = "Option::is_none"
20 )]
21 pub identifier: Option<Option<i64>>,
22 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
23 pub name: Option<String>,
24 #[serde(rename = "slug", skip_serializing_if = "Option::is_none")]
25 pub slug: Option<String>,
26 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
28 pub r#type: Option<RHashType>,
29 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
31 pub status: Option<Status>,
32 #[serde(rename = "import_targets", skip_serializing_if = "Option::is_none")]
33 pub import_targets: Option<Vec<i32>>,
34 #[serde(rename = "export_targets", skip_serializing_if = "Option::is_none")]
35 pub export_targets: Option<Vec<i32>>,
36 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
37 pub description: Option<String>,
38 #[serde(
39 rename = "owner",
40 default,
41 with = "::serde_with::rust::double_option",
42 skip_serializing_if = "Option::is_none"
43 )]
44 pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
45 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
46 pub comments: Option<String>,
47 #[serde(
48 rename = "tenant",
49 default,
50 with = "::serde_with::rust::double_option",
51 skip_serializing_if = "Option::is_none"
52 )]
53 pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
54 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
55 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
56 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
57 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
58}
59
60impl PatchedWritableL2VpnRequest {
61 pub fn new() -> PatchedWritableL2VpnRequest {
63 PatchedWritableL2VpnRequest {
64 identifier: None,
65 name: None,
66 slug: None,
67 r#type: None,
68 status: None,
69 import_targets: None,
70 export_targets: None,
71 description: None,
72 owner: None,
73 comments: None,
74 tenant: None,
75 tags: None,
76 custom_fields: None,
77 }
78 }
79}
80
81#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
83pub enum RHashType {
84 #[serde(rename = "vpws")]
85 Vpws,
86 #[serde(rename = "vpls")]
87 Vpls,
88 #[serde(rename = "vxlan")]
89 Vxlan,
90 #[serde(rename = "vxlan-evpn")]
91 VxlanEvpn,
92 #[serde(rename = "mpls-evpn")]
93 MplsEvpn,
94 #[serde(rename = "pbb-evpn")]
95 PbbEvpn,
96 #[serde(rename = "evpn-vpws")]
97 EvpnVpws,
98 #[serde(rename = "epl")]
99 Epl,
100 #[serde(rename = "evpl")]
101 Evpl,
102 #[serde(rename = "ep-lan")]
103 EpLan,
104 #[serde(rename = "evp-lan")]
105 EvpLan,
106 #[serde(rename = "ep-tree")]
107 EpTree,
108 #[serde(rename = "evp-tree")]
109 EvpTree,
110 #[serde(rename = "spb")]
111 Spb,
112}
113
114impl Default for RHashType {
115 fn default() -> RHashType {
116 Self::Vpws
117 }
118}
119#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
121pub enum Status {
122 #[serde(rename = "active")]
123 Active,
124 #[serde(rename = "planned")]
125 Planned,
126 #[serde(rename = "decommissioning")]
127 Decommissioning,
128}
129
130impl Default for Status {
131 fn default() -> Status {
132 Self::Active
133 }
134}