// Auto-generated PLCopen types - config category
// DO NOT EDIT - Generated by build script

use serde::{Serialize, Deserialize};
use super::*;

/// Root_project_InlineType_instances_InlineType_configurations_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Root_project_InlineType_instances_InlineType_configurations_Inline {
    /// configuration element
    #[serde(rename = "configuration", default)]
    pub configuration: Vec<Root_project_InlineType_instances_InlineType_configurations_InlineType_configuration_Inline>,
}

/// Root_project_InlineType_instances_InlineType_configurations_InlineType_configuration_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Root_project_InlineType_instances_InlineType_configurations_InlineType_configuration_Inline {
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// resource element
    #[serde(rename = "resource", default)]
    pub resource: Vec<Root_project_InlineType_instances_InlineType_configurations_InlineType_configuration_InlineType_resource_Inline>,
    /// globalVars element
    #[serde(rename = "globalVars", default)]
    pub global_vars: Vec<VarList>,
    /// accessVars element
    #[serde(rename = "accessVars", default)]
    pub access_vars: Option<VarListAccess>,
    /// configVars element
    #[serde(rename = "configVars", default)]
    pub config_vars: Option<VarListConfig>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// Root_project_InlineType_instances_InlineType_configurations_InlineType_configuration_InlineType_resource_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Root_project_InlineType_instances_InlineType_configurations_InlineType_configuration_InlineType_resource_Inline {
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// task element
    #[serde(rename = "task", default)]
    pub task: Vec<Root_project_InlineType_instances_InlineType_configurations_InlineType_configuration_InlineType_resource_InlineType_task_Inline>,
    /// globalVars element
    #[serde(rename = "globalVars", default)]
    pub global_vars: Vec<VarList>,
    /// pouInstance element
    #[serde(rename = "pouInstance", default)]
    pub pou_instance: Vec<PouInstance>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// Root_project_InlineType_instances_InlineType_configurations_InlineType_configuration_InlineType_resource_InlineType_task_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct Root_project_InlineType_instances_InlineType_configurations_InlineType_configuration_InlineType_resource_InlineType_task_Inline {
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
    /// single attribute
    #[serde(rename = "@single", default)]
    pub single: Option<String>,
    /// interval attribute
    #[serde(rename = "@interval", default)]
    pub interval: Option<String>,
    /// priority attribute
    #[serde(rename = "@priority", default)]
    pub priority: String,
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// pouInstance element
    #[serde(rename = "pouInstance", default)]
    pub pou_instance: Vec<PouInstance>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

