use serde::{Deserialize, Serialize};
#[derive(Serialize, Default, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct Request {}
#[derive(Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct CpuInfo {
pub model: String,
pub cores: u64,
}
#[derive(Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct MemInfo {
pub total: u64,
}
#[derive(Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct FsInfo {
pub total: u64,
pub used: u64,
}
#[derive(Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct NetInfo {
pub interface: String,
}
#[derive(Deserialize, Debug, Clone)]
#[serde(rename_all = "camelCase")]
pub struct Response {
pub machine: String,
pub os: String,
pub node: String,
pub psql: String,
pub redis: String,
pub cpu: CpuInfo,
pub mem: MemInfo,
pub fs: FsInfo,
pub net: NetInfo,
}
impl misskey_core::Request for Request {
type Response = Response;
const ENDPOINT: &'static str = "admin/server-info";
}
#[cfg(test)]
mod tests {
use super::Request;
use crate::test::{ClientExt, TestClient};
#[tokio::test]
async fn request() {
let client = TestClient::new();
client.admin.test(Request::default()).await;
}
}