fusionauth-rust-client 2.9.0

This is a FusionAuth server. Find out more at [https://fusionauth.io](https://fusionauth.io). You need to [set up an API key](https://fusionauth.io/docs/v1/tech/apis/authentication#managing-api-keys) in the FusionAuth instance you are using to test out the API calls.
Documentation
/*
 * FusionAuth API
 *
 * This is a FusionAuth server. Find out more at [https://fusionauth.io](https://fusionauth.io). You need to [set up an API key](https://fusionauth.io/docs/v1/tech/apis/authentication#managing-api-keys) in the FusionAuth instance you are using to test out the API calls.
 *
 * The version of the OpenAPI document: 1.62.1
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// 
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum OAuthErrorReason {
    #[serde(rename = "auth_code_not_found")]
    AuthCodeNotFound,
    #[serde(rename = "access_token_malformed")]
    AccessTokenMalformed,
    #[serde(rename = "access_token_expired")]
    AccessTokenExpired,
    #[serde(rename = "access_token_unavailable_for_processing")]
    AccessTokenUnavailableForProcessing,
    #[serde(rename = "access_token_failed_processing")]
    AccessTokenFailedProcessing,
    #[serde(rename = "access_token_invalid")]
    AccessTokenInvalid,
    #[serde(rename = "access_token_required")]
    AccessTokenRequired,
    #[serde(rename = "refresh_token_not_found")]
    RefreshTokenNotFound,
    #[serde(rename = "refresh_token_type_not_supported")]
    RefreshTokenTypeNotSupported,
    #[serde(rename = "id_token_invalid")]
    IdTokenInvalid,
    #[serde(rename = "unsupported_token_type")]
    UnsupportedTokenType,
    #[serde(rename = "token_type_hint_mismatch")]
    TokenTypeHintMismatch,
    #[serde(rename = "invalid_client_id")]
    InvalidClientId,
    #[serde(rename = "invalid_expires_in")]
    InvalidExpiresIn,
    #[serde(rename = "invalid_user_credentials")]
    InvalidUserCredentials,
    #[serde(rename = "invalid_grant_type")]
    InvalidGrantType,
    #[serde(rename = "invalid_origin")]
    InvalidOrigin,
    #[serde(rename = "invalid_origin_opaque")]
    InvalidOriginOpaque,
    #[serde(rename = "invalid_pkce_code_verifier")]
    InvalidPkceCodeVerifier,
    #[serde(rename = "invalid_pkce_code_challenge")]
    InvalidPkceCodeChallenge,
    #[serde(rename = "invalid_pkce_code_challenge_method")]
    InvalidPkceCodeChallengeMethod,
    #[serde(rename = "invalid_prompt")]
    InvalidPrompt,
    #[serde(rename = "invalid_redirect_uri")]
    InvalidRedirectUri,
    #[serde(rename = "invalid_response_mode")]
    InvalidResponseMode,
    #[serde(rename = "invalid_response_type")]
    InvalidResponseType,
    #[serde(rename = "invalid_id_token_hint")]
    InvalidIdTokenHint,
    #[serde(rename = "invalid_post_logout_redirect_uri")]
    InvalidPostLogoutRedirectUri,
    #[serde(rename = "invalid_device_code")]
    InvalidDeviceCode,
    #[serde(rename = "invalid_user_code")]
    InvalidUserCode,
    #[serde(rename = "invalid_additional_client_id")]
    InvalidAdditionalClientId,
    #[serde(rename = "invalid_target_entity_scope")]
    InvalidTargetEntityScope,
    #[serde(rename = "invalid_entity_permission_scope")]
    InvalidEntityPermissionScope,
    #[serde(rename = "invalid_user_id")]
    InvalidUserId,
    #[serde(rename = "invalid_tenant_id")]
    InvalidTenantId,
    #[serde(rename = "grant_type_disabled")]
    GrantTypeDisabled,
    #[serde(rename = "missing_client_id")]
    MissingClientId,
    #[serde(rename = "missing_client_secret")]
    MissingClientSecret,
    #[serde(rename = "missing_code")]
    MissingCode,
    #[serde(rename = "missing_code_challenge")]
    MissingCodeChallenge,
    #[serde(rename = "missing_code_verifier")]
    MissingCodeVerifier,
    #[serde(rename = "missing_device_code")]
    MissingDeviceCode,
    #[serde(rename = "missing_grant_type")]
    MissingGrantType,
    #[serde(rename = "missing_redirect_uri")]
    MissingRedirectUri,
    #[serde(rename = "missing_refresh_token")]
    MissingRefreshToken,
    #[serde(rename = "missing_response_type")]
    MissingResponseType,
    #[serde(rename = "missing_token")]
    MissingToken,
    #[serde(rename = "missing_user_code")]
    MissingUserCode,
    #[serde(rename = "missing_user_id")]
    MissingUserId,
    #[serde(rename = "missing_verification_uri")]
    MissingVerificationUri,
    #[serde(rename = "missing_tenant_id")]
    MissingTenantId,
    #[serde(rename = "login_prevented")]
    LoginPrevented,
    #[serde(rename = "not_licensed")]
    NotLicensed,
    #[serde(rename = "user_code_expired")]
    UserCodeExpired,
    #[serde(rename = "user_expired")]
    UserExpired,
    #[serde(rename = "user_locked")]
    UserLocked,
    #[serde(rename = "user_not_found")]
    UserNotFound,
    #[serde(rename = "client_authentication_missing")]
    ClientAuthenticationMissing,
    #[serde(rename = "invalid_client_authentication_scheme")]
    InvalidClientAuthenticationScheme,
    #[serde(rename = "invalid_client_authentication")]
    InvalidClientAuthentication,
    #[serde(rename = "client_id_mismatch")]
    ClientIdMismatch,
    #[serde(rename = "change_password_administrative")]
    ChangePasswordAdministrative,
    #[serde(rename = "change_password_breached")]
    ChangePasswordBreached,
    #[serde(rename = "change_password_expired")]
    ChangePasswordExpired,
    #[serde(rename = "change_password_validation")]
    ChangePasswordValidation,
    #[serde(rename = "unknown")]
    Unknown,
    #[serde(rename = "missing_required_scope")]
    MissingRequiredScope,
    #[serde(rename = "unknown_scope")]
    UnknownScope,
    #[serde(rename = "consent_canceled")]
    ConsentCanceled,
    #[serde(rename = "authentication_required")]
    AuthenticationRequired,
    #[serde(rename = "email_verification_required")]
    EmailVerificationRequired,
    #[serde(rename = "multi_factor_challenge_required")]
    MultiFactorChallengeRequired,
    #[serde(rename = "phone_verification_required")]
    PhoneVerificationRequired,
    #[serde(rename = "registration_missing_requirement")]
    RegistrationMissingRequirement,
    #[serde(rename = "registration_required")]
    RegistrationRequired,
    #[serde(rename = "registration_verification_required")]
    RegistrationVerificationRequired,
    #[serde(rename = "consent_required")]
    ConsentRequired,

}

impl std::fmt::Display for OAuthErrorReason {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::AuthCodeNotFound => write!(f, "auth_code_not_found"),
            Self::AccessTokenMalformed => write!(f, "access_token_malformed"),
            Self::AccessTokenExpired => write!(f, "access_token_expired"),
            Self::AccessTokenUnavailableForProcessing => write!(f, "access_token_unavailable_for_processing"),
            Self::AccessTokenFailedProcessing => write!(f, "access_token_failed_processing"),
            Self::AccessTokenInvalid => write!(f, "access_token_invalid"),
            Self::AccessTokenRequired => write!(f, "access_token_required"),
            Self::RefreshTokenNotFound => write!(f, "refresh_token_not_found"),
            Self::RefreshTokenTypeNotSupported => write!(f, "refresh_token_type_not_supported"),
            Self::IdTokenInvalid => write!(f, "id_token_invalid"),
            Self::UnsupportedTokenType => write!(f, "unsupported_token_type"),
            Self::TokenTypeHintMismatch => write!(f, "token_type_hint_mismatch"),
            Self::InvalidClientId => write!(f, "invalid_client_id"),
            Self::InvalidExpiresIn => write!(f, "invalid_expires_in"),
            Self::InvalidUserCredentials => write!(f, "invalid_user_credentials"),
            Self::InvalidGrantType => write!(f, "invalid_grant_type"),
            Self::InvalidOrigin => write!(f, "invalid_origin"),
            Self::InvalidOriginOpaque => write!(f, "invalid_origin_opaque"),
            Self::InvalidPkceCodeVerifier => write!(f, "invalid_pkce_code_verifier"),
            Self::InvalidPkceCodeChallenge => write!(f, "invalid_pkce_code_challenge"),
            Self::InvalidPkceCodeChallengeMethod => write!(f, "invalid_pkce_code_challenge_method"),
            Self::InvalidPrompt => write!(f, "invalid_prompt"),
            Self::InvalidRedirectUri => write!(f, "invalid_redirect_uri"),
            Self::InvalidResponseMode => write!(f, "invalid_response_mode"),
            Self::InvalidResponseType => write!(f, "invalid_response_type"),
            Self::InvalidIdTokenHint => write!(f, "invalid_id_token_hint"),
            Self::InvalidPostLogoutRedirectUri => write!(f, "invalid_post_logout_redirect_uri"),
            Self::InvalidDeviceCode => write!(f, "invalid_device_code"),
            Self::InvalidUserCode => write!(f, "invalid_user_code"),
            Self::InvalidAdditionalClientId => write!(f, "invalid_additional_client_id"),
            Self::InvalidTargetEntityScope => write!(f, "invalid_target_entity_scope"),
            Self::InvalidEntityPermissionScope => write!(f, "invalid_entity_permission_scope"),
            Self::InvalidUserId => write!(f, "invalid_user_id"),
            Self::InvalidTenantId => write!(f, "invalid_tenant_id"),
            Self::GrantTypeDisabled => write!(f, "grant_type_disabled"),
            Self::MissingClientId => write!(f, "missing_client_id"),
            Self::MissingClientSecret => write!(f, "missing_client_secret"),
            Self::MissingCode => write!(f, "missing_code"),
            Self::MissingCodeChallenge => write!(f, "missing_code_challenge"),
            Self::MissingCodeVerifier => write!(f, "missing_code_verifier"),
            Self::MissingDeviceCode => write!(f, "missing_device_code"),
            Self::MissingGrantType => write!(f, "missing_grant_type"),
            Self::MissingRedirectUri => write!(f, "missing_redirect_uri"),
            Self::MissingRefreshToken => write!(f, "missing_refresh_token"),
            Self::MissingResponseType => write!(f, "missing_response_type"),
            Self::MissingToken => write!(f, "missing_token"),
            Self::MissingUserCode => write!(f, "missing_user_code"),
            Self::MissingUserId => write!(f, "missing_user_id"),
            Self::MissingVerificationUri => write!(f, "missing_verification_uri"),
            Self::MissingTenantId => write!(f, "missing_tenant_id"),
            Self::LoginPrevented => write!(f, "login_prevented"),
            Self::NotLicensed => write!(f, "not_licensed"),
            Self::UserCodeExpired => write!(f, "user_code_expired"),
            Self::UserExpired => write!(f, "user_expired"),
            Self::UserLocked => write!(f, "user_locked"),
            Self::UserNotFound => write!(f, "user_not_found"),
            Self::ClientAuthenticationMissing => write!(f, "client_authentication_missing"),
            Self::InvalidClientAuthenticationScheme => write!(f, "invalid_client_authentication_scheme"),
            Self::InvalidClientAuthentication => write!(f, "invalid_client_authentication"),
            Self::ClientIdMismatch => write!(f, "client_id_mismatch"),
            Self::ChangePasswordAdministrative => write!(f, "change_password_administrative"),
            Self::ChangePasswordBreached => write!(f, "change_password_breached"),
            Self::ChangePasswordExpired => write!(f, "change_password_expired"),
            Self::ChangePasswordValidation => write!(f, "change_password_validation"),
            Self::Unknown => write!(f, "unknown"),
            Self::MissingRequiredScope => write!(f, "missing_required_scope"),
            Self::UnknownScope => write!(f, "unknown_scope"),
            Self::ConsentCanceled => write!(f, "consent_canceled"),
            Self::AuthenticationRequired => write!(f, "authentication_required"),
            Self::EmailVerificationRequired => write!(f, "email_verification_required"),
            Self::MultiFactorChallengeRequired => write!(f, "multi_factor_challenge_required"),
            Self::PhoneVerificationRequired => write!(f, "phone_verification_required"),
            Self::RegistrationMissingRequirement => write!(f, "registration_missing_requirement"),
            Self::RegistrationRequired => write!(f, "registration_required"),
            Self::RegistrationVerificationRequired => write!(f, "registration_verification_required"),
            Self::ConsentRequired => write!(f, "consent_required"),
        }
    }
}

impl Default for OAuthErrorReason {
    fn default() -> OAuthErrorReason {
        Self::AuthCodeNotFound
    }
}