// Copyright (c) 2005 DMTF.  All rights reserved.
   [Version ( "2.10.0" ), 
    UMLPackagePath ( "CIM::Device::CoolingAndPower" ), 
    Description ( 
       "Capabilities and management of an UninterruptiblePowerSupply. "
       "The properties of the UPS Device indicate when incoming power "
       "is trimmed or boosted, and the aggregated information of the "
       "batteries, generators, and so on that comprise the Device. "
       "These individual components (for example, multiple batteries) "
       "can also be independently modeled and associated with the UPS." )]
class CIM_UninterruptiblePowerSupply : CIM_PowerSupply {

      [Override ( "Range1InputVoltageLow" ), 
       Description ( 
          "If the voltage (in millivolts) drops below the value "
          "specified by Range1InputVoltageLow, the UPS will "
          "compensate by boosting the voltage using its power "
          "sources. A value of 0 indicates that the voltage at "
          "which boosting occurs is \'unknown\'." ), 
       Units ( "MilliVolts" ), 
       PUnit ( "volt * 10^-3" )]
   uint32 Range1InputVoltageLow;

      [Override ( "Range1InputVoltageHigh" ), 
       Description ( 
          "If the voltage (in millivolts) rises above the value "
          "specified by Range1InputVoltageHigh, the UPS will "
          "compensate by trimming the voltage. A value of 0 "
          "indicates that the voltage at which trimming occurs is "
          "\'unknown\'." ), 
       Units ( "MilliVolts" ), 
       PUnit ( "volt * 10^-3" )]
   uint32 Range1InputVoltageHigh;

      [Override ( "Range2InputVoltageLow" ), 
       Description ( 
          "If the voltage (in millivolts) drops below the value "
          "specified by Range2InputVoltageLow, the UPS will "
          "compensate by boosting the voltage using its power "
          "sources. A value of 0 indicates that the voltage at "
          "which boosting occurs is \'unknown\'." ), 
       Units ( "MilliVolts" ), 
       PUnit ( "volt * 10^-3" )]
   uint32 Range2InputVoltageLow;

      [Override ( "Range2InputVoltageHigh" ), 
       Description ( 
          "If the voltage (in millivolts) rises above the value "
          "specified by Range2InputVoltageHigh, the UPS will "
          "compensate by trimming the voltage. A value of 0 "
          "indicates that the voltage at which trimming occurs is "
          "\'unknown\'." ), 
       Units ( "MilliVolts" ), 
       PUnit ( "volt * 10^-3" )]
   uint32 Range2InputVoltageHigh;

      [Description ( 
          "The indication of the capacity that remains in the UPS "
          "batteries, generator, and so on. A value of \"Normal\" "
          "(2) indicates that the remaining estimated minutes of "
          "run-time are greater than the \'low power\' state "
          "defined for the UPS (typically two minutes). A value of "
          "\"Low\" (3) indicates that the remaining estimated "
          "minutes of run-time are less than or equal to the "
          "defined \'low power\' state of the device. A value of "
          "\"Depleted\" (4) indicates that the UPS will be unable "
          "to sustain the present load when and if the utility "
          "power is lost (including the possibility that the "
          "utility power is currently absent)." ), 
       ValueMap { "1", "2", "3", "4" }, 
       Values { "Unknown", "Normal", "Low", "Depleted" }, 
       MappingStrings { "MIF.DMTF|UPS Battery|001.1" }]
   uint16 RemainingCapacityStatus;

      [Description ( 
          "TimeOnBackup indicates the elapsed time in seconds since "
          "the UPS last switched to battery power, generator, or so "
          "on or the time since the UPS was last restarted, "
          "whichever is less. 0 is returned if the UPS is \'on "
          "line\'." ), 
       Units ( "Seconds" ), 
       MappingStrings { "MIF.DMTF|UPS Battery|001.2" }, 
       PUnit ( "second" )]
   uint32 TimeOnBackup;

      [Description ( 
          "EstimatedRunTime is an estimate in minutes of the time "
          "that depletion of the battery, generator, or other "
          "device, will occur under the present load conditions if "
          "the utility power is off or is lost and remains off." ), 
       Units ( "Minutes" ), 
       MappingStrings { "MIF.DMTF|UPS Battery|001.3" }, 
       PUnit ( "minute" )]
   uint32 EstimatedRunTime;

      [Description ( 
          "An estimate of the percentage of full charge remaining "
          "for a UPS (that uses battery technology)." ), 
       Units ( "Percent" ), 
       Gauge, MappingStrings { "MIF.DMTF|UPS Battery|001.4" }, 
       PUnit ( "percent" )]
   uint16 EstimatedChargeRemaining;


};
