/* Code generated by Azure.Iot.Operations.ProtocolCompilerLib v0.10.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};
use super::config_error::ConfigError;
use super::message_schema_reference::MessageSchemaReference;

#[derive(Serialize, Deserialize, Debug, Clone, Builder)]
pub struct AssetManagementGroupActionStatusSchemaElementSchema {
    /// The last error that occurred while processing the action.
    #[serde(skip_serializing_if = "Option::is_none")]
    #[builder(default = "None")]
    pub error: Option<ConfigError>,

    /// The name of the action. Must be unique within the status.managementGroup[i].actions array. This name is used to correlate between the spec and status management group action information.
    pub name: String,

    /// The request message schema reference object.
    #[serde(rename = "requestMessageSchemaReference")]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[builder(default = "None")]
    pub request_message_schema_reference: Option<MessageSchemaReference>,

    /// The response message schema reference object.
    #[serde(rename = "responseMessageSchemaReference")]
    #[serde(skip_serializing_if = "Option::is_none")]
    #[builder(default = "None")]
    pub response_message_schema_reference: Option<MessageSchemaReference>,
}
