1use 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 #[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}