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 = "invalid_client_id")]
36 InvalidClientId,
37 #[serde(rename = "invalid_user_credentials")]
38 InvalidUserCredentials,
39 #[serde(rename = "invalid_grant_type")]
40 InvalidGrantType,
41 #[serde(rename = "invalid_origin")]
42 InvalidOrigin,
43 #[serde(rename = "invalid_origin_opaque")]
44 InvalidOriginOpaque,
45 #[serde(rename = "invalid_pkce_code_verifier")]
46 InvalidPkceCodeVerifier,
47 #[serde(rename = "invalid_pkce_code_challenge")]
48 InvalidPkceCodeChallenge,
49 #[serde(rename = "invalid_pkce_code_challenge_method")]
50 InvalidPkceCodeChallengeMethod,
51 #[serde(rename = "invalid_redirect_uri")]
52 InvalidRedirectUri,
53 #[serde(rename = "invalid_response_mode")]
54 InvalidResponseMode,
55 #[serde(rename = "invalid_response_type")]
56 InvalidResponseType,
57 #[serde(rename = "invalid_id_token_hint")]
58 InvalidIdTokenHint,
59 #[serde(rename = "invalid_post_logout_redirect_uri")]
60 InvalidPostLogoutRedirectUri,
61 #[serde(rename = "invalid_device_code")]
62 InvalidDeviceCode,
63 #[serde(rename = "invalid_user_code")]
64 InvalidUserCode,
65 #[serde(rename = "invalid_additional_client_id")]
66 InvalidAdditionalClientId,
67 #[serde(rename = "invalid_target_entity_scope")]
68 InvalidTargetEntityScope,
69 #[serde(rename = "invalid_entity_permission_scope")]
70 InvalidEntityPermissionScope,
71 #[serde(rename = "invalid_user_id")]
72 InvalidUserId,
73 #[serde(rename = "grant_type_disabled")]
74 GrantTypeDisabled,
75 #[serde(rename = "missing_client_id")]
76 MissingClientId,
77 #[serde(rename = "missing_client_secret")]
78 MissingClientSecret,
79 #[serde(rename = "missing_code")]
80 MissingCode,
81 #[serde(rename = "missing_code_challenge")]
82 MissingCodeChallenge,
83 #[serde(rename = "missing_code_verifier")]
84 MissingCodeVerifier,
85 #[serde(rename = "missing_device_code")]
86 MissingDeviceCode,
87 #[serde(rename = "missing_grant_type")]
88 MissingGrantType,
89 #[serde(rename = "missing_redirect_uri")]
90 MissingRedirectUri,
91 #[serde(rename = "missing_refresh_token")]
92 MissingRefreshToken,
93 #[serde(rename = "missing_response_type")]
94 MissingResponseType,
95 #[serde(rename = "missing_token")]
96 MissingToken,
97 #[serde(rename = "missing_user_code")]
98 MissingUserCode,
99 #[serde(rename = "missing_user_id")]
100 MissingUserId,
101 #[serde(rename = "missing_verification_uri")]
102 MissingVerificationUri,
103 #[serde(rename = "login_prevented")]
104 LoginPrevented,
105 #[serde(rename = "not_licensed")]
106 NotLicensed,
107 #[serde(rename = "user_code_expired")]
108 UserCodeExpired,
109 #[serde(rename = "user_expired")]
110 UserExpired,
111 #[serde(rename = "user_locked")]
112 UserLocked,
113 #[serde(rename = "user_not_found")]
114 UserNotFound,
115 #[serde(rename = "client_authentication_missing")]
116 ClientAuthenticationMissing,
117 #[serde(rename = "invalid_client_authentication_scheme")]
118 InvalidClientAuthenticationScheme,
119 #[serde(rename = "invalid_client_authentication")]
120 InvalidClientAuthentication,
121 #[serde(rename = "client_id_mismatch")]
122 ClientIdMismatch,
123 #[serde(rename = "change_password_administrative")]
124 ChangePasswordAdministrative,
125 #[serde(rename = "change_password_breached")]
126 ChangePasswordBreached,
127 #[serde(rename = "change_password_expired")]
128 ChangePasswordExpired,
129 #[serde(rename = "change_password_validation")]
130 ChangePasswordValidation,
131 #[serde(rename = "unknown")]
132 Unknown,
133 #[serde(rename = "missing_required_scope")]
134 MissingRequiredScope,
135 #[serde(rename = "unknown_scope")]
136 UnknownScope,
137 #[serde(rename = "consent_canceled")]
138 ConsentCanceled,
139
140}
141
142impl std::fmt::Display for OAuthErrorReason {
143 fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
144 match self {
145 Self::AuthCodeNotFound => write!(f, "auth_code_not_found"),
146 Self::AccessTokenMalformed => write!(f, "access_token_malformed"),
147 Self::AccessTokenExpired => write!(f, "access_token_expired"),
148 Self::AccessTokenUnavailableForProcessing => write!(f, "access_token_unavailable_for_processing"),
149 Self::AccessTokenFailedProcessing => write!(f, "access_token_failed_processing"),
150 Self::AccessTokenInvalid => write!(f, "access_token_invalid"),
151 Self::AccessTokenRequired => write!(f, "access_token_required"),
152 Self::RefreshTokenNotFound => write!(f, "refresh_token_not_found"),
153 Self::RefreshTokenTypeNotSupported => write!(f, "refresh_token_type_not_supported"),
154 Self::InvalidClientId => write!(f, "invalid_client_id"),
155 Self::InvalidUserCredentials => write!(f, "invalid_user_credentials"),
156 Self::InvalidGrantType => write!(f, "invalid_grant_type"),
157 Self::InvalidOrigin => write!(f, "invalid_origin"),
158 Self::InvalidOriginOpaque => write!(f, "invalid_origin_opaque"),
159 Self::InvalidPkceCodeVerifier => write!(f, "invalid_pkce_code_verifier"),
160 Self::InvalidPkceCodeChallenge => write!(f, "invalid_pkce_code_challenge"),
161 Self::InvalidPkceCodeChallengeMethod => write!(f, "invalid_pkce_code_challenge_method"),
162 Self::InvalidRedirectUri => write!(f, "invalid_redirect_uri"),
163 Self::InvalidResponseMode => write!(f, "invalid_response_mode"),
164 Self::InvalidResponseType => write!(f, "invalid_response_type"),
165 Self::InvalidIdTokenHint => write!(f, "invalid_id_token_hint"),
166 Self::InvalidPostLogoutRedirectUri => write!(f, "invalid_post_logout_redirect_uri"),
167 Self::InvalidDeviceCode => write!(f, "invalid_device_code"),
168 Self::InvalidUserCode => write!(f, "invalid_user_code"),
169 Self::InvalidAdditionalClientId => write!(f, "invalid_additional_client_id"),
170 Self::InvalidTargetEntityScope => write!(f, "invalid_target_entity_scope"),
171 Self::InvalidEntityPermissionScope => write!(f, "invalid_entity_permission_scope"),
172 Self::InvalidUserId => write!(f, "invalid_user_id"),
173 Self::GrantTypeDisabled => write!(f, "grant_type_disabled"),
174 Self::MissingClientId => write!(f, "missing_client_id"),
175 Self::MissingClientSecret => write!(f, "missing_client_secret"),
176 Self::MissingCode => write!(f, "missing_code"),
177 Self::MissingCodeChallenge => write!(f, "missing_code_challenge"),
178 Self::MissingCodeVerifier => write!(f, "missing_code_verifier"),
179 Self::MissingDeviceCode => write!(f, "missing_device_code"),
180 Self::MissingGrantType => write!(f, "missing_grant_type"),
181 Self::MissingRedirectUri => write!(f, "missing_redirect_uri"),
182 Self::MissingRefreshToken => write!(f, "missing_refresh_token"),
183 Self::MissingResponseType => write!(f, "missing_response_type"),
184 Self::MissingToken => write!(f, "missing_token"),
185 Self::MissingUserCode => write!(f, "missing_user_code"),
186 Self::MissingUserId => write!(f, "missing_user_id"),
187 Self::MissingVerificationUri => write!(f, "missing_verification_uri"),
188 Self::LoginPrevented => write!(f, "login_prevented"),
189 Self::NotLicensed => write!(f, "not_licensed"),
190 Self::UserCodeExpired => write!(f, "user_code_expired"),
191 Self::UserExpired => write!(f, "user_expired"),
192 Self::UserLocked => write!(f, "user_locked"),
193 Self::UserNotFound => write!(f, "user_not_found"),
194 Self::ClientAuthenticationMissing => write!(f, "client_authentication_missing"),
195 Self::InvalidClientAuthenticationScheme => write!(f, "invalid_client_authentication_scheme"),
196 Self::InvalidClientAuthentication => write!(f, "invalid_client_authentication"),
197 Self::ClientIdMismatch => write!(f, "client_id_mismatch"),
198 Self::ChangePasswordAdministrative => write!(f, "change_password_administrative"),
199 Self::ChangePasswordBreached => write!(f, "change_password_breached"),
200 Self::ChangePasswordExpired => write!(f, "change_password_expired"),
201 Self::ChangePasswordValidation => write!(f, "change_password_validation"),
202 Self::Unknown => write!(f, "unknown"),
203 Self::MissingRequiredScope => write!(f, "missing_required_scope"),
204 Self::UnknownScope => write!(f, "unknown_scope"),
205 Self::ConsentCanceled => write!(f, "consent_canceled"),
206 }
207 }
208}
209
210impl Default for OAuthErrorReason {
211 fn default() -> OAuthErrorReason {
212 Self::AuthCodeNotFound
213 }
214}
215