// Copyright (c) 2005 DMTF. All rights reserved.
// Add UmlPackagePath
// qualifier values to CIM Schema.
// ==================================================================
// CIM_DiagnosticSetting
// ==================================================================
[Version ( "2.9.0" ),
UMLPackagePath ( "CIM::System::Diagnostics" ),
Description (
"Specific diagnostic test parameters and execution instructions "
"are defined by this class. To provide more detailed Settings "
"for a type of test (i.e., additional properties), subclassing "
"is appropriate." )]
class CIM_DiagnosticSetting : CIM_Setting {
[Key, Override ( "SettingID" ),
Description (
"In order to ensure uniqueness within the NameSpace, the "
"value of SettingID SHOULD be constructed using the "
"following \'preferred\' algorithm: \n"
": \n"
"Where 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 SettingID, 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 SettingID "
"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 SettingID is not re-used across any "
"SettingIDs produced by this or other providers for this "
"instance\'s NameSpace. \n"
"A preferred value for is a timestamp (CIM "
"DateTime). For example, ACME:19980525133015.0000000-300" ),
MaxLen ( 256 )]
string SettingID;
[Deprecated { "CIM_DiagnosticSetting.LogOptions",
"CIM_DiagnosticSetting.VerbosityLevel" },
Write, Description (
"This property is being deprecated because the "
"TestWarningLevel and LogOptions properties serve the "
"same purpose. It is deprecated in lieu of using the "
"LogOptions (\'Warnings\') property in conjunction with "
"VerbosityLevel to specify this information. The \'Missing "
"Resources\' and \'Testing Impacts\' values are not "
"included directly in LogOptions, but they are expected "
"to be recorded in the resulting DiagnosticServiceRecord "
"object. \n"
"\n"
"Sets the level of warning messages to be logged. \n"
"If for example no warning information is required, the "
"level would be set to \"No Warnings\" (value=0). Using "
"\"Missing Resources\" (value=1) will cause warnings to "
"be generated when required resources or hardware are not "
"found. Setting the value to 2, \"Testing Impacts\", "
"results in both missing resources and \'test impact\' "
"warnings (for example, multiple retries required) to be "
"reported." ),
ValueMap { "0", "1", "2", "3" },
Values { "No Warnings", "Missing Resources",
"Testing Impacts", "All Warnings" }]
uint16 TestWarningLevel;
[Deprecated { "CIM_DiagnosticSetting.LogOptions" },
Write, Description (
"When this flag is true, the diagnostic test will report "
"\'soft errors\'. In this context, a soft error is a "
"message from the diagnostic reporting a known defect in "
"the hardware or driver configuration, or execution "
"environment. Examples are: \'Not enough memory\', "
"\'Driver IOCTL not implemented\', \'Video RAM compare "
"failed during polygon fill test (A known defect in the "
"video chipset)\', etc." )]
boolean ReportSoftErrors;
[Deprecated { "CIM_DiagnosticSetting.LogOptions" },
Write, Description (
"When this flag is true, the diagnostic test will report "
"\'status messages\'. In this context, a status message "
"indicates that the diagnostic code is at a checkpoint. "
"Examples are: \"Completion of phase 1\", \"Complex "
"pattern\", etc." )]
boolean ReportStatusMessages;
[Write, Description (
"When this flag is true, the test will halt after finding "
"the first error." )]
boolean HaltOnError;
[Write, Description (
"When this flag is true, the test software should attempt "
"to run in an accelerated fashion either by reducing the "
"coverage or number of tests performed." )]
boolean QuickMode;
[Write, Description (
"Requests the diagnostic software to reduce test coverage "
"to the specified percentage. For example, a hard drive "
"scan test could be asked to run at 50%. The most "
"effective way to accomplish this is for the test "
"software to scan every other track, as opposed to only "
"scanning the first half of a drive. It is assumed that "
"the effectiveness of the test is impacted proportional "
"to the percentage of testing requested. Permissible "
"values for this property range from 0 to 100." ),
Units ( "Percent" ),
MinValue ( 0 ),
MaxValue ( 100 ),
ModelCorrespondence {
"CIM_DiagnosticServiceCapabilities.SupportedServiceModes" }]
uint8 PercentOfTestCoverage;
[Write, Description (
"Array entries contain parameters corresponding to "
"entries in the LoopControl array, limiting the number of "
"times a test should be repeated with a single invocation "
"of a test method by a CIM client." ),
ArrayType ( "Indexed" ),
ModelCorrespondence { "CIM_DiagnosticSetting.LoopControl" }]
string LoopControlParameter[];
[Write, Description (
"LoopControl, used in conjunction with "
"LoopControlParameter, sets one or more loop control "
"mechanisms that limits the number of times a test should "
"be repeated with a single invocation of a test method by "
"a CIM client. There is an array-positional "
"correspondence between LoopControl entries & "
"LoopControlParameter entries. The entries in these "
"coupled arrays of loop controls can be used in a logical "
"OR fashion to achieve the desired loop control. For "
"example, if a client wants to loop a test 1000 times, "
"but quit if a timer runs out, it could set both controls "
"into the LoopControl array as two separate entries in "
"each array. The looping test will terminate when the "
"first of the two ORed conditions are met. \n"
"The descriptions for each loop control are given below: \n"
"Unknown (= 0) \n"
"Other (= 1) : Additional detail may be found in "
"OtherLoopControlDescriptions. \n"
"Continuous (= 2) : The corresponding LoopControl "
"Parameter is ignored and the test will execute "
"continuously. Tests that use this control should also "
"support DiscontinueTest. \n"
"Count(=3) : The corresponding LoopControlParameter is "
"interpreted as a loop count (uint32), indicating the "
"number of times the test should be repeated with a "
"single invocation of a test method by a CIM client. \n"
"Timer (= 4) : The corresponding LoopControlParameter is "
"interpreted as an initial value (uint32) for a test loop "
"timer, given in seconds. The looping is terminated when "
"this timer has lapsed. \n"
"ErrorCount (= 5) : The corresponding LoopControl "
"Parameter is interpreted as an error count (uint32). The "
"loop will continue until the number of errors that have "
"occurred exceeds the ErrorCount. Note: the ErrorCount "
"only refers to hard test errors; it does not include "
"soft errors or warnings." ),
ValueMap { "0", "1", "2", "3", "4", "5" },
Values { "Unknown", "Other", "Continuous", "Count", "Timer",
"ErrorCount" },
ArrayType ( "Indexed" ),
ModelCorrespondence {
"CIM_DiagnosticSetting.LoopControlParameter",
"CIM_DiagnosticSetting.OtherLoopControlDescriptions",
"CIM_DiagnosticServiceCapabilities.SupportedLoopControl" }]
uint16 LoopControl[];
[Deprecated {
"CIM_DiagnosticSetting.OtherLoopControlDescriptions" },
Write, Description (
"This property is deprecated and replaced with an array. \n"
"It provides additional information for LoopControl when "
"its value is set to 1 (\'Other\')." ),
ModelCorrespondence {
"CIM_DiagnosticSetting.LoopControlParameter" }]
string OtherLoopControlDescription;
[Write, Description (
"This property provides additional information for "
"LoopControl when the corresponding value is set to 1 "
"(\'Other\')." ),
ArrayType ( "Indexed" ),
ModelCorrespondence {
"CIM_DiagnosticSetting.LoopControlParameter",
"CIM_DiagnosticSetting.LoopControl" }]
string OtherLoopControlDescriptions[];
[Write, Description (
"The ResultPersistence property is a directive from a "
"diagnostic client to a diagnostic provider. It allows "
"the client to specify to the diagnostic service provider "
"how long to persist the messages that result from "
"execution of a diagnostic service. This applies to "
"instances of DiagnosticResult as well as the preferred "
"use of DiagnosticServiceRecord. The timeout period "
"starts upon completion of the diagnostic action "
"described by the DiagnosticService. \n"
"\n"
"Here is a summary of the choices and behaviors for "
"different ResultPersistence values: \n"
"0 = \"No Persistence\": \n"
"Setting the timer to zero tells the provider not to "
"persist the diagnostic result. The diagnostic "
"information is only available while the diagnostic is "
"executing or at its conclusion. \n"
"Value > 0 and < 0xFFFFFFFF = \"Persist With TimeOut\": \n"
"Setting the ResultPersistenceOption to a integer will "
"cause the DiagnosticResult to be persisted for that "
"number of seconds. At the end of that time, the "
"DiagnosticResult may be deleted by the diagnostic "
"service provider. \n"
"0xFFFFFFFF = \"Persist Forever\": \n"
"By setting the timeout value to the very large value, "
"0xFFFFFFFF, the provider shall persist results forever. "
"In this case, the client MUST bear the responsibility "
"for deleting them." ),
Units ( "Seconds" )]
uint32 ResultPersistence;
[Write, Description (
"The LogOptions property is used to specify the types of "
"data that SHOULD be logged by the diagnostic service. "
"Any number of values may be specified in the array. Note "
"that the default behavior is for nothing to be logged. \n"
"The AMOUNT of data to be logged can be controlled for "
"each value selected by specifying a VerbosityLevel "
"value. Verbosity may not apply to all LogOptions values, "
"in which case the default VerbosityLevel of \"Standard\" "
"SHOULD be used. \n"
"The RecordForLog produced by running a service MUST be "
"tagged with a RecordType that corresponds to one of "
"these log option values. \n"
"Following is a brief description of the available log "
"options: \n"
"* \"Other\" (value = 1): Details are given in the "
"corresponding OtherLogOptionsDescriptions entry. \n"
"* \"Results\" (value = 2): Log the results obtained by "
"running the service. This is the most common value for "
"reporting the service results. \n"
"* \"Subtests\" (value = 3): Log a test summary report "
"upon completion of each subtest and each loop iteration. "
"The summary reports SHOULD state whether the individual "
"subtest or iteration passed or failed and list relevant "
"error codes and respective error counts. \n"
"* \"Actions\" (value = 4): Log corrective action and "
"instructional messages to guide service personnel; for "
"example, a prioritized list of actions to perform in "
"order to isolate a failure or correct a problem. When "
"ordering steps or prioritizing actions, a number should "
"proceed the text; for example, 1) Do this first, 2) Do "
"this next, etc. \n"
"* \"Warnings\" (value = 5): Log warning messages; for "
"example, \'device will be taken off line\', \'test is "
"long-running\' or \'available memory is low\'. The "
"VerbosityLevel value specified for the Warnings option "
"is related to the severity of the warnings logged; for "
"instance, one would specify a high level of verbosity to "
"get all warnings logged, regardless of severity, and a "
"low level of verbosity to have only the most severe "
"warnings logged. \n"
"* \"Status\" (value = 6): Log status messages; for "
"example, state information for the driver, device, or "
"system. \n"
"* \"Device Errors\" (value = 7): Log errors related to "
"the managed element being serviced. \n"
"* \"Service Errors\" (value = 8): Log errors related to "
"the service itself rather than the element being "
"serviced, such as \'Resource Allocaton Failure\'. \n"
"* \"Setting Data\" (value=9): Log the property values of "
"the DiagnosticSetting object used to configure the "
"service. \n"
"* \"Statistics\" (value = 10): Log statistical messages; "
"for example, packets sent per second. \n"
"* \"Hardware Configuration\" (value = 11): Log messages "
"that contain information about the hardware "
"configuration as viewed by the service; for example, "
"vendor, version, FRU identification, and location "
"information. The format and contents of this property is "
"element dependent. Examples are: SCSI ID, LPTx, PCI Slot "
"Number, and Dimm#. \n"
"* \"Software Configuration\" (value = 12): Log messages "
"that contain information about the software environment "
"as viewed by the service; for example, the name and "
"version of all the critical software elements "
"controlling the device under test. Each configuration "
"message SHOULD have the following common format: Element "
"name; element type; manufacturer name; version; for "
"example, \'Miniport driver; SCSI; Intel; Version 1.2\'. \n"
"* \"Reference\" (value = 13): Log the keys of an CIM "
"object of of interest; for example, the element under "
"test, or a data file. \n"
"* \"Debug\" (value = 14): Log debug messages. These "
"messages are vendor specific." ),
ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
"10", "11", "12", "13", "14", "15" },
Values { "Unknown", "Other", "Results", "Subtests",
"Actions", "Warnings", "Status", "Device Errors",
"Service Errors", "Setting Data", "Statistics",
"Hardware Configuration", "Software Configuration",
"References", "Debug", "No Log Options" },
ArrayType ( "Indexed" ),
ModelCorrespondence {
"CIM_DiagnosticSetting.OtherLogOptionsDescriptions",
"CIM_DiagnosticServiceCapabilities.SupportedLogOptions",
"CIM_DiagnosticServiceRecord.RecordType",
"CIM_DiagnosticSetting.VerbosityLevel" }]
uint16 LogOptions[];
[Write, Description (
"Provides additional information regarding the types of "
"test messages that are logged when the property "
"LogOptions includes the value 1 (\"Other\")." ),
ModelCorrespondence { "CIM_DiagnosticSetting.LogOptions" }]
string OtherLogOptionsDescriptions[];
[Write, Description (
"The LogStorage setting property indicates which types of "
"supported storage should be used by the Diagnostic "
"Service for logging of the data specified in LogOptions. \n"
"The values are: \n"
"\"DiagnosticRecordLog\" (Value = 2): Use the "
"DiagnosticRecordLog and DiagnosticRecord classes. \n"
"\"MessageLog\" (Value = 4): Use the MessageLog class and "
"its methods. \n"
"\"File\" (Value = 5): Write data to a file." ),
ValueMap { "0", "1", "2", "3", "4" },
Values { "Unknown", "Other", "DiagnosticRecordLog",
"MessageLog", "File" },
ArrayType ( "Indexed" ),
ModelCorrespondence {
"CIM_DiagnosticSetting.OtherLogStorageDescriptions",
"CIM_DiagnosticServiceCapabilities.SupportedLogStorage" }]
uint16 LogStorage[];
[Write, Description (
"This property provides additional information for "
"LogStorage when the corresponding value is set to 1 "
"(\"Other\")." ),
ArrayType ( "Indexed" ),
ModelCorrespondence { "CIM_DiagnosticSetting.LogStorage" }]
string OtherLogStorageDescriptions[];
[Write, Description (
"A client may want to specify the desired volume or "
"detail logged by a diagnostic service. This property is "
"applied to a corresponding logging option, acting as a "
"qualifier on its description. Three levels of verbosity "
"are defined as follows: \n"
"* \"Minimum\" (value=2): Specified if the least amount "
"of information is desired; for example, Pass or Fail. \n"
"* \"Standard\" (value=3): This is the standard level of "
"messaging provided by the service. It is the form most "
"likely to be used if no verbosity value is specified "
"(default). \n"
"* \"Full\" (value=4): Specified when all information, "
"regardless of size, is desired. \n"
"Note that VerbosityLevel is a subjective property and "
"relates to the degree of detail, not an absolute metric. "
"A client simply specifies its desired level of detail "
"and the provider publishes its data in accordance with "
"this desired level of detail. \n"
"Verbosity may not apply to all LogOptions values, in "
"which case the default VerbosityLevel of \"Standard\" "
"SHOULD be used." ),
ValueMap { "2", "3", "4" },
Values { "Minimum", "Standard", "Full" },
ArrayType ( "Indexed" ),
ModelCorrespondence { "CIM_DiagnosticSetting.LogOptions" }]
uint16 VerbosityLevel[];
[Write, Description (
"This property, along with the locale information in "
"LocalizationCapabilities and DiagnosticServiceRecord, "
"meets the requirement to specify locale for results "
"produced by a diagnostic service. A locale indicates a "
"particular geographical, political, or cultural region. "
"The Locales property of the DiagnosticSetting class is "
"an array of strings whose entries specify a language to "
"be used in the formulation of information requested by "
"or delivered to a client as a result of running a "
"diagnostic service. It is specified by the client as an "
"input parameter to the RunDiagnostic method, by virtue "
"of its inclusion in this Setting class which is a "
"parameter of the method. A single Setting object may "
"specify more than one Locale. In this case, information "
"MUST be returned in each language specified. \n"
"\n"
"Each array entry consists of three sub-strings, "
"separated by underscores: \n"
"- The first sub-string is the language code, as "
"specified in ISO639. \n"
"- The second sub-string is the country code, as "
"specified in ISO3166. \n"
"- The third sub-string is a variant, which is vendor "
"specific. \n"
"For example, US English appears as: \"en_US_WIN\", where "
"the \"WIN\" variant would specify a Windows "
"browser-specific collation (if one exists). Since the "
"variant is not standardized, it is not commonly used and "
"generally is limited to easily recognizable values "
"(\"WIN\", \"UNIX\", \"EURO\", etc.) used in standard "
"environments. The language and country codes are "
"required; the variant may be empty." ),
ModelCorrespondence {
"CIM_LocalizationCapabilities.SupportedOutputLocales" }]
string Locales[];
};