//------------------------------------------------------------------------------
// <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]
    public class OpticalDisc
    {
        public Image Image { get; set; }

        public ulong Size { get; set; }

        public Sequence Sequence { get; set; }

        public Layers Layers { get; set; }

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

        public string PartNumber { get; set; }

        public string SerialNumber { get; set; }

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

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

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

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

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

        public string DiscType { get; set; }

        public string DiscSubType { get; set; }

        public int Offset { get; set; }

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

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

        public uint Sessions { get; set; }

        public string CopyProtection { get; set; }

        public Dimensions Dimensions { get; set; }

        public Case Case { get; set; }

        public Scans Scans { get; set; }

        public Dump PFI { get; set; }

        public Dump DMI { get; set; }

        public Dump CMI { get; set; }

        public Dump BCA { get; set; }

        public Dump ATIP { get; set; }

        public Dump ADIP { get; set; }

        public Dump PMA { get; set; }

        public Dump DDS { get; set; }

        public Dump SAI { get; set; }

        public Dump LastRMD { get; set; }

        public Dump PRI { get; set; }

        public Dump MediaID { get; set; }

        public Dump PFIR { get; set; }

        public Dump DCB { get; set; }

        public Dump DI { get; set; }

        public Dump PAC { get; set; }

        public Dump TOC { get; set; }

        public Dump LeadInCdText { get; set; }

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

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

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

        public Xbox Xbox { get; set; }

        public PS3Encryption PS3Encryption { get; set; }

        public string MediaCatalogueNumber { get; set; }

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

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