nimbuspulse-client 0.4.0

NimbusPulse API client
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct PrometheusSeries {
    pub values: Vec<(f64, String)>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ResourceUsage {
    pub id: String,
    pub name: String,
    pub kind: ResourceKind,
    pub cpu_percent: Option<PrometheusSeries>,
    pub memory_bytes: Option<PrometheusSeries>,
}

#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum ResourceKind {
    System,
    GameServer,
    Agent,
    Mod,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct ServerResourcesResponse {
    pub cpus: Vec<PrometheusSeries>,
    pub resources: Vec<ResourceUsage>,
    pub max_ram: usize,
    pub players: Vec<PrometheusSeries>,
    pub server_fps: Vec<PrometheusSeries>,
}