misskey_api/endpoint/admin/
server_info.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Serialize, Default, Debug, Clone)]
4#[serde(rename_all = "camelCase")]
5pub struct Request {}
6
7#[derive(Deserialize, Debug, Clone)]
8#[serde(rename_all = "camelCase")]
9pub struct CpuInfo {
10    pub model: String,
11    pub cores: u64,
12}
13
14#[derive(Deserialize, Debug, Clone)]
15#[serde(rename_all = "camelCase")]
16pub struct MemInfo {
17    pub total: u64,
18}
19
20#[derive(Deserialize, Debug, Clone)]
21#[serde(rename_all = "camelCase")]
22pub struct FsInfo {
23    pub total: u64,
24    pub used: u64,
25}
26
27#[derive(Deserialize, Debug, Clone)]
28#[serde(rename_all = "camelCase")]
29pub struct NetInfo {
30    pub interface: String,
31}
32
33#[derive(Deserialize, Debug, Clone)]
34#[serde(rename_all = "camelCase")]
35pub struct Response {
36    pub machine: String,
37    pub os: String,
38    pub node: String,
39    pub psql: String,
40    pub redis: String,
41    pub cpu: CpuInfo,
42    pub mem: MemInfo,
43    pub fs: FsInfo,
44    pub net: NetInfo,
45}
46
47impl misskey_core::Request for Request {
48    type Response = Response;
49    const ENDPOINT: &'static str = "admin/server-info";
50}
51
52#[cfg(test)]
53mod tests {
54    use super::Request;
55    use crate::test::{ClientExt, TestClient};
56
57    #[tokio::test]
58    async fn request() {
59        let client = TestClient::new();
60        client.admin.test(Request::default()).await;
61    }
62}