nodesty_api_library/models/
vps.rs1use serde::{Deserialize, Serialize};
2use std::collections::HashMap;
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5pub enum VpsAction {
6 #[serde(rename = "start")]
7 Start,
8 #[serde(rename = "stop")]
9 Stop,
10 #[serde(rename = "restart")]
11 Restart,
12 #[serde(rename = "poweroff")]
13 PowerOff,
14}
15
16#[derive(Debug, Serialize, Deserialize)]
17#[serde(rename_all = "camelCase")]
18pub struct VpsBackup {
19 pub date: String,
20 pub file: String,
21 pub created_at: u64,
22}
23
24#[derive(Debug, Serialize, Deserialize)]
25#[serde(rename_all = "camelCase")]
26pub struct VpsChangePasswordData {
27 pub username: String,
28 pub password: String,
29}
30
31#[derive(Debug, Serialize, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct VpsCpuDetails {
34 pub manu: String,
35 pub limit: u32,
36 pub used: u32,
37 pub free: u32,
38 pub percent: f64,
39 pub cores: u8,
40}
41
42#[derive(Debug, Serialize, Deserialize)]
43#[serde(rename_all = "camelCase")]
44pub struct VpsRamDetails {
45 pub limit: u64,
46 pub used: u64,
47 pub free: u64,
48 pub percent: u32,
49}
50
51#[derive(Debug, Serialize, Deserialize)]
52#[serde(rename_all = "camelCase")]
53pub struct VpsInodeDetails {
54 pub limit: u64,
55 pub used: u64,
56 pub free: u64,
57 pub percent: u32,
58}
59#[derive(Debug, Serialize, Deserialize)]
60#[serde(rename_all = "camelCase")]
61pub struct VpsNetworkSpeedDetails {
62 #[serde(rename = "in")]
63 pub network_in: u32,
64 pub out: u32,
65}
66
67#[derive(Debug, Serialize, Deserialize)]
68#[serde(rename_all = "camelCase")]
69pub struct VpsBandwidthOverall {
70 pub usage: u64,
71 #[serde(rename = "in")]
72 pub bandwidth_in: u64,
73 pub out: u64,
74}
75
76#[derive(Debug, Serialize, Deserialize)]
77#[serde(rename_all = "camelCase")]
78pub struct VpsBandwidthGraphPoint {
79 pub usage: u64,
80 #[serde(rename = "in")]
81 pub bandwidth_in: u64,
82 pub out: u64,
83}
84
85#[derive(Debug, Serialize, Deserialize)]
86#[serde(rename_all = "camelCase")]
87pub struct VpsVncDetails {
88 pub enabled: bool,
89 pub ip: String,
90 pub port: String,
91 pub password: String,
92}
93
94#[derive(Debug, Serialize, Deserialize)]
95#[serde(rename_all = "camelCase")]
96pub struct VpsOsInfo {
97 pub name: String,
98 pub distro: String,
99}
100
101#[derive(Debug, Serialize, Deserialize)]
102#[serde(rename_all = "camelCase")]
103pub struct VpsDiskDetails {
104 pub limit: u64,
105 pub used: u64,
106 pub free: u64,
107 pub percent: u32,
108}
109
110#[derive(Debug, Serialize, Deserialize)]
111#[serde(rename_all = "camelCase")]
112pub struct VpsDetails {
113 pub vps_id: u32,
114 pub proxmox_id: u32,
115 pub hostname: String,
116 pub os_reinstall_limit: u32,
117 pub status: bool,
118 pub vnc: VpsVncDetails,
119 pub os: VpsOsInfo,
120 pub disk: VpsDiskDetails,
121 pub ips: Vec<String>,
122 pub cpu: VpsCpuDetails,
123 pub ram: VpsRamDetails,
124 pub inode: VpsInodeDetails,
125 pub netspeed: VpsNetworkSpeedDetails,
126 pub bandwidth: VpsBandwidthInfo,
127}
128
129#[derive(Debug, Serialize, Deserialize)]
130#[serde(rename_all = "camelCase")]
131pub struct VpsBandwidthInfo {
132 pub total: VpsBandwidthOverall,
133 pub usage: Vec<u64>,
134 #[serde(rename = "in")]
135 pub bandwidth_in: Vec<u64>,
136 pub out: Vec<u64>,
137 pub categories: Vec<String>,
138}
139
140#[derive(Debug, Serialize, Deserialize)]
141#[serde(rename_all = "camelCase")]
142pub struct VpsGraphs {
143 pub avg_download: u64,
144 pub avg_upload: u64,
145 pub avg_io_read: u64,
146 pub avg_io_write: u64,
147 pub cpu_usage: HashMap<String, f64>,
148 pub inode_usage: HashMap<String, u64>,
149 pub ram_usage: HashMap<String, u64>,
150 pub disk_usage: HashMap<String, u64>,
151 pub io_speed: VpsIoSpeed,
152 pub network_speed: VpsNetworkSpeedGraph,
153}
154
155#[derive(Debug, Serialize, Deserialize)]
156#[serde(rename_all = "camelCase")]
157pub struct VpsIoSpeed {
158 pub read: Vec<u64>,
159 pub write: Vec<u64>,
160 pub categories: Vec<u64>,
161}
162
163#[derive(Debug, Serialize, Deserialize)]
164#[serde(rename_all = "camelCase")]
165pub struct VpsNetworkSpeedGraph {
166 pub download: Vec<u64>,
167 pub upload: Vec<u64>,
168 pub categories: Vec<u64>,
169}
170
171#[derive(Debug, Serialize, Deserialize)]
172#[serde(rename_all = "camelCase")]
173pub struct VpsOsTemplate {
174 pub id: u32,
175 pub name: String,
176}
177
178#[derive(Debug, Serialize, Deserialize)]
179#[serde(rename_all = "camelCase")]
180pub struct VpsReinstallData {
181 pub password: String,
182 pub os_id: u32,
183}
184
185#[derive(Debug, Serialize, Deserialize)]
186#[serde(rename_all = "camelCase")]
187pub struct VpsTask {
188 pub action: String,
189 pub progress: String,
190 pub started_at: u64,
191 pub ended_at: u64,
192}