proxmox_api/generated/nodes/node/qemu/vmid/firewall/
options.rs1pub 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 VM 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 DHCP."]
44 pub dhcp: Option<bool>,
45 #[serde(
46 serialize_with = "crate::types::serialize_bool_optional",
47 deserialize_with = "crate::types::deserialize_bool_optional"
48 )]
49 #[serde(skip_serializing_if = "Option::is_none", default)]
50 #[doc = "Enable/disable firewall rules."]
51 pub enable: Option<bool>,
52 #[serde(
53 serialize_with = "crate::types::serialize_bool_optional",
54 deserialize_with = "crate::types::deserialize_bool_optional"
55 )]
56 #[serde(skip_serializing_if = "Option::is_none", default)]
57 #[doc = "Enable default IP filters. This is equivalent to adding an empty ipfilter-net\\<id\\> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added."]
58 pub ipfilter: Option<bool>,
59 #[serde(skip_serializing_if = "Option::is_none", default)]
60 #[doc = "Log level for incoming traffic."]
61 pub log_level_in: Option<LogLevelIn>,
62 #[serde(skip_serializing_if = "Option::is_none", default)]
63 #[doc = "Log level for outgoing traffic."]
64 pub log_level_out: Option<LogLevelOut>,
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 = "Enable/disable MAC address filter."]
71 pub macfilter: Option<bool>,
72 #[serde(
73 serialize_with = "crate::types::serialize_bool_optional",
74 deserialize_with = "crate::types::deserialize_bool_optional"
75 )]
76 #[serde(skip_serializing_if = "Option::is_none", default)]
77 #[doc = "Enable NDP (Neighbor Discovery Protocol)."]
78 pub ndp: Option<bool>,
79 #[serde(skip_serializing_if = "Option::is_none", default)]
80 #[doc = "Input policy."]
81 pub policy_in: Option<PolicyIn>,
82 #[serde(skip_serializing_if = "Option::is_none", default)]
83 #[doc = "Output policy."]
84 pub policy_out: Option<PolicyOut>,
85 #[serde(
86 serialize_with = "crate::types::serialize_bool_optional",
87 deserialize_with = "crate::types::deserialize_bool_optional"
88 )]
89 #[serde(skip_serializing_if = "Option::is_none", default)]
90 #[doc = "Allow sending Router Advertisement."]
91 pub radv: Option<bool>,
92 #[serde(
93 flatten,
94 default,
95 skip_serializing_if = "::std::collections::HashMap::is_empty"
96 )]
97 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
98}
99#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
100pub struct PutParams {
101 #[serde(skip_serializing_if = "Option::is_none", default)]
102 #[doc = "A list of settings you want to delete."]
103 pub delete: Option<String>,
104 #[serde(
105 serialize_with = "crate::types::serialize_bool_optional",
106 deserialize_with = "crate::types::deserialize_bool_optional"
107 )]
108 #[serde(skip_serializing_if = "Option::is_none", default)]
109 #[doc = "Enable DHCP."]
110 pub dhcp: Option<bool>,
111 #[serde(skip_serializing_if = "Option::is_none", default)]
112 #[doc = "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications."]
113 pub digest: Option<String>,
114 #[serde(
115 serialize_with = "crate::types::serialize_bool_optional",
116 deserialize_with = "crate::types::deserialize_bool_optional"
117 )]
118 #[serde(skip_serializing_if = "Option::is_none", default)]
119 #[doc = "Enable/disable firewall rules."]
120 pub enable: Option<bool>,
121 #[serde(
122 serialize_with = "crate::types::serialize_bool_optional",
123 deserialize_with = "crate::types::deserialize_bool_optional"
124 )]
125 #[serde(skip_serializing_if = "Option::is_none", default)]
126 #[doc = "Enable default IP filters. This is equivalent to adding an empty ipfilter-net\\<id\\> ipset for every interface. Such ipsets implicitly contain sane default restrictions such as restricting IPv6 link local addresses to the one derived from the interface's MAC address. For containers the configured IP addresses will be implicitly added."]
127 pub ipfilter: Option<bool>,
128 #[serde(skip_serializing_if = "Option::is_none", default)]
129 #[doc = "Log level for incoming traffic."]
130 pub log_level_in: Option<LogLevelIn>,
131 #[serde(skip_serializing_if = "Option::is_none", default)]
132 #[doc = "Log level for outgoing traffic."]
133 pub log_level_out: Option<LogLevelOut>,
134 #[serde(
135 serialize_with = "crate::types::serialize_bool_optional",
136 deserialize_with = "crate::types::deserialize_bool_optional"
137 )]
138 #[serde(skip_serializing_if = "Option::is_none", default)]
139 #[doc = "Enable/disable MAC address filter."]
140 pub macfilter: Option<bool>,
141 #[serde(
142 serialize_with = "crate::types::serialize_bool_optional",
143 deserialize_with = "crate::types::deserialize_bool_optional"
144 )]
145 #[serde(skip_serializing_if = "Option::is_none", default)]
146 #[doc = "Enable NDP (Neighbor Discovery Protocol)."]
147 pub ndp: Option<bool>,
148 #[serde(skip_serializing_if = "Option::is_none", default)]
149 #[doc = "Input policy."]
150 pub policy_in: Option<PolicyIn>,
151 #[serde(skip_serializing_if = "Option::is_none", default)]
152 #[doc = "Output policy."]
153 pub policy_out: Option<PolicyOut>,
154 #[serde(
155 serialize_with = "crate::types::serialize_bool_optional",
156 deserialize_with = "crate::types::deserialize_bool_optional"
157 )]
158 #[serde(skip_serializing_if = "Option::is_none", default)]
159 #[doc = "Allow sending Router Advertisement."]
160 pub radv: Option<bool>,
161 #[serde(
162 flatten,
163 default,
164 skip_serializing_if = "::std::collections::HashMap::is_empty"
165 )]
166 pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
167}
168#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
169pub enum LogLevelIn {
170 #[serde(rename = "alert")]
171 Alert,
172 #[serde(rename = "crit")]
173 Crit,
174 #[serde(rename = "debug")]
175 Debug,
176 #[serde(rename = "emerg")]
177 Emerg,
178 #[serde(rename = "err")]
179 Err,
180 #[serde(rename = "info")]
181 Info,
182 #[serde(rename = "nolog")]
183 Nolog,
184 #[serde(rename = "notice")]
185 Notice,
186 #[serde(rename = "warning")]
187 Warning,
188}
189#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
190pub enum LogLevelOut {
191 #[serde(rename = "alert")]
192 Alert,
193 #[serde(rename = "crit")]
194 Crit,
195 #[serde(rename = "debug")]
196 Debug,
197 #[serde(rename = "emerg")]
198 Emerg,
199 #[serde(rename = "err")]
200 Err,
201 #[serde(rename = "info")]
202 Info,
203 #[serde(rename = "nolog")]
204 Nolog,
205 #[serde(rename = "notice")]
206 Notice,
207 #[serde(rename = "warning")]
208 Warning,
209}
210#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
211pub enum PolicyIn {
212 ACCEPT,
213 DROP,
214 REJECT,
215}
216#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
217pub enum PolicyOut {
218 ACCEPT,
219 DROP,
220 REJECT,
221}