pve/nodes/node/firewall/
options.rs

1#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, Default)]
2pub struct GetResponseItem {
3    #[doc = "Enable host firewall rules."]
4    #[serde(
5        skip_serializing_if = "Option::is_none",
6        default,
7        deserialize_with = "crate::common::deserialize_option_bool_lax",
8        serialize_with = "crate::common::serialize_option_bool_as_u64"
9    )]
10    pub enable: Option<bool>,
11    #[doc = "Log level for incoming traffic."]
12    #[serde(skip_serializing_if = "Option::is_none", default)]
13    pub log_level_in: Option<String>,
14    #[doc = "Log level for outgoing traffic."]
15    #[serde(skip_serializing_if = "Option::is_none", default)]
16    pub log_level_out: Option<String>,
17    #[doc = "Enable logging of conntrack information."]
18    #[serde(
19        skip_serializing_if = "Option::is_none",
20        default,
21        deserialize_with = "crate::common::deserialize_option_bool_lax",
22        serialize_with = "crate::common::serialize_option_bool_as_u64"
23    )]
24    pub log_nf_conntrack: Option<bool>,
25    #[doc = "Enable NDP (Neighbor Discovery Protocol)."]
26    #[serde(
27        skip_serializing_if = "Option::is_none",
28        default,
29        deserialize_with = "crate::common::deserialize_option_bool_lax",
30        serialize_with = "crate::common::serialize_option_bool_as_u64"
31    )]
32    pub ndp: Option<bool>,
33    #[doc = "Allow invalid packets on connection tracking."]
34    #[serde(
35        skip_serializing_if = "Option::is_none",
36        default,
37        deserialize_with = "crate::common::deserialize_option_bool_lax",
38        serialize_with = "crate::common::serialize_option_bool_as_u64"
39    )]
40    pub nf_conntrack_allow_invalid: Option<bool>,
41    #[doc = "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp"]
42    #[serde(skip_serializing_if = "Option::is_none", default)]
43    pub nf_conntrack_helpers: Option<String>,
44    #[doc = "Maximum number of tracked connections."]
45    #[serde(skip_serializing_if = "Option::is_none", default)]
46    pub nf_conntrack_max: Option<u64>,
47    #[doc = "Conntrack established timeout."]
48    #[serde(skip_serializing_if = "Option::is_none", default)]
49    pub nf_conntrack_tcp_timeout_established: Option<u64>,
50    #[doc = "Conntrack syn recv timeout."]
51    #[serde(skip_serializing_if = "Option::is_none", default)]
52    pub nf_conntrack_tcp_timeout_syn_recv: Option<u64>,
53    #[doc = "Enable SMURFS filter."]
54    #[serde(
55        skip_serializing_if = "Option::is_none",
56        default,
57        deserialize_with = "crate::common::deserialize_option_bool_lax",
58        serialize_with = "crate::common::serialize_option_bool_as_u64"
59    )]
60    pub nosmurfs: Option<bool>,
61    #[doc = "Enable synflood protection"]
62    #[serde(
63        skip_serializing_if = "Option::is_none",
64        default,
65        deserialize_with = "crate::common::deserialize_option_bool_lax",
66        serialize_with = "crate::common::serialize_option_bool_as_u64"
67    )]
68    pub protection_synflood: Option<bool>,
69    #[doc = "Synflood protection rate burst by ip src."]
70    #[serde(skip_serializing_if = "Option::is_none", default)]
71    pub protection_synflood_burst: Option<u64>,
72    #[doc = "Synflood protection rate syn/sec by ip src."]
73    #[serde(skip_serializing_if = "Option::is_none", default)]
74    pub protection_synflood_rate: Option<u64>,
75    #[doc = "Log level for SMURFS filter."]
76    #[serde(skip_serializing_if = "Option::is_none", default)]
77    pub smurf_log_level: Option<String>,
78    #[doc = "Log level for illegal tcp flags filter."]
79    #[serde(skip_serializing_if = "Option::is_none", default)]
80    pub tcp_flags_log_level: Option<String>,
81    #[doc = "Filter illegal combinations of TCP flags."]
82    #[serde(
83        skip_serializing_if = "Option::is_none",
84        default,
85        deserialize_with = "crate::common::deserialize_option_bool_lax",
86        serialize_with = "crate::common::serialize_option_bool_as_u64"
87    )]
88    pub tcpflags: Option<bool>,
89}
90
91#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, Default)]
92pub struct PutParameters {
93    #[doc = "A list of settings you want to delete."]
94    #[serde(skip_serializing_if = "Option::is_none", default)]
95    pub delete: Option<String>,
96    #[doc = "Prevent changes if current configuration file has different SHA1 digest. This can be used to prevent concurrent modifications."]
97    #[serde(skip_serializing_if = "Option::is_none", default)]
98    pub digest: Option<String>,
99    #[doc = "Enable host firewall rules."]
100    #[serde(
101        skip_serializing_if = "Option::is_none",
102        default,
103        deserialize_with = "crate::common::deserialize_option_bool_lax",
104        serialize_with = "crate::common::serialize_option_bool_as_u64"
105    )]
106    pub enable: Option<bool>,
107    #[doc = "Log level for incoming traffic."]
108    #[serde(skip_serializing_if = "Option::is_none", default)]
109    pub log_level_in: Option<String>,
110    #[doc = "Log level for outgoing traffic."]
111    #[serde(skip_serializing_if = "Option::is_none", default)]
112    pub log_level_out: Option<String>,
113    #[doc = "Enable logging of conntrack information."]
114    #[serde(
115        skip_serializing_if = "Option::is_none",
116        default,
117        deserialize_with = "crate::common::deserialize_option_bool_lax",
118        serialize_with = "crate::common::serialize_option_bool_as_u64"
119    )]
120    pub log_nf_conntrack: Option<bool>,
121    #[doc = "Enable NDP (Neighbor Discovery Protocol)."]
122    #[serde(
123        skip_serializing_if = "Option::is_none",
124        default,
125        deserialize_with = "crate::common::deserialize_option_bool_lax",
126        serialize_with = "crate::common::serialize_option_bool_as_u64"
127    )]
128    pub ndp: Option<bool>,
129    #[doc = "Allow invalid packets on connection tracking."]
130    #[serde(
131        skip_serializing_if = "Option::is_none",
132        default,
133        deserialize_with = "crate::common::deserialize_option_bool_lax",
134        serialize_with = "crate::common::serialize_option_bool_as_u64"
135    )]
136    pub nf_conntrack_allow_invalid: Option<bool>,
137    #[doc = "Enable conntrack helpers for specific protocols. Supported protocols: amanda, ftp, irc, netbios-ns, pptp, sane, sip, snmp, tftp"]
138    #[serde(skip_serializing_if = "Option::is_none", default)]
139    pub nf_conntrack_helpers: Option<String>,
140    #[doc = "Maximum number of tracked connections."]
141    #[serde(skip_serializing_if = "Option::is_none", default)]
142    pub nf_conntrack_max: Option<u64>,
143    #[doc = "Conntrack established timeout."]
144    #[serde(skip_serializing_if = "Option::is_none", default)]
145    pub nf_conntrack_tcp_timeout_established: Option<u64>,
146    #[doc = "Conntrack syn recv timeout."]
147    #[serde(skip_serializing_if = "Option::is_none", default)]
148    pub nf_conntrack_tcp_timeout_syn_recv: Option<u64>,
149    #[doc = "Enable SMURFS filter."]
150    #[serde(
151        skip_serializing_if = "Option::is_none",
152        default,
153        deserialize_with = "crate::common::deserialize_option_bool_lax",
154        serialize_with = "crate::common::serialize_option_bool_as_u64"
155    )]
156    pub nosmurfs: Option<bool>,
157    #[doc = "Enable synflood protection"]
158    #[serde(
159        skip_serializing_if = "Option::is_none",
160        default,
161        deserialize_with = "crate::common::deserialize_option_bool_lax",
162        serialize_with = "crate::common::serialize_option_bool_as_u64"
163    )]
164    pub protection_synflood: Option<bool>,
165    #[doc = "Synflood protection rate burst by ip src."]
166    #[serde(skip_serializing_if = "Option::is_none", default)]
167    pub protection_synflood_burst: Option<u64>,
168    #[doc = "Synflood protection rate syn/sec by ip src."]
169    #[serde(skip_serializing_if = "Option::is_none", default)]
170    pub protection_synflood_rate: Option<u64>,
171    #[doc = "Log level for SMURFS filter."]
172    #[serde(skip_serializing_if = "Option::is_none", default)]
173    pub smurf_log_level: Option<String>,
174    #[doc = "Log level for illegal tcp flags filter."]
175    #[serde(skip_serializing_if = "Option::is_none", default)]
176    pub tcp_flags_log_level: Option<String>,
177    #[doc = "Filter illegal combinations of TCP flags."]
178    #[serde(
179        skip_serializing_if = "Option::is_none",
180        default,
181        deserialize_with = "crate::common::deserialize_option_bool_lax",
182        serialize_with = "crate::common::serialize_option_bool_as_u64"
183    )]
184    pub tcpflags: Option<bool>,
185}
186
187#[derive(Debug, Clone)]
188pub struct OptionsClient<T> {
189    client: T,
190    path: String,
191}
192
193impl<T> OptionsClient<T>
194where
195    T: Clone,
196{
197    pub fn new(client: T, parent_path: &str) -> Self {
198        Self {
199            client,
200            path: format!("{}/{}", parent_path, "options"),
201        }
202    }
203}
204impl<T> OptionsClient<T>
205where
206    T: crate::client::HttpClient,
207{
208    #[doc = "Get host firewall options."]
209    pub fn get(&self) -> Result<GetResponseItem, T::Error> {
210        self.client.get(&self.path, &())
211    }
212
213    #[doc = "Set Firewall options."]
214    pub fn put(&self, parameters: PutParameters) -> Result<(), T::Error> {
215        self.client.put(&self.path, &parameters)
216    }
217}
218#[derive(Debug, Clone)]
219pub struct AsyncOptionsClient<T> {
220    client: T,
221    path: String,
222}
223
224impl<T> AsyncOptionsClient<T>
225where
226    T: Clone,
227{
228    pub fn new(client: T, parent_path: &str) -> Self {
229        Self {
230            client,
231            path: format!("{}/{}", parent_path, "options"),
232        }
233    }
234}
235impl<T> AsyncOptionsClient<T>
236where
237    T: crate::client::AsyncHttpClient,
238{
239    #[doc = "Get host firewall options."]
240    pub async fn get(&self) -> Result<GetResponseItem, T::Error> {
241        self.client.get(&self.path, &()).await
242    }
243
244    #[doc = "Set Firewall options."]
245    pub async fn put(&self, parameters: PutParameters) -> Result<(), T::Error> {
246        self.client.put(&self.path, &parameters).await
247    }
248}