proxmox_api/generated/nodes/node/firewall/
options.rs

1pub struct OptionsClient<T> {
2    client: T,
3    path: String,
4}
5impl<T> OptionsClient<T>
6where
7    T: crate::client::Client,
8{
9    pub fn new(client: T, parent_path: &str) -> Self {
10        Self {
11            client,
12            path: format!("{}{}", parent_path, "/options"),
13        }
14    }
15}
16impl<T> OptionsClient<T>
17where
18    T: crate::client::Client,
19{
20    #[doc = "Get host firewall options."]
21    pub fn get(&self) -> Result<GetOutput, T::Error> {
22        let path = self.path.to_string();
23        self.client.get(&path, &())
24    }
25}
26impl<T> OptionsClient<T>
27where
28    T: crate::client::Client,
29{
30    #[doc = "Set Firewall options."]
31    pub fn put(&self, params: PutParams) -> Result<(), T::Error> {
32        let path = self.path.to_string();
33        self.client.put(&path, &params)
34    }
35}
36#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
37pub struct GetOutput {
38    #[serde(
39        serialize_with = "crate::types::serialize_bool_optional",
40        deserialize_with = "crate::types::deserialize_bool_optional"
41    )]
42    #[serde(skip_serializing_if = "Option::is_none", default)]
43    #[doc = "Enable host firewall rules."]
44    pub enable: Option<bool>,
45    #[serde(skip_serializing_if = "Option::is_none", default)]
46    #[doc = "Log level for incoming traffic."]
47    pub log_level_in: Option<LogLevelIn>,
48    #[serde(skip_serializing_if = "Option::is_none", default)]
49    #[doc = "Log level for outgoing traffic."]
50    pub log_level_out: Option<LogLevelOut>,
51    #[serde(
52        serialize_with = "crate::types::serialize_bool_optional",
53        deserialize_with = "crate::types::deserialize_bool_optional"
54    )]
55    #[serde(skip_serializing_if = "Option::is_none", default)]
56    #[doc = "Enable logging of conntrack information."]
57    pub log_nf_conntrack: Option<bool>,
58    #[serde(
59        serialize_with = "crate::types::serialize_bool_optional",
60        deserialize_with = "crate::types::deserialize_bool_optional"
61    )]
62    #[serde(skip_serializing_if = "Option::is_none", default)]
63    #[doc = "Enable NDP (Neighbor Discovery Protocol)."]
64    pub ndp: Option<bool>,
65    #[serde(
66        serialize_with = "crate::types::serialize_bool_optional",
67        deserialize_with = "crate::types::deserialize_bool_optional"
68    )]
69    #[serde(skip_serializing_if = "Option::is_none", default)]
70    #[doc = "Allow invalid packets on connection tracking."]
71    pub nf_conntrack_allow_invalid: Option<bool>,
72    #[serde(skip_serializing_if = "Option::is_none", default)]
73    #[doc = "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp"]
74    pub nf_conntrack_helpers: Option<String>,
75    #[serde(
76        serialize_with = "crate::types::serialize_int_optional",
77        deserialize_with = "crate::types::deserialize_int_optional"
78    )]
79    #[serde(skip_serializing_if = "Option::is_none", default)]
80    #[doc = "Maximum number of tracked connections."]
81    pub nf_conntrack_max: Option<u64>,
82    #[serde(
83        serialize_with = "crate::types::serialize_int_optional",
84        deserialize_with = "crate::types::deserialize_int_optional"
85    )]
86    #[serde(skip_serializing_if = "Option::is_none", default)]
87    #[doc = "Conntrack established timeout."]
88    pub nf_conntrack_tcp_timeout_established: Option<u64>,
89    #[serde(
90        serialize_with = "crate::types::serialize_int_optional",
91        deserialize_with = "crate::types::deserialize_int_optional"
92    )]
93    #[serde(skip_serializing_if = "Option::is_none", default)]
94    #[doc = "Conntrack syn recv timeout."]
95    pub nf_conntrack_tcp_timeout_syn_recv: Option<u64>,
96    #[serde(
97        serialize_with = "crate::types::serialize_bool_optional",
98        deserialize_with = "crate::types::deserialize_bool_optional"
99    )]
100    #[serde(skip_serializing_if = "Option::is_none", default)]
101    #[doc = "Enable SMURFS filter."]
102    pub nosmurfs: Option<bool>,
103    #[serde(
104        serialize_with = "crate::types::serialize_bool_optional",
105        deserialize_with = "crate::types::deserialize_bool_optional"
106    )]
107    #[serde(skip_serializing_if = "Option::is_none", default)]
108    #[doc = "Enable synflood protection"]
109    pub protection_synflood: Option<bool>,
110    #[serde(
111        serialize_with = "crate::types::serialize_int_optional",
112        deserialize_with = "crate::types::deserialize_int_optional"
113    )]
114    #[serde(skip_serializing_if = "Option::is_none", default)]
115    #[doc = "Synflood protection rate burst by ip src."]
116    pub protection_synflood_burst: Option<u64>,
117    #[serde(
118        serialize_with = "crate::types::serialize_int_optional",
119        deserialize_with = "crate::types::deserialize_int_optional"
120    )]
121    #[serde(skip_serializing_if = "Option::is_none", default)]
122    #[doc = "Synflood protection rate syn/sec by ip src."]
123    pub protection_synflood_rate: Option<u64>,
124    #[serde(skip_serializing_if = "Option::is_none", default)]
125    #[doc = "Log level for SMURFS filter."]
126    pub smurf_log_level: Option<SmurfLogLevel>,
127    #[serde(skip_serializing_if = "Option::is_none", default)]
128    #[doc = "Log level for illegal tcp flags filter."]
129    pub tcp_flags_log_level: Option<TcpFlagsLogLevel>,
130    #[serde(
131        serialize_with = "crate::types::serialize_bool_optional",
132        deserialize_with = "crate::types::deserialize_bool_optional"
133    )]
134    #[serde(skip_serializing_if = "Option::is_none", default)]
135    #[doc = "Filter illegal combinations of TCP flags."]
136    pub tcpflags: Option<bool>,
137    #[serde(
138        flatten,
139        default,
140        skip_serializing_if = "::std::collections::HashMap::is_empty"
141    )]
142    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
143}
144#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
145pub struct PutParams {
146    #[serde(skip_serializing_if = "Option::is_none", default)]
147    #[doc = "A list of settings you want to delete."]
148    pub delete: Option<String>,
149    #[serde(skip_serializing_if = "Option::is_none", default)]
150    #[doc = "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications."]
151    pub digest: Option<String>,
152    #[serde(
153        serialize_with = "crate::types::serialize_bool_optional",
154        deserialize_with = "crate::types::deserialize_bool_optional"
155    )]
156    #[serde(skip_serializing_if = "Option::is_none", default)]
157    #[doc = "Enable host firewall rules."]
158    pub enable: Option<bool>,
159    #[serde(skip_serializing_if = "Option::is_none", default)]
160    #[doc = "Log level for incoming traffic."]
161    pub log_level_in: Option<LogLevelIn>,
162    #[serde(skip_serializing_if = "Option::is_none", default)]
163    #[doc = "Log level for outgoing traffic."]
164    pub log_level_out: Option<LogLevelOut>,
165    #[serde(
166        serialize_with = "crate::types::serialize_bool_optional",
167        deserialize_with = "crate::types::deserialize_bool_optional"
168    )]
169    #[serde(skip_serializing_if = "Option::is_none", default)]
170    #[doc = "Enable logging of conntrack information."]
171    pub log_nf_conntrack: Option<bool>,
172    #[serde(
173        serialize_with = "crate::types::serialize_bool_optional",
174        deserialize_with = "crate::types::deserialize_bool_optional"
175    )]
176    #[serde(skip_serializing_if = "Option::is_none", default)]
177    #[doc = "Enable NDP (Neighbor Discovery Protocol)."]
178    pub ndp: Option<bool>,
179    #[serde(
180        serialize_with = "crate::types::serialize_bool_optional",
181        deserialize_with = "crate::types::deserialize_bool_optional"
182    )]
183    #[serde(skip_serializing_if = "Option::is_none", default)]
184    #[doc = "Allow invalid packets on connection tracking."]
185    pub nf_conntrack_allow_invalid: Option<bool>,
186    #[serde(skip_serializing_if = "Option::is_none", default)]
187    #[doc = "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp"]
188    pub nf_conntrack_helpers: Option<String>,
189    #[serde(
190        serialize_with = "crate::types::serialize_int_optional",
191        deserialize_with = "crate::types::deserialize_int_optional"
192    )]
193    #[serde(skip_serializing_if = "Option::is_none", default)]
194    #[doc = "Maximum number of tracked connections."]
195    pub nf_conntrack_max: Option<u64>,
196    #[serde(
197        serialize_with = "crate::types::serialize_int_optional",
198        deserialize_with = "crate::types::deserialize_int_optional"
199    )]
200    #[serde(skip_serializing_if = "Option::is_none", default)]
201    #[doc = "Conntrack established timeout."]
202    pub nf_conntrack_tcp_timeout_established: Option<u64>,
203    #[serde(
204        serialize_with = "crate::types::serialize_int_optional",
205        deserialize_with = "crate::types::deserialize_int_optional"
206    )]
207    #[serde(skip_serializing_if = "Option::is_none", default)]
208    #[doc = "Conntrack syn recv timeout."]
209    pub nf_conntrack_tcp_timeout_syn_recv: Option<u64>,
210    #[serde(
211        serialize_with = "crate::types::serialize_bool_optional",
212        deserialize_with = "crate::types::deserialize_bool_optional"
213    )]
214    #[serde(skip_serializing_if = "Option::is_none", default)]
215    #[doc = "Enable SMURFS filter."]
216    pub nosmurfs: Option<bool>,
217    #[serde(
218        serialize_with = "crate::types::serialize_bool_optional",
219        deserialize_with = "crate::types::deserialize_bool_optional"
220    )]
221    #[serde(skip_serializing_if = "Option::is_none", default)]
222    #[doc = "Enable synflood protection"]
223    pub protection_synflood: Option<bool>,
224    #[serde(
225        serialize_with = "crate::types::serialize_int_optional",
226        deserialize_with = "crate::types::deserialize_int_optional"
227    )]
228    #[serde(skip_serializing_if = "Option::is_none", default)]
229    #[doc = "Synflood protection rate burst by ip src."]
230    pub protection_synflood_burst: Option<u64>,
231    #[serde(
232        serialize_with = "crate::types::serialize_int_optional",
233        deserialize_with = "crate::types::deserialize_int_optional"
234    )]
235    #[serde(skip_serializing_if = "Option::is_none", default)]
236    #[doc = "Synflood protection rate syn/sec by ip src."]
237    pub protection_synflood_rate: Option<u64>,
238    #[serde(skip_serializing_if = "Option::is_none", default)]
239    #[doc = "Log level for SMURFS filter."]
240    pub smurf_log_level: Option<SmurfLogLevel>,
241    #[serde(skip_serializing_if = "Option::is_none", default)]
242    #[doc = "Log level for illegal tcp flags filter."]
243    pub tcp_flags_log_level: Option<TcpFlagsLogLevel>,
244    #[serde(
245        serialize_with = "crate::types::serialize_bool_optional",
246        deserialize_with = "crate::types::deserialize_bool_optional"
247    )]
248    #[serde(skip_serializing_if = "Option::is_none", default)]
249    #[doc = "Filter illegal combinations of TCP flags."]
250    pub tcpflags: Option<bool>,
251    #[serde(
252        flatten,
253        default,
254        skip_serializing_if = "::std::collections::HashMap::is_empty"
255    )]
256    pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
257}
258#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
259pub enum LogLevelIn {
260    #[serde(rename = "alert")]
261    Alert,
262    #[serde(rename = "crit")]
263    Crit,
264    #[serde(rename = "debug")]
265    Debug,
266    #[serde(rename = "emerg")]
267    Emerg,
268    #[serde(rename = "err")]
269    Err,
270    #[serde(rename = "info")]
271    Info,
272    #[serde(rename = "nolog")]
273    Nolog,
274    #[serde(rename = "notice")]
275    Notice,
276    #[serde(rename = "warning")]
277    Warning,
278}
279#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
280pub enum LogLevelOut {
281    #[serde(rename = "alert")]
282    Alert,
283    #[serde(rename = "crit")]
284    Crit,
285    #[serde(rename = "debug")]
286    Debug,
287    #[serde(rename = "emerg")]
288    Emerg,
289    #[serde(rename = "err")]
290    Err,
291    #[serde(rename = "info")]
292    Info,
293    #[serde(rename = "nolog")]
294    Nolog,
295    #[serde(rename = "notice")]
296    Notice,
297    #[serde(rename = "warning")]
298    Warning,
299}
300#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
301pub enum SmurfLogLevel {
302    #[serde(rename = "alert")]
303    Alert,
304    #[serde(rename = "crit")]
305    Crit,
306    #[serde(rename = "debug")]
307    Debug,
308    #[serde(rename = "emerg")]
309    Emerg,
310    #[serde(rename = "err")]
311    Err,
312    #[serde(rename = "info")]
313    Info,
314    #[serde(rename = "nolog")]
315    Nolog,
316    #[serde(rename = "notice")]
317    Notice,
318    #[serde(rename = "warning")]
319    Warning,
320}
321#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
322pub enum TcpFlagsLogLevel {
323    #[serde(rename = "alert")]
324    Alert,
325    #[serde(rename = "crit")]
326    Crit,
327    #[serde(rename = "debug")]
328    Debug,
329    #[serde(rename = "emerg")]
330    Emerg,
331    #[serde(rename = "err")]
332    Err,
333    #[serde(rename = "info")]
334    Info,
335    #[serde(rename = "nolog")]
336    Nolog,
337    #[serde(rename = "notice")]
338    Notice,
339    #[serde(rename = "warning")]
340    Warning,
341}