use crate::serde_helpers::{deserialize_bool, deserialize_u16}; use serde::{Deserialize, Serialize}; #[derive(Default, Debug, Eq, Clone, Hash, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct DhcpServer { #[serde(rename = ".id")] pub id: String, #[serde(rename = "address-pool")] pub address_pool: String, pub authoritative: String, #[serde(deserialize_with = "deserialize_bool")] pub disabled: bool, #[serde(deserialize_with = "deserialize_bool")] pub dynamic: bool, pub interface: String, #[serde(deserialize_with = "deserialize_bool")] pub invalid: bool, #[serde(rename = "lease-script")] pub lease_script: String, #[serde(rename = "lease-time")] pub lease_time: String, pub name: String, #[serde(rename = "use-radius")] pub use_radius: String, } #[derive(Default, Debug, Hash, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Lease { #[serde(rename = ".id")] pub id: String, pub address: String, #[serde(rename = "address-lists")] pub address_lists: String, #[serde(deserialize_with = "deserialize_bool")] pub blocked: bool, #[serde(rename = "client-id")] pub client_id: Option, #[serde(rename = "dhcp-option")] pub dhcp_option: String, #[serde(deserialize_with = "deserialize_bool")] pub disabled: bool, pub dynamic: String, #[serde(rename = "host-name")] pub host_name: Option, #[serde(rename = "last-seen")] pub last_seen: String, #[serde(rename = "mac-address")] pub mac_address: String, #[serde(deserialize_with = "deserialize_bool")] pub radius: bool, pub server: String, pub status: String, #[serde(rename = "active-address")] pub active_address: Option, #[serde(rename = "active-client-id")] pub active_client_id: Option, #[serde(rename = "active-mac-address")] pub active_mac_address: Option, #[serde(rename = "active-server")] pub active_server: Option, #[serde(rename = "expires-after")] pub expires_after: Option, } #[derive(Default, Hash, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Network { #[serde(rename = ".id")] pub id: String, pub address: String, #[serde(rename = "caps-manager")] pub caps_manager: String, pub comment: String, #[serde(rename = "dhcp-option")] pub dhcp_option: String, #[serde(rename = "dns-server")] pub dns_server: String, pub domain: Option, #[serde(deserialize_with = "deserialize_bool")] pub dynamic: bool, pub gateway: String, pub netmask: String, #[serde(rename = "ntp-server")] pub ntp_server: String, #[serde(rename = "wins-server")] pub wins_server: String, } #[derive(Default, Hash, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Address { #[serde(rename = ".id")] pub id: String, #[serde(rename = "actual-interface")] pub actual_interface: String, pub address: String, pub comment: Option, #[serde(deserialize_with = "deserialize_bool")] pub disabled: bool, #[serde(deserialize_with = "deserialize_bool")] pub dynamic: bool, pub interface: String, #[serde(deserialize_with = "deserialize_bool")] pub invalid: bool, pub network: String, } #[derive(Default, Hash, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct DhcpClient { #[serde(rename = ".id")] pub id: String, #[serde(rename = "add-default-route")] pub add_default_route: String, pub address: String, #[serde(rename = "dhcp-options")] pub dhcp_options: String, #[serde(rename = "dhcp-server")] pub dhcp_server: String, #[serde(deserialize_with = "deserialize_bool")] pub disabled: bool, #[serde(deserialize_with = "deserialize_bool")] pub dynamic: bool, #[serde(rename = "expires-after")] pub expires_after: String, pub gateway: String, pub interface: String, #[serde(deserialize_with = "deserialize_bool")] pub invalid: bool, #[serde(rename = "primary-dns")] pub primary_dns: String, #[serde(rename = "secondary-dns")] pub secondary_dns: String, pub status: String, #[serde(rename = "use-peer-dns", deserialize_with = "deserialize_bool")] pub use_peer_dns: bool, #[serde(rename = "use-peer-ntp", deserialize_with = "deserialize_bool")] pub use_peer_ntp: bool, } #[derive(Default, Hash, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Route { #[serde(rename = ".id")] pub id: String, pub comment: Option, #[serde(default, deserialize_with = "deserialize_bool")] pub disabled: bool, pub distance: String, #[serde(rename = "dst-address")] pub dst_address: String, #[serde(deserialize_with = "deserialize_bool")] pub dynamic: bool, #[serde(default, deserialize_with = "deserialize_bool")] pub ecmp: bool, pub gateway: String, #[serde(rename = "hw-offloaded", deserialize_with = "deserialize_bool")] pub hw_offloaded: bool, #[serde(rename = "immediate-gw")] pub immediate_gw: String, #[serde(deserialize_with = "deserialize_bool")] pub inactive: bool, #[serde(rename = "pref-src")] pub pref_src: Option, #[serde(rename = "routing-table")] pub routing_table: String, #[serde(deserialize_with = "deserialize_u16")] pub scope: u16, #[serde(default, rename = "static", deserialize_with = "deserialize_bool")] pub static_field: bool, #[serde(rename = "suppress-hw-offload", deserialize_with = "deserialize_bool")] pub suppress_hw_offload: bool, #[serde( default, rename = "target-scope", deserialize_with = "deserialize_bool" )] pub target_scope: bool, #[serde(default, deserialize_with = "deserialize_bool")] pub active: bool, #[serde(default, deserialize_with = "deserialize_bool")] pub connect: bool, #[serde(rename = "local-address")] pub local_address: Option, } #[derive(Default, Hash, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct AddAddressInput { pub address: String, pub comment: Option, #[serde(deserialize_with = "deserialize_bool")] pub disabled: bool, pub interface: String, // TODO(ishan): Do not serialize this if this was none #[serde(skip_serializing_if = "Option::is_none")] pub network: Option, } #[derive(Default, Hash, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct AddAddressOutput { pub ret: String, }