// authentik
//
// Making authentication simple.
//
// The version of the OpenAPI document: 2026.5.0-rc1
// Contact: hello@goauthentik.io
// Generated by: https://openapi-generator.tech

use serde::{Deserialize, Serialize};

use crate::models;

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "component")]
pub enum LoginChallengeTypes {
    #[serde(rename = "xak-flow-redirect")]
    XakFlowRedirect(models::RedirectChallenge),
    #[serde(rename = "ak-source-oauth-apple")]
    AkSourceOauthApple(models::AppleLoginChallenge),
    #[serde(rename = "ak-source-plex")]
    AkSourcePlex(models::PlexAuthenticationChallenge),
    #[serde(rename = "ak-source-telegram")]
    AkSourceTelegram(models::TelegramLoginChallenge),
}

impl Default for LoginChallengeTypes {
    fn default() -> Self {
        Self::XakFlowRedirect(Default::default())
    }
}
