linode_api/objects/v4/linode_instances/
linode.rs

1use serde::{Deserialize, Serialize};
2use serde_enum_str::{Deserialize_enum_str, Serialize_enum_str};
3use serde_json::{Map, Value};
4
5//
6wrapping_macro::wrapping_int! {
7    #[derive(Deserialize, Serialize, Debug, Clone, Copy)]
8    pub struct LinodeId(pub u64);
9}
10
11//
12#[derive(Deserialize, Serialize, Debug, Clone)]
13pub struct Linode {
14    pub id: LinodeId,
15    pub label: String,
16    pub status: LinodeStatus,
17    #[serde(flatten)]
18    pub _extra: Map<String, Value>,
19}
20
21//
22#[derive(Deserialize_enum_str, Serialize_enum_str, Debug, Clone, PartialEq, Eq)]
23#[serde(rename_all = "snake_case")]
24pub enum LinodeStatus {
25    Running,
26    Offline,
27    Booting,
28    Rebooting,
29    ShuttingDown,
30    Provisioning,
31    Deleting,
32    Migrating,
33    Rebuilding,
34    Cloning,
35    Restoring,
36    Stopped,
37    #[serde(other)]
38    Other(String),
39}