/*
 * 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, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct ConsolePortType {
    #[serde(rename = "value", skip_serializing_if = "Option::is_none")]
    pub value: Option<Value>,
    #[serde(rename = "label", skip_serializing_if = "Option::is_none")]
    pub label: Option<Label>,
}

impl ConsolePortType {
    pub fn new() -> ConsolePortType {
        ConsolePortType {
            value: None,
            label: None,
        }
    }
}

///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Value {
    #[serde(rename = "de-9")]
    De9,
    #[serde(rename = "db-25")]
    Db25,
    #[serde(rename = "rj-11")]
    Rj11,
    #[serde(rename = "rj-12")]
    Rj12,
    #[serde(rename = "rj-45")]
    Rj45,
    #[serde(rename = "mini-din-8")]
    MiniDin8,
    #[serde(rename = "usb-a")]
    UsbA,
    #[serde(rename = "usb-b")]
    UsbB,
    #[serde(rename = "usb-c")]
    UsbC,
    #[serde(rename = "usb-mini-a")]
    UsbMiniA,
    #[serde(rename = "usb-mini-b")]
    UsbMiniB,
    #[serde(rename = "usb-micro-a")]
    UsbMicroA,
    #[serde(rename = "usb-micro-b")]
    UsbMicroB,
    #[serde(rename = "usb-micro-ab")]
    UsbMicroAb,
    #[serde(rename = "other")]
    Other,
}

impl Default for Value {
    fn default() -> Value {
        Self::De9
    }
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Label {
    #[serde(rename = "DE-9")]
    De9,
    #[serde(rename = "DB-25")]
    Db25,
    #[serde(rename = "RJ-11")]
    Rj11,
    #[serde(rename = "RJ-12")]
    Rj12,
    #[serde(rename = "RJ-45")]
    Rj45,
    #[serde(rename = "Mini-DIN 8")]
    MiniDin8,
    #[serde(rename = "USB Type A")]
    UsbTypeA,
    #[serde(rename = "USB Type B")]
    UsbTypeB,
    #[serde(rename = "USB Type C")]
    UsbTypeC,
    #[serde(rename = "USB Mini A")]
    UsbMiniA,
    #[serde(rename = "USB Mini B")]
    UsbMiniB,
    #[serde(rename = "USB Micro A")]
    UsbMicroA,
    #[serde(rename = "USB Micro B")]
    UsbMicroB,
    #[serde(rename = "USB Micro AB")]
    UsbMicroAb,
    #[serde(rename = "Other")]
    Other,
}

impl Default for Label {
    fn default() -> Label {
        Self::De9
    }
}
