// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.6.0" ), 
    UMLPackagePath ( "CIM::Physical::PhysicalMedia" ), 
    Description ( 
       "The PhysicalMedia class represents any type of documentation "
       "or storage medium, such as tapes, CDROMs, etc. This class is "
       "typically used to locate and manage Removable Media (versus "
       "Media sealed with the MediaAccessDevice, as a single Package, "
       "as is the case with hard disks). However, \'sealed\' Media can "
       "also be modeled using this class, where the Media would then "
       "be associated with the PhysicalPackage using the "
       "PackagedComponent relationship." )]
class CIM_PhysicalMedia : CIM_PhysicalComponent {

      [Description ( 
          "The number of bytes that can be read from or written to "
          "a Media. This property is not applicable to \"Hard Copy\" "
          "(documentation) or cleaner Media. Data compression "
          "should not be assumed, as it would increase the value in "
          "this property. For tapes, it should be assumed that no "
          "filemarks or blank space areas are recorded on the "
          "Media." ), 
       Units ( "Bytes" ), 
       PUnit ( "byte" )]
   uint64 Capacity;

      [Description ( 
          "Specifies the type of the PhysicalMedia, as an "
          "enumerated integer. The MediaDescription property is "
          "used to provide more explicit definition of the Media "
          "type, whether it is pre-formatted, compatability "
          "features, etc." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10", "11", "12", "13", "14", "15", "16", "17", "18", 
          "19", "20", "21", "22", "23", "24", "25", "26", "27", 
          "28", "29", "30", "31", "32", "33", "34", "35", "36", 
          "37", "38", "39", "40", "41", "42", "43", "44", "45", 
          "46", "47", "48", "49", "50", "51", "52", "53", "54", 
          "55", "56", "57", "58", "59", "60", "61", "62", "63", 
          "64", "65", "66" }, 
       Values { "Unknown", "Other", "Tape Cartridge", 
          "QIC Cartridge", "AIT Cartridge", "DTF Cartridge", 
          "DAT Cartridge", "8mm Tape Cartridge", 
          "19mm Tape Cartridge", "DLT Cartridge", 
          // 10                
          "Half-Inch Magnetic Tape Cartridge", 
          "Cartridge Disk", "JAZ Disk", "ZIP Disk", "SyQuest Disk", 
          "Winchester Removable Disk", "CD-ROM", "CD-ROM/XA", 
          "CD-I", "CD Recordable", 
          // 20               
          "WORM", "Magneto-Optical", 
          "DVD", "DVD-RW+", "DVD-RAM", "DVD-ROM", "DVD-Video", 
          "Divx", "Floppy/Diskette", "Hard Disk", 
          // 30                
          "Memory Card", 
          "Hard Copy", "Clik Disk", "CD-RW", "CD-DA", "CD+", 
          "DVD Recordable", "DVD-RW", "DVD-Audio", "DVD-5", 
          // 40               
          "DVD-9", "DVD-10", 
          "DVD-18", "Magneto-Optical Rewriteable", 
          "Magneto-Optical Write Once", 
          "Magneto-Optical Rewriteable (LIMDOW)", 
          "Phase Change Write Once", "Phase Change Rewriteable", 
          "Phase Change Dual Rewriteable", "Ablative Write Once", 
          // 50               
          "Near Field Recording", 
          "MiniQic", "Travan", "8mm Metal Particle", 
          "8mm Advanced Metal Evaporate", "NCTP", "LTO Ultrium", 
          "LTO Accelis", "9 Track Tape", "18 Track Tape", 
          // 60                
          "36 Track Tape", 
          "Magstar 3590", "Magstar MP", "D2 Tape", 
          "Tape - DST Small", "Tape - DST Medium", "Tape - DST Large" }, 
       ModelCorrespondence { "CIM_PhysicalMedia.MediaDescription" }]
   uint16 MediaType;

      [Description ( 
          "Additional detail related to the MediaType enumeration. "
          "For example, if value 3 (\"QIC Cartridge\") is "
          "specified, this property could indicate whether the tape "
          "is wide or 1/4 inch, whether it is pre-formatted, "
          "whether it is Travan compatible, etc." ), 
       ModelCorrespondence { "CIM_PhysicalMedia.MediaType" }]
   string MediaDescription;

      [Description ( 
          "Boolean specifying whether the Media is currently write "
          "protected by some kind of physical mechanism, such as a "
          "protect tab on a floppy diskette." )]
   boolean WriteProtectOn;

      [Description ( 
          "Boolean indicating that the PhysicalMedia is used for "
          "cleaning purposes and not data storage." )]
   boolean CleanerMedia;

      [Description ( 
          "Size of the Media in inches. For example, \'3.5\' would "
          "be entered for a 3.5 inch disk, or \'12\' would be "
          "entered for a 12 inch optical disk. On the other hand, "
          "\'0.5\' would be defined for a 1/2 inch tape." ), 
       Units ( "Inches" ), 
       PUnit ( "inch" )]
   real32 MediaSize;

      [Description ( 
          "For removable Media, the maximum number of times that "
          "the Media can be mounted before it should be retired. "
          "For cleaner Media, this is the maximum number of Drive "
          "cleans that can be performed. For nonremovable Media, "
          "such as hard disks, this property is not applicable and "
          "should be set to 0." )]
   uint64 MaxMounts;

      [Description ( 
          "For removable or cleaner Media, the number of times that "
          "the Media has been mounted for data transfer or to clean "
          "a Drive. For nonremovable Media, such as hard disks, "
          "this property is not applicable and should be set to 0." ), 
       Counter, ModelCorrespondence { "CIM_PhysicalMedia.MaxMounts" }]
   uint64 MountCount;

      [Description ( 
          "Boolean indicating that the Media has two recording "
          "sides (TRUE) or only a single side (FALSE). Examples of "
          "dual sided Media include DVD-ROM and some optical disks. "
          "Examples of single sided Media are tapes and CD-ROM." )]
   boolean DualSided;

      [Description ( 
          "One or more strings on \'labels\' on the PhysicalMedia. "
          "The format of the labels and their state (readable, "
          "unreadable, upside-down) are indicated in the "
          "LabelFormats and LabelStates array properties." ), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_PhysicalMedia.LabelStates", 
          "CIM_PhysicalMedia.LabelFormats" }]
   string PhysicalLabels[];

      [Description ( 
          "An array of enumerated integers describing the states of "
          "each of the labels on a PhysicalMedia. The Labels "
          "themselves are listed in the PhysicalLabels property. "
          "Note, each entry of this array is related to the entry "
          "in PhysicalLabels that is located at the same index." ), 
       ValueMap { "0", "1", "2" }, 
       Values { "OK/Readable", "Unreadable", "Upside Down" }, 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_PhysicalMedia.PhysicalLabels" }]
   uint16 LabelStates[];

      [Description ( 
          "An array of enumerated integers describing the formats "
          "of each of the labels on a PhysicalMedia. The Labels "
          "themselves are listed in the PhysicalLabels property. "
          "Note, each entry of this array is related to the entry "
          "in PhysicalLabels that is located at the same index." ), 
       ValueMap { "0", "1", "2", "3", "4", "5" }, 
       Values { "Barcode", "Radio Frequency Identification", 
          "OCR (Optical Character Recognition)", 
          "MICR (Magnetic Ink Character Recognition)", 
          "7 Character Barcode", "9 Character Barcode" }, 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_PhysicalMedia.PhysicalLabels" }]
   uint16 LabelFormats[];

      [Description ( 
          "For removable or cleaner Media, the date and time that "
          "the Media was last mounted. For nonremovable Media, such "
          "as hard disks, this property has no meaning and is not "
          "applicable." )]
   datetime TimeOfLastMount;

      [Description ( 
          "For removable or cleaner Media, the total time (in "
          "seconds) that the Media has been mounted for data "
          "transfer or to clean a Drive. For nonremovable Media, "
          "such as hard disks, this property is not applicable and "
          "should be set to 0." ), 
       Units ( "Seconds" ), 
       PUnit ( "second" )]
   uint64 TotalMountTime;


};
