// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.8.0" ), 
    UMLPackagePath ( "CIM::Device::Sensors" ), 
    Description ( 
       "An AlarmDevice is a type of Device that emits audible or "
       "visible indications related to a problem situation." )]
class CIM_AlarmDevice : CIM_LogicalDevice {

      [Description ( "Boolean indicating that the Alarm is audible." )]
   boolean AudibleAlarm;

      [Description ( "Boolean indicating that the Alarm is visible." )]
   boolean VisibleAlarm;

      [Description ( 
          "Boolean indicating that the Alarm causes motion of the Device."
           )]
   boolean MotionAlarm;

      [Description ( 
          "Urgency is an enumerated value that indicates the "
          "relative frequency at which the Alarm flashes, vibrates "
          "and/or emits audible tones." ), 
       ValueMap { "0", "1", "2", "3", "4", "5", "6" }, 
       Values { "Unknown", "Other", "Not Supported", 
          "Informational", "Non-Critical", "Critical", 
          "Unrecoverable" }]
   uint16 Urgency;

      [Description ( "The current state of the alarm." ), 
       ValueMap { "0", "1", "2", "3" }, 
       Values { "Unknown", "Off", "Steady", "Alternating" }]
   uint16 AlarmState;

      [Description ( 
          "True indicates that the audio of an AlarmState indicator "
          "has been disabled (i.e. muted). A disabled state here "
          "does not imply that the AlarmState is off." )]
   boolean AudioIndicatorIsDisabled;

      [Description ( 
          "True indicates that the visual of an AlarmState "
          "indicator has been disabled (i.e. dimmed). A disabled "
          "state here does not imply that the AlarmState is off." )]
   boolean VisualIndicatorIsDisabled;

      [Description ( 
          "True indicates that the motion of an AlarmState "
          "indicator has been disabled (i.e. stopped). A disabled "
          "state here does not imply that the AlarmState is off." )]
   boolean MotionIndicatorIsDisabled;


      [Description ( 
          "SetAlarmState is a method for defining the current state "
          "of the Alarm. Its input parameter, RequestedAlarmState, "
          "is specified using the Values list of AlarmDevice\'s "
          "AlarmState property. SetAlarmState returns 0 if the "
          "request is successfully implemented, 1 if the specified "
          "RequestedAlarm State is not supported, and some other "
          "value if any other error occurred. In a subclass, the "
          "set of possible return codes should be specified using a "
          "ValueMap qualifier on the method. The strings to which "
          "the ValueMap contents are \'translated\' should be "
          "specified as a Values array qualifier." )]
   uint32 SetAlarmState(
         [IN, Description ( "The desired state for the alarm." ), 
          ValueMap { "0", "1", "2", "3" }, 
          Values { "Unknown", "Off", "Steady", "Alternating" }]
      uint16 RequestedAlarmState);

      [Description ( 
          "SetAlarmIndicator is a method for enabling or disabling "
          "the indicator of the AlarmState function, without "
          "changing the current AlarmState. It has 3 input "
          "parameters, Audio Indicator, VisualIndicator and "
          "MotionIndicator. For all of the input parameters, a "
          "value of 0 indicates no change to the AlarmState "
          "indicator, 1 indicates Disable, and 2 indicates Enable. "
          "The method returns 0 if the request is successfully "
          "implemented, 1 if the specified request is not "
          "supported, and some other value if any other error "
          "occurred. In a subclass, the set of possible return "
          "codes should be specified using a ValueMap qualifier on "
          "the method. The strings to which the ValueMap contents "
          "are \'translated\' should be specified as a Values array "
          "qualifier." )]
   uint32 SetAlarmIndicator(
         [IN, Description ( "The state for the audio indicator." ), 
          ValueMap { "0", "1", "2" }, 
          Values { "No Change", "Disable", "Enable" }]
      uint16 AudioIndicator, 
         [IN, Description ( "The state for the visual indicator." ), 
          ValueMap { "0", "1", "2" }, 
          Values { "No Change", "Disable", "Enable" }]
      uint16 VisualIndicator, 
         [IN, Description ( "The state for the motion indicator." ), 
          ValueMap { "0", "1", "2" }, 
          Values { "No Change", "Disable", "Enable" }]
      uint16 MotionIndicator);

      [Description ( 
          "SetUrgency is a method for defining the desired urgency "
          "level for the Alarm. Its input parameter, "
          "RequestedUrgency, is specified using the Values list of "
          "AlarmDevice\'s Urgency property. SetUrgency returns 0 if "
          "the request is successfully implemented, 1 if the "
          "specified Urgency level is not supported, and some other "
          "value if any other error occurred. In a subclass, the "
          "set of possible return codes should be specified using a "
          "ValueMap qualifier on the method. The strings to which "
          "the ValueMap contents are \'translated\' should be "
          "specified as a Values array qualifier." )]
   uint32 SetUrgency(
         [IN, Description ( "Desired urgency for the alarm." ), 
          ValueMap { "1", "3", "4", "5", "6" }, 
          Values { "Other", "Informational", "Non-Critical", 
             "Critical", "Unrecoverable" }]
      uint16 RequestedUrgency);

};
