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, ¶meters)
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, ¶meters).await
247 }
248}