/*
 * 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 InterfaceTypeChoices {
    #[serde(rename = "virtual")]
    Virtual,
    #[serde(rename = "bridge")]
    Bridge,
    #[serde(rename = "lag")]
    Lag,
    #[serde(rename = "tunnel")]
    Tunnel,
    #[serde(rename = "100base-fx")]
    Variant100baseFx,
    #[serde(rename = "100base-lfx")]
    Variant100baseLfx,
    #[serde(rename = "100base-tx")]
    Variant100baseTx,
    #[serde(rename = "100base-t1")]
    Variant100baseT1,
    #[serde(rename = "1000base-t")]
    Variant1000baseT,
    #[serde(rename = "2.5gbase-t")]
    Variant2Period5gbaseT,
    #[serde(rename = "5gbase-t")]
    Variant5gbaseT,
    #[serde(rename = "10gbase-t")]
    Variant10gbaseT,
    #[serde(rename = "10gbase-cx4")]
    Variant10gbaseCx4,
    #[serde(rename = "1000base-x-gbic")]
    Variant1000baseXGbic,
    #[serde(rename = "1000base-x-sfp")]
    Variant1000baseXSfp,
    #[serde(rename = "10gbase-x-sfpp")]
    Variant10gbaseXSfpp,
    #[serde(rename = "10gbase-x-xfp")]
    Variant10gbaseXXfp,
    #[serde(rename = "10gbase-x-xenpak")]
    Variant10gbaseXXenpak,
    #[serde(rename = "10gbase-x-x2")]
    Variant10gbaseXx2,
    #[serde(rename = "25gbase-x-sfp28")]
    Variant25gbaseXSfp28,
    #[serde(rename = "50gbase-x-sfp56")]
    Variant50gbaseXSfp56,
    #[serde(rename = "40gbase-x-qsfpp")]
    Variant40gbaseXQsfpp,
    #[serde(rename = "50gbase-x-sfp28")]
    Variant50gbaseXSfp28,
    #[serde(rename = "100gbase-x-cfp")]
    Variant100gbaseXCfp,
    #[serde(rename = "100gbase-x-cfp2")]
    Variant100gbaseXCfp2,
    #[serde(rename = "200gbase-x-cfp2")]
    Variant200gbaseXCfp2,
    #[serde(rename = "400gbase-x-cfp2")]
    Variant400gbaseXCfp2,
    #[serde(rename = "100gbase-x-cfp4")]
    Variant100gbaseXCfp4,
    #[serde(rename = "100gbase-x-cpak")]
    Variant100gbaseXCpak,
    #[serde(rename = "100gbase-x-qsfp28")]
    Variant100gbaseXQsfp28,
    #[serde(rename = "100gbase-x-cxp")]
    Variant100gbaseXCxp,
    #[serde(rename = "100gbase-x-qsfpdd")]
    Variant100gbaseXQsfpdd,
    #[serde(rename = "100gbase-x-dsfp")]
    Variant100gbaseXDsfp,
    #[serde(rename = "100gbase-x-sfpdd")]
    Variant100gbaseXSfpdd,
    #[serde(rename = "200gbase-x-qsfp56")]
    Variant200gbaseXQsfp56,
    #[serde(rename = "200gbase-x-qsfpdd")]
    Variant200gbaseXQsfpdd,
    #[serde(rename = "400gbase-x-qsfp112")]
    Variant400gbaseXQsfp112,
    #[serde(rename = "400gbase-x-qsfpdd")]
    Variant400gbaseXQsfpdd,
    #[serde(rename = "400gbase-x-osfp")]
    Variant400gbaseXOsfp,
    #[serde(rename = "400gbase-x-osfp-rhs")]
    Variant400gbaseXOsfpRhs,
    #[serde(rename = "400gbase-x-cdfp")]
    Variant400gbaseXCdfp,
    #[serde(rename = "400gbase-x-cfp8")]
    Variant400gbaseXCfp8,
    #[serde(rename = "800gbase-x-qsfpdd")]
    Variant800gbaseXQsfpdd,
    #[serde(rename = "800gbase-x-osfp")]
    Variant800gbaseXOsfp,
    #[serde(rename = "800gbase-x-osfp-xd")]
    Variant800gbaseXOsfpXd,
    #[serde(rename = "1600gbase-x-osfp")]
    Variant1600gbaseXOsfp,
    #[serde(rename = "1600gbase-x-osfp-xd")]
    Variant1600gbaseXOsfpXd,
    #[serde(rename = "1000base-kx")]
    Variant1000baseKx,
    #[serde(rename = "10gbase-kr")]
    Variant10gbaseKr,
    #[serde(rename = "10gbase-kx4")]
    Variant10gbaseKx4,
    #[serde(rename = "25gbase-kr")]
    Variant25gbaseKr,
    #[serde(rename = "40gbase-kr4")]
    Variant40gbaseKr4,
    #[serde(rename = "50gbase-kr")]
    Variant50gbaseKr,
    #[serde(rename = "100gbase-kp4")]
    Variant100gbaseKp4,
    #[serde(rename = "100gbase-kr2")]
    Variant100gbaseKr2,
    #[serde(rename = "100gbase-kr4")]
    Variant100gbaseKr4,
    #[serde(rename = "ieee802.11a")]
    Ieee802Period11a,
    #[serde(rename = "ieee802.11g")]
    Ieee802Period11g,
    #[serde(rename = "ieee802.11n")]
    Ieee802Period11n,
    #[serde(rename = "ieee802.11ac")]
    Ieee802Period11ac,
    #[serde(rename = "ieee802.11ad")]
    Ieee802Period11ad,
    #[serde(rename = "ieee802.11ax")]
    Ieee802Period11ax,
    #[serde(rename = "ieee802.11ay")]
    Ieee802Period11ay,
    #[serde(rename = "ieee802.15.1")]
    Ieee802Period15Period1,
    #[serde(rename = "other-wireless")]
    OtherWireless,
    #[serde(rename = "gsm")]
    Gsm,
    #[serde(rename = "cdma")]
    Cdma,
    #[serde(rename = "lte")]
    Lte,
    #[serde(rename = "sonet-oc3")]
    SonetOc3,
    #[serde(rename = "sonet-oc12")]
    SonetOc12,
    #[serde(rename = "sonet-oc48")]
    SonetOc48,
    #[serde(rename = "sonet-oc192")]
    SonetOc192,
    #[serde(rename = "sonet-oc768")]
    SonetOc768,
    #[serde(rename = "sonet-oc1920")]
    SonetOc1920,
    #[serde(rename = "sonet-oc3840")]
    SonetOc3840,
    #[serde(rename = "1gfc-sfp")]
    Variant1gfcSfp,
    #[serde(rename = "2gfc-sfp")]
    Variant2gfcSfp,
    #[serde(rename = "4gfc-sfp")]
    Variant4gfcSfp,
    #[serde(rename = "8gfc-sfpp")]
    Variant8gfcSfpp,
    #[serde(rename = "16gfc-sfpp")]
    Variant16gfcSfpp,
    #[serde(rename = "32gfc-sfp28")]
    Variant32gfcSfp28,
    #[serde(rename = "32gfc-sfpp")]
    Variant32gfcSfpp,
    #[serde(rename = "64gfc-qsfpp")]
    Variant64gfcQsfpp,
    #[serde(rename = "64gfc-sfpdd")]
    Variant64gfcSfpdd,
    #[serde(rename = "64gfc-sfpp")]
    Variant64gfcSfpp,
    #[serde(rename = "128gfc-sfp28")]
    Variant128gfcSfp28,
    #[serde(rename = "infiniband-sdr")]
    InfinibandSdr,
    #[serde(rename = "infiniband-ddr")]
    InfinibandDdr,
    #[serde(rename = "infiniband-qdr")]
    InfinibandQdr,
    #[serde(rename = "infiniband-fdr10")]
    InfinibandFdr10,
    #[serde(rename = "infiniband-fdr")]
    InfinibandFdr,
    #[serde(rename = "infiniband-edr")]
    InfinibandEdr,
    #[serde(rename = "infiniband-hdr")]
    InfinibandHdr,
    #[serde(rename = "infiniband-ndr")]
    InfinibandNdr,
    #[serde(rename = "infiniband-xdr")]
    InfinibandXdr,
    #[serde(rename = "t1")]
    T1,
    #[serde(rename = "e1")]
    E1,
    #[serde(rename = "t3")]
    T3,
    #[serde(rename = "e3")]
    E3,
    #[serde(rename = "da15")]
    Da15,
    #[serde(rename = "da26")]
    Da26,
    #[serde(rename = "da31")]
    Da31,
    #[serde(rename = "db25")]
    Db25,
    #[serde(rename = "db44")]
    Db44,
    #[serde(rename = "db60")]
    Db60,
    #[serde(rename = "dc37")]
    Dc37,
    #[serde(rename = "dc62")]
    Dc62,
    #[serde(rename = "dc79")]
    Dc79,
    #[serde(rename = "dd50")]
    Dd50,
    #[serde(rename = "dd78")]
    Dd78,
    #[serde(rename = "dd100")]
    Dd100,
    #[serde(rename = "de9")]
    De9,
    #[serde(rename = "de15")]
    De15,
    #[serde(rename = "de19")]
    De19,
    #[serde(rename = "df104")]
    Df104,
    #[serde(rename = "xdsl")]
    Xdsl,
    #[serde(rename = "docsis")]
    Docsis,
    #[serde(rename = "gpon")]
    Gpon,
    #[serde(rename = "xg-pon")]
    XgPon,
    #[serde(rename = "xgs-pon")]
    XgsPon,
    #[serde(rename = "ng-pon2")]
    NgPon2,
    #[serde(rename = "epon")]
    Epon,
    #[serde(rename = "10g-epon")]
    Variant10gEpon,
    #[serde(rename = "cisco-stackwise")]
    CiscoStackwise,
    #[serde(rename = "cisco-stackwise-plus")]
    CiscoStackwisePlus,
    #[serde(rename = "cisco-flexstack")]
    CiscoFlexstack,
    #[serde(rename = "cisco-flexstack-plus")]
    CiscoFlexstackPlus,
    #[serde(rename = "cisco-stackwise-80")]
    CiscoStackwise80,
    #[serde(rename = "cisco-stackwise-160")]
    CiscoStackwise160,
    #[serde(rename = "cisco-stackwise-320")]
    CiscoStackwise320,
    #[serde(rename = "cisco-stackwise-480")]
    CiscoStackwise480,
    #[serde(rename = "cisco-stackwise-1t")]
    CiscoStackwise1t,
    #[serde(rename = "juniper-vcp")]
    JuniperVcp,
    #[serde(rename = "extreme-summitstack")]
    ExtremeSummitstack,
    #[serde(rename = "extreme-summitstack-128")]
    ExtremeSummitstack128,
    #[serde(rename = "extreme-summitstack-256")]
    ExtremeSummitstack256,
    #[serde(rename = "extreme-summitstack-512")]
    ExtremeSummitstack512,
    #[serde(rename = "other")]
    Other,
}

impl ToString for InterfaceTypeChoices {
    fn to_string(&self) -> String {
        match self {
            Self::Virtual => String::from("virtual"),
            Self::Bridge => String::from("bridge"),
            Self::Lag => String::from("lag"),
            Self::Tunnel => String::from("tunnel"),
            Self::Variant100baseFx => String::from("100base-fx"),
            Self::Variant100baseLfx => String::from("100base-lfx"),
            Self::Variant100baseTx => String::from("100base-tx"),
            Self::Variant100baseT1 => String::from("100base-t1"),
            Self::Variant1000baseT => String::from("1000base-t"),
            Self::Variant2Period5gbaseT => String::from("2.5gbase-t"),
            Self::Variant5gbaseT => String::from("5gbase-t"),
            Self::Variant10gbaseT => String::from("10gbase-t"),
            Self::Variant10gbaseCx4 => String::from("10gbase-cx4"),
            Self::Variant1000baseXGbic => String::from("1000base-x-gbic"),
            Self::Variant1000baseXSfp => String::from("1000base-x-sfp"),
            Self::Variant10gbaseXSfpp => String::from("10gbase-x-sfpp"),
            Self::Variant10gbaseXXfp => String::from("10gbase-x-xfp"),
            Self::Variant10gbaseXXenpak => String::from("10gbase-x-xenpak"),
            Self::Variant10gbaseXx2 => String::from("10gbase-x-x2"),
            Self::Variant25gbaseXSfp28 => String::from("25gbase-x-sfp28"),
            Self::Variant50gbaseXSfp56 => String::from("50gbase-x-sfp56"),
            Self::Variant40gbaseXQsfpp => String::from("40gbase-x-qsfpp"),
            Self::Variant50gbaseXSfp28 => String::from("50gbase-x-sfp28"),
            Self::Variant100gbaseXCfp => String::from("100gbase-x-cfp"),
            Self::Variant100gbaseXCfp2 => String::from("100gbase-x-cfp2"),
            Self::Variant200gbaseXCfp2 => String::from("200gbase-x-cfp2"),
            Self::Variant400gbaseXCfp2 => String::from("400gbase-x-cfp2"),
            Self::Variant100gbaseXCfp4 => String::from("100gbase-x-cfp4"),
            Self::Variant100gbaseXCpak => String::from("100gbase-x-cpak"),
            Self::Variant100gbaseXQsfp28 => String::from("100gbase-x-qsfp28"),
            Self::Variant100gbaseXCxp => String::from("100gbase-x-cxp"),
            Self::Variant100gbaseXQsfpdd => String::from("100gbase-x-qsfpdd"),
            Self::Variant100gbaseXDsfp => String::from("100gbase-x-dsfp"),
            Self::Variant100gbaseXSfpdd => String::from("100gbase-x-sfpdd"),
            Self::Variant200gbaseXQsfp56 => String::from("200gbase-x-qsfp56"),
            Self::Variant200gbaseXQsfpdd => String::from("200gbase-x-qsfpdd"),
            Self::Variant400gbaseXQsfp112 => String::from("400gbase-x-qsfp112"),
            Self::Variant400gbaseXQsfpdd => String::from("400gbase-x-qsfpdd"),
            Self::Variant400gbaseXOsfp => String::from("400gbase-x-osfp"),
            Self::Variant400gbaseXOsfpRhs => String::from("400gbase-x-osfp-rhs"),
            Self::Variant400gbaseXCdfp => String::from("400gbase-x-cdfp"),
            Self::Variant400gbaseXCfp8 => String::from("400gbase-x-cfp8"),
            Self::Variant800gbaseXQsfpdd => String::from("800gbase-x-qsfpdd"),
            Self::Variant800gbaseXOsfp => String::from("800gbase-x-osfp"),
            Self::Variant800gbaseXOsfpXd => String::from("800gbase-x-osfp-xd"),
            Self::Variant1600gbaseXOsfp => String::from("1600gbase-x-osfp"),
            Self::Variant1600gbaseXOsfpXd => String::from("1600gbase-x-osfp-xd"),
            Self::Variant1000baseKx => String::from("1000base-kx"),
            Self::Variant10gbaseKr => String::from("10gbase-kr"),
            Self::Variant10gbaseKx4 => String::from("10gbase-kx4"),
            Self::Variant25gbaseKr => String::from("25gbase-kr"),
            Self::Variant40gbaseKr4 => String::from("40gbase-kr4"),
            Self::Variant50gbaseKr => String::from("50gbase-kr"),
            Self::Variant100gbaseKp4 => String::from("100gbase-kp4"),
            Self::Variant100gbaseKr2 => String::from("100gbase-kr2"),
            Self::Variant100gbaseKr4 => String::from("100gbase-kr4"),
            Self::Ieee802Period11a => String::from("ieee802.11a"),
            Self::Ieee802Period11g => String::from("ieee802.11g"),
            Self::Ieee802Period11n => String::from("ieee802.11n"),
            Self::Ieee802Period11ac => String::from("ieee802.11ac"),
            Self::Ieee802Period11ad => String::from("ieee802.11ad"),
            Self::Ieee802Period11ax => String::from("ieee802.11ax"),
            Self::Ieee802Period11ay => String::from("ieee802.11ay"),
            Self::Ieee802Period15Period1 => String::from("ieee802.15.1"),
            Self::OtherWireless => String::from("other-wireless"),
            Self::Gsm => String::from("gsm"),
            Self::Cdma => String::from("cdma"),
            Self::Lte => String::from("lte"),
            Self::SonetOc3 => String::from("sonet-oc3"),
            Self::SonetOc12 => String::from("sonet-oc12"),
            Self::SonetOc48 => String::from("sonet-oc48"),
            Self::SonetOc192 => String::from("sonet-oc192"),
            Self::SonetOc768 => String::from("sonet-oc768"),
            Self::SonetOc1920 => String::from("sonet-oc1920"),
            Self::SonetOc3840 => String::from("sonet-oc3840"),
            Self::Variant1gfcSfp => String::from("1gfc-sfp"),
            Self::Variant2gfcSfp => String::from("2gfc-sfp"),
            Self::Variant4gfcSfp => String::from("4gfc-sfp"),
            Self::Variant8gfcSfpp => String::from("8gfc-sfpp"),
            Self::Variant16gfcSfpp => String::from("16gfc-sfpp"),
            Self::Variant32gfcSfp28 => String::from("32gfc-sfp28"),
            Self::Variant32gfcSfpp => String::from("32gfc-sfpp"),
            Self::Variant64gfcQsfpp => String::from("64gfc-qsfpp"),
            Self::Variant64gfcSfpdd => String::from("64gfc-sfpdd"),
            Self::Variant64gfcSfpp => String::from("64gfc-sfpp"),
            Self::Variant128gfcSfp28 => String::from("128gfc-sfp28"),
            Self::InfinibandSdr => String::from("infiniband-sdr"),
            Self::InfinibandDdr => String::from("infiniband-ddr"),
            Self::InfinibandQdr => String::from("infiniband-qdr"),
            Self::InfinibandFdr10 => String::from("infiniband-fdr10"),
            Self::InfinibandFdr => String::from("infiniband-fdr"),
            Self::InfinibandEdr => String::from("infiniband-edr"),
            Self::InfinibandHdr => String::from("infiniband-hdr"),
            Self::InfinibandNdr => String::from("infiniband-ndr"),
            Self::InfinibandXdr => String::from("infiniband-xdr"),
            Self::T1 => String::from("t1"),
            Self::E1 => String::from("e1"),
            Self::T3 => String::from("t3"),
            Self::E3 => String::from("e3"),
            Self::Da15 => String::from("da15"),
            Self::Da26 => String::from("da26"),
            Self::Da31 => String::from("da31"),
            Self::Db25 => String::from("db25"),
            Self::Db44 => String::from("db44"),
            Self::Db60 => String::from("db60"),
            Self::Dc37 => String::from("dc37"),
            Self::Dc62 => String::from("dc62"),
            Self::Dc79 => String::from("dc79"),
            Self::Dd50 => String::from("dd50"),
            Self::Dd78 => String::from("dd78"),
            Self::Dd100 => String::from("dd100"),
            Self::De9 => String::from("de9"),
            Self::De15 => String::from("de15"),
            Self::De19 => String::from("de19"),
            Self::Df104 => String::from("df104"),
            Self::Xdsl => String::from("xdsl"),
            Self::Docsis => String::from("docsis"),
            Self::Gpon => String::from("gpon"),
            Self::XgPon => String::from("xg-pon"),
            Self::XgsPon => String::from("xgs-pon"),
            Self::NgPon2 => String::from("ng-pon2"),
            Self::Epon => String::from("epon"),
            Self::Variant10gEpon => String::from("10g-epon"),
            Self::CiscoStackwise => String::from("cisco-stackwise"),
            Self::CiscoStackwisePlus => String::from("cisco-stackwise-plus"),
            Self::CiscoFlexstack => String::from("cisco-flexstack"),
            Self::CiscoFlexstackPlus => String::from("cisco-flexstack-plus"),
            Self::CiscoStackwise80 => String::from("cisco-stackwise-80"),
            Self::CiscoStackwise160 => String::from("cisco-stackwise-160"),
            Self::CiscoStackwise320 => String::from("cisco-stackwise-320"),
            Self::CiscoStackwise480 => String::from("cisco-stackwise-480"),
            Self::CiscoStackwise1t => String::from("cisco-stackwise-1t"),
            Self::JuniperVcp => String::from("juniper-vcp"),
            Self::ExtremeSummitstack => String::from("extreme-summitstack"),
            Self::ExtremeSummitstack128 => String::from("extreme-summitstack-128"),
            Self::ExtremeSummitstack256 => String::from("extreme-summitstack-256"),
            Self::ExtremeSummitstack512 => String::from("extreme-summitstack-512"),
            Self::Other => String::from("other"),
        }
    }
}

impl Default for InterfaceTypeChoices {
    fn default() -> InterfaceTypeChoices {
        Self::Virtual
    }
}
