bitwarden-api-api 3.0.0

Api bindings for the Bitwarden API.
Documentation
/*
 * Bitwarden Internal API
 *
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: latest
 *
 * Generated by: https://openapi-generator.tech
 */

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,
        }
    }
}