// ===================================================================
// Title:       Physical Storage Media Packaging 2.7
// Filename:    Physical27_StoragePackage.mof
// Version:     2.7.0
// Release:     Final
// Date:        03/31/03
// ===================================================================
// Copyright 2001-2003 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.
// ===================================================================
// 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 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.6.0"), Description (
    "StorageMediaLocation is a PhysicalPackage where PhysicalMedia "
    "may be placed. This class describes an entity that holds Media "
    "and is not just a 'place' (as is conveyed by the CIM_Location "
    "object). 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_PhysicalPackage {
    [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 (
        "LocationCoordinates represent the physical location of the "
        "the StorageMediaLocation instance. The property is defined "
        "as a free-form string to allow the location information to "
        "be described in vendor-unique terminology.") ]
    string LocationCoordinates;
    
    [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\")."),
        ArrayType ("Indexed"), 
        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.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."), 
        ArrayType ("Indexed"), Units ("Inches"), 
        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."),
        ArrayType ("Indexed"), 
        ValueMap {"0", "1", "2"}, 
        Values {"OK/Readable", "Unreadable", "Upside Down"}, 
        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."), 
        ArrayType ("Indexed"), 
        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"}, 
        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
// ===================================================================
[Version ("2.7.0"), Deprecated {"CIM_MediaPhysicalStatData"},
    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, 
            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
// ===================================================================
