1#![allow(dead_code)]
3#[allow(unused_imports)]
4use super::types::*;
5#[allow(unused_imports)]
6use derive_builder::Builder;
7#[allow(unused_imports)]
8use serde::{Deserialize, Serialize};
9#[allow(unused_imports)]
10use serde_json::Value as Json;
11#[allow(deprecated)]
12#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
13pub enum LoginState {
14 #[serde(rename = "SignIn")]
15 SignIn,
16 #[serde(rename = "SignUp")]
17 SignUp,
18}
19#[allow(deprecated)]
20#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
21pub enum DialogType {
22 #[serde(rename = "AccountChooser")]
23 AccountChooser,
24 #[serde(rename = "AutoReauthn")]
25 AutoReauthn,
26 #[serde(rename = "ConfirmIdpLogin")]
27 ConfirmIdpLogin,
28 #[serde(rename = "Error")]
29 Error,
30}
31#[allow(deprecated)]
32#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
33pub enum DialogButton {
34 #[serde(rename = "ConfirmIdpLoginContinue")]
35 ConfirmIdpLoginContinue,
36 #[serde(rename = "ErrorGotIt")]
37 ErrorGotIt,
38 #[serde(rename = "ErrorMoreDetails")]
39 ErrorMoreDetails,
40}
41#[allow(deprecated)]
42#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
43pub enum AccountUrlType {
44 #[serde(rename = "TermsOfService")]
45 TermsOfService,
46 #[serde(rename = "PrivacyPolicy")]
47 PrivacyPolicy,
48}
49#[allow(deprecated)]
50#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
51#[builder(setter(into, strip_option))]
52#[serde(rename_all = "camelCase")]
53#[doc = "Corresponds to IdentityRequestAccount"]
54pub struct Account {
55 #[serde(default)]
56 pub account_id: String,
57 #[serde(default)]
58 pub email: String,
59 #[serde(default)]
60 pub name: String,
61 #[serde(default)]
62 pub given_name: String,
63 #[serde(default)]
64 pub picture_url: String,
65 #[serde(default)]
66 pub idp_config_url: String,
67 #[serde(default)]
68 pub idp_login_url: String,
69 pub login_state: LoginState,
70 #[builder(default)]
71 #[serde(skip_serializing_if = "Option::is_none")]
72 #[serde(default)]
73 #[doc = "These two are only set if the loginState is signUp"]
74 pub terms_of_service_url: Option<String>,
75 #[builder(default)]
76 #[serde(skip_serializing_if = "Option::is_none")]
77 #[serde(default)]
78 pub privacy_policy_url: Option<String>,
79}
80#[allow(deprecated)]
81#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
82#[builder(setter(into, strip_option))]
83#[serde(rename_all = "camelCase")]
84pub struct Enable {
85 #[builder(default)]
86 #[serde(skip_serializing_if = "Option::is_none")]
87 #[serde(default)]
88 #[doc = "Allows callers to disable the promise rejection delay that would\n normally happen, if this is unimportant to what's being tested.\n (step 4 of <https://fedidcg.github.io/FedCM/#browser-api-rp-sign-in>)"]
89 pub disable_rejection_delay: Option<bool>,
90}
91#[allow(deprecated)]
92#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
93pub struct Disable(pub Option<Json>);
94#[allow(deprecated)]
95#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
96#[builder(setter(into, strip_option))]
97#[serde(rename_all = "camelCase")]
98pub struct SelectAccount {
99 #[serde(default)]
100 pub dialog_id: String,
101 #[serde(default)]
102 pub account_index: JsUInt,
103}
104#[allow(deprecated)]
105#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
106#[builder(setter(into, strip_option))]
107#[serde(rename_all = "camelCase")]
108pub struct ClickDialogButton {
109 #[serde(default)]
110 pub dialog_id: String,
111 pub dialog_button: DialogButton,
112}
113#[allow(deprecated)]
114#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
115#[builder(setter(into, strip_option))]
116#[serde(rename_all = "camelCase")]
117pub struct OpenUrl {
118 #[serde(default)]
119 pub dialog_id: String,
120 #[serde(default)]
121 pub account_index: JsUInt,
122 pub account_url_type: AccountUrlType,
123}
124#[allow(deprecated)]
125#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
126#[builder(setter(into, strip_option))]
127#[serde(rename_all = "camelCase")]
128pub struct DismissDialog {
129 #[serde(default)]
130 pub dialog_id: String,
131 #[builder(default)]
132 #[serde(skip_serializing_if = "Option::is_none")]
133 #[serde(default)]
134 pub trigger_cooldown: Option<bool>,
135}
136#[allow(deprecated)]
137#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
138pub struct ResetCooldown(pub Option<Json>);
139#[allow(deprecated)]
140#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
141pub struct EnableReturnObject(pub Option<Json>);
142#[allow(deprecated)]
143#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
144pub struct DisableReturnObject(pub Option<Json>);
145#[allow(deprecated)]
146#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
147pub struct SelectAccountReturnObject(pub Option<Json>);
148#[allow(deprecated)]
149#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
150pub struct ClickDialogButtonReturnObject(pub Option<Json>);
151#[allow(deprecated)]
152#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
153pub struct OpenUrlReturnObject(pub Option<Json>);
154#[allow(deprecated)]
155#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
156pub struct DismissDialogReturnObject(pub Option<Json>);
157#[allow(deprecated)]
158#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
159#[doc = "Resets the cooldown time, if any, to allow the next FedCM call to show\n a dialog even if one was recently dismissed by the user."]
160pub struct ResetCooldownReturnObject(pub Option<Json>);
161#[allow(deprecated)]
162impl Method for Enable {
163 const NAME: &'static str = "FedCm.enable";
164 type ReturnObject = EnableReturnObject;
165}
166#[allow(deprecated)]
167impl Method for Disable {
168 const NAME: &'static str = "FedCm.disable";
169 type ReturnObject = DisableReturnObject;
170}
171#[allow(deprecated)]
172impl Method for SelectAccount {
173 const NAME: &'static str = "FedCm.selectAccount";
174 type ReturnObject = SelectAccountReturnObject;
175}
176#[allow(deprecated)]
177impl Method for ClickDialogButton {
178 const NAME: &'static str = "FedCm.clickDialogButton";
179 type ReturnObject = ClickDialogButtonReturnObject;
180}
181#[allow(deprecated)]
182impl Method for OpenUrl {
183 const NAME: &'static str = "FedCm.openUrl";
184 type ReturnObject = OpenUrlReturnObject;
185}
186#[allow(deprecated)]
187impl Method for DismissDialog {
188 const NAME: &'static str = "FedCm.dismissDialog";
189 type ReturnObject = DismissDialogReturnObject;
190}
191#[allow(deprecated)]
192impl Method for ResetCooldown {
193 const NAME: &'static str = "FedCm.resetCooldown";
194 type ReturnObject = ResetCooldownReturnObject;
195}
196#[allow(dead_code)]
197pub mod events {
198 #[allow(unused_imports)]
199 use super::super::types::*;
200 #[allow(unused_imports)]
201 use derive_builder::Builder;
202 #[allow(unused_imports)]
203 use serde::{Deserialize, Serialize};
204 #[allow(unused_imports)]
205 use serde_json::Value as Json;
206 #[allow(deprecated)]
207 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
208 pub struct DialogShownEvent {
209 pub params: DialogShownEventParams,
210 }
211 #[allow(deprecated)]
212 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
213 #[serde(rename_all = "camelCase")]
214 pub struct DialogShownEventParams {
215 #[serde(default)]
216 pub dialog_id: String,
217 pub dialog_type: super::DialogType,
218 pub accounts: Vec<super::Account>,
219 #[serde(default)]
220 #[doc = "These exist primarily so that the caller can verify the\n RP context was used appropriately."]
221 pub title: String,
222 #[builder(default)]
223 #[serde(skip_serializing_if = "Option::is_none")]
224 #[serde(default)]
225 pub subtitle: Option<String>,
226 }
227 #[allow(deprecated)]
228 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
229 pub struct DialogClosedEvent {
230 pub params: DialogClosedEventParams,
231 }
232 #[allow(deprecated)]
233 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
234 #[serde(rename_all = "camelCase")]
235 pub struct DialogClosedEventParams {
236 #[serde(default)]
237 pub dialog_id: String,
238 }
239}