use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "PascalCase")]
pub struct Status {
pub state: Option<String>,
pub health: Option<String>,
pub health_rollup: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ServiceRoot {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub redfish_version: Option<String>,
pub systems: Option<OdataLink>,
pub chassis: Option<OdataLink>,
pub managers: Option<OdataLink>,
pub session_service: Option<OdataLink>,
pub account_service: Option<OdataLink>,
pub update_service: Option<OdataLink>,
pub event_service: Option<OdataLink>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OdataLink {
#[serde(rename = "@odata.id")]
pub odata_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Collection {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub name: Option<String>,
#[serde(rename = "Members@odata.count")]
pub members_count: Option<u32>,
#[serde(rename = "Members")]
pub members: Option<Vec<OdataLink>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ComputerSystem {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub manufacturer: Option<String>,
pub model: Option<String>,
pub serial_number: Option<String>,
pub uuid: Option<String>,
pub host_name: Option<String>,
pub power_state: Option<String>,
pub bios_version: Option<String>,
pub status: Option<Status>,
pub boot: Option<Boot>,
pub processor_summary: Option<ProcessorSummary>,
pub memory_summary: Option<MemorySummary>,
pub processors: Option<OdataLink>,
pub memory: Option<OdataLink>,
pub storage: Option<OdataLink>,
pub ethernet_interfaces: Option<OdataLink>,
pub network_interfaces: Option<OdataLink>,
pub bios: Option<OdataLink>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Boot {
pub boot_source_override_target: Option<String>,
pub boot_source_override_enabled: Option<String>,
pub boot_source_override_mode: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ProcessorSummary {
pub count: Option<u32>,
pub model: Option<String>,
pub status: Option<Status>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct MemorySummary {
pub total_system_memory_gi_b: Option<f64>,
pub status: Option<Status>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Chassis {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub chassis_type: Option<String>,
pub manufacturer: Option<String>,
pub model: Option<String>,
pub serial_number: Option<String>,
pub part_number: Option<String>,
pub power_state: Option<String>,
pub status: Option<Status>,
pub thermal: Option<OdataLink>,
pub power: Option<OdataLink>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Manager {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub manager_type: Option<String>,
pub firmware_version: Option<String>,
pub status: Option<Status>,
pub ethernet_interfaces: Option<OdataLink>,
pub network_protocol: Option<OdataLink>,
pub log_services: Option<OdataLink>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Power {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub power_control: Option<Vec<PowerControl>>,
pub power_supplies: Option<Vec<PowerSupply>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PowerControl {
pub name: Option<String>,
pub power_consumed_watts: Option<f64>,
pub power_capacity_watts: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PowerSupply {
pub name: Option<String>,
pub power_capacity_watts: Option<f64>,
pub model: Option<String>,
pub serial_number: Option<String>,
pub status: Option<Status>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Thermal {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub temperatures: Option<Vec<Temperature>>,
pub fans: Option<Vec<Fan>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Temperature {
pub name: Option<String>,
pub reading_celsius: Option<f64>,
pub upper_threshold_critical: Option<f64>,
pub upper_threshold_fatal: Option<f64>,
pub status: Option<Status>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Fan {
pub name: Option<String>,
pub reading: Option<f64>,
pub reading_units: Option<String>,
pub status: Option<Status>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Processor {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub manufacturer: Option<String>,
pub model: Option<String>,
pub total_cores: Option<u32>,
pub total_threads: Option<u32>,
pub max_speed_m_hz: Option<u32>,
pub status: Option<Status>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Memory {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub memory_device_type: Option<String>,
pub capacity_mi_b: Option<u64>,
pub operating_speed_mhz: Option<u32>,
pub manufacturer: Option<String>,
pub serial_number: Option<String>,
pub status: Option<Status>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Storage {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub drives: Option<Vec<OdataLink>>,
pub storage_controllers: Option<Vec<StorageController>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct StorageController {
pub member_id: Option<String>,
pub name: Option<String>,
pub manufacturer: Option<String>,
pub model: Option<String>,
pub firmware_version: Option<String>,
pub status: Option<Status>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Drive {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub manufacturer: Option<String>,
pub model: Option<String>,
pub serial_number: Option<String>,
pub capacity_bytes: Option<u64>,
pub media_type: Option<String>,
pub protocol: Option<String>,
pub status: Option<Status>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct EthernetInterface {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
#[serde(rename = "MACAddress")]
pub mac_address: Option<String>,
pub speed_mbps: Option<u32>,
pub status: Option<Status>,
#[serde(rename = "IPv4Addresses")]
pub ipv4_addresses: Option<Vec<Value>>,
#[serde(rename = "IPv6Addresses")]
pub ipv6_addresses: Option<Vec<Value>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AccountService {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub accounts: Option<OdataLink>,
pub roles: Option<OdataLink>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Account {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub user_name: Option<String>,
pub role_id: Option<String>,
pub enabled: Option<bool>,
pub locked: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct UpdateService {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub firmware_inventory: Option<OdataLink>,
pub software_inventory: Option<OdataLink>,
pub service_enabled: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct EventService {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub service_enabled: Option<bool>,
pub subscriptions: Option<OdataLink>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct LogEntry {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub created: Option<String>,
pub entry_type: Option<String>,
pub severity: Option<String>,
pub message: Option<String>,
pub message_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Task {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub task_state: Option<String>,
pub start_time: Option<String>,
pub end_time: Option<String>,
pub task_status: Option<String>,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct SessionCreate {
pub user_name: String,
pub password: String,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ResetRequest {
pub reset_type: String,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct BootOverride {
pub boot: BootOverrideInner,
}
#[derive(Debug, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct BootOverrideInner {
pub boot_source_override_target: String,
pub boot_source_override_enabled: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct VirtualMedia {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub media_types: Option<Vec<String>>,
pub image: Option<String>,
pub image_name: Option<String>,
pub inserted: Option<bool>,
pub connected_via: Option<String>,
pub write_protected: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Bios {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub attributes: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct NetworkProtocol {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub host_name: Option<String>,
#[serde(rename = "FQDN")]
pub fqdn: Option<String>,
#[serde(rename = "HTTP")]
pub http: Option<ProtocolEnabled>,
#[serde(rename = "HTTPS")]
pub https: Option<ProtocolEnabled>,
#[serde(rename = "SSH")]
pub ssh: Option<ProtocolEnabled>,
#[serde(rename = "IPMI")]
pub ipmi: Option<ProtocolEnabled>,
#[serde(rename = "KVMIP")]
pub kvmip: Option<ProtocolEnabled>,
#[serde(rename = "NTP")]
pub ntp: Option<NtpProtocol>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ProtocolEnabled {
pub protocol_enabled: Option<bool>,
pub port: Option<u16>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct NtpProtocol {
pub protocol_enabled: Option<bool>,
#[serde(rename = "NTPServers")]
pub ntp_servers: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct SecureBoot {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub secure_boot_enable: Option<bool>,
pub secure_boot_current_boot: Option<String>,
pub secure_boot_mode: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Volume {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub capacity_bytes: Option<u64>,
pub volume_type: Option<String>,
#[serde(rename = "RAIDType")]
pub raid_type: Option<String>,
pub status: Option<Status>,
pub drives: Option<Vec<OdataLink>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Certificate {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub certificate_string: Option<String>,
pub certificate_type: Option<String>,
pub issuer: Option<serde_json::Value>,
pub subject: Option<serde_json::Value>,
pub valid_not_before: Option<String>,
pub valid_not_after: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct EventDestination {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub destination: Option<String>,
pub protocol: Option<String>,
pub event_types: Option<Vec<String>>,
pub context: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct SerialInterface {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub bit_rate: Option<String>,
pub data_bits: Option<String>,
pub parity: Option<String>,
pub stop_bits: Option<String>,
pub flow_control: Option<String>,
pub interface_enabled: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct SoftwareInventory {
#[serde(rename = "@odata.id")]
pub odata_id: Option<String>,
pub id: Option<String>,
pub name: Option<String>,
pub version: Option<String>,
pub updateable: Option<bool>,
pub status: Option<Status>,
}