diff --git a/bin/core/src/cloud/hetzner/common.rs b/bin/core/src/cloud/hetzner/common.rs index 93627059c..442bae85c 100644 --- a/bin/core/src/cloud/hetzner/common.rs +++ b/bin/core/src/cloud/hetzner/common.rs @@ -10,13 +10,14 @@ pub struct HetznerServerResponse { #[derive(Debug, Clone, Deserialize)] pub struct HetznerServer { pub id: i64, - pub image: HetznerImage, pub name: String, pub primary_disk_size: f64, + pub image: Option, pub private_net: Vec, pub public_net: HetznerPublicNet, pub server_type: HetznerServerTypeDetails, pub status: HetznerServerStatus, + #[serde(default)] pub volumes: Vec, } @@ -42,6 +43,7 @@ pub struct HetznerPrivateNet { #[derive(Debug, Clone, Deserialize)] pub struct HetznerPublicNet { + #[serde(default)] pub firewalls: Vec, pub floating_ips: Vec, pub ipv4: Option, @@ -55,7 +57,7 @@ pub struct HetznerFirewall { #[derive(Debug, Clone, Deserialize)] pub struct HetznerIpv4 { - pub id: i64, + pub id: Option, pub blocked: bool, pub dns_ptr: String, pub ip: String, @@ -63,11 +65,12 @@ pub struct HetznerIpv4 { #[derive(Debug, Clone, Deserialize)] pub struct HetznerImage { + pub id: i64, pub description: String, - pub name: String, + pub name: Option, pub os_flavor: String, - pub os_version: String, - pub rapid_deploy: bool, + pub os_version: Option, + pub rapid_deploy: Option, } #[derive(Debug, Clone, Deserialize)] @@ -84,7 +87,7 @@ pub struct HetznerAction { pub progress: i32, pub resources: Vec, pub started: String, - pub status: String, + pub status: HetznerActionStatus, } #[derive(Debug, Clone, Deserialize)] @@ -217,6 +220,14 @@ pub enum HetznerServerStatus { Unknown, } +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum HetznerActionStatus { + Running, + Success, + Error, +} + #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "UPPERCASE")] #[allow(clippy::enum_variant_names)]