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

        public ulong Size { get; set; }

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

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

        public Sequence Sequence { get; set; }

        public string Manufacturer { get; set; }

        public string Model { get; set; }

        public string Serial { get; set; }

        public string Firmware { get; set; }

        public string Interface { get; set; }

        public string PartNumber { get; set; }

        public string SerialNumber { get; set; }

        public uint PhysicalBlockSize { get; set; }

        public uint LogicalBlockSize { get; set; }

        public ulong LogicalBlocks { get; set; }

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

        [XmlArrayItem("Partition", IsNullable = false)]
        public TapePartition[] TapeInformation { get; set; }

        public Scans Scans { get; set; }

        public ATA ATA { get; set; }

        public PCI PCI { get; set; }

        public PCMCIA PCMCIA { get; set; }

        public SecureDigital SecureDigital { get; set; }

        public MultiMediaCard MultiMediaCard { get; set; }

        public SCSI SCSI { get; set; }

        public USB USB { get; set; }

        public Dump MAM { get; set; }

        public ushort Heads { get; set; }

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

        public uint Cylinders { get; set; }

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

        public ulong SectorsPerTrack { get; set; }

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

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

        public string CopyProtection { get; set; }

        public Dimensions Dimensions { get; set; }

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

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

        public string DiskType { get; set; }

        public string DiskSubType { get; set; }
    }
}
