Skip to main content

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