1use serde::{Deserialize, Serialize};
2#[doc = "Enable the WebAuthn domain and start intercepting credential storage and\nretrieval with a virtual authenticator.\n[enable](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-enable)"]
3#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
4pub struct EnableParams {
5 #[doc = "Whether to enable the WebAuthn user interface. Enabling the UI is\nrecommended for debugging and demo purposes, as it is closer to the real\nexperience. Disabling the UI is recommended for automated testing.\nSupported at the embedder's discretion if UI is available.\nDefaults to false."]
6 #[serde(rename = "enableUI")]
7 #[serde(skip_serializing_if = "Option::is_none")]
8 #[serde(default)]
9 pub enable_ui: Option<bool>,
10}
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
12pub enum EnableMethod {
13 #[serde(rename = "WebAuthn.enable")]
14 Enable,
15}
16#[doc = "Enable the WebAuthn domain and start intercepting credential storage and\nretrieval with a virtual authenticator.\n[enable](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-enable)"]
17#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
18pub struct Enable {
19 pub method: EnableMethod,
20 pub params: EnableParams,
21}
22impl Enable {
23 pub const IDENTIFIER: &'static str = "WebAuthn.enable";
24 pub fn identifier(&self) -> &'static str {
25 Self::IDENTIFIER
26 }
27}
28impl crate::CommandResult for Enable {
29 type Result = super::results::EnableResult;
30}
31#[doc = "Disable the WebAuthn domain.\n[disable](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-disable)"]
32#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
33pub struct DisableParams {}
34#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
35pub enum DisableMethod {
36 #[serde(rename = "WebAuthn.disable")]
37 Disable,
38}
39#[doc = "Disable the WebAuthn domain.\n[disable](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-disable)"]
40#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
41pub struct Disable {
42 pub method: DisableMethod,
43 pub params: DisableParams,
44}
45impl Disable {
46 pub const IDENTIFIER: &'static str = "WebAuthn.disable";
47 pub fn identifier(&self) -> &'static str {
48 Self::IDENTIFIER
49 }
50}
51impl crate::CommandResult for Disable {
52 type Result = super::results::DisableResult;
53}
54#[doc = "Creates and adds a virtual authenticator.\n[addVirtualAuthenticator](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-addVirtualAuthenticator)"]
55#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
56pub struct AddVirtualAuthenticatorParams {
57 #[serde(rename = "options")]
58 pub options: super::types::VirtualAuthenticatorOptions,
59}
60impl AddVirtualAuthenticatorParams {
61 pub fn new(options: impl Into<super::types::VirtualAuthenticatorOptions>) -> Self {
62 Self {
63 options: options.into(),
64 }
65 }
66}
67#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
68pub enum AddVirtualAuthenticatorMethod {
69 #[serde(rename = "WebAuthn.addVirtualAuthenticator")]
70 AddVirtualAuthenticator,
71}
72#[doc = "Creates and adds a virtual authenticator.\n[addVirtualAuthenticator](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-addVirtualAuthenticator)"]
73#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
74pub struct AddVirtualAuthenticator {
75 pub method: AddVirtualAuthenticatorMethod,
76 pub params: AddVirtualAuthenticatorParams,
77}
78impl AddVirtualAuthenticator {
79 pub const IDENTIFIER: &'static str = "WebAuthn.addVirtualAuthenticator";
80 pub fn identifier(&self) -> &'static str {
81 Self::IDENTIFIER
82 }
83}
84impl crate::CommandResult for AddVirtualAuthenticator {
85 type Result = super::results::AddVirtualAuthenticatorResult;
86}
87#[doc = "Resets parameters isBogusSignature, isBadUV, isBadUP to false if they are not present.\n[setResponseOverrideBits](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-setResponseOverrideBits)"]
88#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
89pub struct SetResponseOverrideBitsParams {
90 #[serde(rename = "authenticatorId")]
91 pub authenticator_id: super::types::AuthenticatorId,
92 #[doc = "If isBogusSignature is set, overrides the signature in the authenticator response to be zero.\nDefaults to false."]
93 #[serde(rename = "isBogusSignature")]
94 #[serde(skip_serializing_if = "Option::is_none")]
95 #[serde(default)]
96 pub is_bogus_signature: Option<bool>,
97 #[doc = "If isBadUV is set, overrides the UV bit in the flags in the authenticator response to\nbe zero. Defaults to false."]
98 #[serde(rename = "isBadUV")]
99 #[serde(skip_serializing_if = "Option::is_none")]
100 #[serde(default)]
101 pub is_bad_uv: Option<bool>,
102 #[doc = "If isBadUP is set, overrides the UP bit in the flags in the authenticator response to\nbe zero. Defaults to false."]
103 #[serde(rename = "isBadUP")]
104 #[serde(skip_serializing_if = "Option::is_none")]
105 #[serde(default)]
106 pub is_bad_up: Option<bool>,
107}
108impl SetResponseOverrideBitsParams {
109 pub fn new(authenticator_id: impl Into<super::types::AuthenticatorId>) -> Self {
110 Self {
111 authenticator_id: authenticator_id.into(),
112 is_bogus_signature: None,
113 is_bad_uv: None,
114 is_bad_up: None,
115 }
116 }
117}
118#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
119pub enum SetResponseOverrideBitsMethod {
120 #[serde(rename = "WebAuthn.setResponseOverrideBits")]
121 SetResponseOverrideBits,
122}
123#[doc = "Resets parameters isBogusSignature, isBadUV, isBadUP to false if they are not present.\n[setResponseOverrideBits](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-setResponseOverrideBits)"]
124#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
125pub struct SetResponseOverrideBits {
126 pub method: SetResponseOverrideBitsMethod,
127 pub params: SetResponseOverrideBitsParams,
128}
129impl SetResponseOverrideBits {
130 pub const IDENTIFIER: &'static str = "WebAuthn.setResponseOverrideBits";
131 pub fn identifier(&self) -> &'static str {
132 Self::IDENTIFIER
133 }
134}
135impl crate::CommandResult for SetResponseOverrideBits {
136 type Result = super::results::SetResponseOverrideBitsResult;
137}
138#[doc = "Removes the given authenticator.\n[removeVirtualAuthenticator](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-removeVirtualAuthenticator)"]
139#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
140pub struct RemoveVirtualAuthenticatorParams {
141 #[serde(rename = "authenticatorId")]
142 pub authenticator_id: super::types::AuthenticatorId,
143}
144impl RemoveVirtualAuthenticatorParams {
145 pub fn new(authenticator_id: impl Into<super::types::AuthenticatorId>) -> Self {
146 Self {
147 authenticator_id: authenticator_id.into(),
148 }
149 }
150}
151#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
152pub enum RemoveVirtualAuthenticatorMethod {
153 #[serde(rename = "WebAuthn.removeVirtualAuthenticator")]
154 RemoveVirtualAuthenticator,
155}
156#[doc = "Removes the given authenticator.\n[removeVirtualAuthenticator](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-removeVirtualAuthenticator)"]
157#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
158pub struct RemoveVirtualAuthenticator {
159 pub method: RemoveVirtualAuthenticatorMethod,
160 pub params: RemoveVirtualAuthenticatorParams,
161}
162impl RemoveVirtualAuthenticator {
163 pub const IDENTIFIER: &'static str = "WebAuthn.removeVirtualAuthenticator";
164 pub fn identifier(&self) -> &'static str {
165 Self::IDENTIFIER
166 }
167}
168impl crate::CommandResult for RemoveVirtualAuthenticator {
169 type Result = super::results::RemoveVirtualAuthenticatorResult;
170}
171#[doc = "Adds the credential to the specified authenticator.\n[addCredential](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-addCredential)"]
172#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
173pub struct AddCredentialParams {
174 #[serde(rename = "authenticatorId")]
175 pub authenticator_id: super::types::AuthenticatorId,
176 #[serde(rename = "credential")]
177 pub credential: super::types::Credential,
178}
179impl AddCredentialParams {
180 pub fn new(
181 authenticator_id: impl Into<super::types::AuthenticatorId>,
182 credential: impl Into<super::types::Credential>,
183 ) -> Self {
184 Self {
185 authenticator_id: authenticator_id.into(),
186 credential: credential.into(),
187 }
188 }
189}
190#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
191pub enum AddCredentialMethod {
192 #[serde(rename = "WebAuthn.addCredential")]
193 AddCredential,
194}
195#[doc = "Adds the credential to the specified authenticator.\n[addCredential](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-addCredential)"]
196#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
197pub struct AddCredential {
198 pub method: AddCredentialMethod,
199 pub params: AddCredentialParams,
200}
201impl AddCredential {
202 pub const IDENTIFIER: &'static str = "WebAuthn.addCredential";
203 pub fn identifier(&self) -> &'static str {
204 Self::IDENTIFIER
205 }
206}
207impl crate::CommandResult for AddCredential {
208 type Result = super::results::AddCredentialResult;
209}
210#[doc = "Returns a single credential stored in the given virtual authenticator that\nmatches the credential ID.\n[getCredential](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-getCredential)"]
211#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
212pub struct GetCredentialParams {
213 #[serde(rename = "authenticatorId")]
214 pub authenticator_id: super::types::AuthenticatorId,
215 #[serde(rename = "credentialId")]
216 pub credential_id: crate::Binary,
217}
218impl GetCredentialParams {
219 pub fn new(
220 authenticator_id: impl Into<super::types::AuthenticatorId>,
221 credential_id: impl Into<crate::Binary>,
222 ) -> Self {
223 Self {
224 authenticator_id: authenticator_id.into(),
225 credential_id: credential_id.into(),
226 }
227 }
228}
229#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
230pub enum GetCredentialMethod {
231 #[serde(rename = "WebAuthn.getCredential")]
232 GetCredential,
233}
234#[doc = "Returns a single credential stored in the given virtual authenticator that\nmatches the credential ID.\n[getCredential](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-getCredential)"]
235#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
236pub struct GetCredential {
237 pub method: GetCredentialMethod,
238 pub params: GetCredentialParams,
239}
240impl GetCredential {
241 pub const IDENTIFIER: &'static str = "WebAuthn.getCredential";
242 pub fn identifier(&self) -> &'static str {
243 Self::IDENTIFIER
244 }
245}
246impl crate::CommandResult for GetCredential {
247 type Result = super::results::GetCredentialResult;
248}
249#[doc = "Returns all the credentials stored in the given virtual authenticator.\n[getCredentials](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-getCredentials)"]
250#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
251pub struct GetCredentialsParams {
252 #[serde(rename = "authenticatorId")]
253 pub authenticator_id: super::types::AuthenticatorId,
254}
255impl GetCredentialsParams {
256 pub fn new(authenticator_id: impl Into<super::types::AuthenticatorId>) -> Self {
257 Self {
258 authenticator_id: authenticator_id.into(),
259 }
260 }
261}
262#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
263pub enum GetCredentialsMethod {
264 #[serde(rename = "WebAuthn.getCredentials")]
265 GetCredentials,
266}
267#[doc = "Returns all the credentials stored in the given virtual authenticator.\n[getCredentials](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-getCredentials)"]
268#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
269pub struct GetCredentials {
270 pub method: GetCredentialsMethod,
271 pub params: GetCredentialsParams,
272}
273impl GetCredentials {
274 pub const IDENTIFIER: &'static str = "WebAuthn.getCredentials";
275 pub fn identifier(&self) -> &'static str {
276 Self::IDENTIFIER
277 }
278}
279impl crate::CommandResult for GetCredentials {
280 type Result = super::results::GetCredentialsResult;
281}
282#[doc = "Removes a credential from the authenticator.\n[removeCredential](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-removeCredential)"]
283#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
284pub struct RemoveCredentialParams {
285 #[serde(rename = "authenticatorId")]
286 pub authenticator_id: super::types::AuthenticatorId,
287 #[serde(rename = "credentialId")]
288 pub credential_id: crate::Binary,
289}
290impl RemoveCredentialParams {
291 pub fn new(
292 authenticator_id: impl Into<super::types::AuthenticatorId>,
293 credential_id: impl Into<crate::Binary>,
294 ) -> Self {
295 Self {
296 authenticator_id: authenticator_id.into(),
297 credential_id: credential_id.into(),
298 }
299 }
300}
301#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
302pub enum RemoveCredentialMethod {
303 #[serde(rename = "WebAuthn.removeCredential")]
304 RemoveCredential,
305}
306#[doc = "Removes a credential from the authenticator.\n[removeCredential](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-removeCredential)"]
307#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
308pub struct RemoveCredential {
309 pub method: RemoveCredentialMethod,
310 pub params: RemoveCredentialParams,
311}
312impl RemoveCredential {
313 pub const IDENTIFIER: &'static str = "WebAuthn.removeCredential";
314 pub fn identifier(&self) -> &'static str {
315 Self::IDENTIFIER
316 }
317}
318impl crate::CommandResult for RemoveCredential {
319 type Result = super::results::RemoveCredentialResult;
320}
321#[doc = "Clears all the credentials from the specified device.\n[clearCredentials](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-clearCredentials)"]
322#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
323pub struct ClearCredentialsParams {
324 #[serde(rename = "authenticatorId")]
325 pub authenticator_id: super::types::AuthenticatorId,
326}
327impl ClearCredentialsParams {
328 pub fn new(authenticator_id: impl Into<super::types::AuthenticatorId>) -> Self {
329 Self {
330 authenticator_id: authenticator_id.into(),
331 }
332 }
333}
334#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
335pub enum ClearCredentialsMethod {
336 #[serde(rename = "WebAuthn.clearCredentials")]
337 ClearCredentials,
338}
339#[doc = "Clears all the credentials from the specified device.\n[clearCredentials](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-clearCredentials)"]
340#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
341pub struct ClearCredentials {
342 pub method: ClearCredentialsMethod,
343 pub params: ClearCredentialsParams,
344}
345impl ClearCredentials {
346 pub const IDENTIFIER: &'static str = "WebAuthn.clearCredentials";
347 pub fn identifier(&self) -> &'static str {
348 Self::IDENTIFIER
349 }
350}
351impl crate::CommandResult for ClearCredentials {
352 type Result = super::results::ClearCredentialsResult;
353}
354#[doc = "Sets whether User Verification succeeds or fails for an authenticator.\nThe default is true.\n[setUserVerified](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-setUserVerified)"]
355#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
356pub struct SetUserVerifiedParams {
357 #[serde(rename = "authenticatorId")]
358 pub authenticator_id: super::types::AuthenticatorId,
359 #[serde(rename = "isUserVerified")]
360 pub is_user_verified: bool,
361}
362impl SetUserVerifiedParams {
363 pub fn new(
364 authenticator_id: impl Into<super::types::AuthenticatorId>,
365 is_user_verified: impl Into<bool>,
366 ) -> Self {
367 Self {
368 authenticator_id: authenticator_id.into(),
369 is_user_verified: is_user_verified.into(),
370 }
371 }
372}
373#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
374pub enum SetUserVerifiedMethod {
375 #[serde(rename = "WebAuthn.setUserVerified")]
376 SetUserVerified,
377}
378#[doc = "Sets whether User Verification succeeds or fails for an authenticator.\nThe default is true.\n[setUserVerified](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-setUserVerified)"]
379#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
380pub struct SetUserVerified {
381 pub method: SetUserVerifiedMethod,
382 pub params: SetUserVerifiedParams,
383}
384impl SetUserVerified {
385 pub const IDENTIFIER: &'static str = "WebAuthn.setUserVerified";
386 pub fn identifier(&self) -> &'static str {
387 Self::IDENTIFIER
388 }
389}
390impl crate::CommandResult for SetUserVerified {
391 type Result = super::results::SetUserVerifiedResult;
392}
393#[doc = "Sets whether tests of user presence will succeed immediately (if true) or fail to resolve (if false) for an authenticator.\nThe default is true.\n[setAutomaticPresenceSimulation](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-setAutomaticPresenceSimulation)"]
394#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
395pub struct SetAutomaticPresenceSimulationParams {
396 #[serde(rename = "authenticatorId")]
397 pub authenticator_id: super::types::AuthenticatorId,
398 #[serde(rename = "enabled")]
399 pub enabled: bool,
400}
401impl SetAutomaticPresenceSimulationParams {
402 pub fn new(
403 authenticator_id: impl Into<super::types::AuthenticatorId>,
404 enabled: impl Into<bool>,
405 ) -> Self {
406 Self {
407 authenticator_id: authenticator_id.into(),
408 enabled: enabled.into(),
409 }
410 }
411}
412#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
413pub enum SetAutomaticPresenceSimulationMethod {
414 #[serde(rename = "WebAuthn.setAutomaticPresenceSimulation")]
415 SetAutomaticPresenceSimulation,
416}
417#[doc = "Sets whether tests of user presence will succeed immediately (if true) or fail to resolve (if false) for an authenticator.\nThe default is true.\n[setAutomaticPresenceSimulation](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-setAutomaticPresenceSimulation)"]
418#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
419pub struct SetAutomaticPresenceSimulation {
420 pub method: SetAutomaticPresenceSimulationMethod,
421 pub params: SetAutomaticPresenceSimulationParams,
422}
423impl SetAutomaticPresenceSimulation {
424 pub const IDENTIFIER: &'static str = "WebAuthn.setAutomaticPresenceSimulation";
425 pub fn identifier(&self) -> &'static str {
426 Self::IDENTIFIER
427 }
428}
429impl crate::CommandResult for SetAutomaticPresenceSimulation {
430 type Result = super::results::SetAutomaticPresenceSimulationResult;
431}
432#[doc = "Allows setting credential properties.\nhttps://w3c.github.io/webauthn/#sctn-automation-set-credential-properties\n[setCredentialProperties](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-setCredentialProperties)"]
433#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
434pub struct SetCredentialPropertiesParams {
435 #[serde(rename = "authenticatorId")]
436 pub authenticator_id: super::types::AuthenticatorId,
437 #[serde(rename = "credentialId")]
438 pub credential_id: crate::Binary,
439 #[serde(rename = "backupEligibility")]
440 #[serde(skip_serializing_if = "Option::is_none")]
441 #[serde(default)]
442 pub backup_eligibility: Option<bool>,
443 #[serde(rename = "backupState")]
444 #[serde(skip_serializing_if = "Option::is_none")]
445 #[serde(default)]
446 pub backup_state: Option<bool>,
447}
448impl SetCredentialPropertiesParams {
449 pub fn new(
450 authenticator_id: impl Into<super::types::AuthenticatorId>,
451 credential_id: impl Into<crate::Binary>,
452 ) -> Self {
453 Self {
454 authenticator_id: authenticator_id.into(),
455 credential_id: credential_id.into(),
456 backup_eligibility: None,
457 backup_state: None,
458 }
459 }
460}
461#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
462pub enum SetCredentialPropertiesMethod {
463 #[serde(rename = "WebAuthn.setCredentialProperties")]
464 SetCredentialProperties,
465}
466#[doc = "Allows setting credential properties.\nhttps://w3c.github.io/webauthn/#sctn-automation-set-credential-properties\n[setCredentialProperties](https://chromedevtools.github.io/devtools-protocol/tot/WebAuthn/#method-setCredentialProperties)"]
467#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
468pub struct SetCredentialProperties {
469 pub method: SetCredentialPropertiesMethod,
470 pub params: SetCredentialPropertiesParams,
471}
472impl SetCredentialProperties {
473 pub const IDENTIFIER: &'static str = "WebAuthn.setCredentialProperties";
474 pub fn identifier(&self) -> &'static str {
475 Self::IDENTIFIER
476 }
477}
478impl crate::CommandResult for SetCredentialProperties {
479 type Result = super::results::SetCredentialPropertiesResult;
480}
481group_enum ! (WebAuthnCommands { Enable (Enable) , Disable (Disable) , AddVirtualAuthenticator (AddVirtualAuthenticator) , SetResponseOverrideBits (SetResponseOverrideBits) , RemoveVirtualAuthenticator (RemoveVirtualAuthenticator) , AddCredential (AddCredential) , GetCredential (GetCredential) , GetCredentials (GetCredentials) , RemoveCredential (RemoveCredential) , ClearCredentials (ClearCredentials) , SetUserVerified (SetUserVerified) , SetAutomaticPresenceSimulation (SetAutomaticPresenceSimulation) , SetCredentialProperties (SetCredentialProperties) } + identifiable);