use super::DeletionRecoveryLevel;
use azure_core::{base64, fmt::SafeDebug, time::OffsetDateTime};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct BackupSecretResult {
#[serde(
default,
deserialize_with = "base64::option::deserialize_url_safe",
serialize_with = "base64::option::serialize_url_safe",
skip_serializing
)]
pub value: Option<Vec<u8>>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct DeletedSecret {
#[serde(skip_serializing_if = "Option::is_none")]
pub attributes: Option<SecretAttributes>,
#[serde(rename = "contentType", skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(
default,
rename = "deletedDate",
skip_serializing,
with = "azure_core::time::unix_time::option"
)]
pub deleted_date: Option<OffsetDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing)]
pub kid: Option<String>,
#[serde(skip_serializing)]
pub managed: Option<bool>,
#[serde(rename = "previousVersion", skip_serializing_if = "Option::is_none")]
pub previous_version: Option<String>,
#[serde(rename = "recoveryId", skip_serializing_if = "Option::is_none")]
pub recovery_id: Option<String>,
#[serde(
default,
rename = "scheduledPurgeDate",
skip_serializing,
with = "azure_core::time::unix_time::option"
)]
pub scheduled_purge_date: Option<OffsetDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct DeletedSecretProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub attributes: Option<SecretAttributes>,
#[serde(rename = "contentType", skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(
default,
rename = "deletedDate",
skip_serializing,
with = "azure_core::time::unix_time::option"
)]
pub deleted_date: Option<OffsetDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing)]
pub managed: Option<bool>,
#[serde(rename = "recoveryId", skip_serializing_if = "Option::is_none")]
pub recovery_id: Option<String>,
#[serde(
default,
rename = "scheduledPurgeDate",
skip_serializing,
with = "azure_core::time::unix_time::option"
)]
pub scheduled_purge_date: Option<OffsetDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<HashMap<String, String>>,
}
#[derive(Clone, Deserialize, SafeDebug, Serialize)]
pub struct KeyVaultError {
#[serde(skip_serializing)]
pub error: Option<KeyVaultErrorError>,
}
#[derive(Clone, Deserialize, SafeDebug, Serialize)]
pub struct KeyVaultErrorError {
#[serde(skip_serializing)]
pub code: Option<String>,
#[serde(rename = "innererror", skip_serializing)]
pub inner_error: Option<Box<KeyVaultErrorError>>,
#[serde(skip_serializing)]
pub message: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct ListDeletedSecretPropertiesResult {
#[serde(rename = "nextLink", skip_serializing)]
pub next_link: Option<String>,
#[serde(default, skip_serializing)]
pub value: Vec<DeletedSecretProperties>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct ListSecretPropertiesResult {
#[serde(rename = "nextLink", skip_serializing)]
pub next_link: Option<String>,
#[serde(default, skip_serializing)]
pub value: Vec<SecretProperties>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct RestoreSecretParameters {
#[serde(
default,
deserialize_with = "base64::option::deserialize_url_safe",
rename = "value",
serialize_with = "base64::option::serialize_url_safe",
skip_serializing_if = "Option::is_none"
)]
pub secret_backup: Option<Vec<u8>>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct Secret {
#[serde(skip_serializing_if = "Option::is_none")]
pub attributes: Option<SecretAttributes>,
#[serde(rename = "contentType", skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing)]
pub kid: Option<String>,
#[serde(skip_serializing)]
pub managed: Option<bool>,
#[serde(rename = "previousVersion", skip_serializing_if = "Option::is_none")]
pub previous_version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct SecretAttributes {
#[serde(
default,
skip_serializing,
with = "azure_core::time::unix_time::option"
)]
pub created: Option<OffsetDateTime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(
default,
rename = "exp",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::unix_time::option"
)]
pub expires: Option<OffsetDateTime>,
#[serde(
default,
rename = "nbf",
skip_serializing_if = "Option::is_none",
with = "azure_core::time::unix_time::option"
)]
pub not_before: Option<OffsetDateTime>,
#[serde(rename = "recoverableDays", skip_serializing)]
pub recoverable_days: Option<i32>,
#[serde(rename = "recoveryLevel", skip_serializing)]
pub recovery_level: Option<DeletionRecoveryLevel>,
#[serde(
default,
skip_serializing,
with = "azure_core::time::unix_time::option"
)]
pub updated: Option<OffsetDateTime>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
#[non_exhaustive]
pub struct SecretProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub attributes: Option<SecretAttributes>,
#[serde(rename = "contentType", skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing)]
pub managed: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<HashMap<String, String>>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct SetSecretParameters {
#[serde(rename = "contentType", skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
pub secret_attributes: Option<SecretAttributes>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<HashMap<String, String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Clone, Default, Deserialize, SafeDebug, Serialize)]
pub struct UpdateSecretPropertiesParameters {
#[serde(rename = "contentType", skip_serializing_if = "Option::is_none")]
pub content_type: Option<String>,
#[serde(rename = "attributes", skip_serializing_if = "Option::is_none")]
pub secret_attributes: Option<SecretAttributes>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<HashMap<String, String>>,
}