// ===================================================================
// Title:  Interoperability MOF Specification
// $State: Exp $
// $Date: 2004/08/15 05:55:36 $
// $Source: /cvsroot/wbemservices/open/mof/dmtf/2.9/CIM_Interop.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 object classes below are listed in an order that
//              avoids forward references. Required objects, defined
//              by other working groups, are omitted.
// ==================================================================
// 19 Apr 2004  - Version 2.9 Preliminary
//       CR1386 - Define Query Capabilities
//       CR1385 - Fix VALUEMAP for CIMXMLCommMech subclass
//	 CR1372 - Add advertise information to CommMechanism class
//	 CR1340 - Provider Registration Model
//	 CR1308 - Add Status Code and Description to CIM_Error
//       CR1253 - CIM_Error MessageFormat Changes
//       CR1252 - CIM_Error Company review feedback changes.
// 20 Jan 2004  - Version 2.8 Final
//       CR1244 - Misc errors in Interop Model
//       CR1241 - Deprecate CommMechanismForAdapter
//       CR1224 - Experimental to Final for Interop Model
//       CR1216 - Fix ClassInfo in CIM_Namespace
//       CR1215 - Deprecate ProtocolAdapter for ObjectManagerAdapter
//       CR1164 - Clarify uniqueness of RegisteredName
// 03 Aug 2003  - Version 2.8 Preliminary
//       CR1143 - add missing support for CIM 2.8 in the Interop28.mof
//       CR1128 - Introduce HostedDependency into the hierarchy.
//       CR1070 - Bring forward experimental classes
//       CR1000 - RegisteredProfile Model
//       CR0955 - Change property names in ProviderCapabilities
//       CR0923 - Add ID to Object Manager
//       CR0909 - Add the definition of CIM_Error class (+ to compile
//                without a key, Exception AND Indication qualifiers
//                needed)
// ==================================================================

#pragma Locale ("en_US")

// ==================================================================
// Compile prerequisite:  Core and Event MOFs
// ==================================================================


// ==================================================================
// WBEMService
// ==================================================================
   [Abstract, Version ( "2.6.0" ), Description (
       "An abstract class for WBEM services such as the ObjectManager "
       "(CIM Server), Providers, protocol adapters, or other pluggable "
       "components. A type of CIM_Service that provides associated "
       "capabilities and details about the communication capabilities, "
       "namespaces, etc. for a specific WBEMService.")]
class CIM_WBEMService : CIM_Service {
};


// ==================================================================
// ObjectManager
// ==================================================================
   [Version ( "2.8.0" ), Description (
       "A type of CIM_Service that defines the capabilities of the CIM "
       "Server in which this ObjectManager class resides. Details "
       "related to communicating with the ObjectManager, and the "
       "Manager's basic capabilities, are stored in instances of the "
       "associated CommunicationMechanism class available through the "
       "CommMechanismForManager association. It is assumed that Basic "
       "Read operations must be supported by all ObjectManager's in "
       "order to retrieve any additional detail.")]
class CIM_ObjectManager : CIM_WBEMService {

      [Write, Description (
          "The GatherStatisticalData property is used to control the "
          "gathering of statistical data made accessible through the "
          "CIM_CIMOMStatisticalData objects. If set to true, the data "
          "is gathered and can be accessed. If false, the "
          "CIM_CIMOMStatisticalData instance MAY exist but MUST show "
          "zero values for the counter properties.")]
   boolean GatherStatisticalData = true;

      [Override ( "Name" ), Description (
          "The Name property is used to uniquely identify a CIM "
          "Server. The CIM Server MUST ensure that this value is "
          "globally unique. In order to ensure uniqueness, this value "
          "SHOULD be constructed in the following manner. <Vendor "
          "ID>:<Unique ID> \n"
          "<Vendor ID> MUST include a copyrighted, trademarked or "
          "otherwise unique name that is owned by the business entity "
          "or a registered ID that is assigned to the business entity "
          "that is defining the Name. (This is similar to the <Schema "
          "Name>_<Class Name> structure of Schema class names.) The "
          "purpose of <Vendor ID> is to ensure that <ID> is truly "
          "unique across multiple vendor implementations. If such a "
          "name is not used, the defining entity MUST assure that the "
          "<ID> portion of the Instance ID is unique when compared "
          "with other instance providers. For DMTF defined instances, "
          "the <Vendor ID> is 'CIM'. \n"
          "<Unique ID> MUST include a vendor specified unique "
          "identifier. \n"
          "Note: Name is semantically the same as InstanceID. In the "
          "next major version of the CIM Schema, Name will be renamed "
          "to InstanceID and become the only key of this class.")]
   string Name;

      [Override ( "ElementName" ), Description (
          "The ElmentName property is used as a name of the CIM Server "
          "for human interfaces. For example, \"ACME CIM Server\"). "
          "This property is required to support the SLP discovery "
          "mechanism. In the next major release this property MAY "
          "include the required qualifier.")]
   string ElementName;

      [Override ( "Description" ), Description (
          "The description property is used as a description of the "
          "CIM Server for human interfaces. For example, \" ACME CIM "
          "Server version 2.2\"). This property is required to support "
          "the SLP discovery mechanism. In the next major release this "
          "property MAY include the required qualifier.")]
   string Description;
};


// ==================================================================
// ObjectManagerCommunicationMechanism
// ==================================================================
   [Version ( "2.7.0" ), Description (
       "The class, ObjectManagerCommunicationMechanism, describes "
       "access to an ObjectManager. It describes a protocol and data "
       "encoding that can be used for communication. When all "
       "instances of this class are enumerated for an ObjectManager "
       "(using the CommMechanismForManager association), all possible "
       "protocol and encoding schemes will be known. Also, specific "
       "capabilities (for example, basic read or query) that are "
       "supported in the protocol/encoding are described - using the "
       "ProfilesSupported property.")]
class CIM_ObjectManagerCommunicationMechanism : CIM_ServiceAccessPoint {

      [Required, Description (
          "CommunicationMechanism describes an encoding and protocol "
          "which can be used to communicate with the ObjectManager. At "
          "this time, only one encoding and protocol are standardized "
          "by the DMTF - \"CIM-XML\". If this is supported by an "
          "ObjectManager, the specified string should be indicated. "
          "Other 'standard' strings may be defined. In addition, a "
          "vendor specific encoding/protocol string may be used."), 
       ValueMap { "0", "1", "2" }, 
       Values { "Unknown", "Other", "CIM-XML" }, 
       ModelCorrespondence { "CIM_ObjectManagerCommunicationMechanism." 
          "OtherCommunicationMechanismDescription" }]
   uint16 CommunicationMechanism;

      [Description (
          "A free-form string providing a description of the supported "
          "protocols when 1, \"Other\", is specified in the "
          "CommunicationMechanism."), 
       ModelCorrespondence { 
          "CIM_ObjectManagerCommunicationMechanism.CommunicationMechanism" 
          }]
   string OtherCommunicationMechanismDescription;

      [Required, Description (
          "Enumerated array describing the types of operations "
          "supported by the ObjectManager, using this "
          "encoding/protocol. The enumeration is based on the "
          "Functional Profiles defined for conformance in the DMTF "
          "document, Specification for CIM Operations over HTTP."), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, 
       Values { "Unknown", "Other", "Basic Read", "Basic Write",
          "Schema Manipulation", "Instance Manipulation",
          "Association Traversal", "Query Execution",
          "Qualifier Declaration", "Indications" },
          ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_ObjectManagerCommunicationMechanism." 
          "FunctionalProfileDescriptions" }]
   uint16 FunctionalProfilesSupported[];

      [Description (
          "Free-form strings providing descriptions of the supported "
          "operations of the object manager. Entries in the array are "
          "correlated with those in the ProfilesSupported array. An "
          "entry in this Descriptions array MUST be provided when 1, "
          "\"Other\", is specified in the FunctionalProfilesSupported "
          "array."), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_ObjectManagerCommunicationMechanism." 
          "FunctionalProfilesSupported" }]
   string FunctionalProfileDescriptions[];

      [Required, Description (
          "Boolean indicating whether the ObjectManager supports "
          "multiple operation requests (TRUE) or only simple requests "
          "(FALSE).")]
   boolean MultipleOperationsSupported;

      [Required, Description (
          "Enumerated array describing the types of authentication "
          "supported by the ObjectManager, using the "
          "encoding/protocol. specified in the property, "
          "CommunicationMechanism. The defined values represent the "
          "authentication defined in the DMTF document, Specification "
          "for CIM Operations over HTTP."), 
       ValueMap { "0", "1", "2", "3", "4" }, 
       Values { "Unknown", "Other", "None", "Basic", "Digest" },
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_ObjectManagerCommunicationMechanism." 
          "AuthenticationMechanismDescriptions" }]
   uint16 AuthenticationMechanismsSupported[];

      [Description (
          "Free-form strings providing descriptions of the supported "
          "mechanisms. Entries in this array are correlated with those "
          "in the AuthenticationMechanismsSupported array. An entry in "
          "this Descriptions array MUST be provided when 1, \"Other\", "
          "is specified in AuthenticationMechanismsSupported."), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_ObjectManagerCommunicationMechanism." 
          "AuthenticationMechanismsSupported" }]
   string AuthenticationMechanismDescriptions[];

      [Required, Description (
          "Provides the protocol version for this service access "
          "point. Version information MUST be in the form of M.N, "
          "where M is a numeric that describes the Major version and N "
          "is a numeric that describes the minor version.")]
   string Version;
      [Required, Description (
          "This property signifies the advertisement for this access "
          "point. . It is used by the advertising services of the WBEM "
          "infrastructure to determine what should be advertised, via "
          "what mechanisms. The property is an array so that the "
          "communicationMechansim MAY be advertised using several "
          "mechanisms. Note: If this property is null/uninitialized, "
          "this is equivalent to specifying the value 2, \"Not "
          "Advertised\"."), 
       ValueMap { "1", "2", "3" }, 
       Values { "Other", "Not Advertised", "SLP" },
          ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_ObjectManagerCommunicationMechanism." 
          "AdvertiseTypeDescriptions" }]
   uint16 AdvertiseTypes[];

      [Description (
          "A free-form string providing additional information related "
          "to the AdvertiseType. A description MUST be provided when "
          "the AdvertiseType is 1, \"Other\". An entry in this array "
          "corresponds to the entry in the AdvertiseTypes array at the "
          "same index. It is not expected that additional descriptions "
          "are needed if the Type is set to \"Not Advertised\" or "
          "\"SLP\". However, as the SLP template expands, or as other "
          "advertisement mechanisms are defined, support for "
          "additional descriptions may be needed. This array is "
          "defined to support this."), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_ObjectManagerCommunicationMechanism." 
          "AdvertiseTypes" }]
   string AdvertiseTypeDescriptions[];
};


// ==================================================================
// CIMXMLCommunicationMechanism
// ==================================================================
   [Version ( "2.8.1000" ), Description (
       "This class specializes ObjectManagerCommunicationMechanism, "
       "adding properties specific to the CIM-XML protocol (XML "
       "encoding and CIM Operations).")]
class CIM_CIMXMLCommunicationMechanism : CIM_ObjectManagerCommunicationMechanism {

     [Required, Override ( "CommunicationMechanism" ),  Description(
       "The only valid CommunicationMechanism for this subclass is CIM-XML."),
        ValueMap {"2"},  Values {"CIM-XML"}]
   uint16 CommunicationMechanism = 2;

      [Required, Override ( "Version" ), Description (
          "Enumeration describing the CIM-XML protocol version "
          "supported by the ObjectManager."), 
       ValueMap { "1.0", "1.1", "1.2" }]
   string Version;

      [Deprecated { "CIM_CIMXMLCommunicationMechanism.Version" },
       Required, Description (
          "Enumeration describing the CIM-XML protocol version "
          "supported by the ObjectManager. It is deprecated in lieu of "
          "a more general, inherited property (Version)."), 
       ValueMap { "0", "1" }, 
       Values { "Unknown", "1.0" }]
   uint16 CIMXMLProtocolVersion;

      [Required, Description (
          "Describes whether the CIM Server is strictly validating "
          "(validates the XML document against the DTD) or not "
          "(loosely validating).")]
   boolean CIMValidated;
};


// ==================================================================
// CommMechanismForManager
// ==================================================================
   [Association, Version ( "2.6.0" ), Description (
       "CommMechanismForManager is an association between an "
       "ObjectManager and an ObjectManagerCommunicationMechanism "
       "class. The latter describes a possible encoding/protocol/ set "
       "of operations for accessing the referenced ObjectManager.")]
class CIM_CommMechanismForManager : CIM_ServiceAccessBySAP {

      [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
          "The specific ObjectManager whose communication mechanism is "
          "described.")]
   CIM_ObjectManager REF Antecedent;

      [Override ( "Dependent" ), Min ( 1 ), Description (
          "The encoding/protocol/set of operations that may be used to "
          "communicate with the referenced ObjectManager.")]
   CIM_ObjectManagerCommunicationMechanism REF Dependent;
};


// ==================================================================
// ProtocolAdapter
// ==================================================================
   [Deprecated { "CIM_ObjectManagerAdapter" }, Version ( "2.8.0" ), 
    Description (
       "CIM_ProtocolAdapter is deprecated in lieu of "
       "CIM_ObjectManagerAdapter. Since the CIM_ProtocolAdapter class "
       "does not have to support the protocols and can be any type of "
       "adapter, it was decided to change the name to "
       "ObjectManagerAdapter to better reflect the true meaning of the "
       "class. A ProtocolAdapter is a Service of the CIM Object "
       "Manager. It is responsible for accepting incoming requests on "
       "a particular protocol, and translating and forwarding the "
       "request to the CIM Object Manager. It is also responsible for "
       "translating and sending the response from the CIM Object "
       "Manager.")]
class CIM_ProtocolAdapter : CIM_WBEMService {

      [Deprecated { "CIM_ObjectManagerAdapter.Name" },
          Override ( "Name" ), Description (
          "A human-readable name that uniquely identifies the Protocol "
          "Adapter within a system.")]
   string Name;

      [Deprecated { "CIM_ObjectManagerAdapter.Handle" }, Required, 
       Description (
          "An implementation specific string that identifies the "
          "handle to the ProtocolAdapter.")]
   string Handle;

      [Deprecated { "CIM_ObjectManagerAdapter.AdapterType" }, Required, 
       Description (
          "ProtocolAdapterType enumerates the kind of Protocol "
          "Adapter."), 
       ValueMap { "1", "2", "3" }, 
       Values { "Other", "Client", "Provider" }, 
       ModelCorrespondence { 
          "CIM_ProtocolAdapter.OtherProtocolAdapterType" }]
   uint16 ProtocolAdapterType;

      [Deprecated { 
          "CIM_ObjectManagerAdapter.OtherAdapterTypeDescription" }, 
       Description (
          "The type(s) of ProtocolAdapter when \"Other\" is included "
          "in ProtocolAdapterType property."), 
       ModelCorrespondence { "CIM_ProtocolAdapter.ProtocolAdapterType" 
          }]
   string OtherProtocolAdapterType;
};

// ==================================================================
// ObjectManagerAdapter
// ==================================================================
   [Version ( "2.8.0" ), Description (
       "A ObjectManagerAdapter is a Service of the CIM Object Manager. "
       "An adapter can be any service of the Object Manager that needs "
       "to be managed (e.g. started, stopped, monitored, ...). There "
       "MUST be an instance for each Adapter type.")]
class CIM_ObjectManagerAdapter : CIM_WBEMService {

      [Override ( "Name" ), Description (
          "A human-readable name that uniquely identifies the "
          "ObjectManager within a system.")]
   string Name;

      [Override ( "ElementName" ), Description (
          "The ElmentName property is used as a name of the Object "
          "Manager Adapter for human interfaces. For example, \"ACME "
          "ObjectManager Adapter\".")]
   string ElementName;

      [Required, Description (
          "An implementation specific string that identifies the "
          "handle to the Object Manager Adapter.")]
   string Handle;

      [Required, Description (
          "AdapterType enumerates the kind of Object Manager Adapter. "
          "If 'Other' is specified, the OtherAdapterTypeDescription "
          "property MUST be populated. \n"
          "Other - If the adapter does not fit into one of the other "
          "catagories in the list. If specified, the "
          "OtherAdapterTypeDescription property MUST be populated. \n"
          "Client - A client side adapter that responds to client "
          "operation requests, such as CIM-XML or CIM-SOAP. \n"
          "Provider - A provider adapter, such as DMI, SNMP, JSR48 or "
          "CMPI. \n"
          "Indication Handler - An Indication Handler is a service "
          "that delivers indications to a subscriber. Examples of "
          "possible Indication Handlers are CIM-XML, CIM-SOAP, SMPT "
          "(e-mail) or any other delivery mechanism. \n"
          "Repository - A repository is an adapter that can "
          "store/retrieve persistent data, such as CIM Qualifier "
          "Types, CIM Classes and CIM Instances. An Object Manager "
          "could use multiple repositiories at one time, for example "
          "one could be used for CIM Schema information only, while "
          "another is used for instance information. Repositories MAY "
          "be remote or local to the CIM Object Manager. Examples of "
          "repository implementations could be databases, LDAP or "
          "files."), 
       ValueMap { "1", "2", "3", "4", "5" }, 
       Values { "Other", "Client", "Provider", "Indication Handler",
          "Repository" }, 
       ModelCorrespondence { 
          "CIM_ObjectManagerAdapter.OtherAdapterTypeDescription" }]
   uint16 AdapterType;

      [Description (
          "The type(s) of ObjectManagerAdapter when \"Other\" is "
          "included in ObjectManagerAdapterType property."), 
       ModelCorrespondence { "CIM_ObjectManagerAdapter.AdapterType" }]
   string OtherAdapterTypeDescription;
};

// ==================================================================
// CommMechanismForAdapter
// ==================================================================
   [Association,
       Deprecated { "CIM_CommMechanismForObjectManagerAdapter" },
    Version ( "2.8.0" ), Description (
       "CommMechanismForAdapter is an association between an "
       "ObjectManager's communication mechanism and a ProtocolAdapter "
       "that supports that mechanism to translate requests and "
       "responses for the Object Manager.")]
class CIM_CommMechanismForAdapter : CIM_Dependency {

      [Deprecated { "CIM_CommMechanismForObjectManagerAdapter." 
          "Antecedent" }, Override ( "Antecedent" ), Description (
          "The specific ProtocolAdapter whose communication mechanism "
          "with the CIM Object Manager is described.")]
   CIM_ProtocolAdapter REF Antecedent;

      [Deprecated { "CIM_CommMechanismForObjectManagerAdapter." 
          "Dependent" }, Override ( "Dependent" ), Min ( 1 ), 
       Description (
          "The encoding/protocol/set of operations that may be used to "
          "communicate between the Object Manager and the referenced "
          "ProtocolAdapter.")]
   CIM_ObjectManagerCommunicationMechanism REF Dependent;
};

// ==================================================================
// CommMechanismForObjectManagerAdapter
// ==================================================================
   [Association, Version ( "2.8.0" ), Description (
       "CommMechanismForObjectManagerAdapter is an association between "
       "an ObjectManager's communication mechanism and a "
       "ObjectManagerAdapter that supports that mechanism to translate "
       "requests and responses for the Object Manager.")]
class CIM_CommMechanismForObjectManagerAdapter : CIM_Dependency {

      [Override ( "Antecedent" ), Description (
          "The specific ObjectManagerAdapter whose communication "
          "mechanism with the CIM Object Manager is described.")]
   CIM_ObjectManagerAdapter REF Antecedent;

      [Override ( "Dependent" ), Min ( 1 ), Description (
          "The encoding/protocol/set of operations that may be used to "
          "communicate between the Object Manager and the referenced "
          "ProtocolAdapter.")]
   CIM_ObjectManagerCommunicationMechanism REF Dependent;
};


// ==================================================================
// Namespace
// ==================================================================
   [Version ( "2.8.0" ), Description (
       "Namespace provides a domain (in other words, a container), in "
       "which the instances [of a class] are guaranteed to be unique "
       "per the KEY qualifier definitions. It is named relative to the "
       "CIM_ObjectManager implementation that provides such a domain.")]
class CIM_Namespace : CIM_ManagedElement {

      [Key, Propagated ( "CIM_ObjectManager.SystemCreationClassName" ), 
       Description (
          "The scoping System's CreationClassName."), 
       MaxLen ( 256 )]
   string SystemCreationClassName;

      [Key, Propagated ( "CIM_ObjectManager.SystemName" ), 
       Description (
          "The scoping System's Name."), 
       MaxLen ( 256 )]
   string SystemName;

      [Key, Propagated ( "CIM_ObjectManager.CreationClassName" ), 
       Description (
          "The scoping ObjectManager's CreationClassName."), 
       MaxLen ( 256 )]
   string ObjectManagerCreationClassName;

      [Key, Propagated ( "CIM_ObjectManager.Name" ), Description (
          "The scoping ObjectManager's Name."), 
       MaxLen ( 256 )]
   string ObjectManagerName;

      [Key, Description (
          "CreationClassName indicates the name of the class or the "
          "subclass used in the creation of an instance. When used "
          "with the other key properties of this class, this property "
          "allows all instances of this class and its subclasses to be "
          "uniquely identified."), 
       MaxLen ( 256 )]
   string CreationClassName;

      [Key, Description (
          "A string to uniquely identify the Namespace within the "
          "ObjectManager."), 
       MaxLen ( 256 )]
   string Name;

      [Deprecated { "CIM_Namespace.ClassType" }, Required, Write, 
       Description (
          "Enumeration indicating the organization/schema of the "
          "Namespace's objects. For example, they may be instances of "
          "classes of a specific CIM version."), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
          "10", "11", "200", "201", "202" }, 
       Values { "Unknown", "Other", "CIM 1.0", "CIM 2.0", "CIM 2.1",
          "CIM 2.2", "CIM 2.3", "CIM 2.4", "CIM 2.5", "CIM 2.6",
          "CIM 2.7", "CIM 2.8", "DMI Recast", "SNMP Recast",
          "CMIP Recast" }, 
       ModelCorrespondence { "CIM_Namespace.DescriptionOfClassInfo" }]
   uint16 ClassInfo;

      [Deprecated { "CIM_Namespace.DescriptionOfClassType" }, Write, 
       Description (
          "A string providing more detail (beyond the general "
          "classification in ClassInfo) for the object hierarchy of "
          "the Namespace."), 
       ModelCorrespondence { "CIM_Namespace.ClassInfo" }]
   string DescriptionOfClassInfo;


      [Write, Description (
          "Enumeration indicating the schema of the Namespace's "
          "objects. For example, they may be instances of classes of a "
          "specific CIM version or a mapping from another standard, "
          "such as SNMP. If 'Other' is selected, the "
          "DescriptionOfClassType property MUST be populated."), 
       ValueMap { "0", "1", "2", "200", "201", "202" }, 
       Values { "Unknown", "Other", "CIM", "DMI Recast", "SNMP Recast",
          "CMIP Recast" }, 
       ModelCorrespondence { "CIM_Namespace.DescriptionOfClassType",
          "CIM_Namespace.ClassTypeVersion" }]
   uint16 ClassType;

      [Write, Description (
          "The version of the objects in this namespace. The string "
          "representing the version MUST be in the form: \n"
          "M + \".\" + N + \".\" + U \n"
          "Where: \n"
          "M - The major version (in numeric form) \n"
          "N - The minor version (in numeric form) \n"
          "U - The update (e.g. errata, patch, ..., in numeric form)"), 
       ModelCorrespondence { "CIM_Namespace.DescriptionOfClassType",
          "CIM_Namespace.ClassType" }]
   string ClassTypeVersion;

      [Write, Description (
          "A string providing more detail (beyond the general "
          "classification in ClassInfo) for the object hierarchy of "
          "the Namespace."), 
       ModelCorrespondence { "CIM_Namespace.ClassType",
          "CIM_Namespace.ClassTypeVersion" }]
   string DescriptionOfClassType;
};


// ==================================================================
// SystemIdentification
// ==================================================================
   [Version ( "2.7.0" ), Description (
       "A Namespace may represent data for one or many systems, that "
       "are local, remote (different than the system on which the "
       "ObjectManager is running) or aggregated. The System "
       "Identification class provides enough data to identify the "
       "system(s) represented in the Namespace. It is weak to the "
       "Namespace.")]
class CIM_SystemIdentification : CIM_ManagedElement {

      [Key, Propagated ( "CIM_Namespace.SystemCreationClassName" ), 
       Description (
          "The scoping System's CreationClassName."), 
       MaxLen ( 256 )]
   string SystemCreationClassName;

      [Key, Propagated ( "CIM_Namespace.SystemName" ), Description (
          "The scoping System's Name."), 
       MaxLen ( 256 )]
   string SystemName;

      [Key,
       Propagated ( "CIM_Namespace.ObjectManagerCreationClassName" ), 
       Description (
          "The scoping ObjectManager's CreationClassName."), 
       MaxLen ( 256 )]
   string ObjectManagerCreationClassName;

      [Key, Propagated ( "CIM_Namespace.ObjectManagerName" ), 
       Description (
          "The scoping ObjectManager's Name."), 
       MaxLen ( 256 )]
   string ObjectManagerName;

      [Key, Propagated ( "CIM_Namespace.CreationClassName" ), 
       Description (
          "The scoping Namespace's CreationClassName."), 
       MaxLen ( 256 )]
   string NamespaceCreationClassName;

      [Key, Propagated ( "CIM_Namespace.Name" ), Description (
          "The scoping Namespace's Name."), 
       MaxLen ( 256 )]
   string NamespaceName;

      [Key, Description (
          "CreationClassName indicates the name of the class or the "
          "subclass used in the creation of an instance. When used "
          "with the other key properties of this class, this property "
          "allows all instances of this class and its subclasses to be "
          "uniquely identified."), 
       MaxLen ( 256 )]
   string CreationClassName;

      [Key, Description (
          "A string uniquely identifying the name of the system "
          "represented in the Namespace."), 
       MaxLen ( 256 )]
   string Name;

      [Required, Write, Description (
          "Enumeration indicating the format of the system "
          "identification and/or addressing information."), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
          "10", "11" }, 
       Values { "Unknown", "Other", "Short DNS Name",
          "Fully qualified DNS Name", "Windows Domain Name",
          "NetWare Server Name", "Unix Hostname",
          "Globally Unique System Identifier", "IP Address",
          "Modem Dialup String", "MAC Address", "IPMI Address" },
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_SystemIdentification.IdentificationData",
          "CIM_SystemIdentification.FormatDescriptions" }]
   uint16 IdentificationFormats[];

      [Write, Description (
          "Strings further describing the format of the system "
          "identification information."), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_SystemIdentification.IdentificationFormats",
          "CIM_SystemIdentification.IdentificationData" }]
   string FormatDescriptions[];

      [Write, Description (
          "Strings containing the system identification information. "
          "The format is described by the corresponding array item in "
          "IdentificationFormats."), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_SystemIdentification.IdentificationFormats",
          "CIM_SystemIdentification.FormatDescriptions" }]
   string IdentificationData[];
};


// ==================================================================
// NamespaceInManager
// ==================================================================
   [Association, Version ( "2.7.0" ), Description (
       "NamespaceInManager is an association describing the Namespaces "
       "hosted by a CIM ObjectManager.")]
class CIM_NamespaceInManager : CIM_HostedDependency {

      [Override ( "Antecedent" ), Min ( 1 ), Max ( 1 ), Description (
          "The ObjectManager containing a Namespace.")]
   CIM_ObjectManager REF Antecedent;

      [Override ( "Dependent" ), Weak, Description (
          "The Namespace in an ObjectManager.")]
   CIM_Namespace REF Dependent;
};


// ==================================================================
// SystemInNamespace
// ==================================================================
   [Association, Version ( "2.6.0" ), Description (
       "SystemInNamespace is an association that allows enumeration of "
       "the system(s) represented in a Namespace.")]
class CIM_SystemInNamespace {

      [Key, Min ( 1 ), Max ( 1 ), Description (
          "The Namespace containing management objects from one or "
          "more systems.")]
   CIM_Namespace REF ManagedNamespace;

      [Key, Weak, Description (
          "Identification information for systems in the Namespace.")]
   CIM_SystemIdentification REF Identification;

      [Required, Write, Description (
          "A list of enumerated values providing a high level "
          "description of the data contained and allowed in the "
          "Namespace. Additional clarification is provided in the "
          "DescriptionOfContainedData array."), 
       ValueMap { "0", "1", "2", "3", "4" }, 
       Values { "Unknown", "Other", "Local System Data",
          "Data Aggregated from Multiple Systems", "Proxied Data" },
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_SystemInNamespace.DescriptionOfContainedData" }]
   uint16 ScopeOfContainedData[];

      [Write, Description (
          "An array of free-form strings providing more detailed "
          "explanations for the data/objects contained in the "
          "Namespace, as described by the ContainedData array. Note, "
          "each entry of this array is related to the entry in the "
          "ContainedData array that is located at the same index."), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_SystemInNamespace.ScopeOfContainedData" }]
   string DescriptionOfContainedData[];
};


// ==================================================================
// IdentificationOfManagedSystem
// ==================================================================
   [Association, Version ( "2.6.0" ), Description (
       "IdentificationOfManagedSystem is an association that links the "
       "SystemIdentification object to the CIM_System(s) that are "
       "being identified and represented in the Namespace.")]
class CIM_IdentificationOfManagedSystem : CIM_Dependency {

      [Override ( "Antecedent" ), Max ( 1 ), Description (
          "The System which is identified.")]
   CIM_System REF Antecedent;

      [Override ( "Dependent" ), Max ( 1 ), Description (
          "The SystemIdentification information.")]
   CIM_SystemIdentification REF Dependent;
};


// ==================================================================
// CIMOMStatisticalData
// ==================================================================
   [Version ( "2.7.0" ), Description (
       "CIM_CIMOMStatisticalData provides statistical data about the "
       "performance of the CIM Object Manager. Each object of this "
       "class provides elapsed time and size data for a particular "
       "type of CIM operation. All operations of that type, regardless "
       "of the CIM operations protocol being used, are accumulated in "
       "one object and covers the CIM operations issued by all clients "
       "of the Object Manager scoping the instance. Batched CIM "
       "operations are accumulated into a separate operation type for "
       "\"Batched\". The counters in this class SHOULD be implemented "
       "such that they always increment and naturally wrap around when "
       "their numerical limit is exceeded. A client that calculates "
       "the difference of two snapshots of a counter at the beginning "
       "and end of a measurement interval should get the correct "
       "result, even if there was a wrap-around in between obtaining "
       "the two snapshots. (Two or more wrap arounds will result in "
       "wrong data being calculated.) The gathering of the data can be "
       "controlled through the property, "
       "CIM_ObjectManager.GatherStatisticalData. The time interval to "
       "which the statistical data applies, ends at the current time "
       "and therefore includes the most current CIM operations. The "
       "interval starts when the statistical data gathering was last "
       "turned on for the Object Manager.")]
class CIM_CIMOMStatisticalData : CIM_StatisticalData {

      [Override ( "InstanceID" ), Description (
          "The InstanceID property opaquely identifies a unique "
          "instance of CIMOMStatisticalData and MUST be unique within "
          "a namespace. In order to ensure uniqueness, the value of "
          "InstanceID MUST be constructed in the following manner: \n"
          "CIM<ID> \n"
          "The <ID> MUST include a CIM Object Manager specified unique "
          "identifier.")]
   string InstanceID;

      [Required, Description (
          "The OperationType property identifies the type of CIM "
          "operation for which data is reported in this instance. "
          "Batched CIM operations (consisting of multiple simple CIM "
          "operations) are reported against the \"Batched\" type only."), 
       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" }, 
       Values { "Unknown", "Other", "Batched", "GetClass",
          "GetInstance", "DeleteClass", "DeleteInstance",
          "CreateClass", "CreateInstance", "ModifyClass", 
          // 10             
          "ModifyInstance", "EnumerateClasses", "EnumerateClassNames",
          "EnumerateInstances", "EnumerateInstanceNames", "ExecQuery",
          "Associators", "AssociatorNames", "References",
          "ReferenceNames", 
          // 20             
          "GetProperty", "SetProperty", "GetQualifier", "SetQualifier",
          "DeleteQualifier", "EnumerateQualifiers",
          "IndicationDelivery" }, 
       ModelCorrespondence { 
          "CIM_CIMOMStatisticalData.OtherOperationType" }]
   uint16 OperationType;

      [Description (
          "The OtherOperationType property identifies the operation if "
          "the OperationType property has a value of 1 (\"Other\"). "
          "For all other values of OperationType, the property is "
          "NULL."), 
       MaxLen ( 64 ), 
       ModelCorrespondence { "CIM_CIMOMStatisticalData.OperationType" }]
   string OtherOperationType;

      [Required, Description (
          "The NumberOfOperations property contains the number of CIM "
          "operations of the specified type. This property can be used "
          "to calculate average values per CIM operation."), 
       Counter]
   uint64 NumberOfOperations;

      [Required, Description (
          "The CimomElapsedTime property contains the elapsed time "
          "spent in the CIM Object Manager for this operation type, "
          "not counting the elapsed time spent in providers and the "
          "underlying instrumentation. The measurement points for this "
          "property SHOULD be at the transport layer interface on the "
          "network side, and at the provider interface on the "
          "instrumentation side of the CIM Object Manager.")]
   datetime CimomElapsedTime;

      [Required, Description (
          "The ProviderElapsedTime property contains the elapsed time "
          "spent in all providers involved with this operation type, "
          "including the underlying instrumentation. The measurement "
          "point for this property SHOULD be from the provider "
          "interface of the CIM Object Manager.")]
   datetime ProviderElapsedTime;

      [Description (
          "The RequestSize property contains the size of the operation "
          "requests sent to the CIM Object Manager. Any overhead of "
          "protocols above the transport protocol SHOULD be included "
          "in the count. For example, for the HTTP protocol, the size "
          "would include the size of the HTTP payload and the size of "
          "the HTTP headers."), 
       Units ( "Bytes" ), Counter]
   uint64 RequestSize;

      [Description (
          "The ResponseSize property contains the size of the "
          "operation responses sent back from the CIM Object Manager. "
          "Any overhead of protocols above the transport protocol "
          "SHOULD be included in the count. For example, for the HTTP "
          "protocol, the size would include the size of the HTTP "
          "payload and the size of the HTTP headers."), 
       Units ( "Bytes" ), Counter]
   uint64 ResponseSize;
};

// ==================================================================
// RegisteredProfile
// ==================================================================
   [Version ( "2.8.0" ), Description (
       "A RegisteredProfile describes a set of CIM Schema classes with "
       "required properties and/or methods, necessary to manage a "
       "real-world entity or to support a usage scenario, in an "
       "interoperable fashion. RegisteredProfiles can be defined by "
       "the DMTF or other standards organizations. Note that this "
       "class should not be confused with CIM_Profile, which collects "
       "SettingData instances, to be applied as a 'configuration "
       "profile' for an element. \n"
       "A RegisteredProfile is a named 'standard' for CIM-based "
       "management of a particular System, subsystem, Service or other "
       "entity, for a specified set of uses. It is a complete, "
       "standalone definition, as opposed to the subclass "
       "RegisteredSubProfile, which requires a scoping profile for "
       "context. \n"
       "The uses for a RegisteredProfile or SubProfile MUST be "
       "specified in the document that defines the profile. Examples "
       "of Profiles are to manage various aspects of an Operating "
       "System, Storage Array, or Database. The name of the profile is "
       "defined and scoped by its authoring organization.")]
class CIM_RegisteredProfile : CIM_ManagedElement {

      [Key, Description (
          "Within the scope of the instantiating Namespace, InstanceID "
          "opaquely and uniquely identifies an instance of this class. "
          "In order 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 creating/defining the InstanceID, or is a registered "
          "ID that is assigned to the business entity by a recognized "
          "global authority. (This 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 organizational entity and SHOULD "
          "not be re-used to identify different underlying "
          "(real-world) elements. If the above 'preferred' algorithm "
          "is not used, the defining entity MUST assure that the "
          "resultant InstanceID is not re-used across any InstanceIDs "
          "produced by this or other providers for this instance's "
          "NameSpace. \n"
          "For DMTF defined instances, the 'preferred' algorithm MUST "
          "be used with the <OrgID> set to 'CIM'.")]
   string InstanceID;

      [Required, Description (
          "The organization that defines this profile."), 
       ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
          "11", "12", "13", "14", "15", "16", "17", "18", "19" }, 
       Values { "Other", "DMTF", "CompTIA",
          "Consortium for Service Innovation", "FAST", "GGF", "INTAP",
          "itSMF", "NAC", 
          //10 
          "Northwest Energy Efficiency Alliance", "SNIA", "TM Forum",
          "The Open Group", "ANSI", "IEEE", "IETF", "INCITS", "ISO",
          "W3C" }, 
       ModelCorrespondence { 
          "CIM_RegisteredProfile.OtherRegisteredOrganization" }]
   uint16 RegisteredOrganization;

      [Description (
          "A free-form string providing a description of the "
          "organization when 1, \"Other\", is specified for the "
          "RegisteredOrganization."), 
       MaxLen ( 256 ), 
       ModelCorrespondence { 
          "CIM_RegisteredProfile.RegisteredOrganization" }]
   string OtherRegisteredOrganization;

      [Required, Description (
          "The name of this registered profile. Since multiple "
          "versions can exist for the same RegisteredName, the "
          "combination of RegisteredName, RegisteredOrganization, and "
          "RegisteredVersion MUST uniquely identify the registered "
          "profile within the scope of the organization."), 
       MaxLen ( 256 )]
   string RegisteredName;

      [Required, Description (
          "The version of this profile. The string representing the "
          "version MUST be in the form: \n"
          "M + \".\" + N + \".\" + U \n"
          "Where: \n"
          "M - The major version (in numeric form) describing the "
          "profile's creation or last modification. \n"
          "N - The minor version (in numeric form) describing the "
          "profile's creation or last modification. \n"
          "U - The update (e.g. errata, patch, ..., in numeric form) "
          "describing the profile's creation or last modification.")]
   string RegisteredVersion;

      [Required, Description (
          "This property signifies the advertisement for the profile "
          "information. It is used by the advertising services of the "
          "WBEM infrastructure to determine what should be advertised, "
          "via what mechanisms. The property is an array so that the "
          "profile MAY be advertised using several mechanisms. Note: "
          "If this property is null/uninitialized, this is equivalent "
          "to specifying the value 2, \"Not Advertised\"."), 
       ValueMap { "1", "2", "3" }, 
       Values { "Other", "Not Advertised", "SLP" },
          ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_RegisteredProfile.AdvertiseTypeDescriptions" }]
   uint16 AdvertiseTypes[];

      [Description (
          "A free-form string providing additional information related "
          "to the AdvertiseType. A description MUST be provided when "
          "the AdvertiseType is 1, \"Other\". An entry in this array "
          "corresponds to the entry in the AdvertiseTypes array at the "
          "same index. It is not expected that additional descriptions "
          "are needed if the Type is set to \"Not Advertised\" or "
          "\"SLP\". However, as the SLP template expands, or as other "
          "advertisement mechanisms are defined, support for "
          "additional descriptions may be needed. This array is "
          "defined to support this."), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { "CIM_RegisteredProfile.AdvertiseTypes" }]
   string AdvertiseTypeDescriptions[];
};


// ==================================================================
// RegisteredSubProfile
// ==================================================================
   [Version ( "2.8.0" ), Description (
       "A RegisteredSubProfile subclasses RegisteredProfile to "
       "indicate that a scoping profile is required to provide "
       "context. The latter is specified by the mandatory association, "
       "SubProfileRequiresProfile.")]
class CIM_RegisteredSubProfile : CIM_RegisteredProfile {
};


// ==================================================================
// ReferencedProfile
// ==================================================================
   [Association, Version ( "2.8.0" ), Description (
       "A profile that is referenced by another RegisteredProfile.")]
class CIM_ReferencedProfile : CIM_Dependency {

      [Override ( "Antecedent" ), Description (
          "The RegisteredProfile that is referenced by the Dependent "
          "Profile.")]
   CIM_RegisteredProfile REF Antecedent;

      [Override ( "Dependent" ), Description (
          "A RegisteredProfile that references other profiles.")]
   CIM_RegisteredProfile REF Dependent;
};


// ==================================================================
// SubProfileRequiresProfile
// ==================================================================
   [Association, Version ( "2.8.0" ), Description (
       "A subprofile requires another RegisteredProfile for context. "
       "This association mandates the scoping relationship between a "
       "subprofile and its scoping profile.")]
class CIM_SubProfileRequiresProfile : CIM_ReferencedProfile {

      [Override ( "Antecedent" ), Min ( 1 ), Description (
          "The RegisteredProfile that is referenced/required by the "
          "subprofile.")]
   CIM_RegisteredProfile REF Antecedent;

      [Override ( "Dependent" ), Description (
          "A RegisteredSubProfile that requires a scoping profile, for "
          "context.")]
   CIM_RegisteredSubProfile REF Dependent;
};


// ==================================================================
// ElementConformsToProfile
// ==================================================================
   [Association, Version ( "2.8.0" ), Description (
       "The CIM_ElementConformsToProfile association defines the "
       "RegisteredProfiles to which the referenced ManagedElement is "
       "conformant. Note: This association may apply to any Managed "
       "Element. Typical usage will apply it to a higher level "
       "instance, such as a System, NameSpace, or Service. When "
       "applied to a higher level instance, all constituent parts MUST "
       "behave appropriately in support of the ManagedElement's "
       "conformance to the named RegisteredProfile.")]
class CIM_ElementConformsToProfile {

      [Key, Description (
          "The RegisteredProfile to which the ManagedElement conforms.")]
   CIM_RegisteredProfile REF ConformantStandard;

      [Key, Description (
          "The ManagedElement that conforms to the RegisteredProfile.")]
   CIM_ManagedElement REF ManagedElement;
};

// ====================================================================
// CIM_Error
// ====================================================================
   [Indication, Experimental, Exception, Version ( "2.8.1000" ), 
    Description (
       "CIM_Error is a specialized class that contains information "
       "about the severity, cause, recommended actions and other data "
       "related to the failure of a CIM Operation. Instances of this "
       "type MAY be included as part of the response to a CIM "
       "Operation. \n"
       "\n"
       "CIM_Errors like CIM_Indications do not persist, and therefore "
       "do not have keys. Currently, this is only allowed by defining "
       "a concrete class with the Indication qualifier. Until the CIM "
       "Specification is modified to allow other concrete classes "
       "without keys, the CIM_Error class MUST be qualified by both "
       "Indication and Exception. After this, the Indication qualifier "
       "can be removed.")]
class CIM_Error {

      [Description (
          "Primary classification of the error. The following values "
          "are defined: \n"
          "2 - Communications Error. Errors of this type are "
          "principally associated with the procedures and/or processes "
          "required to convey information from one point to another. \n"
          "3 - Quality of Service Error. Errors of this type are "
          "principally associated with failures that result in reduced "
          "functionality or performance. \n"
          "4 - Software Error. Error of this type are principally "
          "associated with a software or processing fault. \n"
          "5 - Hardware Error. Errors of this type are principally "
          "associated with an equipment or hardware failure. \n"
          "6 - Environmental Error. Errors of this type are "
          "principally associated with a failure condition relating "
          "the to facility, or other environmental considerations. \n"
          "7 - Security Error. Errors of this type are associated with "
          "security violations, detection of viruses, and similar "
          "issues. \n"
          "8 - Oversubscription Error. Errors of this type are "
          "principally associated with the failure to allocate "
          "sufficient resources to complete the operation. \n"
          "9 - Unavailable Resource Error. Errors of this type are "
          "principally associated with the failure to access a "
          "required resource. \n"
          "10 -Unsupported Operation Error. Errors of this type are "
          "principally associated with requests that are not "
          "supported."), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
          "10" }, 
       Values { "Unknown", "Other", "Communications Error",
          "Quality of Service Error", "Software Error",
          "Hardware Error", "Environmental Error", "Security Error",
          "Oversubscription Error", "Unavailable Resource Error",
          "Unsupported Operation Error" }]
   uint16 ErrorType;

      [Description (
          "A free-form string describing the ErrorType when 1, "
          "\"Other\", is specified as the ErrorType."), 
       ModelCorrespondence { "CIM_Error.ErrorType" }]
   string OtherErrorType;

      [Required, Description (
          "A string that uniquely identifies the entity that owns the "
          "definition of the format of the Message described in this "
          "instance. OwningEntity MUST include a copyrighted, "
          "trademarked or otherwise unique name that is owned by the "
          "business entity or standards body defining the format.")]
   string OwningEntity;

      [Required, Description (
          "An opaque string that uniquely identifies, within the scope "
          "of the OwningEntity, the format of the Message.")]
   string MessageID;


      [Required, Description (
          "The formatted message. This message is constructed by "
          "applying the dynamic content of the message, described in "
          "MessageArguments, to the format string uniquely identified, "
          "within the scope of the OwningEntity, by MessageID.")]
   string Message;

      [Description (
          "An array containing the dynamic content of the message.")]
   string MessageArguments [];

      [Required, Description (
          "An enumerated value that describes the severity of the "
          "error from the notifier's point of view: \n"
          "2 - Low should be used for noncritical issues such as "
          "invalid parameters, incorrect usage, unsupported "
          "functionality. \n"
          "3 - Medium should be used to indicate action is needed, but "
          "the situation is not serious at this time. \n"
          "4 - High should be used to indicate action is needed NOW. \n"
          "5 - Fatal should be used to indicate a loss of data or "
          "unrecoverable system or service failure."), 
       ValueMap { "0", "2", "3", "4", "5" }, 
       Values { "Unknown", "Low", "Medium", "High", "Fatal" }]
   uint16 PerceivedSeverity;

      [Required, Description (
          "An enumerated value that describes the probable cause of "
          "the error."), 
       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", "67", "68", "69",
          "70", "71", "72", "73", "74", "75", "76", "77", "78", "79",
          "80", "81", "82", "83", "84", "85", "86", "87", "88", "89",
          "90", "91", "92", "93", "94", "95", "96", "97", "98", "99",
          "100", "101", "102", "103", "104", "105", "106", "107",
          "108", "109", "110", "111", "112", "113", "114", "115",
          "116", "117", "118", "119", "120", "121", "122", "123",
          "124", "125", "126", "127", "128", "129", "130" }, 
       Values { "Unknown", "Other", "Adapter/Card Error",
          "Application Subsystem Failure", "Bandwidth Reduced",
          "Connection Establishment Error",
          "Communications Protocol Error",
          "Communications Subsystem Failure",
          "Configuration/Customization Error", "Congestion",
          "Corrupt Data", "CPU Cycles Limit Exceeded",
          "Dataset/Modem Error", "Degraded Signal",
          "DTE-DCE Interface Error", "Enclosure Door Open",
          "Equipment Malfunction", "Excessive Vibration",
          "File Format Error", "Fire Detected", "Flood Detected",
          "Framing Error", "HVAC Problem", "Humidity Unacceptable",
          "I/O Device Error", "Input Device Error", "LAN Error",
          "Non-Toxic Leak Detected", "Local Node Transmission Error",
          "Loss of Frame", "Loss of Signal", 
          //31 
          "Material Supply Exhausted", "Multiplexer Problem",
          "Out of Memory", "Output Device Error",
          "Performance Degraded", "Power Problem",
          "Pressure Unacceptable",
          "Processor Problem (Internal Machine Error)", "Pump Failure",
          "Queue Size Exceeded", "Receive Failure", "Receiver Failure",
          "Remote Node Transmission Error",
          "Resource at or Nearing Capacity", "Response Time Excessive",
          "Retransmission Rate Excessive", "Software Error",
          "Software Program Abnormally Terminated",
          "Software Program Error (Incorrect Results)",
          "Storage Capacity Problem", "Temperature Unacceptable",
          "Threshold Crossed", "Timing Problem", "Toxic Leak Detected",
          "Transmit Failure", "Transmitter Failure",
          "Underlying Resource Unavailable", "Version Mismatch",
          "Previous Alert Cleared", 
          //60 
          "Login Attempts Failed", "Software Virus Detected",
          "Hardware Security Breached", "Denial of Service Detected",
          "Security Credential Mismatch", "Unauthorized Access",
          "Alarm Received", "Loss of Pointer", "Payload Mismatch",
          "Transmission Error", "Excessive Error Rate",
          "Trace Problem", "Element Unavailable", "Element Missing",
          "Loss of Multi Frame", "Broadcast Channel Failure",
          "Invalid Message Received", "Routing Failure",
          "Backplane Failure", "Identifier Duplication",
          "Protection Path Failure", "Sync Loss or Mismatch",
          "Terminal Problem", "Real Time Clock Failure",
          "Antenna Failure", "Battery Charging Failure",
          "Disk Failure", "Frequency Hopping Failure",
          "Loss of Redundancy", "Power Supply Failure",
          "Signal Quality Problem", 
          //91 
          "Battery Discharging", "Battery Failure",
          "Commercial Power Problem", "Fan Failure", "Engine Failure",
          "Sensor Failure", "Fuse Failure", "Generator Failure",
          "Low Battery", "Low Fuel", "Low Water", "Explosive Gas",
          "High Winds", "Ice Buildup", "Smoke", "Memory Mismatch",
          "Out of CPU Cycles", "Software Environment Problem",
          "Software Download Failure", "Element Reinitialized",
          "Timeout", "Logging Problems", "Leak Detected",
          "Protection Mechanism Failure", 
          //115 
          "Protecting Resource Failure", "Database Inconsistency",
          "Authentication Failure", "Breach of Confidentiality",
          "Cable Tamper", "Delayed Information",
          "Duplicate Information", "Information Missing",
          "Information Modification", "Information Out of Sequence",
          "Key Expired", "Non-Repudiation Failure",
          "Out of Hours Activity", "Out of Service",
          "Procedural Error", "Unexpected Information" }, 
       MappingStrings { "Recommendation.ITU|X733.Probable cause",
          "Recommendation.ITU|M3100.probableCause",
       "ITU-IANA-ALARM-TC" }, 
       ModelCorrespondence { "CIM_Error.ProbableCauseDescription" }]
   uint16 ProbableCause;

      [Description (
          "A free-form string describing the probable cause of the "
          "error."), 
       ModelCorrespondence { "CIM_Error.ProbableCause" }]
   string ProbableCauseDescription;

      [Description (
          "A free-form string describing recommended actions to take "
          "to resolve the error.")]
   string RecommendedActions[];

      [Description (
          "The identifying information of the entity (i.e., the "
          "instance) generating the error.  If this entity is "
          "modeled in the CIM Schema, this property contains "
          "the path of the instance encoded as a string "
          "parameter.  If not modeled, the property contains "
          "some identifying string that names the entity that "
          "generated the error.  The path or identifying string is "
          "formatted per the ErrorSourceFormat property."),
       ModelCorrespondence {
          "CIM_Error.ErrorSourceFormat"} ]
   string ErrorSource;

      [Description (
          "The format of the ErrorSource property is interpretable "
          "based on the value of this property. Values are defined as: "
          "\n0 - Unknown. The format is unknown or not meaningfully "
          "interpretable by a CIM client application. \n"
          "1 - Other. The format is defined by the value of the "
          "OtherErrorSourceFormat property. \n"
          "2 - CIMObjectHandle. A CIM Object Handle, encoded using the "
          "MOF syntax defined for the objectHandle non-terminal, is "
          "used to identify the entity."), 
       ValueMap { "0", "1", "2" }, 
       Values { "Unknown", "Other", "CIMObjectHandle" }, 
       ModelCorrespondence { "CIM_Error.ErrorSource",
          "CIM_Error.OtherErrorSourceFormat" }]
   uint16 ErrorSourceFormat = 0;

      [Description (
          "A string defining \"Other\" values for ErrorSourceFormat. "
          "This value MUST be set to a non NULL value when "
          "ErrorSourceFormat is set to a value of 1 (\"Other\"). For "
          "all other values of ErrorSourceFormat, the value of this "
          "string must be set to NULL."), 
       ModelCorrespondence { "CIM_Error.ErrorSourceFormat" }]
   string OtherErrorSourceFormat;

      [Required, Description (
          "The CIM status code that characterizes this instance. \n"
          "This property defines the status codes that MAY be return "
          "by a conforming CIM Server or Listener. Note that not all "
          "status codes are valid for each operation. The "
          "specification for each operation SHOULD define the status "
          "codes that may be returned by that operation. \n"
          "The following values for CIM status code are defined: \n"
          "1 - CIM_ERR_FAILED. A general error occurred that is not "
          "covered by a more specific error code. \n"
          "2 - CIM_ERR_ACCESS_DENIED. Access to a CIM resource was not "
          "available to the client. \n"
          "3 - CIM_ERR_INVALID_NAMESPACE. The target namespace does "
          "not exist. \n"
          "4 - CIM_ERR_INVALID_PARAMETER. One or more parameter values "
          "passed to the method were invalid. \n"
          "5 - CIM_ERR_INVALID_CLASS. The specified Class does not "
          "exist. \n"
          "6 - CIM_ERR_NOT_FOUND. The requested object could not be "
          "found. \n"
          "7 - CIM_ERR_NOT_SUPPORTED. The requested operation is not "
          "supported. \n"
          "8 - CIM_ERR_CLASS_HAS_CHILDREN. Operation cannot be carried "
          "out on this class since it has instances. \n"
          "9 - CIM_ERR_CLASS_HAS_INSTANCES. Operation cannot be "
          "carried out on this class since it has instances. \n"
          "10 - CIM_ERR_INVALID_SUPERCLASS. Operation cannot be "
          "carried out since the specified superclass does not exist. "
          "\n11 - CIM_ERR_ALREADY_EXISTS. Operation cannot be carried "
          "out because an object already exists. \n"
          "12 - CIM_ERR_NO_SUCH_PROPERTY. The specified Property does "
          "not exist. \n"
          "13 - CIM_ERR_TYPE_MISMATCH. The value supplied is "
          "incompatible with the type. \n"
          "14 - CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED. The query "
          "language is not recognized or supported. \n"
          "15 - CIM_ERR_INVALID_QUERY. The query is not valid for the "
          "specified query language. \n"
          "16 - CIM_ERR_METHOD_NOT_AVAILABLE. The extrinsic Method "
          "could not be executed. \n"
          "17 - CIM_ERR_METHOD_NOT_FOUND. The specified extrinsic "
          "Method does not exist. \n"
          "18 - CIM_ERR_UNEXPECTED_RESPONSE. The returned response to "
          "the asynchronous operation was not expected. \n"
          "19 - CIM_ERR_INVALID_RESPONSE_DESTINATION. The specified "
          "destination for the asynchronous response is not valid. \n"
          "20 - CIM_ERR_NAMESPACE_NOT_EMPTY. The specified Namespace "
          "is not empty."), 
       ValueMap { "1", "2", "3", "4", "5", "6", "7", "8", "9",
          "10","11","12","13","14","15","16","17","18","19","20",
          "21.." }, 
       Values { "CIM_ERR_FAILED", "CIM_ERR_ACCESS_DENIED",
          "CIM_ERR_INVALID_NAMESPACE", "CIM_ERR_INVALID_PARAMETER",
          "CIM_ERR_INVALID_CLASS", "CIM_ERR_NOT_FOUND",
          "CIM_ERR_NOT_SUPPORTED", "CIM_ERR_CLASS_HAS_CHILDREN",
          "CIM_ERR_CLASS_HAS_INSTANCES", "CIM_ERR_INVALID_SUPERCLASS",
          "CIM_ERR_ALREADY_EXISTS", "CIM_ERR_NO_SUCH_PROPERTY",
          "CIM_ERR_TYPE_MISMATCH",
          "CIM_ERR_QUERY_LANGUAGE_NOT_SUPPORTED",
          "CIM_ERR_INVALID_QUERY", "CIM_ERR_METHOD_NOT_AVAILABLE",
          "CIM_ERR_METHOD_NOT_FOUND", "CIM_ERR_UNEXPECTED_RESPONSE",
          "CIM_ERR_INVALID_RESPONSE_DESTINATION",
          "CIM_ERR_NAMESPACE_NOT_EMPTY", "DMTF Reserved" }, 
       MappingStrings { "DSP0201.DMTF|ERROR.CODE|2.2" }, 
       ModelCorrespondence { "CIM_Error.CIMStatusCodeDescription" }]
   uint32 CIMStatusCode;

      [Description (
          "A free-form string containing a human-readable description "
          "of CIMStatusCode. This description MAY extend, but MUST be "
          "consistent with, the definition of CIMStatusCode."), 
       MappingStrings { "DSP0201.DMTF|ERROR.DESCRIPTION|2.2" }, 
       ModelCorrespondence { "CIM_Error.CIMStatusCode" }]
   string CIMStatusCodeDescription;
};

// ==================================================================
// QueryCapabilities
// ==================================================================
   [Experimental, Version ("2.8.1000"), Description (
       "This class defines the capabilities of a CIM_ObjectManager "
       "and/or CIM_Provider as associated via ElementCapabilities.") ]
class CIM_QueryCapabilities : CIM_Capabilities {

      [Description (
          "Enumeration of CQL features supported by an Object "
          "Manager or Provider associated via ElementCapabilities. "),
       ValueMap {"2", "3", "4", "5", "6", "7", "8", "9", "10", "11",
                 "12", "13", "14", "15", "16", "..", "0x8000.."},
       Values {"Basic Query", "Simple Join", "Complex Join",
          "Time", "Basic Like", "Full Like", "Array Elements",
          "Embedded Objects", "Order By", "Aggregations",
          "Subquery", "Satisfies Array", "Distinct", "First",
          "Path Functions", "DMTF Reserved", "Vendor Reserved"}
       ]
   uint16 CQLFeatures[];
};

// ==================================================================
// Provider
// ==================================================================
[Version ("2.8.1000"), Experimental, Description (
    "A CIM Provider is a type of WBEMService that "
    "instruments one or more aspects of the CIM Schema.  A "
    "CIM_Provider operates at the request of the "
    "CIM_ObjectManager to perform operations on CIM objects. "
    "The properties CreationClassName, SystemCreationClassName and "
    "SystemName can be set to empty strings for a createInstance operation."
    "In this case, the CIM Object Manager must interpret the properties "
    "with the local system information.") ]
class CIM_Provider : CIM_WBEMService {
 
    [Override ("Name"), Description (
        "A human-readable name that uniquely "
        "identifies the provider within a system.") ]
    string Name;
 
    [Required, Description (
        "An implementation specific string that identifies the "
        "handle to the provider.") ]
    string Handle;
};
 
// ==================================================================
// ProviderCapabilities
// ==================================================================
[Version ("2.8.1000"), Experimental, Description (
    "This class defines the capabilities of the associated "
    "provider.") ]
class CIM_ProviderCapabilities : CIM_Capabilities {
 
    [Required, Description (
        "The ClassName lists the class for which the associated "
        "Provider supplies instances, associations or indications "
        "information. The ClassInNamespace association provides "
        "namespace information for the listed class name.")]
    string ClassName;
 
    [Description (
        "ProviderType enumerates the kind of provider "
        "capabilities defined for the associated Provider."),
        ValueMap {"1", "2", "3", "4", "5"},
        Values {"Other", "Instance", "Association", "Indication",
           "Method"},
        ArrayType ("Indexed"),
        ModelCorrespondence {
           "CIM_ProviderCapabilities.OtherProviderTypes"} ]
    uint16 ProviderTypes[];
 
    [Description (
        "Type(s) of provider capabilities when \"Other\" is included "
        "in ProviderType property array."),
        ArrayType ("Indexed"),
        ModelCorrespondence {"CIM_ProviderCapabilities.ProviderTypes"} ]
    string OtherProviderTypes[];
 
    [Description (
        "SupportedProperties lists the properties supported "
        "by this provider.  If this array is NULL, the provider "
        "MUST support all of the properties defined in the class. "
        "If the provider does not support all of the properties, "
        "the properties supported MUST be included in the array. "
        "The array entry format is \"PropertyName\".") ]
    string SupportedProperties[];
 
    [Description (
        "SupportedMethods lists the methods supported by this "
        "provider. If this array is NULL, the provider MUST "
        "support all the methods defined in the class. "
        "If the provider does not support all the methods, "
        "the methods supported MUST be included in the array."
        "The array entry format is \"MethodName\".") ]
    string SupportedMethods[];
};
 
 
// ==================================================================
// ProviderLibrary
// ==================================================================
[Version ("2.8.1000"), Experimental, Description (
    "A ProviderLibrary consists of one or more Providers. "
    "It can be enabled/disabled - which affects the component "
    "Services.") ]
class CIM_ProviderLibrary : CIM_EnabledLogicalElement {
 
    [Key, Override ("Name"), Description (
        "A human-readable name that uniquely identifies the "
        "Provider Library. Name is chosen as one of the keys "
        "for correspondence with the keys/identity of the "
        "component Provider Services.") ]
    string Name;
 
    [Required, Description (
        "An implementation specific string that "
        "identifies the handle of the provider.") ]
    string Handle;
};

// ==================================================================
// ProviderInLibrary
// ==================================================================
[Association, Aggregation, Composition, Version ("2.8.1000"),
 Experimental, Description (
    "An association describing the Providers that are "
    "contained in a ProviderLibrary.") ]
class CIM_ProviderInProviderLibrary : CIM_Component {
 
    [Max (1), Aggregate, Override ("GroupComponent"),
        Description ("The CIM ProviderLibrary.") ]
    CIM_ProviderLibrary REF GroupComponent;
 
    [Override ("PartComponent"), Description ("The CIM Provider.") ]
    CIM_Provider REF PartComponent;
};
 
// ==================================================================
// ProviderElementCapabilities
// ==================================================================
[Association, Version ("2.8.1000"), Experimental, Description (
    "ProviderElementCapabilities is an association describing "
    "the Capabilities that are supported by a Provider.") ]
class CIM_ProviderElementCapabilities : CIM_ElementCapabilities {
 
    [Min (1), Max (1), Override ("ManagedElement"),
        Description ("The CIM Provider.") ]
    CIM_Provider REF ManagedElement;
 
    [Override ("Capabilities"), Description (
        "The CIM Provider's Capabilities.") ]
    CIM_ProviderCapabilities REF Capabilities;
};

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