// Copyright (c) 2008 DMTF.  All rights reserved.
   [Version ( "2.19.0" ), 
    UMLPackagePath ( "CIM::Device::StorageStatistics" ), 
    Description ( 
       "Instances of this class define a list of supported or desired "
       "properties of BlockStatisticalData instances. In the case "
       "where a BlockStatisticsManifest instance is a member of a "
       "BlockStatisticsManifestCollection used in a "
       "BlockStatisticsService.GetStatisticsCollection request, for "
       "each of the boolean \"include\" properties set to true in that "
       "BlockStatisticsManifest, the corresponding "
       "BlockStatisticalData property will be included, if available, "
       "in the statistics returned for BlockStatisticalData instances "
       "whose ElementType matches the ElementType of the "
       "BlockStatisticsManifest." )]
class CIM_BlockStatisticsManifest : CIM_ManagedElement {

      [Key, Override ( "InstanceID" ), 
       Description ( 
          "Within the scope of the instantiating Namespace, "
          "InstanceID opaquely and uniquely identifies an instance "
          "of this class. To ensure uniqueness within the "
          "NameSpace, the value of InstanceID should be constructed "
          "using the following \"preferred\" algorithm: \n"
          "<OrgID>:<LocalID> \n"
          "Where <OrgID> and <LocalID> are separated by a colon "
          "(:), and where <OrgID> must include a copyrighted, "
          "trademarked, or otherwise unique name that is owned by "
          "the business entity that is creating or defining the "
          "InstanceID or that is a registered ID assigned to the "
          "business entity by a recognized global authority. (This "
          "requirement is similar to the <Schema Name>_<Class Name> "
          "structure of Schema class names.) In addition, to ensure "
          "uniqueness, <OrgID> must not contain a colon (:). When "
          "using this algorithm, the first colon to appear in "
          "InstanceID must appear between <OrgID> and <LocalID>. \n"
          "<LocalID> is chosen by the business entity and should "
          "not be reused to identify different underlying "
          "(real-world) elements. If the above \"preferred\" "
          "algorithm is not used, the defining entity must assure "
          "that the resulting InstanceID is not reused across any "
          "InstanceIDs produced by this or other providers for the "
          "NameSpace of this instance. \n"
          "For DMTF-defined instances, the \"preferred\" algorithm "
          "must be used with the <OrgID> set to CIM." )]
   string InstanceID;

      [Description ( 
          "Determines the type of elements that this "
          "BlockStatisticsManifest can be applied to (e.g. during a "
          "GetStatisticsCollection request). This is used when the "
          "same set of statistical metrics is calculated for "
          "several types of devices. In this way, a single "
          "BlockStatisticsManifest instance can be used to filter "
          "all the StatsiticalData instances that contain metrics "
          "for the same type of element in a StatisticsCollection. "
          "If used, a subclass should override this property to "
          "specify the element types supported by that class, "
          "preferably through ValueMap and Values qualifiers to "
          "allow clients to programmatically retrieve those "
          "supported types." ), 
       ValueMap { "2", "3", "4", "5", "6", "7", "8", "9", "10", 
          "11", "12", "..", "0x8000.." }, 
       Values { "Computer System", "Front-end Computer System", 
          "Peer Computer System", "Back-end Computer System", 
          "Front-end Port", "Back-end Port", "Volume", "Extent", 
          "Disk Drive", "Arbitrary LUs", "Remote Replica Group", 
          "DMTF Reserved", "Vendor Specific" }, 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.ElementType" }]
   uint16 ElementType;

      [Description ( 
          "Indicates whether or not the Statistics property of "
          "StatisticsService.GetStatisticsCollection method will "
          "include the time at time when statistics for this "
          "BlockStatisticsManifest were first captured." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.StartStatisticTime" }]
   boolean IncludeStartStatisticTime = false;

      [Description ( 
          "Indicates whether or not the Statistics property of "
          "StatisticsService.GetStatisticsCollection method will "
          "include the time when statistics for this "
          "BlockStatisticsManifest were last captured." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.StatisticTime" }]
   boolean IncludeStatisticTime = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative count of I/Os for that element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.StatisticTime" }]
   boolean IncludeTotalIOs = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative count of data transferred in Kbytes for that "
          "element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.KBytesTransferred" }]
   boolean IncludeKBytesTransferred = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative elapsed I/O time (number of Clock Tick "
          "Intervals) for all I/Os for that element as defined in "
          "\'Total I/Os\'." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.IOTimeCounter" }]
   boolean IncludeIOTimeCounter = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative count of all reads for that element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.ReadIOs" }]
   boolean IncludeReadIOs = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative count of all read cache hits (Reads from "
          "Cache) for that element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.ReadHitIOs" }]
   boolean IncludeReadHitIOs = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative elapsed time for all cumulative Read I/Os for "
          "that element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.ReadIOTimeCounter" }]
   boolean IncludeReadIOTimeCounter = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative elapsed time for all Read I/Os read from "
          "cache for that element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.ReadHitIOTimeCounter" }]
   boolean IncludeReadHitIOTimeCounter = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative count of data read in Kbytes for that "
          "element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.KBytesRead" }]
   boolean IncludeKBytesRead = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative count of all writes for tat element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.WriteIOs" }]
   boolean IncludeWriteIOs = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative count of Write Cache Hits (Writes that went "
          "directly to Cache) for that element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.WriteHitIOs" }]
   boolean IncludeWriteHitIOs = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative elapsed time for all Write I/Os for that "
          "element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.WriteIOTimeCounter" }]
   boolean IncludeWriteIOTimeCounter = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative elapsed time for all Write I/Os written to "
          "cache for that element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.WriteHitIOTimeCounter" }]
   boolean IncludeWriteHitIOTimeCounter = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative count of data written in Kbytes for that "
          "element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.KBytesWritten" }]
   boolean IncludeKBytesWritten = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative elapsed idle time for that element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.IdleTimeCounter" }]
   boolean IncludeIdleTimeCounter = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative count of all maintenance operations for that "
          "element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.MaintOp" }]
   boolean IncludeMaintOp = false;

      [Description ( 
          "Whether to include in a filter for a metered element the "
          "cumulative elapsed maintenance time for that element." ), 
       ModelCorrespondence { 
          "CIM_BlockStorageStatisticalData.MaintTimeCounter" }]
   boolean IncludeMaintTimeCounter = false;


};
