use strum_macros::{AsRefStr, Display, EnumIter};

#[derive(AsRefStr, Clone, Debug, Display, EnumIter)]
pub enum IdentityProvider {
    #[cfg(feature = "authentication-amazon")]
    #[strum(serialize = "Amazon")]
    Amazon,

    #[cfg(feature = "authentication-apple")]
    #[strum(serialize = "Apple")]
    Apple,

    #[cfg(feature = "authentication-digitalocean")]
    #[strum(serialize = "DigitalOcean")]
    DigitalOcean,

    #[cfg(feature = "authentication-facebook")]
    #[strum(serialize = "Facebook")]
    Facebook,

    #[cfg(feature = "authentication-github")]
    #[strum(serialize = "GitHub")]
    GitHub,

    #[cfg(feature = "authentication-gitlab")]
    #[strum(serialize = "GitLab")]
    GitLab,

    #[cfg(feature = "authentication-google")]
    #[strum(serialize = "Google")]
    Google,

    #[cfg(feature = "authentication-instagram")]
    #[strum(serialize = "Instagram")]
    Instagram,

    #[cfg(feature = "authentication-linode")]
    #[strum(serialize = "Linode")]
    Linode,

    #[cfg(feature = "authentication-microsoft")]
    #[strum(serialize = "Microsoft")]
    Microsoft,

    #[cfg(feature = "authentication-okta")]
    #[strum(serialize = "Okta")]
    Okta,

    #[cfg(feature = "authentication-twitter")]
    #[strum(serialize = "Twitter")]
    Twitter,
}
