use serde::{Deserialize, Serialize};
use crate::{B64Url, Uri};
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CredentialScope {
pub urls: Vec<Uri>,
pub android_apps: Vec<AndroidAppIdCredential>,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AndroidAppIdCredential {
pub bundle_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub certificate: Option<AndroidAppCertificateFingerprint>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AndroidAppCertificateFingerprint {
pub fingerprint: B64Url,
pub hash_alg: AndroidAppHashAlgorithm,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
#[non_exhaustive]
pub enum AndroidAppHashAlgorithm {
Sha256,
Sha1,
#[serde(untagged)]
Other(String),
}