# Class CIM_DiagnosticService
extends CIM_Service

The CIM_DiagnosticService class provides the ability to start a service that functions to participate in a problem determination process. Specific diagnostic services SHOULD be defined by subclassing this class. Examples of a diagnostic service are tests, information retrievers, exercisers, and ports to external executives.

### Table of Contents
Hierarchy
Direct Known Subclasses
Class Qualifiers
Class Properties
Class Methods

## Class Hierarchy

CIM_ManagedElement
|
+--CIM_ManagedSystemElement
|
+--CIM_LogicalElement
|
+--CIM_EnabledLogicalElement
|
+--CIM_Service
|
+--CIM_DiagnosticService

## Direct Known Subclasses

CIM_DiagnosticTest

## Class Qualifiers

Name | Data Type | Value
--- | --- | ---
Abstract | boolean | true
Description | string | The CIM_DiagnosticService class provides the ability to start a service that functions to participate in a problem determination process. Specific diagnostic services SHOULD be defined by subclassing this class. Examples of a diagnostic service are tests, information retrievers, exercisers, and ports to external executives.
UMLPackagePath | string | CIM::System::Diagnostics
Version | string | 2.22.0

## Class Properties

### Inherited Properties

Name | Data Type | Class Origin
--- | --- | ---
Caption | string | CIM_ManagedElement
CommunicationStatus | uint16 | CIM_ManagedSystemElement
CreationClassName | string | CIM_Service
Description | string | CIM_ManagedElement
DetailedStatus | uint16 | CIM_ManagedSystemElement
ElementName | string | CIM_ManagedElement
EnabledDefault | uint16 | CIM_EnabledLogicalElement
EnabledState | uint16 | CIM_EnabledLogicalElement
HealthState | uint16 | CIM_ManagedSystemElement
InstallDate | datetime | CIM_ManagedSystemElement
InstanceID | string | CIM_ManagedElement
Name | string | CIM_Service
OperatingStatus | uint16 | CIM_ManagedSystemElement
OtherEnabledState | string | CIM_EnabledLogicalElement
PrimaryOwnerContact | string | CIM_Service
PrimaryOwnerName | string | CIM_Service
PrimaryStatus | uint16 | CIM_ManagedSystemElement
RequestedState | uint16 | CIM_EnabledLogicalElement
Started | boolean | CIM_Service
StartMode | string | CIM_Service
Status | string | CIM_ManagedSystemElement
SystemCreationClassName | string | CIM_Service
SystemName | string | CIM_Service
TimeOfLastStateChange | datetime | CIM_EnabledLogicalElement
TransitioningToState | uint16 | CIM_EnabledLogicalElement
AvailableRequestedStates | uint16[] | CIM_EnabledLogicalElement
OperationalStatus | uint16[] | CIM_ManagedSystemElement
StatusDescriptions | string[] | CIM_ManagedSystemElement

## Class Methods

### Local Class Methods

#### RunDiagnostic (uint32)

#### Method Qualifiers (RunDiagnostic)

Name | Data Type | Value
--- | --- | ---
Description | string | The RunDiagnostic method executes this test for the specified ManagedSystemElement (defined using the SystemElement input parameter). The capabilities for the diagnostic service indicate where the results from the test job are stored. How the test should execute, i.e. its settings, is defined in a DiagnosticSetting object (or by a subclass of DiagnosticSetting). A reference to a Setting object is specified using the Setting input parameter. If a reference is not passed into the method, then a default DiagnosticSetting SHALL be used. When RunDiagnostic starts execution, the settings, which are time sensitive, SHOULD be evaluated and captured. This is suggested since the DiagnosticSetting object MAY be modified at any time, and therefore the current test settings could be lost. If 0 is returned, the function completed successfully and no ConcreteJob instance is created. If 0x1000 a ConcreteJob will be started.
ValueMap | string | 0, 1, 2, 3, 4, 5, .., 0x1000, .., 0x8000..
Values | string | Job completed with no error, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, DMTF Reserved, Method parameters checked - job started, Method Reserved, Vendor Specific

#### Method Parameters (RunDiagnostic)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
DiagSetting | REF CIM_DiagnosticSetting
Description | string | Specifies the desired settings that SHOULD be applied to the Diagnostic. If null, then the Diagnostic's defaults MAY be used.
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Returns a handle to the resulting Job.
IN | boolean | false
OUT | boolean | true
JobSetting | REF CIM_JobSettingData
Description | string | Specifies the desired settings that SHOULD be applied to the resulting Job. If null and a resulting Job is required (i.e., the Diagnostic is long running), then the test's defaults MAY be used.
IN | boolean | true
ManagedElement | REF CIM_ManagedElement
Description | string | Specifies the element upon which the DiagnosticService SHOULD be run.
IN | boolean | true

#### RunDiagnosticService (uint32)

#### Method Qualifiers (RunDiagnosticService)

Name | Data Type | Value
--- | --- | ---
Description | string | The RunDiagnosticService method is invoked to commence execution of a diagnostic program on a specific managed element. The input parameters specify this managed element and the settings to be applied to the diagnostic and the resultant job. The method returns a reference to the ConcreteJob instance created. Prior to invoking this method, clients examine defaults and appropriate capabilities and create valid DiagnosticSettingData and JobSettingData instances to apply as input parameters. The RunDiagnosticService method SHALL evaluate and capture the attributes of DiagnosticSettingData in an instance of DiagnosticSettingDataRecord for use in post-mortem analysis of diagnostic results. A job SHALL be instantiated as a means for monitoring the diagnostic as it runs and to provide useful accounting and status information once the diagnostic has completed. The "Busy" return code indicates that the method cannot be invoked "at this time". It is not an error condition, but signals that the provider is doing something else and cannot respond.
ValueMap | string | 0, 1, 2, 3, 4, 5, 6, .., 0x1000..0x7FFF, 0x8000..
Values | string | Success, Not Supported, Unknown, Timeout, Failed, Invalid Parameter, Busy, DMTF Reserved, Method Reserved, Vendor Specific

#### Method Parameters (RunDiagnosticService)

Name | Type | Qualifiers
--- | --- | ---
Name | Data Type | Value
DiagnosticSettings | string
Description | string | A string containing an encoding of the DiagnosticSettingData instance to be applied to the diagnostic. If null, the diagnostic's defaults are used.
EmbeddedInstance | string | CIM_DiagnosticSettingData
IN | boolean | true
JobSettings | string
Description | string | A string containing an encoding of the JobSettingData instance to be applied to the resulting job. If null, the job's defaults are used.
EmbeddedInstance | string | CIM_JobSettingData
IN | boolean | true
Job | REF CIM_ConcreteJob
Description | string | Returns a reference to the resulting Job.
IN | boolean | false
OUT | boolean | true
ManagedElement | REF CIM_ManagedElement
Description | string | Specifies the element upon which the DiagnosticService SHOULD be run.
IN | boolean | true

### Inherited Class Methods

Name | Return Type | Class Origin
--- | --- | ---
RequestStateChange | uint32 | CIM_EnabledLogicalElement
StartService | uint32 | CIM_Service
StopService | uint32 | CIM_Service