use serde::{Deserialize, Serialize};
use serde_with::serde_as;
use crate::models;
#[serde_as]
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CredentialCreateOptions {
#[serde(
rename = "status",
alias = "Status",
skip_serializing_if = "Option::is_none"
)]
pub status: Option<String>,
#[serde(
rename = "errorMessage",
alias = "ErrorMessage",
skip_serializing_if = "Option::is_none"
)]
pub error_message: Option<String>,
#[serde(rename = "rp", alias = "Rp", skip_serializing_if = "Option::is_none")]
pub rp: Option<Box<models::PublicKeyCredentialRpEntity>>,
#[serde(
rename = "user",
alias = "User",
skip_serializing_if = "Option::is_none"
)]
pub user: Option<Box<models::Fido2User>>,
#[serde_as(
as = "Option<serde_with::base64::Base64<serde_with::base64::UrlSafe, serde_with::formats::Unpadded>>"
)]
#[serde(
rename = "challenge",
alias = "Challenge",
skip_serializing_if = "Option::is_none"
)]
pub challenge: Option<Vec<u8>>,
#[serde(
rename = "pubKeyCredParams",
alias = "PubKeyCredParams",
skip_serializing_if = "Option::is_none"
)]
pub pub_key_cred_params: Option<Vec<models::PubKeyCredParam>>,
#[serde(
rename = "timeout",
alias = "Timeout",
skip_serializing_if = "Option::is_none"
)]
pub timeout: Option<i64>,
#[serde(
rename = "attestation",
alias = "Attestation",
skip_serializing_if = "Option::is_none"
)]
pub attestation: Option<models::AttestationConveyancePreference>,
#[serde(
rename = "authenticatorSelection",
alias = "AuthenticatorSelection",
skip_serializing_if = "Option::is_none"
)]
pub authenticator_selection: Option<Box<models::AuthenticatorSelection>>,
#[serde(
rename = "excludeCredentials",
alias = "ExcludeCredentials",
skip_serializing_if = "Option::is_none"
)]
pub exclude_credentials: Option<Vec<models::PublicKeyCredentialDescriptor>>,
#[serde(
rename = "extensions",
alias = "Extensions",
skip_serializing_if = "Option::is_none"
)]
pub extensions: Option<Box<models::AuthenticationExtensionsClientInputs>>,
}
impl CredentialCreateOptions {
pub fn new() -> CredentialCreateOptions {
CredentialCreateOptions {
status: None,
error_message: None,
rp: None,
user: None,
challenge: None,
pub_key_cred_params: None,
timeout: None,
attestation: None,
authenticator_selection: None,
exclude_credentials: None,
extensions: None,
}
}
}