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

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

/// commonObjects_actionBlock_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CommonObjects_actionBlock_Inline {
    /// localId attribute
    #[serde(rename = "@localId", default)]
    pub local_id: String,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// width attribute
    #[serde(rename = "@width", default)]
    pub width: Option<String>,
    /// height attribute
    #[serde(rename = "@height", default)]
    pub height: Option<String>,
    /// executionOrderId attribute
    #[serde(rename = "@executionOrderId", default)]
    pub execution_order_id: 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>,
    /// action element
    #[serde(rename = "action", default)]
    pub action: Vec<CommonObjects_actionBlock_InlineType_action_Inline>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// commonObjects_actionBlock_InlineType_action_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CommonObjects_actionBlock_InlineType_action_Inline {
    /// localId attribute
    #[serde(rename = "@localId", default)]
    pub local_id: String,
    /// qualifier attribute
    #[serde(rename = "@qualifier", default)]
    pub qualifier: Option<String>,
    /// width attribute
    #[serde(rename = "@width", default)]
    pub width: Option<String>,
    /// height attribute
    #[serde(rename = "@height", default)]
    pub height: Option<String>,
    /// duration attribute
    #[serde(rename = "@duration", default)]
    pub duration: Option<String>,
    /// indicator attribute
    #[serde(rename = "@indicator", default)]
    pub indicator: Option<String>,
    /// executionOrderId attribute
    #[serde(rename = "@executionOrderId", default)]
    pub execution_order_id: Option<String>,
    /// globalId attribute
    #[serde(rename = "@globalId", default)]
    pub global_id: Option<String>,
    /// relPosition element
    #[serde(rename = "relPosition", default)]
    pub rel_position: Option<Position>,
    /// reference element
    #[serde(rename = "reference", default)]
    pub reference: Option<CommonObjects_actionBlock_InlineType_action_InlineType_reference_Inline>,
    /// inline element
    #[serde(rename = "inline", default)]
    pub inline: Option<Body>,
    /// connectionPointOut element
    #[serde(rename = "connectionPointOut", default)]
    pub connection_point_out: Option<ConnectionPointOut>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// commonObjects_actionBlock_InlineType_action_InlineType_reference_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct CommonObjects_actionBlock_InlineType_action_InlineType_reference_Inline {
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
}

/// sfcObjects_step_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_step_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>,
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
    /// initialStep attribute
    #[serde(rename = "@initialStep", default)]
    pub initial_step: Option<String>,
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// executionOrderId attribute
    #[serde(rename = "@executionOrderId", default)]
    pub execution_order_id: 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<SfcObjects_step_InlineType_connectionPointOut_Inline>,
    /// connectionPointOutAction element
    #[serde(rename = "connectionPointOutAction", default)]
    pub connection_point_out_action: Option<SfcObjects_step_InlineType_connectionPointOutAction_Inline>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// sfcObjects_step_InlineType_connectionPointOut_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_step_InlineType_connectionPointOut_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
}

/// sfcObjects_step_InlineType_connectionPointOutAction_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_step_InlineType_connectionPointOutAction_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
}

/// sfcObjects_transition_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_transition_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>,
    /// priority attribute
    #[serde(rename = "@priority", default)]
    pub priority: Option<String>,
    /// executionOrderId attribute
    #[serde(rename = "@executionOrderId", default)]
    pub execution_order_id: 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>,
    /// condition element
    #[serde(rename = "condition", default)]
    pub condition: Option<SfcObjects_transition_InlineType_condition_Inline>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// sfcObjects_transition_InlineType_condition_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_transition_InlineType_condition_Inline {
    /// negated attribute
    #[serde(rename = "@negated", default)]
    pub negated: Option<String>,
    /// reference element
    #[serde(rename = "reference", default)]
    pub reference: Option<SfcObjects_transition_InlineType_condition_InlineType_reference_Inline>,
    /// connectionPointIn element
    #[serde(rename = "connectionPointIn", default)]
    pub connection_point_in: Option<ConnectionPointIn>,
    /// inline element
    #[serde(rename = "inline", default)]
    pub inline: Option<SfcObjects_transition_InlineType_condition_InlineType_inline_Inline>,
}

/// sfcObjects_transition_InlineType_condition_InlineType_reference_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_transition_InlineType_condition_InlineType_reference_Inline {
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
}

/// sfcObjects_transition_InlineType_condition_InlineType_inline_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_transition_InlineType_condition_InlineType_inline_Inline {
    /// name attribute
    #[serde(rename = "@name", default)]
    pub name: String,
}

/// sfcObjects_selectionDivergence_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_selectionDivergence_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>,
    /// 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: Vec<SfcObjects_selectionDivergence_InlineType_connectionPointOut_Inline>,
    /// addData element
    #[serde(rename = "addData", default)]
    pub add_data: Option<AddData>,
    /// documentation element
    #[serde(rename = "documentation", default)]
    pub documentation: Option<FormattedText>,
}

/// sfcObjects_selectionDivergence_InlineType_connectionPointOut_InlineType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct SfcObjects_selectionDivergence_InlineType_connectionPointOut_Inline {
    /// formalParameter attribute
    #[serde(rename = "@formalParameter", default)]
    pub formal_parameter: String,
}

