Skip to main content

rustenium_cdp_definitions/browser_protocol/web_authn/
commands.rs

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);