/*
 * API Documentation
 *
 * Source of truth and network automation platform
 *
 * The version of the OpenAPI document: 3.1.0 (3.1)
 *
 * Generated by: https://openapi-generator.tech
 */

///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RackTypeChoices {
    #[serde(rename = "2-post-frame")]
    Variant2PostFrame,
    #[serde(rename = "4-post-frame")]
    Variant4PostFrame,
    #[serde(rename = "4-post-cabinet")]
    Variant4PostCabinet,
    #[serde(rename = "wall-frame")]
    WallFrame,
    #[serde(rename = "wall-frame-vertical")]
    WallFrameVertical,
    #[serde(rename = "wall-cabinet")]
    WallCabinet,
    #[serde(rename = "wall-cabinet-vertical")]
    WallCabinetVertical,
    #[serde(rename = "other")]
    Other,
}

impl ToString for RackTypeChoices {
    fn to_string(&self) -> String {
        match self {
            Self::Variant2PostFrame => String::from("2-post-frame"),
            Self::Variant4PostFrame => String::from("4-post-frame"),
            Self::Variant4PostCabinet => String::from("4-post-cabinet"),
            Self::WallFrame => String::from("wall-frame"),
            Self::WallFrameVertical => String::from("wall-frame-vertical"),
            Self::WallCabinet => String::from("wall-cabinet"),
            Self::WallCabinetVertical => String::from("wall-cabinet-vertical"),
            Self::Other => String::from("other"),
        }
    }
}

impl Default for RackTypeChoices {
    fn default() -> RackTypeChoices {
        Self::Variant2PostFrame
    }
}
