scaleway-rs 0.2.8

A pure Rust scaleway API binding.
Documentation
use serde::Deserialize;

#[derive(Debug, Clone, Copy)]
pub enum LocalImageType {
    UnknownType,
    InstanceLocal,
    InstanceSbs,
}

impl std::fmt::Display for LocalImageType {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            LocalImageType::UnknownType => write!(f, "unknown_type"),
            LocalImageType::InstanceLocal => write!(f, "instance_local"),
            LocalImageType::InstanceSbs => write!(f, "instance_sbs"),
        }
    }
}

#[derive(Debug, Clone, Copy)]
pub enum MarketplaceLocalImageOrderBy {
    CreatedAtAsc,
    CreatedAtDesc,
}

impl std::fmt::Display for MarketplaceLocalImageOrderBy {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            MarketplaceLocalImageOrderBy::CreatedAtAsc => write!(f, "created_at_asc"),
            MarketplaceLocalImageOrderBy::CreatedAtDesc => write!(f, "created_at_desc"),
        }
    }
}

#[derive(Deserialize, Debug)]
pub struct ScalewayMarketplaceLocalImagesRoot {
    pub local_images: Vec<ScalewayMarketplaceLocalImage>,
    pub total_count: u64,
}

#[derive(Deserialize, Debug)]
pub struct ScalewayMarketplaceLocalImage {
    pub id: String,
    pub compatible_commercial_types: Vec<String>,
    pub arch: String,
    pub zone: String,
    pub label: String,
    #[serde(rename = "type")]
    pub itype: String,
}