/* Code generated by Azure.Iot.Operations.ProtocolCompilerLib v1.0.0.0; DO NOT EDIT. */
#![allow(unused_imports)]

use std::collections::HashMap;

use chrono::{DateTime, Utc};
use derive_builder::Builder;
use iso8601_duration::Duration;
use serde::{Deserialize, Serialize};
use uuid::Uuid;

use super::super::common_types::{b64::Bytes, date_only::Date, decimal::Decimal, time_only::Time};

/// The x509 certificate for authentication mode Certificate.
#[derive(Serialize, Deserialize, Debug, Clone, Builder)]
pub struct X509credentialsSchema {
    /// The name of the secret containing the certificate and private key (e.g. stored as .der/.pem or .der/.pfx).
    #[serde(rename = "certificateSecretName")]
    pub certificate_secret_name: String,

    /// A reference to the secret containing the combined intermediate certificates in PEM format.
    #[serde(rename = "intermediateCertificatesSecretName")]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[builder(default = "None")]
    pub intermediate_certificates_secret_name: Option<String>,

    /// A reference to the secret containing the certificate private key in PEM or DER format.
    #[serde(rename = "keySecretName")]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[builder(default = "None")]
    pub key_secret_name: Option<String>,
}
