clerk_sdk_rust_community/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.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11#[derive(Clone, Debug, PartialEq, Default, 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        skip_serializing_if = "Option::is_none"
22    )]
23    pub external_id: Option<Option<String>>,
24    #[serde(
25        rename = "primary_email_address_id",
26        default,
27        skip_serializing_if = "Option::is_none"
28    )]
29    pub primary_email_address_id: Option<Option<String>>,
30    #[serde(
31        rename = "primary_phone_number_id",
32        default,
33        skip_serializing_if = "Option::is_none"
34    )]
35    pub primary_phone_number_id: Option<Option<String>>,
36    #[serde(
37        rename = "primary_web3_wallet_id",
38        default,
39        skip_serializing_if = "Option::is_none"
40    )]
41    pub primary_web3_wallet_id: Option<Option<String>>,
42    #[serde(rename = "username", default, skip_serializing_if = "Option::is_none")]
43    pub username: Option<Option<String>>,
44    #[serde(
45        rename = "first_name",
46        default,
47        skip_serializing_if = "Option::is_none"
48    )]
49    pub first_name: Option<Option<String>>,
50    #[serde(rename = "last_name", default, skip_serializing_if = "Option::is_none")]
51    pub last_name: Option<Option<String>>,
52    #[serde(rename = "profile_image_url", skip_serializing_if = "Option::is_none")]
53    pub profile_image_url: Option<String>,
54    #[serde(rename = "public_metadata", skip_serializing_if = "Option::is_none")]
55    pub public_metadata: Option<serde_json::Value>,
56    #[serde(
57        rename = "private_metadata",
58        default,
59        skip_serializing_if = "Option::is_none"
60    )]
61    pub private_metadata: Option<Option<serde_json::Value>>,
62    #[serde(rename = "unsafe_metadata", skip_serializing_if = "Option::is_none")]
63    pub unsafe_metadata: Option<serde_json::Value>,
64    #[serde(rename = "gender", default, skip_serializing_if = "Option::is_none")]
65    pub gender: Option<Option<String>>,
66    #[serde(rename = "birthday", default, skip_serializing_if = "Option::is_none")]
67    pub birthday: Option<Option<String>>,
68    #[serde(rename = "email_addresses", skip_serializing_if = "Option::is_none")]
69    pub email_addresses: Option<Vec<crate::models::EmailAddress>>,
70    #[serde(rename = "phone_numbers", skip_serializing_if = "Option::is_none")]
71    pub phone_numbers: Option<Vec<crate::models::PhoneNumber>>,
72    #[serde(rename = "web3_wallets", skip_serializing_if = "Option::is_none")]
73    pub web3_wallets: Option<Vec<crate::models::Web3Wallet>>,
74    #[serde(rename = "password_enabled", skip_serializing_if = "Option::is_none")]
75    pub password_enabled: Option<bool>,
76    #[serde(rename = "two_factor_enabled", skip_serializing_if = "Option::is_none")]
77    pub two_factor_enabled: Option<bool>,
78    #[serde(rename = "totp_enabled", skip_serializing_if = "Option::is_none")]
79    pub totp_enabled: Option<bool>,
80    #[serde(
81        rename = "backup_code_enabled",
82        skip_serializing_if = "Option::is_none"
83    )]
84    pub backup_code_enabled: Option<bool>,
85    #[serde(rename = "external_accounts", skip_serializing_if = "Option::is_none")]
86    pub external_accounts: Option<Vec<serde_json::Value>>,
87    /// Unix timestamp of last sign-in.
88    #[serde(
89        rename = "last_sign_in_at",
90        default,
91        skip_serializing_if = "Option::is_none"
92    )]
93    pub last_sign_in_at: Option<Option<i64>>,
94    /// Flag to denote whether user is banned or not.
95    #[serde(rename = "banned", skip_serializing_if = "Option::is_none")]
96    pub banned: Option<bool>,
97    /// Unix timestamp of last update.
98    #[serde(rename = "updated_at", skip_serializing_if = "Option::is_none")]
99    pub updated_at: Option<i64>,
100    /// Unix timestamp of creation.
101    #[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
102    pub created_at: Option<i64>,
103}
104
105impl User {
106    pub fn new() -> User {
107        User {
108            id: None,
109            object: None,
110            external_id: None,
111            primary_email_address_id: None,
112            primary_phone_number_id: None,
113            primary_web3_wallet_id: None,
114            username: None,
115            first_name: None,
116            last_name: None,
117            profile_image_url: None,
118            public_metadata: None,
119            private_metadata: None,
120            unsafe_metadata: None,
121            gender: None,
122            birthday: None,
123            email_addresses: None,
124            phone_numbers: None,
125            web3_wallets: None,
126            password_enabled: None,
127            two_factor_enabled: None,
128            totp_enabled: None,
129            backup_code_enabled: None,
130            external_accounts: None,
131            last_sign_in_at: None,
132            banned: None,
133            updated_at: None,
134            created_at: None,
135        }
136    }
137}
138
139/// String representing the object's type. Objects of the same type share the same value.
140#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
141pub enum Object {
142    #[serde(rename = "user")]
143    User,
144}
145
146impl Default for Object {
147    fn default() -> Object {
148        Self::User
149    }
150}