clerk_rs/models/
user.rs

1/*
2 * Clerk Backend API
3 *
4 * The Clerk REST Backend API, meant to be accessed by backend servers. Please see https://clerk.com/docs for more information.
5 *
6 * The version of the OpenAPI document: v1
7 * Contact: support@clerk.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
12pub struct User {
13	#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
14	pub id: Option<String>,
15	/// String representing the object's type. Objects of the same type share the same value.
16	#[serde(rename = "object", skip_serializing_if = "Option::is_none")]
17	pub object: Option<Object>,
18	#[serde(
19		rename = "external_id",
20		default,
21		with = "::serde_with::rust::double_option",
22		skip_serializing_if = "Option::is_none"
23	)]
24	pub external_id: Option<Option<String>>,
25	#[serde(
26		rename = "primary_email_address_id",
27		default,
28		with = "::serde_with::rust::double_option",
29		skip_serializing_if = "Option::is_none"
30	)]
31	pub primary_email_address_id: Option<Option<String>>,
32	#[serde(
33		rename = "primary_phone_number_id",
34		default,
35		with = "::serde_with::rust::double_option",
36		skip_serializing_if = "Option::is_none"
37	)]
38	pub primary_phone_number_id: Option<Option<String>>,
39	#[serde(
40		rename = "primary_web3_wallet_id",
41		default,
42		with = "::serde_with::rust::double_option",
43		skip_serializing_if = "Option::is_none"
44	)]
45	pub primary_web3_wallet_id: Option<Option<String>>,
46	#[serde(
47		rename = "username",
48		default,
49		with = "::serde_with::rust::double_option",
50		skip_serializing_if = "Option::is_none"
51	)]
52	pub username: Option<Option<String>>,
53	#[serde(
54		rename = "first_name",
55		default,
56		with = "::serde_with::rust::double_option",
57		skip_serializing_if = "Option::is_none"
58	)]
59	pub first_name: Option<Option<String>>,
60	#[serde(
61		rename = "last_name",
62		default,
63		with = "::serde_with::rust::double_option",
64		skip_serializing_if = "Option::is_none"
65	)]
66	pub last_name: Option<Option<String>>,
67	#[serde(rename = "profile_image_url", skip_serializing_if = "Option::is_none")]
68	pub profile_image_url: Option<String>,
69	#[serde(rename = "image_url", skip_serializing_if = "Option::is_none")]
70	pub image_url: Option<String>,
71	#[serde(rename = "has_image", skip_serializing_if = "Option::is_none")]
72	pub has_image: Option<bool>,
73	#[serde(rename = "public_metadata", skip_serializing_if = "Option::is_none")]
74	pub public_metadata: Option<serde_json::Value>,
75	#[serde(
76		rename = "private_metadata",
77		default,
78		with = "::serde_with::rust::double_option",
79		skip_serializing_if = "Option::is_none"
80	)]
81	pub private_metadata: Option<Option<serde_json::Value>>,
82	#[serde(rename = "unsafe_metadata", skip_serializing_if = "Option::is_none")]
83	pub unsafe_metadata: Option<serde_json::Value>,
84	#[serde(
85		rename = "gender",
86		default,
87		with = "::serde_with::rust::double_option",
88		skip_serializing_if = "Option::is_none"
89	)]
90	pub gender: Option<Option<String>>,
91	#[serde(
92		rename = "birthday",
93		default,
94		with = "::serde_with::rust::double_option",
95		skip_serializing_if = "Option::is_none"
96	)]
97	pub birthday: Option<Option<String>>,
98	#[serde(rename = "email_addresses", skip_serializing_if = "Option::is_none")]
99	pub email_addresses: Option<Vec<crate::models::EmailAddress>>,
100	#[serde(rename = "phone_numbers", skip_serializing_if = "Option::is_none")]
101	pub phone_numbers: Option<Vec<crate::models::PhoneNumber>>,
102	#[serde(rename = "web3_wallets", skip_serializing_if = "Option::is_none")]
103	pub web3_wallets: Option<Vec<crate::models::Web3Wallet>>,
104	#[serde(rename = "password_enabled", skip_serializing_if = "Option::is_none")]
105	pub password_enabled: Option<bool>,
106	#[serde(rename = "two_factor_enabled", skip_serializing_if = "Option::is_none")]
107	pub two_factor_enabled: Option<bool>,
108	#[serde(rename = "totp_enabled", skip_serializing_if = "Option::is_none")]
109	pub totp_enabled: Option<bool>,
110	#[serde(rename = "backup_code_enabled", skip_serializing_if = "Option::is_none")]
111	pub backup_code_enabled: Option<bool>,
112	#[serde(rename = "external_accounts", skip_serializing_if = "Option::is_none")]
113	pub external_accounts: Option<Vec<serde_json::Value>>,
114	#[serde(rename = "saml_accounts", skip_serializing_if = "Option::is_none")]
115	pub saml_accounts: Option<Vec<crate::models::SamlAccount>>,
116	/// Unix timestamp of last sign-in.
117	#[serde(
118		rename = "last_sign_in_at",
119		default,
120		with = "::serde_with::rust::double_option",
121		skip_serializing_if = "Option::is_none"
122	)]
123	pub last_sign_in_at: Option<Option<i64>>,
124	/// Flag to denote whether user is banned or not.
125	#[serde(rename = "banned", skip_serializing_if = "Option::is_none")]
126	pub banned: Option<bool>,
127	/// Flag to denote whether user is currently locked, i.e. restricted from signing in or not.
128	#[serde(rename = "locked", skip_serializing_if = "Option::is_none")]
129	pub locked: Option<bool>,
130	/// The number of seconds remaining until the lockout period expires for a locked user. A null value for a locked user indicates that lockout never expires.
131	#[serde(
132		rename = "lockout_expires_in_seconds",
133		default,
134		with = "::serde_with::rust::double_option",
135		skip_serializing_if = "Option::is_none"
136	)]
137	pub lockout_expires_in_seconds: Option<Option<i64>>,
138	/// The number of verification attempts remaining until the user is locked. Null if account lockout is not enabled. Note: if a user is locked explicitly via the Backend API, they may still have verification attempts remaining.
139	#[serde(
140		rename = "verification_attempts_remaining",
141		default,
142		with = "::serde_with::rust::double_option",
143		skip_serializing_if = "Option::is_none"
144	)]
145	pub verification_attempts_remaining: Option<Option<i64>>,
146	/// Unix timestamp of last update.
147	#[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
148	pub updated_at: Option<i64>,
149	/// Unix timestamp of creation.
150	#[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
151	pub created_at: Option<i64>,
152	/// If enabled, user can delete themselves via FAPI.
153	#[serde(rename = "delete_self_enabled", skip_serializing_if = "Option::is_none")]
154	pub delete_self_enabled: Option<bool>,
155	/// If enabled, user can create organizations via FAPI.
156	#[serde(rename = "create_organization_enabled", skip_serializing_if = "Option::is_none")]
157	pub create_organization_enabled: Option<bool>,
158	/// Unix timestamp of the latest session activity, with day precision.
159	#[serde(
160		rename = "last_active_at",
161		default,
162		with = "::serde_with::rust::double_option",
163		skip_serializing_if = "Option::is_none"
164	)]
165	pub last_active_at: Option<Option<i64>>,
166}
167
168impl User {
169	pub fn new() -> User {
170		User {
171			id: None,
172			object: None,
173			external_id: None,
174			primary_email_address_id: None,
175			primary_phone_number_id: None,
176			primary_web3_wallet_id: None,
177			username: None,
178			first_name: None,
179			last_name: None,
180			profile_image_url: None,
181			image_url: None,
182			has_image: None,
183			public_metadata: None,
184			private_metadata: None,
185			unsafe_metadata: None,
186			gender: None,
187			birthday: None,
188			email_addresses: None,
189			phone_numbers: None,
190			web3_wallets: None,
191			password_enabled: None,
192			two_factor_enabled: None,
193			totp_enabled: None,
194			backup_code_enabled: None,
195			external_accounts: None,
196			saml_accounts: None,
197			last_sign_in_at: None,
198			banned: None,
199			locked: None,
200			lockout_expires_in_seconds: None,
201			verification_attempts_remaining: None,
202			updated_at: None,
203			created_at: None,
204			delete_self_enabled: None,
205			create_organization_enabled: None,
206			last_active_at: None,
207		}
208	}
209}
210
211/// String representing the object's type. Objects of the same type share the same value.
212#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
213pub enum Object {
214	#[serde(rename = "user")]
215	User,
216}
217
218impl Default for Object {
219	fn default() -> Object {
220		Self::User
221	}
222}