bitwarden_api_identity/models/
assertion_options.rs1use serde::{Deserialize, Serialize};
12use serde_with::serde_as;
13
14use crate::models;
15
16#[serde_as]
17#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
18pub struct AssertionOptions {
19 #[serde_as(
20 as = "Option<serde_with::base64::Base64<serde_with::base64::UrlSafe, serde_with::formats::Unpadded>>"
21 )]
22 #[serde(
23 rename = "challenge",
24 alias = "Challenge",
25 skip_serializing_if = "Option::is_none"
26 )]
27 pub challenge: Option<Vec<u8>>,
28 #[serde(
29 rename = "timeout",
30 alias = "Timeout",
31 skip_serializing_if = "Option::is_none"
32 )]
33 pub timeout: Option<i64>,
34 #[serde(
35 rename = "rpId",
36 alias = "RpId",
37 skip_serializing_if = "Option::is_none"
38 )]
39 pub rp_id: Option<String>,
40 #[serde(
41 rename = "allowCredentials",
42 alias = "AllowCredentials",
43 skip_serializing_if = "Option::is_none"
44 )]
45 pub allow_credentials: Option<Vec<models::PublicKeyCredentialDescriptor>>,
46 #[serde(
47 rename = "userVerification",
48 alias = "UserVerification",
49 skip_serializing_if = "Option::is_none"
50 )]
51 pub user_verification: Option<models::UserVerificationRequirement>,
52 #[serde(
53 rename = "hints",
54 alias = "Hints",
55 skip_serializing_if = "Option::is_none"
56 )]
57 pub hints: Option<Vec<models::PublicKeyCredentialHint>>,
58 #[serde(
59 rename = "extensions",
60 alias = "Extensions",
61 skip_serializing_if = "Option::is_none"
62 )]
63 pub extensions: Option<Box<models::AuthenticationExtensionsClientInputs>>,
64}
65
66impl AssertionOptions {
67 pub fn new() -> AssertionOptions {
68 AssertionOptions {
69 challenge: None,
70 timeout: None,
71 rp_id: None,
72 allow_credentials: None,
73 user_verification: None,
74 hints: None,
75 extensions: None,
76 }
77 }
78}