bitwarden_auth/login/api/response/
user_decryption_options_api_response.rs

1use bitwarden_api_api::models::MasterPasswordUnlockResponseModel;
2use serde::{Deserialize, Serialize};
3
4use crate::login::api::response::{
5    KeyConnectorUserDecryptionOptionApiResponse, TrustedDeviceUserDecryptionOptionApiResponse,
6    WebAuthnPrfUserDecryptionOptionApiResponse,
7};
8
9/// Provides user decryption options used to unlock user's vault.
10#[derive(Serialize, Deserialize, Debug, PartialEq)]
11pub(crate) struct UserDecryptionOptionsApiResponse {
12    /// Contains information needed to unlock user's vault with master password.
13    /// None when user does not have a master password.
14    #[serde(
15        rename = "MasterPasswordUnlock",
16        skip_serializing_if = "Option::is_none"
17    )]
18    pub master_password_unlock: Option<MasterPasswordUnlockResponseModel>,
19
20    /// Trusted Device Decryption Option.
21    #[serde(
22        rename = "TrustedDeviceOption",
23        skip_serializing_if = "Option::is_none"
24    )]
25    pub trusted_device_option: Option<TrustedDeviceUserDecryptionOptionApiResponse>,
26
27    /// Key Connector Decryption Option.
28    /// This option is mutually exlusive with the Trusted Device option as you
29    /// must configure one or the other in the Organization SSO configuration.
30    #[serde(rename = "KeyConnectorOption", skip_serializing_if = "Option::is_none")]
31    pub key_connector_option: Option<KeyConnectorUserDecryptionOptionApiResponse>,
32
33    /// WebAuthn PRF Decryption Option.
34    #[serde(rename = "WebAuthnPrfOption", skip_serializing_if = "Option::is_none")]
35    pub webauthn_prf_option: Option<WebAuthnPrfUserDecryptionOptionApiResponse>,
36}