//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

//
//This source code was auto-generated by MonoXSD
//

// Originally sourced from https://github.com/aaru-dps/Aaru/blob/v5.4/CICMMetadata/dotnet/cicm.cs
// The above header is from the original generated code
// Some formatting cleanup has been done to fit project standards

using System;
using System.CodeDom.Compiler;
using System.Xml.Serialization;

namespace SabreTools.Data.Models.CICM
{
    [GeneratedCode("xsd", "0.0.0.0")]
    [Serializable]
    [XmlRootAttribute("CICMMetadata", Namespace = "", IsNullable = false)]
    public class CICMMetadata
    {
        [XmlElement("Developer")]
        public string[] Developer { get; set; }

        [XmlElement("Publisher")]
        public string[] Publisher { get; set; }

        [XmlElement("Author")]
        public string[] Author { get; set; }

        [XmlElement("Performer")]
        public string[] Performer { get; set; }

        public string Name { get; set; }

        public string Version { get; set; }

        public ReleaseType ReleaseType { get; set; }

        [XmlIgnore]
        public bool ReleaseTypeSpecified { get; set; }

        [XmlElement(DataType = "date")]
        public System.DateTime ReleaseDate { get; set; }

        [XmlIgnore]
        public bool ReleaseDateSpecified { get; set; }

        [XmlArrayItem("Barcode", IsNullable = false)]
        public Barcode[] Barcodes { get; set; }

        public string PartNumber { get; set; }

        public string SerialNumber { get; set; }

        [XmlArrayItem("Keyword", IsNullable = false)]
        public string[] Keywords { get; set; }

        [XmlElement("Magazine")]
        public Magazine[] Magazine { get; set; }

        [XmlElement("Book")]
        public Book[] Book { get; set; }

        [XmlArrayItem("Category", IsNullable = false)]
        public string[] Categories { get; set; }

        [XmlArrayItem("Subcategory", IsNullable = false)]
        public string[] Subcategories { get; set; }

        [XmlArrayItem("Language", IsNullable = false)]
        public Language[] Languages { get; set; }

        [XmlArrayItem("System", IsNullable = false)]
        public string[] Systems { get; set; }

        [XmlArrayItem("Architecture", IsNullable = false)]
        public Architecture[] Architectures { get; set; }

        [XmlArrayItem("RequiredOperatingSystem", IsNullable = false)]
        public RequiredOperatingSystem[] RequiredOperatingSystems { get; set; }

        [XmlElement("UserManual")]
        public UserManual[] UserManual { get; set; }

        [XmlElement("OpticalDisc")]
        public OpticalDisc[] OpticalDisc { get; set; }

        [XmlElement("Advertisement")]
        public Advertisement[] Advertisement { get; set; }

        [XmlElement("LinearMedia")]
        public LinearMedia[] LinearMedia { get; set; }

        [XmlElement("PCICard")]
        public PCI[] PCICard { get; set; }

        [XmlElement("BlockMedia")]
        public BlockMedia[] BlockMedia { get; set; }

        [XmlElement("AudioMedia")]
        public AudioMedia[] AudioMedia { get; set; }
    }
}
