cdp-protocol 0.3.1

A Rust implementation of the Chrome DevTools Protocol
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
// Auto-generated from Chrome at version 146.0.7680.165 domain: WebAuthn
#![allow(dead_code)]
#[allow(unused_imports)]
use super::types::*;
#[allow(unused_imports)]
use derive_builder::Builder;
#[allow(unused_imports)]
use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use serde_json::Value as Json;
pub type AuthenticatorId = String;
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
pub enum AuthenticatorProtocol {
    #[serde(rename = "u2f")]
    U2F,
    #[serde(rename = "ctap2")]
    Ctap2,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
pub enum Ctap2Version {
    #[serde(rename = "ctap2_0")]
    Ctap20,
    #[serde(rename = "ctap2_1")]
    Ctap21,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
pub enum AuthenticatorTransport {
    #[serde(rename = "usb")]
    Usb,
    #[serde(rename = "nfc")]
    Nfc,
    #[serde(rename = "ble")]
    Ble,
    #[serde(rename = "cable")]
    Cable,
    #[serde(rename = "internal")]
    Internal,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
pub struct VirtualAuthenticatorOptions {
    pub protocol: AuthenticatorProtocol,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[doc = "Defaults to ctap2_0. Ignored if |protocol| == u2f."]
    pub ctap_2_version: Option<Ctap2Version>,
    pub transport: AuthenticatorTransport,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "Defaults to false."]
    pub has_resident_key: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "Defaults to false."]
    pub has_user_verification: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "If set to true, the authenticator will support the largeBlob extension.\n <https://w3c.github.io/webauthn#largeBlob>\n Defaults to false."]
    pub has_large_blob: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "If set to true, the authenticator will support the credBlob extension.\n <https://fidoalliance.org/specs/fido-v2.1-rd-20201208/fido-client-to-authenticator-protocol-v2.1-rd-20201208.html#sctn-credBlob-extension>\n Defaults to false."]
    pub has_cred_blob: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "If set to true, the authenticator will support the minPinLength extension.\n <https://fidoalliance.org/specs/fido-v2.1-ps-20210615/fido-client-to-authenticator-protocol-v2.1-ps-20210615.html#sctn-minpinlength-extension>\n Defaults to false."]
    pub has_min_pin_length: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "If set to true, the authenticator will support the prf extension.\n <https://w3c.github.io/webauthn/#prf-extension>\n Defaults to false."]
    pub has_prf: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "If set to true, tests of user presence will succeed immediately.\n Otherwise, they will not be resolved. Defaults to true."]
    pub automatic_presence_simulation: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "Sets whether User Verification succeeds or fails for an authenticator.\n Defaults to false."]
    pub is_user_verified: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "Credentials created by this authenticator will have the backup\n eligibility (BE) flag set to this value. Defaults to false.\n <https://w3c.github.io/webauthn/#sctn-credential-backup>"]
    pub default_backup_eligibility: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "Credentials created by this authenticator will have the backup state\n (BS) flag set to this value. Defaults to false.\n <https://w3c.github.io/webauthn/#sctn-credential-backup>"]
    pub default_backup_state: Option<bool>,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
pub struct Credential {
    pub credential_id: String,
    #[serde(default)]
    pub is_resident_credential: bool,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "Relying Party ID the credential is scoped to. Must be set when adding a\n credential."]
    pub rp_id: Option<String>,
    #[doc = "The ECDSA P-256 private key in PKCS#8 format."]
    pub private_key: String,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[doc = "An opaque byte sequence with a maximum size of 64 bytes mapping the\n credential to a specific user."]
    pub user_handle: Option<String>,
    #[serde(default)]
    #[doc = "Signature counter. This is incremented by one for each successful\n assertion.\n See <https://w3c.github.io/webauthn/#signature-counter>"]
    pub sign_count: JsUInt,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[doc = "The large blob associated with the credential.\n See <https://w3c.github.io/webauthn/#sctn-large-blob-extension>"]
    pub large_blob: Option<String>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "Assertions returned by this credential will have the backup eligibility\n (BE) flag set to this value. Defaults to the authenticator's\n defaultBackupEligibility value."]
    pub backup_eligibility: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "Assertions returned by this credential will have the backup state (BS)\n flag set to this value. Defaults to the authenticator's\n defaultBackupState value."]
    pub backup_state: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "The credential's user.name property. Equivalent to empty if not set.\n <https://w3c.github.io/webauthn/#dom-publickeycredentialentity-name>"]
    pub user_name: Option<String>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "The credential's user.displayName property. Equivalent to empty if\n not set.\n <https://w3c.github.io/webauthn/#dom-publickeycredentialuserentity-displayname>"]
    pub user_display_name: Option<String>,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Enable the WebAuthn domain and start intercepting credential storage and\n retrieval with a virtual authenticator."]
pub struct Enable {
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "Whether to enable the WebAuthn user interface. Enabling the UI is\n recommended for debugging and demo purposes, as it is closer to the real\n experience. Disabling the UI is recommended for automated testing.\n Supported at the embedder's discretion if UI is available.\n Defaults to false."]
    #[serde(rename = "enableUI")]
    pub enable_ui: Option<bool>,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
pub struct Disable(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Creates and adds a virtual authenticator."]
pub struct AddVirtualAuthenticator {
    pub options: VirtualAuthenticatorOptions,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Resets parameters isBogusSignature, isBadUV, isBadUP to false if they are not present."]
pub struct SetResponseOverrideBits {
    pub authenticator_id: AuthenticatorId,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "If isBogusSignature is set, overrides the signature in the authenticator response to be zero.\n Defaults to false."]
    pub is_bogus_signature: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "If isBadUV is set, overrides the UV bit in the flags in the authenticator response to\n be zero. Defaults to false."]
    #[serde(rename = "isBadUV")]
    pub is_bad_uv: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    #[doc = "If isBadUP is set, overrides the UP bit in the flags in the authenticator response to\n be zero. Defaults to false."]
    #[serde(rename = "isBadUP")]
    pub is_bad_up: Option<bool>,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Removes the given authenticator."]
pub struct RemoveVirtualAuthenticator {
    pub authenticator_id: AuthenticatorId,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Adds the credential to the specified authenticator."]
pub struct AddCredential {
    pub authenticator_id: AuthenticatorId,
    pub credential: Credential,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Returns a single credential stored in the given virtual authenticator that\n matches the credential ID."]
pub struct GetCredential {
    pub authenticator_id: AuthenticatorId,
    pub credential_id: Vec<u8>,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Returns all the credentials stored in the given virtual authenticator."]
pub struct GetCredentials {
    pub authenticator_id: AuthenticatorId,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Removes a credential from the authenticator."]
pub struct RemoveCredential {
    pub authenticator_id: AuthenticatorId,
    pub credential_id: Vec<u8>,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Clears all the credentials from the specified device."]
pub struct ClearCredentials {
    pub authenticator_id: AuthenticatorId,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Sets whether User Verification succeeds or fails for an authenticator.\n The default is true."]
pub struct SetUserVerified {
    pub authenticator_id: AuthenticatorId,
    #[serde(default)]
    pub is_user_verified: bool,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Sets whether tests of user presence will succeed immediately (if true) or fail to resolve (if false) for an authenticator.\n The default is true."]
pub struct SetAutomaticPresenceSimulation {
    pub authenticator_id: AuthenticatorId,
    #[serde(default)]
    pub enabled: bool,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[builder(setter(into, strip_option))]
#[serde(rename_all = "camelCase")]
#[doc = "Allows setting credential properties.\n <https://w3c.github.io/webauthn/#sctn-automation-set-credential-properties>"]
pub struct SetCredentialProperties {
    pub authenticator_id: AuthenticatorId,
    pub credential_id: Vec<u8>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    pub backup_eligibility: Option<bool>,
    #[builder(default)]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[serde(default)]
    pub backup_state: Option<bool>,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Enable the WebAuthn domain and start intercepting credential storage and\n retrieval with a virtual authenticator."]
pub struct EnableReturnObject(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Disable the WebAuthn domain."]
pub struct DisableReturnObject(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[serde(rename_all = "camelCase")]
#[doc = "Creates and adds a virtual authenticator."]
pub struct AddVirtualAuthenticatorReturnObject {
    pub authenticator_id: AuthenticatorId,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Resets parameters isBogusSignature, isBadUV, isBadUP to false if they are not present."]
pub struct SetResponseOverrideBitsReturnObject(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Removes the given authenticator."]
pub struct RemoveVirtualAuthenticatorReturnObject(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Adds the credential to the specified authenticator."]
pub struct AddCredentialReturnObject(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[serde(rename_all = "camelCase")]
#[doc = "Returns a single credential stored in the given virtual authenticator that\n matches the credential ID."]
pub struct GetCredentialReturnObject {
    pub credential: Credential,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
#[serde(rename_all = "camelCase")]
#[doc = "Returns all the credentials stored in the given virtual authenticator."]
pub struct GetCredentialsReturnObject {
    pub credentials: Vec<Credential>,
}
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Removes a credential from the authenticator."]
pub struct RemoveCredentialReturnObject(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Clears all the credentials from the specified device."]
pub struct ClearCredentialsReturnObject(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Sets whether User Verification succeeds or fails for an authenticator.\n The default is true."]
pub struct SetUserVerifiedReturnObject(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Sets whether tests of user presence will succeed immediately (if true) or fail to resolve (if false) for an authenticator.\n The default is true."]
pub struct SetAutomaticPresenceSimulationReturnObject(pub Option<Json>);
#[allow(deprecated)]
#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
#[doc = "Allows setting credential properties.\n <https://w3c.github.io/webauthn/#sctn-automation-set-credential-properties>"]
pub struct SetCredentialPropertiesReturnObject(pub Option<Json>);
#[allow(deprecated)]
impl Method for Enable {
    const NAME: &'static str = "WebAuthn.enable";
    type ReturnObject = EnableReturnObject;
}
#[allow(deprecated)]
impl Method for Disable {
    const NAME: &'static str = "WebAuthn.disable";
    type ReturnObject = DisableReturnObject;
}
#[allow(deprecated)]
impl Method for AddVirtualAuthenticator {
    const NAME: &'static str = "WebAuthn.addVirtualAuthenticator";
    type ReturnObject = AddVirtualAuthenticatorReturnObject;
}
#[allow(deprecated)]
impl Method for SetResponseOverrideBits {
    const NAME: &'static str = "WebAuthn.setResponseOverrideBits";
    type ReturnObject = SetResponseOverrideBitsReturnObject;
}
#[allow(deprecated)]
impl Method for RemoveVirtualAuthenticator {
    const NAME: &'static str = "WebAuthn.removeVirtualAuthenticator";
    type ReturnObject = RemoveVirtualAuthenticatorReturnObject;
}
#[allow(deprecated)]
impl Method for AddCredential {
    const NAME: &'static str = "WebAuthn.addCredential";
    type ReturnObject = AddCredentialReturnObject;
}
#[allow(deprecated)]
impl Method for GetCredential {
    const NAME: &'static str = "WebAuthn.getCredential";
    type ReturnObject = GetCredentialReturnObject;
}
#[allow(deprecated)]
impl Method for GetCredentials {
    const NAME: &'static str = "WebAuthn.getCredentials";
    type ReturnObject = GetCredentialsReturnObject;
}
#[allow(deprecated)]
impl Method for RemoveCredential {
    const NAME: &'static str = "WebAuthn.removeCredential";
    type ReturnObject = RemoveCredentialReturnObject;
}
#[allow(deprecated)]
impl Method for ClearCredentials {
    const NAME: &'static str = "WebAuthn.clearCredentials";
    type ReturnObject = ClearCredentialsReturnObject;
}
#[allow(deprecated)]
impl Method for SetUserVerified {
    const NAME: &'static str = "WebAuthn.setUserVerified";
    type ReturnObject = SetUserVerifiedReturnObject;
}
#[allow(deprecated)]
impl Method for SetAutomaticPresenceSimulation {
    const NAME: &'static str = "WebAuthn.setAutomaticPresenceSimulation";
    type ReturnObject = SetAutomaticPresenceSimulationReturnObject;
}
#[allow(deprecated)]
impl Method for SetCredentialProperties {
    const NAME: &'static str = "WebAuthn.setCredentialProperties";
    type ReturnObject = SetCredentialPropertiesReturnObject;
}
#[allow(dead_code)]
pub mod events {
    #[allow(unused_imports)]
    use super::super::types::*;
    #[allow(unused_imports)]
    use derive_builder::Builder;
    #[allow(unused_imports)]
    use serde::{Deserialize, Serialize};
    #[allow(unused_imports)]
    use serde_json::Value as Json;
    #[allow(deprecated)]
    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
    pub struct CredentialAddedEvent {
        pub params: CredentialAddedEventParams,
    }
    #[allow(deprecated)]
    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
    #[serde(rename_all = "camelCase")]
    pub struct CredentialAddedEventParams {
        pub authenticator_id: super::AuthenticatorId,
        pub credential: super::Credential,
    }
    #[allow(deprecated)]
    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
    pub struct CredentialDeletedEvent {
        pub params: CredentialDeletedEventParams,
    }
    #[allow(deprecated)]
    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
    #[serde(rename_all = "camelCase")]
    pub struct CredentialDeletedEventParams {
        pub authenticator_id: super::AuthenticatorId,
        #[serde(default)]
        pub credential_id: String,
    }
    #[allow(deprecated)]
    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
    pub struct CredentialUpdatedEvent {
        pub params: CredentialUpdatedEventParams,
    }
    #[allow(deprecated)]
    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
    #[serde(rename_all = "camelCase")]
    pub struct CredentialUpdatedEventParams {
        pub authenticator_id: super::AuthenticatorId,
        pub credential: super::Credential,
    }
    #[allow(deprecated)]
    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
    pub struct CredentialAssertedEvent {
        pub params: CredentialAssertedEventParams,
    }
    #[allow(deprecated)]
    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
    #[serde(rename_all = "camelCase")]
    pub struct CredentialAssertedEventParams {
        pub authenticator_id: super::AuthenticatorId,
        pub credential: super::Credential,
    }
}