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

///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Value {
    #[serde(rename = "iec-60320-c6")]
    Iec60320C6,
    #[serde(rename = "iec-60320-c8")]
    Iec60320C8,
    #[serde(rename = "iec-60320-c14")]
    Iec60320C14,
    #[serde(rename = "iec-60320-c16")]
    Iec60320C16,
    #[serde(rename = "iec-60320-c20")]
    Iec60320C20,
    #[serde(rename = "iec-60320-c22")]
    Iec60320C22,
    #[serde(rename = "iec-60309-p-n-e-4h")]
    Iec60309PNE4h,
    #[serde(rename = "iec-60309-p-n-e-6h")]
    Iec60309PNE6h,
    #[serde(rename = "iec-60309-p-n-e-9h")]
    Iec60309PNE9h,
    #[serde(rename = "iec-60309-2p-e-4h")]
    Iec603092pE4h,
    #[serde(rename = "iec-60309-2p-e-6h")]
    Iec603092pE6h,
    #[serde(rename = "iec-60309-2p-e-9h")]
    Iec603092pE9h,
    #[serde(rename = "iec-60309-3p-e-4h")]
    Iec603093pE4h,
    #[serde(rename = "iec-60309-3p-e-6h")]
    Iec603093pE6h,
    #[serde(rename = "iec-60309-3p-e-9h")]
    Iec603093pE9h,
    #[serde(rename = "iec-60309-3p-n-e-4h")]
    Iec603093pNE4h,
    #[serde(rename = "iec-60309-3p-n-e-6h")]
    Iec603093pNE6h,
    #[serde(rename = "iec-60309-3p-n-e-9h")]
    Iec603093pNE9h,
    #[serde(rename = "iec-60906-1")]
    Iec609061,
    #[serde(rename = "nbr-14136-10a")]
    Nbr1413610a,
    #[serde(rename = "nbr-14136-20a")]
    Nbr1413620a,
    #[serde(rename = "nema-1-15p")]
    Nema115p,
    #[serde(rename = "nema-5-15p")]
    Nema515p,
    #[serde(rename = "nema-5-20p")]
    Nema520p,
    #[serde(rename = "nema-5-30p")]
    Nema530p,
    #[serde(rename = "nema-5-50p")]
    Nema550p,
    #[serde(rename = "nema-6-15p")]
    Nema615p,
    #[serde(rename = "nema-6-20p")]
    Nema620p,
    #[serde(rename = "nema-6-30p")]
    Nema630p,
    #[serde(rename = "nema-6-50p")]
    Nema650p,
    #[serde(rename = "nema-10-30p")]
    Nema1030p,
    #[serde(rename = "nema-10-50p")]
    Nema1050p,
    #[serde(rename = "nema-14-20p")]
    Nema1420p,
    #[serde(rename = "nema-14-30p")]
    Nema1430p,
    #[serde(rename = "nema-14-50p")]
    Nema1450p,
    #[serde(rename = "nema-14-60p")]
    Nema1460p,
    #[serde(rename = "nema-15-15p")]
    Nema1515p,
    #[serde(rename = "nema-15-20p")]
    Nema1520p,
    #[serde(rename = "nema-15-30p")]
    Nema1530p,
    #[serde(rename = "nema-15-50p")]
    Nema1550p,
    #[serde(rename = "nema-15-60p")]
    Nema1560p,
    #[serde(rename = "nema-l1-15p")]
    NemaL115p,
    #[serde(rename = "nema-l5-15p")]
    NemaL515p,
    #[serde(rename = "nema-l5-20p")]
    NemaL520p,
    #[serde(rename = "nema-l5-30p")]
    NemaL530p,
    #[serde(rename = "nema-l5-50p")]
    NemaL550p,
    #[serde(rename = "nema-l6-15p")]
    NemaL615p,
    #[serde(rename = "nema-l6-20p")]
    NemaL620p,
    #[serde(rename = "nema-l6-30p")]
    NemaL630p,
    #[serde(rename = "nema-l6-50p")]
    NemaL650p,
    #[serde(rename = "nema-l10-30p")]
    NemaL1030p,
    #[serde(rename = "nema-l14-20p")]
    NemaL1420p,
    #[serde(rename = "nema-l14-30p")]
    NemaL1430p,
    #[serde(rename = "nema-l14-50p")]
    NemaL1450p,
    #[serde(rename = "nema-l14-60p")]
    NemaL1460p,
    #[serde(rename = "nema-l15-20p")]
    NemaL1520p,
    #[serde(rename = "nema-l15-30p")]
    NemaL1530p,
    #[serde(rename = "nema-l15-50p")]
    NemaL1550p,
    #[serde(rename = "nema-l15-60p")]
    NemaL1560p,
    #[serde(rename = "nema-l21-20p")]
    NemaL2120p,
    #[serde(rename = "nema-l21-30p")]
    NemaL2130p,
    #[serde(rename = "nema-l22-30p")]
    NemaL2230p,
    #[serde(rename = "cs6361c")]
    Cs6361c,
    #[serde(rename = "cs6365c")]
    Cs6365c,
    #[serde(rename = "cs8165c")]
    Cs8165c,
    #[serde(rename = "cs8265c")]
    Cs8265c,
    #[serde(rename = "cs8365c")]
    Cs8365c,
    #[serde(rename = "cs8465c")]
    Cs8465c,
    #[serde(rename = "ita-c")]
    ItaC,
    #[serde(rename = "ita-e")]
    ItaE,
    #[serde(rename = "ita-f")]
    ItaF,
    #[serde(rename = "ita-ef")]
    ItaEf,
    #[serde(rename = "ita-g")]
    ItaG,
    #[serde(rename = "ita-h")]
    ItaH,
    #[serde(rename = "ita-i")]
    ItaI,
    #[serde(rename = "ita-j")]
    ItaJ,
    #[serde(rename = "ita-k")]
    ItaK,
    #[serde(rename = "ita-l")]
    ItaL,
    #[serde(rename = "ita-m")]
    ItaM,
    #[serde(rename = "ita-n")]
    ItaN,
    #[serde(rename = "ita-o")]
    ItaO,
    #[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 = "usb-3-b")]
    Usb3B,
    #[serde(rename = "usb-3-micro-b")]
    Usb3MicroB,
    #[serde(rename = "dc-terminal")]
    DcTerminal,
    #[serde(rename = "saf-d-grid")]
    SafDGrid,
    #[serde(rename = "neutrik-powercon-20")]
    NeutrikPowercon20,
    #[serde(rename = "neutrik-powercon-32")]
    NeutrikPowercon32,
    #[serde(rename = "neutrik-powercon-true1")]
    NeutrikPowerconTrue1,
    #[serde(rename = "neutrik-powercon-true1-top")]
    NeutrikPowerconTrue1Top,
    #[serde(rename = "ubiquiti-smartpower")]
    UbiquitiSmartpower,
    #[serde(rename = "hardwired")]
    Hardwired,
    #[serde(rename = "other")]
    Other,
}

impl Default for Value {
    fn default() -> Value {
        Self::Iec60320C6
    }
}
///
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Label {
    #[serde(rename = "C6")]
    C6,
    #[serde(rename = "C8")]
    C8,
    #[serde(rename = "C14")]
    C14,
    #[serde(rename = "C16")]
    C16,
    #[serde(rename = "C20")]
    C20,
    #[serde(rename = "C22")]
    C22,
    #[serde(rename = "P+N+E 4H")]
    PPlusNPlusE4H,
    #[serde(rename = "P+N+E 6H")]
    PPlusNPlusE6H,
    #[serde(rename = "P+N+E 9H")]
    PPlusNPlusE9H,
    #[serde(rename = "2P+E 4H")]
    Variant2PPlusE4H,
    #[serde(rename = "2P+E 6H")]
    Variant2PPlusE6H,
    #[serde(rename = "2P+E 9H")]
    Variant2PPlusE9H,
    #[serde(rename = "3P+E 4H")]
    Variant3PPlusE4H,
    #[serde(rename = "3P+E 6H")]
    Variant3PPlusE6H,
    #[serde(rename = "3P+E 9H")]
    Variant3PPlusE9H,
    #[serde(rename = "3P+N+E 4H")]
    Variant3PPlusNPlusE4H,
    #[serde(rename = "3P+N+E 6H")]
    Variant3PPlusNPlusE6H,
    #[serde(rename = "3P+N+E 9H")]
    Variant3PPlusNPlusE9H,
    #[serde(rename = "IEC 60906-1")]
    Iec609061,
    #[serde(rename = "2P+T 10A (NBR 14136)")]
    Variant2PPlusT10ALeftParenthesisNbr14136RightParenthesis,
    #[serde(rename = "2P+T 20A (NBR 14136)")]
    Variant2PPlusT20ALeftParenthesisNbr14136RightParenthesis,
    #[serde(rename = "NEMA 1-15P")]
    Nema115P,
    #[serde(rename = "NEMA 5-15P")]
    Nema515P,
    #[serde(rename = "NEMA 5-20P")]
    Nema520P,
    #[serde(rename = "NEMA 5-30P")]
    Nema530P,
    #[serde(rename = "NEMA 5-50P")]
    Nema550P,
    #[serde(rename = "NEMA 6-15P")]
    Nema615P,
    #[serde(rename = "NEMA 6-20P")]
    Nema620P,
    #[serde(rename = "NEMA 6-30P")]
    Nema630P,
    #[serde(rename = "NEMA 6-50P")]
    Nema650P,
    #[serde(rename = "NEMA 10-30P")]
    Nema1030P,
    #[serde(rename = "NEMA 10-50P")]
    Nema1050P,
    #[serde(rename = "NEMA 14-20P")]
    Nema1420P,
    #[serde(rename = "NEMA 14-30P")]
    Nema1430P,
    #[serde(rename = "NEMA 14-50P")]
    Nema1450P,
    #[serde(rename = "NEMA 14-60P")]
    Nema1460P,
    #[serde(rename = "NEMA 15-15P")]
    Nema1515P,
    #[serde(rename = "NEMA 15-20P")]
    Nema1520P,
    #[serde(rename = "NEMA 15-30P")]
    Nema1530P,
    #[serde(rename = "NEMA 15-50P")]
    Nema1550P,
    #[serde(rename = "NEMA 15-60P")]
    Nema1560P,
    #[serde(rename = "NEMA L1-15P")]
    NemaL115P,
    #[serde(rename = "NEMA L5-15P")]
    NemaL515P,
    #[serde(rename = "NEMA L5-20P")]
    NemaL520P,
    #[serde(rename = "NEMA L5-30P")]
    NemaL530P,
    #[serde(rename = "NEMA L5-50P")]
    NemaL550P,
    #[serde(rename = "NEMA L6-15P")]
    NemaL615P,
    #[serde(rename = "NEMA L6-20P")]
    NemaL620P,
    #[serde(rename = "NEMA L6-30P")]
    NemaL630P,
    #[serde(rename = "NEMA L6-50P")]
    NemaL650P,
    #[serde(rename = "NEMA L10-30P")]
    NemaL1030P,
    #[serde(rename = "NEMA L14-20P")]
    NemaL1420P,
    #[serde(rename = "NEMA L14-30P")]
    NemaL1430P,
    #[serde(rename = "NEMA L14-50P")]
    NemaL1450P,
    #[serde(rename = "NEMA L14-60P")]
    NemaL1460P,
    #[serde(rename = "NEMA L15-20P")]
    NemaL1520P,
    #[serde(rename = "NEMA L15-30P")]
    NemaL1530P,
    #[serde(rename = "NEMA L15-50P")]
    NemaL1550P,
    #[serde(rename = "NEMA L15-60P")]
    NemaL1560P,
    #[serde(rename = "NEMA L21-20P")]
    NemaL2120P,
    #[serde(rename = "NEMA L21-30P")]
    NemaL2130P,
    #[serde(rename = "NEMA L22-30P")]
    NemaL2230P,
    #[serde(rename = "CS6361C")]
    Cs6361C,
    #[serde(rename = "CS6365C")]
    Cs6365C,
    #[serde(rename = "CS8165C")]
    Cs8165C,
    #[serde(rename = "CS8265C")]
    Cs8265C,
    #[serde(rename = "CS8365C")]
    Cs8365C,
    #[serde(rename = "CS8465C")]
    Cs8465C,
    #[serde(rename = "ITA Type C (CEE 7/16)")]
    ItaTypeCLeftParenthesisCee7Slash16RightParenthesis,
    #[serde(rename = "ITA Type E (CEE 7/6)")]
    ItaTypeELeftParenthesisCee7Slash6RightParenthesis,
    #[serde(rename = "ITA Type F (CEE 7/4)")]
    ItaTypeFLeftParenthesisCee7Slash4RightParenthesis,
    #[serde(rename = "ITA Type E/F (CEE 7/7)")]
    ItaTypeESlashFLeftParenthesisCee7Slash7RightParenthesis,
    #[serde(rename = "ITA Type G (BS 1363)")]
    ItaTypeGLeftParenthesisBs1363RightParenthesis,
    #[serde(rename = "ITA Type H")]
    ItaTypeH,
    #[serde(rename = "ITA Type I")]
    ItaTypeI,
    #[serde(rename = "ITA Type J")]
    ItaTypeJ,
    #[serde(rename = "ITA Type K")]
    ItaTypeK,
    #[serde(rename = "ITA Type L (CEI 23-50)")]
    ItaTypeLLeftParenthesisCei2350RightParenthesis,
    #[serde(rename = "ITA Type M (BS 546)")]
    ItaTypeMLeftParenthesisBs546RightParenthesis,
    #[serde(rename = "ITA Type N")]
    ItaTypeN,
    #[serde(rename = "ITA Type O")]
    ItaTypeO,
    #[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 = "USB 3.0 Type B")]
    Usb3Period0TypeB,
    #[serde(rename = "USB 3.0 Micro B")]
    Usb3Period0MicroB,
    #[serde(rename = "DC Terminal")]
    DcTerminal,
    #[serde(rename = "Saf-D-Grid")]
    SafDGrid,
    #[serde(rename = "Neutrik powerCON (20A)")]
    NeutrikPowerConLeftParenthesis20ARightParenthesis,
    #[serde(rename = "Neutrik powerCON (32A)")]
    NeutrikPowerConLeftParenthesis32ARightParenthesis,
    #[serde(rename = "Neutrik powerCON TRUE1")]
    NeutrikPowerConTrue1,
    #[serde(rename = "Neutrik powerCON TRUE1 TOP")]
    NeutrikPowerConTrue1Top,
    #[serde(rename = "Ubiquiti SmartPower")]
    UbiquitiSmartPower,
    #[serde(rename = "Hardwired")]
    Hardwired,
    #[serde(rename = "Other")]
    Other,
}

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