use crate::device::Endpoint;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct MessageAttributes {
#[serde(rename = "FeatureCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub feature_count: Option<u32>,
#[serde(rename = "StepCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub step_count: Option<Vec<u32>>,
#[serde(rename = "Endpoints")]
#[serde(skip_serializing_if = "Option::is_none")]
pub endpoints: Option<Vec<Endpoint>>,
#[serde(rename = "MaxDuration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub max_duration: Option<Vec<u32>>,
#[serde(rename = "Patterns")]
#[serde(skip_serializing_if = "Option::is_none")]
pub patterns: Option<Vec<Vec<String>>>,
#[serde(rename = "ActuatorType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub actuator_type: Option<Vec<String>>,
#[serde(rename = "FeatureOrder")]
#[serde(skip_serializing)]
pub feature_order: Option<Vec<u32>>,
}