Skip to main content

netbox_openapi/models/
vpn_tunnels_create_request.rs

1/*
2 * NetBox REST API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 4.6.2 (4.6)
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
12pub struct VpnTunnelsCreateRequest {
13    #[serde(rename = "name")]
14    pub name: String,
15    /// * `planned` - Planned * `active` - Active * `disabled` - Disabled
16    #[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    /// * `ipsec-transport` - IPsec - Transport * `ipsec-tunnel` - IPsec - Tunnel * `ip-ip` - IP-in-IP * `gre` - GRE * `wireguard` - WireGuard * `openvpn` - OpenVPN * `l2tp` - L2TP * `pptp` - PPTP
26    #[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/// * `planned` - Planned * `active` - Active * `disabled` - Disabled
86#[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/// * `ipsec-transport` - IPsec - Transport * `ipsec-tunnel` - IPsec - Tunnel * `ip-ip` - IP-in-IP * `gre` - GRE * `wireguard` - WireGuard * `openvpn` - OpenVPN * `l2tp` - L2TP * `pptp` - PPTP
102#[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}