mikrotik/src/ip/types.rs

208 lines
6.7 KiB
Rust

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<String>,
#[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<String>,
#[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<String>,
#[serde(rename = "active-client-id")]
pub active_client_id: Option<String>,
#[serde(rename = "active-mac-address")]
pub active_mac_address: Option<String>,
#[serde(rename = "active-server")]
pub active_server: Option<String>,
#[serde(rename = "expires-after")]
pub expires_after: Option<String>,
}
#[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<String>,
#[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<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,
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<String>,
#[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<String>,
#[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<String>,
}
#[derive(Default, Hash, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AddAddressInput {
pub address: String,
pub comment: Option<String>,
#[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<String>,
}
#[derive(Default, Hash, Eq, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AddAddressOutput {
pub ret: String,
}