omni_orchestrator/schemas/v1/models/
instance.rs

1use serde::{Deserialize, Serialize};
2use chrono::{DateTime, Utc};
3use sqlx::Row;
4
5
6#[derive(Debug, sqlx::FromRow, Serialize)]
7pub struct Instance {
8    pub id: i64,
9    pub app_id: i64,
10    pub instance_type: String,
11    pub guid: String,
12    pub status: String, // enum: 'running', 'starting', 'stopping', 'stopped', 'crashed', 'terminated', 'unknown'
13    pub region_id: i64,
14    pub container_id: Option<String>,
15    pub container_ip: Option<String>,
16    pub allocation_id: Option<i64>,
17    pub node_id: Option<i64>,
18    pub instance_index: i32,
19    pub last_health_check: Option<DateTime<Utc>>,
20    pub health_status: String, // enum: 'healthy', 'unhealthy', 'unknown'
21    pub cpu_usage: Option<f64>,
22    pub memory_usage: Option<f64>,
23    pub disk_usage: Option<f64>,
24    pub uptime: Option<i32>,
25    pub restart_count: Option<i32>,
26    pub last_restart_reason: Option<String>,
27    pub start_time: Option<DateTime<Utc>>,
28    pub stop_time: Option<DateTime<Utc>>,
29    pub exit_code: Option<i32>,
30    pub exit_reason: Option<String>,
31    pub scheduler_metadata: Option<serde_json::Value>,
32    pub created_at: DateTime<Utc>,
33    pub updated_at: DateTime<Utc>,
34}