use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct VmListItem {
pub vmid: u32,
pub name: String,
pub status: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cpu: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub maxcpu: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mem: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub maxmem: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disk: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub maxdisk: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uptime: Option<u64>,
pub node: String,
pub id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
pub struct VmStatusCurrent {
pub status: String,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cpu: Option<f64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub mem: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub uptime: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub qmpstatus: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub balloon: Option<BalloonInfo>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub net: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub blockstat: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub numa: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub digest: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sockets: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cores: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none", rename = "cputype")]
pub cpu_type: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub balloon_min: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub maxmem: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub freemem: Option<u64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub totalmem: Option<u64>,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct BalloonInfo {
pub current: u64,
pub maximum: u64,
pub minimum: u64,
}
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct VmConfig {
pub vmid: u32,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub balloon: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sockets: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cores: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub threads: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cpu: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub net: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scsi: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ide: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sata: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub virtio: Option<serde_json::Value>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub boot: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ostype: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kvm: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub numa: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub digest: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub onboot: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protection: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tablet: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vga: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scsihw: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bios: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub efidisk: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tpmstate: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CreateVmParams {
pub vmid: u32,
pub name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub memory: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sockets: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cores: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub threads: Option<u32>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub cpu: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub ostype: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub kvm: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub numa: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub net: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub scsihw: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub boot: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tags: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub protection: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tablet: Option<u8>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub vga: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bios: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub efidisk: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tpmstate: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub agent: Option<u8>,
}