clerk_fapi_rs/models/
client_auth_config.rs

1/*
2 * Clerk Frontend API
3 *
4 * The Clerk REST Frontend API, meant to be accessed from a browser or native environment.  This is a Form Based API and all the data must be sent and formatted according to the `application/x-www-form-urlencoded` content type.  ### Versions  When the API changes in a way that isn't compatible with older versions, a new version is released. Each version is identified by its release date, e.g. `2021-02-05`. For more information, please see [Clerk API Versions](https://clerk.com/docs/backend-requests/versioning/overview).  ### Using the Try It Console  The `Try It` feature of the docs only works for **Development Instances** when using the `DevBrowser` security scheme. To use it, first generate a dev instance token from the `/v1/dev_browser` endpoint.  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
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ClientAuthConfig {
16    #[serde(rename = "object")]
17    pub object: Object,
18    #[serde(rename = "id")]
19    pub id: String,
20    #[serde(rename = "first_name")]
21    pub first_name: FirstName,
22    #[serde(rename = "last_name")]
23    pub last_name: LastName,
24    #[serde(rename = "email_address")]
25    pub email_address: EmailAddress,
26    #[serde(rename = "phone_number")]
27    pub phone_number: PhoneNumber,
28    #[serde(rename = "username")]
29    pub username: Username,
30    #[serde(rename = "password")]
31    pub password: Password,
32    #[serde(rename = "identification_requirements")]
33    pub identification_requirements: Vec<Vec<String>>,
34    #[serde(rename = "identification_strategies")]
35    pub identification_strategies: Vec<String>,
36    #[serde(rename = "first_factors")]
37    pub first_factors: Vec<String>,
38    #[serde(rename = "second_factors")]
39    pub second_factors: Vec<String>,
40    #[serde(rename = "email_address_verification_strategies")]
41    pub email_address_verification_strategies: Vec<String>,
42    #[serde(rename = "single_session_mode")]
43    pub single_session_mode: bool,
44    #[serde(rename = "enhanced_email_deliverability")]
45    pub enhanced_email_deliverability: bool,
46    #[serde(rename = "test_mode")]
47    pub test_mode: bool,
48    /// Please use `url_based_session_syncing` instead
49    #[serde(rename = "cookieless_dev", skip_serializing_if = "Option::is_none")]
50    pub cookieless_dev: Option<bool>,
51    #[serde(rename = "url_based_session_syncing")]
52    pub url_based_session_syncing: bool,
53    #[serde(rename = "claimed_at", deserialize_with = "Option::deserialize")]
54    pub claimed_at: Option<i64>,
55    #[serde(rename = "reverification")]
56    pub reverification: bool,
57}
58
59impl ClientAuthConfig {
60    pub fn new(
61        object: Object,
62        id: String,
63        first_name: FirstName,
64        last_name: LastName,
65        email_address: EmailAddress,
66        phone_number: PhoneNumber,
67        username: Username,
68        password: Password,
69        identification_requirements: Vec<Vec<String>>,
70        identification_strategies: Vec<String>,
71        first_factors: Vec<String>,
72        second_factors: Vec<String>,
73        email_address_verification_strategies: Vec<String>,
74        single_session_mode: bool,
75        enhanced_email_deliverability: bool,
76        test_mode: bool,
77        url_based_session_syncing: bool,
78        claimed_at: Option<i64>,
79        reverification: bool,
80    ) -> ClientAuthConfig {
81        ClientAuthConfig {
82            object,
83            id,
84            first_name,
85            last_name,
86            email_address,
87            phone_number,
88            username,
89            password,
90            identification_requirements,
91            identification_strategies,
92            first_factors,
93            second_factors,
94            email_address_verification_strategies,
95            single_session_mode,
96            enhanced_email_deliverability,
97            test_mode,
98            cookieless_dev: None,
99            url_based_session_syncing,
100            claimed_at,
101            reverification,
102        }
103    }
104}
105
106#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
107pub enum Object {
108    #[serde(rename = "auth_config")]
109    AuthConfig,
110}
111
112impl Default for Object {
113    fn default() -> Object {
114        Self::AuthConfig
115    }
116}
117
118#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
119pub enum FirstName {
120    #[serde(rename = "on")]
121    On,
122    #[serde(rename = "off")]
123    Off,
124    #[serde(rename = "required")]
125    Required,
126}
127
128impl Default for FirstName {
129    fn default() -> FirstName {
130        Self::On
131    }
132}
133
134#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
135pub enum LastName {
136    #[serde(rename = "on")]
137    On,
138    #[serde(rename = "off")]
139    Off,
140    #[serde(rename = "required")]
141    Required,
142}
143
144impl Default for LastName {
145    fn default() -> LastName {
146        Self::On
147    }
148}
149
150#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
151pub enum EmailAddress {
152    #[serde(rename = "on")]
153    On,
154    #[serde(rename = "off")]
155    Off,
156    #[serde(rename = "required")]
157    Required,
158}
159
160impl Default for EmailAddress {
161    fn default() -> EmailAddress {
162        Self::On
163    }
164}
165
166#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
167pub enum PhoneNumber {
168    #[serde(rename = "on")]
169    On,
170    #[serde(rename = "off")]
171    Off,
172    #[serde(rename = "required")]
173    Required,
174}
175
176impl Default for PhoneNumber {
177    fn default() -> PhoneNumber {
178        Self::On
179    }
180}
181
182#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
183pub enum Username {
184    #[serde(rename = "on")]
185    On,
186    #[serde(rename = "off")]
187    Off,
188    #[serde(rename = "required")]
189    Required,
190}
191
192impl Default for Username {
193    fn default() -> Username {
194        Self::On
195    }
196}
197
198#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
199pub enum Password {
200    #[serde(rename = "on")]
201    On,
202    #[serde(rename = "off")]
203    Off,
204    #[serde(rename = "required")]
205    Required,
206}
207
208impl Default for Password {
209    fn default() -> Password {
210        Self::On
211    }
212}