harmony/harmony-rs/opnsense-config/src/modules/opnsense.rs
2024-10-13 08:48:56 -04:00

45 lines
1.2 KiB
Rust

use yaserde_derive::{YaDeserialize, YaSerialize};
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
#[yaserde(rename = "opnsense")]
pub struct OPNsense {
#[yaserde(rename = "dhcpd")]
pub dhcpd: Dhcpd,
// Add other top-level elements as needed
}
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
pub struct Dhcpd {
#[yaserde(rename = "lan")]
pub lan: DhcpInterface,
// Add other interfaces as needed
}
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
pub struct DhcpInterface {
#[yaserde(rename = "enable")]
pub enable: bool,
#[yaserde(rename = "range")]
pub range: DhcpRange,
#[yaserde(rename = "staticmap")]
pub staticmaps: Vec<StaticMap>,
}
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
pub struct DhcpRange {
#[yaserde(rename = "from")]
pub from: String,
#[yaserde(rename = "to")]
pub to: String,
}
#[derive(Default, PartialEq, Debug, YaSerialize, YaDeserialize)]
pub struct StaticMap {
#[yaserde(rename = "mac")]
pub mac: String,
#[yaserde(rename = "ipaddr")]
pub ipaddr: String,
#[yaserde(rename = "hostname")]
pub hostname: String,
}