/* 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};

#[derive(Serialize, Deserialize, Debug, Clone, Builder)]
pub struct DetailsSchemaElementSchema {
    /// Multi-part error code for classification and root causing of errors (ex: 400.200.100.432).
    #[serde(skip_serializing_if = "Option::is_none")]
    #[builder(default = "None")]
    pub code: Option<String>,

    /// Unique identifier for the transaction to aid in debugging.
    #[serde(rename = "correlationId")]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[builder(default = "None")]
    pub correlation_id: Option<String>,

    /// Human readable helpful detailed text context for debugging (ex: “The following mechanisms are supported...”).
    #[serde(skip_serializing_if = "Option::is_none")]
    #[builder(default = "None")]
    pub info: Option<String>,

    /// Human readable helpful error message to provide additional context for error (ex: “Authentication method not supported”).
    #[serde(skip_serializing_if = "Option::is_none")]
    #[builder(default = "None")]
    pub message: Option<String>,
}
