/*
 * 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 PowerPanelPanelType {
    #[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 PowerPanelPanelType {
    pub fn new() -> PowerPanelPanelType {
        PowerPanelPanelType {
            value: None,
            label: None,
        }
    }
}

///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Value {
    #[serde(rename = "utility")]
    Utility,
    #[serde(rename = "generator")]
    Generator,
    #[serde(rename = "switchgear")]
    Switchgear,
    #[serde(rename = "mdp")]
    Mdp,
    #[serde(rename = "ups")]
    Ups,
    #[serde(rename = "transfer-switch")]
    TransferSwitch,
    #[serde(rename = "pdu")]
    Pdu,
    #[serde(rename = "panelboard")]
    Panelboard,
    #[serde(rename = "mlc")]
    Mlc,
    #[serde(rename = "rpp")]
    Rpp,
}

impl Default for Value {
    fn default() -> Value {
        Self::Utility
    }
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Label {
    #[serde(rename = "Utility")]
    Utility,
    #[serde(rename = "Generator")]
    Generator,
    #[serde(rename = "Switchgear")]
    Switchgear,
    #[serde(rename = "Main Distribution Panel (MDP)")]
    MainDistributionPanelLeftParenthesisMdpRightParenthesis,
    #[serde(rename = "Uninterruptible Power Supply (UPS)")]
    UninterruptiblePowerSupplyLeftParenthesisUpsRightParenthesis,
    #[serde(rename = "Transfer Switch (TS)")]
    TransferSwitchLeftParenthesisTsRightParenthesis,
    #[serde(rename = "Power Distribution Unit (PDU)")]
    PowerDistributionUnitLeftParenthesisPduRightParenthesis,
    #[serde(rename = "Panelboard")]
    Panelboard,
    #[serde(rename = "Mini Load Center (MLC)")]
    MiniLoadCenterLeftParenthesisMlcRightParenthesis,
    #[serde(rename = "Remote Power Panel (RPP)")]
    RemotePowerPanelLeftParenthesisRppRightParenthesis,
}

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