netbox_openapi/models/
vpn_tunnels_create_request.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct VpnTunnelsCreateRequest {
13 #[serde(rename = "name")]
14 pub name: String,
15 #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
17 pub status: Option<Status>,
18 #[serde(
19 rename = "group",
20 default,
21 with = "::serde_with::rust::double_option",
22 skip_serializing_if = "Option::is_none"
23 )]
24 pub group: Option<Option<Box<crate::models::PatchedWritableTunnelRequestGroup>>>,
25 #[serde(rename = "encapsulation")]
27 pub encapsulation: Encapsulation,
28 #[serde(
29 rename = "ipsec_profile",
30 default,
31 with = "::serde_with::rust::double_option",
32 skip_serializing_if = "Option::is_none"
33 )]
34 pub ipsec_profile: Option<Option<Box<crate::models::PatchedWritableTunnelRequestIpsecProfile>>>,
35 #[serde(
36 rename = "tenant",
37 default,
38 with = "::serde_with::rust::double_option",
39 skip_serializing_if = "Option::is_none"
40 )]
41 pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
42 #[serde(
43 rename = "tunnel_id",
44 default,
45 with = "::serde_with::rust::double_option",
46 skip_serializing_if = "Option::is_none"
47 )]
48 pub tunnel_id: Option<Option<i64>>,
49 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
50 pub description: Option<String>,
51 #[serde(
52 rename = "owner",
53 default,
54 with = "::serde_with::rust::double_option",
55 skip_serializing_if = "Option::is_none"
56 )]
57 pub owner: Option<Option<Box<crate::models::AsnRangeRequestOwner>>>,
58 #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
59 pub comments: Option<String>,
60 #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
61 pub tags: Option<Vec<crate::models::NestedTagRequest>>,
62 #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
63 pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
64}
65
66impl VpnTunnelsCreateRequest {
67 pub fn new(name: String, encapsulation: Encapsulation) -> VpnTunnelsCreateRequest {
68 VpnTunnelsCreateRequest {
69 name,
70 status: None,
71 group: None,
72 encapsulation,
73 ipsec_profile: None,
74 tenant: None,
75 tunnel_id: None,
76 description: None,
77 owner: None,
78 comments: None,
79 tags: None,
80 custom_fields: None,
81 }
82 }
83}
84
85#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
87pub enum Status {
88 #[serde(rename = "planned")]
89 Planned,
90 #[serde(rename = "active")]
91 Active,
92 #[serde(rename = "disabled")]
93 Disabled,
94}
95
96impl Default for Status {
97 fn default() -> Status {
98 Self::Planned
99 }
100}
101#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
103pub enum Encapsulation {
104 #[serde(rename = "ipsec-transport")]
105 IpsecTransport,
106 #[serde(rename = "ipsec-tunnel")]
107 IpsecTunnel,
108 #[serde(rename = "ip-ip")]
109 IpIp,
110 #[serde(rename = "gre")]
111 Gre,
112 #[serde(rename = "wireguard")]
113 Wireguard,
114 #[serde(rename = "openvpn")]
115 Openvpn,
116 #[serde(rename = "l2tp")]
117 L2tp,
118 #[serde(rename = "pptp")]
119 Pptp,
120}
121
122impl Default for Encapsulation {
123 fn default() -> Encapsulation {
124 Self::IpsecTransport
125 }
126}