pub struct OptionsClient<T> {
client: T,
path: String,
}
impl<T> OptionsClient<T>
where
T: crate::client::Client,
{
pub fn new(client: T, parent_path: &str) -> Self {
Self {
client,
path: format!("{}{}", parent_path, "/options"),
}
}
}
impl<T> OptionsClient<T>
where
T: crate::client::Client,
{
#[doc = "Get VM firewall options."]
pub fn get(&self) -> Result<GetOutput, T::Error> {
let path = self.path.to_string();
self.client.get(&path, &())
}
}
impl<T> OptionsClient<T>
where
T: crate::client::Client,
{
#[doc = "Set Firewall options."]
pub fn put(&self, params: PutParams) -> Result<(), T::Error> {
let path = self.path.to_string();
self.client.put(&path, ¶ms)
}
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
pub struct GetOutput {
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Enable DHCP."]
pub dhcp: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Enable/disable firewall rules."]
pub enable: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[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."]
pub ipfilter: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Log level for incoming traffic."]
pub log_level_in: Option<LogLevelIn>,
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Log level for outgoing traffic."]
pub log_level_out: Option<LogLevelOut>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Enable/disable MAC address filter."]
pub macfilter: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Enable NDP (Neighbor Discovery Protocol)."]
pub ndp: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Input policy."]
pub policy_in: Option<PolicyIn>,
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Output policy."]
pub policy_out: Option<PolicyOut>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Allow sending Router Advertisement."]
pub radv: Option<bool>,
#[serde(
flatten,
default,
skip_serializing_if = "::std::collections::HashMap::is_empty"
)]
pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
pub struct PutParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "A list of settings you want to delete."]
pub delete: Option<String>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Enable DHCP."]
pub dhcp: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Prevent changes if current configuration file has a different digest. This can be used to prevent concurrent modifications."]
pub digest: Option<String>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Enable/disable firewall rules."]
pub enable: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[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."]
pub ipfilter: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Log level for incoming traffic."]
pub log_level_in: Option<LogLevelIn>,
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Log level for outgoing traffic."]
pub log_level_out: Option<LogLevelOut>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Enable/disable MAC address filter."]
pub macfilter: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Enable NDP (Neighbor Discovery Protocol)."]
pub ndp: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Input policy."]
pub policy_in: Option<PolicyIn>,
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Output policy."]
pub policy_out: Option<PolicyOut>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Allow sending Router Advertisement."]
pub radv: Option<bool>,
#[serde(
flatten,
default,
skip_serializing_if = "::std::collections::HashMap::is_empty"
)]
pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
pub enum LogLevelIn {
#[serde(rename = "alert")]
Alert,
#[serde(rename = "crit")]
Crit,
#[serde(rename = "debug")]
Debug,
#[serde(rename = "emerg")]
Emerg,
#[serde(rename = "err")]
Err,
#[serde(rename = "info")]
Info,
#[serde(rename = "nolog")]
Nolog,
#[serde(rename = "notice")]
Notice,
#[serde(rename = "warning")]
Warning,
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
pub enum LogLevelOut {
#[serde(rename = "alert")]
Alert,
#[serde(rename = "crit")]
Crit,
#[serde(rename = "debug")]
Debug,
#[serde(rename = "emerg")]
Emerg,
#[serde(rename = "err")]
Err,
#[serde(rename = "info")]
Info,
#[serde(rename = "nolog")]
Nolog,
#[serde(rename = "notice")]
Notice,
#[serde(rename = "warning")]
Warning,
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
pub enum PolicyIn {
ACCEPT,
DROP,
REJECT,
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
pub enum PolicyOut {
ACCEPT,
DROP,
REJECT,
}