proxmox_api/generated/nodes/node/qemu/vmid/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 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, &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 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}