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, ¶ms)
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}