Files
watcheragent/WatcherAgent/src/models.rs
donpat1to d7a58e00da
All checks were successful
Rust Cross-Platform Build / Detect Rust Project (push) Successful in 5s
Rust Cross-Platform Build / Set Tag Name (push) Successful in 5s
Rust Cross-Platform Build / Run Tests (push) Successful in 1m13s
Rust Cross-Platform Build / Build (x86_64-unknown-linux-gnu) (push) Successful in 3m20s
Rust Cross-Platform Build / Build (x86_64-pc-windows-gnu) (push) Successful in 4m7s
Rust Cross-Platform Build / Build and Push Docker Image (push) Successful in 2m22s
Rust Cross-Platform Build / Workflow Summary (push) Successful in 1s
Rust Cross-Platform Build / Create Tag (push) Successful in 5s
added listing all running containers
2025-09-29 14:54:03 +02:00

112 lines
2.8 KiB
Rust

use serde::{Deserialize, Serialize};
// Data structures matching the C# DTOs
#[derive(Serialize, Debug)]
pub struct RegistrationDto {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "ipAddress")]
pub ip_address: String,
#[serde(rename = "cpuType")]
pub cpu_type: String,
#[serde(rename = "cpuCores")]
pub cpu_cores: i32,
#[serde(rename = "gpuType")]
pub gpu_type: String,
#[serde(rename = "ramSize")]
pub ram_size: f64,
}
#[derive(Serialize, Debug)]
pub struct MetricDto {
#[serde(rename = "serverId")]
pub server_id: i32,
#[serde(rename = "ipAddress")]
pub ip_address: String,
#[serde(rename = "cpu_Load")]
pub cpu_load: f64,
#[serde(rename = "cpu_Temp")]
pub cpu_temp: f64,
#[serde(rename = "gpu_Load")]
pub gpu_load: f64,
#[serde(rename = "gpu_Temp")]
pub gpu_temp: f64,
#[serde(rename = "gpu_Vram_Size")]
pub gpu_vram_size: f64,
#[serde(rename = "gpu_Vram_Usage")]
pub gpu_vram_usage: f64,
#[serde(rename = "ram_Load")]
pub ram_load: f64,
#[serde(rename = "ram_Size")]
pub ram_size: f64,
#[serde(rename = "disk_Size")]
pub disk_size: f64,
#[serde(rename = "disk_Usage")]
pub disk_usage: f64,
#[serde(rename = "disk_Temp")]
pub disk_temp: f64,
#[serde(rename = "net_In")]
pub net_rx: f64,
#[serde(rename = "net_Out")]
pub net_tx: f64,
}
#[derive(Serialize, Debug)]
pub struct DiskInfoDetailed {
pub disk_name: String,
pub disk_kind: String,
pub disk_total_space: f64,
pub disk_available_space: f64,
pub disk_used_space: f64,
pub disk_mount_point: String,
pub component_disk_label: String,
pub component_disk_temperature: f32,
}
#[derive(Deserialize)]
pub struct IdResponse {
pub id: i32,
#[serde(rename = "ipAddress")]
pub ip_address: String,
}
#[derive(Serialize)]
pub struct HeartbeatDto {
#[serde(rename = "IpAddress")]
pub ip_address: String,
}
#[derive(Serialize, Debug)]
pub struct HardwareDto {
pub cpu_type: String,
pub cpu_cores: i32,
pub gpu_type: String,
pub ram_size: f64,
pub ip_address: String,
}
#[derive(Debug, Deserialize, Clone)]
pub struct ServerMessage {
// Define your message structure here
pub message_type: String,
pub data: serde_json::Value,
pub message_id: String, // Add an ID for acknowledgment
}
#[derive(Debug, Serialize, Clone)]
pub struct Acknowledgment {
pub message_id: String,
pub status: String, // "success" or "error"
pub details: String,
}
#[derive(Debug, Serialize, Clone)]
pub struct DockerContainer {
pub ID: String,
pub image: String,
pub Name: String,
pub Status: String, // "running";"stopped";others
pub _net_in: f64,
pub _net_out: f64,
pub _cpu_load: f64,
}