use crate::models;
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "component")]
pub enum ChallengeTypes {
#[serde(rename="ak-stage-access-denied")]
AkStageAccessDenied(Box<models::AccessDeniedChallenge>),
#[serde(rename="ak-source-oauth-apple")]
AkSourceOauthApple(Box<models::AppleLoginChallenge>),
#[serde(rename="ak-stage-authenticator-duo")]
AkStageAuthenticatorDuo(Box<models::AuthenticatorDuoChallenge>),
#[serde(rename="ak-stage-authenticator-sms")]
AkStageAuthenticatorSms(Box<models::AuthenticatorSmsChallenge>),
#[serde(rename="ak-stage-authenticator-static")]
AkStageAuthenticatorStatic(Box<models::AuthenticatorStaticChallenge>),
#[serde(rename="ak-stage-authenticator-totp")]
AkStageAuthenticatorTotp(Box<models::AuthenticatorTotpChallenge>),
#[serde(rename="ak-stage-authenticator-validate")]
AkStageAuthenticatorValidate(Box<models::AuthenticatorValidationChallenge>),
#[serde(rename="ak-stage-authenticator-webauthn")]
AkStageAuthenticatorWebauthn(Box<models::AuthenticatorWebAuthnChallenge>),
#[serde(rename="ak-stage-autosubmit")]
AkStageAutosubmit(Box<models::AutosubmitChallenge>),
#[serde(rename="ak-stage-captcha")]
AkStageCaptcha(Box<models::CaptchaChallenge>),
#[serde(rename="ak-stage-consent")]
AkStageConsent(Box<models::ConsentChallenge>),
#[serde(rename="ak-stage-dummy")]
AkStageDummy(Box<models::DummyChallenge>),
#[serde(rename="ak-stage-email")]
AkStageEmail(Box<models::EmailChallenge>),
#[serde(rename="ak-stage-flow-error")]
AkStageFlowError(Box<models::FlowErrorChallenge>),
#[serde(rename="ak-stage-identification")]
AkStageIdentification(Box<models::IdentificationChallenge>),
#[serde(rename="ak-provider-oauth2-device-code")]
AkProviderOauth2DeviceCode(Box<models::OAuthDeviceCodeChallenge>),
#[serde(rename="ak-provider-oauth2-device-code-finish")]
AkProviderOauth2DeviceCodeFinish(Box<models::OAuthDeviceCodeFinishChallenge>),
#[serde(rename="ak-stage-password")]
AkStagePassword(Box<models::PasswordChallenge>),
#[serde(rename="ak-source-plex")]
AkSourcePlex(Box<models::PlexAuthenticationChallenge>),
#[serde(rename="ak-stage-prompt")]
AkStagePrompt(Box<models::PromptChallenge>),
#[serde(rename="xak-flow-redirect")]
XakFlowRedirect(Box<models::RedirectChallenge>),
#[serde(rename="xak-flow-shell")]
XakFlowShell(Box<models::ShellChallenge>),
#[serde(rename="ak-stage-user-login")]
AkStageUserLogin(Box<models::UserLoginChallenge>),
}
impl Default for ChallengeTypes {
fn default() -> Self {
Self::AkStageAccessDenied(Default::default())
}
}