1use super::Audience;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Serialize, Deserialize, Clone)]
6pub struct Address {
7 #[serde(skip_serializing_if = "Option::is_none")]
9 pub formatted: Option<String>,
10 #[serde(skip_serializing_if = "Option::is_none")]
12 pub street_address: Option<String>,
13 #[serde(skip_serializing_if = "Option::is_none")]
15 pub locality: Option<String>,
16 #[serde(skip_serializing_if = "Option::is_none")]
18 pub region: Option<String>,
19 #[serde(skip_serializing_if = "Option::is_none")]
21 pub postal_code: Option<String>,
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub country: Option<String>,
25}
26
27#[derive(Debug, Serialize, Deserialize, Clone)]
29pub struct AuthClaims {
30 #[serde(rename = "iss", skip_serializing_if = "Option::is_none")]
33 pub issuer: Option<String>,
34
35 #[serde(rename = "sub", skip_serializing_if = "Option::is_none")]
37 pub subject: Option<String>,
38
39 #[serde(rename = "aud", skip_serializing_if = "Option::is_none")]
41 pub audience: Option<Audience>,
42
43 #[serde(rename = "exp", skip_serializing_if = "Option::is_none")]
45 pub expiration: Option<i64>,
46
47 #[serde(rename = "nbf", skip_serializing_if = "Option::is_none")]
49 pub not_before: Option<i64>,
50
51 #[serde(rename = "iat", skip_serializing_if = "Option::is_none")]
53 pub issued_at: Option<i64>,
54
55 #[serde(rename = "jti", skip_serializing_if = "Option::is_none")]
57 pub jwt_id: Option<String>,
58
59 #[serde(rename = "scope", skip_serializing_if = "Option::is_none")]
62 pub scope: Option<String>,
63
64 #[serde(rename = "client_id", skip_serializing_if = "Option::is_none")]
66 pub client_id: Option<String>,
67
68 #[serde(rename = "cnf", skip_serializing_if = "Option::is_none")]
70 pub confirmation: Option<serde_json::Value>,
71
72 #[serde(rename = "auth_time", skip_serializing_if = "Option::is_none")]
74 pub auth_time: Option<i64>,
75
76 #[serde(rename = "azp", skip_serializing_if = "Option::is_none")]
78 pub authorized_party: Option<String>,
79
80 #[serde(rename = "act", skip_serializing_if = "Option::is_none")]
82 pub actor: Option<serde_json::Value>,
83
84 #[serde(rename = "sid", skip_serializing_if = "Option::is_none")]
86 pub session_id: Option<String>,
87
88 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
91 pub name: Option<String>,
92
93 #[serde(rename = "given_name", skip_serializing_if = "Option::is_none")]
95 pub given_name: Option<String>,
96
97 #[serde(rename = "family_name", skip_serializing_if = "Option::is_none")]
99 pub family_name: Option<String>,
100
101 #[serde(rename = "middle_name", skip_serializing_if = "Option::is_none")]
103 pub middle_name: Option<String>,
104
105 #[serde(rename = "nickname", skip_serializing_if = "Option::is_none")]
107 pub nickname: Option<String>,
108
109 #[serde(rename = "preferred_username", skip_serializing_if = "Option::is_none")]
111 pub preferred_username: Option<String>,
112
113 #[serde(rename = "profile", skip_serializing_if = "Option::is_none")]
115 pub profile: Option<String>,
116
117 #[serde(rename = "picture", skip_serializing_if = "Option::is_none")]
119 pub picture: Option<String>,
120
121 #[serde(rename = "website", skip_serializing_if = "Option::is_none")]
123 pub website: Option<String>,
124
125 #[serde(rename = "email", skip_serializing_if = "Option::is_none")]
127 pub email: Option<String>,
128
129 #[serde(rename = "email_verified", skip_serializing_if = "Option::is_none")]
131 pub email_verified: Option<bool>,
132
133 #[serde(rename = "gender", skip_serializing_if = "Option::is_none")]
135 pub gender: Option<String>,
136
137 #[serde(rename = "birthdate", skip_serializing_if = "Option::is_none")]
139 pub birthdate: Option<String>,
140
141 #[serde(rename = "zoneinfo", skip_serializing_if = "Option::is_none")]
143 pub zoneinfo: Option<String>,
144
145 #[serde(rename = "locale", skip_serializing_if = "Option::is_none")]
147 pub locale: Option<String>,
148
149 #[serde(rename = "phone_number", skip_serializing_if = "Option::is_none")]
151 pub phone_number: Option<String>,
152
153 #[serde(
155 rename = "phone_number_verified",
156 skip_serializing_if = "Option::is_none"
157 )]
158 pub phone_number_verified: Option<bool>,
159
160 #[serde(rename = "address", skip_serializing_if = "Option::is_none")]
162 pub address: Option<Address>,
163
164 #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
166 pub updated_at: Option<i64>,
167
168 #[serde(rename = "oid", skip_serializing_if = "Option::is_none")]
171 pub object_id: Option<String>,
172
173 #[serde(rename = "tid", skip_serializing_if = "Option::is_none")]
175 pub tenant_id: Option<String>,
176
177 #[serde(rename = "upn", skip_serializing_if = "Option::is_none")]
179 pub user_principal_name: Option<String>,
180
181 #[serde(rename = "roles", skip_serializing_if = "Option::is_none")]
183 pub roles: Option<Vec<String>>,
184
185 #[serde(rename = "groups", skip_serializing_if = "Option::is_none")]
187 pub groups: Option<Vec<String>>,
188
189 #[serde(rename = "appid", skip_serializing_if = "Option::is_none")]
191 pub application_id: Option<String>,
192
193 #[serde(rename = "unique_name", skip_serializing_if = "Option::is_none")]
195 pub unique_name: Option<String>,
196
197 #[serde(rename = "ver", skip_serializing_if = "Option::is_none")]
199 pub version: Option<String>,
200}
201
202#[derive(Debug, Serialize, Deserialize, Clone)]
227#[serde(rename_all = "snake_case")]
228pub struct IntrospectionResponse {
229 pub active: bool,
232
233 #[serde(default)]
236 pub scope: Option<String>,
237
238 #[serde(default)]
241 pub client_id: Option<String>,
242
243 #[serde(default)]
246 pub username: Option<String>,
247
248 #[serde(default)]
251 pub token_type: Option<String>,
252
253 #[serde(rename = "exp", skip_serializing_if = "Option::is_none")]
255 pub expiration: Option<i64>,
256
257 #[serde(rename = "iat", skip_serializing_if = "Option::is_none")]
259 pub issued_at: Option<i64>,
260
261 #[serde(rename = "nbf", skip_serializing_if = "Option::is_none")]
263 pub not_before: Option<i64>,
264
265 #[serde(rename = "sub", skip_serializing_if = "Option::is_none")]
268 pub subject: Option<String>,
269
270 #[serde(rename = "aud", skip_serializing_if = "Option::is_none")]
273 pub audience: Option<Audience>,
274
275 #[serde(rename = "iss", skip_serializing_if = "Option::is_none")]
278 pub issuer: Option<String>,
279
280 #[serde(rename = "jti", skip_serializing_if = "Option::is_none")]
282 pub jwt_id: Option<String>,
283}