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