1#[allow(unused_imports)]
3use super::types::*;
4#[allow(unused_imports)]
5use serde::{Deserialize, Serialize};
6#[allow(unused_imports)]
7use serde_json::Value as Json;
8#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
9pub enum LoginState {
10 #[serde(rename = "SignIn")]
11 SignIn,
12 #[serde(rename = "SignUp")]
13 SignUp,
14}
15#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
16pub enum DialogType {
17 #[serde(rename = "AccountChooser")]
18 AccountChooser,
19 #[serde(rename = "AutoReauthn")]
20 AutoReauthn,
21 #[serde(rename = "ConfirmIdpLogin")]
22 ConfirmIdpLogin,
23 #[serde(rename = "Error")]
24 Error,
25}
26#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
27pub enum DialogButton {
28 #[serde(rename = "ConfirmIdpLoginContinue")]
29 ConfirmIdpLoginContinue,
30 #[serde(rename = "ErrorGotIt")]
31 ErrorGotIt,
32 #[serde(rename = "ErrorMoreDetails")]
33 ErrorMoreDetails,
34}
35#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
36pub enum AccountUrlType {
37 #[serde(rename = "TermsOfService")]
38 TermsOfService,
39 #[serde(rename = "PrivacyPolicy")]
40 PrivacyPolicy,
41}
42#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
43pub struct Account {
44 #[serde(default)]
45 #[serde(rename = "accountId")]
46 pub account_id: String,
47 #[serde(default)]
48 #[serde(rename = "email")]
49 pub email: String,
50 #[serde(default)]
51 #[serde(rename = "name")]
52 pub name: String,
53 #[serde(default)]
54 #[serde(rename = "givenName")]
55 pub given_name: String,
56 #[serde(default)]
57 #[serde(rename = "pictureUrl")]
58 pub picture_url: String,
59 #[serde(default)]
60 #[serde(rename = "idpConfigUrl")]
61 pub idp_config_url: String,
62 #[serde(default)]
63 #[serde(rename = "idpLoginUrl")]
64 pub idp_login_url: String,
65 #[serde(rename = "loginState")]
66 pub login_state: LoginState,
67 #[serde(skip_serializing_if = "Option::is_none")]
68 #[serde(default)]
69 #[serde(rename = "termsOfServiceUrl")]
70 pub terms_of_service_url: Option<String>,
71 #[serde(skip_serializing_if = "Option::is_none")]
72 #[serde(default)]
73 #[serde(rename = "privacyPolicyUrl")]
74 pub privacy_policy_url: Option<String>,
75}
76#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
77pub struct Enable {
78 #[serde(skip_serializing_if = "Option::is_none")]
79 #[serde(default)]
80 #[serde(rename = "disableRejectionDelay")]
81 pub disable_rejection_delay: Option<bool>,
82}
83#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
84#[serde(rename_all = "camelCase")]
85pub struct Disable(pub Option<serde_json::Value>);
86#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
87pub struct SelectAccount {
88 #[serde(default)]
89 #[serde(rename = "dialogId")]
90 pub dialog_id: String,
91 #[serde(default)]
92 #[serde(rename = "accountIndex")]
93 pub account_index: JsUInt,
94}
95#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
96pub struct ClickDialogButton {
97 #[serde(default)]
98 #[serde(rename = "dialogId")]
99 pub dialog_id: String,
100 #[serde(rename = "dialogButton")]
101 pub dialog_button: DialogButton,
102}
103#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
104pub struct OpenUrl {
105 #[serde(default)]
106 #[serde(rename = "dialogId")]
107 pub dialog_id: String,
108 #[serde(default)]
109 #[serde(rename = "accountIndex")]
110 pub account_index: JsUInt,
111 #[serde(rename = "accountUrlType")]
112 pub account_url_type: AccountUrlType,
113}
114#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
115pub struct DismissDialog {
116 #[serde(default)]
117 #[serde(rename = "dialogId")]
118 pub dialog_id: String,
119 #[serde(skip_serializing_if = "Option::is_none")]
120 #[serde(default)]
121 #[serde(rename = "triggerCooldown")]
122 pub trigger_cooldown: Option<bool>,
123}
124#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
125#[serde(rename_all = "camelCase")]
126pub struct ResetCooldown(pub Option<serde_json::Value>);
127#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
128#[serde(rename_all = "camelCase")]
129pub struct EnableReturnObject {}
130#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
131#[serde(rename_all = "camelCase")]
132pub struct DisableReturnObject {}
133#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
134#[serde(rename_all = "camelCase")]
135pub struct SelectAccountReturnObject {}
136#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
137#[serde(rename_all = "camelCase")]
138pub struct ClickDialogButtonReturnObject {}
139#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
140#[serde(rename_all = "camelCase")]
141pub struct OpenUrlReturnObject {}
142#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
143#[serde(rename_all = "camelCase")]
144pub struct DismissDialogReturnObject {}
145#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
146#[serde(rename_all = "camelCase")]
147pub struct ResetCooldownReturnObject {}
148impl Method for Enable {
149 const NAME: &'static str = "FedCm.enable";
150 type ReturnObject = EnableReturnObject;
151}
152impl Method for Disable {
153 const NAME: &'static str = "FedCm.disable";
154 type ReturnObject = DisableReturnObject;
155}
156impl Method for SelectAccount {
157 const NAME: &'static str = "FedCm.selectAccount";
158 type ReturnObject = SelectAccountReturnObject;
159}
160impl Method for ClickDialogButton {
161 const NAME: &'static str = "FedCm.clickDialogButton";
162 type ReturnObject = ClickDialogButtonReturnObject;
163}
164impl Method for OpenUrl {
165 const NAME: &'static str = "FedCm.openUrl";
166 type ReturnObject = OpenUrlReturnObject;
167}
168impl Method for DismissDialog {
169 const NAME: &'static str = "FedCm.dismissDialog";
170 type ReturnObject = DismissDialogReturnObject;
171}
172impl Method for ResetCooldown {
173 const NAME: &'static str = "FedCm.resetCooldown";
174 type ReturnObject = ResetCooldownReturnObject;
175}
176pub mod events {
177 #[allow(unused_imports)]
178 use super::super::types::*;
179 #[allow(unused_imports)]
180 use serde::{Deserialize, Serialize};
181 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
182 pub struct DialogShownEvent {
183 pub params: DialogShownEventParams,
184 }
185 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
186 pub struct DialogShownEventParams {
187 #[serde(default)]
188 #[serde(rename = "dialogId")]
189 pub dialog_id: String,
190 #[serde(rename = "dialogType")]
191 pub dialog_type: super::DialogType,
192 #[serde(rename = "accounts")]
193 pub accounts: Vec<super::Account>,
194 #[serde(default)]
195 #[serde(rename = "title")]
196 pub title: String,
197 #[serde(skip_serializing_if = "Option::is_none")]
198 #[serde(default)]
199 #[serde(rename = "subtitle")]
200 pub subtitle: Option<String>,
201 }
202 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
203 pub struct DialogClosedEvent {
204 pub params: DialogClosedEventParams,
205 }
206 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
207 pub struct DialogClosedEventParams {
208 #[serde(default)]
209 #[serde(rename = "dialogId")]
210 pub dialog_id: String,
211 }
212}