libomni/types/db/v1/
storage.rs1use serde::Serialize;
2use chrono::{DateTime, Utc};
3
4#[derive(Debug, sqlx::FromRow, Serialize)]
5pub struct StorageClass {
6 pub id: i64,
7 pub name: String,
8 pub provisioner: String,
9 pub reclaim_policy: String, pub volume_binding_mode: String, pub allow_volume_expansion: bool,
12 pub storage_type: String, pub default_filesystem: String, pub created_at: DateTime<Utc>,
15 pub updated_at: DateTime<Utc>,
16}
17
18#[derive(Debug, sqlx::FromRow, Serialize)]
19pub struct StorageVolume {
20 pub id: i64,
21 pub app_id: i64,
22 pub name: String,
23 pub size_gb: i64,
24 pub storage_class: String,
25 pub access_mode: String, pub status: String, pub node_id: i64,
28 pub encryption_enabled: bool,
29 pub persistence_level: String, pub write_concern: String, pub reclaim_policy: String, pub filesystem_type: Option<String>,
33 pub storage_class_id: i64,
34 pub created_at: DateTime<Utc>,
35 pub updated_at: DateTime<Utc>,
36 pub snapshot_id: Option<i64>,
37 pub mount_path: Option<String>,
38}
39
40#[derive(Debug, sqlx::FromRow, Serialize)]
41pub struct StorageSnapshot {
42 pub id: i64,
43 pub volume_id: i64,
44 pub name: String,
45 pub size_gb: i64,
46 pub created_at: DateTime<Utc>,
47 pub status: String, pub description: Option<String>,
49 pub retention_date: Option<DateTime<Utc>>,
50}
51
52#[derive(Debug, sqlx::FromRow, Serialize)]
53pub struct StorageMigration {
54 pub id: i64,
55 pub source_volume_id: i64,
56 pub destination_volume_id: i64,
57 pub migration_type: String, pub status: String, pub progress_percent: i32,
60 pub started_at: DateTime<Utc>,
61 pub completed_at: Option<DateTime<Utc>>,
62 pub is_online: bool,
63 pub error_message: Option<String>,
64 pub created_by: String,
65}
66
67#[derive(Debug, sqlx::FromRow, Serialize)]
68pub struct StorageQosPolicy {
69 pub id: i64,
70 pub name: String,
71 pub max_iops: Option<i32>,
72 pub max_throughput_mbps: Option<i32>,
73 pub burst_iops: Option<i32>,
74 pub burst_duration_seconds: Option<i32>,
75 pub latency_target_ms: Option<i32>,
76 pub created_at: DateTime<Utc>,
77 pub updated_at: DateTime<Utc>
78}