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

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

/// varListPlain_variable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VarListPlain_variable_Inline {
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
    /// address attribute
    #[serde(rename = "@address", default)]
    pub address: Option<String>,
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// type element
    #[serde(rename = "type", default)]
    pub r#type: Option<Data>,
    /// initialValue element
    #[serde(rename = "initialValue", default)]
    pub initial_value: Option<Value>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// varListAccess_accessVariable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VarListAccess_accessVariable_Inline {
    /// alias attribute
    #[serde(rename = "@alias", default)]
    pub alias: String,
    /// instancePathAndName attribute
    #[serde(rename = "@instancePathAndName", default)]
    pub instance_path_and_name: String,
    /// direction attribute
    #[serde(rename = "@direction", default)]
    pub direction: Option<String>,
    /// type element
    #[serde(rename = "type", default)]
    pub r#type: Option<Data>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// varListConfig_configVariable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct VarListConfig_configVariable_Inline {
    /// instancePathAndName attribute
    #[serde(rename = "@instancePathAndName", default)]
    pub instance_path_and_name: String,
    /// address attribute
    #[serde(rename = "@address", default)]
    pub address: Option<String>,
    /// type element
    #[serde(rename = "type", default)]
    pub r#type: Option<Data>,
    /// initialValue element
    #[serde(rename = "initialValue", default)]
    pub initial_value: Option<Value>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// commonObjects_vendorElement_InlineType_inputVariables_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CommonObjects_vendorElement_InlineType_inputVariables_Inline {
    /// variable element
    #[serde(rename = "variable", default)]
    pub variable: Vec<CommonObjects_vendorElement_InlineType_inputVariables_InlineType_variable_Inline>,
}

/// commonObjects_vendorElement_InlineType_inputVariables_InlineType_variable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CommonObjects_vendorElement_InlineType_inputVariables_InlineType_variable_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// edge attribute
    #[serde(rename = "@edge", default)]
    pub edge: Option<String>,
    /// storage attribute
    #[serde(rename = "@storage", default)]
    pub storage: Option<String>,
    /// hidden attribute
    #[serde(rename = "@hidden", default)]
    pub hidden: Option<String>,
    /// connectionPointIn element
    #[serde(rename = "connectionPointIn", default)]
    pub connection_point_in: Option<ConnectionPointIn>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// commonObjects_vendorElement_InlineType_inOutVariables_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CommonObjects_vendorElement_InlineType_inOutVariables_Inline {
    /// variable element
    #[serde(rename = "variable", default)]
    pub variable: Vec<CommonObjects_vendorElement_InlineType_inOutVariables_InlineType_variable_Inline>,
}

/// commonObjects_vendorElement_InlineType_inOutVariables_InlineType_variable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CommonObjects_vendorElement_InlineType_inOutVariables_InlineType_variable_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// edge attribute
    #[serde(rename = "@edge", default)]
    pub edge: Option<String>,
    /// storage attribute
    #[serde(rename = "@storage", default)]
    pub storage: Option<String>,
    /// hidden attribute
    #[serde(rename = "@hidden", default)]
    pub hidden: Option<String>,
    /// connectionPointIn element
    #[serde(rename = "connectionPointIn", default)]
    pub connection_point_in: Option<ConnectionPointIn>,
    /// connectionPointOut element
    #[serde(rename = "connectionPointOut", default)]
    pub connection_point_out: Option<ConnectionPointOut>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// commonObjects_vendorElement_InlineType_outputVariables_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CommonObjects_vendorElement_InlineType_outputVariables_Inline {
    /// variable element
    #[serde(rename = "variable", default)]
    pub variable: Vec<CommonObjects_vendorElement_InlineType_outputVariables_InlineType_variable_Inline>,
}

/// commonObjects_vendorElement_InlineType_outputVariables_InlineType_variable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CommonObjects_vendorElement_InlineType_outputVariables_InlineType_variable_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// edge attribute
    #[serde(rename = "@edge", default)]
    pub edge: Option<String>,
    /// storage attribute
    #[serde(rename = "@storage", default)]
    pub storage: Option<String>,
    /// hidden attribute
    #[serde(rename = "@hidden", default)]
    pub hidden: Option<String>,
    /// connectionPointOut element
    #[serde(rename = "connectionPointOut", default)]
    pub connection_point_out: Option<ConnectionPointOut>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// fbdObjects_block_InlineType_inputVariables_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FbdObjects_block_InlineType_inputVariables_Inline {
    /// variable element
    #[serde(rename = "variable", default)]
    pub variable: Vec<FbdObjects_block_InlineType_inputVariables_InlineType_variable_Inline>,
}

/// fbdObjects_block_InlineType_inputVariables_InlineType_variable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FbdObjects_block_InlineType_inputVariables_InlineType_variable_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// edge attribute
    #[serde(rename = "@edge", default)]
    pub edge: Option<String>,
    /// storage attribute
    #[serde(rename = "@storage", default)]
    pub storage: Option<String>,
    /// hidden attribute
    #[serde(rename = "@hidden", default)]
    pub hidden: Option<String>,
    /// connectionPointIn element
    #[serde(rename = "connectionPointIn", default)]
    pub connection_point_in: Option<ConnectionPointIn>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// fbdObjects_block_InlineType_inOutVariables_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FbdObjects_block_InlineType_inOutVariables_Inline {
    /// variable element
    #[serde(rename = "variable", default)]
    pub variable: Vec<FbdObjects_block_InlineType_inOutVariables_InlineType_variable_Inline>,
}

/// fbdObjects_block_InlineType_inOutVariables_InlineType_variable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FbdObjects_block_InlineType_inOutVariables_InlineType_variable_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// edge attribute
    #[serde(rename = "@edge", default)]
    pub edge: Option<String>,
    /// storage attribute
    #[serde(rename = "@storage", default)]
    pub storage: Option<String>,
    /// hidden attribute
    #[serde(rename = "@hidden", default)]
    pub hidden: Option<String>,
    /// connectionPointIn element
    #[serde(rename = "connectionPointIn", default)]
    pub connection_point_in: Option<ConnectionPointIn>,
    /// connectionPointOut element
    #[serde(rename = "connectionPointOut", default)]
    pub connection_point_out: Option<ConnectionPointOut>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// fbdObjects_block_InlineType_outputVariables_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FbdObjects_block_InlineType_outputVariables_Inline {
    /// variable element
    #[serde(rename = "variable", default)]
    pub variable: Vec<FbdObjects_block_InlineType_outputVariables_InlineType_variable_Inline>,
}

/// fbdObjects_block_InlineType_outputVariables_InlineType_variable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FbdObjects_block_InlineType_outputVariables_InlineType_variable_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// edge attribute
    #[serde(rename = "@edge", default)]
    pub edge: Option<String>,
    /// storage attribute
    #[serde(rename = "@storage", default)]
    pub storage: Option<String>,
    /// hidden attribute
    #[serde(rename = "@hidden", default)]
    pub hidden: Option<String>,
    /// connectionPointOut element
    #[serde(rename = "connectionPointOut", default)]
    pub connection_point_out: Option<ConnectionPointOut>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// fbdObjects_inVariable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FbdObjects_inVariable_Inline {
    /// localId attribute
    #[serde(rename = "@localId", default)]
    pub local_id: String,
    /// height attribute
    #[serde(rename = "@height", default)]
    pub height: Option<String>,
    /// width attribute
    #[serde(rename = "@width", default)]
    pub width: Option<String>,
    /// executionOrderId attribute
    #[serde(rename = "@executionOrderId", default)]
    pub execution_order_id: Option<String>,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// edge attribute
    #[serde(rename = "@edge", default)]
    pub edge: Option<String>,
    /// storage attribute
    #[serde(rename = "@storage", default)]
    pub storage: Option<String>,
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// position element
    #[serde(rename = "position", default)]
    pub position: Option<Position>,
    /// connectionPointOut element
    #[serde(rename = "connectionPointOut", default)]
    pub connection_point_out: Option<ConnectionPointOut>,
    /// expression element
    #[serde(rename = "expression", default)]
    pub expression: Option<String>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// fbdObjects_outVariable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FbdObjects_outVariable_Inline {
    /// localId attribute
    #[serde(rename = "@localId", default)]
    pub local_id: String,
    /// height attribute
    #[serde(rename = "@height", default)]
    pub height: Option<String>,
    /// width attribute
    #[serde(rename = "@width", default)]
    pub width: Option<String>,
    /// executionOrderId attribute
    #[serde(rename = "@executionOrderId", default)]
    pub execution_order_id: Option<String>,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// edge attribute
    #[serde(rename = "@edge", default)]
    pub edge: Option<String>,
    /// storage attribute
    #[serde(rename = "@storage", default)]
    pub storage: Option<String>,
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// position element
    #[serde(rename = "position", default)]
    pub position: Option<Position>,
    /// connectionPointIn element
    #[serde(rename = "connectionPointIn", default)]
    pub connection_point_in: Option<ConnectionPointIn>,
    /// expression element
    #[serde(rename = "expression", default)]
    pub expression: Option<String>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// fbdObjects_inOutVariable_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct FbdObjects_inOutVariable_Inline {
    /// localId attribute
    #[serde(rename = "@localId", default)]
    pub local_id: String,
    /// height attribute
    #[serde(rename = "@height", default)]
    pub height: Option<String>,
    /// width attribute
    #[serde(rename = "@width", default)]
    pub width: Option<String>,
    /// executionOrderId attribute
    #[serde(rename = "@executionOrderId", default)]
    pub execution_order_id: Option<String>,
    /// negatedIn attribute
    #[serde(rename = "@negatedIn", default)]
    pub negated_in: Option<String>,
    /// edgeIn attribute
    #[serde(rename = "@edgeIn", default)]
    pub edge_in: Option<String>,
    /// storageIn attribute
    #[serde(rename = "@storageIn", default)]
    pub storage_in: Option<String>,
    /// negatedOut attribute
    #[serde(rename = "@negatedOut", default)]
    pub negated_out: Option<String>,
    /// edgeOut attribute
    #[serde(rename = "@edgeOut", default)]
    pub edge_out: Option<String>,
    /// storageOut attribute
    #[serde(rename = "@storageOut", default)]
    pub storage_out: Option<String>,
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// position element
    #[serde(rename = "position", default)]
    pub position: Option<Position>,
    /// connectionPointIn element
    #[serde(rename = "connectionPointIn", default)]
    pub connection_point_in: Option<ConnectionPointIn>,
    /// connectionPointOut element
    #[serde(rename = "connectionPointOut", default)]
    pub connection_point_out: Option<ConnectionPointOut>,
    /// expression element
    #[serde(rename = "expression", default)]
    pub expression: Option<String>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

