netbox_openapi/models/
wireless_link_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.4.2-Docker-3.4.1 (4.4)
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11/// WirelessLinkRequest : Adds support for custom fields and tags.
12
13#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct WirelessLinkRequest {
15    #[serde(rename = "interface_a")]
16    pub interface_a: Box<crate::models::PatchedWritableVirtualCircuitTerminationRequestInterface>,
17    #[serde(rename = "interface_b")]
18    pub interface_b: Box<crate::models::PatchedWritableVirtualCircuitTerminationRequestInterface>,
19    #[serde(rename = "ssid", skip_serializing_if = "Option::is_none")]
20    pub ssid: Option<String>,
21    /// * `connected` - Connected * `planned` - Planned * `decommissioning` - Decommissioning
22    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
23    pub status: Option<Status>,
24    #[serde(
25        rename = "tenant",
26        default,
27        with = "::serde_with::rust::double_option",
28        skip_serializing_if = "Option::is_none"
29    )]
30    pub tenant: Option<Option<Box<crate::models::AsnRangeRequestTenant>>>,
31    /// * `open` - Open * `wep` - WEP * `wpa-personal` - WPA Personal (PSK) * `wpa-enterprise` - WPA Enterprise
32    #[serde(rename = "auth_type", skip_serializing_if = "Option::is_none")]
33    pub auth_type: Option<AuthType>,
34    /// * `auto` - Auto * `tkip` - TKIP * `aes` - AES
35    #[serde(rename = "auth_cipher", skip_serializing_if = "Option::is_none")]
36    pub auth_cipher: Option<AuthCipher>,
37    #[serde(rename = "auth_psk", skip_serializing_if = "Option::is_none")]
38    pub auth_psk: Option<String>,
39    #[serde(
40        rename = "distance",
41        default,
42        with = "::serde_with::rust::double_option",
43        skip_serializing_if = "Option::is_none"
44    )]
45    pub distance: Option<Option<f64>>,
46    /// * `km` - Kilometers * `m` - Meters * `mi` - Miles * `ft` - Feet
47    #[serde(
48        rename = "distance_unit",
49        default,
50        with = "::serde_with::rust::double_option",
51        skip_serializing_if = "Option::is_none"
52    )]
53    pub distance_unit: Option<Option<DistanceUnit>>,
54    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
55    pub description: Option<String>,
56    #[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
57    pub comments: Option<String>,
58    #[serde(rename = "tags", skip_serializing_if = "Option::is_none")]
59    pub tags: Option<Vec<crate::models::NestedTagRequest>>,
60    #[serde(rename = "custom_fields", skip_serializing_if = "Option::is_none")]
61    pub custom_fields: Option<::std::collections::HashMap<String, serde_json::Value>>,
62}
63
64impl WirelessLinkRequest {
65    /// Adds support for custom fields and tags.
66    pub fn new(
67        interface_a: crate::models::PatchedWritableVirtualCircuitTerminationRequestInterface,
68        interface_b: crate::models::PatchedWritableVirtualCircuitTerminationRequestInterface,
69    ) -> WirelessLinkRequest {
70        WirelessLinkRequest {
71            interface_a: Box::new(interface_a),
72            interface_b: Box::new(interface_b),
73            ssid: None,
74            status: None,
75            tenant: None,
76            auth_type: None,
77            auth_cipher: None,
78            auth_psk: None,
79            distance: None,
80            distance_unit: None,
81            description: None,
82            comments: None,
83            tags: None,
84            custom_fields: None,
85        }
86    }
87}
88
89/// * `connected` - Connected * `planned` - Planned * `decommissioning` - Decommissioning
90#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
91pub enum Status {
92    #[serde(rename = "connected")]
93    Connected,
94    #[serde(rename = "planned")]
95    Planned,
96    #[serde(rename = "decommissioning")]
97    Decommissioning,
98}
99
100impl Default for Status {
101    fn default() -> Status {
102        Self::Connected
103    }
104}
105/// * `open` - Open * `wep` - WEP * `wpa-personal` - WPA Personal (PSK) * `wpa-enterprise` - WPA Enterprise
106#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
107pub enum AuthType {
108    #[serde(rename = "open")]
109    Open,
110    #[serde(rename = "wep")]
111    Wep,
112    #[serde(rename = "wpa-personal")]
113    WpaPersonal,
114    #[serde(rename = "wpa-enterprise")]
115    WpaEnterprise,
116    #[serde(rename = "")]
117    Empty,
118}
119
120impl Default for AuthType {
121    fn default() -> AuthType {
122        Self::Open
123    }
124}
125/// * `auto` - Auto * `tkip` - TKIP * `aes` - AES
126#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
127pub enum AuthCipher {
128    #[serde(rename = "auto")]
129    Auto,
130    #[serde(rename = "tkip")]
131    Tkip,
132    #[serde(rename = "aes")]
133    Aes,
134    #[serde(rename = "")]
135    Empty,
136}
137
138impl Default for AuthCipher {
139    fn default() -> AuthCipher {
140        Self::Auto
141    }
142}
143/// * `km` - Kilometers * `m` - Meters * `mi` - Miles * `ft` - Feet
144#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
145pub enum DistanceUnit {
146    #[serde(rename = "km")]
147    Km,
148    #[serde(rename = "m")]
149    M,
150    #[serde(rename = "mi")]
151    Mi,
152    #[serde(rename = "ft")]
153    Ft,
154    #[serde(rename = "")]
155    Empty,
156    #[serde(rename = "null")]
157    Null,
158}
159
160impl Default for DistanceUnit {
161    fn default() -> DistanceUnit {
162        Self::Km
163    }
164}