// Copyright (c) 1997-2004 Microsoft Corporation, All Rights Reserved #pragma autorecover #pragma classflags(64) #pragma namespace("\\\\.\\root\\Hardware") instance of __namespace{ name="ms_409";}; #pragma namespace("\\\\.\\root\\Hardware\\ms_409") [Description("ManagedElement is an abstract class that provides a common superclass (or top of the inheritance tree) for the non-association classes in the CIM Schema.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_ManagedElement { [Description("The Caption property is a short textual description (one- line string) of the object.") : Amended ToSubclass] string Caption; [Description("The Description property provides a textual description of the object.") : Amended ToSubclass] string Description; [Description("A user-friendly name for the object. This property allows each instance to define a user-friendly name IN ADDITION TO its key properties/identity data, and description information. \nNote that ManagedSystemElement's Name property is also defined as a user-friendly name. But, it is often subclassed to be a Key. It is not reasonable that the same property can convey both identity and a user friendly name, without inconsistencies. Where Name exists and is not a Key (such as for instances of LogicalDevice), the same information MAY be present in both the Name and ElementName properties.") : Amended ToSubclass] string ElementName; }; [Description("CIM_ManagedSystemElement is the base class for the System Element hierarchy. Any distinguishable component of a System is a candidate for inclusion in this class. Examples of system components include: \n- software components such as application servers, databases, and applications \n- operating system components such as files, processes, and threads \n- device components such as disk drives, controllers, processors, and printers \n- physical components such as chips and cards.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_ManagedSystemElement : CIM_ManagedElement { [Description("A datetime value indicating when the object was installed. A lack of a value does not indicate that the object is not installed.") : Amended ToSubclass] datetime InstallDate; [Description("The Name property defines the label by which the object is known. When subclassed, the Name property can be overridden to be a Key property.") : Amended ToSubclass] string Name; [Description("Indicates the current status(es) of the element. Various operational statuses are defined. Many of the enumeration's values are self- explanatory. However, a few are not and are described in more detail. \n\"Stressed\" indicates that the element is functioning, but needs attention. Examples of \"Stressed\" states are overload, overheated, etc. \n\"Predictive Failure\" indicates that an element is functioning nominally but predicting a failure in the near future. \n\"In Service\" describes an element being configured, maintained, cleaned, or otherwise administered. \n\"No Contact\" indicates that the monitoring system has knowledge of this element, but has never been able to establish communications with it. \n\"Lost Communication\" indicates that the ManagedSystem Element is known to exist and has been contacted successfully in the past, but is currently unreachable. \n\"Stopped\" and \"Aborted\" are similar, although the former implies a clean and orderly stop, while the latter implies an abrupt stop where the element's state and configuration may need to be updated. \n\"Dormant\" indicates that the element is inactive or quiesced. \n\"Supporting Entity in Error\" describes that this element may be \"OK\" but that another element, on which it is dependent, is in error. An example is a network service or endpoint that cannot function due to lower layer networking problems. \n\"Completed\" indicates the element has completed its operation. This value should be combined with either OK, Error, or Degraded so that a client can till if the complete operation passed (Completed with OK), and failure (Completed with Error). Completed with Degraded would imply the operation finished, but did not complete OK or report an error. \n\"Power Mode\" indicates the element has additional power model information contained in the Associated PowerManagementService association. \nOperationalStatus replaces the Status property on ManagedSystemElement to provide a consistent approach to enumerations, to address implementation needs for an array property, and to provide a migration path from today's environment to the future. This change was not made earlier since it required the DEPRECATED qualifier. Due to the widespread use of the existing Status property in management applications, it is strongly RECOMMENDED that providers/instrumentation provide BOTH the Status and OperationalStatus properties. Further, the first value of OperationalStatus SHOULD contain the primary status for the element. When instrumented, Status (since it is single-valued) SHOULD also provide the primary status of the element.") : Amended ToSubclass,Values{"Unknown", "Other", "OK", "Degraded", "Stressed", "Predictive Failure", "Error", "Non-Recoverable Error", "Starting", "Stopping", "Stopped", "In Service", "No Contact", "Lost Communication", "Aborted", "Dormant", "Supporting Entity in Error", "Completed", "Power Mode", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 OperationalStatus[]; [Description("Strings describing the various OperationalStatus array values. For example, if \"Stopping\" is the value assigned to OperationalStatus, then this property may contain an explanation as to why an object is being stopped. Note that entries in this array are correlated with those at the same array index in OperationalStatus.") : Amended ToSubclass] string StatusDescriptions[]; [Description("A string indicating the current status of the object. Various operational and non-operational statuses are defined. This property is deprecated in lieu of OperationalStatus, which includes the same semantics in its enumeration. This change is made for 3 reasons: 1) Status is more correctly defined as an array. This overcomes the limitation of describing status via a single value, when it is really a multi-valued property (for example, an element may be OK AND Stopped. 2) A MaxLen of 10 is too restrictive and leads to unclear enumerated values. And, 3) The change to a uint16 data type was discussed when CIM V2.0 was defined. However, existing V1.0 implementations used the string property and did not want to modify their code. Therefore, Status was grandfathered into the Schema. Use of the Deprecated qualifier allows the maintenance of the existing property, but also permits an improved definition using OperationalStatus.") : Amended ToSubclass] string Status; [Description("Indicates the current health of the element. This attribute expresses the health of this element but not necessarily that of its subcomponents. The possible values are 0 to 30, where 5 means the element is entirely healthy and 30 means the element is completely non-functional. The following continuum is defined: \n\"Non-recoverable Error\" (30) - The element has completed failed and recovery is not possible. All functionality provided by this element has been lost. \n\"Critical Failure\" (25) - The element is non-functional and recovery MAY NOT be possible. \n\"Major Failure\" (20) - The element is failing. It is possible the some or all of the functionality of this component is degraded or not working. \n\"Minor Failure\" (15) - All functionality is available but some MAY be degraded. \n\"Degraded/Warning\" (10) - The element is in working order and all functionality is provided. However, the element is not working to the best of its abilities. For example, the element may not be operating at optimal performance or it may be reporting recoverable errors. \n\"OK\" (5) - The element is fully functional and is operating within normal operational parameters and without error. \n\"Unknown\" (0) - The implementation can not report on HealthState at this time. \nDMTF has reserved the unused portion of the continuum for additional HealthStates in the future.") : Amended ToSubclass,Values{"Unknown", "OK", "Degraded/Warning", "Minor failure", "Major failure", "Critical failure", "Non-recoverable error", "DMTF Reserved"} : Amended ToSubclass] uint16 HealthState; }; [Description("CIM_LogicalElement is a base class for all the components of a System that represent abstract system components, such as Files, Processes, or LogicalDevices.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_LogicalElement : CIM_ManagedSystemElement { }; [Description("This class extends LogicalElement to abstract the concept of an element that is enabled and disabled, such as a LogicalDevice or a ServiceAccessPoint.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_EnabledLogicalElement : CIM_LogicalElement { [Description("EnabledState is an integer enumeration that indicates the enabled/disabled states of an element. It can also indicate the transitions between these requested states. For example, shutting down (value = 4) and starting (value=10) are transient states between enabled and disabled. The following text briefly summarizes the various enabled/disabled states: \nEnabled (2) indicates that the element is/could be executing commands, will process any queued commands, and queues new requests. \nDisabled (3) indicates that the element will not execute commands and will drop any new requests. \nShutting Down (4) indicates that the element is in the process of going to a Disabled state. \nNot Applicable (5) indicates the element doesn't support being enabled/disabled. \nEnabled but Offline (6) indicates that the element may be completing commands, and will drop any new requests. \nTest (7) indicates that the element is in a test state. \nDeferred (8) indicates that the element may be completing commands, but will queue any new requests. \nQuiesce (9) indicates that the element is enabled but in a restricted mode. The element's behavior is similar to the Enabled state, but it only processes a restricted set of commands. All other requests are queued. \nStarting (10) indicates that the element is in the process of going to an Enabled state. New requests are queued.") : Amended ToSubclass,Values{"Unknown", "Other", "Enabled", "Disabled", "Shutting Down", "Not Applicable", "Enabled but Offline", "In Test", "Deferred", "Quiesce", "Starting", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 EnabledState; [Description("A string describing the element's enabled/disabled state when the EnabledState property is set to 1 (\"Other\"). This property MUST be set to NULL when EnabledState is any value other than 1.") : Amended ToSubclass] string OtherEnabledState; [Description("RequestedState is an integer enumeration indicating the last requested or desired state for the element. The actual state of the element is represented by EnabledState. This property is provided to compare the last requested and current enabled/disabled states. Note that when EnabledState is set to 5 (\"Not Applicable\"), then this property has no meaning. By default, the element's RequestedState is 5 (\"No Change\"). Refer to the EnabledState's property Description for explanations of the values in the RequestedState enumeration. \n\nIt should be noted that there are two new values in RequestedState that build on the statuses of EnabledState. These are \"Reboot\" (10) and \"Reset\" (11). The former, Reboot, refers to doing a \"Shut Down\" and then moving to an \"Enabled\" state. The latter, Reset, indicates that the element is first \"Disabled\" and then \"Enabled\". The distinction between requesting \"Shut Down\" and \"Disabled\" should also be noted. The former, Shut Down, requests an orderly transition to the Disabled state, and MAY involve removing power, to completely erase any existing state. The latter, the Disabled state, requests an immediate disabling of the element, such that it will not execute or accept any commands or processing requests. \n\nThis property is set as the result of a method invocation (such as Start or StopService on CIM_Service), or may be overridden and defined as WRITEable in a subclass. The method approach is considered superior to a WRITEable property, since it allows an explicit invocation of the operation and the return of a result code. \n\nIt is possible that a particular instance of EnabledLogicalElement may not support RequestedStateChange. If this occurs, the value 12 (\"Not Applicable\") is used.") : Amended ToSubclass,Values{"Enabled", "Disabled", "Shut Down", "No Change", "Offline", "Test", "Deferred", "Quiesce", "Reboot", "Reset", "Not Applicable", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 RequestedState; [Description("An enumerated value indicating an administrator's default/startup configuration for an element's Enabled State. By default, the element is \"Enabled\" (value=2).") : Amended ToSubclass,Values{"Enabled", "Disabled", "Not Applicable", "Enabled but Offline", "No Default", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 EnabledDefault; [Description("The date/time when the element's EnabledState last changed. If the state of the element has not changed and this property is populated, then it MUST be set to a 0 interval value. If a state change was requested, but rejected or not yet processed, the property MUST NOT be updated.") : Amended ToSubclass] datetime TimeOfLastStateChange; [Description("Requests that the element's state be changed to the value specified in the RequestedState parameter. When the requested state change takes place, the element's EnabledState and RequestedState will be the same. Invoking the RequestStateChange method multiple times could result in earlier requests being overwritten/lost. \nIf 0 is returned, then the task completed successfully and the use of ConcreteJob was not required. If 4096 (0x1000) is returned, then the task will take some time to complete, ConcreteJob will be created, and its reference returned in the output parameter Job. Any other return code indicates an error condition.") : Amended ToSubclass,Values{"Completed with No Error", "Not Supported", "Unknown/Unspecified Error", "Can NOT complete within Timeout Period", "Failed", "Invalid Parameter", "In Use", "DMTF Reserved", "Method Parameters Checked - Job Started", "Invalid State Transition", "Use of Timeout Parameter Not Supported", "Busy", "Method Reserved", "Vendor Specific"} : Amended ToSubclass] uint32 RequestStateChange([IN,Description("The state requested for the element. This information will be placed into the instance's RequestedState property if the RequestStateChange method's return code is 0, 3, or 4096 (0x1000) - 'Completed with No Error', 'Timeout', or 'Job Started' respectively. Refer to the description of the EnabledState and RequestedState properties for the detailed meanings of the RequestedState values.") : Amended ToSubclass,Values{"Enabled", "Disabled", "Shut Down", "Offline", "Test", "Defer", "Quiesce", "Reboot", "Reset", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 RequestedState,[IN(FALSE),OUT,Description("Reference to the job (may be null if task completed).") : Amended ToSubclass] CIM_ConcreteJob Ref Job,[IN,Description("A timeout period that specifies the maximum amount of time that the client expects the transition to the new state to take. The interval format MUST be used to specify the TimeoutPeriod. A value of 0 or a null parameter indicates that the client has no time requirements for the transition. \nIf this property does not contain 0 or null and the implementation doesn't support this parameter. A return code of 'Use Of Timeout Parameter Not Supported' MUST be returned.") : Amended ToSubclass] datetime TimeoutPeriod); }; [Description("CIM_System represents an entity made up of component parts (defined by the SystemComponent relationship), that operates as a 'functional whole'. Systems are top level objects in the CIM hierarchy, requiring no scoping or weak relationships in order to exist and have context. It should be reasonable to uniquely name and manage a System at an enterprise level. For example, a ComputerSystem is a kind of System that can be uniquely named and independently managed in an enterprise. However, this is not true for the power supply (or the power supply sub-'system') within the computer. \n\nAlthough a System may be viewed as a Collection, this is not the correct model. A Collection is simply a 'bag' that 'holds' its members. A System is a higher level abstraction, built out of its individual components. It is more than a sum of its parts. Note that System is a subclass of EnabledLogicalElement which allows the entire abstraction to be functionally enabled/disabled - at a higher level than enabling/disabling its component parts.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_System : CIM_EnabledLogicalElement { [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.") : Amended ToSubclass] string CreationClassName; [Key,Description("The inherited Name serves as key of a System instance in an enterprise environment.") : Amended ToSubclass] string Name; [Description("The System object and its derivatives are Top Level Objects of CIM. They provide the scope for numerous components. Having unique System keys is required. A heuristic can be defined in individual System subclasses to attempt to always generate the same System Name Key. The NameFormat property identifies how the System name was generated, using the subclass' heuristic.") : Amended ToSubclass] string NameFormat; [Description("The name of the primary system owner. The system owner is the primary user of the system.") : Amended ToSubclass] string PrimaryOwnerName; [Description("A string that provides information on how the primary system owner can be reached (e.g. phone number, email address, ...).") : Amended ToSubclass] string PrimaryOwnerContact; [Description("An array (bag) of strings that specify the administrator -defined roles this System plays in the managed environment. Examples might be 'Building 8 print server' or 'Boise user directories'. A single system may perform multiple roles. \nNote that instrumentation's view of a System's 'roles' is defined by instantiating a specific subclass of System and/ or by properties in a subclass. For example, a ComputerSystem's purpose is defined using the Dedicated and OtherDedicatedDescription properties.") : Amended ToSubclass] string Roles[]; }; [Description("This is a special grouping of ManagedSystemElements. The grouping is viewed as a single entity, reflecting that all of its components are administered similarly - either by the same user, group of users or policy. It serves as an aggregation point to associate one or more of the following elements: network devices, such as routers and switches, servers, and other resources that can be accessed by end systems. This grouping of devices plays an essential role in ensuring that the same administrative policy and actions are applied to all of the devices in the grouping. The specific behavior and/or semantics of the AdminDomain can be identified through its aggregated and associated entities.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_AdminDomain : CIM_System { [Description("The NameFormat property identifies how the Name of the AdminDomain is generated, using the heuristic specified in the CIM V2 System Model spec. It assumes that the documented rules are traversed in order, to determine and assign a Name. The NameFormat Values list defines the precedence order for assigning the Name of the AdminDomain. \n\n\"FC\" has been deprecated and replaced by \"WWN\" to be consistent with the other ValueMaps.") : Amended ToSubclass,Values{"Other", "Autonomous System", "Network Access Provider", "Network Operations Center", "Point of Presence", "Regional Network Provider", "IP", "IPX", "SNA", "Dial", "WAN", "LAN", "ISDN", "Frame Relay", "ATM", "E.164", "Infiniband", "Fibre Channel", "Policy Repository", "Fibre Channel Worldwide Name"} : Amended ToSubclass] string NameFormat; }; [Description("A class derived from System that is a special collection of ManagedSystemElements. This collection provides compute capabilities and serves as aggregation point to associate one or more of the following elements: FileSystem, OperatingSystem, Processor and Memory (Volatile and/or NonVolatile Storage).") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_ComputerSystem : CIM_System { [Description("The ComputerSystem object and its derivatives are Top Level Objects of CIM. They provide the scope for numerous components. Having unique System keys is required. The NameFormat property identifies how the ComputerSystem Name is generated. The NameFormat ValueMap qualifier defines the various mechanisms for assigning the name. Note that another name can be assigned and used for the ComputerSystem that better suit a business, using the inherited ElementName property.") : Amended ToSubclass] string NameFormat; [Description("OtherIdentifyingInfo captures additional data, beyond System Name information, that could be used to identify a ComputerSystem. One example would be to hold the Fibre Channel World-Wide Name (WWN) of a node. Note that if only the Fibre Channel name is available and is unique (able to be used as the System key), then this property would be NULL and the WWN would become the System key, its data placed in the Name property.") : Amended ToSubclass] string OtherIdentifyingInfo[]; [Description("An array of free-form strings providing explanations and details behind the entries in the OtherIdentifying Info array. Note, each entry of this array is related to the entry in OtherIdentifyingInfo that is located at the same index.") : Amended ToSubclass] string IdentifyingDescriptions[]; [Description("Enumeration indicating whether the ComputerSystem is a special-purpose System (ie, dedicated to a particular use), versus being 'general purpose'. For example, one could specify that the System is dedicated to \"Print\" (value=11) or acts as a \"Hub\" (value=8). \nA clarification is needed with respect to the value 17 (\"Mobile User Device\"). An example of a dedicated user device is a mobile phone or a barcode scanner in a store that communicates via radio frequency. These systems are quite limited in functionality and programmability, and are not considered 'general purpose' computing platforms. Alternately, an example of a mobile system that is 'general purpose' (i.e., is NOT dedicated) is a hand-held computer. Although limited in its programmability, new software can be downloaded and its functionality expanded by the user.") : Amended ToSubclass,Values{"Not Dedicated", "Unknown", "Other", "Storage", "Router", "Switch", "Layer 3 Switch", "Central Office Switch", "Hub", "Access Server", "Firewall", "Print", "I/O", "Web Caching", "Management", "Block Server", "File Server", "Mobile User Device", "Repeater", "Bridge/Extender", "Gateway", "Storage Virtualizer", "Media Library", "ExtenderNode", "NAS Head", "Self-contained NAS", "UPS", "IP Phone", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 Dedicated[]; [Description("A string describing how or why the system is dedicated when the Dedicated array includes the value 2, \"Other\".") : Amended ToSubclass] string OtherDedicatedDescriptions[]; [Description("If enabled (value = 4), the ComputerSystem can be reset via hardware (e.g. the power and reset buttons). If disabled (value = 3), hardware reset is not allowed. In addition to Enabled and Disabled, other Values for the property are also defined - \"Not Implemented\" (5), \"Other\" (1) and \"Unknown\" (2).") : Amended ToSubclass,Values{"Other", "Unknown", "Disabled", "Enabled", "Not Implemented"} : Amended ToSubclass] uint16 ResetCapability; [Description("An enumerated array describing the power management capabilities of the ComputerSystem. The use of this property has been deprecated. Instead, the Power Capabilites property in an associated PowerManagement Capabilities class should be used.") : Amended ToSubclass,Values{"Unknown", "Not Supported", "Disabled", "Enabled", "Power Saving Modes Entered Automatically", "Power State Settable", "Power Cycling Supported", "Timed Power On Supported"} : Amended ToSubclass] uint16 PowerManagementCapabilities[]; [Description("Sets the power state of the computer. The use of this method has been deprecated. Instead, use the SetPowerState method in the associated PowerManagementService class.") : Amended ToSubclass] uint32 SetPowerState([IN,Description("The Desired state for the COmputerSystem.") : Amended ToSubclass,Values{"Full Power", "Power Save - Low Power Mode", "Power Save - Standby", "Power Save - Other", "Power Cycle", "Power Off", "Hibernate", "Soft Off"} : Amended ToSubclass] uint32 PowerState,[IN,Description("Time indicates when the power state should be set, either as a regular date-time value or as an interval value (where the interval begins when the method invocation is received.") : Amended ToSubclass] datetime Time); }; [Description("Collection is an abstract class that provides a common superclass for data elements that represent collections of ManagedElements and its subclasses.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_Collection : CIM_ManagedElement { }; [Description("SystemSpecificCollection represents the general concept of a collection which is scoped (or contained) by a System. It represents a Collection that only has meaning in the context of a System, and/or whose elements are restricted by the definition of the System. This is explicitly described by the (required) association, HostedCollection. \nAn example of a SystemSpecificCollection is a Fibre Channel zone that collects network ports, port groupings and aliases (as required by a customer) in the context of an AdminDomain. The Collection is not a part of the domain, but merely an arbitrary grouping of the devices and other Collections in the domain. In other words, the context of the Collection is restricted to the domain, and its members are also limited by the domain.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_SystemSpecificCollection : CIM_Collection { [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: \nWhere and are separated by a colon ':', and where 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 _ structure of Schema class names.) In addition, to ensure uniqueness MUST NOT contain a colon (':'). When using this algorithm, the first colon to appear in InstanceID MUST appear between and . \n is chosen by the business 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. \nFor DMTF defined instances, the 'preferred' algorithm MUST be used with the set to 'CIM'.") : Amended ToSubclass] string InstanceID; }; [Description("An abstraction or emulation of a hardware entity, that may or may not be Realized in physical hardware. Any characteristics of a LogicalDevice that are used to manage its operation or configuration are contained in, or associated with, the LogicalDevice object. Examples of the operational properties of a Printer would be paper sizes supported, or detected errors. Examples of the configuration properties of a Sensor Device would be threshold settings. Various configurations could exist for a LogicalDevice. These configurations could be contained in Setting objects and associated with the LogicalDevice.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_LogicalDevice : CIM_EnabledLogicalElement { [Key,Description("The scoping System's CreationClassName.") : Amended ToSubclass] string SystemCreationClassName; [Key,Description("The scoping System's Name.") : Amended ToSubclass] string SystemName; [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.") : Amended ToSubclass] string CreationClassName; [Key,Description("An address or other identifying information to uniquely name the LogicalDevice.") : Amended ToSubclass] string DeviceID; [Description("Boolean indicating that the Device can be power managed. The use of this property has been deprecated. Instead, the existence of an associated PowerManagementCapabilities class (associated using the ElementCapabilities relationhip) indicates that power management is supported.") : Amended ToSubclass] boolean PowerManagementSupported; [Description("An enumerated array describing the power management capabilities of the Device. The use of this property has been deprecated. Instead, the PowerCapabilites property in an associated PowerManagementCapabilities class should be used.") : Amended ToSubclass,Values{"Unknown", "Not Supported", "Disabled", "Enabled", "Power Saving Modes Entered Automatically", "Power State Settable", "Power Cycling Supported", "Timed Power On Supported"} : Amended ToSubclass] uint16 PowerManagementCapabilities[]; [Description("The primary availability and status of the Device. (Additional status information can be specified using the Additional Availability array property.) For example, the Availability property indicates that the Device is running and has full power (value=3), or is in a warning (4), test (5), degraded (10) or power save state (values 13-15 and 17). Regarding the Power Save states, these are defined as follows: Value 13 (\"Power Save - Unknown\") indicates that the Device is known to be in a power save mode, but its exact status in this mode is unknown; 14 (\"Power Save - Low Power Mode\") indicates that the Device is in a power save state but still functioning, and may exhibit degraded performance; 15 (\"Power Save - Standby\") describes that the Device is not functioning but could be brought to full power 'quickly'; and value 17 (\"Power Save - Warning\") indicates that the Device is in a warning state, though also in a power save mode.") : Amended ToSubclass,Values{"Other", "Unknown", "Running/Full Power", "Warning", "In Test", "Not Applicable", "Power Off", "Off Line", "Off Duty", "Degraded", "Not Installed", "Install Error", "Power Save - Unknown", "Power Save - Low Power Mode", "Power Save - Standby", "Power Cycle", "Power Save - Warning", "Paused", "Not Ready", "Not Configured", "Quiesced"} : Amended ToSubclass] uint16 Availability; [Description("The StatusInfo property indicates whether the Logical Device is in an enabled (value = 3), disabled (value = 4) or some other (1) or unknown (2) state. If this property does not apply to the LogicalDevice, the value, 5 (\"Not Applicable\"), should be used. StatusInfo has been deprecated in lieu of a more clearly named property with additional enumerated values (EnabledState), that is inherited from ManagedSystemElement. \nIf a Device is (\"Enabled\")(value=3), it has been powered up, and is configured and operational. The Device may or may not be functionally active, depending on whether its Availability (or AdditionalAvailability) indicate that it is (\"Running/Full Power\")(value=3) or (\"Off line\") (value=8). In an enabled but offline mode, a Device may be performing out-of-band requests, such as running Diagnostics. If (\"Disabled\") StatusInfo value=4), a Device can only be \"enabled\" or powered off. In a personal computer environment, (\"Disabled\") means that the Device's driver is not available in the stack. In other environments, a Device can be disabled by removing its configuration file. A disabled device is physically present in a System and consuming resources, but can not be communicated with until a load of a driver, a load of a configuration file or some other \"enabling\" activity has occurred.") : Amended ToSubclass,Values{"Other", "Unknown", "Enabled", "Disabled", "Not Applicable"} : Amended ToSubclass] uint16 StatusInfo; [Description("LastErrorCode captures the last error code reported by the LogicalDevice.") : Amended ToSubclass] uint32 LastErrorCode; [Description("ErrorDescription is a free-form string supplying more information about the error recorded in LastErrorCode, and information on any corrective actions that may be taken.") : Amended ToSubclass] string ErrorDescription; [Description("ErrorCleared is a boolean property indicating that the error reported in LastErrorCode is now cleared.") : Amended ToSubclass] boolean ErrorCleared; [Description("OtherIdentifyingInfo captures additional data, beyond DeviceID information, that could be used to identify a LogicalDevice. One example would be to hold the Operating System's user friendly name for the Device in this property.") : Amended ToSubclass] string OtherIdentifyingInfo[]; [Description("The number of consecutive hours that this Device has been powered, since its last power cycle.") : Amended ToSubclass] uint64 PowerOnHours; [Description("The total number of hours that this Device has been powered.") : Amended ToSubclass] uint64 TotalPowerOnHours; [Description("An array of free-form strings providing explanations and details behind the entries in the OtherIdentifyingInfo array. Note, each entry of this array is related to the entry in OtherIdentifyingInfo that is located at the same index.") : Amended ToSubclass] string IdentifyingDescriptions[]; [Description("Additional availability and status of the Device, beyond that specified in the Availability property. The Availability property denotes the primary status and availability of the Device. In some cases, this will not be sufficient to denote the complete status of the Device. In those cases, the AdditionalAvailability property can be used to provide further information. For example, a Device's primary Availability may be \"Off line\" (value=8), but it may also be in a low power state (AdditonalAvailability value=14), or the Device could be running Diagnostics (AdditionalAvailability value=5, \"In Test\").") : Amended ToSubclass,Values{"Other", "Unknown", "Running/Full Power", "Warning", "In Test", "Not Applicable", "Power Off", "Off Line", "Off Duty", "Degraded", "Not Installed", "Install Error", "Power Save - Unknown", "Power Save - Low Power Mode", "Power Save - Standby", "Power Cycle", "Power Save - Warning", "Paused", "Not Ready", "Not Configured", "Quiesced"} : Amended ToSubclass] uint16 AdditionalAvailability[]; [Description("The MaxQuiesceTime property has been deprecated. When evaluating the use of Quiesce, it was determine that this single property is not adequate for describing when a device will automatically exit a quiescent state. In fact, the most likely scenario for a device to exit a quiescent state was determined to be based on the number of outstanding requests queued rather than on a maximum time. This will be re-evaluated and repositioned later. \nMaximum time in milliseconds, that a Device can run in a \"Quiesced\" state. A Device's state is defined in its Availability and AdditionalAvailability properties, where \"Quiesced\" is conveyed by the value 21. What occurs at the end of the time limit is device-specific. The Device may unquiesce, may offline or take other action. A value of 0 indicates that a Device can remain quiesced indefinitely.") : Amended ToSubclass] uint64 MaxQuiesceTime; [Description("Sets the power state of the Device. The use of this method has been deprecated. Instead, use the SetPowerState method in the associated PowerManagementService class.") : Amended ToSubclass] uint32 SetPowerState([IN,Description("The power state to set.") : Amended ToSubclass,Values{"Full Power", "Power Save - Low Power Mode", "Power Save - Standby", "Power Save - Other", "Power Cycle", "Power Off"} : Amended ToSubclass] uint16 PowerState,[IN,Description("Time indicates when the power state should be set, either as a regular date-time value or as an interval value (where the interval begins when the method invocation is received.") : Amended ToSubclass] datetime Time); [Description("Requests a reset of the LogicalDevice. The return value should be 0 if the request was successfully executed, 1 if the request is not supported and some other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 Reset(); [Description("The EnableDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. \nRequests that the LogicalDevice be enabled (\"Enabled\" input parameter = TRUE) or disabled (= FALSE). If successful, the Device's StatusInfo/EnabledState properties should reflect the desired state (enabled/disabled). Note that this method's function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the EnableDevice method should set the RequestedState property appropriately. \nThe return code should be 0 if the request was successfully executed, 1 if the request is not supported and some other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 EnableDevice([IN,Description("If TRUE enable the device, if FALSE disable the device.") : Amended ToSubclass] boolean Enabled); [Description("The OnlineDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. \nRequests that the LogicalDevice be brought online (\"Online\" input parameter = TRUE) or taken offline (= FALSE). \"Online\" indicates that the Device is ready to accept requests, and is operational and fully functioning. In this case, the Device's Availability property would be set to a value of 3 (\"Running/Full Power\"). \"Offline\" indicates that a Device is powered up and operational, but not processing functional requests. In an offline state, a Device may be capable of running diagnostics or generating operational alerts. For example, when the \"Offline\" button is pushed on a Printer, the Device is no longer available to process print jobs, but could be available for diagnostics or maintenance. \nIf this method is successful, the Device's Availability and AdditionalAvailability properties should reflect the updated status. If a failure occurs trying to bring the Device online or offline, it should remain in its current state. IE, the request, if unsuccessful, should not leave the Device in an indeterminate state. When bringing a Device back \"Online\", from an \"Offline\" mode, the Device should be restored to its last \"Online\" state, if at all possible. Only a Device that has an EnabledState/StatusInfo of \"Enabled\" and has been configured can be brought online or taken offline. \nOnlineDevice should return 0 if successful, 1 if the request is not supported at all, 2 if the request is not supported due to the current state of the Device, and some other value if any other error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier. \nNote that this method's function overlaps with the RequestedState property. RequestedState was added to the model to maintain a record (i.e., a persisted value) of the last state request. Invoking the OnlineDevice method should set the RequestedState property appropriately.") : Amended ToSubclass] uint32 OnlineDevice([IN,Description("If TRUE, take the device online, if FALSE, take the device OFFLINE.") : Amended ToSubclass] boolean Online); [Description("The QuiesceDevice method has been deprecated in lieu of the more general RequestStateChange method that directly overlaps with the functionality provided by this method. \nRequests that the LogicalDevice cleanly cease all current activity (\"Quiesce\" input parameter = TRUE) or resume activity (= FALSE). For this method to quiesce a Device, that Device should have an Availability (or Additional Availability) of \"Running/Full Power\" (value=3) and an EnabledStatus/StatusInfo of \"Enabled\". For example, if quiesced, a Device may then be offlined for diagnostics, or disabled for power off and hot swap. For the method to \"unquiesce\" a Device, that Device should have an Availability (or AdditionalAvailability) of \"Quiesced\" (value=21) and an EnabledStatus/StatusInfo of \"Enabled\". In this case, the Device would be returned to an \"Enabled\" and \"Running/Full Power\" status. \nThe method's return code should indicate the success or failure of the quiesce. It should return 0 if successful, 1 if the request is not supported at all, 2 if the request is not supported due to the current state of the Device, and some other value if any other error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 QuiesceDevice([IN,Description("If set to TRUE then cleanly cease all activity, if FALSE resume activity.") : Amended ToSubclass] boolean Quiesce); [Description("Requests that the Device capture its current configuration, setup and/or state information in a backing store. This is handled more generally by the ConfigurationData subclass of SettingData. Therefore, this method is deprecated. \n\nThe information returned by this method could be used at a later time (via the RestoreProperties method), to return a Device to its present \"condition\". This method may not be supported by all Devices. The method should return 0 if successful, 1 if the request is not supported, and some other value if any other error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 SaveProperties(); [Description("Requests that the Device re-establish its configuration, setup and/or state information from a backing store. This is handled more generally by the ConfigurationData subclass of SettingData. Therefore, this method is deprecated. \n\nThe information would have been captured at an earlier time (via the SaveProperties method). This method may not be supported by all Devices. The method should return 0 if successful, 1 if the request is not supported, and some other value if any other error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 RestoreProperties(); }; [Description("A Sensor is a hardware device capable of measuring the characteristics of some physical property - for example, the temperature or voltage characteristics of a UnitaryComputer System.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_Sensor : CIM_LogicalDevice { [Description("The Type of the Sensor, e.g. Voltage or Temperature Sensor. If the type is set to \"Other\", then the OtherSensorType Description can be used to further identify the type, or if the Sensor has numeric readings, then the type of the Sensor can be implicitly determined by the Units. A description of the different Sensor types is as follows: A Temperature Sensor measures the environmental temperature. Voltage and Current Sensors measure electrical voltage and current readings. A Tachometer measures speed/revolutions of a Device. For example, a Fan Device can have an associated Tachometer which measures its speed. A Counter is a general purpose Sensor that measures some numerical property of a Device. A Counter value can be cleared, but it never decreases. A Switch Sensor has states like Open/Close, On/Off, or Up/Down. A Lock has states of Locked/Unlocked. Humidity, Smoke Detection and Air Flow Sensors measure the equivalent environmental characteristics. A Presence Sensor detects the presence of a PhysicalElement.") : Amended ToSubclass,Values{"Unknown", "Other", "Temperature", "Voltage", "Current", "Tachometer", "Counter", "Switch", "Lock", "Humidity", "Smoke Detection", "Presence", "Air Flow"} : Amended ToSubclass] uint16 SensorType; [Description("A string describing the Sensor type - used when the SensorType property is set to \"Other\".") : Amended ToSubclass] string OtherSensorTypeDescription; [Description("PossibleStates enumerates the string outputs of the Sensor. For example, a \"Switch\" Sensor may output the states \"On\", or \"Off\". Another implementation of the Switch may output the states \"Open\", and \"Close\". Another example is a NumericSensor supporting thresholds. This Sensor can report the states like \"Normal\", \"Upper Fatal\", \"Lower Non-Critical\", etc. A NumericSensor that does not publish readings and thresholds, but stores this data internally, can still report its states.") : Amended ToSubclass] string PossibleStates[]; [Description("The current state indicated by the Sensor. This is always one of the \"PossibleStates\".") : Amended ToSubclass] string CurrentState; [Description("The polling interval that the Sensor hardware or the instrumentation uses to determine the current state of the Sensor.") : Amended ToSubclass] uint64 PollingInterval; }; [Description("A Numeric Sensor is capable of returning numeric readings and optionally supports thresholds settings.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_NumericSensor : CIM_Sensor { [Description("The base unit of the values returned by this Sensor. All the values returned by this Sensor are represented in the units obtained by (BaseUnits * 10 raised to the power of the UnitModifier). For example, if BaseUnits is Volts and the UnitModifier is -6, then the units of the values returned are MicroVolts. However, if the RateUnits property is set to a value other than \"None\", then the units are further qualified as rate units. In the above example, if RateUnits is set to \"Per Second\", then the values returned by the Sensor are in MicroVolts/Second. The units apply to all numeric properties of the Sensor, unless explicitly overridden by the Units qualifier.") : Amended ToSubclass,Values{"Unknown", "Other", "Degrees C", "Degrees F", "Degrees K", "Volts", "Amps", "Watts", "Joules", "Coulombs", "VA", "Nits", "Lumens", "Lux", "Candelas", "kPa", "PSI", "Newtons", "CFM", "RPM", "Hertz", "Seconds", "Minutes", "Hours", "Days", "Weeks", "Mils", "Inches", "Feet", "Cubic Inches", "Cubic Feet", "Meters", "Cubic Centimeters", "Cubic Meters", "Liters", "Fluid Ounces", "Radians", "Steradians", "Revolutions", "Cycles", "Gravities", "Ounces", "Pounds", "Foot-Pounds", "Ounce-Inches", "Gauss", "Gilberts", "Henries", "Farads", "Ohms", "Siemens", "Moles", "Becquerels", "PPM (parts/million)", "Decibels", "DbA", "DbC", "Grays", "Sieverts", "Color Temperature Degrees K", "Bits", "Bytes", "Words (data)", "DoubleWords", "QuadWords", "Percentage"} : Amended ToSubclass] uint16 BaseUnits; [Description("The unit multiplier for the values returned by this Sensor. All the values returned by this Sensor are represented in the units obtained by (BaseUnits * 10 raised to the power of the UnitModifier). For example, if BaseUnits is Volts and the Unit Modifier is -6, then the units of the values returned are MicroVolts. However, if the RateUnits property is set to a value other than \"None\", then the units are further qualified as rate units. In the above example, if RateUnits is set to \"Per Second\", then the values returned by the Sensor are in MicroVolts/Second. The units apply to all numeric properties of the Sensor, unless explicitly overridden by the Units qualifier.") : Amended ToSubclass] sint32 UnitModifier; [Description("Specifies if the units returned by this Sensor are rate units. All the values returned by this Sensor are represented in the units obtained by (BaseUnits * 10 raised to the power of the UnitModifier). This is true unless this property (RateUnits) has a value different than \"None\". For example, if BaseUnits is Volts and the UnitModifier is -6, then the units of the values returned are MicroVolts. But, if the RateUnits property is set to a value other than \"None\", then the units are further qualified as rate units. In the above example, if RateUnits is set to \"Per Second\", then the values returned by the Sensor are in MicroVolts/Second. The units apply to all numeric properties of the Sensor, unless explicitly overridden by the Units qualifier. Any implementation of CurrentReading should be qualified with either a Counter or a Gauge qualifier, depending on the characteristics of the sensor being modeled.") : Amended ToSubclass,Values{"None", "Per MicroSecond", "Per MilliSecond", "Per Second", "Per Minute", "Per Hour", "Per Day", "Per Week", "Per Month", "Per Year"} : Amended ToSubclass] uint16 RateUnits; [Description("The current value indicated by the Sensor.") : Amended ToSubclass] sint32 CurrentReading; [Description("NominalReading indicates the 'normal' or expected value for the NumericSensor.") : Amended ToSubclass] sint32 NominalReading; [Description("NormalMax provides guidance for the user as to the normal maximum range for the NumericSensor.") : Amended ToSubclass] sint32 NormalMax; [Description("NormalMin provides guidance for the user as to the normal minimum range for the NumericSensor.") : Amended ToSubclass] sint32 NormalMin; [Description("MaxReadable indicates the largest value of the measured property that can be read by the NumericSensor.") : Amended ToSubclass] sint32 MaxReadable; [Description("MinReadable indicates the smallest value of the measured property that can be read by the NumericSensor.") : Amended ToSubclass] sint32 MinReadable; [Description("Resolution indicates the ability of the Sensor to resolve differences in the measured property. The units for this measurement are determined by BaseUnit*UnitModifier/RateUnit.") : Amended ToSubclass] uint32 Resolution; [Description("This property is being deprecated in lieu of using the Resolution and Accuracy properties. \nIndicates the tolerance of the Sensor for the measured property. Tolerance, along with Resolution and Accuracy, is used to calculate the actual value of the measured physical property. Tolerance may vary depending on whether the Device is linear over its dynamic range.") : Amended ToSubclass] sint32 Tolerance; [Description("Indicates the accuracy of the Sensor for the measured property. Its value is recorded as plus/minus hundredths of a percent. Accuracy, along with Resolution, is used to calculate the actual value of the measured physical property. Accuracy may vary depending on whether the Device is linear over its dynamic range.") : Amended ToSubclass] sint32 Accuracy; [Description("Indicates that the Sensor is linear over its dynamic range.") : Amended ToSubclass] boolean IsLinear; [Description("Indicates the margin built around the thresholds. This margin prevents unnecessary state changes when the Sensor reading may fluctuate very close to its thresholds. This could be due to the Sensor's tolerance/accuracy/resolution or due to environmental factors. Once a threshold is crossed, the state of the Sensor should change. However, the state should not fluctuate between the old and new states unless the Sensor's change in the reading exceeds the hysteresis value. The units for this measurement are determined by BaseUnit*UnitModifier/RateUnit.") : Amended ToSubclass] uint32 Hysteresis; [Description("The Sensor's threshold values specify the ranges (min and max values) for determining whether the Sensor is operating under Normal, NonCritical, Critical or Fatal conditions. If Current Reading is between LowerThresholdNonCritical and Upper ThresholdNonCritical, then the Sensor is reporting a normal value. If CurrentReading is between LowerThresholdNonCritical and LowerThresholdCritical, then the CurrentState is NonCritical.") : Amended ToSubclass] sint32 LowerThresholdNonCritical; [Description("The Sensor's threshold values specify the ranges (min and max values) for determining whether the Sensor is operating under Normal, NonCritical, Critical or Fatal conditions. If the CurrentReading is between LowerThresholdNonCritical and UpperThresholdNonCritical, then the Sensor is reporting a normal value. If the CurrentReading is between UpperThreshold NonCritical and UpperThresholdCritical, then the CurrentState is NonCritical.") : Amended ToSubclass] sint32 UpperThresholdNonCritical; [Description("The Sensor's threshold values specify the ranges (min and max values) for determining whether the Sensor is operating under Normal, NonCritical, Critical or Fatal conditions. If the CurrentReading is between LowerThresholdCritical and Lower ThresholdFatal, then the CurrentState is Critical.") : Amended ToSubclass] sint32 LowerThresholdCritical; [Description("The Sensor's threshold values specify the ranges (min and max values) for determining whether the Sensor is operating under Normal, NonCritical, Critical or Fatal conditions. If the CurrentReading is between UpperThresholdCritical and Upper ThresholdFatal, then the CurrentState is Critical.") : Amended ToSubclass] sint32 UpperThresholdCritical; [Description("The Sensor's threshold values specify the ranges (min and max values) for determining whether the Sensor is operating under Normal, NonCritical, Critical or Fatal conditions. If the CurrentReading is below LowerThresholdFatal, then the Current State is Fatal.") : Amended ToSubclass] sint32 LowerThresholdFatal; [Description("The Sensor's threshold values specify the ranges (min and max values) for determining whether the Sensor is operating under Normal, NonCritical, Critical or Fatal conditions. If the CurrentReading is above UpperThresholdFatal, then the Current State is Fatal.") : Amended ToSubclass] sint32 UpperThresholdFatal; [Description("An array representing the thresholds supported by this Sensor.") : Amended ToSubclass,Values{"LowerThresholdNonCritical", "UpperThresholdNonCritical", "LowerThresholdCritical", "UpperThresholdCritical", "LowerThresholdFatal", "UpperThresholdFatal"} : Amended ToSubclass] uint16 SupportedThresholds[]; [Description("An array representing the thresholds that are currently enabled for this Sensor.") : Amended ToSubclass,Values{"LowerThresholdNonCritical", "UpperThresholdNonCritical", "LowerThresholdCritical", "UpperThresholdCritical", "LowerThresholdFatal", "UpperThresholdFatal"} : Amended ToSubclass] uint16 EnabledThresholds[]; [Description("An array representing the writable thresholds supported by Sensor.") : Amended ToSubclass,Values{"LowerThresholdNonCritical", "UpperThresholdNonCritical", "LowerThresholdCritical", "UpperThresholdCritical", "LowerThresholdFatal", "UpperThresholdFatal"} : Amended ToSubclass] uint16 SettableThresholds[]; [Description("This method resets the values of the thresholds to hardware defaults. This method returns 0 if successful, 1 if unsupported and any other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 RestoreDefaultThresholds(); [Description("The use of this method is being deprecated, since Current senor reading can be retrieved through the GetInstance operation. \nFor a non-linear Sensor, the resolution, accuracy, tolerance and hysteresis vary as the current reading moves. This method can be used to get these factors for a given reading. It returns 0 if successful, 1 if unsupported, and any other value if an error occurred. In a subclass, the set of possible return codes could be specified, using a ValueMap qualifier on the method. The strings to which the ValueMap contents are 'translated' may also be specified in the subclass as a Values array qualifier.") : Amended ToSubclass] uint32 GetNonLinearFactors([IN,Description("The sensor reading to get information for.") : Amended ToSubclass] sint32 SensorReading,[IN(FALSE),OUT,Description("The accuracy of the reading.") : Amended ToSubclass] sint32 Accuracy,[IN(FALSE),OUT,Description("The resolution of the reading.") : Amended ToSubclass] uint32 Resolution,[IN(FALSE),OUT,Description("The tolerance of the reading.") : Amended ToSubclass] sint32 Tolerance,[IN(FALSE),OUT,Description("The Hysteresis of the reading.") : Amended ToSubclass] uint32 Hysteresis); }; [Description("Log represents any type of event, error or informational register or chronicle. The object describes the existence of the log and its characteristics. Log does not dictate the form of the data represented or how records/messages are stored in the log and/or accessed. Subclasses will define the appropriate methods and behavior.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_Log : CIM_EnabledLogicalElement { [Description("Maximum number of records that can be captured in the Log. If undefined, a value of zero should be specified.") : Amended ToSubclass] uint64 MaxNumberOfRecords; [Description("Current number of records in the Log.") : Amended ToSubclass] uint64 CurrentNumberOfRecords; [Description("Requests that the Log be cleared of all entries. \nThe return value should be 0 if the request was successfully executed, 1 if the request is not supported, and some other value, as indicated by the ValueMap/Values qualifiers, if an error occurred.") : Amended ToSubclass,Values{"Completed with no error", "Not Supported", "Unspecified Error", "Timeout", "Failed", "Invalid Parameter", "DMTF_Reserved", "Method_Reserved", "Vendor_Reserved"} : Amended ToSubclass] uint32 ClearLog(); }; [Description("The LogRecord object can describe the definitional format for entries in a MessageLog, or can be used to instantiate the actual records in the Log. The latter approach provides a great deal more semantic definition and management control over the individual entries in a MessageLog, than do the record manipulation methods of the Log class. It is recommended that the data in individual Log entries be modeled using subclasses of LogRecord, to avoid the creation of LogRecords with one property (such as RecordData) without semantics. \nDefinitional formats for LogRecords could be specified by establishing a naming convention for the RecordID and Message Timestamp key properties.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_LogRecord : CIM_ManagedElement { [Key,Description("The scoping Log's CreationClassName.") : Amended ToSubclass] string LogCreationClassName; [Key,Description("The scoping Log's Name.") : Amended ToSubclass] string LogName; [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.") : Amended ToSubclass] string CreationClassName; [Key,Description("RecordID, with the MessageTimestamp property, serve to uniquely identify the LogRecord within a MessageLog. Note that this property is different than the RecordNumber parameters of the MessageLog methods. The latter are ordinal values only, useful to track position when iterating through a Log. On the other hand, RecordID is truly an identifier for an instance of LogRecord. It may be set to the record's ordinal position, but this is not required.") : Amended ToSubclass] string RecordID; [Key,Description("A LogRecord's key structure includes a timestamp for the entry.") : Amended ToSubclass] datetime MessageTimestamp; [Description("A free-form string describing the LogRecord's data structure.") : Amended ToSubclass] string DataFormat; [Description("A string describing the data structure of the information in the property, RecordData. If the RecordFormat string is , RecordData should be interpreted as a free-form string. \n\nTo describe the data structure of RecordData, the RecordFormat string should be constructed as follows: \n- The first character is a delimiter character and is used to parse the remainder of the string into sub-strings. \n- Each sub-string is separated by the delimiter character and should be in the form of a CIM property declaration (i.e., datatype and property name). This set of declarations may be used to interpret the similarly delimited RecordData property. \nFor example, using a '*' delimiter, RecordFormat = \"*string ThisDay*uint32 ThisYear*datetime SomeTime\" \nmay be used to interpret: RecordData = \"*This is Friday*2002*20020807141000.000000-300\".") : Amended ToSubclass] string RecordFormat; [Description("A string containing LogRecord data. \nIf the corresponding RecordFormat property is , or cannot be parsed according to the recommended format, RecordData should be interpreted as a free-form string. If the RecordFormat property contains parseable format information (as recommended in the RecordFormat Description qualifier), the RecordData string SHOULD be parsed in accordance with this format. In this case, RecordData SHOULD begin with the delimiter character and this character SHOULD be used to separate substrings in the manner described. The RecordData string can then be parsed by the data consumer and appropriately typed.") : Amended ToSubclass] string RecordData; }; [Description("RecordLog serves as an aggregation point for LogRecord objects. This class presents a higher level view of a log than its peer class MessageLog (which uses iterators) and introduces a new key structure. Access to records in this log is achieved through the use of the standard CIM Operations defined as part of WBEM.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_RecordLog : CIM_Log { [Key,Description("Within the scope of the instantiating Namespace, InstanceID opaquely and uniquely identifies an instance of this class. \nIn order to ensure uniqueness within the NameSpace, the value of InstanceID SHOULD be constructed using the following 'preferred' algorithm: \n: \nWhere and are separated by a colon ':', and where 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 _ structure of Schema class names.) In addition, to ensure uniqueness MUST NOT contain a colon (':'). When using this algorithm, the first colon to appear in InstanceID MUST appear between and . \n is chosen by the business 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. \nFor DMTF defined instances, the 'preferred' algorithm MUST be used with the set to 'CIM'.") : Amended ToSubclass] string InstanceID; }; [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. \nA 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. \nThe 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.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] 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: \nWhere and are separated by a colon ':', and where 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 _ structure of Schema class names.) In addition, to ensure uniqueness, MUST NOT contain a colon (':'). When using this algorithm, the first colon to appear in InstanceID MUST appear between and . \n 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. \nFor DMTF defined instances, the 'preferred' algorithm MUST be used with the set to 'CIM'.") : Amended ToSubclass] string InstanceID; [Description("The organization that defines this profile.") : Amended ToSubclass,Values{"Other", "DMTF", "CompTIA", "Consortium for Service Innovation", "FAST", "GGF", "INTAP", "itSMF", "NAC", "Northwest Energy Efficiency Alliance", "SNIA", "TM Forum", "The Open Group", "ANSI", "IEEE", "IETF", "INCITS", "ISO", "W3C"} : Amended ToSubclass] uint16 RegisteredOrganization; [Description("A free-form string providing a description of the organization when 1, \"Other\", is specified for the RegisteredOrganization.") : Amended ToSubclass] string OtherRegisteredOrganization; [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.") : Amended ToSubclass] string RegisteredName; [Description("The version of this profile. The string representing the version MUST be in the form: \nM + \".\" + N + \".\" + U \nWhere: \nM - The major version (in numeric form) describing the profile's creation or last modification. \nN - The minor version (in numeric form) describing the profile's creation or last modification. \nU - The update (e.g. errata, patch, ..., in numeric form) describing the profile's creation or last modification.") : Amended ToSubclass] string RegisteredVersion; [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\".") : Amended ToSubclass,Values{"Other", "Not Advertised", "SLP"} : Amended ToSubclass] 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.") : Amended ToSubclass] string AdvertiseTypeDescriptions[]; }; [Description("The Group class is used to collect ManagedElements into groups. This class is defined so as to incorporate commonly-used LDAP attributes to permit implementations to easily derive this information from LDAP-accessible directories. This class's properties are a subset of a related class, OtherGroupInformation, which defines all the group properties and in array form for directory compatibility.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_Group : CIM_Collection { [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.") : Amended ToSubclass] string CreationClassName; [Key,Description("The Name property defines the label by which the object is known. In the case of an LDAP-derived instance, the Name property value may be set to the distinguished name of the LDAP-accessed object instance.") : Amended ToSubclass] string Name; [Description("The BusinessCategory property may be used to describe the kind of business activity performed by the members of the group.") : Amended ToSubclass] string BusinessCategory; [Description("A Common Name is a (possibly ambiguous) name by which the group is commonly known in some limited scope (such as an organization) and conforms to the naming conventions of the country or culture with which it is associated.") : Amended ToSubclass] string CommonName; }; [Description("CIM_Account is the information held by a SecurityService to track identity and privileges managed by that service. Common examples of an Account are the entries in a UNIX /etc/passwd file. Several kinds of security services use various information from those entries - the /bin/login program uses the account name ('root') and hashed password to authenticate users, and the file service, for instance, uses the UserID field ('0') and GroupID field ('0') to record ownership and determine access control privileges on files in the file system. This class is defined so as to incorporate commonly-used LDAP attributes to permit implementations to easily derive this information from LDAP-accessible directories. \n\nThe semantics of Account overlap with that of the class, CIM_Identity. However, aspects of Account - such as its specific tie to a System - are valuable and have been widely implemented. For this reason, the Account and Identity classes are associated using a subclass of LogicalIdentity (AccountIdentity), instead of deprecating the Account class in the CIM Schema. When an Account has been authenticated, the corresponding Identity's TrustEstablished Boolean would be set to TRUE. Then, the Identity class can be used as defined for authorization purposes.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_Account : CIM_LogicalElement { [Key,Description("The scoping System's CCN.") : Amended ToSubclass] string SystemCreationClassName; [Key,Description("The scoping System's Name.") : Amended ToSubclass] string SystemName; [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.") : Amended ToSubclass] string CreationClassName; [Key,Description("The Name property defines the label by which the object is known. The value of this property may be set to be the same as that of the UserID property or, in the case of an LDAP-derived instance, the Name property value may be set to the distinguishedName of the LDAP-accessed object instance.") : Amended ToSubclass] string Name; [Description("UserID is the value used by the SecurityService to represent identity. For an authentication service, the UserID may be the name of the user, or for an authorization service the value which serves as a handle to a mapping of the identity.") : Amended ToSubclass] string UserID; [Description("In the case of an LDAP-derived instance, the ObjectClass property value(s) may be set to the objectClass attribute values.") : Amended ToSubclass] string ObjectClass[]; [Description("The Descriptions property values may contain human-readable descriptions of the object. In the case of an LDAP-derived instance, the description attribute may have multiple values that, therefore, cannot be placed in the inherited Description property.") : Amended ToSubclass] string Descriptions[]; [Description("Based on RFC1274, the host name of the system(s) for which the account applies. The host name may be a fully-qualified DNS name or it may be an unqualified host name.") : Amended ToSubclass] string Host[]; [Description("This property contains the name of a locality, such as a city, county or other geographic region.") : Amended ToSubclass] string LocalityName[]; [Description("The name of the organization related to the account.") : Amended ToSubclass] string OrganizationName[]; [Description("The name of an organizational unit related to the account.") : Amended ToSubclass] string OU[]; [Description("In the case of an LDAP-derived instance, the SeeAlso property specifies distinguished name of other Directory objects which may be other aspects (in some sense) of the same real world object.") : Amended ToSubclass] string SeeAlso[]; [Description("Based on inetOrgPerson and for directory compatibility, the UserCertificate property may be used to specify a public key certificate for the person.") : Amended ToSubclass] string UserCertificate[]; [Description("In the case of an LDAP-derived instance, the UserPassword property may contain an encrypted password used to access the person's resources in a directory.") : Amended ToSubclass] string UserPassword[]; }; [Description("Privilege is the base class for all types of activities which are granted or denied by a Role or an Identity. Whether an individual Privilege is granted or denied is defined using the PrivilegeGranted boolean. Any Privileges not specifically granted are assumed to be denied. An explicit deny (Privilege Granted = FALSE) takes precedence over any granted Privileges. \n\nThe association of subjects (Roles and Identities) to Privileges is accomplished using policy or explicitly via the associations on a subclass. The entities that are protected (targets) can be similarly defined. \n\nNote that Privileges may be inherited through hierarchical Roles, or may overlap. For example, a Privilege denying any instance Writes in a particular CIM Server Namespace would overlap with a Privilege defining specific access rights at an instance level within that Namespace. In this example, the AuthorizedSubjects are either Identities or Roles, and the AuthorizedTargets are a Namespace in the former case, and a particular instance in the latter.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_Privilege : 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: \nWhere and are separated by a colon ':', and where 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 _ structure of Schema class names.) In addition, to ensure uniqueness MUST NOT contain a colon (':'). When using this algorithm, the first colon to appear in InstanceID MUST appear between and . \n is chosen by the business 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. For DMTF defined instances, the 'preferred' algorithm MUST be used with the set to 'CIM'.") : Amended ToSubclass] string InstanceID; [Description("Boolean indicating whether the Privilege is granted (TRUE) or denied (FALSE). The default is to grant permission.") : Amended ToSubclass] boolean PrivilegeGranted; [Description("An enumeration indicating the activities that are granted or denied. These activities apply to all entities specified in the ActivityQualifiers array. The values in the enumeration are straightforward except for one, 4=\"Detect\". This value indicates that the existence or presence of an entity may be determined, but not necessarily specific data (which requires the Read privilege to be true). This activity is exemplified by 'hidden files'- if you list the contents of a directory, you will not see hidden files. However, if you know a specific file name, or know how to expose hidden files, then they can be 'detected'. Another example is the ability to define search privileges in directory implementations.") : Amended ToSubclass,Values{"Other", "Create", "Delete", "Detect", "Read", "Write", "Execute", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 Activities[]; [Description("The ActivityQualifiers property is an array of string values used to further qualify and specify the privileges granted or denied. For example, it is used to specify a set of files for which 'Read'/'Write' access is permitted or denied. Or, it defines a class' methods that may be 'Executed'. Details on the semantics of the individual entries in ActivityQualifiers are provided by corresponding entries in the QualifierFormats array.") : Amended ToSubclass] string ActivityQualifiers[]; [Description("Defines the semantics of corresponding entries in the ActivityQualifiers array. An example of each of these 'formats' and their use follows: \n- 2=Class Name. Example: If the authorization target is a CIM Service or a Namespace, then the ActivityQualifiers entries can define a list of classes that the authorized subject is able to create or delete. \n- 3=Property. Example: If the authorization target is a CIM Service, Namespace or Collection of instances, then the ActivityQualifiers entries can define the class properties that may or may not be accessed. In this case, the class names are specified with the property names to avoid ambiguity - since a CIM Service, Namespace or Collection could manage multiple classes. On the other hand, if the authorization target is an individual instance, then there is no possible ambiguity and the class name may be omitted. To specify ALL properties, the wildcard string \"*\" should be used. \n- 4=Method. This example is very similar to the Property one, above. And, as above, the string \"*\" may be specified to select ALL methods. \n- 5=Object Reference. Example: If the authorization target is a CIM Service or Namespace, then the ActivityQualifiers entries can define a list of object references (as strings) that the authorized subject can access. \n- 6=Namespace. Example: If the authorization target is a CIM Service, then the ActivityQualifiers entries can define a list of Namespaces that the authorized subject is able to access. \n- 7=URL. Example: An authorization target may not be defined, but a Privilege could be used to deny access to specific URLs by individual Identities or for specific Roles, such as the 'under 17' Role. \n- 8=Directory/File Name. Example: If the authorization target is a FileSystem, then the ActivityQualifiers entries can define a list of directories and files whose access is protected. \n- 9=Command Line Instruction. Example: If the authorization target is a ComputerSystem or Service, then the ActivityQualifiers entries can define a list of command line instructions that may or may not be 'Executed' by the authorized subjects.") : Amended ToSubclass,Values{"Class Name", "Property", "Method", "Object Reference", "Namespace", "URL", "Directory/File Name", "Command Line Instruction", "DMTF Reserved", "Vendor Reserved"} : Amended ToSubclass] uint16 QualifierFormats[]; }; [Description("Privilege is the base class for all types of activities which are granted or denied to a Role or an Identity. AuthorizedPrivilege is a subclass defining static renderings of authorization policy rules. The association of Roles and Identities to AuthorizedPrivilege is accomplished using the AuthorizedSubject relationship. The entities that are protected are defined using the AuthorizedTarget relationship. \n\nNote that this class and its AuthorizedSubject/Target associations provide a short-hand, static mechanism to represent authorization policies.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_AuthorizedPrivilege : CIM_Privilege { }; [Description("A concrete version of Collection. This class represents a generic and instantiable collection, such as a group of ComputerSystems (e.g., a pool of hosts available for executing Jobs). It is defined as a concrete subclass of the abstract CIM_Collection class, to be used in place of many specific subclasses that add no semantics. Note that when defining additional semantics for Collection that this class MUST NOT be subclassed. Specific semantics continue to be defined as subclasses of the abstract CIM_Collection. ConcreteCollection is limited in its use as a concrete form of a general collection or bag. It was deemed more prudent to create this concrete subclass than to change Collection from an abstract to a concrete class.") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class CIM_ConcreteCollection : CIM_Collection { [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: \nWhere and are separated by a colon ':', and where 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 _ structure of Schema class names.) In addition, to ensure uniqueness MUST NOT contain a colon (':'). When using this algorithm, the first colon to appear in InstanceID MUST appear between and . \n\n is chosen by the business 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.") : Amended ToSubclass] string InstanceID; }; [Description("AdminDomain for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class AdminDomain : CIM_AdminDomain { }; [Description("ComputerSystem for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class ComputerSystem : CIM_ComputerSystem { }; [Description("SystemSpecificCollection for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class SystemSpecificCollection : CIM_SystemSpecificCollection { }; [Description("Sensor (discrete sensor) for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class Sensor : CIM_Sensor { }; [Description("NumericSensor for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class NumericSensor : CIM_NumericSensor { }; [Description("RecordLog for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class RecordLog : CIM_RecordLog { }; [Description("LogRecord for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class LogRecord : CIM_LogRecord { }; [Description("RegisteredProfile for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class RegisteredProfile : CIM_RegisteredProfile { }; [Description("PrivilegeGroup for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class PrivilegeGroup : CIM_Group { }; [Description("Account for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class Account : CIM_Account { }; [Description("AuthorizedPrivilege for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class AuthorizedPrivilege : CIM_AuthorizedPrivilege { }; [Description("ConcreteCollection for IPMI") : Amended ToSubclass,AMENDMENT, LOCALE(0x0409)] class ConcreteCollection : CIM_ConcreteCollection { };