// Auto-generated L5X types - core category
// DO NOT EDIT - Generated by build script

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

/// ProjectType element
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
#[serde(rename = "RSLogix5000Content")]
pub struct Project {
    /// SchemaRevision attribute
    #[serde(rename = "@SchemaRevision", default)]
    pub schema_revision: String,
    /// SoftwareRevision attribute
    #[serde(rename = "@SoftwareRevision", default)]
    pub software_revision: String,
    /// ArchitectureID attribute
    #[serde(rename = "@ArchitectureID", default)]
    pub architecture_id: Option<String>,
    /// TargetName attribute
    #[serde(rename = "@TargetName", default)]
    pub target_name: Option<String>,
    /// TargetType attribute
    #[serde(rename = "@TargetType", default)]
    pub target_type: Option<String>,
    /// TargetSubType attribute
    #[serde(rename = "@TargetSubType", default)]
    pub target_sub_type: Option<String>,
    /// TargetClass attribute
    #[serde(rename = "@TargetClass", default)]
    pub target_class: Option<String>,
    /// TargetCount attribute
    #[serde(rename = "@TargetCount", default)]
    pub target_count: Option<String>,
    /// TargetRevision attribute
    #[serde(rename = "@TargetRevision", default)]
    pub target_revision: Option<String>,
    /// TargetLastEdited attribute
    #[serde(rename = "@TargetLastEdited", default)]
    pub target_last_edited: Option<String>,
    /// TargetSignature attribute
    #[serde(rename = "@TargetSignature", default)]
    pub target_signature: Option<String>,
    /// TargetIsEncrypted attribute
    #[serde(rename = "@TargetIsEncrypted", default)]
    pub target_is_encrypted: Option<String>,
    /// CurrentLanguage attribute
    #[serde(rename = "@CurrentLanguage", default)]
    pub current_language: Option<String>,
    /// ContainsContext attribute
    #[serde(rename = "@ContainsContext", default)]
    pub contains_context: Option<String>,
    /// Owner attribute
    #[serde(rename = "@Owner", default)]
    pub owner: Option<String>,
    /// ExportDate attribute
    #[serde(rename = "@ExportDate", default)]
    pub export_date: Option<String>,
    /// ExportOptions attribute
    #[serde(rename = "@ExportOptions", default)]
    pub export_options: Option<String>,
    /// ForceMemorySaving attribute
    #[serde(rename = "@ForceMemorySaving", default)]
    pub force_memory_saving: Option<String>,
    /// Use attribute
    #[serde(rename = "@Use", default)]
    pub r#use: Option<String>,
    /// CustomProperties element
    #[serde(rename = "CustomProperties", default)]
    pub custom_properties: Option<CustomPropertiesCollection>,
    /// Controller element
    #[serde(rename = "Controller", default)]
    pub controller: Option<Controller>,
}

