// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.13.0" ), 
    UMLPackagePath ( "CIM::System::Diagnostics" ), 
    Description ( 
       "DiagnosticServiceCapabilities is a class that describes the "
       "capabilities of the diagnostic service. This provides the "
       "means for the diagnostic service to describe its abilities, "
       "limitations, and/or potential for use of various diagnostic "
       "service parameters. For example, what types of settings the "
       "diagnostic service supports." )]
class CIM_DiagnosticServiceCapabilities : CIM_Capabilities {

      [Description ( 
          "The SupportedServiceModes property lists the operational "
          "modes that are supported by the Diagnostic Service. "
          "These modes may correspond to, but are not limited to, "
          "settings that may be applied to a Diagnostic Service." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "0x8000" }, 
       Values { "Unknown", "Other", "PercentOfTestCoverage", 
          "QuickMode", "HaltOnError", "ResultPersistence", 
          "QueryTimeout", "NonDestructive", "No Service Modes" }, 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_DiagnosticServiceCapabilities.OtherSupportedServiceModesDescriptions" }]
   uint16 SupportedServiceModes[];

      [Description ( 
          "Provides additional information for "
          "SupportedServiceModes when the corresponding value is "
          "set to 1 (\"Other\")." ), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_DiagnosticServiceCapabilities.SupportedServiceModes" }]
   string OtherSupportedServiceModesDescriptions[];

      [Description ( 
          "The SupportedLoopControl property lists the loop "
          "controls that are supported by the Diagnostic Service." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "0x8000" }, 
       Values { "Unknown", "Other", "Continuous", "Count", "Timer", 
          "ErrorCount", "No Loop Control" }, 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_DiagnosticSettingData.LoopControl", 
          "CIM_DiagnosticServiceCapabilities.OtherSupportedLoopControlDescriptions" }]
   uint16 SupportedLoopControl[];

      [Description ( 
          "Provides additional information for SupportedLoopControl "
          "when the corresponding value is set to 1 (\"Other\")." ), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_DiagnosticServiceCapabilities.SupportedLoopControl" }]
   string OtherSupportedLoopControlDescriptions[];

      [Description ( 
          "The SupportedLogOptions property lists the log options "
          "that are supported by the Diagnostic Service." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", 
          "10", "11", "12", "13", "14", "0x8000" }, 
       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_DiagnosticSettingData.LogOptions", 
          "CIM_DiagnosticServiceCapabilities.OtherSupportedLogOptionsDescriptions" }]
   uint16 SupportedLogOptions[];

      [Description ( 
          "Provides additional information for SupportedLogOptions "
          "when the corresponding value is set to 1 (\"Other\")." ), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_DiagnosticServiceCapabilities.SupportedLogOptions" }]
   string OtherSupportedLogOptionsDescriptions[];

      [Description ( 
          "The SupportedLogStorage property lists the storage "
          "options for logging that are supported by the Diagnostic "
          "Service. \n"
          "The values are: \n"
          "\"DiagnosticLog\" (Value = 2): Supports use of the "
          "DiagnosticLog class for aggregating DiagnosticRecords. \n"
          "\"MessageLog\" (Value = 3): Supports writing log "
          "information using the methods in the MessageLog class. \n"
          "\"File\" (Value = 4): Supports writing log information "
          "to a file." ), 
       ValueMap { "0", "1", "2", "3", "4", "0x8000" }, 
       Values { "Unknown", "Other", "DiagnosticLog", "MessageLog", 
          "File", "No Log Storage" }, 
       ModelCorrespondence { 
          "CIM_DiagnosticServiceCapabilities.OtherSupportedLogStorageDescriptions", 
          "CIM_DiagnosticSettingData.LogStorage" }]
   uint16 SupportedLogStorage[];

      [Description ( 
          "Provides additional information for SupportedLogStorage "
          "when the corresponding value is set to 1 (\"Other\")." ), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_DiagnosticServiceCapabilities.SupportedLogStorage" }]
   string OtherSupportedLogStorageDescriptions[];

      [Description ( 
          "The SupportedExecutionControls property lists the job "
          "controls that are supported by the Diagnostic Service. "
          "The values are: \n"
          "(Value = 2) is deprecated. Previous versions defined "
          "this as \"Job Creation\" and was intended to indicate "
          "that a ConcreteJob instance will be created to control "
          "the diagnostic job launched by the diagnostic service. "
          "Since Job creation is REQUIRED, this attribute value is "
          "unnecessary and confusing. \n"
          "\"Kill Job\" (Value = 3): publishes that the diagnostic "
          "service implements the "
          "ConcreteJob.RequestStateChange(Kill) method. \n"
          "\"Suspend Job\" (Value = 4): publishes that the "
          "diagnostic service implements the "
          "ConcreteJob.RequestStateChange(Suspend) method. \n"
          "\"Terminate Job\" (Value = 5): publishes that the "
          "diagnostic service implements the "
          "ConcreteJob.RequestStateChange(Terminate) method." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "0x8000" }, 
       Values { "Unknown", "Other", "Reserved", "Kill Job", 
          "Suspend Job", "Terminate Job", "No Execution Controls" }, 
       ModelCorrespondence { 
          "CIM_DiagnosticServiceCapabilities.OtherSupportedExecutionControlsDescriptions" }]
   uint16 SupportedExecutionControls[];

      [Description ( 
          "Provides additional information for "
          "SupportedExecutionControls when the corresponding value "
          "is set (\"Other\")." ), 
       ArrayType ( "Indexed" ), 
       ModelCorrespondence { 
          "CIM_DiagnosticServiceCapabilities.SupportedExecutionControls" }]
   string OtherSupportedExecutionControlsDescriptions[];

      [Deprecated { 
          "CIM_DiagnosticServiceCapabilities.SupportedLogOptions" }, 
       Description ( 
          "This property is being deprecated because the "
          "TestWarningLevel and LogOptions properties serve the "
          "same purpose. \n"
          "Lists the level of warning messages that MAY be logged. "
          "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 { "2", "3", "4", "5" }, 
       Values { "No Warnings", "Missing Resources", 
          "Testing Impacts", "All Warnings" }]
   uint16 SupportedTestWarnings = 3;


};
