1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
16pub enum OAuthErrorReason {
17 #[serde(rename = "auth_code_not_found")]
18 AuthCodeNotFound,
19 #[serde(rename = "access_token_malformed")]
20 AccessTokenMalformed,
21 #[serde(rename = "access_token_expired")]
22 AccessTokenExpired,
23 #[serde(rename = "access_token_unavailable_for_processing")]
24 AccessTokenUnavailableForProcessing,
25 #[serde(rename = "access_token_failed_processing")]
26 AccessTokenFailedProcessing,
27 #[serde(rename = "access_token_invalid")]
28 AccessTokenInvalid,
29 #[serde(rename = "access_token_required")]
30 AccessTokenRequired,
31 #[serde(rename = "refresh_token_not_found")]
32 RefreshTokenNotFound,
33 #[serde(rename = "refresh_token_type_not_supported")]
34 RefreshTokenTypeNotSupported,
35 #[serde(rename = "id_token_invalid")]
36 IdTokenInvalid,
37 #[serde(rename = "unsupported_token_type")]
38 UnsupportedTokenType,
39 #[serde(rename = "token_type_hint_mismatch")]
40 TokenTypeHintMismatch,
41 #[serde(rename = "invalid_client_id")]
42 InvalidClientId,
43 #[serde(rename = "invalid_expires_in")]
44 InvalidExpiresIn,
45 #[serde(rename = "invalid_user_credentials")]
46 InvalidUserCredentials,
47 #[serde(rename = "invalid_grant_type")]
48 InvalidGrantType,
49 #[serde(rename = "invalid_origin")]
50 InvalidOrigin,
51 #[serde(rename = "invalid_origin_opaque")]
52 InvalidOriginOpaque,
53 #[serde(rename = "invalid_pkce_code_verifier")]
54 InvalidPkceCodeVerifier,
55 #[serde(rename = "invalid_pkce_code_challenge")]
56 InvalidPkceCodeChallenge,
57 #[serde(rename = "invalid_pkce_code_challenge_method")]
58 InvalidPkceCodeChallengeMethod,
59 #[serde(rename = "invalid_prompt")]
60 InvalidPrompt,
61 #[serde(rename = "invalid_redirect_uri")]
62 InvalidRedirectUri,
63 #[serde(rename = "invalid_response_mode")]
64 InvalidResponseMode,
65 #[serde(rename = "invalid_response_type")]
66 InvalidResponseType,
67 #[serde(rename = "invalid_id_token_hint")]
68 InvalidIdTokenHint,
69 #[serde(rename = "invalid_post_logout_redirect_uri")]
70 InvalidPostLogoutRedirectUri,
71 #[serde(rename = "invalid_device_code")]
72 InvalidDeviceCode,
73 #[serde(rename = "invalid_user_code")]
74 InvalidUserCode,
75 #[serde(rename = "invalid_additional_client_id")]
76 InvalidAdditionalClientId,
77 #[serde(rename = "invalid_target_entity_scope")]
78 InvalidTargetEntityScope,
79 #[serde(rename = "invalid_entity_permission_scope")]
80 InvalidEntityPermissionScope,
81 #[serde(rename = "invalid_user_id")]
82 InvalidUserId,
83 #[serde(rename = "invalid_tenant_id")]
84 InvalidTenantId,
85 #[serde(rename = "grant_type_disabled")]
86 GrantTypeDisabled,
87 #[serde(rename = "missing_client_id")]
88 MissingClientId,
89 #[serde(rename = "missing_client_secret")]
90 MissingClientSecret,
91 #[serde(rename = "missing_code")]
92 MissingCode,
93 #[serde(rename = "missing_code_challenge")]
94 MissingCodeChallenge,
95 #[serde(rename = "missing_code_verifier")]
96 MissingCodeVerifier,
97 #[serde(rename = "missing_device_code")]
98 MissingDeviceCode,
99 #[serde(rename = "missing_grant_type")]
100 MissingGrantType,
101 #[serde(rename = "missing_redirect_uri")]
102 MissingRedirectUri,
103 #[serde(rename = "missing_refresh_token")]
104 MissingRefreshToken,
105 #[serde(rename = "missing_response_type")]
106 MissingResponseType,
107 #[serde(rename = "missing_token")]
108 MissingToken,
109 #[serde(rename = "missing_user_code")]
110 MissingUserCode,
111 #[serde(rename = "missing_user_id")]
112 MissingUserId,
113 #[serde(rename = "missing_verification_uri")]
114 MissingVerificationUri,
115 #[serde(rename = "missing_tenant_id")]
116 MissingTenantId,
117 #[serde(rename = "login_prevented")]
118 LoginPrevented,
119 #[serde(rename = "not_licensed")]
120 NotLicensed,
121 #[serde(rename = "user_code_expired")]
122 UserCodeExpired,
123 #[serde(rename = "user_expired")]
124 UserExpired,
125 #[serde(rename = "user_locked")]
126 UserLocked,
127 #[serde(rename = "user_not_found")]
128 UserNotFound,
129 #[serde(rename = "client_authentication_missing")]
130 ClientAuthenticationMissing,
131 #[serde(rename = "invalid_client_authentication_scheme")]
132 InvalidClientAuthenticationScheme,
133 #[serde(rename = "invalid_client_authentication")]
134 InvalidClientAuthentication,
135 #[serde(rename = "client_id_mismatch")]
136 ClientIdMismatch,
137 #[serde(rename = "change_password_administrative")]
138 ChangePasswordAdministrative,
139 #[serde(rename = "change_password_breached")]
140 ChangePasswordBreached,
141 #[serde(rename = "change_password_expired")]
142 ChangePasswordExpired,
143 #[serde(rename = "change_password_validation")]
144 ChangePasswordValidation,
145 #[serde(rename = "unknown")]
146 Unknown,
147 #[serde(rename = "missing_required_scope")]
148 MissingRequiredScope,
149 #[serde(rename = "unknown_scope")]
150 UnknownScope,
151 #[serde(rename = "consent_canceled")]
152 ConsentCanceled,
153 #[serde(rename = "authentication_required")]
154 AuthenticationRequired,
155 #[serde(rename = "email_verification_required")]
156 EmailVerificationRequired,
157 #[serde(rename = "multi_factor_challenge_required")]
158 MultiFactorChallengeRequired,
159 #[serde(rename = "phone_verification_required")]
160 PhoneVerificationRequired,
161 #[serde(rename = "registration_missing_requirement")]
162 RegistrationMissingRequirement,
163 #[serde(rename = "registration_required")]
164 RegistrationRequired,
165 #[serde(rename = "registration_verification_required")]
166 RegistrationVerificationRequired,
167 #[serde(rename = "consent_required")]
168 ConsentRequired,
169
170}
171
172impl std::fmt::Display for OAuthErrorReason {
173 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
174 match self {
175 Self::AuthCodeNotFound => write!(f, "auth_code_not_found"),
176 Self::AccessTokenMalformed => write!(f, "access_token_malformed"),
177 Self::AccessTokenExpired => write!(f, "access_token_expired"),
178 Self::AccessTokenUnavailableForProcessing => write!(f, "access_token_unavailable_for_processing"),
179 Self::AccessTokenFailedProcessing => write!(f, "access_token_failed_processing"),
180 Self::AccessTokenInvalid => write!(f, "access_token_invalid"),
181 Self::AccessTokenRequired => write!(f, "access_token_required"),
182 Self::RefreshTokenNotFound => write!(f, "refresh_token_not_found"),
183 Self::RefreshTokenTypeNotSupported => write!(f, "refresh_token_type_not_supported"),
184 Self::IdTokenInvalid => write!(f, "id_token_invalid"),
185 Self::UnsupportedTokenType => write!(f, "unsupported_token_type"),
186 Self::TokenTypeHintMismatch => write!(f, "token_type_hint_mismatch"),
187 Self::InvalidClientId => write!(f, "invalid_client_id"),
188 Self::InvalidExpiresIn => write!(f, "invalid_expires_in"),
189 Self::InvalidUserCredentials => write!(f, "invalid_user_credentials"),
190 Self::InvalidGrantType => write!(f, "invalid_grant_type"),
191 Self::InvalidOrigin => write!(f, "invalid_origin"),
192 Self::InvalidOriginOpaque => write!(f, "invalid_origin_opaque"),
193 Self::InvalidPkceCodeVerifier => write!(f, "invalid_pkce_code_verifier"),
194 Self::InvalidPkceCodeChallenge => write!(f, "invalid_pkce_code_challenge"),
195 Self::InvalidPkceCodeChallengeMethod => write!(f, "invalid_pkce_code_challenge_method"),
196 Self::InvalidPrompt => write!(f, "invalid_prompt"),
197 Self::InvalidRedirectUri => write!(f, "invalid_redirect_uri"),
198 Self::InvalidResponseMode => write!(f, "invalid_response_mode"),
199 Self::InvalidResponseType => write!(f, "invalid_response_type"),
200 Self::InvalidIdTokenHint => write!(f, "invalid_id_token_hint"),
201 Self::InvalidPostLogoutRedirectUri => write!(f, "invalid_post_logout_redirect_uri"),
202 Self::InvalidDeviceCode => write!(f, "invalid_device_code"),
203 Self::InvalidUserCode => write!(f, "invalid_user_code"),
204 Self::InvalidAdditionalClientId => write!(f, "invalid_additional_client_id"),
205 Self::InvalidTargetEntityScope => write!(f, "invalid_target_entity_scope"),
206 Self::InvalidEntityPermissionScope => write!(f, "invalid_entity_permission_scope"),
207 Self::InvalidUserId => write!(f, "invalid_user_id"),
208 Self::InvalidTenantId => write!(f, "invalid_tenant_id"),
209 Self::GrantTypeDisabled => write!(f, "grant_type_disabled"),
210 Self::MissingClientId => write!(f, "missing_client_id"),
211 Self::MissingClientSecret => write!(f, "missing_client_secret"),
212 Self::MissingCode => write!(f, "missing_code"),
213 Self::MissingCodeChallenge => write!(f, "missing_code_challenge"),
214 Self::MissingCodeVerifier => write!(f, "missing_code_verifier"),
215 Self::MissingDeviceCode => write!(f, "missing_device_code"),
216 Self::MissingGrantType => write!(f, "missing_grant_type"),
217 Self::MissingRedirectUri => write!(f, "missing_redirect_uri"),
218 Self::MissingRefreshToken => write!(f, "missing_refresh_token"),
219 Self::MissingResponseType => write!(f, "missing_response_type"),
220 Self::MissingToken => write!(f, "missing_token"),
221 Self::MissingUserCode => write!(f, "missing_user_code"),
222 Self::MissingUserId => write!(f, "missing_user_id"),
223 Self::MissingVerificationUri => write!(f, "missing_verification_uri"),
224 Self::MissingTenantId => write!(f, "missing_tenant_id"),
225 Self::LoginPrevented => write!(f, "login_prevented"),
226 Self::NotLicensed => write!(f, "not_licensed"),
227 Self::UserCodeExpired => write!(f, "user_code_expired"),
228 Self::UserExpired => write!(f, "user_expired"),
229 Self::UserLocked => write!(f, "user_locked"),
230 Self::UserNotFound => write!(f, "user_not_found"),
231 Self::ClientAuthenticationMissing => write!(f, "client_authentication_missing"),
232 Self::InvalidClientAuthenticationScheme => write!(f, "invalid_client_authentication_scheme"),
233 Self::InvalidClientAuthentication => write!(f, "invalid_client_authentication"),
234 Self::ClientIdMismatch => write!(f, "client_id_mismatch"),
235 Self::ChangePasswordAdministrative => write!(f, "change_password_administrative"),
236 Self::ChangePasswordBreached => write!(f, "change_password_breached"),
237 Self::ChangePasswordExpired => write!(f, "change_password_expired"),
238 Self::ChangePasswordValidation => write!(f, "change_password_validation"),
239 Self::Unknown => write!(f, "unknown"),
240 Self::MissingRequiredScope => write!(f, "missing_required_scope"),
241 Self::UnknownScope => write!(f, "unknown_scope"),
242 Self::ConsentCanceled => write!(f, "consent_canceled"),
243 Self::AuthenticationRequired => write!(f, "authentication_required"),
244 Self::EmailVerificationRequired => write!(f, "email_verification_required"),
245 Self::MultiFactorChallengeRequired => write!(f, "multi_factor_challenge_required"),
246 Self::PhoneVerificationRequired => write!(f, "phone_verification_required"),
247 Self::RegistrationMissingRequirement => write!(f, "registration_missing_requirement"),
248 Self::RegistrationRequired => write!(f, "registration_required"),
249 Self::RegistrationVerificationRequired => write!(f, "registration_verification_required"),
250 Self::ConsentRequired => write!(f, "consent_required"),
251 }
252 }
253}
254
255impl Default for OAuthErrorReason {
256 fn default() -> OAuthErrorReason {
257 Self::AuthCodeNotFound
258 }
259}
260