use serde::{Serialize, Deserialize};
use super::*;
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TaskCollection {
#[serde(rename = "@UId", default, skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
#[serde(rename = "@ParentUId", default, skip_serializing_if = "Option::is_none")]
pub parent_uid: Option<String>,
#[serde(rename = "@Use", default, skip_serializing_if = "Option::is_none")]
pub r#use: Option<String>,
#[serde(rename = "CustomProperties", default, skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomPropertiesCollection>,
#[serde(rename = "Task", default, skip_serializing_if = "Vec::is_empty")]
pub task: Vec<Task>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Task {
#[serde(rename = "@Name", default)]
pub name: String,
#[serde(rename = "@UId", default, skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
#[serde(rename = "@ParentUId", default, skip_serializing_if = "Option::is_none")]
pub parent_uid: Option<String>,
#[serde(rename = "@Type", default)]
pub r#type: String,
#[serde(rename = "@Watchdog", default, skip_serializing_if = "Option::is_none")]
pub watchdog: Option<String>,
#[serde(rename = "@Priority", default, skip_serializing_if = "Option::is_none")]
pub priority: Option<String>,
#[serde(rename = "@Rate", default, skip_serializing_if = "Option::is_none")]
pub rate: Option<String>,
#[serde(rename = "@DisableUpdateOutputs", default, skip_serializing_if = "Option::is_none")]
pub disable_update_outputs: Option<String>,
#[serde(rename = "@InhibitTask", default, skip_serializing_if = "Option::is_none")]
pub inhibit_task: Option<String>,
#[serde(rename = "@Verified", default, skip_serializing_if = "Option::is_none")]
pub verified: Option<String>,
#[serde(rename = "@LastScanTime", default, skip_serializing_if = "Option::is_none")]
pub last_scan_time: Option<String>,
#[serde(rename = "@MaxScanTime", default, skip_serializing_if = "Option::is_none")]
pub max_scan_time: Option<String>,
#[serde(rename = "@MaxInterval", default, skip_serializing_if = "Option::is_none")]
pub max_interval: Option<String>,
#[serde(rename = "@MinInterval", default, skip_serializing_if = "Option::is_none")]
pub min_interval: Option<String>,
#[serde(rename = "@StartTime", default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(rename = "@Class", default, skip_serializing_if = "Option::is_none")]
pub class: Option<String>,
#[serde(rename = "@Use", default, skip_serializing_if = "Option::is_none")]
pub r#use: Option<String>,
#[serde(rename = "CustomProperties", default, skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomPropertiesCollection>,
#[serde(rename = "Description", default, skip_serializing_if = "Option::is_none")]
pub description: Option<Description>,
#[serde(rename = "EventInfo", default, skip_serializing_if = "Option::is_none")]
pub event_info: Option<TaskEventInfo>,
#[serde(rename = "ScheduledPrograms", default, skip_serializing_if = "Option::is_none")]
pub scheduled_programs: Option<ScheduledProgramCollection>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TaskEventInfo {
#[serde(rename = "@EventTrigger", default, skip_serializing_if = "Option::is_none")]
pub event_trigger: Option<String>,
#[serde(rename = "@EventTag", default, skip_serializing_if = "Option::is_none")]
pub event_tag: Option<String>,
#[serde(rename = "@EnableTimeout", default, skip_serializing_if = "Option::is_none")]
pub enable_timeout: Option<String>,
#[serde(rename = "@Use", default, skip_serializing_if = "Option::is_none")]
pub r#use: Option<String>,
#[serde(rename = "CustomProperties", default, skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomPropertiesCollection>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ScheduledProgramCollection {
#[serde(rename = "@Use", default, skip_serializing_if = "Option::is_none")]
pub r#use: Option<String>,
#[serde(rename = "CustomProperties", default, skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomPropertiesCollection>,
#[serde(rename = "ScheduledProgram", default, skip_serializing_if = "Vec::is_empty")]
pub scheduled_program: Vec<ScheduledProgram>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct ScheduledProgram {
#[serde(rename = "@Name", default)]
pub name: String,
#[serde(rename = "@UId", default, skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
#[serde(rename = "@Use", default, skip_serializing_if = "Option::is_none")]
pub r#use: Option<String>,
#[serde(rename = "CustomProperties", default, skip_serializing_if = "Option::is_none")]
pub custom_properties: Option<CustomPropertiesCollection>,
}