/*
 * 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 ServiceTypeEnum {
    #[serde(rename = "ipsec")]
    Ipsec,
    #[serde(rename = "vpws")]
    Vpws,
    #[serde(rename = "vpls")]
    Vpls,
    #[serde(rename = "vxlan")]
    Vxlan,
    #[serde(rename = "vxlan-evpn")]
    VxlanEvpn,
    #[serde(rename = "mpls-evpn")]
    MplsEvpn,
    #[serde(rename = "pbb-evpn")]
    PbbEvpn,
    #[serde(rename = "evpn-vpws")]
    EvpnVpws,
    #[serde(rename = "epl")]
    Epl,
    #[serde(rename = "evpl")]
    Evpl,
    #[serde(rename = "ep-lan")]
    EpLan,
    #[serde(rename = "evp-lan")]
    EvpLan,
    #[serde(rename = "ep-tree")]
    EpTree,
    #[serde(rename = "evp-tree")]
    EvpTree,
    #[serde(rename = "spb")]
    Spb,
}

impl ToString for ServiceTypeEnum {
    fn to_string(&self) -> String {
        match self {
            Self::Ipsec => String::from("ipsec"),
            Self::Vpws => String::from("vpws"),
            Self::Vpls => String::from("vpls"),
            Self::Vxlan => String::from("vxlan"),
            Self::VxlanEvpn => String::from("vxlan-evpn"),
            Self::MplsEvpn => String::from("mpls-evpn"),
            Self::PbbEvpn => String::from("pbb-evpn"),
            Self::EvpnVpws => String::from("evpn-vpws"),
            Self::Epl => String::from("epl"),
            Self::Evpl => String::from("evpl"),
            Self::EpLan => String::from("ep-lan"),
            Self::EvpLan => String::from("evp-lan"),
            Self::EpTree => String::from("ep-tree"),
            Self::EvpTree => String::from("evp-tree"),
            Self::Spb => String::from("spb"),
        }
    }
}

impl Default for ServiceTypeEnum {
    fn default() -> ServiceTypeEnum {
        Self::Ipsec
    }
}
