--BESTPOWER-MIB { iso(1) org(3) dod(6) internet(1) private(4)
--      enterprises(1) bestpower(2947) }

--Last Modification 03/23/00 by Steve Van Duser

--Contributing Authors:  Steve Van Duser BEST POWER
--                       Jamie Krueger   BEST POWER
--                       Brian Young     BEST POWER
--                       RFC1628 model for a UPS MIB

BESTPOWER-MIB DEFINITIONS ::= BEGIN

IMPORTS
        enterprises, IpAddress, Gauge
                FROM RFC1155-SMI
        DisplayString
                FROM RFC1213-MIB
        OBJECT-TYPE
                FROM RFC-1212
        TRAP-TYPE
                FROM RFC-1215;
--textual conventions
        NonNegativeInteger      ::= INTEGER
        PositiveInteger         ::= INTEGER
--      TimeStamp               ::= TimeTicks

        bestPower   OBJECT IDENTIFIER ::=  { enterprises 2947 }
        bestLink     OBJECT IDENTIFIER ::=  { bestPower 1 }

        upsIdent    OBJECT IDENTIFIER ::=  { bestLink 1 }
        upsBattery  OBJECT IDENTIFIER ::=  { bestLink 2 }
        upsInput    OBJECT IDENTIFIER ::=  { bestLink 3 }
        upsOutput   OBJECT IDENTIFIER ::=  { bestLink 4 }
        upsConfig   OBJECT IDENTIFIER ::=  { bestLink 5 }
        upsControl  OBJECT IDENTIFIER ::=  { bestLink 6 }
        upsTest     OBJECT IDENTIFIER ::=  { bestLink 7 }
        upsAlarm    OBJECT IDENTIFIER ::=  { bestLink 8 }
        upsBypass   OBJECT IDENTIFIER ::=  { bestLink 9 }



-- Ident Group

upsIdentUpsName OBJECT-TYPE
        SYNTAX DisplayString (SIZE (0..19))
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "An ID string identifying the Family of UPS."
        ::= { upsIdent 1 }

upsIdentModel OBJECT-TYPE
        SYNTAX DisplayString (SIZE (0..29))
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS model name (example: 'FE500VA')."
        ::= { upsIdent 2 }

upsIdentVARating OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The capacity rating of the UPS expressed in VoltAmperes(VA)."
        ::= { upsIdent 3 }

upsIdentUpsType OBJECT-TYPE
        SYNTAX INTEGER {
                standby(1),
                online(2),
                                offline(3),
                                lineInterative(4),
                                3PhaseDC(5),
                                3PhaseLI(6),
                                hybrid(7)
                }
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "Type of UPS."
        ::= { upsIdent 4 }

upsIdentUpsSerialNumber OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "A unique identification number provided by the factory."
        ::= { upsIdent 5 }


upsIdentFirmwareRevision OBJECT-TYPE
        SYNTAX DisplayString (SIZE(0..19))
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The firmware revision of the UPS."
        ::= { upsIdent 7 }

upsIdentInstallationDate       OBJECT-TYPE
        SYNTAX DisplayString (SIZE(6..10))
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The date when the UPS was installed in mm/dd/yyyy format."
        ::= { upsIdent 8 }

-- the upsBattery group

upsBatteryStatus OBJECT-TYPE
        SYNTAX INTEGER  {
               normal(1),
               upsOnBattery(2)
               }
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The status of the inverter ."
        ::= { upsBattery 1 }

upsBatteryTimeOnBattery OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The elapsed time in seconds since the UPS has switched to battery power."
        ::= { upsBattery 2 }

upsBatteryRuntimeRemaining OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The remaining time in minutes that the UPS will be able to run on battery power."
        ::= { upsBattery 3 }

upsBatteryVoltage OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS battery voltage expressed in 1/10 VDC."
        ::= { upsBattery 4 }

upsBatteryCurrent OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The battery current expressed in 1/10 ADC."
        ::= { upsBattery 5 }

upsBatteryTemperature OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The internal UPS temperature expressed in 1/10 degree C."
        ::= { upsBattery 6 }

upsBatteryLastReplaceDate OBJECT-TYPE
        SYNTAX DisplayString (SIZE(6..10))
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The date when the UPS system's batteries were last replaced
                in mm/dd/yyyy format. When the UPS batteries are replaced,
                this value should be reset by the administrator."
        ::= { upsBattery 7 }



upsBatteryCellVoltage OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS battery cell voltage expressed in 1/100 VDC."
        ::= { upsBattery 8 }

upsBatteryPositiveVoltage OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS battery voltage measured from the most postive point in the battery
                string to the common reference point. The value is expressed in 1/10 VDC."
        ::= { upsBattery 9 }


upsBatteryNegativeVoltage OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS battery voltage measured from the most negative point in the battery
                string to the common reference point. The value is expressed in 1/10 VDC."
        ::= { upsBattery 10 }

        -- the upsInput group


--upsInputPhase OBJECT-TYPE
--        SYNTAX INTEGER
--        ACCESS read-only
--        STATUS mandatory
--        DESCRIPTION
--                "The AC input phase."
--        ::= { upsInput 1 }



upsInputFrequency OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The utility line frequency in 1/10 Hz."
        ::= { upsInput 2 }

upsInputVoltage OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The utility line voltage in 1/10 VAC."
        ::= { upsInput 3 }

upsInputCurrent OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The utility line current in 1/10 Ampere AC."
        ::= { upsInput 4 }



upsInput3PhaseCurrent OBJECT IDENTIFIER ::= { upsInput  6 }


upsInputCurrentL1 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present input current on L1."
    ::= { upsInput3PhaseCurrent  1 }

upsInputCurrentL2 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present input current on L2."
    ::= { upsInput3PhaseCurrent  2 }

upsInputCurrentL3 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present input current on L3."
    ::= { upsInput3PhaseCurrent  3 }


upsInput3PhaseVoltageLtoN OBJECT IDENTIFIER ::= { upsInput  7 }


upsInputVoltageL1toN OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present input voltage from L1 to Neutral."
    ::= { upsInput3PhaseVoltageLtoN  1 }

upsInputVoltageL2toN OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present input voltage from L2 to Neutral."
    ::= { upsInput3PhaseVoltageLtoN  2 }

upsInputVoltageL3toN OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present input voltage from L3 to Neutral."
    ::= { upsInput3PhaseVoltageLtoN  3 }



upsInput3PhaseVoltageLtoL OBJECT IDENTIFIER ::= { upsInput  8 }


upsInputVoltageL1toL2 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present input voltage from L1 to L2."
    ::= { upsInput3PhaseVoltageLtoL  1 }

upsInputVoltageL2toL3 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present input voltage from L2 to L3."
    ::= { upsInput3PhaseVoltageLtoL  2 }

upsInputVoltageL3toL1 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present input voltage from L3 to L1."
    ::= { upsInput3PhaseVoltageLtoL  3 }



-- the upsOutput group



--upsOutputStatus OBJECT-TYPE
--        SYNTAX INTEGER  {
--               unknown(1),
--               onLine(2),
--               onBattery(3),
--               onBypass(4)
--               }
--        ACCESS read-only
--        STATUS mandatory
--        DESCRIPTION
--                "The current state of the UPS.  If the UPS is unable
--                to determine its state, this variable is set
--                to unknown(1)."
--        ::= { upsOutput 1 }

--upsOutputPhase OBJECT-TYPE
--        SYNTAX INTEGER
--        ACCESS read-only
--        STATUS mandatory
--        DESCRIPTION
--                "The output phase."
--        ::= { upsOutput 2 }


upsOutputFrequency OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The output frequency of the UPS expressed in 1/10 Hz."
        ::= { upsOutput 3 }

upsOutputVoltage OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The output voltage of the UPS expressed in 1/10 VAC."
        ::= { upsOutput 4 }

upsOutputCurrent OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The output current of the UPS expressed in 1/10 AC Amperes."
        ::= { upsOutput 5 }

upsOutputTruePower OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The true output power of the UPS expressed in 1/100 Watts."
        ::= { upsOutput 6 }

upsOutputApparentPower OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The apparent output power of the UPS expressed in 1/100 VoltAmperes(VA)."
        ::= { upsOutput 7 }

upsOutputPowerFactor OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The output powerfactor of the UPS expressed in +/- 1/100 units deviating
                 from 1."
        ::= { upsOutput 8 }

upsOutputPercentFullLoad OBJECT-TYPE
        SYNTAX INTEGER     -- UNITS percent
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The percentage of the total UPS power capacity being used expressed
                 in % of 100."
        ::= { upsOutput 9 }



upsOutput3PhaseVoltageLtoN OBJECT IDENTIFIER ::= { upsOutput  10 }


upsOutputVoltageL1toN OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output voltage from L1 to Neutral."
    ::= { upsOutput3PhaseVoltageLtoN  1 }

upsOutputVoltageL2toN OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output voltage from L2 to Neutral."
    ::= { upsOutput3PhaseVoltageLtoN  2 }

upsOutputVoltageL3toN OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output voltage from L3 to Neutral."
    ::= { upsOutput3PhaseVoltageLtoN  3 }



upsOutput3PhaseVoltageLtoL OBJECT IDENTIFIER ::= { upsOutput  11 }


upsOutputVoltageL1toL2 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output voltage from L1 to L2."
    ::= { upsOutput3PhaseVoltageLtoL  1 }

upsOutputVoltageL2toL3 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output voltage from L2 to L3."
    ::= { upsOutput3PhaseVoltageLtoL  2 }

upsOutputVoltageL3toL1 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output voltage from L3 to L1."
    ::= { upsOutput3PhaseVoltageLtoL  3 }


upsOutput3PhaseCurrent OBJECT IDENTIFIER ::= { upsOutput  12 }


upsOutputCurrentL1 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output current on L1."
    ::= { upsOutput3PhaseCurrent  1 }

upsOutputCurrentL2 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output current on L2."
    ::= { upsOutput3PhaseCurrent  2 }

upsOutputCurrentL3 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output current on L3."
    ::= { upsOutput3PhaseCurrent  3 }


upsOutput3PhaseApparentPower OBJECT IDENTIFIER ::= { upsOutput  13 }


upsOutputApparentPowerL1 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output ApparentPower on L1."
    ::= { upsOutput3PhaseApparentPower  1 }

upsOutputApparentPowerL2 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output ApparentPower on L2."
    ::= { upsOutput3PhaseApparentPower  2 }

upsOutputApparentPowerL3 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output ApparentPower on L3."
    ::= { upsOutput3PhaseApparentPower  3 }


upsOutput3PhaseTruePower OBJECT IDENTIFIER ::= { upsOutput  14 }


upsOutputTruePowerL1 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output TruePower on L1."
    ::= { upsOutput3PhaseTruePower  1 }

upsOutputTruePowerL2 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output TruePower on L2."
    ::= { upsOutput3PhaseTruePower  2 }

upsOutputTruePowerL3 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output TruePower on L3."
    ::= { upsOutput3PhaseTruePower  3 }


upsOutput3PhasePowerFactor OBJECT IDENTIFIER ::= { upsOutput  15 }


upsOutputPowerFactorL1 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output PowerFactor on L1."
    ::= { upsOutput3PhasePowerFactor  1 }

upsOutputPowerFactorL2 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output PowerFactor on L2."
    ::= { upsOutput3PhasePowerFactor  2 }

upsOutputPowerFactorL3 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output PowerFactor on L3."
    ::= { upsOutput3PhasePowerFactor  3 }



upsOutput3PhasePercentLoad OBJECT IDENTIFIER ::= { upsOutput  16 }


upsOutputPercentLoadL1 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output PercentLoad on L1."
    ::= { upsOutput3PhasePercentLoad  1 }

upsOutputPercentLoadL2 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output PercentLoad on L2."
    ::= { upsOutput3PhasePercentLoad  2 }

upsOutputPercentLoadL3 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Output PercentLoad on L3."
    ::= { upsOutput3PhasePercentLoad  3 }



-- the upsBypass group

upsBypassStatus OBJECT-TYPE
        SYNTAX INTEGER  {
               normal(1),
               upsOnBypass(2)
               }
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The status of the bypass mode."
        ::= { upsBypass 1 }


upsBypass3PhaseVoltageLtoN OBJECT IDENTIFIER ::= { upsBypass  2 }


upsBypassVoltageL1toN OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Bypass voltage from L1 to Neutral."
    ::= { upsBypass3PhaseVoltageLtoN  1 }

upsBypassVoltageL2toN OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Bypass voltage from L2 to Neutral."
    ::= { upsBypass3PhaseVoltageLtoN  2 }

upsBypassVoltageL3toN OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Bypass voltage from L3 to Neutral."
    ::= { upsBypass3PhaseVoltageLtoN  3 }



upsBypass3PhaseVoltageLtoL OBJECT IDENTIFIER ::= { upsBypass  3 }


upsBypassVoltageL1toL2 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Bypass voltage from L1 to L2."
    ::= { upsBypass3PhaseVoltageLtoL  1 }

upsBypassVoltageL2toL3 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Bypass voltage from L2 to L3."
    ::= { upsBypass3PhaseVoltageLtoL  2 }

upsBypassVoltageL3toL1 OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
           "The magnitude of the present Bypass voltage from L3 to L1."
    ::= { upsBypass3PhaseVoltageLtoL  3 }






-- the upsConfig group



--upsConfigLowRuntimeSetpoint OBJECT-TYPE
--       SYNTAX INTEGER
--       ACCESS read-write
--       STATUS mandatory
--       DESCRIPTION
--              "This setpoint controls when the UPS will initiate a Low Runtime
--               Alarm."
--      ::= { upsConfig 1 }

-- upsConfigDelayBeforeRestart  OBJECT-TYPE
--         SYNTAX INTEGER
--         ACCESS read-write
--         STATUS mandatory
--         DESCRIPTION
--                 "The delay in seconds after utility line power returns
--                 before the UPS will turn on.  This value is used in
--                 conjunction with TurnUPSOff, RebootUPS, and
--                 the Scheduled Shutdown objects."
--         ::= { upsConfig 2 }



upsConfigDelayBeforeShutdown  OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The delay in seconds that the UPS waits before executing an off
                command upon request of an external device."
        ::= { upsConfig 3 }


upsConfigAutoRestart OBJECT-TYPE
        SYNTAX INTEGER  {
               yes(1),
               no(2)
               }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The status of the Auto Restart mode."
        ::= { upsConfig 11 }


upsConfigShutdownUPSAfterOSShdn OBJECT-TYPE
        SYNTAX INTEGER  {
               yes(1),
               no(2)
               }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "Setting this value to 1, enables the UPS to be shutdown after the
                registered clients operating systems have shutdown."
        ::= { upsConfig 14 }


upsConfigACFailEventActions       OBJECT IDENTIFIER ::=  { upsConfig 12 }

upsConfigDelayBeforeFirstWarningMessage OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The amount of time to delay in seconds before sending the first AC Fail message."
        ::= { upsConfigACFailEventActions 1 }


upsConfigWarningInterval  OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The amount of time to delay in seconds between sending the additional AC Fail messages."
        ::= { upsConfigACFailEventActions 2 }


upsConfigClientOperatingSystemShutdown  OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "Determines whether or not to initiate a shutdown of all registered clients based on the
                AC Fail event with duration."
        ::= { upsConfigACFailEventActions 3 }


upsConfigDelayBeforeClientShutdown  OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                " The time allowed in seconds during an AC Fail condition before shutting
                down of all registered clients."
        ::= { upsConfigACFailEventActions 4 }


upsConfigLowBatteryEventActions       OBJECT IDENTIFIER ::=  { upsConfig 13 }

upsConfigClientOsShutdown  OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "Determines whether or not to initiate a shutdown of all registered clients based on the
                Low Battery condition."
        ::= { upsConfigLowBatteryEventActions 1 }






upsConfigTestScheduleTable OBJECT-TYPE
        SYNTAX SEQUENCE OF UpsConfigTestScheduleEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
                "The table to schedule ups battery tests."
        ::= { upsConfig 4 }

upsConfigTestScheduleEntry OBJECT-TYPE
        SYNTAX UpsConfigTestScheduleEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
                "The entries for each day."
        INDEX  { upsConfigTestScheduleIndex }
        ::= { upsConfigTestScheduleTable 1 }

UpsConfigTestScheduleEntry ::= SEQUENCE {
                upsConfigTestScheduleIndex
                        INTEGER,
                upsConfigTestScheduleDay
                        INTEGER,
                upsConfigTestScheduleTime
                        DisplayString
               }

upsConfigTestScheduleIndex OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The index of scheduled events."
        ::= { upsConfigTestScheduleEntry 1 }

upsConfigTestScheduleDay    OBJECT-TYPE
        SYNTAX  INTEGER {
                sunday(1),
                monday(2),
                tuesday(3),
                wednesday(4),
                thursday(5),
                friday(6),
                saturday(7),
                                none(8)
                }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The weekday on which the UPS should shut down."
        ::= { upsConfigTestScheduleEntry 2 }

upsConfigTestScheduleTime OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
         "The time that the process of shutting down the UPS will be initiated"
        ::= { upsConfigTestScheduleEntry 3 }




upsConfigShutdownScheduleTable OBJECT-TYPE
        SYNTAX SEQUENCE OF UpsConfigShutdownScheduleEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
                "The table to schedule shutting down the ups."
        ::= { upsConfig 5 }

upsConfigShutdownScheduleEntry OBJECT-TYPE
        SYNTAX UpsConfigShutdownScheduleEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
                "The entries for each day."
        INDEX  { upsConfigShutdownScheduleIndex }
        ::= { upsConfigShutdownScheduleTable 1 }

UpsConfigShutdownScheduleEntry ::= SEQUENCE {
                upsConfigShutdownScheduleIndex
                        INTEGER,
                upsConfigScheduleShutdownDay
                        INTEGER,
                upsConfigScheduleShutdownTime
                        DisplayString,
                upsConfigScheduleRestartDay
                        INTEGER,
                upsConfigScheduleRestartTime
                        DisplayString
        }

upsConfigShutdownScheduleIndex OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The index of scheduled events."
        ::= { upsConfigShutdownScheduleEntry 1 }

upsConfigScheduleShutdownDay    OBJECT-TYPE
        SYNTAX  INTEGER {
                sunday(1),
                monday(2),
                tuesday(3),
                wednesday(4),
                thursday(5),
                friday(6),
                saturday(7),
                                none(8)
                }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The weekday on which the UPS should shut down."
        ::= { upsConfigShutdownScheduleEntry 2 }

upsConfigScheduleShutdownTime OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
         "The time that the process of shutting down the UPS will be initiated"
        ::= { upsConfigShutdownScheduleEntry 3 }

upsConfigScheduleRestartDay     OBJECT-TYPE
        SYNTAX  INTEGER {
                sunday(1),
                monday(2),
                tuesday(3),
                wednesday(4),
                thursday(5),
                friday(6),
                saturday(7),
                none(8)
                }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The weekday on which the UPS should restart"

        ::= { upsConfigShutdownScheduleEntry 4 }

upsConfigScheduleRestartTime OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The time the UPS will restart in hh:mm:ss format."
        ::= { upsConfigShutdownScheduleEntry 5 }



upsConfigbestLink       OBJECT IDENTIFIER ::=  { upsConfig 8 }

bestLinkHistoryLogFrequency OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The frequency of updating the history log in minutes."
        ::= { upsConfigbestLink 1 }

bestLinkRefreshFrequency OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The frequency of saving configuration,history and event log data
                in non-volatile memory. If the value is set to 0, then saving data
                is disabled."
        ::= { upsConfigbestLink 2 }

bestLinkNetId    OBJECT-TYPE
        SYNTAX IpAddress
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The IP address of the device. Setting this parameter causes BestLink to reboot."
        ::= { upsConfigbestLink 3 }

bestLinkGateway OBJECT-TYPE
        SYNTAX IpAddress
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The gateway address for the network BestLink is connected to."
        ::= { upsConfigbestLink 4 }

bestLinkNetMask OBJECT-TYPE
        SYNTAX IpAddress
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The net mask of the device."
        ::= { upsConfigbestLink 5 }

bestLinkSysDate OBJECT-TYPE
        SYNTAX DisplayString (SIZE(6..10))
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
        "The system date of the device. The date is in mm/dd/yyyy format.
                The range of system date is from 1/1/1980 to 12/31/2037."
        ::= { upsConfigbestLink 6 }

bestLinkSysTime OBJECT-TYPE
        SYNTAX DisplayString (SIZE(5..8))
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The system time of the device. The time is in hh:mm:ss format."
        ::= { upsConfigbestLink 7 }

bestLinkTftpFileName     OBJECT-TYPE
        SYNTAX DisplayString (SIZE(0..59))
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The tftp file name that contains the software upgrade image."
        ::= { upsConfigbestLink 8 }

bestLinkTftpHost OBJECT-TYPE
        SYNTAX IpAddress
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The tftp host IP address from where to get the image."
        ::= { upsConfigbestLink 9 }

bestLinkFlashEEPROM      OBJECT-TYPE
        SYNTAX INTEGER {
                no(1),
                yes(2)
                }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "Saves the history log, eventlog, and configuration data to non-volatile
                 memory."
        ::= { upsConfigbestLink 10 }

bestLinkPrimaryTimeServer        OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The primary time server is responsible for sending the
        correct time to the UPS."
        ::= { upsConfigbestLink 11 }

bestLinkSecondaryTimeServer      OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
        "The secondary time server responsible for sending the
        correct time to the UPS."
        ::=     { upsConfigbestLink 12 }

bestLinkSoftwareVersion  OBJECT-TYPE
        SYNTAX DisplayString
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
        "The version of BestLink software."
    ::= { upsConfigbestLink 13 }

bestLinkMIBVersion  OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
        "The version of MIB implemented in SNMP/WEB Card software."
    ::= { upsConfigbestLink 14 }

bestLinkDHCPControl  OBJECT-TYPE
        SYNTAX INTEGER {
               enabled(1),
               disabled(2)
               }
        ACCESS  read-write
        STATUS mandatory
        DESCRIPTION
        "Enable/Disable DHCP function of SNMP/WEB Card."
    ::= { upsConfigbestLink 15 }

bestLinkTelnetControl  OBJECT-TYPE
        SYNTAX INTEGER {
               enabled(1),
               disabled(2)
               }
        ACCESS  read-write
        STATUS mandatory
        DESCRIPTION
        "Enable/Disable Telnet function of SNMP/WEB Card."
    ::= { upsConfigbestLink 16 }

bestLinkTftpControl  OBJECT-TYPE
        SYNTAX INTEGER {
               enabled(1),
               disabled(2)
               }
        ACCESS  read-write
        STATUS mandatory
        DESCRIPTION
        "Enable/Disable TFTP function of SNMP/WEB Card."
    ::= { upsConfigbestLink 17 }

bestLinkResetToDefault  OBJECT-TYPE
        SYNTAX INTEGER {
               reset(1),
               nothing(2)
               }
        ACCESS  read-write
        STATUS mandatory
        DESCRIPTION
        "Reset all parameters of SNMP/WEB Card to default setting."
    ::= { upsConfigbestLink 18 }

bestLinkRestartAgent  OBJECT-TYPE
        SYNTAX INTEGER {
               restart(1),
               nothing(2)
               }
        ACCESS  read-write
        STATUS mandatory
        DESCRIPTION
        "Restart of SNMP/WEB Card."
    ::= { upsConfigbestLink 19 }

upsConfigTrapsReceivers OBJECT IDENTIFIER ::= { upsConfig 9 }

upsConfigTrapsReceiversTable OBJECT-TYPE
        SYNTAX SEQUENCE OF UpsConfigTrapsReceiversEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
                "A list of managers to send traps to."
        ::= { upsConfigTrapsReceivers 1 }

upsConfigTrapsReceiversEntry OBJECT-TYPE
        SYNTAX UpsConfigTrapsReceiversEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
                "The managers to send traps to."
        INDEX  { trapsIndex}
        ::= { upsConfigTrapsReceiversTable 1 }

UpsConfigTrapsReceiversEntry ::= SEQUENCE {
                trapsIndex INTEGER,
                trapsReceiverAddr IpAddress,
                receiverCommunityString DisplayString,
                severityLevel INTEGER,
                receiverAccept INTEGER
                }

trapsIndex OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The index to a trap receiver entry."
        ::= { upsConfigTrapsReceiversEntry 1 }

trapsReceiverAddr OBJECT-TYPE
        SYNTAX IpAddress
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The IP address of the manager to send a trap to."
        ::= { upsConfigTrapsReceiversEntry 2 }

receiverCommunityString OBJECT-TYPE
        SYNTAX DisplayString (SIZE(0..19))
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The community name to use in the trap when
                 sent to the manager."
        ::= { upsConfigTrapsReceiversEntry 3 }

severityLevel OBJECT-TYPE
        SYNTAX INTEGER {
               information(1),
               warning(2),
               severe(3)
               }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "The severity threshold of traps to send to the manager.
                 Traps are labeled by severity as informational(1), warning(2),
                 severe(3).  Only traps of equal or greater severity than
                 this value are sent to the manager."
        ::= { upsConfigTrapsReceiversEntry 4 }

receiverAccept OBJECT-TYPE
        SYNTAX INTEGER   {
               yes (1),
               no (2)
               }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "An entry will become active if yes, otherwise it will be
                 disabled."
        ::= { upsConfigTrapsReceiversEntry 5 }

upsConfigRegisteredShutdownClients OBJECT IDENTIFIER ::= { upsConfig 10 }

upsRegisteredShutdownClientsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF UpsRegisteredShutdownClientsEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
                "A list of registered shutdown client table entries.
                 The table contains zero, one, or many rows at any moment,
                 depending upon the number of Netwatch clients registered
                 with BestLink"
        ::= { upsConfigRegisteredShutdownClients 1 }

upsRegisteredShutdownClientsEntry OBJECT-TYPE
        SYNTAX UpsRegisteredShutdownClientsEntry
        ACCESS not-accessible
        STATUS mandatory
        DESCRIPTION
                "An entry containing information applicable to a
                particular registered shutdown client."
        INDEX { upsRegisteredShutdownClientsIndex }
        ::= { upsRegisteredShutdownClientsTable  1 }

UpsRegisteredShutdownClientsEntry ::= SEQUENCE {
        upsRegisteredShutdownClientsIndex PositiveInteger,
        upsRegisteredShutdownClientsIPAddress IpAddress
        }

upsRegisteredShutdownClientsIndex OBJECT-TYPE
        SYNTAX PositiveInteger
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
        "An index of alarm entries in the RegisteredShutdownClientsTable."
        ::= { upsRegisteredShutdownClientsEntry  1 }

upsRegisteredShutdownClientsIPAddress OBJECT-TYPE
        SYNTAX IpAddress
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
        "The IP Address of the registered shutdown client"
        ::= { upsRegisteredShutdownClientsEntry  2 }

upsRegisteredShutdownClientsTotalNumberOf OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
        "The total number of registered shutdown clients."
        ::=  { upsConfigRegisteredShutdownClients 2 }







-- the upsControl group

upsControlTurnOffUPS OBJECT-TYPE
        SYNTAX INTEGER {
                cancelUpsOff(1),
                upsOff(2)
                }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "Setting this variable to UpsOff(2) causes the UPS to shut off.
                When the UPS is in the off state, the UPS will remain off until
                the ON/OFF switch is manually toggled.

                Setting this variable to cancelUpsOff(1) allows for a method to cancel
                the upsOff(2) command to the UPS that is still pending, or will make
                an attempt to restart a UPS that has been shutdown, provided that
                BestLink is powered by some other means.

                Setting this variable to rebootUps(3) causes the UPS to shut off
                and turn back on.

                Setting this variable to cancelrebootUps(4) allows for a method to
                cancel the rebootUps(3) command to the UPS that is still pending,
                or will make an attempt to restart a UPS that has been shutdown,
                provided that BestLink is powered by some other means."
        ::= { upsControl 1 }

--upsControlModeOfOperation OBJECT-TYPE
--      SYNTAX INTEGER  {
--             off(1),
--             auto(2),
--             lineCondition(3),
--             inverter(4),
--             bypass(5)
--             }
--      ACCESS read-write
--      STATUS mandatory
--      DESCRIPTION
--              "Setting this variable forces the UPS into a new operating mode."
--      ::= { upsControl 2 }

upsControlActivateUpsScheduling OBJECT-TYPE
        SYNTAX INTEGER  {
               off(1),
               on(2)
               }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "Setting this variable to On(2) causes the
                UPS to activate the scheduling parameters that have been previously
                configured within the upsConfigDailyShutdownScheduleTable and the
                upsConfigWeeklyShutdownScheduleTable. Setting this variable to Off(1)
                suspends all currently configured schedules."
        ::= { upsControl 4 }


upsControlEnableGeneratorSensitivity OBJECT-TYPE
        SYNTAX INTEGER  {
               auto(1),
                           g1(2),
               g2(3),
               g3(4),
               g4(5),
               disable(6)
               }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "Setting this value to a value other than (disable) begins to increase the UPS ability
                to reject poor line sources for example from a poorly regulated AC generator.
                The greater the value the greater the tolerance to allow poor line to be used to power the UPS.
                This control is used to prevent the UPS from using its batteries to create output power and
                allow an AC generator to supply power to the UPS."
         ::= { upsControl 5 }



-- the upsTest group

upsManualTests OBJECT-TYPE
        SYNTAX INTEGER  {
               noTestInitiated(1),
               initiateBatteryTest(5),
               abortBatteryTest(9)
               }
        ACCESS read-write
        STATUS mandatory
        DESCRIPTION
                "Setting this variable to any value other than (1) causes the UPS
                to perform a manual test or abort a particular test in progress."
        ::= { upsTest 1 }

-- the upsAlarm group

upsAlarmsPresent OBJECT-TYPE
        SYNTAX  Gauge
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The present number of active alarm conditions."
        ::= { upsAlarm  1 }

upsLastKnownAlarm OBJECT-TYPE
        SYNTAX INTEGER {
               onBattery(1),
               lowRuntime(2),
               nearLowBattery(3),
               lowBattery(4),
               highBattery(5),
               checkBattery(6),
               replaceBattery(7),
               checkInverter(8),
               batteriesDisconnected(9),
               outputOverload(10),
               lowAcOut(11),
               circuitBreakerWarning(12),
               circuitBreakerShdn(13),
               bypassOn(14),
               autoBypass(15),
               siteWiringFault(16),
               checkFan(17),
               highAmbTemp(18),
               highHSTemp(19),
               highXFMRTemp(20),
               highPFMTemp(21),
               probeMissing(22),
               checkPowerSupply(23),
               tapRegulator(24),
               relayFailure(25),
               checkFuse(26),
               checkMOV(27),
               memoryError(28),
               callService(29),
               upsFailed(30),
               userTest(31),
               testInProgress(32),
               diagnosticTestFailed(33),
               ePO(34),
               upsOff(35),
               communicationsLost(36),
                           noAlarm(37)
               }
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "A unique identifier for an alarm condition.  This
                value must remain constant. Value 'noAlarm(37)'
                will be returned if no Alarm has occured till the
                point of GET operation."
        ::= { upsAlarm 2 }

upsAlarmTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF UpsAlarmEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "A list of alarm table entries.  The table contains
                zero, one, or many rows at any moment, depending upon
                the number of alarm conditions in effect.  The table
                is initially empty at agent startup.  The agent
                creates a row in the table each time a condition is
                detected and deletes that row when that condition no
                longer pertains.  The agent creates the first row with
                upsAlarmIndex equal to 1, and increments the value of
                upsAlarmIndex each time a new row is created."
        ::= { upsAlarm  3 }

upsAlarmEntry OBJECT-TYPE
        SYNTAX  UpsAlarmEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry containing information applicable to a
                particular alarm."
        INDEX   { upsAlarmIndex }
        ::= { upsAlarmTable  1 }

UpsAlarmEntry ::= SEQUENCE {
        upsAlarmIndex PositiveInteger,
        upsAlarmName INTEGER,
        upsAlarmTime DisplayString
        }

upsAlarmIndex OBJECT-TYPE
        SYNTAX  PositiveInteger
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "An index of alarm entries in the alarm log."
        ::= { upsAlarmEntry  1 }

upsAlarmName OBJECT-TYPE
        SYNTAX INTEGER {
               onBattery(1),
               lowRuntime(2),
               nearLowBattery(3),
               lowBattery(4),
               highBattery(5),
               checkBattery(6),
               replaceBattery(7),
               checkInverter(8),
               batteriesDisconnected(9),
               outputOverload(10),
               lowAcOut(11),
               circuitBreakerWarning(12),
               circuitBreakerShdn(13),
               bypassOn(14),
               autoBypass(15),
               siteWiringFault(16),
               checkFan(17),
               highAmbTemp(18),
               highHSTemp(19),
               highXFMRTemp(20),
               highPFMTemp(21),
               probeMissing(22),
               checkPowerSupply(23),
               tapRegulator(24),
               relayFailure(25),
               checkFuse(26),
               checkMOV(27),
               memoryError(28),
               callService(29),
               upsFailed(30),
               userTest(31),
               testInProgress(32),
               diagnosticTestFailed(33),
               ePO(34),
               upsOff(35),
               communicationsLost(36)
                }
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "A unique identifier for an alarm condition.  This
                value must remain constant."
        ::= { upsAlarmEntry  2 }

upsAlarmTime OBJECT-TYPE
        SYNTAX  DisplayString
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
        "The time that the alarm occurred in hh:mm:ss format."
        ::= { upsAlarmEntry  3 }

upsWellKnownAlarms OBJECT IDENTIFIER ::= { upsAlarm  4 }

upsAlarmOnBattery OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS is drawing power from the batteries."
        ::= { upsWellKnownAlarms 1 }

upsAlarmLowRuntime OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The remaining battery runtime is less than or equal
                to the upsConfigLowRuntimeSetpoint."
        ::= { upsWellKnownAlarms 2 }

upsAlarmNearLowBattery OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The battery voltage on the UPS has reached a value where the inverter will
                not be able to function very much longer."
        ::= { upsWellKnownAlarms 3 }

upsAlarmLowBattery OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The battery voltage on the UPS has reached a value where the inverter
                 has stopped providing output power to the connected load equipment.
                 The UPS has shutdown to protect the batteries from complete discharge."
        ::= {upsWellKnownAlarms 4 }

upsAlarmHighBattery OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The battery charger voltage on the UPS has reached a value that
                 is too high for safe battery maintenance."
        ::= { upsWellKnownAlarms 5 }

upsAlarmCheckBattery OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The periodic battery test has failed. A manual test of the batteries
                 needs to be performed to  determine which battery\batteries need
                 replaced."
        ::= { upsWellKnownAlarms 6 }

                -- All FERRUPS models

upsAlarmReplaceBattery OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "One or more batteries have been determined to require
                replacement.    Compatibility: Fortress II"
        ::= { upsWellKnownAlarms 7 }

upsAlarmCheckInverter OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The inverter has failed the automatic system test."
        ::= { upsWellKnownAlarms 8 }

upsAlarmBatteriesDisconnected OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS has detected that the DC voltage needed to start up is too
                 low or missing."
        ::= { upsWellKnownAlarms 9 }

upsAlarmOutputOverload OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The output load exceeds the UPS output capacity."
        ::= { upsWellKnownAlarms 10 }

upsAlarmLowAcOut OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The output load has exceeded the UPS output capacity, and the UPS has shut down."
        ::= { upsWellKnownAlarms 11 }

upsAlarmCircuitBreakerWarning OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "To much load equipment has been connected to the UPS and has has caused excess
                 current draw from the output."

                -- Unity/1 single phase UPS only

        ::= { upsWellKnownAlarms 12 }

upsAlarmCircuitBreakerShdn OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS has shut down due to an extended excess of current draw
                 from the output."

                -- Unity/1 single phase UPS only

        ::= { upsWellKnownAlarms 13 }

upsAlarmBypassOn OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The Bypass is presently engaged on the UPS."

                -- SOLA/BEST UPS only

        ::= { upsWellKnownAlarms  14 }

upsAlarmAutoBypass OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS has gone into the Auto Bypass mode to redirect power around
                 the UPS circuitry."

                -- Unity/1 single phase UPS only

        ::= { upsWellKnownAlarms 15 }

upsAlarmSiteWiringFault OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS has found a problem in your wall outlet."

        ::= { upsWellKnownAlarms 16 }

upsAlarmCheckFan OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The fan on the UPS has stopped "

                --Unity/1 single phase, Fortress,  Fortress II (Fan Malfunction),
                --and FERRUPS (Check Cooling)

        ::= { upsWellKnownAlarms 17 }

upsAlarmHighAmbTemp OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The internal temperature inside the UPS is too hot."

                -- All FERRUPS models

        ::= { upsWellKnownAlarms 18 }

upsAlarmHighHSTemp OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The Inverter heatsink assembly inside the UPS is to hot ."

                --  All FERRUPS models

        ::= { upsWellKnownAlarms 19 }

upsAlarmHighXFMRTemp OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The temperature of the main transformer inside the UPS is too hot ."

                -- All FERRUPS models

        ::= { upsWellKnownAlarms 20 }

upsAlarmHighPFMTemp OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The temperature of the PFM module inside the UPS is too hot ."

                -- FERRUPS FE with PFM module installed

        ::= { upsWellKnownAlarms 21 }

upsAlarmProbeMissing OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "One or all of the sense probes has been disconnected on the UPS."
        ::= { upsWellKnownAlarms 22 }

upsAlarmCheckPowerSupply OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The internal DC supply voltages are attenuated or missing."

        ::= { upsWellKnownAlarms 23 }

upsAlarmTapRegulator OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS detected a possible failure in the tap changer (open or
                 welded relay, etc.)"

        ::= { upsWellKnownAlarms 24 }

upsAlarmRelayFailure OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "There is a hardware problem inside the UPS."

        ::= { upsWellKnownAlarms 25 }

upsAlarmCheckFuse OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
         DESCRIPTION
                "The failure of one or more fuses has been detected."
        ::= { upsWellKnownAlarms 26 }

upsAlarmCheckMOV OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "One or more MOVs have failed due to a voltage surge."
        ::= { upsWellKnownAlarms 27 }

upsAlarmMemoryError OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The UPS has lost the programmed settings in the memory of the logic
                 board."
        ::= { upsWellKnownAlarms 28 }

upsAlarmCallService OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "A hardware malfunction has occurred inside the UPS. Please consult a
                factory authorized service  representative for assistance."
        ::= { upsWellKnownAlarms 29 }

upsAlarmupsFailed OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
         DESCRIPTION
                "A general fault in the UPS has been detected."

                -- BEST/SOLA UPS

        ::= { upsWellKnownAlarms 30 }

upsAlarmUserTest OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "A user test of the alarm beeper is in progress."

        -- All FERRUPS models

        ::= { upsWellKnownAlarms 31 }

upsAlarmTestInProgress OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
         DESCRIPTION
                "A test is in progress."
        ::= { upsWellKnownAlarms 32 }

upsAlarmDiagnosticTestFailed OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The result of the last diagnostic test indicates a failure."
        ::= { upsWellKnownAlarms 33 }

upsAlarmEPO OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The Emergency Power OFF feature has been activiated at the RS-232
                 port on the UPS."
        ::= { upsWellKnownAlarms 34 }

upsAlarmUpsOff OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "The output of the UPS is in the off state."
        ::= { upsWellKnownAlarms 35 }

upsAlarmCommunicationsLost OBJECT-TYPE
        SYNTAX INTEGER
        ACCESS read-only
        STATUS mandatory
        DESCRIPTION
                "A problem has been encountered in the
                communications between the agent and the UPS."
        ::= { upsWellKnownAlarms 36 }

-- Traps

upsTrapPowerFail TRAP-TYPE
        ENTERPRISE      bestLink
        DESCRIPTION
                "WARNING: Utility power not available."
        ::= 1

upsTrapPowerRestored TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: Utility power has been restored."
        ::= 2

upsTrapUPSOnBattery TRAP-TYPE
        ENTERPRISE bestLink
        VARIABLES {
        upsBatteryTimeOnBattery,
        upsBatteryRuntimeRemaining,
        upsBatteryVoltage
        }
        DESCRIPTION
                "WARNING: The UPS has switched to battery backup power."
        ::= 3

upsTrapUPSNotOnBattery TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS is not on battery power."
        ::= 4

upsTrapLowRuntime TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The runtime remaining on battery power is very short,
                and the UPS will soon shut down."
        ::= 5

upsTrapUPSCanRunOnBattery TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS has returned from a low runtime
                condition."
        ::= 6

upsTrapNearLowBattery TRAP-TYPE
        ENTERPRISE bestLink
        VARIABLES {upsBatteryVoltage }
        DESCRIPTION
                "SEVERE: The UPS batteries are low and will soon be exhausted.
                If utility power is not restored the UPS will put itself
                to 'sleep' and immediately cut power to the load."
        ::= 7

upsTrapHighBattery TRAP-TYPE
        ENTERPRISE bestLink
        VARIABLES {upsBatteryVoltage }
        DESCRIPTION
                "WARNING: The battery charger voltage on the UPS has reached a
                value that is too high for safe battery maintenance."

                -- Fortress, Fortress II, Unity/1 Single-Phase, and  FERRUPS.
                -- Also include  (Check Charger)
                -- for FERRUPS FE series.

        ::= 8

upsTrapBatteryOK TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS has returned from a near low or high battery
                 condition."
        ::= 9

upsTrapLowBattery TRAP-TYPE
        ENTERPRISE bestLink
        VARIABLES { upsBatteryVoltage }
        DESCRIPTION
                "SEVERE: The UPS will run for approximately 2 minutes more and then
                put itself to sleep to prevent a complete discharge of the batteries."
        ::= 10

upsTrapCheckBattery TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The UPS has failed a scheduled or manual battery test."

        ::= 11

upsTrapReplaceBattery TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: One or more UPS batteries need to be replaced."
        ::= 12

upsTrapCheckInverter TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The UPS has failed a scheduled or manual inverter test."
        ::= 13

upsTrapBatteriesDisconnected TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "WARNING: The UPS battery voltage is either too low or missing to start up."
        ::= 14

upsTrapOutputOverload TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "WARNING: The output load exceeds the UPS output capacity."
        ::= 15

upsTrapUPSNoLongerOverloaded TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS has returned from an output overload
                 condition."
        ::= 16

upsTrapLowAcOut TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The output load has exceeded the UPS output capacity, and the UPS has shut down."

                -- All FERRUPS Models

        ::= 17

upsTrapCircuitBreakerWarning TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: To much load equipment has been connected to the UPS and
                 has has caused excess current draw  from the output."

                -- Unity/1 single phase UPS only

        ::= 18

upsTrapCircuitBreakerOK TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS has returned from a circuit breaker warning
                 condition."
        ::= 19

upsTrapCircuitBreakerShdn TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The UPS has shut down due to an extended excess of current
                draw from the output."

                -- Unity/1 single phase UPS only

        ::= 20

upsTrapBypassOn TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The Bypass is presently engaged on the UPS."
        ::= 21

upsTrapUPSOnline TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS has returned from an on bypass condition."
        ::= 22

upsTrapSiteWiringFault TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The UPS has found a problem in your wall outlet."
        ::= 23

upsTrapCheckFan TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The fan on the UPS has stopped ."

                -- Unity/1 single phase, Fortress,  Fortress II (Fan Malfunction)
                -- and  FERRUPS (Check Cooling)

        ::= 24

upsTrapHighUPSTemp TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The internal temperature inside the UPS is too hot."

                -- All FERRUPS models

        ::= 25

upsTrapTempOK TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS has returned from a high ambient temp
                condition."
        ::= 26

upsTrapHighHSTemp TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The Inverter heatsink assembly inside the UPS is too hot ."

                --  All FERRUPS models

        ::= 27

upsTrapHSTempOK TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS has returned from a high heatsink temp condition."
        ::= 28

upsTrapHighXFMRTemp TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The temperature of the main transformer inside the UPS is too hot ."

                -- All FERRUPS models

        ::= 29

upsTrapHighPFMTemp TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The temperature of the PFM module inside the UPS is too hot."

                -- FERRUPS FE with PFM module installed

        ::= 30

upsTrapProbeMissing TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: One or all of the temperature probes has been disconnected on the UPS."

                -- FERRUPS FE only
        ::= 31

upsTrapProbeReconnected TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS has returned from a probe missing condition."
        ::= 32

upsTrapCheckPowerSupply TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The internal DC supply voltages are attenuated or missing."
        ::= 33

upsTrapTapRegulatorFault TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The UPS detected a possible failure in the tap changer (open or welded relay, etc.)"
        ::= 34

upsTrapRelayFailure TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: There is a hardware problem inside the UPS."
        ::= 35

upsTrapCheckFuse TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The failure of one or more fuses has been detected."
        ::= 36

upsTrapCheckMOV TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: One or more MOVs have failed due to a voltage surge."
        ::= 37

upsTrapMemoryError TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
        "SEVERE: The UPS has lost the programmed settings in the memory of the logic board."
        ::= 38

upsTrapCallService TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: A hardware malfunction has occurred inside the UPS.
                Please consult a factory authorized service  representative for assistance."
        ::= 39

upsTrapManualAlarmBeeperTestInitiated TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: A  manual test of the alarm beeper is being performed
                 on the UPS."
        ::= 40

upsTrapManualAlarmBeeperTestAborted TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The test of UPS has completed."
        ::= 41

upsTrapScheduledTestInProgress TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: A test is in progress."
        ::= 42

upsTrapScheduledTestFailed TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The last test performed failed."
        ::= 43

upsTrapCommunicationLost TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                 "SEVERE: Communication to the UPS has been lost.  Steps
                  to reestablish communication are in progress."
        ::= 44

upsTrapCommunicationRestored TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: Communication with the UPS has been
                restored."
        ::= 45

upsTrapUPSGoingDown TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "WARNING: The ups has been given shutdown command
                by the management station."
        ::= 46

upsTrapUPSTurnedOff TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The ups has been turned off
                by the management station."
        ::= 47

upsTrapUPSSleeping TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS has entered in 'sleep' mode. Power to the
                load has been cut off."
        ::= 48

upsTrapUPSWokeUp TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS woke up from 'sleep' mode. Power to the load has been restored."
        ::= 49

upsTrapUPSRebooted TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "INFORMATION: The UPS is rebooted."
        ::= 50

upsTrapEmergencyPowerOFF TRAP-TYPE
ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: The Emergency Power OFF feature has been activiated at
                the RS-232 port on the UPS."
        ::= 51

upsTrapHistLogWarn TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "WARNING: The ups history log buffer is almost full."
        ::= 52

upsTrapEventLogWarn TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "WARNING: The ups event log buffer is almost full."
        ::= 53

upsTrapUPSFail TRAP-TYPE
        ENTERPRISE bestLink
        DESCRIPTION
                "SEVERE: A critical fault has been detected inside the UPS.
                Power to the load has been shut off."
        ::= 54

END

