/*
 * 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 VirtualServerProtocolChoices {
    #[serde(rename = "tcp")]
    Tcp,
    #[serde(rename = "udp")]
    Udp,
    #[serde(rename = "icmp")]
    Icmp,
    #[serde(rename = "sctp")]
    Sctp,
    #[serde(rename = "http")]
    Http,
    #[serde(rename = "https")]
    Https,
    #[serde(rename = "http2")]
    Http2,
    #[serde(rename = "grpc")]
    Grpc,
    #[serde(rename = "quic")]
    Quic,
    #[serde(rename = "dns")]
    Dns,
    #[serde(rename = "any")]
    Any,
}

impl ToString for VirtualServerProtocolChoices {
    fn to_string(&self) -> String {
        match self {
            Self::Tcp => String::from("tcp"),
            Self::Udp => String::from("udp"),
            Self::Icmp => String::from("icmp"),
            Self::Sctp => String::from("sctp"),
            Self::Http => String::from("http"),
            Self::Https => String::from("https"),
            Self::Http2 => String::from("http2"),
            Self::Grpc => String::from("grpc"),
            Self::Quic => String::from("quic"),
            Self::Dns => String::from("dns"),
            Self::Any => String::from("any"),
        }
    }
}

impl Default for VirtualServerProtocolChoices {
    fn default() -> VirtualServerProtocolChoices {
        Self::Tcp
    }
}
