// ===================================================================
// Title:  Physical Storage Media Packaging
// $State: Exp $
// $Date: 2004/08/15 05:55:42 $
// $Source: /cvsroot/wbemservices/open/mof/dmtf/2.9/Physical_StoragePackage.mof,v $
// $Revision: 1.1 $
// ===================================================================
//#pragma inLine ("Includes/copyright.inc")
// Copyright 1998-2004 Distributed Management Task Force, Inc. (DMTF).
// All rights reserved.
// DMTF is a not-for-profit association of industry members dedicated
// to promoting enterprise and systems management and interoperability.
// DMTF specifications and documents may be reproduced for uses
// consistent with this purpose by members and non-members,
// provided that correct attribution is given.
// As DMTF specifications may be revised from time to time,
// the particular version and release date should always be noted.
// 
// Implementation of certain elements of this standard or proposed
// standard may be subject to third party patent rights, including
// provisional patent rights (herein "patent rights"). DMTF makes
// no representations to users of the standard as to the existence
// of such rights, and is not responsible to recognize, disclose, or
// identify any or all such third party patent right, owners or
// claimants, nor for any incomplete or inaccurate identification or
// disclosure of such rights, owners or claimants. DMTF shall have no
// liability to any party, in any manner or circumstance, under any
// legal theory whatsoever, for failure to recognize, disclose, or
// identify any such third party patent rights, or for such party's
// reliance on the standard or incorporation thereof in its product,
// protocols or testing procedures. DMTF shall have no liability to
// any party implementing such standard, whether such implementation
// is foreseeable or not, nor to any patent owner or claimant, and shall
// have no liability or responsibility for costs or losses incurred if
// a standard is withdrawn or modified after publication, and shall be
// indemnified and held harmless by any party implementing the
// standard from any and all claims of infringement by a patent owner
// for such implementations.
// 
// For information about patents held by third-parties which have
// notified the DMTF that, in their opinion, such patent may relate to
// or impact implementations of DMTF standards, visit
// http://www.dmtf.org/about/policies/disclosures.php.
//#pragma inLine
// ===================================================================
// Description: The Physical Model defines modeling concepts related
//              to actual boxes and packaging. This file defines the
//              concepts related to storage media (physical packaging
//              and statistics).
// 
//              The object classes below are listed in an order that
//              avoids forward references. Required objects, defined
//              by other working groups, are omitted.
// ==================================================================
// Change Log for 2.8 Final
// CR1031 - PackageLocation
// CR1233 - SysDev omnibus minor MOF correction CR
// 
// Change Log for v2.7 Final
// CR970 - Removal of the Experimental qualifier.
// 
// Change Log for v2.7
// CR721 - Add MediaPhysicalStatData that subclasses off the new
//         StatisticalData hierarchy
// ==================================================================

#pragma locale ("en_US")


// ===================================================================
// StorageMediaLocation
// ===================================================================
   [Version ( "2.8.0" ), Description (
       "StorageMediaLocation is a PackageLocation where PhysicalMedia "
       "may be placed. This class is typically used in the context of "
       "a StorageLibrary. Examples of StorageMediaLocations are Media "
       "AccessDevices, InterLibraryPorts or 'slots' in a Library's "
       "panel.")]
class CIM_StorageMediaLocation : CIM_PackageLocation {

      [Description (
          "The type of Location. For example, whether this is an "
          "individual Media \"Slot\" (value=2), a MediaAccessDevice "
          "(value=4) or a \"Magazine\" (value=3) is indicated in this "
          "property."), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, 
       Values { "Unknown", "Other", "Slot", "Magazine",
          "MediaAccessDevice", "InterLibrary Port",
          "Limited Access Port", "Door", "Shelf", "Vault" }]
   uint16 LocationType;

      [Description (
          "Certain StorageMediaLocations may only be able to accept a "
          "limited set of PhysicalMedia MediaTypes. This property "
          "defines an array containing the types of Media that are "
          "acceptable for placement in the Location. Additional "
          "information and description of the contained MediaTypes can "
          "be provided using the TypesDescription array. Also, size "
          "data (for example, DVD disc diameter) can be specified "
          "using the MediaSizesSupported array. \n"
          "\n"
          "Values defined here correspond to those in the CIM_Physical "
          "Media.MediaType property. This allows quick comparisons "
          "using value equivalence calculations. It is understood that "
          "there is no external physical difference between (for "
          "example) DVD- Video and DVD-RAM. But, equivalent values in "
          "both the Physical Media and StorageMediaLocation "
          "enumerations allows for one for one comparisons with no "
          "additional processing logic (i.e., the following is not "
          "required ... if \"DVD-Video\" then value=\"DVD\")."), 
       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" },
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_PhysicalMedia.MediaType",
          "CIM_StorageMediaLocation.MediaSizesSupported" }]
   uint16 MediaTypesSupported[];

      [Description (
          "The sizes (in inches) of the particular MediaTypes that may "
          "be placed in the Location. Note, each entry of this array "
          "is related to the entry in the MediaTypesSupported array "
          "that is located at the same index."), 
       Units ( "Inches" ), ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_PhysicalMedia.MediaType",
          "CIM_StorageMediaLocation.MediaSizesSupported",
          "CIM_StorageMediaLocation.TypeDescriptions" }]
   real32 MediaSizesSupported[];

      [Description (
          "A StorageMediaLocation may hold more than one PhysicalMedia "
          "- for example, a Magazine. This property indicates the "
          "Physical Media capacity of the Location.")]
   uint32 MediaCapacity;

      [Description (
          "This property provides additional detail related to the "
          "entries in the MediaTypesSupported array. This is "
          "especially critical when the MediaTypesSupported value is 1 "
          "(\"Other\"). Note, each entry of this array is related to "
          "the entry in MediaTypesSupported that is located at the "
          "same index."), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_StorageMediaLocation.MediaTypesSupported" }]
   string TypeDescriptions[];
};


// ===================================================================
// Magazine
// ===================================================================
   [Version ( "2.6.0" ), Description (
       "StorageMediaLocations are typically slots or spaces where "
       "removable media are located. However, a specific kind of "
       "MediaLocation is a Magazine. This entity represents a single "
       "physical container with multiple StorageMediaLocations in it. "
       "All the MediaLocations within the Magazine are added/removed "
       "together. Often, this container has a Barcode or other label "
       "for identification. This is the unique data captured in the "
       "CIM_Magazine class. Magazine's label properties are defined "
       "exactly as are labels for PhysicalMedia.")]
class CIM_Magazine : CIM_StorageMediaLocation {

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

      [Description (
          "An array of enumerated integers describing the states of "
          "each of the labels on a Magazine. 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_Magazine.PhysicalLabels" }]
   uint16 LabelStates[];

      [Description (
          "An array of enumerated integers describing the formats of "
          "each of the labels on a Magazine. 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_Magazine.PhysicalLabels" }]
   uint16 LabelFormats[];
};


// ===================================================================
// MediaPhysicalStatData
// ===================================================================
   [Version ( "2.7.0" ), Description (
       "Statistics related to reading physical labels and picks/puts "
       "at a specific StorageMediaLocation, or for a specific piece of "
       "PhysicalMedia. The same class is used to represent this data - "
       "whether for a Location (independent of the Media), OR for the "
       "Media (independent of its StorageMediaLocation). The element "
       "whose statistics are described is associated using the "
       "relationship, ElementStatisticalData.")]
class CIM_MediaPhysicalStatData : CIM_StatisticalData {

      [Description (
          "The number of successful physical label scans."), 
       Counter]
   uint64 ScanSuccesses;

      [Description (
          "The number of failed physical label scans."), 
       Counter]
   uint64 ScanFailures;

      [Description (
          "The number of retried physical label scans."), 
       Counter]
   uint64 ScanRetries;

      [Description (
          "The number of successful picks."), 
       Counter]
   uint64 PickSuccesses;

      [Description (
          "The number of failed picks."), 
       Counter]
   uint64 PickFailures;

      [Description (
          "The number of retried picks."), 
       Counter]
   uint64 PickRetries;

      [Description (
          "The number of successful puts."), 
       Counter]
   uint64 PutSuccesses;

      [Description (
          "The number of failed puts."), 
       Counter]
   uint64 PutFailures;

      [Description (
          "The number of retried puts."), 
       Counter]
   uint64 PutRetries;
};


// ===================================================================
// MediaPhysicalStatInfo
// ===================================================================
   [Deprecated { "CIM_MediaPhysicalStatData" }, Version ( "2.7.0" ), 
    Description (
       "Statistics related to reading physical labels and picks/puts "
       "at a specific StorageMediaLocation, or for a specific piece of "
       "PhysicalMedia. Although the same class is used to represent "
       "this data, at the instance level the object holds information "
       "for the Location (independent of the Media), OR for the Media "
       "(independent of its StorageMediaLocation). This class is "
       "deprecated in lieu of MediaPhysicalStatData, to take advantage "
       "of the simplified key structure defined there.")]
class CIM_MediaPhysicalStatInfo : CIM_PhysicalStatisticalInformation {

      [Deprecated { "CIM_MediaPhysicalStatData.ScanSuccesses" }, 
       Description (
          "The number of successful physical label scans."), 
       Counter]
   uint64 ScanSuccesses;

      [Deprecated { "CIM_MediaPhysicalStatData.ScanFailures" }, 
       Description (
          "The number of failed physical label scans."), 
       Counter]
   uint64 ScanFailures;

      [Deprecated { "CIM_MediaPhysicalStatData.ScanRetries" }, 
       Description (
          "The number of retried physical label scans."), 
       Counter]
   uint64 ScanRetries;

      [Deprecated { "CIM_MediaPhysicalStatData.PickSuccesses" }, 
       Description (
          "The number of successful picks."), 
       Counter]
   uint64 PickSuccesses;

      [Deprecated { "CIM_MediaPhysicalStatData.PickFailures" }, 
       Description (
          "The number of failed picks."), 
       Counter]
   uint64 PickFailures;

      [Deprecated { "CIM_MediaPhysicalStatData.PickRetries" }, 
       Description (
          "The number of retried picks."), 
       Counter]
   uint64 PickRetries;

      [Deprecated { "CIM_MediaPhysicalStatData.PutSuccesses" }, 
       Description (
          "The number of successful puts."), 
       Counter]
   uint64 PutSuccesses;

      [Deprecated { "CIM_MediaPhysicalStatData.PutFailures" }, 
       Description (
          "The number of failed puts."), 
       Counter]
   uint64 PutFailures;

      [Deprecated { "CIM_MediaPhysicalStatData.PutRetries" }, 
       Description (
          "The number of retried puts."), 
       Counter]
   uint64 PutRetries;

      [Deprecated { "CIM_StatisticalData.ResetSelectedStats" }, 
       Description (
          "Method to reset the statistical counters. The method takes "
          "one parameter as input - an integer indicating which "
          "counter to reset. For this input parameter, 0 indicates "
          "all, 1-3 reset the scan-related counters, 4-6 reset the "
          "'pick'-related counters, and 7-9 reset the 'put'-related "
          "counters. The method returns 0 if successful, 1 if not "
          "supported, and any other value if an error occurred. A "
          "method is specified so that the Element's instrumentation "
          "can also reset its internal processing and counters. The "
          "set of possible return codes should be specified in a "
          "ValueMap qualifier on the method. The strings to which the "
          "ValueMap contents are 'translated' should be specified as a "
          "Values array qualifier on the method.")]
   uint32 ResetCounter ( 
         [IN, Description (
             "The counter to reset."), 
          ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, 
          Values { "All", "Scan Successes", "Scan Failures",
             "Scan Retries", "Pick Successes", "Pick Failures",
             "Pick Retries", "Put Successes", "Put Failures",
             "Put Retries" }]
      uint16 SelectedCounter); 
};


// ===================================================================
// end of file
// ===================================================================
