nodesty_api_library/models/
dedicated.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
4pub enum DedicatedServerAction {
5    #[serde(rename = "setPowerOn")]
6    Start,
7    #[serde(rename = "setPowerOff")]
8    Stop,
9    #[serde(rename = "setPowerReset")]
10    Restart,
11}
12
13#[derive(Debug, Serialize, Deserialize)]
14#[serde(rename_all = "camelCase")]
15pub struct DedicatedServerCpuDetails {
16    pub model: String,
17    pub speed: u32,
18    pub turbo_speed: u32,
19    pub cores: u8,
20    pub threads: u8,
21}
22
23#[derive(Debug, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct DedicatedServerDetails {
26    pub dedicated_id: String,
27    pub status: bool,
28    pub available_actions: Vec<DedicatedServerAction>,
29    pub mainboard: String,
30    pub ram: u32,
31    pub disk: u32,
32    pub cpu: DedicatedServerCpuDetails,
33}
34
35#[derive(Debug, Serialize, Deserialize)]
36#[serde(rename_all = "camelCase")]
37pub struct DedicatedServerOsTemplate {
38    pub id: u32,
39    pub name: String,
40}
41
42#[derive(Debug, Serialize, Deserialize)]
43#[serde(rename_all = "camelCase")]
44pub struct DedicatedServerReinstallData {
45    pub password: String,
46    pub os_id: u32,
47}
48
49#[derive(Debug, Serialize, Deserialize)]
50#[serde(rename_all = "camelCase")]
51pub struct DedicatedServerTask {
52    pub action: String,
53    pub started_at: u64,
54    pub updated_at: u64,
55}
56
57#[derive(Debug, Serialize, Deserialize)]
58#[serde(rename_all = "camelCase")]
59pub struct DedicatedServerHardwareComponent {
60    pub component: String,
61    pub model: String,
62    pub value: u32,
63    pub value_suffix: String,
64}
65#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
66#[serde(try_from = "u8")]
67#[serde(into = "u8")]
68#[repr(u8)]
69pub enum DedicatedServerReinstallStep {
70    RebootingServer = 0,
71    PreparingBootEnvironment = 1,
72    InstallingOperatingSystem = 2,
73    InstallationCompleted = 3,
74}
75
76impl TryFrom<u8> for DedicatedServerReinstallStep {
77    type Error = &'static str;
78
79    fn try_from(value: u8) -> Result<Self, Self::Error> {
80        match value {
81            0 => Ok(DedicatedServerReinstallStep::RebootingServer),
82            1 => Ok(DedicatedServerReinstallStep::PreparingBootEnvironment),
83            2 => Ok(DedicatedServerReinstallStep::InstallingOperatingSystem),
84            3 => Ok(DedicatedServerReinstallStep::InstallationCompleted),
85            _ => Err("unknown DedicatedServerReinstallStep data"),
86        }
87    }
88}
89
90impl From<DedicatedServerReinstallStep> for u8 {
91    fn from(step: DedicatedServerReinstallStep) -> Self {
92        step as u8
93    }
94}
95
96#[derive(Debug, Serialize, Deserialize)]
97#[serde(rename_all = "camelCase")]
98pub struct DedicatedServerReinstallStatus {
99    pub completed: bool,
100    pub step: DedicatedServerReinstallStep,
101}