From Cute Horse, 5 Years ago, written in Plain Text.
This paste is a reply to GE UPS SNMP MIB from Olivier Beytrison - go back
Embed
Viewing differences between GE UPS SNMP MIB and Re: GE UPS SNMP MIB
--               GE Management Information Base  VERSION 1.04
--
--  Date: 11/10/2004
--  Changes: remove of "_" in snmp identifiers, remove of duplicate comment characters         
--  Author : MHCL
--
--  Date 02/14/2005
--  Changes: remove additional size definition for  DisplayString
--  Changes: remove additional range definition of PositiveInteger32
--  Changes: change of range definition for  Integer32 entries
--  Changes: changed names of managed UPSs so that tablenames end with 'table'
--           without changes of other structures
--  Changes: changed some Capital-/Lowercase issues            
--  Author : MHCL
--
--  Date:  15/11/2006
--  Changes: added BatterRipple
--  Changes: added OutputPowerFactor; OutputPeakCurrent; OutputShareCurrent
--  Changes: added alarm HighpeedBusfailure; HighpeedBusCRCfailure; ConnectivityBusfailure
--  Changes: added traps HighpeedBusfailure; HighpeedBusCRCfailure; ConnectivityBusfailure
--  Changes: added traps HighpeedBusrestore; HighpeedBusCRCrestore; ConnectivityBusrestore
--  Changes: added group Diagnostic
--  Changes: added BatteryLifetime; FansLifetime; DCcapacitorsLifetime; ACcapacitorsLifetime
--           GlobalServiceCheck
--  Changes: added Status ServiceCheck
--  Deleted: geEnvironmental tree
--  Deleted: geModem tree 
--  Deleted: geDevices tree
--  Deleted: geSoftware tree
--  Author:  GE, Stefan Kuhn
--
--  Date: 25/11/2006
--  Changes: upsDiagnosticGlobalServiceChecke Syntax from DisplayString to Integer32
--  Changes: upsDiagnosticGlobalServiceChecke into upsDiagnosticGlobalServiceCheck
--  Author:  GE, Stefan Kuhn
--
-- Date: 27/11/2006
-- added: upsDiagnosticBusJACommunicationStatus
-- added: upsDiagnosticBusJBCommunicationStatus
-- Moved: BatteryLifetime; FansLifetime; DCcapacitorsLifetime; ACcapacitorsLifetime
--        GlobalServiceCheck
--  Author: GE, Stefan Kuhn
--
-- Date: 10/12/2006
-- modified: upsSecondsOnBattery from NonNegativeInteger32 back to Integer32
--           for the backward compatibility      
-- added:    upsAlarmHighSpeedBusJACRCFailure,upsAlarmHighSpeedBusJBCRCFailure,upsAlarmShareCurrent,
--           upsAlarmDCRipple and there relative traps
-- Author: GE, Stefan Kuhn
--
-- Date: 22/Oct/2007
-- added:    geDevices group
-- Author: GE, L. Giuntini
--
-- Date: Feb 13th, 2008
-- Author: GE, L. Giuntini
-- Created version 2.00 for SMIv2 compliance
-- Changes include the following:
-- * MODULE-IDENTITY clause introduced right after the IMPORT statement
-- * Compliance to RFC2578, section 7.1.1, second paragraph 
--   in case of enumerations, use INTEGER rather than Integer32
-- * Replace MAX-ACCESS read-only with MAX-ACCESS read-write
--   (access `read-write' is no longer allowed in SMIv2)
-- * Use NOTIFICATION-TYPE instead of TRAP-TYPE for Traps
--   Remove ENTERPRISE clause
--   Rename VARIABLES clause as OBJECTS clause
--   Add STATUS current clause
--   Incorporate traps in the Object tree
-- * Finally, corrected some errors (undefined/re-defined identifiers) 
--
-- Date: Jul 5th, 2010
-- Author: GE, L. Giuntini
-- Created version 2.40 for IEMi / eBoost introduction
-- Modified: 
-- * Description (Properties) for the upsStatus, upsUPSMode OIDs
-- * Various changes to ensure full SNMP v2 compliance
--
-- GE-MIB
-- { iso org(3) dod(6) internet(1) private(4) enterprises(1) imv(818) }
--
-- Title:       GE-MIB
-- By:          Theo Versteeg & Fontana Gianluca
--
-- 11-5-00 Theo Versteeg
--         Removed the complete Victron-MIB to create a new IMV-mib to cover Comprot4, 
--         IM and IMV1 protocol.
--         incl. external devices and object for the agents and protection software.
--
--   Entries marked with (*) are part of the RFC1628 definition
--   Although we integrated the RFC1628 in our own OID range,
--   all RCF1628 OIDs should also be accessable on their own OID defined in RFC1628.

GEPARALLELUPS-MIB DEFINITIONS ::= BEGIN

IMPORTS
        
       MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
       OBJECT-IDENTITY, Counter32, Gauge32, Integer32, Unsigned32, enterprises
       FROM SNMPv2-SMI
       DisplayString, TimeStamp, TimeInterval, TestAndIncr,
         AutonomousType, TEXTUAL-CONVENTION
           FROM SNMPv2-TC;

imv MODULE-IDENTITY
       LAST-UPDATED "201007050000Z"
       ORGANIZATION "GE Digital Energy"
       CONTACT-INFO
              "GE Digital Energy
               Via Cantonale, 50
               CH 6595 Riazzino
               Switzerland"
       DESCRIPTION
               "The MIB module to describe GE Digital Energy
               Uninterruptible Power Supplies."
       REVISION "201007050000Z"
       DESCRIPTION
               "Updated following IEMi & eBoost introduction."
       REVISION "200801080000Z"
       DESCRIPTION
               "SNMPv2 compliant MIB released."
       ::= { enterprises 818 }   
              
PositiveInteger32 ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "This data type is a non-zero and non-negative value."
       SYNTAX       Integer32 (1..2147483647)

              
NonNegativeInteger32 ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "This data type is a non-negative value."
       SYNTAX       Integer32 (0..2147483647)

geHardware             OBJECT IDENTIFIER ::=  { imv 1 }

geUPS                  OBJECT IDENTIFIER ::=  { geHardware 1 }

-- The following list is not really a table, but can be implemented as one in the software.
-- The complete UPS section is simply too large to fit in a pre-defined table.
-- The solution: 
-- * All objects are defined for geGenericUPS
-- * All individual UPSs of parallel systems can be reached by their respective sequence
--   number as reflected in below list in stead of the geGenericUPS objects.

geGenericUPS           OBJECT IDENTIFIER ::=  { geUPS 10 }
geFirstUPS             OBJECT IDENTIFIER ::=  { geUPS 11 }
geSecondUPS            OBJECT IDENTIFIER ::=  { geUPS 12 }
geThirdUPS             OBJECT IDENTIFIER ::=  { geUPS 13 }
geFourthUPS            OBJECT IDENTIFIER ::=  { geUPS 14 }
geFifthUPS             OBJECT IDENTIFIER ::=  { geUPS 15 }
geSixthUPS             OBJECT IDENTIFIER ::=  { geUPS 16 }
geSeventhUPS           OBJECT IDENTIFIER ::=  { geUPS 17 }
geEighthUPS            OBJECT IDENTIFIER ::=  { geUPS 18 }
                                              
-- Generic UPS 
                                              
upsIdent                OBJECT IDENTIFIER ::=  { geGenericUPS 1 }
upsBattery              OBJECT IDENTIFIER ::=  { geGenericUPS 2 }
upsInput                OBJECT IDENTIFIER ::=  { geGenericUPS 3 }
upsOutput               OBJECT IDENTIFIER ::=  { geGenericUPS 4 }
upsBypass               OBJECT IDENTIFIER ::=  { geGenericUPS 5 }
upsAlarm                OBJECT IDENTIFIER ::=  { geGenericUPS 6 }
upsWellKnownAlarms      OBJECT IDENTIFIER ::=  { upsAlarm 3 }
upsTest                 OBJECT IDENTIFIER ::=  { geGenericUPS 7 }
upsWellKnownTests       OBJECT IDENTIFIER ::=  { upsTest 7 }
upsControl              OBJECT IDENTIFIER ::=  { geGenericUPS 8 }
upsConfig               OBJECT IDENTIFIER ::=  { geGenericUPS 9 }
upsGetSet               OBJECT IDENTIFIER ::=  { geGenericUPS 10 }
geUPSTraps              OBJECT IDENTIFIER ::=  { geGenericUPS 11 }
upsDiagnostic           OBJECT IDENTIFIER ::=  { geGenericUPS 12 }

-- First UPS --
                                              
upsIdentfirst                OBJECT IDENTIFIER ::=  { geFirstUPS 1 }
upsBatteryfirst              OBJECT IDENTIFIER ::=  { geFirstUPS 2 }
upsInputfirst                OBJECT IDENTIFIER ::=  { geFirstUPS 3 }
upsOutputfirst               OBJECT IDENTIFIER ::=  { geFirstUPS 4 }
upsBypassfirst               OBJECT IDENTIFIER ::=  { geFirstUPS 5 }
upsAlarmfirst                OBJECT IDENTIFIER ::=  { geFirstUPS 6 }
upsWellKnownAlarmsfirst      OBJECT IDENTIFIER ::=  { upsAlarmfirst 3 }
upsTestfirst                 OBJECT IDENTIFIER ::=  { geFirstUPS 7 }
upsWellKnownTestsfirst       OBJECT IDENTIFIER ::=  { upsTestfirst 7 }
upsControlfirst              OBJECT IDENTIFIER ::=  { geFirstUPS 8 }
upsConfigfirst               OBJECT IDENTIFIER ::=  { geFirstUPS 9 }
upsGetSetfirst               OBJECT IDENTIFIER ::=  { geFirstUPS 10 }
geUPSTrapsfirst              OBJECT IDENTIFIER ::=  { geFirstUPS 11 }
upsDiagnosticfirst           OBJECT IDENTIFIER ::=  { geFirstUPS 12 }

-- Second UPS --
                                              
upsIdentsecond                OBJECT IDENTIFIER ::=  { geSecondUPS 1 }
upsBatterysecond              OBJECT IDENTIFIER ::=  { geSecondUPS 2 }
upsInputsecond                OBJECT IDENTIFIER ::=  { geSecondUPS 3 }
upsOutputsecond               OBJECT IDENTIFIER ::=  { geSecondUPS 4 }
upsBypasssecond               OBJECT IDENTIFIER ::=  { geSecondUPS 5 }
upsAlarmsecond                OBJECT IDENTIFIER ::=  { geSecondUPS 6 }
upsWellKnownAlarmssecond      OBJECT IDENTIFIER ::=  { upsAlarmsecond 3 }
upsTestsecond                 OBJECT IDENTIFIER ::=  { geSecondUPS 7 }
upsWellKnownTestssecond       OBJECT IDENTIFIER ::=  { upsTestsecond 7 }
upsControlsecond              OBJECT IDENTIFIER ::=  { geSecondUPS 8 }
upsConfigsecond               OBJECT IDENTIFIER ::=  { geSecondUPS 9 }
upsGetSetsecond               OBJECT IDENTIFIER ::=  { geSecondUPS 10 }
geUPSTrapssecond              OBJECT IDENTIFIER ::=  { geSecondUPS 11 }
upsDiagnosticsecond           OBJECT IDENTIFIER ::=  { geSecondUPS 12 }

-- Third UPS --
                                              
upsIdentthird                OBJECT IDENTIFIER ::=  { geThirdUPS 1 }
upsBatterythird              OBJECT IDENTIFIER ::=  { geThirdUPS 2 }
upsInputthird                OBJECT IDENTIFIER ::=  { geThirdUPS 3 }
upsOutputthird               OBJECT IDENTIFIER ::=  { geThirdUPS 4 }
upsBypassthird               OBJECT IDENTIFIER ::=  { geThirdUPS 5 }
upsAlarmthird                OBJECT IDENTIFIER ::=  { geThirdUPS 6 }
upsWellKnownAlarmsthird      OBJECT IDENTIFIER ::=  { upsAlarmthird 3 }
upsTestthird                 OBJECT IDENTIFIER ::=  { geThirdUPS 7 }
upsWellKnownTeststhird       OBJECT IDENTIFIER ::=  { upsTestthird 7 }
upsControlthird              OBJECT IDENTIFIER ::=  { geThirdUPS 8 }
upsConfigthird               OBJECT IDENTIFIER ::=  { geThirdUPS 9 }
upsGetSetthird               OBJECT IDENTIFIER ::=  { geThirdUPS 10 }
geUPSTrapsthird              OBJECT IDENTIFIER ::=  { geThirdUPS 11 }
upsDiagnosticthird           OBJECT IDENTIFIER ::=  { geThirdUPS 12 }

-- Fourth UPS --
                                              
upsIdentfourth                OBJECT IDENTIFIER ::=  { geFourthUPS 1 }
upsBatteryfourth              OBJECT IDENTIFIER ::=  { geFourthUPS 2 }
upsInputfourth                OBJECT IDENTIFIER ::=  { geFourthUPS 3 }
upsOutputfourth               OBJECT IDENTIFIER ::=  { geFourthUPS 4 }
upsBypassfourth               OBJECT IDENTIFIER ::=  { geFourthUPS 5 }
upsAlarmfourth                OBJECT IDENTIFIER ::=  { geFourthUPS 6 }
upsWellKnownAlarmsfourth      OBJECT IDENTIFIER ::=  { upsAlarmfourth 3 }
upsTestfourth                 OBJECT IDENTIFIER ::=  { geFourthUPS 7 }
upsWellKnownTestsfourth       OBJECT IDENTIFIER ::=  { upsTestfourth 7 }
upsControlfourth              OBJECT IDENTIFIER ::=  { geFourthUPS 8 }
upsConfigfourth               OBJECT IDENTIFIER ::=  { geFourthUPS 9 }
upsGetSetfourth               OBJECT IDENTIFIER ::=  { geFourthUPS 10 }
geUPSTrapsfourth              OBJECT IDENTIFIER ::=  { geFourthUPS 11 }
upsDiagnosticfourth           OBJECT IDENTIFIER ::=  { geFourthUPS 12 }

-- Fifth UPS --
                                              
upsIdentfifth                OBJECT IDENTIFIER ::=  { geFifthUPS 1 }
upsBatteryfifth              OBJECT IDENTIFIER ::=  { geFifthUPS 2 }
upsInputfifth                OBJECT IDENTIFIER ::=  { geFifthUPS 3 }
upsOutputfifth               OBJECT IDENTIFIER ::=  { geFifthUPS 4 }
upsBypassfifth               OBJECT IDENTIFIER ::=  { geFifthUPS 5 }
upsAlarmfifth                OBJECT IDENTIFIER ::=  { geFifthUPS 6 }
upsWellKnownAlarmsfifth      OBJECT IDENTIFIER ::=  { upsAlarmfifth 3 }
upsTestfifth                 OBJECT IDENTIFIER ::=  { geFifthUPS 7 }
upsWellKnownTestsfifth       OBJECT IDENTIFIER ::=  { upsTestfifth 7 }
upsControlfifth              OBJECT IDENTIFIER ::=  { geFifthUPS 8 }
upsConfigfifth               OBJECT IDENTIFIER ::=  { geFifthUPS 9 }
upsGetSetfifth               OBJECT IDENTIFIER ::=  { geFifthUPS 10 }
geUPSTrapsfifth              OBJECT IDENTIFIER ::=  { geFifthUPS 11 }
upsDiagnosticfifth           OBJECT IDENTIFIER ::=  { geFifthUPS 12 }

-- Sixth UPS --
                                              
upsIdentsixth                OBJECT IDENTIFIER ::=  { geSixthUPS 1 }
upsBatterysixth              OBJECT IDENTIFIER ::=  { geSixthUPS 2 }
upsInputsixth                OBJECT IDENTIFIER ::=  { geSixthUPS 3 }
upsOutputsixth               OBJECT IDENTIFIER ::=  { geSixthUPS 4 }
upsBypasssixth               OBJECT IDENTIFIER ::=  { geSixthUPS 5 }
upsAlarmsixth                OBJECT IDENTIFIER ::=  { geSixthUPS 6 }
upsWellKnownAlarmssixth      OBJECT IDENTIFIER ::=  { upsAlarmsixth 3 }
upsTestsixth                 OBJECT IDENTIFIER ::=  { geSixthUPS 7 }
upsWellKnownTestssixth       OBJECT IDENTIFIER ::=  { upsTestsixth 7 }
upsControlsixth              OBJECT IDENTIFIER ::=  { geSixthUPS 8 }
upsConfigsixth               OBJECT IDENTIFIER ::=  { geSixthUPS 9 }
upsGetSetsixth               OBJECT IDENTIFIER ::=  { geSixthUPS 10 }
geUPSTrapssixth              OBJECT IDENTIFIER ::=  { geSixthUPS 11 }
upsDiagnosticsixth           OBJECT IDENTIFIER ::=  { geSixthUPS 12 }

-- Seventh UPS --
                                              
upsIdentseventh                OBJECT IDENTIFIER ::=  { geSeventhUPS 1 }
upsBatteryseventh              OBJECT IDENTIFIER ::=  { geSeventhUPS 2 }
upsInputseventh                OBJECT IDENTIFIER ::=  { geSeventhUPS 3 }
upsOutputseventh               OBJECT IDENTIFIER ::=  { geSeventhUPS 4 }
upsBypassseventh               OBJECT IDENTIFIER ::=  { geSeventhUPS 5 }
upsAlarmseventh                OBJECT IDENTIFIER ::=  { geSeventhUPS 6 }
upsWellKnownAlarmsseventh      OBJECT IDENTIFIER ::=  { upsAlarmseventh 3 }
upsTestseventh                 OBJECT IDENTIFIER ::=  { geSeventhUPS 7 }
upsWellKnownTestsseventh       OBJECT IDENTIFIER ::=  { upsTestseventh 7 }
upsControlseventh              OBJECT IDENTIFIER ::=  { geSeventhUPS 8 }
upsConfigseventh               OBJECT IDENTIFIER ::=  { geSeventhUPS 9 }
upsGetSetseventh               OBJECT IDENTIFIER ::=  { geSeventhUPS 10 }
geUPSTrapsseventh              OBJECT IDENTIFIER ::=  { geSeventhUPS 11 }
upsDiagnosticseventh           OBJECT IDENTIFIER ::=  { geSeventhUPS 12 }

-- Eighth UPS --
                                              
upsIdenteighth                OBJECT IDENTIFIER ::=  { geEighthUPS 1 }
upsBatteryeighth              OBJECT IDENTIFIER ::=  { geEighthUPS 2 }
upsInputeighth                OBJECT IDENTIFIER ::=  { geEighthUPS 3 }
upsOutputeighth               OBJECT IDENTIFIER ::=  { geEighthUPS 4 }
upsBypasseighth               OBJECT IDENTIFIER ::=  { geEighthUPS 5 }
upsAlarmeighth                OBJECT IDENTIFIER ::=  { geEighthUPS 6 }
upsWellKnownAlarmseighth      OBJECT IDENTIFIER ::=  { upsAlarmeighth 3 }
upsTesteighth                 OBJECT IDENTIFIER ::=  { geEighthUPS 7 }
upsWellKnownTestseighth       OBJECT IDENTIFIER ::=  { upsTesteighth 7 }
upsControleighth              OBJECT IDENTIFIER ::=  { geEighthUPS 8 }
upsConfigeighth               OBJECT IDENTIFIER ::=  { geEighthUPS 9 }
upsGetSeteighth               OBJECT IDENTIFIER ::=  { geEighthUPS 10 }
geUPSTrapseighth              OBJECT IDENTIFIER ::=  { geEighthUPS 11 }
upsDiagnosticeighth            OBJECT IDENTIFIER ::=  { geEighthUPS 12 }

-- Device 

geDevices              OBJECT IDENTIFIER ::=  { geHardware 100 }
geDevicesDescriptions  OBJECT IDENTIFIER ::=  { geDevices 1 }

advSNMPWebIntCard       OBJECT IDENTIFIER ::=  { geDevicesDescriptions 1 }
snmpWebIntCard          OBJECT IDENTIFIER ::=  { geDevicesDescriptions 2 }
snmpWebIntBox           OBJECT IDENTIFIER ::=  { geDevicesDescriptions 3 } 

--
-- The GE UPS group
--

geDiscoveredUPSsMask OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Reading this variable returns bit mask indicating which 
            UPSs in a parallel system are alive. Management 
            software should poll only these UPSs on their snmp
            branches 11-18 as follows:

              1  FirstUPS alive
              2  SecondUPS alive
              4  ThirdUPS alive
              8  FourthUPS alive
             16  FifthUPS alive
             32  SixthUPS alive
             64  SeventhUPS alive
            128  EigthUPS alive

            Since the management software should always monitor
            the GenericUPS branch (10), this value has no meaning 
            for single upses (which provide values on that snmp 
            branch), and should be set to zero in that case."
    ::= { geUPS 1 }

geRequestPacket OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write 
    STATUS     current
    DESCRIPTION
            "Put the string, formatted as a IMV/CP4 packet, directly to internally RS485 bus. 
 This OID could be used for accede directly to the internally RS485 bus from a remote place."
    ::= { geUPS 2 }

geReplyPacket OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Contain the reply of the IMV/CP4 request packet sent using the OID geRequestPacket. 
 Every time that a write command has be made at the OID ge RequestPacket, the value of this OID is erased."
    ::= { geUPS 3 }



--
-- The Device Identification group. Generic
--      All objects in this group except for upsIdentName and
--      upsIdentAttachedDevices are set at device initialization
--      and remain static.
--

upsIdentManufacturer OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the UPS manufacturer.(*)"
    ::= { upsIdent 1 }

upsIdentModel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS Model designation.(*)"
    ::= { upsIdent 2 }

upsIdentUPSSoftwareVersion OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS firmware/software version(s).  This variable
            may or may not have the same value as
            upsIdentAgentSoftwareVersion in some implementations.(*)"
    ::= { upsIdent 3 }

upsIdentAgentSoftwareVersion OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS agent software version.  This variable may or
            may not have the same value as
            upsIdentUPSSoftwareVersion in some implementations.(*)"
    ::= { upsIdent 4 }

upsIdentName OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the UPS.  This object should be
            set by the administrator.(*)"
    ::= { upsIdent 5 }

upsIdentAttachedDevices OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the devices attached to the
            output(s) of the UPS.  This object should be set by
            the administrator.(*)"
    ::= { upsIdent 6 }

upsIdentUPSSerialNumber OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS serial number"
    ::= { upsIdent 7 }
    
upsIdentComProtVersion OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IMV communication protocol version"
    ::= { upsIdent 8 } 
  
upsIdentOperatingTime OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present value of the operating time.
             total 'on' time since UPS manufactured"
    ::= { upsIdent 9 } 
    
--
-- Battery Group Generic
--

upsBatteryStatus OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        batteryNormal(2),
        batteryLow(3),
        batteryDepleted(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The indication of the capacity remaining in the UPS
            system's batteries.   A value of batteryNormal
            indicates that the remaining run-time is greater than
            upsConfigLowBattTime.  A value of batteryLow indicates
            that the remaining battery run-time is less than or
            equal to upsConfigLowBattTime.  A value of
            batteryDepleted 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 and the UPS is
            unable to sustain the output).(*)"
    ::= { upsBattery 1 }

upsSecondsOnBattery OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If the unit is on battery power, the elapsed time
            since the UPS last switched to battery power, or the
            time since the network management subsystem was last
            restarted, whichever is less.  Zero shall be returned
            if the unit is not on battery power.(*)"
    ::= { upsBattery 2 }

upsEstimatedMinutesRemaining OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the time to battery charge depletion
            under the present load conditions if the utility power
            is off and remains off, or if it were to be lost and
            remain off.(*)"
    ::= { upsBattery 3 }

upsEstimatedChargeRemaining OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the battery charge remaining expressed
            as a percent of full charge.(*)"
    ::= { upsBattery 4 }

upsBatteryVoltage OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Volt DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present battery voltage.(*)"
    ::= { upsBattery 5 }

upsBatteryCurrent OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present battery current.(*)"
    ::= { upsBattery 6 }

upsBatteryTemperature OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "degrees Centigrade"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ambient temperature at or near the UPS Battery
            casing.(*)"
    ::= { upsBattery 7 }

upsBatteryRipple OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Volt RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present DC link RMS voltage ripple.(*)"
    ::= { upsBattery 8 }
    
--
-- Input Group
--

upsInputLineBads OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A count of the number of times the input entered an
            out-of-tolerance condition as defined by the
            manufacturer.  This count is incremented by one each
            time the input transitions from zero out-of-tolerance
            lines to one or more input lines out-of-tolerance.(*)"
    ::= { upsInput 1 }

upsInputNumLines OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of input lines utilized in this device.
            This variable indicates the number of rows in the
            input table.(*)"
    ::= { upsInput 2 }

upsInputTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsInputEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of input table entries.  The number of entries
            is given by the value of upsInputNumLines.(*)"
    ::= { upsInput 3 }

upsInputEntry OBJECT-TYPE
    SYNTAX     UpsInputEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular input line.(*)"
    INDEX { upsInputLineIndex }
    ::= { upsInputTable 1 }

UpsInputEntry ::= SEQUENCE {
    upsInputLineIndex   PositiveInteger32,
    upsInputFrequency   NonNegativeInteger32,
    upsInputVoltage     NonNegativeInteger32,
    upsInputCurrent     NonNegativeInteger32,
    upsInputTruePower   NonNegativeInteger32,
    upsInputVoltageMin  NonNegativeInteger32,
    upsInputVoltageMax  NonNegativeInteger32
}

upsInputLineIndex OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The input line identifier.(*)"
    ::= { upsInputEntry 1 }

upsInputFrequency OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present input frequency.(*)"
    ::= { upsInputEntry 2 }

upsInputVoltage OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input voltage.(*)"
    ::= { upsInputEntry 3 }

upsInputCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input current.(*)"
    ::= { upsInputEntry 4 }

upsInputTruePower OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input true power.(*)"
    ::= { upsInputEntry 5 }

upsInputVoltageMin OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The lowest magnitude of the input voltage since last read out."
    ::= { upsInputEntry 6 }

upsInputVoltageMax OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The highest magnitude of the input voltage since last read out."
    ::= { upsInputEntry 7 }

--
-- The Output group.
--

upsOutputSource OBJECT-TYPE
    SYNTAX     INTEGER {
        other(1),
        none(2),
        normal(3),
        bypass(4),
        battery(5),
        booster(6),
        reducer(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present source of output power.  The enumeration
            none(2) indicates that there is no source of output
            power (and therefore no output power), for example,
            the system has opened the output breaker.(*)"
    ::= { upsOutput 1 }

upsOutputFrequency OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output frequency.(*)"
    ::= { upsOutput 2 }

upsOutputNumLines OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of output lines utilized in this device.
            This variable indicates the number of rows in the
            output table.(*)"
    ::= { upsOutput 3 }

upsOutputTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsOutputEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of output table entries.  The number of
            entries is given by the value of upsOutputNumLines.(*)"
    ::= { upsOutput 4 }

upsOutputEntry OBJECT-TYPE
    SYNTAX     UpsOutputEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular output line.(*)"
    INDEX { upsOutputLineIndex }
    ::= { upsOutputTable 1 }

UpsOutputEntry ::= SEQUENCE {
    upsOutputLineIndex   PositiveInteger32,
    upsOutputVoltage     NonNegativeInteger32,
    upsOutputCurrent     NonNegativeInteger32,
    upsOutputPower       NonNegativeInteger32,
    upsOutputPercentLoad Integer32,
    upsOutputPowerFactor Integer32,
    upsOutputPeakCurrent Integer32,
    upsOutputShareCurrent Integer32
}

upsOutputLineIndex OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The output line identifier.(*)"
    ::= { upsOutputEntry 1 }

upsOutputVoltage OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output voltage.(*)"
    ::= { upsOutputEntry 2 }

upsOutputCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output current.(*)"
    ::= { upsOutputEntry 3 }

upsOutputPower OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output true power.(*)"
    ::= { upsOutputEntry 4 }

upsOutputPercentLoad OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The percentage of the UPS power capacity presently
            being used on this output line, i.e., the greater of
            the percent load of true power capacity and the
            percent load of VA.(*)"
    ::= { upsOutputEntry 5 }

upsOutputPowerFactor OBJECT-TYPE
    SYNTAX     Integer32 (-99..100)
    UNITS      "0.01 cos phi"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output power factor. 
             The returned value correspond to the cosf of the load.
             A positive value indicate an inductive load; 
             a negative value indicate a capacitive load; 
             value 1 indicate a resistive load. 
             If the measure is not available due to a small load for 
             a consistent calculation, the NA value is then returned.(*)"
    ::= { upsOutputEntry 6 }
    
upsOutputPeakCurrent OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output peak current.(*)"
    ::= { upsOutputEntry 7 }

upsOutputShareCurrent OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "In a parallel system ideally all the UPS are requested to 
            contribute to the load with the same amount of current, 
            i.e. with no current share. The current share occurs when an
            UPS exchanges some current with another UPS, so that this 
            current component doesn't feed the load. 
            The share part of the UPS current represents an undesired UPS
            loading, and therefore it should be minimized. If the share 
            current is too high, the UPS results overloaded and in some 
            conditions (i.e. very high load) the system could turn on 
            bypass reducing dramatically the global system reliability.
   PMAD detects the amount of share currents in a parallel system,
   generating an alarm if this value is above a parameter-based threshold.
   Single UPS systems don't have this feature, NA will be provided.(*)"
    ::= { upsOutputEntry 8 }

--
-- The Bypass group generic.
--

upsBypassFrequency OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass frequency.(*)"
    ::= { upsBypass 1 }

upsBypassNumLines OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of bypass lines utilized in this device.
            This entry indicates the number of rows in the bypass
            table.(*)"
    ::= { upsBypass 2 }

upsBypassTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsBypassEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of bypass table entries.  The number of
            entries is given by the value of upsBypassNumLines.(*)"
    ::= { upsBypass 3 }

upsBypassEntry OBJECT-TYPE
    SYNTAX     UpsBypassEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular bypass input.(*)"
    INDEX { upsBypassLineIndex }
    ::= { upsBypassTable 1 }

UpsBypassEntry ::= SEQUENCE {
    upsBypassLineIndex  PositiveInteger32,
    upsBypassVoltage    NonNegativeInteger32,
    upsBypassCurrent    NonNegativeInteger32,
    upsBypassPower      NonNegativeInteger32
}

upsBypassLineIndex OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The bypass line identifier.(*)"
    ::= { upsBypassEntry 1 }

upsBypassVoltage OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass voltage.(*)"
    ::= { upsBypassEntry 2 }

upsBypassCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass current.(*)"
    ::= { upsBypassEntry 3 }

upsBypassPower OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present true power conveyed by the bypass.(*)"
    ::= { upsBypassEntry 4 }

--
-- The Alarm group generic.
--

upsAlarmsPresent OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present number of active alarm conditions.(*)"
    ::= { upsAlarm 1 }

upsAlarmTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsAlarmEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
            upsAlarmId equal to 1, and increments the value of
            upsAlarmId each time a new row is created, wrapping to
            the first free value greater than or equal to 1 when
            the maximum value of upsAlarmId would otherwise be
            exceeded.  Consequently, after multiple operations,
            the table may become sparse, e.g., containing entries
            for rows 95, 100, 101, and 203 and the entries should
            not be assumed to be in chronological order because
            upsAlarmId might have wrapped.

            Alarms are named by an AutonomousType (OBJECT
            IDENTIFIER), upsAlarmDescr, to allow a single table to
            reflect well known alarms plus alarms defined by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.  No
            two rows will have the same value of upsAlarmDescr,
            since alarms define conditions.  In order to meet this
            requirement, care should be taken in the definition of
            alarm conditions to insure that a system cannot enter
            the same condition multiple times simultaneously.

            The number of rows in the table at any given time is
            reflected by the value of upsAlarmsPresent.(*)"
    ::= { upsAlarm 2 }

upsAlarmEntry OBJECT-TYPE
    SYNTAX     UpsAlarmEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular alarm.(*)"
    INDEX { upsAlarmId }
    ::= { upsAlarmTable 1 }

UpsAlarmEntry ::= SEQUENCE {
    upsAlarmId         PositiveInteger32,
    upsAlarmDescr      AutonomousType,
    upsAlarmTime       TimeStamp
}

upsAlarmId OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique identifier for an alarm condition.  This
            value must remain constant.(*)"
    ::= { upsAlarmEntry 1 }

upsAlarmDescr OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A reference to an alarm description object.  The
            object referenced should not be accessible, but rather
            be used to provide a unique description of the alarm
            condition.(*)"
    ::= { upsAlarmEntry 2 }

upsAlarmTime OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when the alarm condition was
            detected.  If the alarm condition was detected at the
            time of agent startup and presumably existed before
            agent startup, the value of upsAlarmTime shall equal
            0.(*)"
    ::= { upsAlarmEntry 3 }

--
-- Well known alarm conditions generic.
--

upsAlarmBatteryBad OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement.(*)"
    ::= { upsWellKnownAlarms  1 }

upsAlarmOnBattery OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS is drawing power from the batteries.(*)"
    ::= { upsWellKnownAlarms  2 }

upsAlarmLowBattery OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime.(*)"
    ::= { upsWellKnownAlarms  3 }

upsAlarmDepletedBattery OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost.(*)"
    ::= { upsWellKnownAlarms  4 }

upsAlarmTempBad OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A temperature is out of tolerance.(*)"
    ::= { upsWellKnownAlarms  5 }

upsAlarmInputBad OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An input condition is out of tolerance.(*)"
    ::= { upsWellKnownAlarms  6 }

upsAlarmOutputBad OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance.(*)"
    ::= { upsWellKnownAlarms  7 }

upsAlarmOutputOverload OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output load exceeds the UPS output capacity.(*)"
    ::= { upsWellKnownAlarms  8 }

upsAlarmOnBypass OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS.(*)"
    ::= { upsWellKnownAlarms  9 }

upsAlarmBypassBad OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is out of tolerance.(*)"
    ::= { upsWellKnownAlarms 10 }

upsAlarmOutputOffAsRequested OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off.(*)"
    ::= { upsWellKnownAlarms 11 }

upsAlarmUpsOffAsRequested OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The entire UPS has shutdown as commanded.(*)"
    ::= { upsWellKnownAlarms 12 }

upsAlarmChargerFailed OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem.(*)"
    ::= { upsWellKnownAlarms 13 }

upsAlarmUpsOutputOff OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output of the UPS is in the off state.(*)"
    ::= { upsWellKnownAlarms 14 }

upsAlarmUpsSystemOff OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS system is in the off state.(*)"
    ::= { upsWellKnownAlarms 15 }

upsAlarmFanFailure OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected.(*)"
    ::= { upsWellKnownAlarms 16 }

upsAlarmFuseFailure OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fuses has been detected.(*)"
    ::= { upsWellKnownAlarms 17 }

upsAlarmGeneralFault OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A general fault in the UPS has been detected.(*)"
    ::= { upsWellKnownAlarms 18 }

upsAlarmDiagnosticTestFailed OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure.(*)"
    ::= { upsWellKnownAlarms 19 }

upsAlarmCommunicationsLost OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem has been encountered in the communications
            between the agent and the UPS.(*)"
    ::= { upsWellKnownAlarms 20 }

upsAlarmAwaitingPower OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of input power.(*)"
    ::= { upsWellKnownAlarms 21 }

upsAlarmShutdownPending OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway.(*)"
    ::= { upsWellKnownAlarms 22 }

upsAlarmShutdownImminent OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 seconds; this may be either a timed shutdown or a
            low battery shutdown.(*)"
    ::= { upsWellKnownAlarms 23 }

upsAlarmTestInProgress OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY.(*)"
    ::= { upsWellKnownAlarms 24 }

upsAlarmReceptacleOff OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The receptacle are switch off    "
    ::= { upsWellKnownAlarms 25 }

upsAlarmHighSpeedBusFailure OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the High Speed Bus communication is detected"
    ::= { upsWellKnownAlarms 26 }
    
upsAlarmHighSpeedBusJACRCFailure OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A CRC problem on the Highspeed Bus JA is detected."
    ::= { upsWellKnownAlarms 27 }
    
upsAlarmConnectivityBusFailure OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected"
    ::= { upsWellKnownAlarms 28 }

upsAlarmHighSpeedBusJBCRCFailure OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A CRC problem on the Highspeed Bus JB is detected."
    ::= { upsWellKnownAlarms 29 }

upsAlarmCurrentSharing OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The System detects an high current sharing on the parallel system"
    ::= { upsWellKnownAlarms 30 }
        
upsAlarmDCRipple OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The System detects an high ripple voltage on one DC link"
    ::= { upsWellKnownAlarms 31 }

upsAlarmMaskA OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Specifies which alarm can be handled by the UPS.
            The 'Mask' parameter is a Long Integer32. The meaning
            of every bit is the same as for the 'upsAlarmGroupA'
            command. A bit having value=1 indicates that the
            corresponding alarm is handled by the UPS."
    ::= { upsAlarm 4 }

--
-- The Test Group generic
--

upsTestId OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The test is named by an OBJECT IDENTIFIER which
            allows a standard mechanism for the initiation of
            tests, including the well known tests identified in
            this document as well as those introduced by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.

            Setting this variable initiates the named test. Sets
            to this variable require the presence of
            upsTestSpinLock in the same SNMP message.

            The set request will be rejected with an appropriate
            error message if the requested test cannot be
            performed, including attempts to start a test when
            another test is already in progress.  The status of
            the current or last test is maintained in
            upsTestResultsSummary. Tests in progress may be
            aborted by setting the upsTestId variable to
            upsTestAbortTestInProgress.

            Read operations return the value of the name of the
            test in progress if a test is in progress or the name
            of the last test performed if no test is in progress,
            unless no test has been run, in which case the well
            known value upsTestNoTestsInitiated is returned.(*)"
    ::= { upsTest 1 }

-- see [6] for more information on the semantics of objects with
-- syntax of TestAndIncr

upsTestSpinLock OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the test subsystem.  The spinlock is
            used as follows.

            Before starting a test, a manager-station should make
            sure that a test is not in progress as follows:

                tryagain:
                  get (upsTestSpinLock)
                  while (upsTestResultsSummary == inProgress) {
                    /* loop while a test is running for another
            manager */
                    short delay
                    get (upsTestSpinLock)
                  }
                  lockvalue = upsTestSpinLock
                  /* no test in progress, start the test */
                  set (upsTestSpinLock = lockvalue, upsTestId =
            requestedtest)
                  if (errorindex == 1) { /* (upsTestSpinLock
            failed) */
                    /* if problem is not access control, then
                        some other manager slipped in ahead of us
            */
                    goto tryagain
                  }
                  if (errorindex == 2) { /* (upsTestId) */
                    /* cannot perform the test */
                    give up
                  }
                  /* test started ok */
                  /* wait for test completion by polling
            upsTestResultsSummary */
                  get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  while (upsTestResultsSummary == inProgress) {
                    short delay
                    get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  }
                  /* when test completes, retrieve any additional
            test results */
                  /* if upsTestSpinLock == lockvalue + 1, then
            these are our test */
                  /* results (as opposed to another manager's */
                  The initial value of upsTestSpinLock at agent
            initialization shall
                  be 1.(*)"
    ::= { upsTest 2 }

upsTestResultsSummary OBJECT-TYPE
    SYNTAX     INTEGER {
        donePass(1),
        doneWarning(2),
        doneError(3),
        aborted(4),
        inProgress(5),
        noTestsInitiated(6)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The results of the current or last UPS diagnostics
            test performed.  The values for donePass(1),
            doneWarning(2), and doneError(3) indicate that the
            test completed either successfully, with a warning, or
            with an error, respectively.  The value aborted(4) is
            returned for tests which are aborted by setting the
            value of upsTestId to upsTestAbortTestInProgress.
            Tests which have not yet concluded are indicated by
            inProgress(5).  The value noTestsInitiated(6)
            indicates that no previous test results are available,
            such as is the case when no tests have been run since
            the last reinitialization of the network management
            subsystem and the system has no provision for non-
            volatile storage of test results.(*)"
    ::= { upsTest 3 }

upsTestResultsDetail OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Additional information about upsTestResultsSummary.
            If no additional information available, a zero length
            string is returned.(*)"
    ::= { upsTest 4 }

upsTestStartTime OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time the test in
            progress was initiated, or, if no test is in progress,
            the time the previous test was initiated.  If the
            value of upsTestResultsSummary is noTestsInitiated(6),
            upsTestStartTime has the value 0.(*)"
    ::= { upsTest 5 }

upsTestElapsedTime OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time, in TimeTicks, since the test in
            progress was initiated, or, if no test is in progress,
            the previous test took to complete.  If the value of
            upsTestResultsSummary is noTestsInitiated(6),
            upsTestElapsedTime has the value 0.(*)"
    ::= { upsTest 6 }

--
-- Well known tests generic.
--

upsTestNoTestsInitiated OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "No tests have been initiated and no test is in
            progress.(*)"
    ::= { upsWellKnownTests  1 }

upsTestAbortTestInProgress OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The test in progress is to be aborted / the test in
            progress was aborted.(*)"
    ::= { upsWellKnownTests  2 }

upsTestGeneralSystemsTest OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The manufacturer's standard test of UPS device
            systems.(*)"
    ::= { upsWellKnownTests  3 }

upsTestQuickBatteryTest OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test that is sufficient to determine if the battery
            needs replacement.(*)"
    ::= { upsWellKnownTests  4 }

upsTestDeepBatteryCalibration OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The system is placed on battery to a discharge level,
            set by the manufacturer, sufficient to determine
            battery replacement and battery run-time with a high
            degree of confidence.  WARNING:  this test will leave
            the battery in a low charge state and will require
            time for recharging to a level sufficient to provide
            normal battery duration for the protected load.(*)"
    ::= { upsWellKnownTests  5 }

--
-- The Control group generic.
--

upsShutdownType OBJECT-TYPE
    SYNTAX     INTEGER {
        output(1),
        system(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object determines the nature of the action to be
            taken at the time when the countdown of the
            upsShutdownAfterDelay and upsRebootWithDuration
            objects reaches zero.

            Setting this object to output(1) indicates that
            shutdown requests should cause only the output of the
            UPS to turn off.  Setting this object to system(2)
            indicates that shutdown requests will cause the entire
            UPS system to turn off.(*)"
    ::= { upsControl 1 }

upsShutdownAfterDelay OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will shutdown (i.e., turn off)
            either the UPS output or the UPS system (as determined
            by the value of upsShutdownType at the time of
            shutdown) after the indicated number of seconds, or
            less if the UPS batteries become depleted. Setting
            this object to 0 will cause the shutdown to occur
            immediately.  Setting this object to -1 will abort the
            countdown.  If the system is already in the desired
            state at the time the countdown reaches 0, then
            nothing will happen.  That is, there is no additional
            action at that time if upsShutdownType = system and
            the system is already off.  Similarly, there is no
            additional action at that time if upsShutdownType =
            output and the output is already off.  When read,
            upsShutdownAfterDelay will return the number of
            seconds remaining until shutdown, or -1 if no shutdown
            countdown is in effect.  On some systems, if the agent
            is restarted while a shutdown countdown is in effect,
            the countdown may be aborted.  Sets to this object
            override any upsShutdownAfterDelay already in effect.(*)"
    ::= { upsControl 2 }

upsStartupAfterDelay OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will start the output after the
            indicated number of seconds, including starting the
            UPS, if necessary.  Setting this object to 0 will
            cause the startup to occur immediately.  Setting this
            object to -1 will abort the countdown.  If the output
            is already on at the time the countdown reaches 0,
            then nothing will happen.  Sets to this object
            override the effect of any upsStartupAfterDelay
            countdown or upsRebootWithDuration countdown in
            progress.  When read, upsStartupAfterDelay will return
            the number of seconds until startup, or -1 if no
            startup countdown is in effect.  If the countdown
            expires during a utility failure, the startup shall
            not occur until the utility power is restored.  On
            some systems, if the agent is restarted while a
            startup countdown is in effect, the countdown is
            aborted.(*)"
    ::= { upsControl 3 }

upsRebootWithDuration OBJECT-TYPE
    SYNTAX     Integer32 (-1..300)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will immediately shutdown (i.e.,
            turn off) either the UPS output or the UPS system (as
            determined by the value of upsShutdownType at the time
            of shutdown) for a period equal to the indicated
            number of seconds, after which time the output will be
            started, including starting the UPS, if necessary.  If
            the number of seconds required to perform the request
            is greater than the requested duration, then the
            requested shutdown and startup cycle shall be
            performed in the minimum time possible, but in no case
            shall this require more than the requested duration
            plus 60 seconds.  When read, upsRebootWithDuration
            shall return the number of seconds remaining in the
            countdown, or -1 if no countdown is in progress.  If
            the startup should occur during a utility failure, the
            startup shall not occur until the utility power is
            restored.(*)"
    ::= { upsControl 4 }

upsAutoRestart OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object to 'on' will cause the UPS system
            to restart after a shutdown if the shutdown occurred
            during a power loss as a result of either a
            upsShutdownAfterDelay or an internal battery depleted
            condition.  Setting this object to 'off' will prevent
            the UPS system from restarting after a shutdown until
            an operator manually or remotely explicitly restarts
            it.  If the UPS is in a startup or reboot countdown,
            then the UPS will not restart until that delay has
            been satisfied.(*)"
    ::= { upsControl 5 }

upsReceptaclesNum OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of receptacles utilized in this device.
            This entry indicates the number of rows in the receptacle
            table."
    ::= { upsControl 6 }

upsReceptacleTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsReceptacleEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of receptacle table entries.  The number of
            entries is given by the value of upsReceptacleNum."
    ::= { upsControl 7 }

upsReceptacleEntry OBJECT-TYPE
    SYNTAX     UpsReceptacleEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular receptacle."
    INDEX { upsReceptacleLineIndex }
    ::= { upsReceptacleTable 1 }

UpsReceptacleEntry ::= SEQUENCE {
    upsReceptacleLineIndex  PositiveInteger32,
    upsReceptacleOnOff      INTEGER    
}

upsReceptacleLineIndex OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The receptacle line identifier."
    ::= { upsReceptacleEntry 1 }

upsReceptacleOnOff OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the receptacle. Setting this 
             object to 'on' will cause the receptacle to be turned
             on. Setting this object to 'off' will turn the
             receptacle off. If the receptacle is already in the
             desired state nothing will happen. After an
             autorestart (see upsAutoRestart) the receptacle will
             be on."
    ::= { upsReceptacleEntry 2 }

upsUPSMode OBJECT-TYPE
    SYNTAX     INTEGER {
        offLine(1),
        onLine(2),
        ecomode(3),
        iem(4)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The operation mode off the UPS. Off-line indicates a
            mode in which the input power is transferred to the
            output directly or via a step-up or step-down
            transformer. On-line mode indicates a mode in which 
            the output power is regenerated through some convertor.
            the operating mode of the UPS may be fixed, or may be
            selectable (e.g. an on-line UPS with ecomode)"
    ::= { upsControl 8 }

upsRectifierOnOff OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the rectifier. Setting this 
             object to 'on' will cause the rectifier to be turned
             on. Setting this object to 'off' will turn the
             rectifier off. If the rectifier is already in the
             desired state nothing will happen. "
    ::= { upsControl 9 }

upsBatteryChargeMethod OBJECT-TYPE
    SYNTAX     INTEGER {
        normalcharge(1),
        boostcharge(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the charge method. Setting this 
             object to 'Normal charge' will cause the battery to be 
             charged using the normal method. Setting this object to 
             'Boost charge' will charge the battery in boost mode. 
             If the charge method is already in the desired state 
             nothing will happen. "
    ::= { upsControl 10 }

upsInverterOnOff OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the inverter. Setting this 
             object to 'on' will cause the inverter to be turned
             on. Setting this object to 'off' will turn the
             inverter off. If the inverter is already in the
             desired state nothing will happen. "
    ::= { upsControl 11 }

upsBypassOnOff OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the bypass. Setting this 
             object to 'on' will cause the bypass to be activated.
             Setting this object to 'off' will deactivate the
             bypass. If the UPS is already in the
             desired state nothing will happen. "
    ::= { upsControl 12 }

upsLoadSource OBJECT-TYPE
    SYNTAX     INTEGER {
        onbypass(1),
        onInverter(2),
        onDetour(3),
        loadOff(4),
        other (5)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present source of the load. Setting this 
             object to 'On bypass' will cause the load to be 
             supplied by the bypass.
             Setting this object to 'On inverter' will cause the 
             load to be supplied by the inverter.
             If the load is already supplied by the desired 
             source nothing will happen. "
    ::= { upsControl 13 }
 
--
-- The Configuration group generic.
--

upsConfigInputVoltage OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal input voltage.  On those
            systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfig 1 }

upsConfigInputFreq OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal input frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfig 2 }

upsConfigOutputVoltage OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal output voltage.  On
            those systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfig 3 }

upsConfigOutputFreq OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal output frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfig 4 }

upsConfigOutputVA OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Volt-Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal Volt-Amp rating.(*)"
    ::= { upsConfig 5 }

upsConfigOutputPower OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal true power rating.(*)"
    ::= { upsConfig 6 }

upsConfigLowBattTime OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "minutes"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The value of upsEstimatedMinutesRemaining at which a
            lowBattery condition is declared.  For agents which
            support only discrete (discontinuous) values, then the
            agent shall round up to the next supported value.  If
            the requested value is larger than the largest
            supported value, then the largest supported value
            shall be selected.(*)"
    ::= { upsConfig 7 }

upsConfigAudibleStatus OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2),
        muted(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The requested state of the audible alarm.  When in
            the disabled state, the audible alarm should never
            sound.  The enabled state is self-describing.  Setting
            this object to muted(3) when the audible alarm is
            sounding shall temporarily silence the alarm.  It will
            remain muted until it would normally stop sounding and
            the value returned for read operations during this
            period shall equal muted(3).  At the end of this
            period, the value shall revert to enabled(2).  Writes
            of the value muted(3) when the audible alarm is not
            sounding shall be accepted but otherwise shall have no
            effect.(*)"
    ::= { upsConfig 8 }

upsConfigLowVoltageTransferPoint OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The minimum input line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfig 9 }

upsConfigHighVoltageTransferPoint OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfig 10 }

upsConfigBatteryCapacity OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Amps Hours"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The installed battery capacity. This value is the 'factory'-value,
             not the value after calibration."
    ::= { upsConfig 11 }

upsConfigBatteryChargeCurrent OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum battery charge current, including external chargers."
    ::= { upsConfig 12 }      

upsConfigNoLoadShutdown OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Dis- or enable 'no load' shutdown from the contact interface."
    ::= { upsConfig 13 }
 
upsConfigStartDelay OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"    
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Minimum required autonomy time before the UPS may perform an
             autorestart."
    ::= { upsConfig 14 }

--
-- The GetSet group generic.
--

upsEventGetNext OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventSetStartingTimeStamp
            will be used as the start value of the table with the lowest index number."
    ::= { upsGetSet 1 }

upsEventGetPrevious OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventLastTime will
            be used as the last value of the table with the highest index number.

            Returns SNMPNOSUCHNAME for UPSs that don't support this command."
    ::= { upsGetSet 2 }
    
upsEventSetStartingTimeStamp OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The timestamp which is used as starting point for downloading
             events from the UPS event buffer"
    ::= { upsGetSet 3 }    

upsEventRetreiveCurrentTimeStamp OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current timestamp is retreived from the UPS"
    ::= { upsGetSet 4 }    

upsEventTableSize OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the event table.
            This object indicates the number of rows in the event table."
    ::= { upsGetSet 5 }

upsEventTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsEventEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of event table entries.  The number of entries is always
            10, and the value of upsEventTableSize gives the number of valid
            entries from the begging of the table.  Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..10)):

            PDU-SET upsSetStartingTimeStamp <time> 
            PDU-SET upsEventGetNext <number>
            PDU-GET upsEventTableSize
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 1
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 2
            ..
            PDU-GET upsEventCode,upsEventStatus,upsEventTime <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsEventTableSize.
            "
    ::= { upsGetSet 6 }

upsEventEntry OBJECT-TYPE
    SYNTAX     UpsEventEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular event."
    INDEX { upsEventLineIndex }
    ::= { upsEventTable 1 }

UpsEventEntry ::= SEQUENCE {
    upsEventLineIndex PositiveInteger32,
    upsEventCode      Integer32,
    upsEventStatus    NonNegativeInteger32,
    upsEventTime      NonNegativeInteger32
}

upsEventLineIndex OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The event line identifier."
    ::= { upsEventEntry 1 }

upsEventCode OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The event code in numerical format."
    ::= { upsEventEntry 2 }

upsEventStatus OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of the UPS at the moment that the event was generated.
             The format is specified at the 'upsStatus' command.
             If the UPS is not able to deliver status information, then
             SNMPNOSUCHNAME is returned."
    ::= { upsEventEntry 3 }

upsEventTime OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The timestamp of the moment the event was generated."
    ::= { upsEventEntry 4 }

upsParametersRead OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to retreive from the UPS.
            When this object is set the ParameterTable will be filled with the
            requested number of entries. The value upsParametersStartAddress
            will be used as the start value of the table with the lowest index 
            number."
    ::= { upsGetSet 7 }

upsParametersWrite OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to write to the UPS.
            When this object is set the ParameterTable will be send to the ups. 
            The value upsParametersStartAddress will be used for the first value 
            of the table with the lowest index number."
    ::= { upsGetSet 8 }

upsParametersStartAddress OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The address which is used as starting point for downloading
             parameters from the UPS"
    ::= { upsGetSet 9 }    

upsParameterTableSize OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the parameter table.
            This object indicates the number of rows in the parameter table."
    ::= { upsGetSet 10 }

upsParameterTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsParameterEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of parameter entries. The number of entries is always
            16, and the value of upsParameterTableSize gives the number of valid
            entries from the begging of the table. Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..16)):

            Read sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParametersRead <number>
            PDU-GET upsParameterTableSize
            PDU-GET upsParameterValue 1
            PDU-GET upsParameterValue 2
            ..
            PDU-GET upsParameterValue <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsParameterTableSize.

            Write sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParameterValue 1
            PDU-SET upsParameterValue 2
            ..
            PDU-SET upsParameterValue <number>
            PDU-SET upsParametersWrite <number>
            "
    ::= { upsGetSet 11 }

upsParameterEntry OBJECT-TYPE
    SYNTAX     UpsParameterEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular parameter."
    INDEX { upsParameterLineIndex }
    ::= { upsParameterTable 1 }

UpsParameterEntry ::= SEQUENCE {
    upsParameterLineIndex PositiveInteger32,
    upsParameterValue     Integer32   
}

upsParameterLineIndex OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The parameter line identifier."
    ::= { upsParameterEntry 1 }

upsParameterValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The parameter value in numerical format."
    ::= { upsParameterEntry 2 }

upsStatus OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The global UPS status is returned. Every bit reflects a specific 
             status condition. Unused bits returns as 0. The status value can 
             also be found on other commands. The value SNMPNOSUCHNAME means 
             'invalid status' or 'status value non available'.

             Status
                     1  0000 0001h upsStatusEcomodeIsOn
                     2  0000 0002h upsStatusBatteryIsCharging
                     4  0000 0004h upsStatusBatteryIsDischarging
                     8  0000 0008h upsStatusAlarmIsActive
                    16  0000 0010h upsStatusRectifierIsOn
                    32  0000 0020h upsStatusLowBattery
                    64  0000 0040h upsStatusOnBypass
                   128  0000 0080h upsStatusMainsBypassOK
                   256  0000 0100h upsStatusMainsRectifierOK
                   512  0000 0200h upsStatusDetourIsOn
                  1024  0000 0400h upsStatusAcousticAlarmIsOn
                  2048  0000 0800h upsStatusGlobalServiceCheck
                  4096  0000 1000h upsStatusInverterIsOn
                  8192  0000 2000h upsStatusNotInParallel (Q1 open)
                 16384  0000 4000h upsStatusResetLoadOff
                 32768  0000 8000h upsStatusLoadOff 
                 65536  0001 0000h upsStatusBoostMode 
                131072  0002 0000h upsStatusBuckMode 
                262144  0004 0000h upsStatusIemModeIsOn 
                524288  0008 0000h upsStatus5thFilterIsOn 
               1048576  0010 0000h upsStatus11thFilterIsOn
               2097152  0020 0000h upsStatus2ndRectifierBridgeIsOn
               4194304  0040 0000h - reserved -
               8388608  0080 0000h - reserved -
              16777216  0100 0000h - reserved -
              33554432  0200 0000h - reserved -
              67108864  0400 0000h - reserved -
             134217728  0800 0000h - reserved -
             268435456  1000 0000h upsGlobalParallelValues "
    ::= { upsGetSet 12 }

upsMainsStatisticsMBfail OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of main bypass failures (>200 ms), since UPS installation."
    ::= { upsGetSet 13 }

upsMainsStatisticsMRfail OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of mains rectifier failures (>200 ms), since UPS installation."
    ::= { upsGetSet 14 }
  
upsMainsStatisticsB2 OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (0..2 ms), during the last 7 days."
    ::= { upsGetSet 15 }

upsMainsStatisticsB5 OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (2..5 ms), during the last 7 days."
    ::= { upsGetSet 16 }

upsMainsStatisticsB10 OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (5..10 ms), during the last 7 days."
    ::= { upsGetSet 17 }

upsMainsStatisticsB200 OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (10..200 ms), during the last 7 days."
    ::= { upsGetSet 18 }

upsMainsStatisticsBypRel OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bypass reliability degree [0..100%;255]. The value NOSUCHNAME means 'not available'."
    ::= { upsGetSet 19 }

upsTimegen OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The current timestamp (or real-time) of the UPS. For the format, 
             see 'Timestamp' specifications. The write-command has to comply with the 
             correct timestamp format expected by the UPS (counter value or real-time-clock 
             value). Missing to doing so will result in a SNMPgenERROR, 
             meaning 'command not supported'. It is possible to know which is the timestamp 
             format supported by the UPS, by issuing a read-command or by reading events, 
             which includes timestamps."
    ::= { upsGetSet 20 }

upsRequestPermission OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An encrypted code is send to enable use of restricted write objects during
             a limited period of time."
    ::= { upsGetSet 21 }
    
upsEventGetCode OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The code which is used as starting point to downloading the events from the 
            UPS event buffer."
    ::= { upsGetSet 22 }    
    
upsEventSpinLock OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the event subsystem. "

    ::= { upsGetSet 23 }
    
upsParameterSpinLock OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the parameters subsystem. "

    ::= { upsGetSet 24 }


--
-- GE Trap group generic
--

upsTrapAlarmBatteryBad NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement."
    ::= { geUPSTraps 1 }

upsTrapAlarmOnBattery NOTIFICATION-TYPE
    OBJECTS  { upsSecondsOnBattery  }
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from the batteries."
    ::= { geUPSTraps 2 }

upsTrapAlarmLowBattery NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime."
    ::= { geUPSTraps 3 }

upsTrapAlarmDepletedBattery NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost)"
    ::= { geUPSTraps 4 }

upsTrapAlarmTempBad NOTIFICATION-TYPE
    OBJECTS { upsBatteryTemperature }
    STATUS  current
    DESCRIPTION
            "A temperature is out of tolerance."
    ::= { geUPSTraps 5 }

upsTrapAlarmInputBad NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input condition is out of tolerance."
    ::= { geUPSTraps 6 }

upsTrapAlarmOutputBad NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance."
    ::= { geUPSTraps 7 }

upsTrapAlarmOutputOverload NOTIFICATION-TYPE
    OBJECTS  { upsOutputNumLines, upsOutputPercentLoad }
    STATUS  current
    DESCRIPTION
            "The output load exceeds the UPS output capacity."
    ::= { geUPSTraps 8 }

upsTrapAlarmOnBypass NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS."
    ::= { geUPSTraps 9 }

upsTrapAlarmBypassBad NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is out of tolerance."
    ::= { geUPSTraps 10 }

upsTrapAlarmOutputOffAsRequested NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off."
    ::= { geUPSTraps 11 }

upsTrapAlarmUpsOffAsRequested NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The entire UPS has shutdown as commanded."
    ::= { geUPSTraps 12 }

upsTrapAlarmChargerFailed NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem."
    ::= { geUPSTraps 13 }

upsTrapAlarmUpsOutputOff NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS is in the off state."
    ::= { geUPSTraps 14 }

upsTrapAlarmUpsSystemOff NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is in the off state."
    ::= { geUPSTraps 15 }

upsTrapAlarmFanFailure NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected."
    ::= { geUPSTraps 16 }

upsTrapAlarmFuseFailure NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fuses has been detected."
    ::= { geUPSTraps 17 }

upsTrapAlarmGeneralFault NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault in the UPS has been detected."
    ::= { geUPSTraps 18 }

upsTrapAlarmDiagnosticTestFailed NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure."
    ::= { geUPSTraps 19 }

upsTrapAlarmCommunicationsLost NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem has been encountered in the communication
            between the agent and the UPS."
    ::= { geUPSTraps 20 }
    
upsTrapAlarmAwaitingPower NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of the input power (*)."
    ::= { geUPSTraps 21 }    

upsTrapAlarmShutdownPending NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelay }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway."
    ::= { geUPSTraps 22 }

upsTrapAlarmShutdownImminent NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 seconds; this may be either a timed shutdown or a
            low battery shutdown."
    ::= { geUPSTraps 23 }

upsTrapAlarmTestInProgress NOTIFICATION-TYPE
    OBJECTS  { upsTestId }
    STATUS  current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY."
    ::= { geUPSTraps 24 }

upsTrapAlarmReceptacleOff NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched off."
    ::= { geUPSTraps 25 }

upsTrapAlarmHighspeedBusFailure NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is detected."
    ::= { geUPSTraps 26 }

upsTrapAlarmHighspeedBusJACRCFailure NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is detected."
    ::= { geUPSTraps 27 }
     
upsTrapAlarmConnectivityBusFailure NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus is detected."
    ::= { geUPSTraps 28 }
    
upsTrapAlarmHighspeedBusJBCRCFailure NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
    ::= { geUPSTraps 29 }
     
upsTrapAlarmCurrentSharingFailure NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is detected."
     ::= { geUPSTraps 30 }
     
upsTrapAlarmDCRippleFailure NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is detected."
     ::= { geUPSTraps 31 }  

upsTrapAlarmBatteryBadRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Battery bad condition is restored."
    ::= { geUPSTraps 33 }

upsTrapAlarmOnBatteryRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from mains again."
    ::= { geUPSTraps 34 }

upsTrapAlarmLowBatteryRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Low Battery condition is restored."
    ::= { geUPSTraps 35 }

upsTrapAlarmDepletedBatteryRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Depleted Battery condition is restored."
    ::= { geUPSTraps 36 }

upsTrapAlarmTempBadRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A bad temperature condition is restored."
    ::= { geUPSTraps 37 }

upsTrapAlarmInputBadRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input bad condition is restored."
    ::= { geUPSTraps 38 }

upsTrapAlarmOutputBadRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output bad condition is restored."
    ::= { geUPSTraps 39 }

upsTrapAlarmOutputOverloadRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output overload condition is restored."
    ::= { geUPSTraps 40 }

upsTrapAlarmOnBypassRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An On Bypass condition is restored."
    ::= { geUPSTraps 41 }

upsTrapAlarmBypassBadRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Bypass bad condition is restored."
    ::= { geUPSTraps 42 }

upsTrapAlarmOutputOffAsRequestedRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A request shutdown has been restored."
    ::= { geUPSTraps 43 }

upsTrapAlarmUpsOffAsRequestedRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A entire UPS command has been restored."
    ::= { geUPSTraps 44 }

upsTrapAlarmChargerFailedRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Charger Failer condition is restored."
    ::= { geUPSTraps 45 }

upsTrapAlarmUpsOutputOn NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS switched in the on state."
    ::= { geUPSTraps 46 }

upsTrapAlarmUpsSystemOn NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is switched in the on state."
    ::= { geUPSTraps 47 }

upsTrapAlarmFanFailureRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fan failure condition is restored."
    ::= { geUPSTraps 48 }

upsTrapAlarmFuseFailureRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fuse failure condition is restored."
    ::= { geUPSTraps 49 }

upsTrapAlarmGeneralFaultRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault is restored."
    ::= { geUPSTraps 50 }

upsTrapAlarmDiagnosticTestFailedRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A last diagnostic test indicates a failure is 
            restored."
    ::= { geUPSTraps 51 }

upsTrapAlarmCommunicationsLostRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem in the communication between the agent 
            and the UPS is restored."
    ::= { geUPSTraps 52 }
    
upsTrapAlarmAwaitingPowerRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A awaiting power condition is restored (*)."
    ::= { geUPSTraps 53 }    

upsTrapAlarmShutdownPendingRestored NOTIFICATION-TYPE
    OBJECTS { upsShutdownAfterDelay }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is restored."
    ::= { geUPSTraps 54 }

upsTrapAlarmShutdownImminentRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A shutdown imminent condition is restored."
    ::= { geUPSTraps 55 }

upsTrapAlarmTestInProgressRestored NOTIFICATION-TYPE
    OBJECTS  { upsTestId }
    STATUS  current
    DESCRIPTION
            "The test is in progress is terminated."
    ::= { geUPSTraps 56 }

upsTrapAlarmReceptacleOn NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched on."
    ::= { geUPSTraps 57 }

upsTrapAlarmHighspeedBusRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is restored."
    ::= { geUPSTraps 58 }

upsTrapAlarmHighspeedBusJACRCRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is restored."
    ::= { geUPSTraps 59 }
     
upsTrapAlarmConnectivityBusRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is restored."
    ::= { geUPSTraps 60 }

upsTrapAlarmHighspeedBusJBCRCRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is restored."
    ::= { geUPSTraps 61 }

upsTrapAlarmCurrentSharingRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is restored."
     ::= { geUPSTraps 62 }
     
upsTrapAlarmDCRippleRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is restored."
     ::= { geUPSTraps 63 }

upsTrapAlarmValueLow NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value below its low-level threshold."
    ::= { geUPSTraps 129 }

upsTrapAlarmValueHigh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value higher than its high-level threshold."
    ::= { geUPSTraps 130 }

upsTrapAlarmValueLowRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueLow alarm condition is restored."
    ::= { geUPSTraps 133 }

upsTrapAlarmValueHighRestored NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueHigh alarm condition is restored."
    ::= { geUPSTraps 134 }


--
-- Diagnostic Group Generic
--

upsDiagnosticBusJACommunicationStatus OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnostic 1 }
    
upsDiagnosticBusJBCommunicationStatus OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnostic 2 }
  
upsDiagnosticBatteryLifetime OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnostic 3 }

upsDiagnosticFansLifetime OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnostic 4 } 
    
upsDiagnosticDCcapacitorsLifetime OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnostic 5 }  
    
upsDiagnosticACcapacitorsLifetime OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnostic 6 }
    
upsDiagnosticGlobalServiceCheck OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnostic 7 }

--
-- The Device Identification group. First
--      All objects in this group except for upsIdentName and
--      upsIdentAttachedDevices are set at device initialization
--      and remain static.
--

upsIdentManufacturerfirst OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the UPS manufacturer.(*)"
    ::= { upsIdentfirst 1 }

upsIdentModelfirst OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS Model designation.(*)"
    ::= { upsIdentfirst 2 }

upsIdentUPSSoftwareVersionfirst OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS firmware/software version(s).  This variable
            may or may not have the same value as
            upsIdentAgentSoftwareVersion in some implementations.(*)"
    ::= { upsIdentfirst 3 }

upsIdentAgentSoftwareVersionfirst OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS agent software version.  This variable may or
            may not have the same value as
            upsIdentUPSSoftwareVersion in some implementations.(*)"
    ::= { upsIdentfirst 4 }

upsIdentNamefirst OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the UPS.  This object should be
            set by the administrator.(*)"
    ::= { upsIdentfirst 5 }

upsIdentAttachedDevicesfirst OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the devices attached to the
            output(s) of the UPS.  This object should be set by
            the administrator.(*)"
    ::= { upsIdentfirst 6 }

upsIdentUPSSerialNumberfirst OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS serial number"
    ::= { upsIdentfirst 7 }
    
upsIdentComProtVersionfirst OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IMV communication protocol version"
    ::= { upsIdentfirst 8 } 
  
upsIdentOperatingTimefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present value of the operating time.
             total 'on' time since UPS manufactured"
    ::= { upsIdentfirst 9 } 
    
--
-- Battery Group Generic
--

upsBatteryStatusfirst OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        batteryNormal(2),
        batteryLow(3),
        batteryDepleted(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The indication of the capacity remaining in the UPS
            system's batteries.   A value of batteryNormal
            indicates that the remaining run-time is greater than
            upsConfigLowBattTime.  A value of batteryLow indicates
            that the remaining battery run-time is less than or
            equal to upsConfigLowBattTime.  A value of
            batteryDepleted 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 and the UPS is
            unable to sustain the output).(*)"
    ::= { upsBatteryfirst 1 }

upsSecondsOnBatteryfirst OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If the unit is on battery power, the elapsed time
            since the UPS last switched to battery power, or the
            time since the network management subsystem was last
            restarted, whichever is less.  Zero shall be returned
            if the unit is not on battery power.(*)"
    ::= { upsBatteryfirst 2 }

upsEstimatedMinutesRemainingfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the time to battery charge depletion
            under the present load conditions if the utility power
            is off and remains off, or if it were to be lost and
            remain off.(*)"
    ::= { upsBatteryfirst 3 }

upsEstimatedChargeRemainingfirst OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the battery charge remaining expressed
            as a percent of full charge.(*)"
    ::= { upsBatteryfirst 4 }

upsBatteryVoltagefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Volt DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present battery voltage.(*)"
    ::= { upsBatteryfirst 5 }

upsBatteryCurrentfirst OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present battery current.(*)"
    ::= { upsBatteryfirst 6 }

upsBatteryTemperaturefirst OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "degrees Centigrade"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ambient temperature at or near the UPS Battery
            casing.(*)"
    ::= { upsBatteryfirst 7 }

upsBatteryRipplefirst OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Volt RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present DC link RMS voltage ripple.(*)"
    ::= { upsBatteryfirst 8 }

--
-- Input Group
--

upsInputLineBadsfirst OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A count of the number of times the input entered an
            out-of-tolerance condition as defined by the
            manufacturer.  This count is incremented by one each
            time the input transitions from zero out-of-tolerance
            lines to one or more input lines out-of-tolerance.(*)"
    ::= { upsInputfirst 1 }

upsInputNumLinesfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of input lines utilized in this device.
            This variable indicates the number of rows in the
            input table.(*)"
    ::= { upsInputfirst 2 }

upsInputFirstTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsInputFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of input table entries.  The number of entries
            is given by the value of upsInputNumLines.(*)"
    ::= { upsInputfirst 3 }

upsInputFirstEntry OBJECT-TYPE
    SYNTAX     UpsInputFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular input line.(*)"
    INDEX { upsInputLineIndexfirst }
    ::= { upsInputFirstTable 1 }

UpsInputFirstEntry ::= SEQUENCE {
    upsInputLineIndexfirst   PositiveInteger32,
    upsInputFrequencyfirst   NonNegativeInteger32,
    upsInputVoltagefirst     NonNegativeInteger32,
    upsInputCurrentfirst     NonNegativeInteger32,
    upsInputTruePowerfirst   NonNegativeInteger32,
    upsInputVoltageMinfirst  NonNegativeInteger32,
    upsInputVoltageMaxfirst  NonNegativeInteger32
}

upsInputLineIndexfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The input line identifier.(*)"
    ::= { upsInputFirstEntry 1 }

upsInputFrequencyfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present input frequency.(*)"
    ::= { upsInputFirstEntry 2 }

upsInputVoltagefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input voltage.(*)"
    ::= { upsInputFirstEntry 3 }

upsInputCurrentfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input current.(*)"
    ::= { upsInputFirstEntry 4 }

upsInputTruePowerfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input true power.(*)"
    ::= { upsInputFirstEntry 5 }

upsInputVoltageMinfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The lowest magnitude of the input voltage since last read out."
    ::= { upsInputFirstEntry 6 }

upsInputVoltageMaxfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The highest magnitude of the input voltage since last read out."
    ::= { upsInputFirstEntry 7 }

--
-- The Output group.
--

upsOutputSourcefirst OBJECT-TYPE
    SYNTAX     INTEGER {
        other(1),
        none(2),
        normal(3),
        bypass(4),
        battery(5),
        booster(6),
        reducer(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present source of output power.  The enumeration
            none(2) indicates that there is no source of output
            power (and therefore no output power), for example,
            the system has opened the output breaker.(*)"
    ::= { upsOutputfirst 1 }

upsOutputFrequencyfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output frequency.(*)"
    ::= { upsOutputfirst 2 }

upsOutputNumLinesfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of output lines utilized in this device.
            This variable indicates the number of rows in the
            output table.(*)"
    ::= { upsOutputfirst 3 }

upsOutputFirstTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsOutputFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of output table entries.  The number of
            entries is given by the value of upsOutputNumLines.(*)"
    ::= { upsOutputfirst 4 }

upsOutputFirstEntry OBJECT-TYPE
    SYNTAX     UpsOutputFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular output line.(*)"
    INDEX { upsOutputLineIndexfirst }
    ::= { upsOutputFirstTable 1 }

UpsOutputFirstEntry ::= SEQUENCE {
    upsOutputLineIndexfirst   PositiveInteger32,
    upsOutputVoltagefirst     NonNegativeInteger32,
    upsOutputCurrentfirst     NonNegativeInteger32,
    upsOutputPowerfirst       NonNegativeInteger32,
    upsOutputPercentLoadfirst Integer32,
    upsOutputPowerFactorfirst Integer32,
    upsOutputPeakCurrentfirst Integer32,
    upsOutputShareCurrentfirst Integer32
}

upsOutputLineIndexfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The output line identifier.(*)"
    ::= { upsOutputFirstEntry 1 }

upsOutputVoltagefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output voltage.(*)"
    ::= { upsOutputFirstEntry 2 }

upsOutputCurrentfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output current.(*)"
    ::= { upsOutputFirstEntry 3 }

upsOutputPowerfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output true power.(*)"
    ::= { upsOutputFirstEntry 4 }

upsOutputPercentLoadfirst OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The percentage of the UPS power capacity presently
            being used on this output line, i.e., the greater of
            the percent load of true power capacity and the
            percent load of VA.(*)"
    ::= { upsOutputFirstEntry 5 }

upsOutputPowerFactorfirst OBJECT-TYPE
    SYNTAX     Integer32 (-99..100)
    UNITS      "0.01 cos phi"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output power factor. 
             The returned value correspond to the cosf of the load.
             A positive value indicate an inductive load; 
             a negative value indicate a capacitive load; 
             value 1 indicate a resistive load. 
             If the measure is not available due to a small load for 
             a consistent calculation, the NA value is then returned.(*)"
    ::= { upsOutputFirstEntry 6 }
    
upsOutputPeakCurrentfirst OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output peak current.(*)"
    ::= { upsOutputFirstEntry 7 }

upsOutputShareCurrentfirst OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "In a parallel system ideally all the UPS are requested to 
            contribute to the load with the same amount of current, 
            i.e. with no current share. The current share occurs when an
            UPS exchanges some current with another UPS, so that this 
            current component doesn't feed the load. 
            The share part of the UPS current represents an undesired UPS
            loading, and therefore it should be minimized. If the share 
            current is too high, the UPS results overloaded and in some 
            conditions (i.e. very high load) the system could turn on 
            bypass reducing dramatically the global system reliability.
   PMAD detects the amount of share currents in a parallel system,
   generating an alarm if this value is above a parameter-based threshold.
   Single UPS systems don't have this feature, NA will be provided.(*)"
    ::= { upsOutputFirstEntry 8 }

--
-- The Bypass group generic.
--

upsBypassFrequencyfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass frequency.(*)"
    ::= { upsBypassfirst 1 }

upsBypassNumLinesfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of bypass lines utilized in this device.
            This entry indicates the number of rows in the bypass
            table.(*)"
    ::= { upsBypassfirst 2 }

upsBypassFirstTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsBypassFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of bypass table entries.  The number of
            entries is given by the value of upsBypassNumLines.(*)"
    ::= { upsBypassfirst 3 }

upsBypassFirstEntry OBJECT-TYPE
    SYNTAX     UpsBypassFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular bypass input.(*)"
    INDEX { upsBypassLineIndexfirst }
    ::= { upsBypassFirstTable 1 }

UpsBypassFirstEntry ::= SEQUENCE {
    upsBypassLineIndexfirst  PositiveInteger32,
    upsBypassVoltagefirst    NonNegativeInteger32,
    upsBypassCurrentfirst    NonNegativeInteger32,
    upsBypassPowerfirst      NonNegativeInteger32
}

upsBypassLineIndexfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The bypass line identifier.(*)"
    ::= { upsBypassFirstEntry 1 }

upsBypassVoltagefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass voltage.(*)"
    ::= { upsBypassFirstEntry 2 }

upsBypassCurrentfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass current.(*)"
    ::= { upsBypassFirstEntry 3 }

upsBypassPowerfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present true power conveyed by the bypass.(*)"
    ::= { upsBypassFirstEntry 4 }

--
-- The Alarm group generic.
--

upsAlarmsPresentfirst OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present number of active alarm conditions.(*)"
    ::= { upsAlarmfirst 1 }

upsAlarmFirstTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsAlarmFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
            upsAlarmId equal to 1, and increments the value of
            upsAlarmId each time a new row is created, wrapping to
            the first free value greater than or equal to 1 when
            the maximum value of upsAlarmId would otherwise be
            exceeded.  Consequently, after multiple operations,
            the table may become sparse, e.g., containing entries
            for rows 95, 100, 101, and 203 and the entries should
            not be assumed to be in chronological order because
            upsAlarmId might have wrapped.

            Alarms are named by an AutonomousType (OBJECT
            IDENTIFIER), upsAlarmDescr, to allow a single table to
            reflect well known alarms plus alarms defined by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.  No
            two rows will have the same value of upsAlarmDescr,
            since alarms define conditions.  In order to meet this
            requirement, care should be taken in the definition of
            alarm conditions to insure that a system cannot enter
            the same condition multiple times simultaneously.

            The number of rows in the table at any given time is
            reflected by the value of upsAlarmsPresent.(*)"
    ::= { upsAlarmfirst 2 }

upsAlarmFirstEntry OBJECT-TYPE
    SYNTAX     UpsAlarmFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular alarm.(*)"
    INDEX { upsAlarmIdfirst }
    ::= { upsAlarmFirstTable 1 }

UpsAlarmFirstEntry ::= SEQUENCE {
    upsAlarmIdfirst          PositiveInteger32,
    upsAlarmDescrfirst       AutonomousType,
    upsAlarmTimefirst       TimeStamp
}

upsAlarmIdfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique identifier for an alarm condition.  This
            value must remain constant.(*)"
    ::= { upsAlarmFirstEntry 1 }

upsAlarmDescrfirst OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A reference to an alarm description object.  The
            object referenced should not be accessible, but rather
            be used to provide a unique description of the alarm
            condition.(*)"
    ::= { upsAlarmFirstEntry 2 }

upsAlarmTimefirst OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when the alarm condition was
            detected.  If the alarm condition was detected at the
            time of agent startup and presumably existed before
            agent startup, the value of upsAlarmTime shall equal
            0.(*)"
    ::= { upsAlarmFirstEntry 3 }

--
-- Well known alarm conditions generic.
--

upsAlarmBatteryBadfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement.(*)"
    ::= { upsWellKnownAlarmsfirst  1 }

upsAlarmOnBatteryfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS is drawing power from the batteries.(*)"
    ::= { upsWellKnownAlarmsfirst  2 }

upsAlarmLowBatteryfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime.(*)"
    ::= { upsWellKnownAlarmsfirst  3 }

upsAlarmDepletedBatteryfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost.(*)"
    ::= { upsWellKnownAlarmsfirst  4 }

upsAlarmTempBadfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A temperature is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfirst  5 }

upsAlarmInputBadfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An input condition is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfirst  6 }

upsAlarmOutputBadfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfirst  7 }

upsAlarmOutputOverloadfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output load exceeds the UPS output capacity.(*)"
    ::= { upsWellKnownAlarmsfirst  8 }

upsAlarmOnBypassfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS.(*)"
    ::= { upsWellKnownAlarmsfirst  9 }

upsAlarmBypassBadfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfirst 10 }

upsAlarmOutputOffAsRequestedfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off.(*)"
    ::= { upsWellKnownAlarmsfirst 11 }

upsAlarmUpsOffAsRequestedfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The entire UPS has shutdown as commanded.(*)"
    ::= { upsWellKnownAlarmsfirst 12 }

upsAlarmChargerFailedfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem.(*)"
    ::= { upsWellKnownAlarmsfirst 13 }

upsAlarmUpsOutputOfffirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output of the UPS is in the off state.(*)"
    ::= { upsWellKnownAlarmsfirst 14 }

upsAlarmUpsSystemOfffirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS system is in the off state.(*)"
    ::= { upsWellKnownAlarmsfirst 15 }

upsAlarmFanFailurefirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected.(*)"
    ::= { upsWellKnownAlarmsfirst 16 }

upsAlarmFuseFailurefirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fuses has been detected.(*)"
    ::= { upsWellKnownAlarmsfirst 17 }

upsAlarmGeneralFaultfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A general fault in the UPS has been detected.(*)"
    ::= { upsWellKnownAlarmsfirst 18 }

upsAlarmDiagnosticTestFailedfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure.(*)"
    ::= { upsWellKnownAlarmsfirst 19 }

upsAlarmCommunicationsLostfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem has been encountered in the communications
            between the agent and the UPS.(*)"
    ::= { upsWellKnownAlarmsfirst 20 }

upsAlarmAwaitingPowerfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of input power.(*)"
    ::= { upsWellKnownAlarmsfirst 21 }

upsAlarmShutdownPendingfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway.(*)"
    ::= { upsWellKnownAlarmsfirst 22 }

upsAlarmShutdownImminentfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 seconds; this may be either a timed shutdown or a
            low battery shutdown.(*)"
    ::= { upsWellKnownAlarmsfirst 23 }

upsAlarmTestInProgressfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY.(*)"
    ::= { upsWellKnownAlarmsfirst 24 }

upsAlarmReceptacleOfffirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The receptacle are switch off    "
    ::= { upsWellKnownAlarmsfirst 25 }

upsAlarmHighSpeedBusFailurefirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the High Speed Bus communication is detected"
    ::= { upsWellKnownAlarmsfirst 26 }
    
upsAlarmHighSpeedBusJACRCFailurefirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A CRC failure on High Speed Bus JA is detected."
    ::= { upsWellKnownAlarmsfirst 27 }
    
upsAlarmConnectivityBusFailurefirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected."
    ::= { upsWellKnownAlarmsfirst 28 }

upsAlarmHighSpeedBusJBCRCFailurefirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A CRC failure on High Speed Bus JB is detected."
    ::= { upsWellKnownAlarmsfirst 29 }

upsAlarmCurrentSharingfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high current sharing on the parallel system."
    ::= { upsWellKnownAlarmsfirst 30 }
        
upsAlarmDCRipplefirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high ripple voltage on his DC link."
    ::= { upsWellKnownAlarmsfirst 31 }

upsAlarmMaskAfirst OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Specifies which alarm can be handled by the UPS.
            The 'Mask' parameter is a Long Integer32. The meaning
            of every bit is the same as for the 'upsAlarmGroupA'
            command. A bit having value=1 indicates that the
            corresponding alarm is handled by the UPS."
    ::= { upsAlarmfirst 4 }

--
-- The Test Group generic
--

upsTestIdfirst OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The test is named by an OBJECT IDENTIFIER which
            allows a standard mechanism for the initiation of
            tests, including the well known tests identified in
            this document as well as those introduced by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.

            Setting this variable initiates the named test. Sets
            to this variable require the presence of
            upsTestSpinLock in the same SNMP message.

            The set request will be rejected with an appropriate
            error message if the requested test cannot be
            performed, including attempts to start a test when
            another test is already in progress.  The status of
            the current or last test is maintained in
            upsTestResultsSummary. Tests in progress may be
            aborted by setting the upsTestId variable to
            upsTestAbortTestInProgress.

            Read operations return the value of the name of the
            test in progress if a test is in progress or the name
            of the last test performed if no test is in progress,
            unless no test has been run, in which case the well
            known value upsTestNoTestsInitiated is returned.(*)"
    ::= { upsTestfirst 1 }

-- see [6] for more information on the semantics of objects with
-- syntax of TestAndIncr

upsTestSpinLockfirst OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the test subsystem.  The spinlock is
            used as follows.

            Before starting a test, a manager-station should make
            sure that a test is not in progress as follows:

                tryagain:
                  get (upsTestSpinLock)
                  while (upsTestResultsSummary == inProgress) {
                    /* loop while a test is running for another
            manager */
                    short delay
                    get (upsTestSpinLock)
                  }
                  lockvalue = upsTestSpinLock
                  /* no test in progress, start the test */
                  set (upsTestSpinLock = lockvalue, upsTestId =
            requestedtest)
                  if (errorindex == 1) { /* (upsTestSpinLock
            failed) */
                    /* if problem is not access control, then
                        some other manager slipped in ahead of us
            */
                    goto tryagain
                  }
                  if (errorindex == 2) { /* (upsTestId) */
                    /* cannot perform the test */
                    give up
                  }
                  /* test started ok */
                  /* wait for test completion by polling
            upsTestResultsSummary */
                  get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  while (upsTestResultsSummary == inProgress) {
                    short delay
                    get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  }
                  /* when test completes, retrieve any additional
            test results */
                  /* if upsTestSpinLock == lockvalue + 1, then
            these are our test */
                  /* results (as opposed to another manager's */
                  The initial value of upsTestSpinLock at agent
            initialization shall
                  be 1.(*)"
    ::= { upsTestfirst 2 }

upsTestResultsSummaryfirst OBJECT-TYPE
    SYNTAX     INTEGER {
        donePass(1),
        doneWarning(2),
        doneError(3),
        aborted(4),
        inProgress(5),
        noTestsInitiated(6)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The results of the current or last UPS diagnostics
            test performed.  The values for donePass(1),
            doneWarning(2), and doneError(3) indicate that the
            test completed either successfully, with a warning, or
            with an error, respectively.  The value aborted(4) is
            returned for tests which are aborted by setting the
            value of upsTestId to upsTestAbortTestInProgress.
            Tests which have not yet concluded are indicated by
            inProgress(5).  The value noTestsInitiated(6)
            indicates that no previous test results are available,
            such as is the case when no tests have been run since
            the last reinitialization of the network management
            subsystem and the system has no provision for non-
            volatile storage of test results.(*)"
    ::= { upsTestfirst 3 }

upsTestResultsDetailfirst OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Additional information about upsTestResultsSummary.
            If no additional information available, a zero length
            string is returned.(*)"
    ::= { upsTestfirst 4 }

upsTestStartTimefirst OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time the test in
            progress was initiated, or, if no test is in progress,
            the time the previous test was initiated.  If the
            value of upsTestResultsSummary is noTestsInitiated(6),
            upsTestStartTime has the value 0.(*)"
    ::= { upsTestfirst 5 }

upsTestElapsedTimefirst OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time, in TimeTicks, since the test in
            progress was initiated, or, if no test is in progress,
            the previous test took to complete.  If the value of
            upsTestResultsSummary is noTestsInitiated(6),
            upsTestElapsedTime has the value 0.(*)"
    ::= { upsTestfirst 6 }

--
-- Well known tests generic.
--

upsTestNoTestsInitiatedfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "No tests have been initiated and no test is in
            progress.(*)"
    ::= { upsWellKnownTestsfirst  1 }

upsTestAbortTestInProgressfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The test in progress is to be aborted / the test in
            progress was aborted.(*)"
    ::= { upsWellKnownTestsfirst  2 }

upsTestGeneralSystemsTestfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The manufacturer's standard test of UPS device
            systems.(*)"
    ::= { upsWellKnownTestsfirst  3 }

upsTestQuickBatteryTestfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test that is sufficient to determine if the battery
            needs replacement.(*)"
    ::= { upsWellKnownTestsfirst  4 }

upsTestDeepBatteryCalibrationfirst OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The system is placed on battery to a discharge level,
            set by the manufacturer, sufficient to determine
            battery replacement and battery run-time with a high
            degree of confidence.  WARNING:  this test will leave
            the battery in a low charge state and will require
            time for recharging to a level sufficient to provide
            normal battery duration for the protected load.(*)"
    ::= { upsWellKnownTestsfirst  5 }

--
-- The Control group generic.
--

upsShutdownTypefirst OBJECT-TYPE
    SYNTAX     INTEGER {
        output(1),
        system&#40;2&#41;
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object determines the nature of the action to be
            taken at the time when the countdown of the
            upsShutdownAfterDelay and upsRebootWithDuration
            objects reaches zero.

            Setting this object to output(1) indicates that
            shutdown requests should cause only the output of the
            UPS to turn off.  Setting this object to system&#40;2&#41;
            indicates that shutdown requests will cause the entire
            UPS system to turn off.(*)"
    ::= { upsControlfirst 1 }

upsShutdownAfterDelayfirst OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will shutdown (i.e., turn off)
            either the UPS output or the UPS system &#40;as determined
            by the value of upsShutdownType at the time of
            shutdown&#41; after the indicated number of seconds, or
            less if the UPS batteries become depleted. Setting
            this object to 0 will cause the shutdown to occur
            immediately.  Setting this object to -1 will abort the
            countdown.  If the system is already in the desired
            state at the time the countdown reaches 0, then
            nothing will happen.  That is, there is no additional
            action at that time if upsShutdownType = system and
            the system is already off.  Similarly, there is no
            additional action at that time if upsShutdownType =
            output and the output is already off.  When read,
            upsShutdownAfterDelay will return the number of
            seconds remaining until shutdown, or -1 if no shutdown
            countdown is in effect.  On some systems, if the agent
            is restarted while a shutdown countdown is in effect,
            the countdown may be aborted.  Sets to this object
            override any upsShutdownAfterDelay already in effect.(*)"
    ::= { upsControlfirst 2 }

upsStartupAfterDelayfirst OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will start the output after the
            indicated number of seconds, including starting the
            UPS, if necessary.  Setting this object to 0 will
            cause the startup to occur immediately.  Setting this
            object to -1 will abort the countdown.  If the output
            is already on at the time the countdown reaches 0,
            then nothing will happen.  Sets to this object
            override the effect of any upsStartupAfterDelay
            countdown or upsRebootWithDuration countdown in
            progress.  When read, upsStartupAfterDelay will return
            the number of seconds until startup, or -1 if no
            startup countdown is in effect.  If the countdown
            expires during a utility failure, the startup shall
            not occur until the utility power is restored.  On
            some systems, if the agent is restarted while a
            startup countdown is in effect, the countdown is
            aborted.(*)"
    ::= { upsControlfirst 3 }

upsRebootWithDurationfirst OBJECT-TYPE
    SYNTAX     Integer32 (-1..300)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will immediately shutdown (i.e.,
            turn off) either the UPS output or the UPS system &#40;as
            determined by the value of upsShutdownType at the time
            of shutdown&#41; for a period equal to the indicated
            number of seconds, after which time the output will be
            started, including starting the UPS, if necessary.  If
            the number of seconds required to perform the request
            is greater than the requested duration, then the
            requested shutdown and startup cycle shall be
            performed in the minimum time possible, but in no case
            shall this require more than the requested duration
            plus 60 seconds.  When read, upsRebootWithDuration
            shall return the number of seconds remaining in the
            countdown, or -1 if no countdown is in progress.  If
            the startup should occur during a utility failure, the
            startup shall not occur until the utility power is
            restored.(*)"
    ::= { upsControlfirst 4 }

upsAutoRestartfirst OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object to 'on' will cause the UPS system
            to restart after a shutdown if the shutdown occurred
            during a power loss as a result of either a
            upsShutdownAfterDelay or an internal battery depleted
            condition.  Setting this object to 'off' will prevent
            the UPS system from restarting after a shutdown until
            an operator manually or remotely explicitly restarts
            it.  If the UPS is in a startup or reboot countdown,
            then the UPS will not restart until that delay has
            been satisfied.(*)"
    ::= { upsControlfirst 5 }

upsReceptaclesNumfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of receptacles utilized in this device.
            This entry indicates the number of rows in the receptacle
            table."
    ::= { upsControlfirst 6 }

upsReceptacleFirstTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsReceptacleFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of receptacle table entries.  The number of
            entries is given by the value of upsReceptacleNum."
    ::= { upsControlfirst 7 }

upsReceptacleFirstEntry OBJECT-TYPE
    SYNTAX     UpsReceptacleFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular receptacle."
    INDEX { upsReceptacleLineIndexfirst }
    ::= { upsReceptacleFirstTable 1 }

UpsReceptacleFirstEntry ::= SEQUENCE {
    upsReceptacleLineIndexfirst  PositiveInteger32,
    upsReceptacleOnOfffirst      INTEGER    
}

upsReceptacleLineIndexfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The receptacle line identifier."
    ::= { upsReceptacleFirstEntry 1 }

upsReceptacleOnOfffirst OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the receptacle. Setting this 
             object to 'on' will cause the receptacle to be turned
             on. Setting this object to 'off' will turn the
             receptacle off. If the receptacle is already in the
             desired state nothing will happen. After an
             autorestart (see upsAutoRestart) the receptacle will
             be on."
    ::= { upsReceptacleFirstEntry 2 }

upsUPSModefirst OBJECT-TYPE
    SYNTAX     INTEGER {
        offLine(1),
        onLine(2),
        ecomode(3),
        iem(4)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The operation mode off the UPS. Off-line indicates a
            mode in which the input power is transferred to the
            output directly or via a step-up or step-down
            transformer. On-line mode indicates a mode in which 
            the output power is regenerated through some convertor.
            the operating mode of the UPS may be fixed, or may be
            selectable (e.g. an on-line UPS with ecomode)"
    ::= { upsControlfirst 8 }

upsRectifierOnOfffirst OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the rectifier. Setting this 
             object to 'on' will cause the rectifier to be turned
             on. Setting this object to 'off' will turn the
             rectifier off. If the rectifier is already in the
             desired state nothing will happen. "
    ::= { upsControlfirst 9 }

upsBatteryChargeMethodfirst OBJECT-TYPE
    SYNTAX     INTEGER {
        normalcharge(1),
        boostcharge(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the charge method. Setting this 
             object to 'Normal charge' will cause the battery to be 
             charged using the normal method. Setting this object to 
             'Boost charge' will charge the battery in boost mode. 
             If the charge method is already in the desired state 
             nothing will happen. "
    ::= { upsControlfirst 10 }

upsInverterOnOfffirst OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the inverter. Setting this 
             object to 'on' will cause the inverter to be turned
             on. Setting this object to 'off' will turn the
             inverter off. If the inverter is already in the
             desired state nothing will happen. "
    ::= { upsControlfirst 11 }

upsBypassOnOfffirst OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the bypass. Setting this 
             object to 'on' will cause the bypass to be activated.
             Setting this object to 'off' will deactivate the
             bypass. If the UPS is already in the
             desired state nothing will happen. "
    ::= { upsControlfirst 12 }

upsLoadSourcefirst OBJECT-TYPE
    SYNTAX     INTEGER {
        onbypass(1),
        onInverter(2),
        onDetour(3),
        loadOff(4),
        other (5)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present source of the load. Setting this 
             object to 'On bypass' will cause the load to be 
             supplied by the bypass.
             Setting this object to 'On inverter' will cause the 
             load to be supplied by the inverter.
             If the load is already supplied by the desired 
             source nothing will happen. "
    ::= { upsControlfirst 13 }
 
--
-- The Configuration group generic.
--

upsConfigInputVoltagefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal input voltage.  On those
            systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfirst 1 }

upsConfigInputFreqfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal input frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfirst 2 }

upsConfigOutputVoltagefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal output voltage.  On
            those systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfirst 3 }

upsConfigOutputFreqfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal output frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfirst 4 }

upsConfigOutputVAfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Volt-Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal Volt-Amp rating.(*)"
    ::= { upsConfigfirst 5 }

upsConfigOutputPowerfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal true power rating.(*)"
    ::= { upsConfigfirst 6 }

upsConfigLowBattTimefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "minutes"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The value of upsEstimatedMinutesRemaining at which a
            lowBattery condition is declared.  For agents which
            support only discrete (discontinuous) values, then the
            agent shall round up to the next supported value.  If
            the requested value is larger than the largest
            supported value, then the largest supported value
            shall be selected.(*)"
    ::= { upsConfigfirst 7 }

upsConfigAudibleStatusfirst OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2),
        muted(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The requested state of the audible alarm.  When in
            the disabled state, the audible alarm should never
            sound.  The enabled state is self-describing.  Setting
            this object to muted(3) when the audible alarm is
            sounding shall temporarily silence the alarm.  It will
            remain muted until it would normally stop sounding and
            the value returned for read operations during this
            period shall equal muted(3).  At the end of this
            period, the value shall revert to enabled(2).  Writes
            of the value muted(3) when the audible alarm is not
            sounding shall be accepted but otherwise shall have no
            effect.(*)"
    ::= { upsConfigfirst 8 }

upsConfigLowVoltageTransferPointfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The minimum input line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigfirst 9 }

upsConfigHighVoltageTransferPointfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigfirst 10 }

upsConfigBatteryCapacityfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Amps Hours"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The installed battery capacity. This value is the 'factory'-value,
             not the value after calibration."
    ::= { upsConfigfirst 11 }

upsConfigBatteryChargeCurrentfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum battery charge current, including external chargers."
    ::= { upsConfigfirst 12 }      

upsConfigNoLoadShutdownfirst OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Dis- or enable 'no load' shutdown from the contact interface."
    ::= { upsConfigfirst 13 }
 
upsConfigStartDelayfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"    
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Minimum required autonomy time before the UPS may perform an
             autorestart."
    ::= { upsConfigfirst 14 }

--
-- The GetSet group generic.
--

upsEventGetNextfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventSetStartingTimeStamp
            will be used as the start value of the table with the lowest index number."
    ::= { upsGetSetfirst 1 }

upsEventGetPreviousfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventLastTime will
            be used as the last value of the table with the highest index number.

            Returns SNMPNOSUCHNAME for UPSs that don't support this command."
    ::= { upsGetSetfirst 2 }
    
upsEventSetStartingTimeStampfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The timestamp which is used as starting point for downloading
             events from the UPS event buffer"
    ::= { upsGetSetfirst 3 }    

upsEventRetreiveCurrentTimeStampfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current timestamp is retreived from the UPS"
    ::= { upsGetSetfirst 4 }    

upsEventTableSizefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the event table.
            This object indicates the number of rows in the event table."
    ::= { upsGetSetfirst 5 }

upsEventFirstTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsEventFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of event table entries.  The number of entries is always
            10, and the value of upsEventTableSize gives the number of valid
            entries from the begging of the table.  Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..10)):

            PDU-SET upsSetStartingTimeStamp <time> 
            PDU-SET upsEventGetNext <number>
            PDU-GET upsEventTableSize
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 1
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 2
            ..
            PDU-GET upsEventCode,upsEventStatus,upsEventTime <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsEventTableSize.
            "
    ::= { upsGetSetfirst 6 }

upsEventFirstEntry OBJECT-TYPE
    SYNTAX     UpsEventFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular event."
    INDEX { upsEventLineIndexfirst }
    ::= { upsEventFirstTable 1 }

UpsEventFirstEntry ::= SEQUENCE {
    upsEventLineIndexfirst PositiveInteger32,
    upsEventCodefirst      Integer32,
    upsEventStatusfirst    NonNegativeInteger32,
    upsEventTimefirst      NonNegativeInteger32
}

upsEventLineIndexfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The event line identifier."
    ::= { upsEventFirstEntry 1 }

upsEventCodefirst OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The event code in numerical format."
    ::= { upsEventFirstEntry 2 }

upsEventStatusfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of the UPS at the moment that the event was generated.
             The format is specified at the 'upsStatus' command.
             If the UPS is not able to deliver status information, then
             SNMPNOSUCHNAME is returned."
    ::= { upsEventFirstEntry 3 }

upsEventTimefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The timestamp of the moment the event was generated."
    ::= { upsEventFirstEntry 4 }

upsParametersReadfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to retreive from the UPS.
            When this object is set the ParameterTable will be filled with the
            requested number of entries. The value upsParametersStartAddress
            will be used as the start value of the table with the lowest index 
            number."
    ::= { upsGetSetfirst 7 }

upsParametersWritefirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to write to the UPS.
            When this object is set the ParameterTable will be send to the ups. 
            The value upsParametersStartAddress will be used for the first value 
            of the table with the lowest index number."
    ::= { upsGetSetfirst 8 }

upsParametersStartAddressfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The address which is used as starting point for downloading
             parameters from the UPS"
    ::= { upsGetSetfirst 9 }    

upsParameterTableSizefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the parameter table.
            This object indicates the number of rows in the parameter table."
    ::= { upsGetSetfirst 10 }

upsParameterFirstTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsParameterFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of parameter entries. The number of entries is always
            16, and the value of upsParameterTableSize gives the number of valid
            entries from the begging of the table. Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..16)):

            Read sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParametersRead <number>
            PDU-GET upsParameterTableSize
            PDU-GET upsParameterValue 1
            PDU-GET upsParameterValue 2
            ..
            PDU-GET upsParameterValue <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsParameterTableSize.

            Write sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParameterValue 1
            PDU-SET upsParameterValue 2
            ..
            PDU-SET upsParameterValue <number>
            PDU-SET upsParametersWrite <number>
            "
    ::= { upsGetSetfirst 11 }

upsParameterFirstEntry OBJECT-TYPE
    SYNTAX     UpsParameterFirstEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular parameter."
    INDEX { upsParameterLineIndexfirst }
    ::= { upsParameterFirstTable 1 }

UpsParameterFirstEntry ::= SEQUENCE {
    upsParameterLineIndexfirst PositiveInteger32,
    upsParameterValuefirst     Integer32   
}

upsParameterLineIndexfirst OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The parameter line identifier."
    ::= { upsParameterFirstEntry 1 }

upsParameterValuefirst OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The parameter value in numerical format."
    ::= { upsParameterFirstEntry 2 }

upsStatusfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The global UPS status is returned. Every bit reflects a specific 
             status condition. Unused bits returns as 0. The status value can 
             also be found on other commands. The value SNMPNOSUCHNAME means 
             'invalid status' or 'status value non available'.

             Status
                     1  0000 0001h upsStatusEcomodeIsOn
                     2  0000 0002h upsStatusBatteryIsCharging
                     4  0000 0004h upsStatusBatteryIsDischarging
                     8  0000 0008h upsStatusAlarmIsActive
                    16  0000 0010h upsStatusRectifierIsOn
                    32  0000 0020h upsStatusLowBattery
                    64  0000 0040h upsStatusOnBypass
                   128  0000 0080h upsStatusMainsBypassOK
                   256  0000 0100h upsStatusMainsRectifierOK
                   512  0000 0200h upsStatusDetourIsOn
                  1024  0000 0400h upsStatusAcousticAlarmIsOn
                  2048  0000 0800h upsStatusGlobalServiceCheck
                  4096  0000 1000h upsStatusInverterIsOn
                  8192  0000 2000h upsStatusNotInParallel (Q1 open)
                 16384  0000 4000h upsStatusResetLoadOff
                 32768  0000 8000h upsStatusLoadOff 
                 65536  0001 0000h upsStatusBoostMode 
                131072  0002 0000h upsStatusBuckMode 
                262144  0004 0000h upsStatusIemModeIsOn 
                524288  0008 0000h upsStatus5thFilterIsOn 
               1048576  0010 0000h upsStatus11thFilterIsOn
               2097152  0020 0000h upsStatus2ndRectifierBridgeIsOn
               4194304  0040 0000h - reserved -
               8388608  0080 0000h - reserved -
              16777216  0100 0000h - reserved -
              33554432  0200 0000h - reserved -
              67108864  0400 0000h - reserved -
             134217728  0800 0000h - reserved -
             268435456  1000 0000h upsGlobalParallelValues "
    ::= { upsGetSetfirst 12 }

upsMainsStatisticsMBfailfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of main bypass failures (>200 ms), since UPS installation."
    ::= { upsGetSetfirst 13 }

upsMainsStatisticsMRfailfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of mains rectifier failures (>200 ms), since UPS installation."
    ::= { upsGetSetfirst 14 }
  
upsMainsStatisticsB2first OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (0..2 ms), during the last 7 days."
    ::= { upsGetSetfirst 15 }

upsMainsStatisticsB5first OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (2..5 ms), during the last 7 days."
    ::= { upsGetSetfirst 16 }

upsMainsStatisticsB10first OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (5..10 ms), during the last 7 days."
    ::= { upsGetSetfirst 17 }

upsMainsStatisticsB200first OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (10..200 ms), during the last 7 days."
    ::= { upsGetSetfirst 18 }

upsMainsStatisticsBypRelfirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bypass reliability degree [0..100%;255]. The value NOSUCHNAME means 'not available'."
    ::= { upsGetSetfirst 19 }

upsTimefirst OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The current timestamp (or real-time) of the UPS. For the format, 
             see 'Timestamp' specifications. The write-command has to comply with the 
             correct timestamp format expected by the UPS (counter value or real-time-clock 
             value). Missing to doing so will result in a SNMPfirstERROR, 
             meaning 'command not supported'. It is possible to know which is the timestamp 
             format supported by the UPS, by issuing a read-command or by reading events, 
             which includes timestamps."
    ::= { upsGetSetfirst 20 }

upsRequestPermissionfirst OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An encrypted code is send to enable use of restricted write objects during
             a limited period of time."
    ::= { upsGetSetfirst 21 }
    
upsEventGetCodefirst OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The code which is used as starting point to downloading the events from the 
            UPS event buffer."
    ::= { upsGetSetfirst 22 }    
    
upsEventSpinLockfirst OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the event subsystem. "

    ::= { upsGetSetfirst 23 }
    
upsParameterSpinLockfirst OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the parameters subsystem. "

    ::= { upsGetSetfirst 24 }


--
-- GE Trap group generic
--

upsTrapAlarmBatteryBadfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement."
    ::= { geUPSTrapsfirst 1 }

upsTrapAlarmOnBatteryfirst NOTIFICATION-TYPE
    OBJECTS  { upsSecondsOnBatteryfirst }
    STATUS  current 
    DESCRIPTION
            "The UPS is drawing power from the batteries."
    ::= { geUPSTrapsfirst 2 }

upsTrapAlarmLowBatteryfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime."
    ::= { geUPSTrapsfirst 3 }

upsTrapAlarmDepletedBatteryfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost)"
    ::= { geUPSTrapsfirst 4 }

upsTrapAlarmTempBadfirst NOTIFICATION-TYPE
    OBJECTS  { upsBatteryTemperature }
    STATUS  current 
    DESCRIPTION
            "A temperature is out of tolerance."
    ::= { geUPSTrapsfirst 5 }

upsTrapAlarmInputBadfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An input condition is out of tolerance."
    ::= { geUPSTrapsfirst 6 }

upsTrapAlarmOutputBadfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance."
    ::= { geUPSTrapsfirst 7 }

upsTrapAlarmOutputOverloadfirst NOTIFICATION-TYPE
    OBJECTS  { upsOutputNumLinesfirst, upsOutputPercentLoadfirst }
    STATUS  current 
    DESCRIPTION
            "The output load exceeds the UPS output capacity."
    ::= { geUPSTrapsfirst 8 }

upsTrapAlarmOnBypassfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The Bypass is presently engaged on the UPS."
    ::= { geUPSTrapsfirst 9 }

upsTrapAlarmBypassBadfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The Bypass is out of tolerance."
    ::= { geUPSTrapsfirst 10 }

upsTrapAlarmOutputOffAsRequestedfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off."
    ::= { geUPSTrapsfirst 11 }

upsTrapAlarmUpsOffAsRequestedfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The entire UPS has shutdown as commanded."
    ::= { geUPSTrapsfirst 12 }

upsTrapAlarmChargerFailedfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem."
    ::= { geUPSTrapsfirst 13 }

upsTrapAlarmUpsOutputOfffirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The output of the UPS is in the off state."
    ::= { geUPSTrapsfirst 14 }

upsTrapAlarmUpsSystemOfffirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The UPS system is in the off state."
    ::= { geUPSTrapsfirst 15 }

upsTrapAlarmFanFailurefirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected."
    ::= { geUPSTrapsfirst 16 }

upsTrapAlarmFuseFailurefirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The failure of one or more fuses has been detected."
    ::= { geUPSTrapsfirst 17 }

upsTrapAlarmGeneralFaultfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A general fault in the UPS has been detected."
    ::= { geUPSTrapsfirst 18 }

upsTrapAlarmDiagnosticTestFailedfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure."
    ::= { geUPSTrapsfirst 19 }

upsTrapAlarmCommunicationsLostfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A problem has been encountered in the communication
            between the agent and the UPS."
    ::= { geUPSTrapsfirst 20 }
    
upsTrapAlarmAwaitingPowerfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of the input power (*)."
    ::= { geUPSTrapsfirst 21 }

upsTrapAlarmShutdownPendingfirst NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayfirst }
    STATUS  current 
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway."
    ::= { geUPSTrapsfirst 22 }

upsTrapAlarmShutdownImminentfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 seconds; this may be either a timed shutdown or a
            low battery shutdown."
    ::= { geUPSTrapsfirst 23 }

upsTrapAlarmTestInProgressfirst NOTIFICATION-TYPE
    OBJECTS  { upsTestIdfirst }
    STATUS  current 
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY."
    ::= { geUPSTrapsfirst 24 }

upsTrapAlarmReceptacleOfffirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A receptacle has been switched off."
    ::= { geUPSTrapsfirst 25 }

upsTrapAlarmHighspeedBusFailurefirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A problem on the Highspeed Bus communication is detected."
    ::= { geUPSTrapsfirst 26 }

upsTrapAlarmHighspeedBusJACRCFailurefirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
    ::= { geUPSTrapsfirst 27 }
     
upsTrapAlarmConnectivityBusFailurefirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected"
    ::= { geUPSTrapsfirst 28 }

upsTrapAlarmHighspeedBusJBCRCFailurefirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
     ::= { geUPSTrapsfirst 29 }

upsTrapAlarmCurrentSharingFailurefirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An high current sharing on the parallel system is detected."
     ::= { geUPSTrapsfirst 30 }
     
upsTrapAlarmDCRippleFailurefirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An high ripple voltage on his DC link is detected."
     ::= { geUPSTrapsfirst 31 }
          
upsTrapAlarmBatteryBadRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A Battery bad condition is restored."
    ::= { geUPSTrapsfirst 33 }

upsTrapAlarmOnBatteryRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The UPS is drawing power from mains again."
    ::= { geUPSTrapsfirst 34 }

upsTrapAlarmLowBatteryRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A Low Battery condition is restored."
    ::= { geUPSTrapsfirst 35 }

upsTrapAlarmDepletedBatteryRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A Depleted Battery condition is restored."
    ::= { geUPSTrapsfirst 36 }

upsTrapAlarmTempBadRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A bad temperature condition is restored."
    ::= { geUPSTrapsfirst 37 }

upsTrapAlarmInputBadRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An input bad condition is restored."
    ::= { geUPSTrapsfirst 38 }

upsTrapAlarmOutputBadRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An output bad condition is restored."
    ::= { geUPSTrapsfirst 39 }

upsTrapAlarmOutputOverloadRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An output overload condition is restored."
    ::= { geUPSTrapsfirst 40 }

upsTrapAlarmOnBypassRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An On Bypass condition is restored."
    ::= { geUPSTrapsfirst 41 }

upsTrapAlarmBypassBadRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A Bypass bad condition is restored."
    ::= { geUPSTrapsfirst 42 }

upsTrapAlarmOutputOffAsRequestedRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A request shutdown has been restored."
    ::= { geUPSTrapsfirst 43 }

upsTrapAlarmUpsOffAsRequestedRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A entire UPS command has been restored."
    ::= { geUPSTrapsfirst 44 }

upsTrapAlarmChargerFailedRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A Charger Failer condition is restored."
    ::= { geUPSTrapsfirst 45 }

upsTrapAlarmUpsOutputOnfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The output of the UPS switched in the on state."
    ::= { geUPSTrapsfirst 46 }

upsTrapAlarmUpsSystemOnfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "The UPS system is switched in the on state."
    ::= { geUPSTrapsfirst 47 }

upsTrapAlarmFanFailureRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A Fan failure condition is restored."
    ::= { geUPSTrapsfirst 48 }

upsTrapAlarmFuseFailureRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A Fuse failure condition is restored."
    ::= { geUPSTrapsfirst 49 }

upsTrapAlarmGeneralFaultRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A general fault is restored."
    ::= { geUPSTrapsfirst 50 }

upsTrapAlarmDiagnosticTestFailedRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A last diagnostic test indicates a failure is 
            restored."
    ::= { geUPSTrapsfirst 51 }

upsTrapAlarmCommunicationsLostRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A problem in the communication between the agent 
            and the UPS is restored."
    ::= { geUPSTrapsfirst 52 }
    
upsTrapAlarmAwaitingPowerRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A awaiting power condition is restored (*)."
    ::= { geUPSTrapsfirst 53 }

upsTrapAlarmShutdownPendingRestoredfirst NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayfirst }
    STATUS  current 
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is restored."
    ::= { geUPSTrapsfirst 54 }

upsTrapAlarmShutdownImminentRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A shutdown imminent condition is restored."
    ::= { geUPSTrapsfirst 55 }

upsTrapAlarmTestInProgressRestoredfirst NOTIFICATION-TYPE
    OBJECTS  { upsTestIdfirst }
    STATUS  current 
    DESCRIPTION
            "The test is in progress is terminated."
    ::= { geUPSTrapsfirst 56 }

upsTrapAlarmReceptacleOnfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A receptacle has been switched on."
    ::= { geUPSTrapsfirst 57 }

upsTrapAlarmHighspeedBusRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A problem on the Highspeed Bus communication is restored."
    ::= { geUPSTrapsfirst 58 }

upsTrapAlarmHighspeedBusJACRCRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is restored."
    ::= { geUPSTrapsfirst 59 }
     
upsTrapAlarmConnectivityBusRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A problem on the Connectivity Bus communication is restored."
    ::= { geUPSTrapsfirst 60 }

upsTrapAlarmHighspeedBusJBCRCRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is restored."
     ::= { geUPSTrapsfirst 61 }

upsTrapAlarmCurrentSharingRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An high current sharing on the parallel system is restored."
     ::= { geUPSTrapsfirst 62 }
     
upsTrapAlarmDCRippleRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "An high ripple voltage on his DC link is restored."
     ::= { geUPSTrapsfirst 63 }

upsTrapAlarmValueLowfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A measurement value reached a value below its low-level threshold."
    ::= { geUPSTrapsfirst 129 }

upsTrapAlarmValueHighfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A measurement value reached a value higher than its high-level threshold."
    ::= { geUPSTrapsfirst 130 }

upsTrapAlarmValueLowRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A ValueLow alarm condition is restored."
    ::= { geUPSTrapsfirst 133 }

upsTrapAlarmValueHighRestoredfirst NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A ValueHigh alarm condition is restored."
    ::= { geUPSTrapsfirst 134 }


--
-- Diagnostic Group Generic
--
upsDiagnosticBusJACommunicationStatusfirst OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticfirst 1 }
    
upsDiagnosticBusJBCommunicationStatusfirst OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticfirst 2 }
  
upsDiagnosticBatteryLifetimefirst OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfirst 3 }

upsDiagnosticFansLifetimefirst OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfirst 4 } 
    
upsDiagnosticDCcapacitorsLifetimefirst OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfirst 5 }  
    
upsDiagnosticACcapacitorsLifetimefirst OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfirst 6 }
    
upsDiagnosticGlobalServiceCheckfirst OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfirst 7 }


--
-- The Device Identification group. Second
--      All objects in this group except for upsIdentName and
--      upsIdentAttachedDevices are set at device initialization
--      and remain static.
--

upsIdentManufacturersecond OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the UPS manufacturer.(*)"
    ::= { upsIdentsecond 1 }

upsIdentModelsecond OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS Model designation.(*)"
    ::= { upsIdentsecond 2 }

upsIdentUPSSoftwareVersionsecond OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS firmware/software version(s).  This variable
            may or may not have the same value as
            upsIdentAgentSoftwareVersion in some implementations.(*)"
    ::= { upsIdentsecond 3 }

upsIdentAgentSoftwareVersionsecond OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS agent software version.  This variable may or
            may not have the same value as
            upsIdentUPSSoftwareVersion in some implementations.(*)"
    ::= { upsIdentsecond 4 }

upsIdentNamesecond OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the UPS.  This object should be
            set by the administrator.(*)"
    ::= { upsIdentsecond 5 }

upsIdentAttachedDevicessecond OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the devices attached to the
            output(s) of the UPS.  This object should be set by
            the administrator.(*)"
    ::= { upsIdentsecond 6 }

upsIdentUPSSerialNumbersecond OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS serial number"
    ::= { upsIdentsecond 7 }
    
upsIdentComProtVersionsecond OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IMV communication protocol version"
    ::= { upsIdentsecond 8 } 
  
upsIdentOperatingTimesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present value of the operating time.
             total 'on' time since UPS manufactured"
    ::= { upsIdentsecond 9 } 
    
--
-- Battery Group Generic
--

upsBatteryStatussecond OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        batteryNormal(2),
        batteryLow(3),
        batteryDepleted(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The indication of the capacity remaining in the UPS
            system's batteries.   A value of batteryNormal
            indicates that the remaining run-time is greater than
            upsConfigLowBattTime.  A value of batteryLow indicates
            that the remaining battery run-time is less than or
            equal to upsConfigLowBattTime.  A value of
            batteryDepleted 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 and the UPS is
            unable to sustain the output).(*)"
    ::= { upsBatterysecond 1 }

upsSecondsOnBatterysecond OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If the unit is on battery power, the elapsed time
            since the UPS last switched to battery power, or the
            time since the network management subsystem was last
            restarted, whichever is less.  Zero shall be returned
            if the unit is not on battery power.(*)"
    ::= { upsBatterysecond 2 }

upsEstimatedMinutesRemainingsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the time to battery charge depletion
            under the present load conditions if the utility power
            is off and remains off, or if it were to be lost and
            remain off.(*)"
    ::= { upsBatterysecond 3 }

upsEstimatedChargeRemainingsecond OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the battery charge remaining expressed
            as a percent of full charge.(*)"
    ::= { upsBatterysecond 4 }

upsBatteryVoltagesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Volt DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present battery voltage.(*)"
    ::= { upsBatterysecond 5 }

upsBatteryCurrentsecond OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present battery current.(*)"
    ::= { upsBatterysecond 6 }

upsBatteryTemperaturesecond OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "degrees Centigrade"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ambient temperature at or near the UPS Battery
            casing.(*)"
    ::= { upsBatterysecond 7 }

upsBatteryRipplesecond OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Volt RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present DC link RMS voltage ripple.(*)"
    ::= { upsBatterysecond 8 }

--
-- Input Group
--

upsInputLineBadssecond OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A count of the number of times the input entered an
            out-of-tolerance condition as defined by the
            manufacturer.  This count is incremented by one each
            time the input transitions from zero out-of-tolerance
            lines to one or more input lines out-of-tolerance.(*)"
    ::= { upsInputsecond 1 }

upsInputNumLinessecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of input lines utilized in this device.
            This variable indicates the number of rows in the
            input table.(*)"
    ::= { upsInputsecond 2 }

upsInputSecondTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsInputSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of input table entries.  The number of entries
            is given by the value of upsInputNumLines.(*)"
    ::= { upsInputsecond 3 }

upsInputSecondEntry OBJECT-TYPE
    SYNTAX     UpsInputSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular input line.(*)"
    INDEX { upsInputLineIndexsecond }
    ::= { upsInputSecondTable 1 }

UpsInputSecondEntry ::= SEQUENCE {
    upsInputLineIndexsecond   PositiveInteger32,
    upsInputFrequencysecond   NonNegativeInteger32,
    upsInputVoltagesecond     NonNegativeInteger32,
    upsInputCurrentsecond     NonNegativeInteger32,
    upsInputTruePowersecond   NonNegativeInteger32,
    upsInputVoltageMinsecond  NonNegativeInteger32,
    upsInputVoltageMaxsecond  NonNegativeInteger32
}

upsInputLineIndexsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The input line identifier.(*)"
    ::= { upsInputSecondEntry 1 }

upsInputFrequencysecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present input frequency.(*)"
    ::= { upsInputSecondEntry 2 }

upsInputVoltagesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input voltage.(*)"
    ::= { upsInputSecondEntry 3 }

upsInputCurrentsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input current.(*)"
    ::= { upsInputSecondEntry 4 }

upsInputTruePowersecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input true power.(*)"
    ::= { upsInputSecondEntry 5 }

upsInputVoltageMinsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The lowest magnitude of the input voltage since last read out."
    ::= { upsInputSecondEntry 6 }

upsInputVoltageMaxsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The highest magnitude of the input voltage since last read out."
    ::= { upsInputSecondEntry 7 }

--
-- The Output group.
--

upsOutputSourcesecond OBJECT-TYPE
    SYNTAX     INTEGER {
        other(1),
        none(2),
        normal(3),
        bypass(4),
        battery(5),
        booster(6),
        reducer(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present source of output power.  The enumeration
            none(2) indicates that there is no source of output
            power (and therefore no output power), for example,
            the system has opened the output breaker.(*)"
    ::= { upsOutputsecond 1 }

upsOutputFrequencysecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output frequency.(*)"
    ::= { upsOutputsecond 2 }

upsOutputNumLinessecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of output lines utilized in this device.
            This variable indicates the number of rows in the
            output table.(*)"
    ::= { upsOutputsecond 3 }

upsOutputSecondTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsOutputSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of output table entries.  The number of
            entries is given by the value of upsOutputNumLines.(*)"
    ::= { upsOutputsecond 4 }

upsOutputSecondEntry OBJECT-TYPE
    SYNTAX     UpsOutputSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular output line.(*)"
    INDEX { upsOutputLineIndexsecond }
    ::= { upsOutputSecondTable 1 }

UpsOutputSecondEntry ::= SEQUENCE {
    upsOutputLineIndexsecond   PositiveInteger32,
    upsOutputVoltagesecond     NonNegativeInteger32,
    upsOutputCurrentsecond     NonNegativeInteger32,
    upsOutputPowersecond       NonNegativeInteger32,
    upsOutputPercentLoadsecond Integer32,
    upsOutputPowerFactorsecond Integer32,
    upsOutputPeakCurrentsecond Integer32,
    upsOutputShareCurrentsecond Integer32
}

upsOutputLineIndexsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The output line identifier.(*)"
    ::= { upsOutputSecondEntry 1 }

upsOutputVoltagesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output voltage.(*)"
    ::= { upsOutputSecondEntry 2 }

upsOutputCurrentsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output current.(*)"
    ::= { upsOutputSecondEntry 3 }

upsOutputPowersecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output true power.(*)"
    ::= { upsOutputSecondEntry 4 }

upsOutputPercentLoadsecond OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The percentage of the UPS power capacity presently
            being used on this output line, i.e., the greater of
            the percent load of true power capacity and the
            percent load of VA.(*)"
    ::= { upsOutputSecondEntry 5 }

upsOutputPowerFactorsecond OBJECT-TYPE
    SYNTAX     Integer32 (-99..100)
    UNITS      "0.01 cos phi"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output power factor. 
             The returned value correspond to the cosf of the load.
             A positive value indicate an inductive load; 
             a negative value indicate a capacitive load; 
             value 1 indicate a resistive load. 
             If the measure is not available due to a small load for 
             a consistent calculation, the NA value is then returned.(*)"
    ::= { upsOutputSecondEntry 6 }
    
upsOutputPeakCurrentsecond OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output peak current.(*)"
    ::= { upsOutputSecondEntry 7 }

upsOutputShareCurrentsecond OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "In a parallel system ideally all the UPS are requested to 
            contribute to the load with the same amount of current, 
            i.e. with no current share. The current share occurs when an
            UPS exchanges some current with another UPS, so that this 
            current component doesn't feed the load. 
            The share part of the UPS current represents an undesired UPS
            loading, and therefore it should be minimized. If the share 
            current is too high, the UPS results overloaded and in some 
            conditions (i.e. very high load) the system could turn on 
            bypass reducing dramatically the global system reliability.
   PMAD detects the amount of share currents in a parallel system,
   generating an alarm if this value is above a parameter-based threshold.
   Single UPS systems don't have this feature, NA will be provided.(*)"
    ::= { upsOutputSecondEntry 8 }

--
-- The Bypass group generic.
--

upsBypassFrequencysecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass frequency.(*)"
    ::= { upsBypasssecond 1 }

upsBypassNumLinessecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of bypass lines utilized in this device.
            This entry indicates the number of rows in the bypass
            table.(*)"
    ::= { upsBypasssecond 2 }

upsBypassSecondTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsBypassSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of bypass table entries.  The number of
            entries is given by the value of upsBypassNumLines.(*)"
    ::= { upsBypasssecond 3 }

upsBypassSecondEntry OBJECT-TYPE
    SYNTAX     UpsBypassSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular bypass input.(*)"
    INDEX { upsBypassLineIndexsecond }
    ::= { upsBypassSecondTable 1 }

UpsBypassSecondEntry ::= SEQUENCE {
    upsBypassLineIndexsecond  PositiveInteger32,
    upsBypassVoltagesecond    NonNegativeInteger32,
    upsBypassCurrentsecond    NonNegativeInteger32,
    upsBypassPowersecond      NonNegativeInteger32
}

upsBypassLineIndexsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The bypass line identifier.(*)"
    ::= { upsBypassSecondEntry 1 }

upsBypassVoltagesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass voltage.(*)"
    ::= { upsBypassSecondEntry 2 }

upsBypassCurrentsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass current.(*)"
    ::= { upsBypassSecondEntry 3 }

upsBypassPowersecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present true power conveyed by the bypass.(*)"
    ::= { upsBypassSecondEntry 4 }

--
-- The Alarm group generic.
--

upsAlarmsPresentsecond OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present number of active alarm conditions.(*)"
    ::= { upsAlarmsecond 1 }

upsAlarmSecondTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsAlarmSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
            upsAlarmId equal to 1, and increments the value of
            upsAlarmId each time a new row is created, wrapping to
            the first free value greater than or equal to 1 when
            the maximum value of upsAlarmId would otherwise be
            exceeded.  Consequently, after multiple operations,
            the table may become sparse, e.g., containing entries
            for rows 95, 100, 101, and 203 and the entries should
            not be assumed to be in chronological order because
            upsAlarmId might have wrapped.

            Alarms are named by an AutonomousType (OBJECT
            IDENTIFIER), upsAlarmDescr, to allow a single table to
            reflect well known alarms plus alarms defined by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.  No
            two rows will have the same value of upsAlarmDescr,
            since alarms define conditions.  In order to meet this
            requirement, care should be taken in the definition of
            alarm conditions to insure that a system cannot enter
            the same condition multiple times simultaneously.

            The number of rows in the table at any given time is
            reflected by the value of upsAlarmsPresent.(*)"
    ::= { upsAlarmsecond 2 }

upsAlarmSecondEntry OBJECT-TYPE
    SYNTAX     UpsAlarmSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular alarm.(*)"
    INDEX { upsAlarmIdsecond }
    ::= { upsAlarmSecondTable 1 }

UpsAlarmSecondEntry ::= SEQUENCE {
    upsAlarmIdsecond          PositiveInteger32,
    upsAlarmDescrsecond       AutonomousType,
    upsAlarmTimesecond       TimeStamp
}

upsAlarmIdsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique identifier for an alarm condition.  This
            value must remain constant.(*)"
    ::= { upsAlarmSecondEntry 1 }

upsAlarmDescrsecond OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A reference to an alarm description object.  The
            object referenced should not be accessible, but rather
            be used to provide a unique description of the alarm
            condition.(*)"
    ::= { upsAlarmSecondEntry 2 }

upsAlarmTimesecond OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when the alarm condition was
            detected.  If the alarm condition was detected at the
            time of agent startup and presumably existed before
            agent startup, the value of upsAlarmTime shall equal
            0.(*)"
    ::= { upsAlarmSecondEntry 3 }

--
-- Well known alarm conditions generic.
--

upsAlarmBatteryBadsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement.(*)"
    ::= { upsWellKnownAlarmssecond  1 }

upsAlarmOnBatterysecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS is drawing power from the batteries.(*)"
    ::= { upsWellKnownAlarmssecond  2 }

upsAlarmLowBatterysecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime.(*)"
    ::= { upsWellKnownAlarmssecond  3 }

upsAlarmDepletedBatterysecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost.(*)"
    ::= { upsWellKnownAlarmssecond  4 }

upsAlarmTempBadsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A temperature is out of tolerance.(*)"
    ::= { upsWellKnownAlarmssecond  5 }

upsAlarmInputBadsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An input condition is out of tolerance.(*)"
    ::= { upsWellKnownAlarmssecond  6 }

upsAlarmOutputBadsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance.(*)"
    ::= { upsWellKnownAlarmssecond  7 }

upsAlarmOutputOverloadsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output load exceeds the UPS output capacity.(*)"
    ::= { upsWellKnownAlarmssecond  8 }

upsAlarmOnBypasssecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS.(*)"
    ::= { upsWellKnownAlarmssecond  9 }

upsAlarmBypassBadsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is out of tolerance.(*)"
    ::= { upsWellKnownAlarmssecond 10 }

upsAlarmOutputOffAsRequestedsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off.(*)"
    ::= { upsWellKnownAlarmssecond 11 }

upsAlarmUpsOffAsRequestedsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The entire UPS has shutdown as commanded.(*)"
    ::= { upsWellKnownAlarmssecond 12 }

upsAlarmChargerFailedsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem.(*)"
    ::= { upsWellKnownAlarmssecond 13 }

upsAlarmUpsOutputOffsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output of the UPS is in the off state.(*)"
    ::= { upsWellKnownAlarmssecond 14 }

upsAlarmUpsSystemOffsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS system is in the off state.(*)"
    ::= { upsWellKnownAlarmssecond 15 }

upsAlarmFanFailuresecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected.(*)"
    ::= { upsWellKnownAlarmssecond 16 }

upsAlarmFuseFailuresecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fuses has been detected.(*)"
    ::= { upsWellKnownAlarmssecond 17 }

upsAlarmGeneralFaultsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A general fault in the UPS has been detected.(*)"
    ::= { upsWellKnownAlarmssecond 18 }

upsAlarmDiagnosticTestFailedsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure.(*)"
    ::= { upsWellKnownAlarmssecond 19 }

upsAlarmCommunicationsLostsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem has been encountered in the communications
            between the agent and the UPS.(*)"
    ::= { upsWellKnownAlarmssecond 20 }

upsAlarmAwaitingPowersecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of input power.(*)"
    ::= { upsWellKnownAlarmssecond 21 }

upsAlarmShutdownPendingsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway.(*)"
    ::= { upsWellKnownAlarmssecond 22 }

upsAlarmShutdownImminentsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 seconds; this may be either a timed shutdown or a
            low battery shutdown.(*)"
    ::= { upsWellKnownAlarmssecond 23 }

upsAlarmTestInProgresssecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY.(*)"
    ::= { upsWellKnownAlarmssecond 24 }

upsAlarmReceptacleOffsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The receptacle are switch off    "
    ::= { upsWellKnownAlarmssecond 25 }

upsAlarmHighSpeedBusFailuresecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the High Speed Bus communication is detected"
    ::= { upsWellKnownAlarmssecond 26 }
    
upsAlarmHighSpeedBusJACRCFailuresecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JB is detected."
    ::= { upsWellKnownAlarmssecond 27 }
    
upsAlarmConnectivityBusFailuresecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected."
    ::= { upsWellKnownAlarmssecond 28 }

upsAlarmHighSpeedBusJBCRCFailuresecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JB is detected."
    ::= { upsWellKnownAlarmssecond 29 }

upsAlarmCurrentSharingsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high current sharing on the parallel system."
    ::= { upsWellKnownAlarmssecond 30 }
        
upsAlarmDCRipplesecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high ripple voltage on his DC link."
    ::= { upsWellKnownAlarmssecond 31 }

upsAlarmMaskAsecond OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Specifies which alarm can be handled by the UPS.
            The 'Mask' parameter is a Long Integer32. The meaning
            of every bit is the same as for the 'upsAlarmGroupA'
            command. A bit having value=1 indicates that the
            corresponding alarm is handled by the UPS."
    ::= { upsAlarmsecond 4 }

--
-- The Test Group generic
--

upsTestIdsecond OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The test is named by an OBJECT IDENTIFIER which
            allows a standard mechanism for the initiation of
            tests, including the well known tests identified in
            this document as well as those introduced by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.

            Setting this variable initiates the named test. Sets
            to this variable require the presence of
            upsTestSpinLock in the same SNMP message.

            The set request will be rejected with an appropriate
            error message if the requested test cannot be
            performed, including attempts to start a test when
            another test is already in progress.  The status of
            the current or last test is maintained in
            upsTestResultsSummary. Tests in progress may be
            aborted by setting the upsTestId variable to
            upsTestAbortTestInProgress.

            Read operations return the value of the name of the
            test in progress if a test is in progress or the name
            of the last test performed if no test is in progress,
            unless no test has been run, in which case the well
            known value upsTestNoTestsInitiated is returned.(*)"
    ::= { upsTestsecond 1 }

-- see [6] for more information on the semantics of objects with
-- syntax of TestAndIncr

upsTestSpinLocksecond OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the test subsystem.  The spinlock is
            used as follows.

            Before starting a test, a manager-station should make
            sure that a test is not in progress as follows:

                tryagain:
                  get (upsTestSpinLock)
                  while (upsTestResultsSummary == inProgress) {
                    /* loop while a test is running for another
            manager */
                    short delay
                    get (upsTestSpinLock)
                  }
                  lockvalue = upsTestSpinLock
                  /* no test in progress, start the test */
                  set (upsTestSpinLock = lockvalue, upsTestId =
            requestedtest)
                  if (errorindex == 1) { /* (upsTestSpinLock
            failed) */
                    /* if problem is not access control, then
                        some other manager slipped in ahead of us
            */
                    goto tryagain
                  }
                  if (errorindex == 2) { /* (upsTestId) */
                    /* cannot perform the test */
                    give up
                  }
                  /* test started ok */
                  /* wait for test completion by polling
            upsTestResultsSummary */
                  get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  while (upsTestResultsSummary == inProgress) {
                    short delay
                    get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  }
                  /* when test completes, retrieve any additional
            test results */
                  /* if upsTestSpinLock == lockvalue + 1, then
            these are our test */
                  /* results (as opposed to another manager's */
                  The initial value of upsTestSpinLock at agent
            initialization shall
                  be 1.(*)"
    ::= { upsTestsecond 2 }

upsTestResultsSummarysecond OBJECT-TYPE
    SYNTAX     INTEGER {
        donePass(1),
        doneWarning(2),
        doneError(3),
        aborted(4),
        inProgress(5),
        noTestsInitiated(6)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The results of the current or last UPS diagnostics
            test performed.  The values for donePass(1),
            doneWarning(2), and doneError(3) indicate that the
            test completed either successfully, with a warning, or
            with an error, respectively.  The value aborted(4) is
            returned for tests which are aborted by setting the
            value of upsTestId to upsTestAbortTestInProgress.
            Tests which have not yet concluded are indicated by
            inProgress(5).  The value noTestsInitiated(6)
            indicates that no previous test results are available,
            such as is the case when no tests have been run since
            the last reinitialization of the network management
            subsystem and the system has no provision for non-
            volatile storage of test results.(*)"
    ::= { upsTestsecond 3 }

upsTestResultsDetailsecond OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Additional information about upsTestResultsSummary.
            If no additional information available, a zero length
            string is returned.(*)"
    ::= { upsTestsecond 4 }

upsTestStartTimesecond OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time the test in
            progress was initiated, or, if no test is in progress,
            the time the previous test was initiated.  If the
            value of upsTestResultsSummary is noTestsInitiated(6),
            upsTestStartTime has the value 0.(*)"
    ::= { upsTestsecond 5 }

upsTestElapsedTimesecond OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time, in TimeTicks, since the test in
            progress was initiated, or, if no test is in progress,
            the previous test took to complete.  If the value of
            upsTestResultsSummary is noTestsInitiated(6),
            upsTestElapsedTime has the value 0.(*)"
    ::= { upsTestsecond 6 }

--
-- Well known tests generic.
--

upsTestNoTestsInitiatedsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "No tests have been initiated and no test is in
            progress.(*)"
    ::= { upsWellKnownTestssecond  1 }

upsTestAbortTestInProgresssecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The test in progress is to be aborted / the test in
            progress was aborted.(*)"
    ::= { upsWellKnownTestssecond  2 }

upsTestGeneralSystemsTestsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The manufacturer's standard test of UPS device
            systems.(*)"
    ::= { upsWellKnownTestssecond  3 }

upsTestQuickBatteryTestsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test that is sufficient to determine if the battery
            needs replacement.(*)"
    ::= { upsWellKnownTestssecond  4 }

upsTestDeepBatteryCalibrationsecond OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The system is placed on battery to a discharge level,
            set by the manufacturer, sufficient to determine
            battery replacement and battery run-time with a high
            degree of confidence.  WARNING:  this test will leave
            the battery in a low charge state and will require
            time for recharging to a level sufficient to provide
            normal battery duration for the protected load.(*)"
    ::= { upsWellKnownTestssecond  5 }

--
-- The Control group generic.
--

upsShutdownTypesecond OBJECT-TYPE
    SYNTAX     INTEGER {
        output(1),
        system&#40;2&#41;
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object determines the nature of the action to be
            taken at the time when the countdown of the
            upsShutdownAfterDelay and upsRebootWithDuration
            objects reaches zero.

            Setting this object to output(1) indicates that
            shutdown requests should cause only the output of the
            UPS to turn off.  Setting this object to system&#40;2&#41;
            indicates that shutdown requests will cause the entire
            UPS system to turn off.(*)"
    ::= { upsControlsecond 1 }

upsShutdownAfterDelaysecond OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will shutdown (i.e., turn off)
            either the UPS output or the UPS system &#40;as determined
            by the value of upsShutdownType at the time of
            shutdown&#41; after the indicated number of seconds, or
            less if the UPS batteries become depleted. Setting
            this object to 0 will cause the shutdown to occur
            immediately.  Setting this object to -1 will abort the
            countdown.  If the system is already in the desired
            state at the time the countdown reaches 0, then
            nothing will happen.  That is, there is no additional
            action at that time if upsShutdownType = system and
            the system is already off.  Similarly, there is no
            additional action at that time if upsShutdownType =
            output and the output is already off.  When read,
            upsShutdownAfterDelay will return the number of
            seconds remaining until shutdown, or -1 if no shutdown
            countdown is in effect.  On some systems, if the agent
            is restarted while a shutdown countdown is in effect,
            the countdown may be aborted.  Sets to this object
            override any upsShutdownAfterDelay already in effect.(*)"
    ::= { upsControlsecond 2 }

upsStartupAfterDelaysecond OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will start the output after the
            indicated number of seconds, including starting the
            UPS, if necessary.  Setting this object to 0 will
            cause the startup to occur immediately.  Setting this
            object to -1 will abort the countdown.  If the output
            is already on at the time the countdown reaches 0,
            then nothing will happen.  Sets to this object
            override the effect of any upsStartupAfterDelay
            countdown or upsRebootWithDuration countdown in
            progress.  When read, upsStartupAfterDelay will return
            the number of seconds until startup, or -1 if no
            startup countdown is in effect.  If the countdown
            expires during a utility failure, the startup shall
            not occur until the utility power is restored.  On
            some systems, if the agent is restarted while a
            startup countdown is in effect, the countdown is
            aborted.(*)"
    ::= { upsControlsecond 3 }

upsRebootWithDurationsecond OBJECT-TYPE
    SYNTAX     Integer32 (-1..300)
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will immediately shutdown (i.e.,
            turn off) either the UPS output or the UPS system &#40;as
            determined by the value of upsShutdownType at the time
            of shutdown&#41; for a period equal to the indicated
            number of seconds, after which time the output will be
            started, including starting the UPS, if necessary.  If
            the number of seconds required to perform the request
            is greater than the requested duration, then the
            requested shutdown and startup cycle shall be
            performed in the minimum time possible, but in no case
            shall this require more than the requested duration
            plus 60 seconds.  When read, upsRebootWithDuration
            shall return the number of seconds remaining in the
            countdown, or -1 if no countdown is in progress.  If
            the startup should occur during a utility failure, the
            startup shall not occur until the utility power is
            restored.(*)"
    ::= { upsControlsecond 4 }

upsAutoRestartsecond OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object to 'on' will cause the UPS system
            to restart after a shutdown if the shutdown occurred
            during a power loss as a result of either a
            upsShutdownAfterDelay or an internal battery depleted
            condition.  Setting this object to 'off' will prevent
            the UPS system from restarting after a shutdown until
            an operator manually or remotely explicitly restarts
            it.  If the UPS is in a startup or reboot countdown,
            then the UPS will not restart until that delay has
            been satisfied.(*)"
    ::= { upsControlsecond 5 }

upsReceptaclesNumsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of receptacles utilized in this device.
            This entry indicates the number of rows in the receptacle
            table."
    ::= { upsControlsecond 6 }

upsReceptacleSecondTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsReceptacleSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of receptacle table entries.  The number of
            entries is given by the value of upsReceptacleNum."
    ::= { upsControlsecond 7 }

upsReceptacleSecondEntry OBJECT-TYPE
    SYNTAX     UpsReceptacleSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular receptacle."
    INDEX { upsReceptacleLineIndexsecond }
    ::= { upsReceptacleSecondTable 1 }

UpsReceptacleSecondEntry ::= SEQUENCE {
    upsReceptacleLineIndexsecond  PositiveInteger32,
    upsReceptacleOnOffsecond      INTEGER    
}

upsReceptacleLineIndexsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The receptacle line identifier."
    ::= { upsReceptacleSecondEntry 1 }

upsReceptacleOnOffsecond OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the receptacle. Setting this 
             object to 'on' will cause the receptacle to be turned
             on. Setting this object to 'off' will turn the
             receptacle off. If the receptacle is already in the
             desired state nothing will happen. After an
             autorestart (see upsAutoRestart) the receptacle will
             be on."
    ::= { upsReceptacleSecondEntry 2 }

upsUPSModesecond OBJECT-TYPE
    SYNTAX     INTEGER {
        offLine(1),
        onLine(2),
        ecomode(3),
        iem(4)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The operation mode off the UPS. Off-line indicates a
            mode in which the input power is transferred to the
            output directly or via a step-up or step-down
            transformer. On-line mode indicates a mode in which 
            the output power is regenerated through some convertor.
            the operating mode of the UPS may be fixed, or may be
            selectable (e.g. an on-line UPS with ecomode)"
    ::= { upsControlsecond 8 }

upsRectifierOnOffsecond OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the rectifier. Setting this 
             object to 'on' will cause the rectifier to be turned
             on. Setting this object to 'off' will turn the
             rectifier off. If the rectifier is already in the
             desired state nothing will happen. "
    ::= { upsControlsecond 9 }

upsBatteryChargeMethodsecond OBJECT-TYPE
    SYNTAX     INTEGER {
        normalcharge(1),
        boostcharge(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the charge method. Setting this 
             object to 'Normal charge' will cause the battery to be 
             charged using the normal method. Setting this object to 
             'Boost charge' will charge the battery in boost mode. 
             If the charge method is already in the desired state 
             nothing will happen. "
    ::= { upsControlsecond 10 }

upsInverterOnOffsecond OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the inverter. Setting this 
             object to 'on' will cause the inverter to be turned
             on. Setting this object to 'off' will turn the
             inverter off. If the inverter is already in the
             desired state nothing will happen. "
    ::= { upsControlsecond 11 }

upsBypassOnOffsecond OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the bypass. Setting this 
             object to 'on' will cause the bypass to be activated.
             Setting this object to 'off' will deactivate the
             bypass. If the UPS is already in the
             desired state nothing will happen. "
    ::= { upsControlsecond 12 }

upsLoadSourcesecond OBJECT-TYPE
    SYNTAX     INTEGER {
        onbypass(1),
        onInverter(2),
        onDetour(3),
        loadOff(4),
        other (5)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present source of the load. Setting this 
             object to 'On bypass' will cause the load to be 
             supplied by the bypass.
             Setting this object to 'On inverter' will cause the 
             load to be supplied by the inverter.
             If the load is already supplied by the desired 
             source nothing will happen. "
    ::= { upsControlsecond 13 }
 
--
-- The Configuration group generic.
--

upsConfigInputVoltagesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal input voltage.  On those
            systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigsecond 1 }

upsConfigInputFreqsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal input frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigsecond 2 }

upsConfigOutputVoltagesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal output voltage.  On
            those systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigsecond 3 }

upsConfigOutputFreqsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal output frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigsecond 4 }

upsConfigOutputVAsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Volt-Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal Volt-Amp rating.(*)"
    ::= { upsConfigsecond 5 }

upsConfigOutputPowersecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal true power rating.(*)"
    ::= { upsConfigsecond 6 }

upsConfigLowBattTimesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "minutes"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The value of upsEstimatedMinutesRemaining at which a
            lowBattery condition is declared.  For agents which
            support only discrete (discontinuous) values, then the
            agent shall round up to the next supported value.  If
            the requested value is larger than the largest
            supported value, then the largest supported value
            shall be selected.(*)"
    ::= { upsConfigsecond 7 }

upsConfigAudibleStatussecond OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2),
        muted(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The requested state of the audible alarm.  When in
            the disabled state, the audible alarm should never
            sound.  The enabled state is self-describing.  Setting
            this object to muted(3) when the audible alarm is
            sounding shall temporarily silence the alarm.  It will
            remain muted until it would normally stop sounding and
            the value returned for read operations during this
            period shall equal muted(3).  At the end of this
            period, the value shall revert to enabled(2).  Writes
            of the value muted(3) when the audible alarm is not
            sounding shall be accepted but otherwise shall have no
            effect.(*)"
    ::= { upsConfigsecond 8 }

upsConfigLowVoltageTransferPointsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The minimum input line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigsecond 9 }

upsConfigHighVoltageTransferPointsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigsecond 10 }

upsConfigBatteryCapacitysecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Amps Hours"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The installed battery capacity. This value is the 'factory'-value,
             not the value after calibration."
    ::= { upsConfigsecond 11 }

upsConfigBatteryChargeCurrentsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum battery charge current, including external chargers."
    ::= { upsConfigsecond 12 }      

upsConfigNoLoadShutdownsecond OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Dis- or enable 'no load' shutdown from the contact interface."
    ::= { upsConfigsecond 13 }
 
upsConfigStartDelaysecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"    
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Minimum required autonomy time before the UPS may perform an
             autorestart."
    ::= { upsConfigsecond 14 }

--
-- The GetSet group generic.
--

upsEventGetNextsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventSetStartingTimeStamp
            will be used as the start value of the table with the lowest index number."
    ::= { upsGetSetsecond 1 }

upsEventGetPrevioussecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventLastTime will
            be used as the last value of the table with the highest index number.

            Returns SNMPNOSUCHNAME for UPSs that don't support this command."
    ::= { upsGetSetsecond 2 }
    
upsEventSetStartingTimeStampsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The timestamp which is used as starting point for downloading
             events from the UPS event buffer"
    ::= { upsGetSetsecond 3 }    

upsEventRetreiveCurrentTimeStampsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current timestamp is retreived from the UPS"
    ::= { upsGetSetsecond 4 }    

upsEventTableSizesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the event table.
            This object indicates the number of rows in the event table."
    ::= { upsGetSetsecond 5 }

upsEventSecondTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsEventSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of event table entries.  The number of entries is always
            10, and the value of upsEventTableSize gives the number of valid
            entries from the begging of the table.  Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..10)):

            PDU-SET upsSetStartingTimeStamp <time> 
            PDU-SET upsEventGetNext <number>
            PDU-GET upsEventTableSize
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 1
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 2
            ..
            PDU-GET upsEventCode,upsEventStatus,upsEventTime <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsEventTableSize.
            "
    ::= { upsGetSetsecond 6 }

upsEventSecondEntry OBJECT-TYPE
    SYNTAX     UpsEventSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular event."
    INDEX { upsEventLineIndexsecond }
    ::= { upsEventSecondTable 1 }

UpsEventSecondEntry ::= SEQUENCE {
    upsEventLineIndexsecond PositiveInteger32,
    upsEventCodesecond      Integer32,
    upsEventStatussecond    NonNegativeInteger32,
    upsEventTimesecond      NonNegativeInteger32
}

upsEventLineIndexsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The event line identifier."
    ::= { upsEventSecondEntry 1 }

upsEventCodesecond OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The event code in numerical format."
    ::= { upsEventSecondEntry 2 }

upsEventStatussecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of the UPS at the moment that the event was generated.
             The format is specified at the 'upsStatus' command.
             If the UPS is not able to deliver status information, then
             SNMPNOSUCHNAME is returned."
    ::= { upsEventSecondEntry 3 }

upsEventTimesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The timestamp of the moment the event was generated."
    ::= { upsEventSecondEntry 4 }

upsParametersReadsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to retreive from the UPS.
            When this object is set the ParameterTable will be filled with the
            requested number of entries. The value upsParametersStartAddress
            will be used as the start value of the table with the lowest index 
            number."
    ::= { upsGetSetsecond 7 }

upsParametersWritesecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to write to the UPS.
            When this object is set the ParameterTable will be send to the ups. 
            The value upsParametersStartAddress will be used for the second value 
            of the table with the lowest index number."
    ::= { upsGetSetsecond 8 }

upsParametersStartAddresssecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The address which is used as starting point for downloading
             parameters from the UPS"
    ::= { upsGetSetsecond 9 }    

upsParameterTableSizesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the parameter table.
            This object indicates the number of rows in the parameter table."
    ::= { upsGetSetsecond 10 }

upsParameterSecondTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsParameterSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of parameter entries. The number of entries is always
            16, and the value of upsParameterTableSize gives the number of valid
            entries from the begging of the table. Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..16)):

            Read sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParametersRead <number>
            PDU-GET upsParameterTableSize
            PDU-GET upsParameterValue 1
            PDU-GET upsParameterValue 2
            ..
            PDU-GET upsParameterValue <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsParameterTableSize.

            Write sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParameterValue 1
            PDU-SET upsParameterValue 2
            ..
            PDU-SET upsParameterValue <number>
            PDU-SET upsParametersWrite <number>
            "
    ::= { upsGetSetsecond 11 }

upsParameterSecondEntry OBJECT-TYPE
    SYNTAX     UpsParameterSecondEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular parameter."
    INDEX { upsParameterLineIndexsecond }
    ::= { upsParameterSecondTable 1 }

UpsParameterSecondEntry ::= SEQUENCE {
    upsParameterLineIndexsecond PositiveInteger32,
    upsParameterValuesecond     Integer32   
}

upsParameterLineIndexsecond OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The parameter line identifier."
    ::= { upsParameterSecondEntry 1 }

upsParameterValuesecond OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The parameter value in numerical format."
    ::= { upsParameterSecondEntry 2 }

upsStatussecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The global UPS status is returned. Every bit reflects a specific 
             status condition. Unused bits returns as 0. The status value can 
             also be found on other commands. The value SNMPNOSUCHNAME means 
             'invalid status' or 'status value non available'.

             Status
                     1  0000 0001h upsStatusEcomodeIsOn
                     2  0000 0002h upsStatusBatteryIsCharging
                     4  0000 0004h upsStatusBatteryIsDischarging
                     8  0000 0008h upsStatusAlarmIsActive
                    16  0000 0010h upsStatusRectifierIsOn
                    32  0000 0020h upsStatusLowBattery
                    64  0000 0040h upsStatusOnBypass
                   128  0000 0080h upsStatusMainsBypassOK
                   256  0000 0100h upsStatusMainsRectifierOK
                   512  0000 0200h upsStatusDetourIsOn
                  1024  0000 0400h upsStatusAcousticAlarmIsOn
                  2048  0000 0800h upsStatusGlobalServiceCheck
                  4096  0000 1000h upsStatusInverterIsOn
                  8192  0000 2000h upsStatusNotInParallel (Q1 open)
                 16384  0000 4000h upsStatusResetLoadOff
                 32768  0000 8000h upsStatusLoadOff 
                 65536  0001 0000h upsStatusBoostMode 
                131072  0002 0000h upsStatusBuckMode 
                262144  0004 0000h upsStatusIemModeIsOn 
                524288  0008 0000h upsStatus5thFilterIsOn 
               1048576  0010 0000h upsStatus11thFilterIsOn
               2097152  0020 0000h upsStatus2ndRectifierBridgeIsOn
               4194304  0040 0000h - reserved -
               8388608  0080 0000h - reserved -
              16777216  0100 0000h - reserved -
              33554432  0200 0000h - reserved -
              67108864  0400 0000h - reserved -
             134217728  0800 0000h - reserved -
             268435456  1000 0000h upsGlobalParallelValues "
    ::= { upsGetSetsecond 12 }

upsMainsStatisticsMBfailsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of main bypass failures (>200 ms), since UPS installation."
    ::= { upsGetSetsecond 13 }

upsMainsStatisticsMRfailsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of mains rectifier failures (>200 ms), since UPS installation."
    ::= { upsGetSetsecond 14 }
  
upsMainsStatisticsB2second OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (0..2 ms), during the last 7 days."
    ::= { upsGetSetsecond 15 }

upsMainsStatisticsB5second OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (2..5 ms), during the last 7 days."
    ::= { upsGetSetsecond 16 }

upsMainsStatisticsB10second OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (5..10 ms), during the last 7 days."
    ::= { upsGetSetsecond 17 }

upsMainsStatisticsB200second OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (10..200 ms), during the last 7 days."
    ::= { upsGetSetsecond 18 }

upsMainsStatisticsBypRelsecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bypass reliability degree [0..100%;255]. The value NOSUCHNAME means 'not available'."
    ::= { upsGetSetsecond 19 }

upsTimesecond OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The current timestamp (or real-time) of the UPS. For the format, 
             see 'Timestamp' specifications. The write-command has to comply with the 
             correct timestamp format expected by the UPS (counter value or real-time-clock 
             value). Missing to doing so will result in a SNMPsecondERROR, 
             meaning 'command not supported'. It is possible to know which is the timestamp 
             format supported by the UPS, by issuing a read-command or by reading events, 
             which includes timestamps."
    ::= { upsGetSetsecond 20 }

upsRequestPermissionsecond OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An encrypted code is send to enable use of restricted write objects during
             a limited period of time."
    ::= { upsGetSetsecond 21 }
    
upsEventGetCodesecond OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The code which is used as starting point to downloading the events from the 
            UPS event buffer."
    ::= { upsGetSetsecond 22 }    
    
upsEventSpinLocksecond OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the event subsystem. "

    ::= { upsGetSetsecond 23 }
    
upsParameterSpinLocksecond OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the parameters subsystem. "

    ::= { upsGetSetsecond 24 }


--
-- GE Trap group generic
--

upsTrapAlarmBatteryBadsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement."
    ::= { geUPSTrapssecond 1 }

upsTrapAlarmOnBatterysecond NOTIFICATION-TYPE
    OBJECTS  { upsSecondsOnBatterysecond  }
    STATUS  current 
    DESCRIPTION
            "The UPS is drawing power from the batteries."
    ::= { geUPSTrapssecond 2 }

upsTrapAlarmLowBatterysecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime."
    ::= { geUPSTrapssecond 3 }

upsTrapAlarmDepletedBatterysecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost)"
    ::= { geUPSTrapssecond 4 }

upsTrapAlarmTempBadsecond NOTIFICATION-TYPE
    OBJECTS  { upsBatteryTemperature }
    STATUS  current 
    DESCRIPTION
            "A temperature is out of tolerance."
    ::= { geUPSTrapssecond 5 }

upsTrapAlarmInputBadsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input condition is out of tolerance."
    ::= { geUPSTrapssecond 6 }

upsTrapAlarmOutputBadsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance."
    ::= { geUPSTrapssecond 7 }

upsTrapAlarmOutputOverloadsecond NOTIFICATION-TYPE
    OBJECTS  { upsOutputNumLinessecond, upsOutputPercentLoadsecond }
    STATUS  current 
    DESCRIPTION
            "The output load exceeds the UPS output capacity."
    ::= { geUPSTrapssecond 8 }

upsTrapAlarmOnBypasssecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS."
    ::= { geUPSTrapssecond 9 }

upsTrapAlarmBypassBadsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is out of tolerance."
    ::= { geUPSTrapssecond 10 }

upsTrapAlarmOutputOffAsRequestedsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off."
    ::= { geUPSTrapssecond 11 }

upsTrapAlarmUpsOffAsRequestedsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The entire UPS has shutdown as commanded."
    ::= { geUPSTrapssecond 12 }

upsTrapAlarmChargerFailedsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem."
    ::= { geUPSTrapssecond 13 }

upsTrapAlarmUpsOutputOffsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS is in the off state."
    ::= { geUPSTrapssecond 14 }

upsTrapAlarmUpsSystemOffsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is in the off state."
    ::= { geUPSTrapssecond 15 }

upsTrapAlarmFanFailuresecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected."
    ::= { geUPSTrapssecond 16 }

upsTrapAlarmFuseFailuresecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fuses has been detected."
    ::= { geUPSTrapssecond 17 }

upsTrapAlarmGeneralFaultsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault in the UPS has been detected."
    ::= { geUPSTrapssecond 18 }

upsTrapAlarmDiagnosticTestFailedsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure."
    ::= { geUPSTrapssecond 19 }

upsTrapAlarmCommunicationsLostsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem has been encountered in the communication
            between the agent and the UPS."
    ::= { geUPSTrapssecond 20 }
    
upsTrapAlarmAwaitingPowersecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of the input power (*)."
    ::= { geUPSTrapssecond 21 }

upsTrapAlarmShutdownPendingsecond NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelaysecond }
    STATUS  current 
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway."
    ::= { geUPSTrapssecond 22 }

upsTrapAlarmShutdownImminentsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 seconds; this may be either a timed shutdown or a
            low battery shutdown."
    ::= { geUPSTrapssecond 23 }

upsTrapAlarmTestInProgresssecond NOTIFICATION-TYPE
    OBJECTS  { upsTestIdsecond }
    STATUS  current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY."
    ::= { geUPSTrapssecond 24 }

upsTrapAlarmReceptacleOffsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched off."
    ::= { geUPSTrapssecond 25 }

upsTrapAlarmHighspeedBusFailuresecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is detected."
    ::= { geUPSTrapssecond 26 }

upsTrapAlarmHighspeedBusJACRCFailuresecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is detected."
    ::= { geUPSTrapssecond 27 }
     
upsTrapAlarmConnectivityBusFailuresecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected."
    ::= { geUPSTrapssecond 28 }

upsTrapAlarmHighspeedBusJBCRCFailuresecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
     ::= { geUPSTrapssecond 29 }

upsTrapAlarmCurrentSharingFailuresecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is detected."
     ::= { geUPSTrapssecond 30 }
     
upsTrapAlarmDCRippleFailuresecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is detected."
     ::= { geUPSTrapssecond 31 }

upsTrapAlarmBatteryBadRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Battery bad condition is restored."
    ::= { geUPSTrapssecond 33 }

upsTrapAlarmOnBatteryRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from mains again."
    ::= { geUPSTrapssecond 34 }

upsTrapAlarmLowBatteryRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Low Battery condition is restored."
    ::= { geUPSTrapssecond 35 }

upsTrapAlarmDepletedBatteryRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Depleted Battery condition is restored."
    ::= { geUPSTrapssecond 36 }

upsTrapAlarmTempBadRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A bad temperature condition is restored."
    ::= { geUPSTrapssecond 37 }

upsTrapAlarmInputBadRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input bad condition is restored."
    ::= { geUPSTrapssecond 38 }

upsTrapAlarmOutputBadRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output bad condition is restored."
    ::= { geUPSTrapssecond 39 }

upsTrapAlarmOutputOverloadRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output overload condition is restored."
    ::= { geUPSTrapssecond 40 }

upsTrapAlarmOnBypassRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An On Bypass condition is restored."
    ::= { geUPSTrapssecond 41 }

upsTrapAlarmBypassBadRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Bypass bad condition is restored."
    ::= { geUPSTrapssecond 42 }

upsTrapAlarmOutputOffAsRequestedRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A request shutdown has been restored."
    ::= { geUPSTrapssecond 43 }

upsTrapAlarmUpsOffAsRequestedRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A entire UPS command has been restored."
    ::= { geUPSTrapssecond 44 }

upsTrapAlarmChargerFailedRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Charger Failer condition is restored."
    ::= { geUPSTrapssecond 45 }

upsTrapAlarmUpsOutputOnsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS switched in the on state."
    ::= { geUPSTrapssecond 46 }

upsTrapAlarmUpsSystemOnsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is switched in the on state."
    ::= { geUPSTrapssecond 47 }

upsTrapAlarmFanFailureRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fan failure condition is restored."
    ::= { geUPSTrapssecond 48 }

upsTrapAlarmFuseFailureRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fuse failure condition is restored."
    ::= { geUPSTrapssecond 49 }

upsTrapAlarmGeneralFaultRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault is restored."
    ::= { geUPSTrapssecond 50 }

upsTrapAlarmDiagnosticTestFailedRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A last diagnostic test indicates a failure is 
            restored."
    ::= { geUPSTrapssecond 51 }

upsTrapAlarmCommunicationsLostRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem in the communication between the agent 
            and the UPS is restored."
    ::= { geUPSTrapssecond 52 }
    
upsTrapAlarmAwaitingPowerRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A awaiting power condition is restored (*)."
    ::= { geUPSTrapssecond 53 }

upsTrapAlarmShutdownPendingRestoredsecond NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelaysecond }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is restored."
    ::= { geUPSTrapssecond 54 }

upsTrapAlarmShutdownImminentRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A shutdown imminent condition is restored."
    ::= { geUPSTrapssecond 55 }

upsTrapAlarmTestInProgressRestoredsecond NOTIFICATION-TYPE
    OBJECTS  { upsTestIdsecond }
    STATUS  current
    DESCRIPTION
            "The test is in progress is terminated."
    ::= { geUPSTrapssecond 56 }

upsTrapAlarmReceptacleOnsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched on."
    ::= { geUPSTrapssecond 57 }

upsTrapAlarmHighspeedBusRestoredsecond NOTIFICATION-TYPE
    STATUS  current 
    DESCRIPTION
            "A problem on the Highspeed Bus communication is restored."
    ::= { geUPSTrapssecond 58 }

upsTrapAlarmHighspeedBusJACRCRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is restored."
    ::= { geUPSTrapssecond 59 }
     
upsTrapAlarmConnectivityBusRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is restored."
    ::= { geUPSTrapssecond 60 }

upsTrapAlarmHighspeedBusJBCRCRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is restored."
     ::= { geUPSTrapssecond 61 }

upsTrapAlarmCurrentSharingRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is restored."
     ::= { geUPSTrapssecond 62 }
     
upsTrapAlarmDCRippleRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is restored."
     ::= { geUPSTrapssecond 63 }
     
upsTrapAlarmValueLowsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value below its low-level threshold."
    ::= { geUPSTrapssecond 129 }

upsTrapAlarmValueHighsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value higher than its high-level threshold."
    ::= { geUPSTrapssecond 130 }

upsTrapAlarmValueLowRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueLow alarm condition is restored."
    ::= { geUPSTrapssecond 133 }

upsTrapAlarmValueHighRestoredsecond NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueHigh alarm condition is restored."
    ::= { geUPSTrapssecond 134 }


--
-- Diagnostic Group Generic
--

upsDiagnosticBusJACommunicationStatussecond OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticsecond 1 }
    
upsDiagnosticBusJBCommunicationStatussecond OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticsecond 2 }
  
upsDiagnosticBatteryLifetimesecond OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsecond 3 }

upsDiagnosticFansLifetimesecond OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsecond 4 } 
    
upsDiagnosticDCcapacitorsLifetimesecond OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsecond 5 }  
    
upsDiagnosticACcapacitorsLifetimesecond OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsecond 6 }
    
upsDiagnosticGlobalServiceChecksecond OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsecond 7 }


--
-- The Device Identification group. Third
--      All objects in this group except for upsIdentName and
--      upsIdentAttachedDevices are set at device initialization
--      and remain static.
--

upsIdentManufacturerthird OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the UPS manufacturer.(*)"
    ::= { upsIdentthird 1 }

upsIdentModelthird OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS Model designation.(*)"
    ::= { upsIdentthird 2 }

upsIdentUPSSoftwareVersionthird OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS firmware/software version(s).  This variable
            may or may not have the same value as
            upsIdentAgentSoftwareVersion in some implementations.(*)"
    ::= { upsIdentthird 3 }

upsIdentAgentSoftwareVersionthird OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS agent software version.  This variable may or
            may not have the same value as
            upsIdentUPSSoftwareVersion in some implementations.(*)"
    ::= { upsIdentthird 4 }

upsIdentNamethird OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the UPS.  This object should be
            set by the administrator.(*)"
    ::= { upsIdentthird 5 }

upsIdentAttachedDevicesthird OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the devices attached to the
            output(s) of the UPS.  This object should be set by
            the administrator.(*)"
    ::= { upsIdentthird 6 }

upsIdentUPSSerialNumberthird OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS serial number"
    ::= { upsIdentthird 7 }
    
upsIdentComProtVersionthird OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IMV communication protocol version"
    ::= { upsIdentthird 8 } 
  
upsIdentOperatingTimethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present value of the operating time.
             total 'on' time since UPS manufactured"
    ::= { upsIdentthird 9 } 
    
--
-- Battery Group Generic
--

upsBatteryStatusthird OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        batteryNormal(2),
        batteryLow(3),
        batteryDepleted(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The indication of the capacity remaining in the UPS
            system's batteries.   A value of batteryNormal
            indicates that the remaining run-time is greater than
            upsConfigLowBattTime.  A value of batteryLow indicates
            that the remaining battery run-time is less than or
            equal to upsConfigLowBattTime.  A value of
            batteryDepleted 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 and the UPS is
            unable to sustain the output).(*)"
    ::= { upsBatterythird 1 }

upsSecondsOnBatterythird OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "Seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If the unit is on battery power, the elapsed time
            since the UPS last switched to battery power, or the
            time since the network management subsystem was last
            restarted, whichever is less.  Zero shall be returned
            if the unit is not on battery power.(*)"
    ::= { upsBatterythird 2 }

upsEstimatedMinutesRemainingthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the time to battery charge depletion
            under the present load conditions if the utility power
            is off and remains off, or if it were to be lost and
            remain off.(*)"
    ::= { upsBatterythird 3 }

upsEstimatedChargeRemainingthird OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the battery charge remaining expressed
            as a percent of full charge.(*)"
    ::= { upsBatterythird 4 }

upsBatteryVoltagethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Volt DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present battery voltage.(*)"
    ::= { upsBatterythird 5 }

upsBatteryCurrentthird OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present battery current.(*)"
    ::= { upsBatterythird 6 }

upsBatteryTemperaturethird OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "degrees Centigrade"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ambient temperature at or near the UPS Battery
            casing.(*)"
    ::= { upsBatterythird 7 }

upsBatteryRipplethird OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Volt RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present DC link RMS voltage ripple.(*)"
    ::= { upsBatterythird 8 }

--
-- Input Group
--

upsInputLineBadsthird OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A count of the number of times the input entered an
            out-of-tolerance condition as defined by the
            manufacturer.  This count is incremented by one each
            time the input transitions from zero out-of-tolerance
            lines to one or more input lines out-of-tolerance.(*)"
    ::= { upsInputthird 1 }

upsInputNumLinesthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of input lines utilized in this device.
            This variable indicates the number of rows in the
            input table.(*)"
    ::= { upsInputthird 2 }

upsInputThirdTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsInputThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of input table entries.  The number of entries
            is given by the value of upsInputNumLines.(*)"
    ::= { upsInputthird 3 }

upsInputThirdEntry OBJECT-TYPE
    SYNTAX     UpsInputThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular input line.(*)"
    INDEX { upsInputLineIndexthird }
    ::= { upsInputThirdTable 1 }

UpsInputThirdEntry ::= SEQUENCE {
    upsInputLineIndexthird   PositiveInteger32,
    upsInputFrequencythird   NonNegativeInteger32,
    upsInputVoltagethird     NonNegativeInteger32,
    upsInputCurrentthird     NonNegativeInteger32,
    upsInputTruePowerthird   NonNegativeInteger32,
    upsInputVoltageMinthird  NonNegativeInteger32,
    upsInputVoltageMaxthird  NonNegativeInteger32
}

upsInputLineIndexthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The input line identifier.(*)"
    ::= { upsInputThirdEntry 1 }

upsInputFrequencythird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present input frequency.(*)"
    ::= { upsInputThirdEntry 2 }

upsInputVoltagethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input voltage.(*)"
    ::= { upsInputThirdEntry 3 }

upsInputCurrentthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input current.(*)"
    ::= { upsInputThirdEntry 4 }

upsInputTruePowerthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input true power.(*)"
    ::= { upsInputThirdEntry 5 }

upsInputVoltageMinthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The lowest magnitude of the input voltage since last read out."
    ::= { upsInputThirdEntry 6 }

upsInputVoltageMaxthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The highest magnitude of the input voltage since last read out."
    ::= { upsInputThirdEntry 7 }

--
-- The Output group.
--

upsOutputSourcethird OBJECT-TYPE
    SYNTAX     INTEGER {
        other(1),
        none(2),
        normal(3),
        bypass(4),
        battery(5),
        booster(6),
        reducer(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present source of output power.  The enumeration
            none(2) indicates that there is no source of output
            power (and therefore no output power), for example,
            the system has opened the output breaker.(*)"
    ::= { upsOutputthird 1 }

upsOutputFrequencythird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output frequency.(*)"
    ::= { upsOutputthird 2 }

upsOutputNumLinesthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of output lines utilized in this device.
            This variable indicates the number of rows in the
            output table.(*)"
    ::= { upsOutputthird 3 }

upsOutputThirdTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsOutputThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of output table entries.  The number of
            entries is given by the value of upsOutputNumLines.(*)"
    ::= { upsOutputthird 4 }

upsOutputThirdEntry OBJECT-TYPE
    SYNTAX     UpsOutputThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular output line.(*)"
    INDEX { upsOutputLineIndexthird }
    ::= { upsOutputThirdTable 1 }

UpsOutputThirdEntry ::= SEQUENCE {
    upsOutputLineIndexthird   PositiveInteger32,
    upsOutputVoltagethird     NonNegativeInteger32,
    upsOutputCurrentthird     NonNegativeInteger32,
    upsOutputPowerthird       NonNegativeInteger32,
    upsOutputPercentLoadthird Integer32,
    upsOutputPowerFactorthird Integer32,
    upsOutputPeakCurrentthird Integer32,
    upsOutputShareCurrentthird Integer32
}

upsOutputLineIndexthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The output line identifier.(*)"
    ::= { upsOutputThirdEntry 1 }

upsOutputVoltagethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output voltage.(*)"
    ::= { upsOutputThirdEntry 2 }

upsOutputCurrentthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output current.(*)"
    ::= { upsOutputThirdEntry 3 }

upsOutputPowerthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output true power.(*)"
    ::= { upsOutputThirdEntry 4 }

upsOutputPercentLoadthird OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The percentage of the UPS power capacity presently
            being used on this output line, i.e., the greater of
            the percent load of true power capacity and the
            percent load of VA.(*)"
    ::= { upsOutputThirdEntry 5 }

upsOutputPowerFactorthird OBJECT-TYPE
    SYNTAX     Integer32 (-99..100)
    UNITS      "0.01 cos phi"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output power factor. 
             The returned value correspond to the cosf of the load.
             A positive value indicate an inductive load; 
             a negative value indicate a capacitive load; 
             value 1 indicate a resistive load. 
             If the measure is not available due to a small load for 
             a consistent calculation, the NA value is then returned.(*)"
    ::= { upsOutputThirdEntry 6 }
    
upsOutputPeakCurrentthird OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output peak current.(*)"
    ::= { upsOutputThirdEntry 7 }

upsOutputShareCurrentthird OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "In a parallel system ideally all the UPS are requested to 
            contribute to the load with the same amount of current, 
            i.e. with no current share. The current share occurs when an
            UPS exchanges some current with another UPS, so that this 
            current component doesn't feed the load. 
            The share part of the UPS current represents an undesired UPS
            loading, and therefore it should be minimized. If the share 
            current is too high, the UPS results overloaded and in some 
            conditions (i.e. very high load) the system could turn on 
            bypass reducing dramatically the global system reliability.
   PMAD detects the amount of share currents in a parallel system,
   generating an alarm if this value is above a parameter-based threshold.
   Single UPS systems don't have this feature, NA will be provided.(*)"
    ::= { upsOutputThirdEntry 8 }

--
-- The Bypass group generic.
--

upsBypassFrequencythird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass frequency.(*)"
    ::= { upsBypassthird 1 }

upsBypassNumLinesthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of bypass lines utilized in this device.
            This entry indicates the number of rows in the bypass
            table.(*)"
    ::= { upsBypassthird 2 }

upsBypassThirdTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsBypassThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of bypass table entries.  The number of
            entries is given by the value of upsBypassNumLines.(*)"
    ::= { upsBypassthird 3 }

upsBypassThirdEntry OBJECT-TYPE
    SYNTAX     UpsBypassThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular bypass input.(*)"
    INDEX { upsBypassLineIndexthird }
    ::= { upsBypassThirdTable 1 }

UpsBypassThirdEntry ::= SEQUENCE {
    upsBypassLineIndexthird  PositiveInteger32,
    upsBypassVoltagethird    NonNegativeInteger32,
    upsBypassCurrentthird    NonNegativeInteger32,
    upsBypassPowerthird      NonNegativeInteger32
}

upsBypassLineIndexthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The bypass line identifier.(*)"
    ::= { upsBypassThirdEntry 1 }

upsBypassVoltagethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass voltage.(*)"
    ::= { upsBypassThirdEntry 2 }

upsBypassCurrentthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass current.(*)"
    ::= { upsBypassThirdEntry 3 }

upsBypassPowerthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present true power conveyed by the bypass.(*)"
    ::= { upsBypassThirdEntry 4 }

--
-- The Alarm group generic.
--

upsAlarmsPresentthird OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present number of active alarm conditions.(*)"
    ::= { upsAlarmthird 1 }

upsAlarmThirdTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsAlarmThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
            upsAlarmId equal to 1, and increments the value of
            upsAlarmId each time a new row is created, wrapping to
            the first free value greater than or equal to 1 when
            the maximum value of upsAlarmId would otherwise be
            exceeded.  Consequently, after multiple operations,
            the table may become sparse, e.g., containing entries
            for rows 95, 100, 101, and 203 and the entries should
            not be assumed to be in chronological order because
            upsAlarmId might have wrapped.

            Alarms are named by an AutonomousType (OBJECT
            IDENTIFIER), upsAlarmDescr, to allow a single table to
            reflect well known alarms plus alarms defined by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.  No
            two rows will have the same value of upsAlarmDescr,
            since alarms define conditions.  In order to meet this
            requirement, care should be taken in the definition of
            alarm conditions to insure that a system cannot enter
            the same condition multiple times simultaneously.

            The number of rows in the table at any given time is
            reflected by the value of upsAlarmsPresent.(*)"
    ::= { upsAlarmthird 2 }

upsAlarmThirdEntry OBJECT-TYPE
    SYNTAX     UpsAlarmThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular alarm.(*)"
    INDEX { upsAlarmIdthird }
    ::= { upsAlarmThirdTable 1 }

UpsAlarmThirdEntry ::= SEQUENCE {
    upsAlarmIdthird          PositiveInteger32,
    upsAlarmDescrthird       AutonomousType,
    upsAlarmTimethird       TimeStamp
}

upsAlarmIdthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique identifier for an alarm condition.  This
            value must remain constant.(*)"
    ::= { upsAlarmThirdEntry 1 }

upsAlarmDescrthird OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A reference to an alarm description object.  The
            object referenced should not be accessible, but rather
            be used to provide a unique description of the alarm
            condition.(*)"
    ::= { upsAlarmThirdEntry 2 }

upsAlarmTimethird OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when the alarm condition was
            detected.  If the alarm condition was detected at the
            time of agent startup and presumably existed before
            agent startup, the value of upsAlarmTime shall equal
            0.(*)"
    ::= { upsAlarmThirdEntry 3 }

--
-- Well known alarm conditions generic.
--

upsAlarmBatteryBadthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement.(*)"
    ::= { upsWellKnownAlarmsthird  1 }

upsAlarmOnBatterythird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS is drawing power from the batteries.(*)"
    ::= { upsWellKnownAlarmsthird  2 }

upsAlarmLowBatterythird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime.(*)"
    ::= { upsWellKnownAlarmsthird  3 }

upsAlarmDepletedBatterythird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost.(*)"
    ::= { upsWellKnownAlarmsthird  4 }

upsAlarmTempBadthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A temperature is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsthird  5 }

upsAlarmInputBadthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An input condition is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsthird  6 }

upsAlarmOutputBadthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance.(*)"
    ::= { upsWellKnownAlarmsthird  7 }

upsAlarmOutputOverloadthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output load exceeds the UPS output capacity.(*)"
    ::= { upsWellKnownAlarmsthird  8 }

upsAlarmOnBypassthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS.(*)"
    ::= { upsWellKnownAlarmsthird  9 }

upsAlarmBypassBadthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsthird 10 }

upsAlarmOutputOffAsRequestedthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off.(*)"
    ::= { upsWellKnownAlarmsthird 11 }

upsAlarmUpsOffAsRequestedthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The entire UPS has shutdown as commanded.(*)"
    ::= { upsWellKnownAlarmsthird 12 }

upsAlarmChargerFailedthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem.(*)"
    ::= { upsWellKnownAlarmsthird 13 }

upsAlarmUpsOutputOffthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output of the UPS is in the off state.(*)"
    ::= { upsWellKnownAlarmsthird 14 }

upsAlarmUpsSystemOffthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS system is in the off state.(*)"
    ::= { upsWellKnownAlarmsthird 15 }

upsAlarmFanFailurethird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected.(*)"
    ::= { upsWellKnownAlarmsthird 16 }

upsAlarmFuseFailurethird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fuses has been detected.(*)"
    ::= { upsWellKnownAlarmsthird 17 }

upsAlarmGeneralFaultthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A general fault in the UPS has been detected.(*)"
    ::= { upsWellKnownAlarmsthird 18 }

upsAlarmDiagnosticTestFailedthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure.(*)"
    ::= { upsWellKnownAlarmsthird 19 }

upsAlarmCommunicationsLostthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem has been encountered in the communications
            between the agent and the UPS.(*)"
    ::= { upsWellKnownAlarmsthird 20 }

upsAlarmAwaitingPowerthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of input power.(*)"
    ::= { upsWellKnownAlarmsthird 21 }

upsAlarmShutdownPendingthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway.(*)"
    ::= { upsWellKnownAlarmsthird 22 }

upsAlarmShutdownImminentthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 seconds; this may be either a timed shutdown or a
            low battery shutdown.(*)"
    ::= { upsWellKnownAlarmsthird 23 }

upsAlarmTestInProgressthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY.(*)"
    ::= { upsWellKnownAlarmsthird 24 }

upsAlarmReceptacleOffthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The receptacle are switch off    "
    ::= { upsWellKnownAlarmsthird 25 }

upsAlarmHighSpeedBusFailurethird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the High Speed Bus communication is detected"
    ::= { upsWellKnownAlarmsthird 26 }
    
upsAlarmHighSpeedBusJACRCFailurethird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JA is detected."
    ::= { upsWellKnownAlarmsthird 27 }
    
upsAlarmConnectivityBusFailurethird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected."
    ::= { upsWellKnownAlarmsthird 28 }

upsAlarmHighSpeedBusJBCRCFailurethird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JB is detected."
    ::= { upsWellKnownAlarmsthird 29 }

upsAlarmCurrentSharingthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high current sharing on the parallel system."
    ::= { upsWellKnownAlarmsthird 30 }
        
upsAlarmDCRipplethird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high ripple voltage on his DC link."
    ::= { upsWellKnownAlarmsthird 31 }

upsAlarmMaskAthird OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Specifies which alarm can be handled by the UPS.
            The 'Mask' parameter is a Long Integer32. The meaning
            of every bit is the same as for the 'upsAlarmGroupA'
            command. A bit having value=1 indicates that the
            corresponding alarm is handled by the UPS."
    ::= { upsAlarmthird 4 }

--
-- The Test Group generic
--

upsTestIdthird OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The test is named by an OBJECT IDENTIFIER which
            allows a standard mechanism for the initiation of
            tests, including the well known tests identified in
            this document as well as those introduced by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.

            Setting this variable initiates the named test. Sets
            to this variable require the presence of
            upsTestSpinLock in the same SNMP message.

            The set request will be rejected with an appropriate
            error message if the requested test cannot be
            performed, including attempts to start a test when
            another test is already in progress.  The status of
            the current or last test is maintained in
            upsTestResultsSummary. Tests in progress may be
            aborted by setting the upsTestId variable to
            upsTestAbortTestInProgress.

            Read operations return the value of the name of the
            test in progress if a test is in progress or the name
            of the last test performed if no test is in progress,
            unless no test has been run, in which case the well
            known value upsTestNoTestsInitiated is returned.(*)"
    ::= { upsTestthird 1 }

-- see [6] for more information on the semantics of objects with
-- syntax of TestAndIncr

upsTestSpinLockthird OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the test subsystem.  The spinlock is
            used as follows.

            Before starting a test, a manager-station should make
            sure that a test is not in progress as follows:

                tryagain:
                  get (upsTestSpinLock)
                  while (upsTestResultsSummary == inProgress) {
                    /* loop while a test is running for another
            manager */
                    short delay
                    get (upsTestSpinLock)
                  }
                  lockvalue = upsTestSpinLock
                  /* no test in progress, start the test */
                  set (upsTestSpinLock = lockvalue, upsTestId =
            requestedtest)
                  if (errorindex == 1) { /* (upsTestSpinLock
            failed) */
                    /* if problem is not access control, then
                        some other manager slipped in ahead of us
            */
                    goto tryagain
                  }
                  if (errorindex == 2) { /* (upsTestId) */
                    /* cannot perform the test */
                    give up
                  }
                  /* test started ok */
                  /* wait for test completion by polling
            upsTestResultsSummary */
                  get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  while (upsTestResultsSummary == inProgress) {
                    short delay
                    get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  }
                  /* when test completes, retrieve any additional
            test results */
                  /* if upsTestSpinLock == lockvalue + 1, then
            these are our test */
                  /* results (as opposed to another manager's */
                  The initial value of upsTestSpinLock at agent
            initialization shall
                  be 1.(*)"
    ::= { upsTestthird 2 }

upsTestResultsSummarythird OBJECT-TYPE
    SYNTAX     INTEGER {
        donePass(1),
        doneWarning(2),
        doneError(3),
        aborted(4),
        inProgress(5),
        noTestsInitiated(6)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The results of the current or last UPS diagnostics
            test performed.  The values for donePass(1),
            doneWarning(2), and doneError(3) indicate that the
            test completed either successfully, with a warning, or
            with an error, respectively.  The value aborted(4) is
            returned for tests which are aborted by setting the
            value of upsTestId to upsTestAbortTestInProgress.
            Tests which have not yet concluded are indicated by
            inProgress(5).  The value noTestsInitiated(6)
            indicates that no previous test results are available,
            such as is the case when no tests have been run since
            the last reinitialization of the network management
            subsystem and the system has no provision for non-
            volatile storage of test results.(*)"
    ::= { upsTestthird 3 }

upsTestResultsDetailthird OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Additional information about upsTestResultsSummary.
            If no additional information available, a zero length
            string is returned.(*)"
    ::= { upsTestthird 4 }

upsTestStartTimethird OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time the test in
            progress was initiated, or, if no test is in progress,
            the time the previous test was initiated.  If the
            value of upsTestResultsSummary is noTestsInitiated(6),
            upsTestStartTime has the value 0.(*)"
    ::= { upsTestthird 5 }

upsTestElapsedTimethird OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time, in TimeTicks, since the test in
            progress was initiated, or, if no test is in progress,
            the previous test took to complete.  If the value of
            upsTestResultsSummary is noTestsInitiated(6),
            upsTestElapsedTime has the value 0.(*)"
    ::= { upsTestthird 6 }

--
-- Well known tests generic.
--

upsTestNoTestsInitiatedthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "No tests have been initiated and no test is in
            progress.(*)"
    ::= { upsWellKnownTeststhird  1 }

upsTestAbortTestInProgressthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The test in progress is to be aborted / the test in
            progress was aborted.(*)"
    ::= { upsWellKnownTeststhird  2 }

upsTestGeneralSystemsTestthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The manufacturer's standard test of UPS device
            systems.(*)"
    ::= { upsWellKnownTeststhird  3 }

upsTestQuickBatteryTestthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test that is sufficient to determine if the battery
            needs replacement.(*)"
    ::= { upsWellKnownTeststhird  4 }

upsTestDeepBatteryCalibrationthird OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The system is placed on battery to a discharge level,
            set by the manufacturer, sufficient to determine
            battery replacement and battery run-time with a high
            degree of confidence.  WARNING:  this test will leave
            the battery in a low charge state and will require
            time for recharging to a level sufficient to provide
            normal battery duration for the protected load.(*)"
    ::= { upsWellKnownTeststhird  5 }

--
-- The Control group generic.
--

upsShutdownTypethird OBJECT-TYPE
    SYNTAX     INTEGER {
        output(1),
        system&#40;2&#41;
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object determines the nature of the action to be
            taken at the time when the countdown of the
            upsShutdownAfterDelay and upsRebootWithDuration
            objects reaches zero.

            Setting this object to output(1) indicates that
            shutdown requests should cause only the output of the
            UPS to turn off.  Setting this object to system&#40;2&#41;
            indicates that shutdown requests will cause the entire
            UPS system to turn off.(*)"
    ::= { upsControlthird 1 }

upsShutdownAfterDelaythird OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "Seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will shutdown (i.e., turn off)
            either the UPS output or the UPS system &#40;as determined
            by the value of upsShutdownType at the time of
            shutdown&#41; after the indicated number of Seconds, or
            less if the UPS batteries become depleted. Setting
            this object to 0 will cause the shutdown to occur
            immediately.  Setting this object to -1 will abort the
            countdown.  If the system is already in the desired
            state at the time the countdown reaches 0, then
            nothing will happen.  That is, there is no additional
            action at that time if upsShutdownType = system and
            the system is already off.  Similarly, there is no
            additional action at that time if upsShutdownType =
            output and the output is already off.  When read,
            upsShutdownAfterDelay will return the number of
            seconds remaining until shutdown, or -1 if no shutdown
            countdown is in effect.  On some systems, if the agent
            is restarted while a shutdown countdown is in effect,
            the countdown may be aborted.  Sets to this object
            override any upsShutdownAfterDelay already in effect.(*)"
    ::= { upsControlthird 2 }

upsStartupAfterDelaythird OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "Seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will start the output after the
            indicated number of seconds, including starting the
            UPS, if necessary.  Setting this object to 0 will
            cause the startup to occur immediately.  Setting this
            object to -1 will abort the countdown.  If the output
            is already on at the time the countdown reaches 0,
            then nothing will happen.  Sets to this object
            override the effect of any upsStartupAfterDelay
            countdown or upsRebootWithDuration countdown in
            progress.  When read, upsStartupAfterDelay will return
            the number of seconds until startup, or -1 if no
            startup countdown is in effect.  If the countdown
            expires during a utility failure, the startup shall
            not occur until the utility power is restored.  On
            some systems, if the agent is restarted while a
            startup countdown is in effect, the countdown is
            aborted.(*)"
    ::= { upsControlthird 3 }

upsRebootWithDurationthird OBJECT-TYPE
    SYNTAX     Integer32 (-1..300)
    UNITS      "Seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will immediately shutdown (i.e.,
            turn off) either the UPS output or the UPS system &#40;as
            determined by the value of upsShutdownType at the time
            of shutdown&#41; for a period equal to the indicated
            number of seconds, after which time the output will be
            started, including starting the UPS, if necessary.  If
            the number of seconds required to perform the request
            is greater than the requested duration, then the
            requested shutdown and startup cycle shall be
            performed in the minimum time possible, but in no case
            shall this require more than the requested duration
            plus 60 seconds.  When read, upsRebootWithDuration
            shall return the number of seconds remaining in the
            countdown, or -1 if no countdown is in progress.  If
            the startup should occur during a utility failure, the
            startup shall not occur until the utility power is
            restored.(*)"
    ::= { upsControlthird 4 }

upsAutoRestartthird OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object to 'on' will cause the UPS system
            to restart after a shutdown if the shutdown occurred
            during a power loss as a result of either a
            upsShutdownAfterDelay or an internal battery depleted
            condition.  Setting this object to 'off' will prevent
            the UPS system from restarting after a shutdown until
            an operator manually or remotely explicitly restarts
            it.  If the UPS is in a startup or reboot countdown,
            then the UPS will not restart until that delay has
            been satisfied.(*)"
    ::= { upsControlthird 5 }

upsReceptaclesNumthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of receptacles utilized in this device.
            This entry indicates the number of rows in the receptacle
            table."
    ::= { upsControlthird 6 }

upsReceptacleThirdTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsReceptacleThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of receptacle table entries.  The number of
            entries is given by the value of upsReceptacleNum."
    ::= { upsControlthird 7 }

upsReceptacleThirdEntry OBJECT-TYPE
    SYNTAX     UpsReceptacleThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular receptacle."
    INDEX { upsReceptacleLineIndexthird }
    ::= { upsReceptacleThirdTable 1 }

UpsReceptacleThirdEntry ::= SEQUENCE {
    upsReceptacleLineIndexthird  PositiveInteger32,
    upsReceptacleOnOffthird      INTEGER    
}

upsReceptacleLineIndexthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The receptacle line identifier."
    ::= { upsReceptacleThirdEntry 1 }

upsReceptacleOnOffthird OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the receptacle. Setting this 
             object to 'on' will cause the receptacle to be turned
             on. Setting this object to 'off' will turn the
             receptacle off. If the receptacle is already in the
             desired state nothing will happen. After an
             autorestart (see upsAutoRestart) the receptacle will
             be on."
    ::= { upsReceptacleThirdEntry 2 }

upsUPSModethird OBJECT-TYPE
    SYNTAX     INTEGER {
        offLine(1),
        onLine(2),
        ecomode(3),
        iem(4)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The operation mode off the UPS. Off-line indicates a
            mode in which the input power is transferred to the
            output directly or via a step-up or step-down
            transformer. On-line mode indicates a mode in which 
            the output power is regenerated through some convertor.
            the operating mode of the UPS may be fixed, or may be
            selectable (e.g. an on-line UPS with ecomode)"
    ::= { upsControlthird 8 }

upsRectifierOnOffthird OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the rectifier. Setting this 
             object to 'on' will cause the rectifier to be turned
             on. Setting this object to 'off' will turn the
             rectifier off. If the rectifier is already in the
             desired state nothing will happen. "
    ::= { upsControlthird 9 }

upsBatteryChargeMethodthird OBJECT-TYPE
    SYNTAX     INTEGER {
        normalcharge(1),
        boostcharge(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the charge method. Setting this 
             object to 'Normal charge' will cause the battery to be 
             charged using the normal method. Setting this object to 
             'Boost charge' will charge the battery in boost mode. 
             If the charge method is already in the desired state 
             nothing will happen. "
    ::= { upsControlthird 10 }

upsInverterOnOffthird OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the inverter. Setting this 
             object to 'on' will cause the inverter to be turned
             on. Setting this object to 'off' will turn the
             inverter off. If the inverter is already in the
             desired state nothing will happen. "
    ::= { upsControlthird 11 }

upsBypassOnOffthird OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the bypass. Setting this 
             object to 'on' will cause the bypass to be activated.
             Setting this object to 'off' will deactivate the
             bypass. If the UPS is already in the
             desired state nothing will happen. "
    ::= { upsControlthird 12 }

upsLoadSourcethird OBJECT-TYPE
    SYNTAX     INTEGER {
        onbypass(1),
        onInverter(2),
        onDetour(3),
        loadOff(4),
        other (5)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present source of the load. Setting this 
             object to 'On bypass' will cause the load to be 
             supplied by the bypass.
             Setting this object to 'On inverter' will cause the 
             load to be supplied by the inverter.
             If the load is already supplied by the desired 
             source nothing will happen. "
    ::= { upsControlthird 13 }
 
--
-- The Configuration group generic.
--

upsConfigInputVoltagethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal input voltage.  On those
            systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigthird 1 }

upsConfigInputFreqthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal input frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigthird 2 }

upsConfigOutputVoltagethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal output voltage.  On
            those systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigthird 3 }

upsConfigOutputFreqthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal output frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigthird 4 }

upsConfigOutputVAthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Volt-Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal Volt-Amp rating.(*)"
    ::= { upsConfigthird 5 }

upsConfigOutputPowerthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal true power rating.(*)"
    ::= { upsConfigthird 6 }

upsConfigLowBattTimethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "minutes"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The value of upsEstimatedMinutesRemaining at which a
            lowBattery condition is declared.  For agents which
            support only discrete (discontinuous) values, then the
            agent shall round up to the next supported value.  If
            the requested value is larger than the largest
            supported value, then the largest supported value
            shall be selected.(*)"
    ::= { upsConfigthird 7 }

upsConfigAudibleStatusthird OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2),
        muted(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The requested state of the audible alarm.  When in
            the disabled state, the audible alarm should never
            sound.  The enabled state is self-describing.  Setting
            this object to muted(3) when the audible alarm is
            sounding shall temporarily silence the alarm.  It will
            remain muted until it would normally stop sounding and
            the value returned for read operations during this
            period shall equal muted(3).  At the end of this
            period, the value shall revert to enabled(2).  Writes
            of the value muted(3) when the audible alarm is not
            sounding shall be accepted but otherwise shall have no
            effect.(*)"
    ::= { upsConfigthird 8 }

upsConfigLowVoltageTransferPointthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The minimum input line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigthird 9 }

upsConfigHighVoltageTransferPointthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigthird 10 }

upsConfigBatteryCapacitythird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Amps Hours"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The installed battery capacity. This value is the 'factory'-value,
             not the value after calibration."
    ::= { upsConfigthird 11 }

upsConfigBatteryChargeCurrentthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum battery charge current, including external chargers."
    ::= { upsConfigthird 12 }      

upsConfigNoLoadShutdownthird OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Dis- or enable 'no load' shutdown from the contact interface."
    ::= { upsConfigthird 13 }
 
upsConfigStartDelaythird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"    
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Minimum required autonomy time before the UPS may perform an
             autorestart."
    ::= { upsConfigthird 14 }

--
-- The GetSet group generic.
--

upsEventGetNextthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventSetStartingTimeStamp
            will be used as the start value of the table with the lowest index number."
    ::= { upsGetSetthird 1 }

upsEventGetPreviousthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventLastTime will
            be used as the last value of the table with the highest index number.

            Returns SNMPNOSUCHNAME for UPSs that don't support this command."
    ::= { upsGetSetthird 2 }
    
upsEventSetStartingTimeStampthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The timestamp which is used as starting point for downloading
             events from the UPS event buffer"
    ::= { upsGetSetthird 3 }    

upsEventRetreiveCurrentTimeStampthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current timestamp is retreived from the UPS"
    ::= { upsGetSetthird 4 }    

upsEventTableSizethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the event table.
            This object indicates the number of rows in the event table."
    ::= { upsGetSetthird 5 }

upsEventThirdTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsEventThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of event table entries.  The number of entries is always
            10, and the value of upsEventTableSize gives the number of valid
            entries from the begging of the table.  Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..10)):

            PDU-SET upsSetStartingTimeStamp <time> 
            PDU-SET upsEventGetNext <number>
            PDU-GET upsEventTableSize
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 1
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 2
            ..
            PDU-GET upsEventCode,upsEventStatus,upsEventTime <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsEventTableSize.
            "
    ::= { upsGetSetthird 6 }

upsEventThirdEntry OBJECT-TYPE
    SYNTAX     UpsEventThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular event."
    INDEX { upsEventLineIndexthird }
    ::= { upsEventThirdTable 1 }

UpsEventThirdEntry ::= SEQUENCE {
    upsEventLineIndexthird PositiveInteger32,
    upsEventCodethird      Integer32,
    upsEventStatusthird    NonNegativeInteger32,
    upsEventTimethird      NonNegativeInteger32
}

upsEventLineIndexthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The event line identifier."
    ::= { upsEventThirdEntry 1 }

upsEventCodethird OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The event code in numerical format."
    ::= { upsEventThirdEntry 2 }

upsEventStatusthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of the UPS at the moment that the event was generated.
             The format is specified at the 'upsStatus' command.
             If the UPS is not able to deliver status information, then
             SNMPNOSUCHNAME is returned."
    ::= { upsEventThirdEntry 3 }

upsEventTimethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The timestamp of the moment the event was generated."
    ::= { upsEventThirdEntry 4 }

upsParametersReadthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to retreive from the UPS.
            When this object is set the ParameterTable will be filled with the
            requested number of entries. The value upsParametersStartAddress
            will be used as the start value of the table with the lowest index 
            number."
    ::= { upsGetSetthird 7 }

upsParametersWritethird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to write to the UPS.
            When this object is set the ParameterTable will be send to the ups. 
            The value upsParametersStartAddress will be used for the third value 
            of the table with the lowest index number."
    ::= { upsGetSetthird 8 }

upsParametersStartAddressthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The address which is used as starting point for downloading
             parameters from the UPS"
    ::= { upsGetSetthird 9 }    

upsParameterTableSizethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the parameter table.
            This object indicates the number of rows in the parameter table."
    ::= { upsGetSetthird 10 }

upsParameterThirdTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsParameterThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of parameter entries. The number of entries is always
            16, and the value of upsParameterTableSize gives the number of valid
            entries from the begging of the table. Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..16)):

            Read sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParametersRead <number>
            PDU-GET upsParameterTableSize
            PDU-GET upsParameterValue 1
            PDU-GET upsParameterValue 2
            ..
            PDU-GET upsParameterValue <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsParameterTableSize.

            Write sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParameterValue 1
            PDU-SET upsParameterValue 2
            ..
            PDU-SET upsParameterValue <number>
            PDU-SET upsParametersWrite <number>
            "
    ::= { upsGetSetthird 11 }

upsParameterThirdEntry OBJECT-TYPE
    SYNTAX     UpsParameterThirdEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular parameter."
    INDEX { upsParameterLineIndexthird }
    ::= { upsParameterThirdTable 1 }

UpsParameterThirdEntry ::= SEQUENCE {
    upsParameterLineIndexthird PositiveInteger32,
    upsParameterValuethird     Integer32   
}

upsParameterLineIndexthird OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The parameter line identifier."
    ::= { upsParameterThirdEntry 1 }

upsParameterValuethird OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The parameter value in numerical format."
    ::= { upsParameterThirdEntry 2 }

upsStatusthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The global UPS status is returned. Every bit reflects a specific 
             status condition. Unused bits returns as 0. The status value can 
             also be found on other commands. The value SNMPNOSUCHNAME means 
             'invalid status' or 'status value non available'.

             Status
                     1  0000 0001h upsStatusEcomodeIsOn
                     2  0000 0002h upsStatusBatteryIsCharging
                     4  0000 0004h upsStatusBatteryIsDischarging
                     8  0000 0008h upsStatusAlarmIsActive
                    16  0000 0010h upsStatusRectifierIsOn
                    32  0000 0020h upsStatusLowBattery
                    64  0000 0040h upsStatusOnBypass
                   128  0000 0080h upsStatusMainsBypassOK
                   256  0000 0100h upsStatusMainsRectifierOK
                   512  0000 0200h upsStatusDetourIsOn
                  1024  0000 0400h upsStatusAcousticAlarmIsOn
                  2048  0000 0800h upsStatusGlobalServiceCheck
                  4096  0000 1000h upsStatusInverterIsOn
                  8192  0000 2000h upsStatusNotInParallel (Q1 open)
                 16384  0000 4000h upsStatusResetLoadOff
                 32768  0000 8000h upsStatusLoadOff 
                 65536  0001 0000h upsStatusBoostMode 
                131072  0002 0000h upsStatusBuckMode 
                262144  0004 0000h upsStatusIemModeIsOn 
                524288  0008 0000h upsStatus5thFilterIsOn 
               1048576  0010 0000h upsStatus11thFilterIsOn
               2097152  0020 0000h upsStatus2ndRectifierBridgeIsOn
               4194304  0040 0000h - reserved -
               8388608  0080 0000h - reserved -
              16777216  0100 0000h - reserved -
              33554432  0200 0000h - reserved -
              67108864  0400 0000h - reserved -
             134217728  0800 0000h - reserved -
             268435456  1000 0000h upsGlobalParallelValues "
    ::= { upsGetSetthird 12 }

upsMainsStatisticsMBfailthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of main bypass failures (>200 ms), since UPS installation."
    ::= { upsGetSetthird 13 }

upsMainsStatisticsMRfailthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of mains rectifier failures (>200 ms), since UPS installation."
    ::= { upsGetSetthird 14 }
  
upsMainsStatisticsB2third OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (0..2 ms), during the last 7 days."
    ::= { upsGetSetthird 15 }

upsMainsStatisticsB5third OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (2..5 ms), during the last 7 days."
    ::= { upsGetSetthird 16 }

upsMainsStatisticsB10third OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (5..10 ms), during the last 7 days."
    ::= { upsGetSetthird 17 }

upsMainsStatisticsB200third OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (10..200 ms), during the last 7 days."
    ::= { upsGetSetthird 18 }

upsMainsStatisticsBypRelthird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bypass reliability degree [0..100%;255]. The value NOSUCHNAME means 'not available'."
    ::= { upsGetSetthird 19 }

upsTimethird OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The current timestamp (or real-time) of the UPS. For the format, 
             see 'Timestamp' specifications. The write-command has to comply with the 
             correct timestamp format expected by the UPS (counter value or real-time-clock 
             value). Missing to doing so will result in a SNMP second ERROR, 
             meaning 'command not supported'. It is possible to know which is the timestamp 
             format supported by the UPS, by issuing a read-command or by reading events, 
             which includes timestamps."
    ::= { upsGetSetthird 20 }

upsRequestPermissionthird OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An encrypted code is send to enable use of restricted write objects during
             a limited period of time."
    ::= { upsGetSetthird 21 }
    
upsEventGetCodethird OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The code which is used as starting point to downloading the events from the 
            UPS event buffer."
    ::= { upsGetSetthird 22 }    
    
upsEventSpinLockthird OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the event subsystem. "

    ::= { upsGetSetthird 23 }
    
upsParameterSpinLockthird OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the parameters subsystem. "

    ::= { upsGetSetthird 24 }


--
-- GE Trap group generic
--

upsTrapAlarmBatteryBadthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement."
    ::= { geUPSTrapsthird 1 }

upsTrapAlarmOnBatterythird NOTIFICATION-TYPE
    OBJECTS  { upsSecondsOnBatterythird  }
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from the batteries."
    ::= { geUPSTrapsthird 2 }

upsTrapAlarmLowBatterythird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime."
    ::= { geUPSTrapsthird 3 }

upsTrapAlarmDepletedBatterythird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost)"
    ::= { geUPSTrapsthird 4 }

upsTrapAlarmTempBadthird NOTIFICATION-TYPE
    OBJECTS  { upsBatteryTemperature }
    STATUS  current
    DESCRIPTION
            "A temperature is out of tolerance."
    ::= { geUPSTrapsthird 5 }

upsTrapAlarmInputBadthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input condition is out of tolerance."
    ::= { geUPSTrapsthird 6 }

upsTrapAlarmOutputBadthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance."
    ::= { geUPSTrapsthird 7 }

upsTrapAlarmOutputOverloadthird NOTIFICATION-TYPE
    OBJECTS  { upsOutputNumLinesthird, upsOutputPercentLoadthird }
    STATUS  current
    DESCRIPTION
            "The output load exceeds the UPS output capacity."
    ::= { geUPSTrapsthird 8 }

upsTrapAlarmOnBypassthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS."
    ::= { geUPSTrapsthird 9 }

upsTrapAlarmBypassBadthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is out of tolerance."
    ::= { geUPSTrapsthird 10 }

upsTrapAlarmOutputOffAsRequestedthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off."
    ::= { geUPSTrapsthird 11 }

upsTrapAlarmUpsOffAsRequestedthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The entire UPS has shutdown as commanded."
    ::= { geUPSTrapsthird 12 }

upsTrapAlarmChargerFailedthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem."
    ::= { geUPSTrapsthird 13 }

upsTrapAlarmUpsOutputOffthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS is in the off state."
    ::= { geUPSTrapsthird 14 }

upsTrapAlarmUpsSystemOffthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is in the off state."
    ::= { geUPSTrapsthird 15 }

upsTrapAlarmFanFailurethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected."
    ::= { geUPSTrapsthird 16 }

upsTrapAlarmFuseFailurethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fuses has been detected."
    ::= { geUPSTrapsthird 17 }

upsTrapAlarmGeneralFaultthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault in the UPS has been detected."
    ::= { geUPSTrapsthird 18 }

upsTrapAlarmDiagnosticTestFailedthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure."
    ::= { geUPSTrapsthird 19 }

upsTrapAlarmCommunicationsLostthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem has been encountered in the communication
            between the agent and the UPS."
    ::= { geUPSTrapsthird 20 }
    
upsTrapAlarmAwaitingPowerthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of the input power (*)."
    ::= { geUPSTrapsthird 21 }

upsTrapAlarmShutdownPendingthird NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelaythird }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway."
    ::= { geUPSTrapsthird 22 }

upsTrapAlarmShutdownImminentthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 secondss; this may be either a timed shutdown or a
            low battery shutdown."
    ::= { geUPSTrapsthird 23 }

upsTrapAlarmTestInProgressthird NOTIFICATION-TYPE
    OBJECTS  { upsTestIdthird }
    STATUS  current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY."
    ::= { geUPSTrapsthird 24 }

upsTrapAlarmReceptacleOffthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched off."
    ::= { geUPSTrapsthird 25 }

upsTrapAlarmHighspeedBusFailurethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is detected."
    ::= { geUPSTrapsthird 26 }

upsTrapAlarmHighspeedBusJACRCFailurethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is detected."
    ::= { geUPSTrapsthird 27 }
     
upsTrapAlarmConnectivityBusFailurethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected"
    ::= { geUPSTrapsthird 28 }

upsTrapAlarmHighspeedBusJBCRCFailurethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
     ::= { geUPSTrapsthird 29 }

upsTrapAlarmCurrentSharingFailurethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is detected."
     ::= { geUPSTrapsthird 30 }
     
upsTrapAlarmDCRippleFailurethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is detected."
     ::= { geUPSTrapsthird 31 }

upsTrapAlarmBatteryBadRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Battery bad condition is restored."
    ::= { geUPSTrapsthird 33 }

upsTrapAlarmOnBatteryRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from mains again."
    ::= { geUPSTrapsthird 34 }

upsTrapAlarmLowBatteryRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Low Battery condition is restored."
    ::= { geUPSTrapsthird 35 }

upsTrapAlarmDepletedBatteryRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Depleted Battery condition is restored."
    ::= { geUPSTrapsthird 36 }

upsTrapAlarmTempBadRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A bad temperature condition is restored."
    ::= { geUPSTrapsthird 37 }

upsTrapAlarmInputBadRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input bad condition is restored."
    ::= { geUPSTrapsthird 38 }

upsTrapAlarmOutputBadRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output bad condition is restored."
    ::= { geUPSTrapsthird 39 }

upsTrapAlarmOutputOverloadRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output overload condition is restored."
    ::= { geUPSTrapsthird 40 }

upsTrapAlarmOnBypassRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An On Bypass condition is restored."
    ::= { geUPSTrapsthird 41 }

upsTrapAlarmBypassBadRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Bypass bad condition is restored."
    ::= { geUPSTrapsthird 42 }

upsTrapAlarmOutputOffAsRequestedRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A request shutdown has been restored."
    ::= { geUPSTrapsthird 43 }

upsTrapAlarmUpsOffAsRequestedRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A entire UPS command has been restored."
    ::= { geUPSTrapsthird 44 }

upsTrapAlarmChargerFailedRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Charger Failer condition is restored."
    ::= { geUPSTrapsthird 45 }

upsTrapAlarmUpsOutputOnthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS switched in the on state."
    ::= { geUPSTrapsthird 46 }

upsTrapAlarmUpsSystemOnthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is switched in the on state."
    ::= { geUPSTrapsthird 47 }

upsTrapAlarmFanFailureRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fan failure condition is restored."
    ::= { geUPSTrapsthird 48 }

upsTrapAlarmFuseFailureRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fuse failure condition is restored."
    ::= { geUPSTrapsthird 49 }

upsTrapAlarmGeneralFaultRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault is restored."
    ::= { geUPSTrapsthird 50 }

upsTrapAlarmDiagnosticTestFailedRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A last diagnostic test indicates a failure is 
            restored."
    ::= { geUPSTrapsthird 51 }

upsTrapAlarmCommunicationsLostRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem in the communication between the agent 
            and the UPS is restored."
    ::= { geUPSTrapsthird 52 }
    
upsTrapAlarmAwaitingPowerRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A awaiting power condition is restored (*)."
    ::= { geUPSTrapsthird 53 }

upsTrapAlarmShutdownPendingRestoredthird NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelaythird }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is restored."
    ::= { geUPSTrapsthird 54 }

upsTrapAlarmShutdownImminentRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A shutdown imminent condition is restored."
    ::= { geUPSTrapsthird 55 }

upsTrapAlarmTestInProgressRestoredthird NOTIFICATION-TYPE
    OBJECTS  { upsTestIdthird }
    STATUS  current
    DESCRIPTION
            "The test is in progress is terminated."
    ::= { geUPSTrapsthird 56 }

upsTrapAlarmReceptacleOnthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched on."
    ::= { geUPSTrapsthird 57 }
upsTrapAlarmHighspeedBusRestorethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is restored."
    ::= { geUPSTrapsthird 58 }

upsTrapAlarmHighspeedBusJACRCRestorethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is restored."
    ::= { geUPSTrapsthird 59 }
     
upsTrapAlarmConnectivityBusRestorethird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is restored."
    ::= { geUPSTrapsthird 60 }
 
upsTrapAlarmHighspeedBusJBCRCRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is restored."
     ::= { geUPSTrapsthird 61 }

upsTrapAlarmCurrentSharingRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is restored."
     ::= { geUPSTrapsthird 62 }
     
upsTrapAlarmDCRippleRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is restored."
     ::= { geUPSTrapsthird 63 }
     
upsTrapAlarmValueLowthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value below its low-level threshold."
    ::= { geUPSTrapsthird 129 }

upsTrapAlarmValueHighthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value higher than its high-level threshold."
    ::= { geUPSTrapsthird 130 }

upsTrapAlarmValueLowRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueLow alarm condition is restored."
    ::= { geUPSTrapsthird 133 }

upsTrapAlarmValueHighRestoredthird NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueHigh alarm condition is restored."
    ::= { geUPSTrapsthird 134 }


--
-- Diagnostic Group Generic
--

upsDiagnosticBusJACommunicationStatusthird OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticthird 1 }
    
upsDiagnosticBusJBCommunicationStatusthird OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticthird  2 }
  
upsDiagnosticBatteryLifetimethird  OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticthird  3 }

upsDiagnosticFansLifetimethird  OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticthird 4 } 
    
upsDiagnosticDCcapacitorsLifetimethird OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticthird 5 }  
    
upsDiagnosticACcapacitorsLifetimethird OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticthird 6 }
    
upsDiagnosticGlobalServiceCheckthird OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticthird 7 }
--
-- The Device Identification group. Fourth
--      All objects in this group except for upsIdentName and
--      upsIdentAttachedDevices are set at device initialization
--      and remain static.
--

upsIdentManufacturerfourth OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the UPS manufacturer.(*)"
    ::= { upsIdentfourth 1 }

upsIdentModelfourth OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS Model designation.(*)"
    ::= { upsIdentfourth 2 }

upsIdentUPSSoftwareVersionfourth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS firmware/software version(s).  This variable
            may or may not have the same value as
            upsIdentAgentSoftwareVersion in some implementations.(*)"
    ::= { upsIdentfourth 3 }

upsIdentAgentSoftwareVersionfourth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS agent software version.  This variable may or
            may not have the same value as
            upsIdentUPSSoftwareVersion in some implementations.(*)"
    ::= { upsIdentfourth 4 }

upsIdentNamefourth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the UPS.  This object should be
            set by the administrator.(*)"
    ::= { upsIdentfourth 5 }

upsIdentAttachedDevicesfourth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the devices attached to the
            output(s) of the UPS.  This object should be set by
            the administrator.(*)"
    ::= { upsIdentfourth 6 }

upsIdentUPSSerialNumberfourth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS serial number"
    ::= { upsIdentfourth 7 }
    
upsIdentComProtVersionfourth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IMV communication protocol version"
    ::= { upsIdentfourth 8 } 
  
upsIdentOperatingTimefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "fourths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present value of the operating time.
             total 'on' time since UPS manufactured"
    ::= { upsIdentfourth 9 } 
    
--
-- Battery Group Generic
--

upsBatteryStatusfourth OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        batteryNormal(2),
        batteryLow(3),
        batteryDepleted(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The indication of the capacity remaining in the UPS
            system's batteries.   A value of batteryNormal
            indicates that the remaining run-time is greater than
            upsConfigLowBattTime.  A value of batteryLow indicates
            that the remaining battery run-time is less than or
            equal to upsConfigLowBattTime.  A value of
            batteryDepleted 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 and the UPS is
            unable to sustain the output).(*)"
    ::= { upsBatteryfourth 1 }

upsSecondsOnBatteryfourth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "fourths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If the unit is on battery power, the elapsed time
            since the UPS last switched to battery power, or the
            time since the network management subsystem was last
            restarted, whichever is less.  Zero shall be returned
            if the unit is not on battery power.(*)"
    ::= { upsBatteryfourth 2 }

upsEstimatedMinutesRemainingfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the time to battery charge depletion
            under the present load conditions if the utility power
            is off and remains off, or if it were to be lost and
            remain off.(*)"
    ::= { upsBatteryfourth 3 }

upsEstimatedChargeRemainingfourth OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the battery charge remaining expressed
            as a percent of full charge.(*)"
    ::= { upsBatteryfourth 4 }

upsBatteryVoltagefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Volt DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present battery voltage.(*)"
    ::= { upsBatteryfourth 5 }

upsBatteryCurrentfourth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present battery current.(*)"
    ::= { upsBatteryfourth 6 }

upsBatteryTemperaturefourth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "degrees Centigrade"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ambient temperature at or near the UPS Battery
            casing.(*)"
    ::= { upsBatteryfourth 7 }

upsBatteryRipplefourth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Volt RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present DC link RMS voltage ripple.(*)"
    ::= { upsBatteryfourth 8 }

--
-- Input Group
--

upsInputLineBadsfourth OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A count of the number of times the input entered an
            out-of-tolerance condition as defined by the
            manufacturer.  This count is incremented by one each
            time the input transitions from zero out-of-tolerance
            lines to one or more input lines out-of-tolerance.(*)"
    ::= { upsInputfourth 1 }

upsInputNumLinesfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of input lines utilized in this device.
            This variable indicates the number of rows in the
            input table.(*)"
    ::= { upsInputfourth 2 }

upsInputFourthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsInputFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of input table entries.  The number of entries
            is given by the value of upsInputNumLines.(*)"
    ::= { upsInputfourth 3 }

upsInputFourthEntry OBJECT-TYPE
    SYNTAX     UpsInputFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular input line.(*)"
    INDEX { upsInputLineIndexfourth }
    ::= { upsInputFourthTable 1 }

UpsInputFourthEntry ::= SEQUENCE {
    upsInputLineIndexfourth   PositiveInteger32,
    upsInputFrequencyfourth   NonNegativeInteger32,
    upsInputVoltagefourth     NonNegativeInteger32,
    upsInputCurrentfourth     NonNegativeInteger32,
    upsInputTruePowerfourth   NonNegativeInteger32,
    upsInputVoltageMinfourth  NonNegativeInteger32,
    upsInputVoltageMaxfourth  NonNegativeInteger32
}

upsInputLineIndexfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The input line identifier.(*)"
    ::= { upsInputFourthEntry 1 }

upsInputFrequencyfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present input frequency.(*)"
    ::= { upsInputFourthEntry 2 }

upsInputVoltagefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input voltage.(*)"
    ::= { upsInputFourthEntry 3 }

upsInputCurrentfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input current.(*)"
    ::= { upsInputFourthEntry 4 }

upsInputTruePowerfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input true power.(*)"
    ::= { upsInputFourthEntry 5 }

upsInputVoltageMinfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The lowest magnitude of the input voltage since last read out."
    ::= { upsInputFourthEntry 6 }

upsInputVoltageMaxfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The highest magnitude of the input voltage since last read out."
    ::= { upsInputFourthEntry 7 }

--
-- The Output group.
--

upsOutputSourcefourth OBJECT-TYPE
    SYNTAX     INTEGER {
        other(1),
        none(2),
        normal(3),
        bypass(4),
        battery(5),
        booster(6),
        reducer(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present source of output power.  The enumeration
            none(2) indicates that there is no source of output
            power (and therefore no output power), for example,
            the system has opened the output breaker.(*)"
    ::= { upsOutputfourth 1 }

upsOutputFrequencyfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output frequency.(*)"
    ::= { upsOutputfourth 2 }

upsOutputNumLinesfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of output lines utilized in this device.
            This variable indicates the number of rows in the
            output table.(*)"
    ::= { upsOutputfourth 3 }

upsOutputFourthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsOutputFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of output table entries.  The number of
            entries is given by the value of upsOutputNumLines.(*)"
    ::= { upsOutputfourth 4 }

upsOutputFourthEntry OBJECT-TYPE
    SYNTAX     UpsOutputFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular output line.(*)"
    INDEX { upsOutputLineIndexfourth }
    ::= { upsOutputFourthTable 1 }

UpsOutputFourthEntry ::= SEQUENCE {
    upsOutputLineIndexfourth   PositiveInteger32,
    upsOutputVoltagefourth     NonNegativeInteger32,
    upsOutputCurrentfourth     NonNegativeInteger32,
    upsOutputPowerfourth       NonNegativeInteger32,
    upsOutputPercentLoadfourth Integer32,
    upsOutputPowerFactorfourth Integer32,
    upsOutputPeakCurrentfourth Integer32,
    upsOutputShareCurrentfourth Integer32
}

upsOutputLineIndexfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The output line identifier.(*)"
    ::= { upsOutputFourthEntry 1 }

upsOutputVoltagefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output voltage.(*)"
    ::= { upsOutputFourthEntry 2 }

upsOutputCurrentfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output current.(*)"
    ::= { upsOutputFourthEntry 3 }

upsOutputPowerfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output true power.(*)"
    ::= { upsOutputFourthEntry 4 }

upsOutputPercentLoadfourth OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The percentage of the UPS power capacity presently
            being used on this output line, i.e., the greater of
            the percent load of true power capacity and the
            percent load of VA.(*)"
    ::= { upsOutputFourthEntry 5 }

upsOutputPowerFactorfourth OBJECT-TYPE
    SYNTAX     Integer32 (-99..100)
    UNITS      "0.01 cos phi"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output power factor. 
             The returned value correspond to the cosf of the load.
             A positive value indicate an inductive load; 
             a negative value indicate a capacitive load; 
             value 1 indicate a resistive load. 
             If the measure is not available due to a small load for 
             a consistent calculation, the NA value is then returned.(*)"
    ::= { upsOutputFourthEntry 6 }
    
upsOutputPeakCurrentfourth OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output peak current.(*)"
    ::= { upsOutputFourthEntry 7 }

upsOutputShareCurrentfourth OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "In a parallel system ideally all the UPS are requested to 
            contribute to the load with the same amount of current, 
            i.e. with no current share. The current share occurs when an
            UPS exchanges some current with another UPS, so that this 
            current component doesn't feed the load. 
            The share part of the UPS current represents an undesired UPS
            loading, and therefore it should be minimized. If the share 
            current is too high, the UPS results overloaded and in some 
            conditions (i.e. very high load) the system could turn on 
            bypass reducing dramatically the global system reliability.
   PMAD detects the amount of share currents in a parallel system,
   generating an alarm if this value is above a parameter-based threshold.
   Single UPS systems don't have this feature, NA will be provided.(*)"
    ::= { upsOutputFourthEntry 8 }

--
-- The Bypass group generic.
--

upsBypassFrequencyfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass frequency.(*)"
    ::= { upsBypassfourth 1 }

upsBypassNumLinesfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of bypass lines utilized in this device.
            This entry indicates the number of rows in the bypass
            table.(*)"
    ::= { upsBypassfourth 2 }

upsBypassFourthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsBypassFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of bypass table entries.  The number of
            entries is given by the value of upsBypassNumLines.(*)"
    ::= { upsBypassfourth 3 }

upsBypassFourthEntry OBJECT-TYPE
    SYNTAX     UpsBypassFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular bypass input.(*)"
    INDEX { upsBypassLineIndexfourth }
    ::= { upsBypassFourthTable 1 }

UpsBypassFourthEntry ::= SEQUENCE {
    upsBypassLineIndexfourth  PositiveInteger32,
    upsBypassVoltagefourth    NonNegativeInteger32,
    upsBypassCurrentfourth    NonNegativeInteger32,
    upsBypassPowerfourth      NonNegativeInteger32
}

upsBypassLineIndexfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The bypass line identifier.(*)"
    ::= { upsBypassFourthEntry 1 }

upsBypassVoltagefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass voltage.(*)"
    ::= { upsBypassFourthEntry 2 }

upsBypassCurrentfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass current.(*)"
    ::= { upsBypassFourthEntry 3 }

upsBypassPowerfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present true power conveyed by the bypass.(*)"
    ::= { upsBypassFourthEntry 4 }

--
-- The Alarm group generic.
--

upsAlarmsPresentfourth OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present number of active alarm conditions.(*)"
    ::= { upsAlarmfourth 1 }

upsAlarmFourthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsAlarmFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
            upsAlarmId equal to 1, and increments the value of
            upsAlarmId each time a new row is created, wrapping to
            the first free value greater than or equal to 1 when
            the maximum value of upsAlarmId would otherwise be
            exceeded.  Consequently, after multiple operations,
            the table may become sparse, e.g., containing entries
            for rows 95, 100, 101, and 203 and the entries should
            not be assumed to be in chronological order because
            upsAlarmId might have wrapped.

            Alarms are named by an AutonomousType (OBJECT
            IDENTIFIER), upsAlarmDescr, to allow a single table to
            reflect well known alarms plus alarms defined by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.  No
            two rows will have the same value of upsAlarmDescr,
            since alarms define conditions.  In order to meet this
            requirement, care should be taken in the definition of
            alarm conditions to insure that a system cannot enter
            the same condition multiple times simultaneously.

            The number of rows in the table at any given time is
            reflected by the value of upsAlarmsPresent.(*)"
    ::= { upsAlarmfourth 2 }

upsAlarmFourthEntry OBJECT-TYPE
    SYNTAX     UpsAlarmFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular alarm.(*)"
    INDEX { upsAlarmIdfourth }
    ::= { upsAlarmFourthTable 1 }

UpsAlarmFourthEntry ::= SEQUENCE {
    upsAlarmIdfourth          PositiveInteger32,
    upsAlarmDescrfourth       AutonomousType,
    upsAlarmTimefourth       TimeStamp
}

upsAlarmIdfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique identifier for an alarm condition.  This
            value must remain constant.(*)"
    ::= { upsAlarmFourthEntry 1 }

upsAlarmDescrfourth OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A reference to an alarm description object.  The
            object referenced should not be accessible, but rather
            be used to provide a unique description of the alarm
            condition.(*)"
    ::= { upsAlarmFourthEntry 2 }

upsAlarmTimefourth OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when the alarm condition was
            detected.  If the alarm condition was detected at the
            time of agent startup and presumably existed before
            agent startup, the value of upsAlarmTime shall equal
            0.(*)"
    ::= { upsAlarmFourthEntry 3 }

--
-- Well known alarm conditions generic.
--

upsAlarmBatteryBadfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement.(*)"
    ::= { upsWellKnownAlarmsfourth  1 }

upsAlarmOnBatteryfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS is drawing power from the batteries.(*)"
    ::= { upsWellKnownAlarmsfourth  2 }

upsAlarmLowBatteryfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime.(*)"
    ::= { upsWellKnownAlarmsfourth  3 }

upsAlarmDepletedBatteryfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost.(*)"
    ::= { upsWellKnownAlarmsfourth  4 }

upsAlarmTempBadfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A temperature is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfourth  5 }

upsAlarmInputBadfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An input condition is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfourth  6 }

upsAlarmOutputBadfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfourth  7 }

upsAlarmOutputOverloadfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output load exceeds the UPS output capacity.(*)"
    ::= { upsWellKnownAlarmsfourth  8 }

upsAlarmOnBypassfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS.(*)"
    ::= { upsWellKnownAlarmsfourth  9 }

upsAlarmBypassBadfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfourth 10 }

upsAlarmOutputOffAsRequestedfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off.(*)"
    ::= { upsWellKnownAlarmsfourth 11 }

upsAlarmUpsOffAsRequestedfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The entire UPS has shutdown as commanded.(*)"
    ::= { upsWellKnownAlarmsfourth 12 }

upsAlarmChargerFailedfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem.(*)"
    ::= { upsWellKnownAlarmsfourth 13 }

upsAlarmUpsOutputOfffourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output of the UPS is in the off state.(*)"
    ::= { upsWellKnownAlarmsfourth 14 }

upsAlarmUpsSystemOfffourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS system is in the off state.(*)"
    ::= { upsWellKnownAlarmsfourth 15 }

upsAlarmFanFailurefourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected.(*)"
    ::= { upsWellKnownAlarmsfourth 16 }

upsAlarmFuseFailurefourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fuses has been detected.(*)"
    ::= { upsWellKnownAlarmsfourth 17 }

upsAlarmGeneralFaultfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A general fault in the UPS has been detected.(*)"
    ::= { upsWellKnownAlarmsfourth 18 }

upsAlarmDiagnosticTestFailedfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure.(*)"
    ::= { upsWellKnownAlarmsfourth 19 }

upsAlarmCommunicationsLostfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem has been encountered in the communications
            between the agent and the UPS.(*)"
    ::= { upsWellKnownAlarmsfourth 20 }

upsAlarmAwaitingPowerfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of input power.(*)"
    ::= { upsWellKnownAlarmsfourth 21 }

upsAlarmShutdownPendingfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway.(*)"
    ::= { upsWellKnownAlarmsfourth 22 }

upsAlarmShutdownImminentfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 fourths; this may be either a timed shutdown or a
            low battery shutdown.(*)"
    ::= { upsWellKnownAlarmsfourth 23 }

upsAlarmTestInProgressfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY.(*)"
    ::= { upsWellKnownAlarmsfourth 24 }

upsAlarmReceptacleOfffourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The receptacle are switch off    "
    ::= { upsWellKnownAlarmsfourth 25 }

upsAlarmHighSpeedBusFailurefourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the High Speed Bus communication is detected"
    ::= { upsWellKnownAlarmsfourth 26 }
    
upsAlarmHighSpeedBusJACRCFailurefourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JA is detected."
    ::= { upsWellKnownAlarmsfourth 27 }
    
upsAlarmConnectivityBusFailurefourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected"
    ::= { upsWellKnownAlarmsfourth 28 }

upsAlarmHighSpeedBusJBCRCFailurefourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JB is detected."
    ::= { upsWellKnownAlarmsfourth 29 }

upsAlarmCurrentSharingfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high current sharing on the parallel system."
    ::= { upsWellKnownAlarmsfourth 30 }
        
upsAlarmDCRipplefourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high ripple voltage on his DC link."
    ::= { upsWellKnownAlarmsfourth 31 }

upsAlarmMaskAfourth OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Specifies which alarm can be handled by the UPS.
            The 'Mask' parameter is a Long Integer32. The meaning
            of every bit is the same as for the 'upsAlarmGroupA'
            command. A bit having value=1 indicates that the
            corresponding alarm is handled by the UPS."
    ::= { upsAlarmfourth 4 }

--
-- The Test Group generic
--

upsTestIdfourth OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The test is named by an OBJECT IDENTIFIER which
            allows a standard mechanism for the initiation of
            tests, including the well known tests identified in
            this document as well as those introduced by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.

            Setting this variable initiates the named test. Sets
            to this variable require the presence of
            upsTestSpinLock in the same SNMP message.

            The set request will be rejected with an appropriate
            error message if the requested test cannot be
            performed, including attempts to start a test when
            another test is already in progress.  The status of
            the current or last test is maintained in
            upsTestResultsSummary. Tests in progress may be
            aborted by setting the upsTestId variable to
            upsTestAbortTestInProgress.

            Read operations return the value of the name of the
            test in progress if a test is in progress or the name
            of the last test performed if no test is in progress,
            unless no test has been run, in which case the well
            known value upsTestNoTestsInitiated is returned.(*)"
    ::= { upsTestfourth 1 }

-- see [6] for more information on the semantics of objects with
-- syntax of TestAndIncr

upsTestSpinLockfourth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the test subsystem.  The spinlock is
            used as follows.

            Before starting a test, a manager-station should make
            sure that a test is not in progress as follows:

                tryagain:
                  get (upsTestSpinLock)
                  while (upsTestResultsSummary == inProgress) {
                    /* loop while a test is running for another
            manager */
                    short delay
                    get (upsTestSpinLock)
                  }
                  lockvalue = upsTestSpinLock
                  /* no test in progress, start the test */
                  set (upsTestSpinLock = lockvalue, upsTestId =
            requestedtest)
                  if (errorindex == 1) { /* (upsTestSpinLock
            failed) */
                    /* if problem is not access control, then
                        some other manager slipped in ahead of us
            */
                    goto tryagain
                  }
                  if (errorindex == 2) { /* (upsTestId) */
                    /* cannot perform the test */
                    give up
                  }
                  /* test started ok */
                  /* wait for test completion by polling
            upsTestResultsSummary */
                  get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  while (upsTestResultsSummary == inProgress) {
                    short delay
                    get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  }
                  /* when test completes, retrieve any additional
            test results */
                  /* if upsTestSpinLock == lockvalue + 1, then
            these are our test */
                  /* results (as opposed to another manager's */
                  The initial value of upsTestSpinLock at agent
            initialization shall
                  be 1.(*)"
    ::= { upsTestfourth 2 }

upsTestResultsSummaryfourth OBJECT-TYPE
    SYNTAX     INTEGER {
        donePass(1),
        doneWarning(2),
        doneError(3),
        aborted(4),
        inProgress(5),
        noTestsInitiated(6)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The results of the current or last UPS diagnostics
            test performed.  The values for donePass(1),
            doneWarning(2), and doneError(3) indicate that the
            test completed either successfully, with a warning, or
            with an error, respectively.  The value aborted(4) is
            returned for tests which are aborted by setting the
            value of upsTestId to upsTestAbortTestInProgress.
            Tests which have not yet concluded are indicated by
            inProgress(5).  The value noTestsInitiated(6)
            indicates that no previous test results are available,
            such as is the case when no tests have been run since
            the last reinitialization of the network management
            subsystem and the system has no provision for non-
            volatile storage of test results.(*)"
    ::= { upsTestfourth 3 }

upsTestResultsDetailfourth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Additional information about upsTestResultsSummary.
            If no additional information available, a zero length
            string is returned.(*)"
    ::= { upsTestfourth 4 }

upsTestStartTimefourth OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time the test in
            progress was initiated, or, if no test is in progress,
            the time the previous test was initiated.  If the
            value of upsTestResultsSummary is noTestsInitiated(6),
            upsTestStartTime has the value 0.(*)"
    ::= { upsTestfourth 5 }

upsTestElapsedTimefourth OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time, in TimeTicks, since the test in
            progress was initiated, or, if no test is in progress,
            the previous test took to complete.  If the value of
            upsTestResultsSummary is noTestsInitiated(6),
            upsTestElapsedTime has the value 0.(*)"
    ::= { upsTestfourth 6 }

--
-- Well known tests generic.
--

upsTestNoTestsInitiatedfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "No tests have been initiated and no test is in
            progress.(*)"
    ::= { upsWellKnownTestsfourth  1 }

upsTestAbortTestInProgressfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The test in progress is to be aborted / the test in
            progress was aborted.(*)"
    ::= { upsWellKnownTestsfourth  2 }

upsTestGeneralSystemsTestfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The manufacturer's standard test of UPS device
            systems.(*)"
    ::= { upsWellKnownTestsfourth  3 }

upsTestQuickBatteryTestfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test that is sufficient to determine if the battery
            needs replacement.(*)"
    ::= { upsWellKnownTestsfourth  4 }

upsTestDeepBatteryCalibrationfourth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The system is placed on battery to a discharge level,
            set by the manufacturer, sufficient to determine
            battery replacement and battery run-time with a high
            degree of confidence.  WARNING:  this test will leave
            the battery in a low charge state and will require
            time for recharging to a level sufficient to provide
            normal battery duration for the protected load.(*)"
    ::= { upsWellKnownTestsfourth  5 }

--
-- The Control group generic.
--

upsShutdownTypefourth OBJECT-TYPE
    SYNTAX     INTEGER {
        output(1),
        system&#40;2&#41;
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object determines the nature of the action to be
            taken at the time when the countdown of the
            upsShutdownAfterDelay and upsRebootWithDuration
            objects reaches zero.

            Setting this object to output(1) indicates that
            shutdown requests should cause only the output of the
            UPS to turn off.  Setting this object to system&#40;2&#41;
            indicates that shutdown requests will cause the entire
            UPS system to turn off.(*)"
    ::= { upsControlfourth 1 }

upsShutdownAfterDelayfourth OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "fourths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will shutdown (i.e., turn off)
            either the UPS output or the UPS system &#40;as determined
            by the value of upsShutdownType at the time of
            shutdown&#41; after the indicated number of fourths, or
            less if the UPS batteries become depleted. Setting
            this object to 0 will cause the shutdown to occur
            immediately.  Setting this object to -1 will abort the
            countdown.  If the system is already in the desired
            state at the time the countdown reaches 0, then
            nothing will happen.  That is, there is no additional
            action at that time if upsShutdownType = system and
            the system is already off.  Similarly, there is no
            additional action at that time if upsShutdownType =
            output and the output is already off.  When read,
            upsShutdownAfterDelay will return the number of
            fourths remaining until shutdown, or -1 if no shutdown
            countdown is in effect.  On some systems, if the agent
            is restarted while a shutdown countdown is in effect,
            the countdown may be aborted.  Sets to this object
            override any upsShutdownAfterDelay already in effect.(*)"
    ::= { upsControlfourth 2 }

upsStartupAfterDelayfourth OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "fourths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will start the output after the
            indicated number of fourths, including starting the
            UPS, if necessary.  Setting this object to 0 will
            cause the startup to occur immediately.  Setting this
            object to -1 will abort the countdown.  If the output
            is already on at the time the countdown reaches 0,
            then nothing will happen.  Sets to this object
            override the effect of any upsStartupAfterDelay
            countdown or upsRebootWithDuration countdown in
            progress.  When read, upsStartupAfterDelay will return
            the number of fourths until startup, or -1 if no
            startup countdown is in effect.  If the countdown
            expires during a utility failure, the startup shall
            not occur until the utility power is restored.  On
            some systems, if the agent is restarted while a
            startup countdown is in effect, the countdown is
            aborted.(*)"
    ::= { upsControlfourth 3 }

upsRebootWithDurationfourth OBJECT-TYPE
    SYNTAX     Integer32 (-1..300)
    UNITS      "fourths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will immediately shutdown (i.e.,
            turn off) either the UPS output or the UPS system &#40;as
            determined by the value of upsShutdownType at the time
            of shutdown&#41; for a period equal to the indicated
            number of fourths, after which time the output will be
            started, including starting the UPS, if necessary.  If
            the number of fourths required to perform the request
            is greater than the requested duration, then the
            requested shutdown and startup cycle shall be
            performed in the minimum time possible, but in no case
            shall this require more than the requested duration
            plus 60 fourths.  When read, upsRebootWithDuration
            shall return the number of fourths remaining in the
            countdown, or -1 if no countdown is in progress.  If
            the startup should occur during a utility failure, the
            startup shall not occur until the utility power is
            restored.(*)"
    ::= { upsControlfourth 4 }

upsAutoRestartfourth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object to 'on' will cause the UPS system
            to restart after a shutdown if the shutdown occurred
            during a power loss as a result of either a
            upsShutdownAfterDelay or an internal battery depleted
            condition.  Setting this object to 'off' will prevent
            the UPS system from restarting after a shutdown until
            an operator manually or remotely explicitly restarts
            it.  If the UPS is in a startup or reboot countdown,
            then the UPS will not restart until that delay has
            been satisfied.(*)"
    ::= { upsControlfourth 5 }

upsReceptaclesNumfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of receptacles utilized in this device.
            This entry indicates the number of rows in the receptacle
            table."
    ::= { upsControlfourth 6 }

upsReceptacleFourthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsReceptacleFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of receptacle table entries.  The number of
            entries is given by the value of upsReceptacleNum."
    ::= { upsControlfourth 7 }

upsReceptacleFourthEntry OBJECT-TYPE
    SYNTAX     UpsReceptacleFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular receptacle."
    INDEX { upsReceptacleLineIndexfourth }
    ::= { upsReceptacleFourthTable 1 }

UpsReceptacleFourthEntry ::= SEQUENCE {
    upsReceptacleLineIndexfourth  PositiveInteger32,
    upsReceptacleOnOfffourth      INTEGER    
}

upsReceptacleLineIndexfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The receptacle line identifier."
    ::= { upsReceptacleFourthEntry 1 }

upsReceptacleOnOfffourth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the receptacle. Setting this 
             object to 'on' will cause the receptacle to be turned
             on. Setting this object to 'off' will turn the
             receptacle off. If the receptacle is already in the
             desired state nothing will happen. After an
             autorestart (see upsAutoRestart) the receptacle will
             be on."
    ::= { upsReceptacleFourthEntry 2 }

upsUPSModefourth OBJECT-TYPE
    SYNTAX     INTEGER {
        offLine(1),
        onLine(2),
        ecomode(3),
        iem(4)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The operation mode off the UPS. Off-line indicates a
            mode in which the input power is transferred to the
            output directly or via a step-up or step-down
            transformer. On-line mode indicates a mode in which 
            the output power is regenerated through some convertor.
            the operating mode of the UPS may be fixed, or may be
            selectable (e.g. an on-line UPS with ecomode)"
    ::= { upsControlfourth 8 }

upsRectifierOnOfffourth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the rectifier. Setting this 
             object to 'on' will cause the rectifier to be turned
             on. Setting this object to 'off' will turn the
             rectifier off. If the rectifier is already in the
             desired state nothing will happen. "
    ::= { upsControlfourth 9 }

upsBatteryChargeMethodfourth OBJECT-TYPE
    SYNTAX     INTEGER {
        normalcharge(1),
        boostcharge(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the charge method. Setting this 
             object to 'Normal charge' will cause the battery to be 
             charged using the normal method. Setting this object to 
             'Boost charge' will charge the battery in boost mode. 
             If the charge method is already in the desired state 
             nothing will happen. "
    ::= { upsControlfourth 10 }

upsInverterOnOfffourth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the inverter. Setting this 
             object to 'on' will cause the inverter to be turned
             on. Setting this object to 'off' will turn the
             inverter off. If the inverter is already in the
             desired state nothing will happen. "
    ::= { upsControlfourth 11 }

upsBypassOnOfffourth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the bypass. Setting this 
             object to 'on' will cause the bypass to be activated.
             Setting this object to 'off' will deactivate the
             bypass. If the UPS is already in the
             desired state nothing will happen. "
    ::= { upsControlfourth 12 }

upsLoadSourcefourth OBJECT-TYPE
    SYNTAX     INTEGER {
        onbypass(1),
        onInverter(2),
        onDetour(3),
        loadOff(4),
        other (5)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present source of the load. Setting this 
             object to 'On bypass' will cause the load to be 
             supplied by the bypass.
             Setting this object to 'On inverter' will cause the 
             load to be supplied by the inverter.
             If the load is already supplied by the desired 
             source nothing will happen. "
    ::= { upsControlfourth 13 }
 
--
-- The Configuration group generic.
--

upsConfigInputVoltagefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal input voltage.  On those
            systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfourth 1 }

upsConfigInputFreqfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal input frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfourth 2 }

upsConfigOutputVoltagefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal output voltage.  On
            those systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfourth 3 }

upsConfigOutputFreqfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal output frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfourth 4 }

upsConfigOutputVAfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Volt-Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal Volt-Amp rating.(*)"
    ::= { upsConfigfourth 5 }

upsConfigOutputPowerfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal true power rating.(*)"
    ::= { upsConfigfourth 6 }

upsConfigLowBattTimefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "minutes"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The value of upsEstimatedMinutesRemaining at which a
            lowBattery condition is declared.  For agents which
            support only discrete (discontinuous) values, then the
            agent shall round up to the next supported value.  If
            the requested value is larger than the largest
            supported value, then the largest supported value
            shall be selected.(*)"
    ::= { upsConfigfourth 7 }

upsConfigAudibleStatusfourth OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2),
        muted(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The requested state of the audible alarm.  When in
            the disabled state, the audible alarm should never
            sound.  The enabled state is self-describing.  Setting
            this object to muted(3) when the audible alarm is
            sounding shall temporarily silence the alarm.  It will
            remain muted until it would normally stop sounding and
            the value returned for read operations during this
            period shall equal muted(3).  At the end of this
            period, the value shall revert to enabled(2).  Writes
            of the value muted(3) when the audible alarm is not
            sounding shall be accepted but otherwise shall have no
            effect.(*)"
    ::= { upsConfigfourth 8 }

upsConfigLowVoltageTransferPointfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The minimum input line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigfourth 9 }

upsConfigHighVoltageTransferPointfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigfourth 10 }

upsConfigBatteryCapacityfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Amps Hours"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The installed battery capacity. This value is the 'factory'-value,
             not the value after calibration."
    ::= { upsConfigfourth 11 }

upsConfigBatteryChargeCurrentfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum battery charge current, including external chargers."
    ::= { upsConfigfourth 12 }      

upsConfigNoLoadShutdownfourth OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Dis- or enable 'no load' shutdown from the contact interface."
    ::= { upsConfigfourth 13 }
 
upsConfigStartDelayfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"    
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Minimum required autonomy time before the UPS may perform an
             autorestart."
    ::= { upsConfigfourth 14 }

--
-- The GetSet group generic.
--

upsEventGetNextfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventSetStartingTimeStamp
            will be used as the start value of the table with the lowest index number."
    ::= { upsGetSetfourth 1 }

upsEventGetPreviousfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventLastTime will
            be used as the last value of the table with the highest index number.

            Returns SNMPNOSUCHNAME for UPSs that don't support this command."
    ::= { upsGetSetfourth 2 }
    
upsEventSetStartingTimeStampfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The timestamp which is used as starting point for downloading
             events from the UPS event buffer"
    ::= { upsGetSetfourth 3 }    

upsEventRetreiveCurrentTimeStampfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current timestamp is retreived from the UPS"
    ::= { upsGetSetfourth 4 }    

upsEventTableSizefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the event table.
            This object indicates the number of rows in the event table."
    ::= { upsGetSetfourth 5 }

upsEventFourthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsEventFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of event table entries.  The number of entries is always
            10, and the value of upsEventTableSize gives the number of valid
            entries from the begging of the table.  Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..10)):

            PDU-SET upsSetStartingTimeStamp <time> 
            PDU-SET upsEventGetNext <number>
            PDU-GET upsEventTableSize
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 1
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 2
            ..
            PDU-GET upsEventCode,upsEventStatus,upsEventTime <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsEventTableSize.
            "
    ::= { upsGetSetfourth 6 }

upsEventFourthEntry OBJECT-TYPE
    SYNTAX     UpsEventFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular event."
    INDEX { upsEventLineIndexfourth }
    ::= { upsEventFourthTable 1 }

UpsEventFourthEntry ::= SEQUENCE {
    upsEventLineIndexfourth PositiveInteger32,
    upsEventCodefourth      Integer32,
    upsEventStatusfourth    NonNegativeInteger32,
    upsEventTimefourth      NonNegativeInteger32
}

upsEventLineIndexfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The event line identifier."
    ::= { upsEventFourthEntry 1 }

upsEventCodefourth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The event code in numerical format."
    ::= { upsEventFourthEntry 2 }

upsEventStatusfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of the UPS at the moment that the event was generated.
             The format is specified at the 'upsStatus' command.
             If the UPS is not able to deliver status information, then
             SNMPNOSUCHNAME is returned."
    ::= { upsEventFourthEntry 3 }

upsEventTimefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The timestamp of the moment the event was generated."
    ::= { upsEventFourthEntry 4 }

upsParametersReadfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to retreive from the UPS.
            When this object is set the ParameterTable will be filled with the
            requested number of entries. The value upsParametersStartAddress
            will be used as the start value of the table with the lowest index 
            number."
    ::= { upsGetSetfourth 7 }

upsParametersWritefourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to write to the UPS.
            When this object is set the ParameterTable will be send to the ups. 
            The value upsParametersStartAddress will be used for the fourth value 
            of the table with the lowest index number."
    ::= { upsGetSetfourth 8 }

upsParametersStartAddressfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The address which is used as starting point for downloading
             parameters from the UPS"
    ::= { upsGetSetfourth 9 }    

upsParameterTableSizefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the parameter table.
            This object indicates the number of rows in the parameter table."
    ::= { upsGetSetfourth 10 }

upsParameterFourthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsParameterFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of parameter entries. The number of entries is always
            16, and the value of upsParameterTableSize gives the number of valid
            entries from the begging of the table. Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..16)):

            Read sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParametersRead <number>
            PDU-GET upsParameterTableSize
            PDU-GET upsParameterValue 1
            PDU-GET upsParameterValue 2
            ..
            PDU-GET upsParameterValue <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsParameterTableSize.

            Write sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParameterValue 1
            PDU-SET upsParameterValue 2
            ..
            PDU-SET upsParameterValue <number>
            PDU-SET upsParametersWrite <number>
            "
    ::= { upsGetSetfourth 11 }

upsParameterFourthEntry OBJECT-TYPE
    SYNTAX     UpsParameterFourthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular parameter."
    INDEX { upsParameterLineIndexfourth }
    ::= { upsParameterFourthTable 1 }

UpsParameterFourthEntry ::= SEQUENCE {
    upsParameterLineIndexfourth PositiveInteger32,
    upsParameterValuefourth     Integer32   
}

upsParameterLineIndexfourth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The parameter line identifier."
    ::= { upsParameterFourthEntry 1 }

upsParameterValuefourth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The parameter value in numerical format."
    ::= { upsParameterFourthEntry 2 }

upsStatusfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The global UPS status is returned. Every bit reflects a specific 
             status condition. Unused bits returns as 0. The status value can 
             also be found on other commands. The value SNMPNOSUCHNAME means 
             'invalid status' or 'status value non available'.

             Status
                     1  0000 0001h upsStatusEcomodeIsOn
                     2  0000 0002h upsStatusBatteryIsCharging
                     4  0000 0004h upsStatusBatteryIsDischarging
                     8  0000 0008h upsStatusAlarmIsActive
                    16  0000 0010h upsStatusRectifierIsOn
                    32  0000 0020h upsStatusLowBattery
                    64  0000 0040h upsStatusOnBypass
                   128  0000 0080h upsStatusMainsBypassOK
                   256  0000 0100h upsStatusMainsRectifierOK
                   512  0000 0200h upsStatusDetourIsOn
                  1024  0000 0400h upsStatusAcousticAlarmIsOn
                  2048  0000 0800h upsStatusGlobalServiceCheck
                  4096  0000 1000h upsStatusInverterIsOn
                  8192  0000 2000h upsStatusNotInParallel (Q1 open)
                 16384  0000 4000h upsStatusResetLoadOff
                 32768  0000 8000h upsStatusLoadOff 
                 65536  0001 0000h upsStatusBoostMode 
                131072  0002 0000h upsStatusBuckMode 
                262144  0004 0000h upsStatusIemModeIsOn 
                524288  0008 0000h upsStatus5thFilterIsOn 
               1048576  0010 0000h upsStatus11thFilterIsOn
               2097152  0020 0000h upsStatus2ndRectifierBridgeIsOn
               4194304  0040 0000h - reserved -
               8388608  0080 0000h - reserved -
              16777216  0100 0000h - reserved -
              33554432  0200 0000h - reserved -
              67108864  0400 0000h - reserved -
             134217728  0800 0000h - reserved -
             268435456  1000 0000h upsGlobalParallelValues "
    ::= { upsGetSetfourth 12 }

upsMainsStatisticsMBfailfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of main bypass failures (>200 ms), since UPS installation."
    ::= { upsGetSetfourth 13 }

upsMainsStatisticsMRfailfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of mains rectifier failures (>200 ms), since UPS installation."
    ::= { upsGetSetfourth 14 }
  
upsMainsStatisticsB2fourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (0..2 ms), during the last 7 days."
    ::= { upsGetSetfourth 15 }

upsMainsStatisticsB5fourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (2..5 ms), during the last 7 days."
    ::= { upsGetSetfourth 16 }

upsMainsStatisticsB10fourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (5..10 ms), during the last 7 days."
    ::= { upsGetSetfourth 17 }

upsMainsStatisticsB200fourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (10..200 ms), during the last 7 days."
    ::= { upsGetSetfourth 18 }

upsMainsStatisticsBypRelfourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bypass reliability degree [0..100%;255]. The value NOSUCHNAME means 'not available'."
    ::= { upsGetSetfourth 19 }

upsTimefourth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The current timestamp (or real-time) of the UPS. For the format, 
             see 'Timestamp' specifications. The write-command has to comply with the 
             correct timestamp format expected by the UPS (counter value or real-time-clock 
             value). Missing to doing so will result in a SNMPfourthERROR, 
             meaning 'command not supported'. It is possible to know which is the timestamp 
             format supported by the UPS, by issuing a read-command or by reading events, 
             which includes timestamps."
    ::= { upsGetSetfourth 20 }

upsRequestPermissionfourth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An encrypted code is send to enable use of restricted write objects during
             a limited period of time."
    ::= { upsGetSetfourth 21 }
    
upsEventGetCodefourth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The code which is used as starting point to downloading the events from the 
            UPS event buffer."
    ::= { upsGetSetfourth 22 }    
    
upsEventSpinLockfourth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the event subsystem. "

    ::= { upsGetSetfourth 23 }
    
upsParameterSpinLockfourth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the parameters subsystem. "

    ::= { upsGetSetfourth 24 }


--
-- GE Trap group generic
--

upsTrapAlarmBatteryBadfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement."
    ::= { geUPSTrapsfourth 1 }

upsTrapAlarmOnBatteryfourth NOTIFICATION-TYPE
    OBJECTS  { upsSecondsOnBatteryfourth  }
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from the batteries."
    ::= { geUPSTrapsfourth 2 }

upsTrapAlarmLowBatteryfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime."
    ::= { geUPSTrapsfourth 3 }

upsTrapAlarmDepletedBatteryfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost)"
    ::= { geUPSTrapsfourth 4 }

upsTrapAlarmTempBadfourth NOTIFICATION-TYPE
    OBJECTS  { upsBatteryTemperature }
    STATUS  current
    DESCRIPTION
            "A temperature is out of tolerance."
    ::= { geUPSTrapsfourth 5 }

upsTrapAlarmInputBadfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input condition is out of tolerance."
    ::= { geUPSTrapsfourth 6 }

upsTrapAlarmOutputBadfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance."
    ::= { geUPSTrapsfourth 7 }

upsTrapAlarmOutputOverloadfourth NOTIFICATION-TYPE
    OBJECTS  { upsOutputNumLinesfourth, upsOutputPercentLoadfourth }
    STATUS  current
    DESCRIPTION
            "The output load exceeds the UPS output capacity."
    ::= { geUPSTrapsfourth 8 }

upsTrapAlarmOnBypassfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS."
    ::= { geUPSTrapsfourth 9 }

upsTrapAlarmBypassBadfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is out of tolerance."
    ::= { geUPSTrapsfourth 10 }

upsTrapAlarmOutputOffAsRequestedfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off."
    ::= { geUPSTrapsfourth 11 }

upsTrapAlarmUpsOffAsRequestedfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The entire UPS has shutdown as commanded."
    ::= { geUPSTrapsfourth 12 }

upsTrapAlarmChargerFailedfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem."
    ::= { geUPSTrapsfourth 13 }

upsTrapAlarmUpsOutputOfffourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS is in the off state."
    ::= { geUPSTrapsfourth 14 }

upsTrapAlarmUpsSystemOfffourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is in the off state."
    ::= { geUPSTrapsfourth 15 }

upsTrapAlarmFanFailurefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected."
    ::= { geUPSTrapsfourth 16 }

upsTrapAlarmFuseFailurefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fuses has been detected."
    ::= { geUPSTrapsfourth 17 }

upsTrapAlarmGeneralFaultfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault in the UPS has been detected."
    ::= { geUPSTrapsfourth 18 }

upsTrapAlarmDiagnosticTestFailedfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure."
    ::= { geUPSTrapsfourth 19 }

upsTrapAlarmCommunicationsLostfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem has been encountered in the communication
            between the agent and the UPS."
    ::= { geUPSTrapsfourth 20 }
    
upsTrapAlarmAwaitingPowerfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of the input power (*)."
    ::= { geUPSTrapsfourth 21   }  

upsTrapAlarmShutdownPendingfourth NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayfourth }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway."
    ::= { geUPSTrapsfourth 22 }

upsTrapAlarmShutdownImminentfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 fourths; this may be either a timed shutdown or a
            low battery shutdown."
    ::= { geUPSTrapsfourth 23 }

upsTrapAlarmTestInProgressfourth NOTIFICATION-TYPE
    OBJECTS  { upsTestIdfourth }
    STATUS  current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY."
    ::= { geUPSTrapsfourth 24 }

upsTrapAlarmReceptacleOfffourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched off."
    ::= { geUPSTrapsfourth 25 }

upsTrapAlarmHighspeedBusFailurefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is detected."
    ::= { geUPSTrapsfourth 26 }

upsTrapAlarmHighspeedBusJACRCFailurefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is detected."
    ::= { geUPSTrapsfourth 27 }
     
upsTrapAlarmConnectivityBusFailurefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected"
    ::= { geUPSTrapsfourth 28 }

upsTrapAlarmHighspeedBusJBCRCFailurefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
     ::= { geUPSTrapsfourth 29 }

upsTrapAlarmCurrentSharingFailurefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is detected."
     ::= { geUPSTrapsfourth 30 }
     
upsTrapAlarmDCRippleFailurefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is detected."
     ::= { geUPSTrapsfourth 31 }

upsTrapAlarmBatteryBadRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Battery bad condition is restored."
    ::= { geUPSTrapsfourth 33 }

upsTrapAlarmOnBatteryRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from mains again."
    ::= { geUPSTrapsfourth 34 }

upsTrapAlarmLowBatteryRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Low Battery condition is restored."
    ::= { geUPSTrapsfourth 35 }

upsTrapAlarmDepletedBatteryRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Depleted Battery condition is restored."
    ::= { geUPSTrapsfourth 36 }

upsTrapAlarmTempBadRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A bad temperature condition is restored."
    ::= { geUPSTrapsfourth 37 }

upsTrapAlarmInputBadRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input bad condition is restored."
    ::= { geUPSTrapsfourth 38 }

upsTrapAlarmOutputBadRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output bad condition is restored."
    ::= { geUPSTrapsfourth 39 }

upsTrapAlarmOutputOverloadRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output overload condition is restored."
    ::= { geUPSTrapsfourth 40 }

upsTrapAlarmOnBypassRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An On Bypass condition is restored."
    ::= { geUPSTrapsfourth 41 }

upsTrapAlarmBypassBadRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Bypass bad condition is restored."
    ::= { geUPSTrapsfourth 42 }

upsTrapAlarmOutputOffAsRequestedRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A request shutdown has been restored."
    ::= { geUPSTrapsfourth 43 }

upsTrapAlarmUpsOffAsRequestedRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A entire UPS command has been restored."
    ::= { geUPSTrapsfourth 44 }

upsTrapAlarmChargerFailedRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Charger Failer condition is restored."
    ::= { geUPSTrapsfourth 45 }

upsTrapAlarmUpsOutputOnfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS switched in the on state."
    ::= { geUPSTrapsfourth 46 }

upsTrapAlarmUpsSystemOnfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is switched in the on state."
    ::= { geUPSTrapsfourth 47 }

upsTrapAlarmFanFailureRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fan failure condition is restored."
    ::= { geUPSTrapsfourth 48 }

upsTrapAlarmFuseFailureRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fuse failure condition is restored."
    ::= { geUPSTrapsfourth 49 }

upsTrapAlarmGeneralFaultRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault is restored."
    ::= { geUPSTrapsfourth 50 }

upsTrapAlarmDiagnosticTestFailedRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A last diagnostic test indicates a failure is 
            restored."
    ::= { geUPSTrapsfourth 51 }

upsTrapAlarmCommunicationsLostRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem in the communication between the agent 
            and the UPS is restored."
    ::= { geUPSTrapsfourth 52 }
    
upsTrapAlarmAwaitingPowerRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A awaiting power condition is restored (*)."
    ::= { geUPSTrapsfourth 53 }

upsTrapAlarmShutdownPendingRestoredfourth NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayfourth }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is restored."
    ::= { geUPSTrapsfourth 54 }

upsTrapAlarmShutdownImminentRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A shutdown imminent condition is restored."
    ::= { geUPSTrapsfourth 55 }

upsTrapAlarmTestInProgressRestoredfourth NOTIFICATION-TYPE
    OBJECTS  { upsTestIdfourth }
    STATUS  current
    DESCRIPTION
            "The test is in progress is terminated."
    ::= { geUPSTrapsfourth 56 }

upsTrapAlarmReceptacleOnfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched on."
    ::= { geUPSTrapsfourth 57 }

upsTrapAlarmHighspeedBusRestorefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is restored."
    ::= { geUPSTrapsfourth 58 }

upsTrapAlarmHighspeedBusJACRCRestorefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is restored."
    ::= { geUPSTrapsfourth 59 }
     
upsTrapAlarmConnectivityBusRestorefourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is restored."
    ::= { geUPSTrapsfourth 60 }
 
upsTrapAlarmHighspeedBusJBCRCRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is restored."
     ::= { geUPSTrapsfourth 61 }

upsTrapAlarmCurrentSharingRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is restored."
     ::= { geUPSTrapsfourth 62 }
     
upsTrapAlarmDCRippleRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is restored."
     ::= { geUPSTrapsfourth 63 }
     
upsTrapAlarmValueLowfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value below its low-level threshold."
    ::= { geUPSTrapsfourth 129 }

upsTrapAlarmValueHighfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value higher than its high-level threshold."
    ::= { geUPSTrapsfourth 130 }

upsTrapAlarmValueLowRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueLow alarm condition is restored."
    ::= { geUPSTrapsfourth 133 }

upsTrapAlarmValueHighRestoredfourth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueHigh alarm condition is restored."
    ::= { geUPSTrapsfourth 134 }


--
-- Diagnostic Group Generic
--

upsDiagnosticBusJACommunicationStatusfourth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticfourth 1 }
    
upsDiagnosticBusJBCommunicationStatusfourth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticfourth 2 }
  
upsDiagnosticBatteryLifetimefourth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfourth 3 }

upsDiagnosticFansLifetimefourth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfourth 4 } 
    
upsDiagnosticDCcapacitorsLifetimefourth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfourth 5 }  
    
upsDiagnosticACcapacitorsLifetimefourth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfourth 6 }
    
upsDiagnosticGlobalServiceCheckfourth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfourth 7 }

--
-- The Device Identification group. Fifth
--      All objects in this group except for upsIdentName and
--      upsIdentAttachedDevices are set at device initialization
--      and remain static.
--

upsIdentManufacturerfifth OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the UPS manufacturer.(*)"
    ::= { upsIdentfifth 1 }

upsIdentModelfifth OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS Model designation.(*)"
    ::= { upsIdentfifth 2 }

upsIdentUPSSoftwareVersionfifth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS firmware/software version(s).  This variable
            may or may not have the same value as
            upsIdentAgentSoftwareVersion in some implementations.(*)"
    ::= { upsIdentfifth 3 }

upsIdentAgentSoftwareVersionfifth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS agent software version.  This variable may or
            may not have the same value as
            upsIdentUPSSoftwareVersion in some implementations.(*)"
    ::= { upsIdentfifth 4 }

upsIdentNamefifth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the UPS.  This object should be
            set by the administrator.(*)"
    ::= { upsIdentfifth 5 }

upsIdentAttachedDevicesfifth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the devices attached to the
            output(s) of the UPS.  This object should be set by
            the administrator.(*)"
    ::= { upsIdentfifth 6 }

upsIdentUPSSerialNumberfifth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS serial number"
    ::= { upsIdentfifth 7 }
    
upsIdentComProtVersionfifth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IMV communication protocol version"
    ::= { upsIdentfifth 8 } 
  
upsIdentOperatingTimefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "fifths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present value of the operating time.
             total 'on' time since UPS manufactured"
    ::= { upsIdentfifth 9 } 
    
--
-- Battery Group Generic
--

upsBatteryStatusfifth OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        batteryNormal(2),
        batteryLow(3),
        batteryDepleted(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The indication of the capacity remaining in the UPS
            system's batteries.   A value of batteryNormal
            indicates that the remaining run-time is greater than
            upsConfigLowBattTime.  A value of batteryLow indicates
            that the remaining battery run-time is less than or
            equal to upsConfigLowBattTime.  A value of
            batteryDepleted 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 and the UPS is
            unable to sustain the output).(*)"
    ::= { upsBatteryfifth 1 }

upsSecondsOnBatteryfifth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "fifths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If the unit is on battery power, the elapsed time
            since the UPS last switched to battery power, or the
            time since the network management subsystem was last
            restarted, whichever is less.  Zero shall be returned
            if the unit is not on battery power.(*)"
    ::= { upsBatteryfifth 2 }

upsEstimatedMinutesRemainingfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the time to battery charge depletion
            under the present load conditions if the utility power
            is off and remains off, or if it were to be lost and
            remain off.(*)"
    ::= { upsBatteryfifth 3 }

upsEstimatedChargeRemainingfifth OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the battery charge remaining expressed
            as a percent of full charge.(*)"
    ::= { upsBatteryfifth 4 }

upsBatteryVoltagefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Volt DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present battery voltage.(*)"
    ::= { upsBatteryfifth 5 }

upsBatteryCurrentfifth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present battery current.(*)"
    ::= { upsBatteryfifth 6 }

upsBatteryTemperaturefifth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "degrees Centigrade"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ambient temperature at or near the UPS Battery
            casing.(*)"
    ::= { upsBatteryfifth 7 }

upsBatteryRipplefifth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Volt RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present DC link RMS voltage ripple.(*)"
    ::= { upsBatteryfifth 8 }

--
-- Input Group
--

upsInputLineBadsfifth OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A count of the number of times the input entered an
            out-of-tolerance condition as defined by the
            manufacturer.  This count is incremented by one each
            time the input transitions from zero out-of-tolerance
            lines to one or more input lines out-of-tolerance.(*)"
    ::= { upsInputfifth 1 }

upsInputNumLinesfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of input lines utilized in this device.
            This variable indicates the number of rows in the
            input table.(*)"
    ::= { upsInputfifth 2 }

upsInputFifthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsInputFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of input table entries.  The number of entries
            is given by the value of upsInputNumLines.(*)"
    ::= { upsInputfifth 3 }

upsInputFifthEntry OBJECT-TYPE
    SYNTAX     UpsInputFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular input line.(*)"
    INDEX { upsInputLineIndexfifth }
    ::= { upsInputFifthTable 1 }

UpsInputFifthEntry ::= SEQUENCE {
    upsInputLineIndexfifth   PositiveInteger32,
    upsInputFrequencyfifth   NonNegativeInteger32,
    upsInputVoltagefifth     NonNegativeInteger32,
    upsInputCurrentfifth     NonNegativeInteger32,
    upsInputTruePowerfifth   NonNegativeInteger32,
    upsInputVoltageMinfifth  NonNegativeInteger32,
    upsInputVoltageMaxfifth  NonNegativeInteger32
}

upsInputLineIndexfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The input line identifier.(*)"
    ::= { upsInputFifthEntry 1 }

upsInputFrequencyfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present input frequency.(*)"
    ::= { upsInputFifthEntry 2 }

upsInputVoltagefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input voltage.(*)"
    ::= { upsInputFifthEntry 3 }

upsInputCurrentfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input current.(*)"
    ::= { upsInputFifthEntry 4 }

upsInputTruePowerfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input true power.(*)"
    ::= { upsInputFifthEntry 5 }

upsInputVoltageMinfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The lowest magnitude of the input voltage since last read out."
    ::= { upsInputFifthEntry 6 }

upsInputVoltageMaxfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The highest magnitude of the input voltage since last read out."
    ::= { upsInputFifthEntry 7 }

--
-- The Output group.
--

upsOutputSourcefifth OBJECT-TYPE
    SYNTAX     INTEGER {
        other(1),
        none(2),
        normal(3),
        bypass(4),
        battery(5),
        booster(6),
        reducer(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present source of output power.  The enumeration
            none(2) indicates that there is no source of output
            power (and therefore no output power), for example,
            the system has opened the output breaker.(*)"
    ::= { upsOutputfifth 1 }

upsOutputFrequencyfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output frequency.(*)"
    ::= { upsOutputfifth 2 }

upsOutputNumLinesfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of output lines utilized in this device.
            This variable indicates the number of rows in the
            output table.(*)"
    ::= { upsOutputfifth 3 }

upsOutputFifthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsOutputFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of output table entries.  The number of
            entries is given by the value of upsOutputNumLines.(*)"
    ::= { upsOutputfifth 4 }

upsOutputFifthEntry OBJECT-TYPE
    SYNTAX     UpsOutputFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular output line.(*)"
    INDEX { upsOutputLineIndexfifth }
    ::= { upsOutputFifthTable 1 }

UpsOutputFifthEntry ::= SEQUENCE {
    upsOutputLineIndexfifth   PositiveInteger32,
    upsOutputVoltagefifth     NonNegativeInteger32,
    upsOutputCurrentfifth     NonNegativeInteger32,
    upsOutputPowerfifth       NonNegativeInteger32,
    upsOutputPercentLoadfifth Integer32,
    upsOutputPowerFactorfifth Integer32,
    upsOutputPeakCurrentfifth Integer32,
    upsOutputShareCurrentfifth Integer32
}

upsOutputLineIndexfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The output line identifier.(*)"
    ::= { upsOutputFifthEntry 1 }

upsOutputVoltagefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output voltage.(*)"
    ::= { upsOutputFifthEntry 2 }

upsOutputCurrentfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output current.(*)"
    ::= { upsOutputFifthEntry 3 }

upsOutputPowerfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output true power.(*)"
    ::= { upsOutputFifthEntry 4 }

upsOutputPercentLoadfifth OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The percentage of the UPS power capacity presently
            being used on this output line, i.e., the greater of
            the percent load of true power capacity and the
            percent load of VA.(*)"
    ::= { upsOutputFifthEntry 5 }

upsOutputPowerFactorfifth OBJECT-TYPE
    SYNTAX     Integer32 (-99..100)
    UNITS      "0.01 cos phi"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output power factor. 
             The returned value correspond to the cosf of the load.
             A positive value indicate an inductive load; 
             a negative value indicate a capacitive load; 
             value 1 indicate a resistive load. 
             If the measure is not available due to a small load for 
             a consistent calculation, the NA value is then returned.(*)"
    ::= { upsOutputFifthEntry 6 }
    
upsOutputPeakCurrentfifth OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output peak current.(*)"
    ::= { upsOutputFifthEntry 7 }

upsOutputShareCurrentfifth OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "In a parallel system ideally all the UPS are requested to 
            contribute to the load with the same amount of current, 
            i.e. with no current share. The current share occurs when an
            UPS exchanges some current with another UPS, so that this 
            current component doesn't feed the load. 
            The share part of the UPS current represents an undesired UPS
            loading, and therefore it should be minimized. If the share 
            current is too high, the UPS results overloaded and in some 
            conditions (i.e. very high load) the system could turn on 
            bypass reducing dramatically the global system reliability.
   PMAD detects the amount of share currents in a parallel system,
   generating an alarm if this value is above a parameter-based threshold.
   Single UPS systems don't have this feature, NA will be provided.(*)"
    ::= { upsOutputFifthEntry 8 }

--
-- The Bypass group generic.
--

upsBypassFrequencyfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass frequency.(*)"
    ::= { upsBypassfifth 1 }

upsBypassNumLinesfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of bypass lines utilized in this device.
            This entry indicates the number of rows in the bypass
            table.(*)"
    ::= { upsBypassfifth 2 }

upsBypassFifthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsBypassFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of bypass table entries.  The number of
            entries is given by the value of upsBypassNumLines.(*)"
    ::= { upsBypassfifth 3 }

upsBypassFifthEntry OBJECT-TYPE
    SYNTAX     UpsBypassFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular bypass input.(*)"
    INDEX { upsBypassLineIndexfifth }
    ::= { upsBypassFifthTable 1 }

UpsBypassFifthEntry ::= SEQUENCE {
    upsBypassLineIndexfifth  PositiveInteger32,
    upsBypassVoltagefifth    NonNegativeInteger32,
    upsBypassCurrentfifth    NonNegativeInteger32,
    upsBypassPowerfifth      NonNegativeInteger32
}

upsBypassLineIndexfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The bypass line identifier.(*)"
    ::= { upsBypassFifthEntry 1 }

upsBypassVoltagefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass voltage.(*)"
    ::= { upsBypassFifthEntry 2 }

upsBypassCurrentfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass current.(*)"
    ::= { upsBypassFifthEntry 3 }

upsBypassPowerfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present true power conveyed by the bypass.(*)"
    ::= { upsBypassFifthEntry 4 }

--
-- The Alarm group generic.
--

upsAlarmsPresentfifth OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present number of active alarm conditions.(*)"
    ::= { upsAlarmfifth 1 }

upsAlarmFifthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsAlarmFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
            upsAlarmId equal to 1, and increments the value of
            upsAlarmId each time a new row is created, wrapping to
            the first free value greater than or equal to 1 when
            the maximum value of upsAlarmId would otherwise be
            exceeded.  Consequently, after multiple operations,
            the table may become sparse, e.g., containing entries
            for rows 95, 100, 101, and 203 and the entries should
            not be assumed to be in chronological order because
            upsAlarmId might have wrapped.

            Alarms are named by an AutonomousType (OBJECT
            IDENTIFIER), upsAlarmDescr, to allow a single table to
            reflect well known alarms plus alarms defined by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.  No
            two rows will have the same value of upsAlarmDescr,
            since alarms define conditions.  In order to meet this
            requirement, care should be taken in the definition of
            alarm conditions to insure that a system cannot enter
            the same condition multiple times simultaneously.

            The number of rows in the table at any given time is
            reflected by the value of upsAlarmsPresent.(*)"
    ::= { upsAlarmfifth 2 }

upsAlarmFifthEntry OBJECT-TYPE
    SYNTAX     UpsAlarmFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular alarm.(*)"
    INDEX { upsAlarmIdfifth }
    ::= { upsAlarmFifthTable 1 }

UpsAlarmFifthEntry ::= SEQUENCE {
    upsAlarmIdfifth          PositiveInteger32,
    upsAlarmDescrfifth       AutonomousType,
    upsAlarmTimefifth       TimeStamp
}

upsAlarmIdfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique identifier for an alarm condition.  This
            value must remain constant.(*)"
    ::= { upsAlarmFifthEntry 1 }

upsAlarmDescrfifth OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A reference to an alarm description object.  The
            object referenced should not be accessible, but rather
            be used to provide a unique description of the alarm
            condition.(*)"
    ::= { upsAlarmFifthEntry 2 }

upsAlarmTimefifth OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when the alarm condition was
            detected.  If the alarm condition was detected at the
            time of agent startup and presumably existed before
            agent startup, the value of upsAlarmTime shall equal
            0.(*)"
    ::= { upsAlarmFifthEntry 3 }

--
-- Well known alarm conditions generic.
--

upsAlarmBatteryBadfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement.(*)"
    ::= { upsWellKnownAlarmsfifth  1 }

upsAlarmOnBatteryfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS is drawing power from the batteries.(*)"
    ::= { upsWellKnownAlarmsfifth  2 }

upsAlarmLowBatteryfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime.(*)"
    ::= { upsWellKnownAlarmsfifth  3 }

upsAlarmDepletedBatteryfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost.(*)"
    ::= { upsWellKnownAlarmsfifth  4 }

upsAlarmTempBadfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A temperature is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfifth  5 }

upsAlarmInputBadfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An input condition is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfifth  6 }

upsAlarmOutputBadfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfifth  7 }

upsAlarmOutputOverloadfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output load exceeds the UPS output capacity.(*)"
    ::= { upsWellKnownAlarmsfifth  8 }

upsAlarmOnBypassfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS.(*)"
    ::= { upsWellKnownAlarmsfifth  9 }

upsAlarmBypassBadfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsfifth 10 }

upsAlarmOutputOffAsRequestedfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off.(*)"
    ::= { upsWellKnownAlarmsfifth 11 }

upsAlarmUpsOffAsRequestedfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The entire UPS has shutdown as commanded.(*)"
    ::= { upsWellKnownAlarmsfifth 12 }

upsAlarmChargerFailedfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem.(*)"
    ::= { upsWellKnownAlarmsfifth 13 }

upsAlarmUpsOutputOfffifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output of the UPS is in the off state.(*)"
    ::= { upsWellKnownAlarmsfifth 14 }

upsAlarmUpsSystemOfffifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS system is in the off state.(*)"
    ::= { upsWellKnownAlarmsfifth 15 }

upsAlarmFanFailurefifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected.(*)"
    ::= { upsWellKnownAlarmsfifth 16 }

upsAlarmFuseFailurefifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fuses has been detected.(*)"
    ::= { upsWellKnownAlarmsfifth 17 }

upsAlarmGeneralFaultfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A general fault in the UPS has been detected.(*)"
    ::= { upsWellKnownAlarmsfifth 18 }

upsAlarmDiagnosticTestFailedfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure.(*)"
    ::= { upsWellKnownAlarmsfifth 19 }

upsAlarmCommunicationsLostfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem has been encountered in the communications
            between the agent and the UPS.(*)"
    ::= { upsWellKnownAlarmsfifth 20 }

upsAlarmAwaitingPowerfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of input power.(*)"
    ::= { upsWellKnownAlarmsfifth 21 }

upsAlarmShutdownPendingfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway.(*)"
    ::= { upsWellKnownAlarmsfifth 22 }

upsAlarmShutdownImminentfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 fifths; this may be either a timed shutdown or a
            low battery shutdown.(*)"
    ::= { upsWellKnownAlarmsfifth 23 }

upsAlarmTestInProgressfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY.(*)"
    ::= { upsWellKnownAlarmsfifth 24 }

upsAlarmReceptacleOfffifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The receptacle are switch off    "
    ::= { upsWellKnownAlarmsfifth 25 }

upsAlarmHighSpeedBusFailurefifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the High Speed Bus communication is detected"
    ::= { upsWellKnownAlarmsfifth 26 }
    
upsAlarmHighSpeedBusJACRCFailurefifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JA is detected."
    ::= { upsWellKnownAlarmsfifth 27 }
    
upsAlarmConnectivityBusFailurefifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected."
    ::= { upsWellKnownAlarmsfifth 28 }

upsAlarmHighSpeedBusJBCRCFailurefifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JB is detected."
    ::= { upsWellKnownAlarmsfifth 29 }

upsAlarmCurrentSharingfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high current sharing on the parallel system."
    ::= { upsWellKnownAlarmsfifth 30 }
        
upsAlarmDCRipplefifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high ripple voltage on his DC link."
    ::= { upsWellKnownAlarmsfifth 31 }

upsAlarmMaskAfifth OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Specifies which alarm can be handled by the UPS.
            The 'Mask' parameter is a Long Integer32. The meaning
            of every bit is the same as for the 'upsAlarmGroupA'
            command. A bit having value=1 indicates that the
            corresponding alarm is handled by the UPS."
    ::= { upsAlarmfifth 4 }

--
-- The Test Group generic
--

upsTestIdfifth OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The test is named by an OBJECT IDENTIFIER which
            allows a standard mechanism for the initiation of
            tests, including the well known tests identified in
            this document as well as those introduced by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.

            Setting this variable initiates the named test. Sets
            to this variable require the presence of
            upsTestSpinLock in the same SNMP message.

            The set request will be rejected with an appropriate
            error message if the requested test cannot be
            performed, including attempts to start a test when
            another test is already in progress.  The status of
            the current or last test is maintained in
            upsTestResultsSummary. Tests in progress may be
            aborted by setting the upsTestId variable to
            upsTestAbortTestInProgress.

            Read operations return the value of the name of the
            test in progress if a test is in progress or the name
            of the last test performed if no test is in progress,
            unless no test has been run, in which case the well
            known value upsTestNoTestsInitiated is returned.(*)"
    ::= { upsTestfifth 1 }

-- see [6] for more information on the semantics of objects with
-- syntax of TestAndIncr

upsTestSpinLockfifth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the test subsystem.  The spinlock is
            used as follows.

            Before starting a test, a manager-station should make
            sure that a test is not in progress as follows:

                tryagain:
                  get (upsTestSpinLock)
                  while (upsTestResultsSummary == inProgress) {
                    /* loop while a test is running for another
            manager */
                    short delay
                    get (upsTestSpinLock)
                  }
                  lockvalue = upsTestSpinLock
                  /* no test in progress, start the test */
                  set (upsTestSpinLock = lockvalue, upsTestId =
            requestedtest)
                  if (errorindex == 1) { /* (upsTestSpinLock
            failed) */
                    /* if problem is not access control, then
                        some other manager slipped in ahead of us
            */
                    goto tryagain
                  }
                  if (errorindex == 2) { /* (upsTestId) */
                    /* cannot perform the test */
                    give up
                  }
                  /* test started ok */
                  /* wait for test completion by polling
            upsTestResultsSummary */
                  get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  while (upsTestResultsSummary == inProgress) {
                    short delay
                    get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  }
                  /* when test completes, retrieve any additional
            test results */
                  /* if upsTestSpinLock == lockvalue + 1, then
            these are our test */
                  /* results (as opposed to another manager's */
                  The initial value of upsTestSpinLock at agent
            initialization shall
                  be 1.(*)"
    ::= { upsTestfifth 2 }

upsTestResultsSummaryfifth OBJECT-TYPE
    SYNTAX     INTEGER {
        donePass(1),
        doneWarning(2),
        doneError(3),
        aborted(4),
        inProgress(5),
        noTestsInitiated(6)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The results of the current or last UPS diagnostics
            test performed.  The values for donePass(1),
            doneWarning(2), and doneError(3) indicate that the
            test completed either successfully, with a warning, or
            with an error, respectively.  The value aborted(4) is
            returned for tests which are aborted by setting the
            value of upsTestId to upsTestAbortTestInProgress.
            Tests which have not yet concluded are indicated by
            inProgress(5).  The value noTestsInitiated(6)
            indicates that no previous test results are available,
            such as is the case when no tests have been run since
            the last reinitialization of the network management
            subsystem and the system has no provision for non-
            volatile storage of test results.(*)"
    ::= { upsTestfifth 3 }

upsTestResultsDetailfifth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Additional information about upsTestResultsSummary.
            If no additional information available, a zero length
            string is returned.(*)"
    ::= { upsTestfifth 4 }

upsTestStartTimefifth OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time the test in
            progress was initiated, or, if no test is in progress,
            the time the previous test was initiated.  If the
            value of upsTestResultsSummary is noTestsInitiated(6),
            upsTestStartTime has the value 0.(*)"
    ::= { upsTestfifth 5 }

upsTestElapsedTimefifth OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time, in TimeTicks, since the test in
            progress was initiated, or, if no test is in progress,
            the previous test took to complete.  If the value of
            upsTestResultsSummary is noTestsInitiated(6),
            upsTestElapsedTime has the value 0.(*)"
    ::= { upsTestfifth 6 }

--
-- Well known tests generic.
--

upsTestNoTestsInitiatedfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "No tests have been initiated and no test is in
            progress.(*)"
    ::= { upsWellKnownTestsfifth  1 }

upsTestAbortTestInProgressfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The test in progress is to be aborted / the test in
            progress was aborted.(*)"
    ::= { upsWellKnownTestsfifth  2 }

upsTestGeneralSystemsTestfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The manufacturer's standard test of UPS device
            systems.(*)"
    ::= { upsWellKnownTestsfifth  3 }

upsTestQuickBatteryTestfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test that is sufficient to determine if the battery
            needs replacement.(*)"
    ::= { upsWellKnownTestsfifth  4 }

upsTestDeepBatteryCalibrationfifth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The system is placed on battery to a discharge level,
            set by the manufacturer, sufficient to determine
            battery replacement and battery run-time with a high
            degree of confidence.  WARNING:  this test will leave
            the battery in a low charge state and will require
            time for recharging to a level sufficient to provide
            normal battery duration for the protected load.(*)"
    ::= { upsWellKnownTestsfifth  5 }

--
-- The Control group generic.
--

upsShutdownTypefifth OBJECT-TYPE
    SYNTAX     INTEGER {
        output(1),
        system&#40;2&#41;
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object determines the nature of the action to be
            taken at the time when the countdown of the
            upsShutdownAfterDelay and upsRebootWithDuration
            objects reaches zero.

            Setting this object to output(1) indicates that
            shutdown requests should cause only the output of the
            UPS to turn off.  Setting this object to system&#40;2&#41;
            indicates that shutdown requests will cause the entire
            UPS system to turn off.(*)"
    ::= { upsControlfifth 1 }

upsShutdownAfterDelayfifth OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "fifths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will shutdown (i.e., turn off)
            either the UPS output or the UPS system &#40;as determined
            by the value of upsShutdownType at the time of
            shutdown&#41; after the indicated number of fifths, or
            less if the UPS batteries become depleted. Setting
            this object to 0 will cause the shutdown to occur
            immediately.  Setting this object to -1 will abort the
            countdown.  If the system is already in the desired
            state at the time the countdown reaches 0, then
            nothing will happen.  That is, there is no additional
            action at that time if upsShutdownType = system and
            the system is already off.  Similarly, there is no
            additional action at that time if upsShutdownType =
            output and the output is already off.  When read,
            upsShutdownAfterDelay will return the number of
            fifths remaining until shutdown, or -1 if no shutdown
            countdown is in effect.  On some systems, if the agent
            is restarted while a shutdown countdown is in effect,
            the countdown may be aborted.  Sets to this object
            override any upsShutdownAfterDelay already in effect.(*)"
    ::= { upsControlfifth 2 }

upsStartupAfterDelayfifth OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "fifths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will start the output after the
            indicated number of fifths, including starting the
            UPS, if necessary.  Setting this object to 0 will
            cause the startup to occur immediately.  Setting this
            object to -1 will abort the countdown.  If the output
            is already on at the time the countdown reaches 0,
            then nothing will happen.  Sets to this object
            override the effect of any upsStartupAfterDelay
            countdown or upsRebootWithDuration countdown in
            progress.  When read, upsStartupAfterDelay will return
            the number of fifths until startup, or -1 if no
            startup countdown is in effect.  If the countdown
            expires during a utility failure, the startup shall
            not occur until the utility power is restored.  On
            some systems, if the agent is restarted while a
            startup countdown is in effect, the countdown is
            aborted.(*)"
    ::= { upsControlfifth 3 }

upsRebootWithDurationfifth OBJECT-TYPE
    SYNTAX     Integer32 (-1..300)
    UNITS      "fifths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will immediately shutdown (i.e.,
            turn off) either the UPS output or the UPS system &#40;as
            determined by the value of upsShutdownType at the time
            of shutdown&#41; for a period equal to the indicated
            number of fifths, after which time the output will be
            started, including starting the UPS, if necessary.  If
            the number of fifths required to perform the request
            is greater than the requested duration, then the
            requested shutdown and startup cycle shall be
            performed in the minimum time possible, but in no case
            shall this require more than the requested duration
            plus 60 fifths.  When read, upsRebootWithDuration
            shall return the number of fifths remaining in the
            countdown, or -1 if no countdown is in progress.  If
            the startup should occur during a utility failure, the
            startup shall not occur until the utility power is
            restored.(*)"
    ::= { upsControlfifth 4 }

upsAutoRestartfifth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object to 'on' will cause the UPS system
            to restart after a shutdown if the shutdown occurred
            during a power loss as a result of either a
            upsShutdownAfterDelay or an internal battery depleted
            condition.  Setting this object to 'off' will prevent
            the UPS system from restarting after a shutdown until
            an operator manually or remotely explicitly restarts
            it.  If the UPS is in a startup or reboot countdown,
            then the UPS will not restart until that delay has
            been satisfied.(*)"
    ::= { upsControlfifth 5 }

upsReceptaclesNumfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of receptacles utilized in this device.
            This entry indicates the number of rows in the receptacle
            table."
    ::= { upsControlfifth 6 }

upsReceptacleFifthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsReceptacleFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of receptacle table entries.  The number of
            entries is given by the value of upsReceptacleNum."
    ::= { upsControlfifth 7 }

upsReceptacleFifthEntry OBJECT-TYPE
    SYNTAX     UpsReceptacleFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular receptacle."
    INDEX { upsReceptacleLineIndexfifth }
    ::= { upsReceptacleFifthTable 1 }

UpsReceptacleFifthEntry ::= SEQUENCE {
    upsReceptacleLineIndexfifth  PositiveInteger32,
    upsReceptacleOnOfffifth      INTEGER    
}

upsReceptacleLineIndexfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The receptacle line identifier."
    ::= { upsReceptacleFifthEntry 1 }

upsReceptacleOnOfffifth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the receptacle. Setting this 
             object to 'on' will cause the receptacle to be turned
             on. Setting this object to 'off' will turn the
             receptacle off. If the receptacle is already in the
             desired state nothing will happen. After an
             autorestart (see upsAutoRestart) the receptacle will
             be on."
    ::= { upsReceptacleFifthEntry 2 }

upsUPSModefifth OBJECT-TYPE
    SYNTAX     INTEGER {
        offLine(1),
        onLine(2),
        ecomode(3),
        iem(4)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The operation mode off the UPS. Off-line indicates a
            mode in which the input power is transferred to the
            output directly or via a step-up or step-down
            transformer. On-line mode indicates a mode in which 
            the output power is regenerated through some convertor.
            the operating mode of the UPS may be fixed, or may be
            selectable (e.g. an on-line UPS with ecomode)"
    ::= { upsControlfifth 8 }

upsRectifierOnOfffifth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the rectifier. Setting this 
             object to 'on' will cause the rectifier to be turned
             on. Setting this object to 'off' will turn the
             rectifier off. If the rectifier is already in the
             desired state nothing will happen. "
    ::= { upsControlfifth 9 }

upsBatteryChargeMethodfifth OBJECT-TYPE
    SYNTAX     INTEGER {
        normalcharge(1),
        boostcharge(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the charge method. Setting this 
             object to 'Normal charge' will cause the battery to be 
             charged using the normal method. Setting this object to 
             'Boost charge' will charge the battery in boost mode. 
             If the charge method is already in the desired state 
             nothing will happen. "
    ::= { upsControlfifth 10 }

upsInverterOnOfffifth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the inverter. Setting this 
             object to 'on' will cause the inverter to be turned
             on. Setting this object to 'off' will turn the
             inverter off. If the inverter is already in the
             desired state nothing will happen. "
    ::= { upsControlfifth 11 }

upsBypassOnOfffifth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the bypass. Setting this 
             object to 'on' will cause the bypass to be activated.
             Setting this object to 'off' will deactivate the
             bypass. If the UPS is already in the
             desired state nothing will happen. "
    ::= { upsControlfifth 12 }

upsLoadSourcefifth OBJECT-TYPE
    SYNTAX     INTEGER {
        onbypass(1),
        onInverter(2),
        onDetour(3),
        loadOff(4),
        other (5)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present source of the load. Setting this 
             object to 'On bypass' will cause the load to be 
             supplied by the bypass.
             Setting this object to 'On inverter' will cause the 
             load to be supplied by the inverter.
             If the load is already supplied by the desired 
             source nothing will happen. "
    ::= { upsControlfifth 13 }
 
--
-- The Configuration group generic.
--

upsConfigInputVoltagefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal input voltage.  On those
            systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfifth 1 }

upsConfigInputFreqfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal input frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfifth 2 }

upsConfigOutputVoltagefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal output voltage.  On
            those systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfifth 3 }

upsConfigOutputFreqfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal output frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigfifth 4 }

upsConfigOutputVAfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Volt-Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal Volt-Amp rating.(*)"
    ::= { upsConfigfifth 5 }

upsConfigOutputPowerfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal true power rating.(*)"
    ::= { upsConfigfifth 6 }

upsConfigLowBattTimefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "minutes"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The value of upsEstimatedMinutesRemaining at which a
            lowBattery condition is declared.  For agents which
            support only discrete (discontinuous) values, then the
            agent shall round up to the next supported value.  If
            the requested value is larger than the largest
            supported value, then the largest supported value
            shall be selected.(*)"
    ::= { upsConfigfifth 7 }

upsConfigAudibleStatusfifth OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2),
        muted(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The requested state of the audible alarm.  When in
            the disabled state, the audible alarm should never
            sound.  The enabled state is self-describing.  Setting
            this object to muted(3) when the audible alarm is
            sounding shall temporarily silence the alarm.  It will
            remain muted until it would normally stop sounding and
            the value returned for read operations during this
            period shall equal muted(3).  At the end of this
            period, the value shall revert to enabled(2).  Writes
            of the value muted(3) when the audible alarm is not
            sounding shall be accepted but otherwise shall have no
            effect.(*)"
    ::= { upsConfigfifth 8 }

upsConfigLowVoltageTransferPointfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The minimum input line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigfifth 9 }

upsConfigHighVoltageTransferPointfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigfifth 10 }

upsConfigBatteryCapacityfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Amps Hours"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The installed battery capacity. This value is the 'factory'-value,
             not the value after calibration."
    ::= { upsConfigfifth 11 }

upsConfigBatteryChargeCurrentfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum battery charge current, including external chargers."
    ::= { upsConfigfifth 12 }      

upsConfigNoLoadShutdownfifth OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Dis- or enable 'no load' shutdown from the contact interface."
    ::= { upsConfigfifth 13 }
 
upsConfigStartDelayfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"    
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Minimum required autonomy time before the UPS may perform an
             autorestart."
    ::= { upsConfigfifth 14 }

--
-- The GetSet group generic.
--

upsEventGetNextfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventSetStartingTimeStamp
            will be used as the start value of the table with the lowest index number."
    ::= { upsGetSetfifth 1 }

upsEventGetPreviousfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventLastTime will
            be used as the last value of the table with the highest index number.

            Returns SNMPNOSUCHNAME for UPSs that don't support this command."
    ::= { upsGetSetfifth 2 }
    
upsEventSetStartingTimeStampfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The timestamp which is used as starting point for downloading
             events from the UPS event buffer"
    ::= { upsGetSetfifth 3 }    

upsEventRetreiveCurrentTimeStampfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current timestamp is retreived from the UPS"
    ::= { upsGetSetfifth 4 }    

upsEventTableSizefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the event table.
            This object indicates the number of rows in the event table."
    ::= { upsGetSetfifth 5 }

upsEventFifthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsEventFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of event table entries.  The number of entries is always
            10, and the value of upsEventTableSize gives the number of valid
            entries from the begging of the table.  Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..10)):

            PDU-SET upsSetStartingTimeStamp <time> 
            PDU-SET upsEventGetNext <number>
            PDU-GET upsEventTableSize
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 1
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 2
            ..
            PDU-GET upsEventCode,upsEventStatus,upsEventTime <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsEventTableSize.
            "
    ::= { upsGetSetfifth 6 }

upsEventFifthEntry OBJECT-TYPE
    SYNTAX     UpsEventFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular event."
    INDEX { upsEventLineIndexfifth }
    ::= { upsEventFifthTable 1 }

UpsEventFifthEntry ::= SEQUENCE {
    upsEventLineIndexfifth PositiveInteger32,
    upsEventCodefifth      Integer32,
    upsEventStatusfifth    NonNegativeInteger32,
    upsEventTimefifth      NonNegativeInteger32
}

upsEventLineIndexfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The event line identifier."
    ::= { upsEventFifthEntry 1 }

upsEventCodefifth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The event code in numerical format."
    ::= { upsEventFifthEntry 2 }

upsEventStatusfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of the UPS at the moment that the event was generated.
             The format is specified at the 'upsStatus' command.
             If the UPS is not able to deliver status information, then
             SNMPNOSUCHNAME is returned."
    ::= { upsEventFifthEntry 3 }

upsEventTimefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The timestamp of the moment the event was generated."
    ::= { upsEventFifthEntry 4 }

upsParametersReadfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to retreive from the UPS.
            When this object is set the ParameterTable will be filled with the
            requested number of entries. The value upsParametersStartAddress
            will be used as the start value of the table with the lowest index 
            number."
    ::= { upsGetSetfifth 7 }

upsParametersWritefifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to write to the UPS.
            When this object is set the ParameterTable will be send to the ups. 
            The value upsParametersStartAddress will be used for the fifth value 
            of the table with the lowest index number."
    ::= { upsGetSetfifth 8 }

upsParametersStartAddressfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The address which is used as starting point for downloading
             parameters from the UPS"
    ::= { upsGetSetfifth 9 }    

upsParameterTableSizefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the parameter table.
            This object indicates the number of rows in the parameter table."
    ::= { upsGetSetfifth 10 }

upsParameterFifthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsParameterFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of parameter entries. The number of entries is always
            16, and the value of upsParameterTableSize gives the number of valid
            entries from the begging of the table. Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..16)):

            Read sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParametersRead <number>
            PDU-GET upsParameterTableSize
            PDU-GET upsParameterValue 1
            PDU-GET upsParameterValue 2
            ..
            PDU-GET upsParameterValue <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsParameterTableSize.

            Write sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParameterValue 1
            PDU-SET upsParameterValue 2
            ..
            PDU-SET upsParameterValue <number>
            PDU-SET upsParametersWrite <number>
            "
    ::= { upsGetSetfifth 11 }

upsParameterFifthEntry OBJECT-TYPE
    SYNTAX     UpsParameterFifthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular parameter."
    INDEX { upsParameterLineIndexfifth }
    ::= { upsParameterFifthTable 1 }

UpsParameterFifthEntry ::= SEQUENCE {
    upsParameterLineIndexfifth PositiveInteger32,
    upsParameterValuefifth     Integer32   
}

upsParameterLineIndexfifth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The parameter line identifier."
    ::= { upsParameterFifthEntry 1 }

upsParameterValuefifth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The parameter value in numerical format."
    ::= { upsParameterFifthEntry 2 }

upsStatusfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The global UPS status is returned. Every bit reflects a specific 
             status condition. Unused bits returns as 0. The status value can 
             also be found on other commands. The value SNMPNOSUCHNAME means 
             'invalid status' or 'status value non available'.

             Status
                     1  0000 0001h upsStatusEcomodeIsOn
                     2  0000 0002h upsStatusBatteryIsCharging
                     4  0000 0004h upsStatusBatteryIsDischarging
                     8  0000 0008h upsStatusAlarmIsActive
                    16  0000 0010h upsStatusRectifierIsOn
                    32  0000 0020h upsStatusLowBattery
                    64  0000 0040h upsStatusOnBypass
                   128  0000 0080h upsStatusMainsBypassOK
                   256  0000 0100h upsStatusMainsRectifierOK
                   512  0000 0200h upsStatusDetourIsOn
                  1024  0000 0400h upsStatusAcousticAlarmIsOn
                  2048  0000 0800h upsStatusGlobalServiceCheck
                  4096  0000 1000h upsStatusInverterIsOn
                  8192  0000 2000h upsStatusNotInParallel (Q1 open)
                 16384  0000 4000h upsStatusResetLoadOff
                 32768  0000 8000h upsStatusLoadOff 
                 65536  0001 0000h upsStatusBoostMode 
                131072  0002 0000h upsStatusBuckMode 
                262144  0004 0000h upsStatusIemModeIsOn 
                524288  0008 0000h upsStatus5thFilterIsOn 
               1048576  0010 0000h upsStatus11thFilterIsOn
               2097152  0020 0000h upsStatus2ndRectifierBridgeIsOn
               4194304  0040 0000h - reserved -
               8388608  0080 0000h - reserved -
              16777216  0100 0000h - reserved -
              33554432  0200 0000h - reserved -
              67108864  0400 0000h - reserved -
             134217728  0800 0000h - reserved -
             268435456  1000 0000h upsGlobalParallelValues "
    ::= { upsGetSetfifth 12 }

upsMainsStatisticsMBfailfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of main bypass failures (>200 ms), since UPS installation."
    ::= { upsGetSetfifth 13 }

upsMainsStatisticsMRfailfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of mains rectifier failures (>200 ms), since UPS installation."
    ::= { upsGetSetfifth 14 }
  
upsMainsStatisticsB2fifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (0..2 ms), during the last 7 days."
    ::= { upsGetSetfifth 15 }

upsMainsStatisticsB5fifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (2..5 ms), during the last 7 days."
    ::= { upsGetSetfifth 16 }

upsMainsStatisticsB10fifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (5..10 ms), during the last 7 days."
    ::= { upsGetSetfifth 17 }

upsMainsStatisticsB200fifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (10..200 ms), during the last 7 days."
    ::= { upsGetSetfifth 18 }

upsMainsStatisticsBypRelfifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bypass reliability degree [0..100%;255]. The value NOSUCHNAME means 'not available'."
    ::= { upsGetSetfifth 19 }

upsTimefifth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The current timestamp (or real-time) of the UPS. For the format, 
             see 'Timestamp' specifications. The write-command has to comply with the 
             correct timestamp format expected by the UPS (counter value or real-time-clock 
             value). Missing to doing so will result in a SNMPfifthERROR, 
             meaning 'command not supported'. It is possible to know which is the timestamp 
             format supported by the UPS, by issuing a read-command or by reading events, 
             which includes timestamps."
    ::= { upsGetSetfifth 20 }

upsRequestPermissionfifth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An encrypted code is send to enable use of restricted write objects during
             a limited period of time."
    ::= { upsGetSetfifth 21 }
    
upsEventGetCodefifth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The code which is used as starting point to downloading the events from the 
            UPS event buffer."
    ::= { upsGetSetfifth 22 }    
    
upsEventSpinLockfifth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the event subsystem. "

    ::= { upsGetSetfifth 23 }
    
upsParameterSpinLockfifth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the parameters subsystem. "

    ::= { upsGetSetfifth 24 }


--
-- GE Trap group generic
--

upsTrapAlarmBatteryBadfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement."
    ::= { geUPSTrapsfifth  1 }

upsTrapAlarmOnBatteryfifth NOTIFICATION-TYPE
    OBJECTS  { upsSecondsOnBatteryfifth  }
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from the batteries."
    ::= { geUPSTrapsfifth 2 }

upsTrapAlarmLowBatteryfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime."
    ::= { geUPSTrapsfifth 3 }

upsTrapAlarmDepletedBatteryfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost)"
    ::= { geUPSTrapsfifth 4 }

upsTrapAlarmTempBadfifth NOTIFICATION-TYPE
    OBJECTS  { upsBatteryTemperature }
    STATUS  current
    DESCRIPTION
            "A temperature is out of tolerance."
    ::= { geUPSTrapsfifth 5 }

upsTrapAlarmInputBadfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input condition is out of tolerance."
    ::= { geUPSTrapsfifth 6 }

upsTrapAlarmOutputBadfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance."
    ::= { geUPSTrapsfifth 7 }

upsTrapAlarmOutputOverloadfifth NOTIFICATION-TYPE
    OBJECTS  { upsOutputNumLinesfifth, upsOutputPercentLoadfifth }
    STATUS  current
    DESCRIPTION
            "The output load exceeds the UPS output capacity."
    ::= { geUPSTrapsfifth 8 }

upsTrapAlarmOnBypassfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS."
    ::= { geUPSTrapsfifth 9 }

upsTrapAlarmBypassBadfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is out of tolerance."
    ::= { geUPSTrapsfifth 10 }

upsTrapAlarmOutputOffAsRequestedfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off."
    ::= { geUPSTrapsfifth 11 }

upsTrapAlarmUpsOffAsRequestedfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The entire UPS has shutdown as commanded."
    ::= { geUPSTrapsfifth 12 }

upsTrapAlarmChargerFailedfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem."
    ::= { geUPSTrapsfifth 13 }

upsTrapAlarmUpsOutputOfffifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS is in the off state."
    ::= { geUPSTrapsfifth 14 }

upsTrapAlarmUpsSystemOfffifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is in the off state."
    ::= { geUPSTrapsfifth 15 }

upsTrapAlarmFanFailurefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected."
    ::= { geUPSTrapsfifth 16 }

upsTrapAlarmFuseFailurefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fuses has been detected."
    ::= { geUPSTrapsfifth 17 }

upsTrapAlarmGeneralFaultfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault in the UPS has been detected."
    ::= { geUPSTrapsfifth 18 }

upsTrapAlarmDiagnosticTestFailedfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure."
    ::= { geUPSTrapsfifth 19 }

upsTrapAlarmCommunicationsLostfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem has been encountered in the communication
            between the agent and the UPS."
    ::= { geUPSTrapsfifth 20 }
    
upsTrapAlarmAwaitingPowerfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of the input power (*)."
    ::= { geUPSTrapsfifth 21 }

upsTrapAlarmShutdownPendingfifth NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayfifth }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway."
    ::= { geUPSTrapsfifth 22 }

upsTrapAlarmShutdownImminentfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 fifths; this may be either a timed shutdown or a
            low battery shutdown."
    ::= { geUPSTrapsfifth 23 }

upsTrapAlarmTestInProgressfifth NOTIFICATION-TYPE
    OBJECTS  { upsTestIdfifth }
    STATUS  current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY."
    ::= { geUPSTrapsfifth 24 }

upsTrapAlarmReceptacleOfffifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched off."
    ::= { geUPSTrapsfifth 25 }

upsTrapAlarmHighspeedBusFailurefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is detected."
    ::= { geUPSTrapsfifth 26 }

upsTrapAlarmHighspeedBusJACRCFailurefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JA is detected."
    ::= { geUPSTrapsfifth 27 }
     
upsTrapAlarmConnectivityBusFailurefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected"
    ::= { geUPSTrapsfifth 28 }

upsTrapAlarmHighspeedBusJBCRCFailurefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
     ::= { geUPSTrapsfifth 29 }

upsTrapAlarmCurrentSharingFailurefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is detected."
     ::= { geUPSTrapsfifth 30 }
     
upsTrapAlarmDCRippleFailurefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is detected."
     ::= { geUPSTrapsfifth 31 }

upsTrapAlarmBatteryBadRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Battery bad condition is restored."
    ::= { geUPSTrapsfifth 33 }

upsTrapAlarmOnBatteryRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from mains again."
    ::= { geUPSTrapsfifth 34 }

upsTrapAlarmLowBatteryRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Low Battery condition is restored."
    ::= { geUPSTrapsfifth 35 }

upsTrapAlarmDepletedBatteryRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Depleted Battery condition is restored."
    ::= { geUPSTrapsfifth 36 }

upsTrapAlarmTempBadRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A bad temperature condition is restored."
    ::= { geUPSTrapsfifth 37 }

upsTrapAlarmInputBadRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input bad condition is restored."
    ::= { geUPSTrapsfifth 38 }

upsTrapAlarmOutputBadRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output bad condition is restored."
    ::= { geUPSTrapsfifth 39 }

upsTrapAlarmOutputOverloadRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output overload condition is restored."
    ::= { geUPSTrapsfifth 40 }

upsTrapAlarmOnBypassRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An On Bypass condition is restored."
    ::= { geUPSTrapsfifth 41 }

upsTrapAlarmBypassBadRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Bypass bad condition is restored."
    ::= { geUPSTrapsfifth 42 }

upsTrapAlarmOutputOffAsRequestedRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A request shutdown has been restored."
    ::= { geUPSTrapsfifth 43 }

upsTrapAlarmUpsOffAsRequestedRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A entire UPS command has been restored."
    ::= { geUPSTrapsfifth 44 }

upsTrapAlarmChargerFailedRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Charger Failer condition is restored."
    ::= { geUPSTrapsfifth 45 }

upsTrapAlarmUpsOutputOnfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS switched in the on state."
    ::= { geUPSTrapsfifth 46 }

upsTrapAlarmUpsSystemOnfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is switched in the on state."
    ::= { geUPSTrapsfifth 47 }

upsTrapAlarmFanFailureRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fan failure condition is restored."
    ::= { geUPSTrapsfifth 48 }

upsTrapAlarmFuseFailureRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fuse failure condition is restored."
    ::= { geUPSTrapsfifth 49 }

upsTrapAlarmGeneralFaultRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault is restored."
    ::= { geUPSTrapsfifth 50 }

upsTrapAlarmDiagnosticTestFailedRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A last diagnostic test indicates a failure is 
            restored."
    ::= { geUPSTrapsfifth 51 }

upsTrapAlarmCommunicationsLostRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem in the communication between the agent 
            and the UPS is restored."
    ::= { geUPSTrapsfifth 52 }
    
upsTrapAlarmAwaitingPowerRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A awaiting power condition is restored (*)."
    ::= { geUPSTrapsfifth 53 }

upsTrapAlarmShutdownPendingRestoredfifth NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayfifth }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is restored."
    ::= { geUPSTrapsfifth 54 }

upsTrapAlarmShutdownImminentRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A shutdown imminent condition is restored."
    ::= { geUPSTrapsfifth 55 }

upsTrapAlarmTestInProgressRestoredfifth NOTIFICATION-TYPE
    OBJECTS  { upsTestIdfifth }
    STATUS  current
    DESCRIPTION
            "The test is in progress is terminated."
    ::= { geUPSTrapsfifth 56 }

upsTrapAlarmReceptacleOnfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched on."
    ::= { geUPSTrapsfifth 57 }
upsTrapAlarmHighspeedBusRestorefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is restored."
    ::= { geUPSTrapsfifth 58 }

upsTrapAlarmHighspeedBusJACRCRestorefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is restored."
    ::= { geUPSTrapsfifth 59 }
     
upsTrapAlarmConnectivityBusRestorefifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is restored."
    ::= { geUPSTrapsfifth 60 }
 
upsTrapAlarmHighspeedBusJBCRCRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is restored."
     ::= { geUPSTrapsfifth 61 }

upsTrapAlarmCurrentSharingRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is restored."
     ::= { geUPSTrapsfifth 62 }
     
upsTrapAlarmDCRippleRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is restored."
     ::= { geUPSTrapsfifth 63 }
     
upsTrapAlarmValueLowfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value below its low-level threshold."
    ::= { geUPSTrapsfifth 129 }

upsTrapAlarmValueHighfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value higher than its high-level threshold."
    ::= { geUPSTrapsfifth 130 }

upsTrapAlarmValueLowRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueLow alarm condition is restored."
    ::= { geUPSTrapsfifth 133 }

upsTrapAlarmValueHighRestoredfifth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueHigh alarm condition is restored."
    ::= { geUPSTrapsfifth 134 }


--
-- Diagnostic Group Generic
--

upsDiagnosticBusJACommunicationStatusfifth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticfifth 1 }
    
upsDiagnosticBusJBCommunicationStatusfifth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticfifth 2 }
  
upsDiagnosticBatteryLifetimefifth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfifth 3 }

upsDiagnosticFansLifetimefifth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfifth 4 } 
    
upsDiagnosticDCcapacitorsLifetimefifth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfifth 5 }  
    
upsDiagnosticACcapacitorsLifetimefifth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfifth 6 }
    
upsDiagnosticGlobalServiceCheckfifth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticfifth 7 }

--
-- The Device Identification group. Sixth
--      All objects in this group except for upsIdentName and
--      upsIdentAttachedDevices are set at device initialization
--      and remain static.
--

upsIdentManufacturersixth OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the UPS manufacturer.(*)"
    ::= { upsIdentsixth 1 }

upsIdentModelsixth OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS Model designation.(*)"
    ::= { upsIdentsixth 2 }

upsIdentUPSSoftwareVersionsixth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS firmware/software version(s).  This variable
            may or may not have the same value as
            upsIdentAgentSoftwareVersion in some implementations.(*)"
    ::= { upsIdentsixth 3 }

upsIdentAgentSoftwareVersionsixth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS agent software version.  This variable may or
            may not have the same value as
            upsIdentUPSSoftwareVersion in some implementations.(*)"
    ::= { upsIdentsixth 4 }

upsIdentNamesixth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the UPS.  This object should be
            set by the administrator.(*)"
    ::= { upsIdentsixth 5 }

upsIdentAttachedDevicessixth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the devices attached to the
            output(s) of the UPS.  This object should be set by
            the administrator.(*)"
    ::= { upsIdentsixth 6 }

upsIdentUPSSerialNumbersixth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS serial number"
    ::= { upsIdentsixth 7 }
    
upsIdentComProtVersionsixth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IMV communication protocol version"
    ::= { upsIdentsixth 8 } 
  
upsIdentOperatingTimesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "sixths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present value of the operating time.
             total 'on' time since UPS manufactured"
    ::= { upsIdentsixth 9 } 
    
--
-- Battery Group Generic
--

upsBatteryStatussixth OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        batteryNormal(2),
        batteryLow(3),
        batteryDepleted(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The indication of the capacity remaining in the UPS
            system's batteries.   A value of batteryNormal
            indicates that the remaining run-time is greater than
            upsConfigLowBattTime.  A value of batteryLow indicates
            that the remaining battery run-time is less than or
            equal to upsConfigLowBattTime.  A value of
            batteryDepleted 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 and the UPS is
            unable to sustain the output).(*)"
    ::= { upsBatterysixth 1 }

upsSecondsOnBatterysixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "sixths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If the unit is on battery power, the elapsed time
            since the UPS last switched to battery power, or the
            time since the network management subsystem was last
            restarted, whichever is less.  Zero shall be returned
            if the unit is not on battery power.(*)"
    ::= { upsBatterysixth 2 }

upsEstimatedMinutesRemainingsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the time to battery charge depletion
            under the present load conditions if the utility power
            is off and remains off, or if it were to be lost and
            remain off.(*)"
    ::= { upsBatterysixth 3 }

upsEstimatedChargeRemainingsixth OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the battery charge remaining expressed
            as a percent of full charge.(*)"
    ::= { upsBatterysixth 4 }

upsBatteryVoltagesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Volt DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present battery voltage.(*)"
    ::= { upsBatterysixth 5 }

upsBatteryCurrentsixth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present battery current.(*)"
    ::= { upsBatterysixth 6 }

upsBatteryTemperaturesixth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "degrees Centigrade"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ambient temperature at or near the UPS Battery
            casing.(*)"
    ::= { upsBatterysixth 7 }

upsBatteryRipplesixth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Volt RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present DC link RMS voltage ripple.(*)"
    ::= { upsBatterysixth 8 }

--
-- Input Group
--

upsInputLineBadssixth OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A count of the number of times the input entered an
            out-of-tolerance condition as defined by the
            manufacturer.  This count is incremented by one each
            time the input transitions from zero out-of-tolerance
            lines to one or more input lines out-of-tolerance.(*)"
    ::= { upsInputsixth 1 }

upsInputNumLinessixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of input lines utilized in this device.
            This variable indicates the number of rows in the
            input table.(*)"
    ::= { upsInputsixth 2 }

upsInputSixthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsInputSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of input table entries.  The number of entries
            is given by the value of upsInputNumLines.(*)"
    ::= { upsInputsixth 3 }

upsInputSixthEntry OBJECT-TYPE
    SYNTAX     UpsInputSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular input line.(*)"
    INDEX { upsInputLineIndexsixth }
    ::= { upsInputSixthTable 1 }

UpsInputSixthEntry ::= SEQUENCE {
    upsInputLineIndexsixth   PositiveInteger32,
    upsInputFrequencysixth   NonNegativeInteger32,
    upsInputVoltagesixth     NonNegativeInteger32,
    upsInputCurrentsixth     NonNegativeInteger32,
    upsInputTruePowersixth   NonNegativeInteger32,
    upsInputVoltageMinsixth  NonNegativeInteger32,
    upsInputVoltageMaxsixth  NonNegativeInteger32
}

upsInputLineIndexsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The input line identifier.(*)"
    ::= { upsInputSixthEntry 1 }

upsInputFrequencysixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present input frequency.(*)"
    ::= { upsInputSixthEntry 2 }

upsInputVoltagesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input voltage.(*)"
    ::= { upsInputSixthEntry 3 }

upsInputCurrentsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input current.(*)"
    ::= { upsInputSixthEntry 4 }

upsInputTruePowersixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input true power.(*)"
    ::= { upsInputSixthEntry 5 }

upsInputVoltageMinsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The lowest magnitude of the input voltage since last read out."
    ::= { upsInputSixthEntry 6 }

upsInputVoltageMaxsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The highest magnitude of the input voltage since last read out."
    ::= { upsInputSixthEntry 7 }

--
-- The Output group.
--

upsOutputSourcesixth OBJECT-TYPE
    SYNTAX     INTEGER {
        other(1),
        none(2),
        normal(3),
        bypass(4),
        battery(5),
        booster(6),
        reducer(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present source of output power.  The enumeration
            none(2) indicates that there is no source of output
            power (and therefore no output power), for example,
            the system has opened the output breaker.(*)"
    ::= { upsOutputsixth 1 }

upsOutputFrequencysixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output frequency.(*)"
    ::= { upsOutputsixth 2 }

upsOutputNumLinessixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of output lines utilized in this device.
            This variable indicates the number of rows in the
            output table.(*)"
    ::= { upsOutputsixth 3 }

upsOutputSixthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsOutputSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of output table entries.  The number of
            entries is given by the value of upsOutputNumLines.(*)"
    ::= { upsOutputsixth 4 }

upsOutputSixthEntry OBJECT-TYPE
    SYNTAX     UpsOutputSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular output line.(*)"
    INDEX { upsOutputLineIndexsixth }
    ::= { upsOutputSixthTable 1 }

UpsOutputSixthEntry ::= SEQUENCE {
    upsOutputLineIndexsixth   PositiveInteger32,
    upsOutputVoltagesixth     NonNegativeInteger32,
    upsOutputCurrentsixth     NonNegativeInteger32,
    upsOutputPowersixth       NonNegativeInteger32,
    upsOutputPercentLoadsixth Integer32,
    upsOutputPowerFactorsixth Integer32,
    upsOutputPeakCurrentsixth Integer32,
    upsOutputShareCurrentsixth Integer32
}

upsOutputLineIndexsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The output line identifier.(*)"
    ::= { upsOutputSixthEntry 1 }

upsOutputVoltagesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output voltage.(*)"
    ::= { upsOutputSixthEntry 2 }

upsOutputCurrentsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output current.(*)"
    ::= { upsOutputSixthEntry 3 }

upsOutputPowersixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output true power.(*)"
    ::= { upsOutputSixthEntry 4 }

upsOutputPercentLoadsixth OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The percentage of the UPS power capacity presently
            being used on this output line, i.e., the greater of
            the percent load of true power capacity and the
            percent load of VA.(*)"
    ::= { upsOutputSixthEntry 5 }

upsOutputPowerFactorsixth OBJECT-TYPE
    SYNTAX     Integer32 (-99..100)
    UNITS      "0.01 cos phi"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output power factor. 
             The returned value correspond to the cosf of the load.
             A positive value indicate an inductive load; 
             a negative value indicate a capacitive load; 
             value 1 indicate a resistive load. 
             If the measure is not available due to a small load for 
             a consistent calculation, the NA value is then returned.(*)"
    ::= { upsOutputSixthEntry 6 }
    
upsOutputPeakCurrentsixth OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output peak current.(*)"
    ::= { upsOutputSixthEntry 7 }

upsOutputShareCurrentsixth OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "In a parallel system ideally all the UPS are requested to 
            contribute to the load with the same amount of current, 
            i.e. with no current share. The current share occurs when an
            UPS exchanges some current with another UPS, so that this 
            current component doesn't feed the load. 
            The share part of the UPS current represents an undesired UPS
            loading, and therefore it should be minimized. If the share 
            current is too high, the UPS results overloaded and in some 
            conditions (i.e. very high load) the system could turn on 
            bypass reducing dramatically the global system reliability.
   PMAD detects the amount of share currents in a parallel system,
   generating an alarm if this value is above a parameter-based threshold.
   Single UPS systems don't have this feature, NA will be provided.(*)"
    ::= { upsOutputSixthEntry 8 }

--
-- The Bypass group generic.
--

upsBypassFrequencysixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass frequency.(*)"
    ::= { upsBypasssixth 1 }

upsBypassNumLinessixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of bypass lines utilized in this device.
            This entry indicates the number of rows in the bypass
            table.(*)"
    ::= { upsBypasssixth 2 }

upsBypassSixthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsBypassSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of bypass table entries.  The number of
            entries is given by the value of upsBypassNumLines.(*)"
    ::= { upsBypasssixth 3 }

upsBypassSixthEntry OBJECT-TYPE
    SYNTAX     UpsBypassSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular bypass input.(*)"
    INDEX { upsBypassLineIndexsixth }
    ::= { upsBypassSixthTable 1 }

UpsBypassSixthEntry ::= SEQUENCE {
    upsBypassLineIndexsixth  PositiveInteger32,
    upsBypassVoltagesixth    NonNegativeInteger32,
    upsBypassCurrentsixth    NonNegativeInteger32,
    upsBypassPowersixth      NonNegativeInteger32
}

upsBypassLineIndexsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The bypass line identifier.(*)"
    ::= { upsBypassSixthEntry 1 }

upsBypassVoltagesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass voltage.(*)"
    ::= { upsBypassSixthEntry 2 }

upsBypassCurrentsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass current.(*)"
    ::= { upsBypassSixthEntry 3 }

upsBypassPowersixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present true power conveyed by the bypass.(*)"
    ::= { upsBypassSixthEntry 4 }

--
-- The Alarm group generic.
--

upsAlarmsPresentsixth OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present number of active alarm conditions.(*)"
    ::= { upsAlarmsixth 1 }

upsAlarmSixthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsAlarmSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
            upsAlarmId equal to 1, and increments the value of
            upsAlarmId each time a new row is created, wrapping to
            the first free value greater than or equal to 1 when
            the maximum value of upsAlarmId would otherwise be
            exceeded.  Consequently, after multiple operations,
            the table may become sparse, e.g., containing entries
            for rows 95, 100, 101, and 203 and the entries should
            not be assumed to be in chronological order because
            upsAlarmId might have wrapped.

            Alarms are named by an AutonomousType (OBJECT
            IDENTIFIER), upsAlarmDescr, to allow a single table to
            reflect well known alarms plus alarms defined by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.  No
            two rows will have the same value of upsAlarmDescr,
            since alarms define conditions.  In order to meet this
            requirement, care should be taken in the definition of
            alarm conditions to insure that a system cannot enter
            the same condition multiple times simultaneously.

            The number of rows in the table at any given time is
            reflected by the value of upsAlarmsPresent.(*)"
    ::= { upsAlarmsixth 2 }

upsAlarmSixthEntry OBJECT-TYPE
    SYNTAX     UpsAlarmSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular alarm.(*)"
    INDEX { upsAlarmIdsixth }
    ::= { upsAlarmSixthTable 1 }

UpsAlarmSixthEntry ::= SEQUENCE {
    upsAlarmIdsixth          PositiveInteger32,
    upsAlarmDescrsixth       AutonomousType,
    upsAlarmTimesixth       TimeStamp
}

upsAlarmIdsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique identifier for an alarm condition.  This
            value must remain constant.(*)"
    ::= { upsAlarmSixthEntry 1 }

upsAlarmDescrsixth OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A reference to an alarm description object.  The
            object referenced should not be accessible, but rather
            be used to provide a unique description of the alarm
            condition.(*)"
    ::= { upsAlarmSixthEntry 2 }

upsAlarmTimesixth OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when the alarm condition was
            detected.  If the alarm condition was detected at the
            time of agent startup and presumably existed before
            agent startup, the value of upsAlarmTime shall equal
            0.(*)"
    ::= { upsAlarmSixthEntry 3 }

--
-- Well known alarm conditions generic.
--

upsAlarmBatteryBadsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement.(*)"
    ::= { upsWellKnownAlarmssixth  1 }

upsAlarmOnBatterysixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS is drawing power from the batteries.(*)"
    ::= { upsWellKnownAlarmssixth  2 }

upsAlarmLowBatterysixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime.(*)"
    ::= { upsWellKnownAlarmssixth  3 }

upsAlarmDepletedBatterysixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost.(*)"
    ::= { upsWellKnownAlarmssixth  4 }

upsAlarmTempBadsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A temperature is out of tolerance.(*)"
    ::= { upsWellKnownAlarmssixth  5 }

upsAlarmInputBadsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An input condition is out of tolerance.(*)"
    ::= { upsWellKnownAlarmssixth  6 }

upsAlarmOutputBadsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance.(*)"
    ::= { upsWellKnownAlarmssixth  7 }

upsAlarmOutputOverloadsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output load exceeds the UPS output capacity.(*)"
    ::= { upsWellKnownAlarmssixth  8 }

upsAlarmOnBypasssixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS.(*)"
    ::= { upsWellKnownAlarmssixth  9 }

upsAlarmBypassBadsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is out of tolerance.(*)"
    ::= { upsWellKnownAlarmssixth 10 }

upsAlarmOutputOffAsRequestedsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off.(*)"
    ::= { upsWellKnownAlarmssixth 11 }

upsAlarmUpsOffAsRequestedsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The entire UPS has shutdown as commanded.(*)"
    ::= { upsWellKnownAlarmssixth 12 }

upsAlarmChargerFailedsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem.(*)"
    ::= { upsWellKnownAlarmssixth 13 }

upsAlarmUpsOutputOffsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output of the UPS is in the off state.(*)"
    ::= { upsWellKnownAlarmssixth 14 }

upsAlarmUpsSystemOffsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS system is in the off state.(*)"
    ::= { upsWellKnownAlarmssixth 15 }

upsAlarmFanFailuresixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected.(*)"
    ::= { upsWellKnownAlarmssixth 16 }

upsAlarmFuseFailuresixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fuses has been detected.(*)"
    ::= { upsWellKnownAlarmssixth 17 }

upsAlarmGeneralFaultsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A general fault in the UPS has been detected.(*)"
    ::= { upsWellKnownAlarmssixth 18 }

upsAlarmDiagnosticTestFailedsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure.(*)"
    ::= { upsWellKnownAlarmssixth 19 }

upsAlarmCommunicationsLostsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem has been encountered in the communications
            between the agent and the UPS.(*)"
    ::= { upsWellKnownAlarmssixth 20 }

upsAlarmAwaitingPowersixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of input power.(*)"
    ::= { upsWellKnownAlarmssixth 21 }

upsAlarmShutdownPendingsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway.(*)"
    ::= { upsWellKnownAlarmssixth 22 }

upsAlarmShutdownImminentsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 sixths; this may be either a timed shutdown or a
            low battery shutdown.(*)"
    ::= { upsWellKnownAlarmssixth 23 }

upsAlarmTestInProgresssixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY.(*)"
    ::= { upsWellKnownAlarmssixth 24 }

upsAlarmReceptacleOffsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The receptacle are switch off    "
    ::= { upsWellKnownAlarmssixth 25 }

upsAlarmHighSpeedBusFailuresixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the High Speed Bus communication is detected"
    ::= { upsWellKnownAlarmssixth 26 }
    
upsAlarmHighSpeedBusJACRCFailuresixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JA is detected."
    ::= { upsWellKnownAlarmssixth 27 }
    
upsAlarmConnectivityBusFailuresixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected."
    ::= { upsWellKnownAlarmssixth 28 }

upsAlarmHighSpeedBusJBCRCFailuresixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JB is detected."
    ::= { upsWellKnownAlarmssixth 29 }

upsAlarmCurrentSharingsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high current sharing on the parallel system."
    ::= { upsWellKnownAlarmssixth 30 }
        
upsAlarmDCRipplesixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high ripple voltage on his DC link."
    ::= { upsWellKnownAlarmssixth 31 }

upsAlarmMaskAsixth OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Specifies which alarm can be handled by the UPS.
            The 'Mask' parameter is a Long Integer32. The meaning
            of every bit is the same as for the 'upsAlarmGroupA'
            command. A bit having value=1 indicates that the
            corresponding alarm is handled by the UPS."
    ::= { upsAlarmsixth 4 }

--
-- The Test Group generic
--

upsTestIdsixth OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The test is named by an OBJECT IDENTIFIER which
            allows a standard mechanism for the initiation of
            tests, including the well known tests identified in
            this document as well as those introduced by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.

            Setting this variable initiates the named test. Sets
            to this variable require the presence of
            upsTestSpinLock in the same SNMP message.

            The set request will be rejected with an appropriate
            error message if the requested test cannot be
            performed, including attempts to start a test when
            another test is already in progress.  The status of
            the current or last test is maintained in
            upsTestResultsSummary. Tests in progress may be
            aborted by setting the upsTestId variable to
            upsTestAbortTestInProgress.

            Read operations return the value of the name of the
            test in progress if a test is in progress or the name
            of the last test performed if no test is in progress,
            unless no test has been run, in which case the well
            known value upsTestNoTestsInitiated is returned.(*)"
    ::= { upsTestsixth 1 }

-- see [6] for more information on the semantics of objects with
-- syntax of TestAndIncr

upsTestSpinLocksixth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the test subsystem.  The spinlock is
            used as follows.

            Before starting a test, a manager-station should make
            sure that a test is not in progress as follows:

                tryagain:
                  get (upsTestSpinLock)
                  while (upsTestResultsSummary == inProgress) {
                    /* loop while a test is running for another
            manager */
                    short delay
                    get (upsTestSpinLock)
                  }
                  lockvalue = upsTestSpinLock
                  /* no test in progress, start the test */
                  set (upsTestSpinLock = lockvalue, upsTestId =
            requestedtest)
                  if (errorindex == 1) { /* (upsTestSpinLock
            failed) */
                    /* if problem is not access control, then
                        some other manager slipped in ahead of us
            */
                    goto tryagain
                  }
                  if (errorindex == 2) { /* (upsTestId) */
                    /* cannot perform the test */
                    give up
                  }
                  /* test started ok */
                  /* wait for test completion by polling
            upsTestResultsSummary */
                  get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  while (upsTestResultsSummary == inProgress) {
                    short delay
                    get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  }
                  /* when test completes, retrieve any additional
            test results */
                  /* if upsTestSpinLock == lockvalue + 1, then
            these are our test */
                  /* results (as opposed to another manager's */
                  The initial value of upsTestSpinLock at agent
            initialization shall
                  be 1.(*)"
    ::= { upsTestsixth 2 }

upsTestResultsSummarysixth OBJECT-TYPE
    SYNTAX     INTEGER {
        donePass(1),
        doneWarning(2),
        doneError(3),
        aborted(4),
        inProgress(5),
        noTestsInitiated(6)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The results of the current or last UPS diagnostics
            test performed.  The values for donePass(1),
            doneWarning(2), and doneError(3) indicate that the
            test completed either successfully, with a warning, or
            with an error, respectively.  The value aborted(4) is
            returned for tests which are aborted by setting the
            value of upsTestId to upsTestAbortTestInProgress.
            Tests which have not yet concluded are indicated by
            inProgress(5).  The value noTestsInitiated(6)
            indicates that no previous test results are available,
            such as is the case when no tests have been run since
            the last reinitialization of the network management
            subsystem and the system has no provision for non-
            volatile storage of test results.(*)"
    ::= { upsTestsixth 3 }

upsTestResultsDetailsixth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Additional information about upsTestResultsSummary.
            If no additional information available, a zero length
            string is returned.(*)"
    ::= { upsTestsixth 4 }

upsTestStartTimesixth OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time the test in
            progress was initiated, or, if no test is in progress,
            the time the previous test was initiated.  If the
            value of upsTestResultsSummary is noTestsInitiated(6),
            upsTestStartTime has the value 0.(*)"
    ::= { upsTestsixth 5 }

upsTestElapsedTimesixth OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time, in TimeTicks, since the test in
            progress was initiated, or, if no test is in progress,
            the previous test took to complete.  If the value of
            upsTestResultsSummary is noTestsInitiated(6),
            upsTestElapsedTime has the value 0.(*)"
    ::= { upsTestsixth 6 }

--
-- Well known tests generic.
--

upsTestNoTestsInitiatedsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "No tests have been initiated and no test is in
            progress.(*)"
    ::= { upsWellKnownTestssixth  1 }

upsTestAbortTestInProgresssixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The test in progress is to be aborted / the test in
            progress was aborted.(*)"
    ::= { upsWellKnownTestssixth  2 }

upsTestGeneralSystemsTestsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The manufacturer's standard test of UPS device
            systems.(*)"
    ::= { upsWellKnownTestssixth  3 }

upsTestQuickBatteryTestsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test that is sufficient to determine if the battery
            needs replacement.(*)"
    ::= { upsWellKnownTestssixth  4 }

upsTestDeepBatteryCalibrationsixth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The system is placed on battery to a discharge level,
            set by the manufacturer, sufficient to determine
            battery replacement and battery run-time with a high
            degree of confidence.  WARNING:  this test will leave
            the battery in a low charge state and will require
            time for recharging to a level sufficient to provide
            normal battery duration for the protected load.(*)"
    ::= { upsWellKnownTestssixth  5 }

--
-- The Control group generic.
--

upsShutdownTypesixth OBJECT-TYPE
    SYNTAX     INTEGER {
        output(1),
        system&#40;2&#41;
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object determines the nature of the action to be
            taken at the time when the countdown of the
            upsShutdownAfterDelay and upsRebootWithDuration
            objects reaches zero.

            Setting this object to output(1) indicates that
            shutdown requests should cause only the output of the
            UPS to turn off.  Setting this object to system&#40;2&#41;
            indicates that shutdown requests will cause the entire
            UPS system to turn off.(*)"
    ::= { upsControlsixth 1 }

upsShutdownAfterDelaysixth OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "sixths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will shutdown (i.e., turn off)
            either the UPS output or the UPS system &#40;as determined
            by the value of upsShutdownType at the time of
            shutdown&#41; after the indicated number of sixths, or
            less if the UPS batteries become depleted. Setting
            this object to 0 will cause the shutdown to occur
            immediately.  Setting this object to -1 will abort the
            countdown.  If the system is already in the desired
            state at the time the countdown reaches 0, then
            nothing will happen.  That is, there is no additional
            action at that time if upsShutdownType = system and
            the system is already off.  Similarly, there is no
            additional action at that time if upsShutdownType =
            output and the output is already off.  When read,
            upsShutdownAfterDelay will return the number of
            sixths remaining until shutdown, or -1 if no shutdown
            countdown is in effect.  On some systems, if the agent
            is restarted while a shutdown countdown is in effect,
            the countdown may be aborted.  Sets to this object
            override any upsShutdownAfterDelay already in effect.(*)"
    ::= { upsControlsixth 2 }

upsStartupAfterDelaysixth OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "sixths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will start the output after the
            indicated number of sixths, including starting the
            UPS, if necessary.  Setting this object to 0 will
            cause the startup to occur immediately.  Setting this
            object to -1 will abort the countdown.  If the output
            is already on at the time the countdown reaches 0,
            then nothing will happen.  Sets to this object
            override the effect of any upsStartupAfterDelay
            countdown or upsRebootWithDuration countdown in
            progress.  When read, upsStartupAfterDelay will return
            the number of sixths until startup, or -1 if no
            startup countdown is in effect.  If the countdown
            expires during a utility failure, the startup shall
            not occur until the utility power is restored.  On
            some systems, if the agent is restarted while a
            startup countdown is in effect, the countdown is
            aborted.(*)"
    ::= { upsControlsixth 3 }

upsRebootWithDurationsixth OBJECT-TYPE
    SYNTAX     Integer32 (-1..300)
    UNITS      "sixths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will immediately shutdown (i.e.,
            turn off) either the UPS output or the UPS system &#40;as
            determined by the value of upsShutdownType at the time
            of shutdown&#41; for a period equal to the indicated
            number of sixths, after which time the output will be
            started, including starting the UPS, if necessary.  If
            the number of sixths required to perform the request
            is greater than the requested duration, then the
            requested shutdown and startup cycle shall be
            performed in the minimum time possible, but in no case
            shall this require more than the requested duration
            plus 60 sixths.  When read, upsRebootWithDuration
            shall return the number of sixths remaining in the
            countdown, or -1 if no countdown is in progress.  If
            the startup should occur during a utility failure, the
            startup shall not occur until the utility power is
            restored.(*)"
    ::= { upsControlsixth 4 }

upsAutoRestartsixth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object to 'on' will cause the UPS system
            to restart after a shutdown if the shutdown occurred
            during a power loss as a result of either a
            upsShutdownAfterDelay or an internal battery depleted
            condition.  Setting this object to 'off' will prevent
            the UPS system from restarting after a shutdown until
            an operator manually or remotely explicitly restarts
            it.  If the UPS is in a startup or reboot countdown,
            then the UPS will not restart until that delay has
            been satisfied.(*)"
    ::= { upsControlsixth 5 }

upsReceptaclesNumsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of receptacles utilized in this device.
            This entry indicates the number of rows in the receptacle
            table."
    ::= { upsControlsixth 6 }

upsReceptacleSixthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsReceptacleSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of receptacle table entries.  The number of
            entries is given by the value of upsReceptacleNum."
    ::= { upsControlsixth 7 }

upsReceptacleSixthEntry OBJECT-TYPE
    SYNTAX     UpsReceptacleSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular receptacle."
    INDEX { upsReceptacleLineIndexsixth }
    ::= { upsReceptacleSixthTable 1 }

UpsReceptacleSixthEntry ::= SEQUENCE {
    upsReceptacleLineIndexsixth  PositiveInteger32,
    upsReceptacleOnOffsixth      INTEGER    
}

upsReceptacleLineIndexsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The receptacle line identifier."
    ::= { upsReceptacleSixthEntry 1 }

upsReceptacleOnOffsixth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the receptacle. Setting this 
             object to 'on' will cause the receptacle to be turned
             on. Setting this object to 'off' will turn the
             receptacle off. If the receptacle is already in the
             desired state nothing will happen. After an
             autorestart (see upsAutoRestart) the receptacle will
             be on."
    ::= { upsReceptacleSixthEntry 2 }

upsUPSModesixth OBJECT-TYPE
    SYNTAX     INTEGER {
        offLine(1),
        onLine(2),
        ecomode(3),
        iem(4)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The operation mode off the UPS. Off-line indicates a
            mode in which the input power is transferred to the
            output directly or via a step-up or step-down
            transformer. On-line mode indicates a mode in which 
            the output power is regenerated through some convertor.
            the operating mode of the UPS may be fixed, or may be
            selectable (e.g. an on-line UPS with ecomode)"
    ::= { upsControlsixth 8 }

upsRectifierOnOffsixth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the rectifier. Setting this 
             object to 'on' will cause the rectifier to be turned
             on. Setting this object to 'off' will turn the
             rectifier off. If the rectifier is already in the
             desired state nothing will happen. "
    ::= { upsControlsixth 9 }

upsBatteryChargeMethodsixth OBJECT-TYPE
    SYNTAX     INTEGER {
        normalcharge(1),
        boostcharge(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the charge method. Setting this 
             object to 'Normal charge' will cause the battery to be 
             charged using the normal method. Setting this object to 
             'Boost charge' will charge the battery in boost mode. 
             If the charge method is already in the desired state 
             nothing will happen. "
    ::= { upsControlsixth 10 }

upsInverterOnOffsixth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the inverter. Setting this 
             object to 'on' will cause the inverter to be turned
             on. Setting this object to 'off' will turn the
             inverter off. If the inverter is already in the
             desired state nothing will happen. "
    ::= { upsControlsixth 11 }

upsBypassOnOffsixth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the bypass. Setting this 
             object to 'on' will cause the bypass to be activated.
             Setting this object to 'off' will deactivate the
             bypass. If the UPS is already in the
             desired state nothing will happen. "
    ::= { upsControlsixth 12 }

upsLoadSourcesixth OBJECT-TYPE
    SYNTAX     INTEGER {
        onbypass(1),
        onInverter(2),
        onDetour(3),
        loadOff(4),
        other (5)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present source of the load. Setting this 
             object to 'On bypass' will cause the load to be 
             supplied by the bypass.
             Setting this object to 'On inverter' will cause the 
             load to be supplied by the inverter.
             If the load is already supplied by the desired 
             source nothing will happen. "
    ::= { upsControlsixth 13 }
 
--
-- The Configuration group generic.
--

upsConfigInputVoltagesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal input voltage.  On those
            systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigsixth 1 }

upsConfigInputFreqsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal input frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigsixth 2 }

upsConfigOutputVoltagesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal output voltage.  On
            those systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigsixth 3 }

upsConfigOutputFreqsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal output frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigsixth 4 }

upsConfigOutputVAsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Volt-Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal Volt-Amp rating.(*)"
    ::= { upsConfigsixth 5 }

upsConfigOutputPowersixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal true power rating.(*)"
    ::= { upsConfigsixth 6 }

upsConfigLowBattTimesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "minutes"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The value of upsEstimatedMinutesRemaining at which a
            lowBattery condition is declared.  For agents which
            support only discrete (discontinuous) values, then the
            agent shall round up to the next supported value.  If
            the requested value is larger than the largest
            supported value, then the largest supported value
            shall be selected.(*)"
    ::= { upsConfigsixth 7 }

upsConfigAudibleStatussixth OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2),
        muted(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The requested state of the audible alarm.  When in
            the disabled state, the audible alarm should never
            sound.  The enabled state is self-describing.  Setting
            this object to muted(3) when the audible alarm is
            sounding shall temporarily silence the alarm.  It will
            remain muted until it would normally stop sounding and
            the value returned for read operations during this
            period shall equal muted(3).  At the end of this
            period, the value shall revert to enabled(2).  Writes
            of the value muted(3) when the audible alarm is not
            sounding shall be accepted but otherwise shall have no
            effect.(*)"
    ::= { upsConfigsixth 8 }

upsConfigLowVoltageTransferPointsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The minimum input line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigsixth 9 }

upsConfigHighVoltageTransferPointsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigsixth 10 }

upsConfigBatteryCapacitysixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Amps Hours"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The installed battery capacity. This value is the 'factory'-value,
             not the value after calibration."
    ::= { upsConfigsixth 11 }

upsConfigBatteryChargeCurrentsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum battery charge current, including external chargers."
    ::= { upsConfigsixth 12 }      

upsConfigNoLoadShutdownsixth OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Dis- or enable 'no load' shutdown from the contact interface."
    ::= { upsConfigsixth 13 }
 
upsConfigStartDelaysixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"    
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Minimum required autonomy time before the UPS may perform an
             autorestart."
    ::= { upsConfigsixth 14 }

--
-- The GetSet group generic.
--

upsEventGetNextsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventSetStartingTimeStamp
            will be used as the start value of the table with the lowest index number."
    ::= { upsGetSetsixth 1 }

upsEventGetPrevioussixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventLastTime will
            be used as the last value of the table with the highest index number.

            Returns SNMPNOSUCHNAME for UPSs that don't support this command."
    ::= { upsGetSetsixth 2 }
    
upsEventSetStartingTimeStampsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The timestamp which is used as starting point for downloading
             events from the UPS event buffer"
    ::= { upsGetSetsixth 3 }    

upsEventRetreiveCurrentTimeStampsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current timestamp is retreived from the UPS"
    ::= { upsGetSetsixth 4 }    

upsEventTableSizesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the event table.
            This object indicates the number of rows in the event table."
    ::= { upsGetSetsixth 5 }

upsEventSixthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsEventSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of event table entries.  The number of entries is always
            10, and the value of upsEventTableSize gives the number of valid
            entries from the begging of the table.  Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..10)):

            PDU-SET upsSetStartingTimeStamp <time> 
            PDU-SET upsEventGetNext <number>
            PDU-GET upsEventTableSize
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 1
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 2
            ..
            PDU-GET upsEventCode,upsEventStatus,upsEventTime <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsEventTableSize.
            "
    ::= { upsGetSetsixth 6 }

upsEventSixthEntry OBJECT-TYPE
    SYNTAX     UpsEventSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular event."
    INDEX { upsEventLineIndexsixth }
    ::= { upsEventSixthTable 1 }

UpsEventSixthEntry ::= SEQUENCE {
    upsEventLineIndexsixth PositiveInteger32,
    upsEventCodesixth      Integer32,
    upsEventStatussixth    NonNegativeInteger32,
    upsEventTimesixth      NonNegativeInteger32
}

upsEventLineIndexsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The event line identifier."
    ::= { upsEventSixthEntry 1 }

upsEventCodesixth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The event code in numerical format."
    ::= { upsEventSixthEntry 2 }

upsEventStatussixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of the UPS at the moment that the event was generated.
             The format is specified at the 'upsStatus' command.
             If the UPS is not able to deliver status information, then
             SNMPNOSUCHNAME is returned."
    ::= { upsEventSixthEntry 3 }

upsEventTimesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The timestamp of the moment the event was generated."
    ::= { upsEventSixthEntry 4 }

upsParametersReadsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to retreive from the UPS.
            When this object is set the ParameterTable will be filled with the
            requested number of entries. The value upsParametersStartAddress
            will be used as the start value of the table with the lowest index 
            number."
    ::= { upsGetSetsixth 7 }

upsParametersWritesixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to write to the UPS.
            When this object is set the ParameterTable will be send to the ups. 
            The value upsParametersStartAddress will be used for the sixth value 
            of the table with the lowest index number."
    ::= { upsGetSetsixth 8 }

upsParametersStartAddresssixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The address which is used as starting point for downloading
             parameters from the UPS"
    ::= { upsGetSetsixth 9 }    

upsParameterTableSizesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the parameter table.
            This object indicates the number of rows in the parameter table."
    ::= { upsGetSetsixth 10 }

upsParameterSixthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsParameterSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of parameter entries. The number of entries is always
            16, and the value of upsParameterTableSize gives the number of valid
            entries from the begging of the table. Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..16)):

            Read sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParametersRead <number>
            PDU-GET upsParameterTableSize
            PDU-GET upsParameterValue 1
            PDU-GET upsParameterValue 2
            ..
            PDU-GET upsParameterValue <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsParameterTableSize.

            Write sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParameterValue 1
            PDU-SET upsParameterValue 2
            ..
            PDU-SET upsParameterValue <number>
            PDU-SET upsParametersWrite <number>
            "
    ::= { upsGetSetsixth 11 }

upsParameterSixthEntry OBJECT-TYPE
    SYNTAX     UpsParameterSixthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular parameter."
    INDEX { upsParameterLineIndexsixth }
    ::= { upsParameterSixthTable 1 }

UpsParameterSixthEntry ::= SEQUENCE {
    upsParameterLineIndexsixth PositiveInteger32,
    upsParameterValuesixth     Integer32   
}

upsParameterLineIndexsixth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The parameter line identifier."
    ::= { upsParameterSixthEntry 1 }

upsParameterValuesixth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The parameter value in numerical format."
    ::= { upsParameterSixthEntry 2 }

upsStatussixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The global UPS status is returned. Every bit reflects a specific 
             status condition. Unused bits returns as 0. The status value can 
             also be found on other commands. The value SNMPNOSUCHNAME means 
             'invalid status' or 'status value non available'.

             Status
                     1  0000 0001h upsStatusEcomodeIsOn
                     2  0000 0002h upsStatusBatteryIsCharging
                     4  0000 0004h upsStatusBatteryIsDischarging
                     8  0000 0008h upsStatusAlarmIsActive
                    16  0000 0010h upsStatusRectifierIsOn
                    32  0000 0020h upsStatusLowBattery
                    64  0000 0040h upsStatusOnBypass
                   128  0000 0080h upsStatusMainsBypassOK
                   256  0000 0100h upsStatusMainsRectifierOK
                   512  0000 0200h upsStatusDetourIsOn
                  1024  0000 0400h upsStatusAcousticAlarmIsOn
                  2048  0000 0800h upsStatusGlobalServiceCheck
                  4096  0000 1000h upsStatusInverterIsOn
                  8192  0000 2000h upsStatusNotInParallel (Q1 open)
                 16384  0000 4000h upsStatusResetLoadOff
                 32768  0000 8000h upsStatusLoadOff 
                 65536  0001 0000h upsStatusBoostMode 
                131072  0002 0000h upsStatusBuckMode 
                262144  0004 0000h upsStatusIemModeIsOn 
                524288  0008 0000h upsStatus5thFilterIsOn 
               1048576  0010 0000h upsStatus11thFilterIsOn
               2097152  0020 0000h upsStatus2ndRectifierBridgeIsOn
               4194304  0040 0000h - reserved -
               8388608  0080 0000h - reserved -
              16777216  0100 0000h - reserved -
              33554432  0200 0000h - reserved -
              67108864  0400 0000h - reserved -
             134217728  0800 0000h - reserved -
             268435456  1000 0000h upsGlobalParallelValues "
    ::= { upsGetSetsixth 12 }

upsMainsStatisticsMBfailsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of main bypass failures (>200 ms), since UPS installation."
    ::= { upsGetSetsixth 13 }

upsMainsStatisticsMRfailsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of mains rectifier failures (>200 ms), since UPS installation."
    ::= { upsGetSetsixth 14 }
  
upsMainsStatisticsB2sixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (0..2 ms), during the last 7 days."
    ::= { upsGetSetsixth 15 }

upsMainsStatisticsB5sixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (2..5 ms), during the last 7 days."
    ::= { upsGetSetsixth 16 }

upsMainsStatisticsB10sixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (5..10 ms), during the last 7 days."
    ::= { upsGetSetsixth 17 }

upsMainsStatisticsB200sixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (10..200 ms), during the last 7 days."
    ::= { upsGetSetsixth 18 }

upsMainsStatisticsBypRelsixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bypass reliability degree [0..100%;255]. The value NOSUCHNAME means 'not available'."
    ::= { upsGetSetsixth 19 }

upsTimesixth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The current timestamp (or real-time) of the UPS. For the format, 
             see 'Timestamp' specifications. The write-command has to comply with the 
             correct timestamp format expected by the UPS (counter value or real-time-clock 
             value). Missing to doing so will result in a SNMPsixthERROR, 
             meaning 'command not supported'. It is possible to know which is the timestamp 
             format supported by the UPS, by issuing a read-command or by reading events, 
             which includes timestamps."
    ::= { upsGetSetsixth 20 }

upsRequestPermissionsixth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An encrypted code is send to enable use of restricted write objects during
             a limited period of time."
    ::= { upsGetSetsixth 21 }
    
upsEventGetCodesixth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The code which is used as starting point to downloading the events from the 
            UPS event buffer."
    ::= { upsGetSetsixth 22 }    
    
upsEventSpinLocksixth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the event subsystem. "

    ::= { upsGetSetsixth 23 }
    
upsParameterSpinLocksixth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the parameters subsystem. "

    ::= { upsGetSetsixth 24 }


--
-- GE Trap group generic
--

upsTrapAlarmBatteryBadsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement."
    ::= { geUPSTrapssixth 1 }

upsTrapAlarmOnBatterysixth NOTIFICATION-TYPE
    OBJECTS  { upsSecondsOnBatterysixth  }
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from the batteries."
    ::= { geUPSTrapssixth 2 }

upsTrapAlarmLowBatterysixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime."
    ::= { geUPSTrapssixth 3 }

upsTrapAlarmDepletedBatterysixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost)"
    ::= { geUPSTrapssixth 4 }

upsTrapAlarmTempBadsixth NOTIFICATION-TYPE
    OBJECTS  { upsBatteryTemperature }
    STATUS  current
    DESCRIPTION
            "A temperature is out of tolerance."
    ::= { geUPSTrapssixth 5 }

upsTrapAlarmInputBadsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input condition is out of tolerance."
    ::= { geUPSTrapssixth 6 }

upsTrapAlarmOutputBadsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance."
    ::= { geUPSTrapssixth 7 }

upsTrapAlarmOutputOverloadsixth NOTIFICATION-TYPE
    OBJECTS  { upsOutputNumLinessixth, upsOutputPercentLoadsixth }
    STATUS  current
    DESCRIPTION
            "The output load exceeds the UPS output capacity."
    ::= { geUPSTrapssixth 8 }

upsTrapAlarmOnBypasssixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS."
    ::= { geUPSTrapssixth 9 }

upsTrapAlarmBypassBadsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is out of tolerance."
    ::= { geUPSTrapssixth 10 }

upsTrapAlarmOutputOffAsRequestedsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off."
    ::= { geUPSTrapssixth 11 }

upsTrapAlarmUpsOffAsRequestedsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The entire UPS has shutdown as commanded."
    ::= { geUPSTrapssixth 12 }

upsTrapAlarmChargerFailedsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem."
    ::= { geUPSTrapssixth 13 }

upsTrapAlarmUpsOutputOffsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS is in the off state."
    ::= { geUPSTrapssixth 14 }

upsTrapAlarmUpsSystemOffsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is in the off state."
    ::= { geUPSTrapssixth 15 }

upsTrapAlarmFanFailuresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected."
    ::= { geUPSTrapssixth 16 }

upsTrapAlarmFuseFailuresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fuses has been detected."
    ::= { geUPSTrapssixth 17 }

upsTrapAlarmGeneralFaultsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault in the UPS has been detected."
    ::= { geUPSTrapssixth 18 }

upsTrapAlarmDiagnosticTestFailedsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure."
    ::= { geUPSTrapssixth 19 }

upsTrapAlarmCommunicationsLostsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem has been encountered in the communication
            between the agent and the UPS."
    ::= { geUPSTrapssixth 20 }
    
upsTrapAlarmAwaitingPowersixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of the input power (*)."
    ::= { geUPSTrapssixth 21 }

upsTrapAlarmShutdownPendingsixth NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelaysixth }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway."
    ::= { geUPSTrapssixth 22 }

upsTrapAlarmShutdownImminentsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 sixths; this may be either a timed shutdown or a
            low battery shutdown."
    ::= { geUPSTrapssixth 23 }

upsTrapAlarmTestInProgresssixth NOTIFICATION-TYPE
    OBJECTS  { upsTestIdsixth }
    STATUS  current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY."
    ::= { geUPSTrapssixth 24 }

upsTrapAlarmReceptacleOffsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched off."
    ::= { geUPSTrapssixth 25 }

upsTrapAlarmHighspeedBusFailuresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is detected."
    ::= { geUPSTrapssixth 26 }

upsTrapAlarmHighspeedBusJACRCFailuresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is detected."
    ::= { geUPSTrapssixth 27 }
     
upsTrapAlarmConnectivityBusFailuresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected."
    ::= { geUPSTrapssixth 28 }

upsTrapAlarmHighspeedBusJBCRCFailuresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
     ::= { geUPSTrapssixth 29 }

upsTrapAlarmCurrentSharingFailuresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is detected."
     ::= { geUPSTrapssixth 30 }
     
upsTrapAlarmDCRippleFailuresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is detected."
     ::= { geUPSTrapssixth 31 }

upsTrapAlarmBatteryBadRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Battery bad condition is restored."
    ::= { geUPSTrapssixth 33 }

upsTrapAlarmOnBatteryRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from mains again."
    ::= { geUPSTrapssixth 34 }

upsTrapAlarmLowBatteryRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Low Battery condition is restored."
    ::= { geUPSTrapssixth 35 }

upsTrapAlarmDepletedBatteryRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Depleted Battery condition is restored."
    ::= { geUPSTrapssixth 36 }

upsTrapAlarmTempBadRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A bad temperature condition is restored."
    ::= { geUPSTrapssixth 37 }

upsTrapAlarmInputBadRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input bad condition is restored."
    ::= { geUPSTrapssixth 38 }

upsTrapAlarmOutputBadRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output bad condition is restored."
    ::= { geUPSTrapssixth 39 }

upsTrapAlarmOutputOverloadRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output overload condition is restored."
    ::= { geUPSTrapssixth 40 }

upsTrapAlarmOnBypassRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An On Bypass condition is restored."
    ::= { geUPSTrapssixth 41 }

upsTrapAlarmBypassBadRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Bypass bad condition is restored."
    ::= { geUPSTrapssixth 42 }

upsTrapAlarmOutputOffAsRequestedRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A request shutdown has been restored."
    ::= { geUPSTrapssixth 43 }

upsTrapAlarmUpsOffAsRequestedRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A entire UPS command has been restored."
    ::= { geUPSTrapssixth 44 }

upsTrapAlarmChargerFailedRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Charger Failer condition is restored."
    ::= { geUPSTrapssixth 45 }

upsTrapAlarmUpsOutputOnsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS switched in the on state."
    ::= { geUPSTrapssixth 46 }

upsTrapAlarmUpsSystemOnsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is switched in the on state."
    ::= { geUPSTrapssixth 47 }

upsTrapAlarmFanFailureRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fan failure condition is restored."
    ::= { geUPSTrapssixth 48 }

upsTrapAlarmFuseFailureRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fuse failure condition is restored."
    ::= { geUPSTrapssixth 49 }

upsTrapAlarmGeneralFaultRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault is restored."
    ::= { geUPSTrapssixth 50 }

upsTrapAlarmDiagnosticTestFailedRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A last diagnostic test indicates a failure is 
            restored."
    ::= { geUPSTrapssixth 51 }

upsTrapAlarmCommunicationsLostRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem in the communication between the agent 
            and the UPS is restored."
    ::= { geUPSTrapssixth 52 }
    
upsTrapAlarmAwaitingPowerRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A awaiting power condition is restored (*)."
    ::= { geUPSTrapssixth 53 }

upsTrapAlarmShutdownPendingRestoredsixth NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelaysixth }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is restored."
    ::= { geUPSTrapssixth 54 }

upsTrapAlarmShutdownImminentRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A shutdown imminent condition is restored."
    ::= { geUPSTrapssixth 55 }

upsTrapAlarmTestInProgressRestoredsixth NOTIFICATION-TYPE
    OBJECTS  { upsTestIdsixth }
    STATUS  current
    DESCRIPTION
            "The test is in progress is terminated."
    ::= { geUPSTrapssixth 56 }

upsTrapAlarmReceptacleOnsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched on."
    ::= { geUPSTrapssixth 57 }

upsTrapAlarmHighspeedBusRestoresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is restored."
    ::= { geUPSTrapssixth 58 }

upsTrapAlarmHighspeedBusJACRCRestoresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is restored."
    ::= { geUPSTrapssixth 59 }
     
upsTrapAlarmConnectivityBusRestoresixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is restored."
    ::= { geUPSTrapssixth 60 }
 
upsTrapAlarmHighspeedBusJBCRCRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is restored."
     ::= { geUPSTrapssixth 61 }

upsTrapAlarmCurrentSharingRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is restored."
     ::= { geUPSTrapssixth 62 }
     
upsTrapAlarmDCRippleRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is restored."
     ::= { geUPSTrapssixth 63 }
     
upsTrapAlarmValueLowsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value below its low-level threshold."
    ::= { geUPSTrapssixth 129 }

upsTrapAlarmValueHighsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value higher than its high-level threshold."
    ::= { geUPSTrapssixth 130 }

upsTrapAlarmValueLowRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueLow alarm condition is restored."
    ::= { geUPSTrapssixth 133 }

upsTrapAlarmValueHighRestoredsixth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueHigh alarm condition is restored."
    ::= { geUPSTrapssixth 134 }


--
-- Diagnostic Group Generic
--

upsDiagnosticBusJACommunicationStatussixth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticsixth 1 }
    
upsDiagnosticBusJBCommunicationStatussixth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticsixth 2 }
  
upsDiagnosticBatteryLifetimesixth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsixth 3 }

upsDiagnosticFansLifetimesixth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsixth 4 } 
    
upsDiagnosticDCcapacitorsLifetimesixth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsixth 5 }  
    
upsDiagnosticACcapacitorsLifetimesixth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsixth 6 }
    
upsDiagnosticGlobalServiceChecksixth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticsixth 7 }

--
-- The Device Identification group. Seventh
--      All objects in this group except for upsIdentName and
--      upsIdentAttachedDevices are set at device initialization
--      and remain static.
--

upsIdentManufacturerseventh OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the UPS manufacturer.(*)"
    ::= { upsIdentseventh 1 }

upsIdentModelseventh OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS Model designation.(*)"
    ::= { upsIdentseventh 2 }

upsIdentUPSSoftwareVersionseventh OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS firmware/software version(s).  This variable
            may or may not have the same value as
            upsIdentAgentSoftwareVersion in some implementations.(*)"
    ::= { upsIdentseventh 3 }

upsIdentAgentSoftwareVersionseventh OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS agent software version.  This variable may or
            may not have the same value as
            upsIdentUPSSoftwareVersion in some implementations.(*)"
    ::= { upsIdentseventh 4 }

upsIdentNameseventh OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the UPS.  This object should be
            set by the administrator.(*)"
    ::= { upsIdentseventh 5 }

upsIdentAttachedDevicesseventh OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the devices attached to the
            output(s) of the UPS.  This object should be set by
            the administrator.(*)"
    ::= { upsIdentseventh 6 }

upsIdentUPSSerialNumberseventh OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS serial number"
    ::= { upsIdentseventh 7 }
    
upsIdentComProtVersionseventh OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IMV communication protocol version"
    ::= { upsIdentseventh 8 } 
  
upsIdentOperatingTimeseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "sevenths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present value of the operating time.
             total 'on' time since UPS manufactured"
    ::= { upsIdentseventh 9 } 
    
--
-- Battery Group Generic
--

upsBatteryStatusseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        batteryNormal(2),
        batteryLow(3),
        batteryDepleted(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The indication of the capacity remaining in the UPS
            system's batteries.   A value of batteryNormal
            indicates that the remaining run-time is greater than
            upsConfigLowBattTime.  A value of batteryLow indicates
            that the remaining battery run-time is less than or
            equal to upsConfigLowBattTime.  A value of
            batteryDepleted 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 and the UPS is
            unable to sustain the output).(*)"
    ::= { upsBatteryseventh 1 }

upsSecondsOnBatteryseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "sevenths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If the unit is on battery power, the elapsed time
            since the UPS last switched to battery power, or the
            time since the network management subsystem was last
            restarted, whichever is less.  Zero shall be returned
            if the unit is not on battery power.(*)"
    ::= { upsBatteryseventh 2 }

upsEstimatedMinutesRemainingseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the time to battery charge depletion
            under the present load conditions if the utility power
            is off and remains off, or if it were to be lost and
            remain off.(*)"
    ::= { upsBatteryseventh 3 }

upsEstimatedChargeRemainingseventh OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the battery charge remaining expressed
            as a percent of full charge.(*)"
    ::= { upsBatteryseventh 4 }

upsBatteryVoltageseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Volt DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present battery voltage.(*)"
    ::= { upsBatteryseventh 5 }

upsBatteryCurrentseventh OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present battery current.(*)"
    ::= { upsBatteryseventh 6 }

upsBatteryTemperatureseventh OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "degrees Centigrade"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ambient temperature at or near the UPS Battery
            casing.(*)"
    ::= { upsBatteryseventh 7 }

upsBatteryRippleseventh OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Volt RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present DC link RMS voltage ripple.(*)"
    ::= { upsBatteryseventh 8 }

--
-- Input Group
--

upsInputLineBadsseventh OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A count of the number of times the input entered an
            out-of-tolerance condition as defined by the
            manufacturer.  This count is incremented by one each
            time the input transitions from zero out-of-tolerance
            lines to one or more input lines out-of-tolerance.(*)"
    ::= { upsInputseventh 1 }

upsInputNumLinesseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of input lines utilized in this device.
            This variable indicates the number of rows in the
            input table.(*)"
    ::= { upsInputseventh 2 }

upsInputSeventhTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsInputSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of input table entries.  The number of entries
            is given by the value of upsInputNumLines.(*)"
    ::= { upsInputseventh 3 }

upsInputSeventhEntry OBJECT-TYPE
    SYNTAX     UpsInputSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular input line.(*)"
    INDEX { upsInputLineIndexseventh }
    ::= { upsInputSeventhTable 1 }

UpsInputSeventhEntry ::= SEQUENCE {
    upsInputLineIndexseventh   PositiveInteger32,
    upsInputFrequencyseventh   NonNegativeInteger32,
    upsInputVoltageseventh     NonNegativeInteger32,
    upsInputCurrentseventh     NonNegativeInteger32,
    upsInputTruePowerseventh   NonNegativeInteger32,
    upsInputVoltageMinseventh  NonNegativeInteger32,
    upsInputVoltageMaxseventh  NonNegativeInteger32
}

upsInputLineIndexseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The input line identifier.(*)"
    ::= { upsInputSeventhEntry 1 }

upsInputFrequencyseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present input frequency.(*)"
    ::= { upsInputSeventhEntry 2 }

upsInputVoltageseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input voltage.(*)"
    ::= { upsInputSeventhEntry 3 }

upsInputCurrentseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input current.(*)"
    ::= { upsInputSeventhEntry 4 }

upsInputTruePowerseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input true power.(*)"
    ::= { upsInputSeventhEntry 5 }

upsInputVoltageMinseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The lowest magnitude of the input voltage since last read out."
    ::= { upsInputSeventhEntry 6 }

upsInputVoltageMaxseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The highest magnitude of the input voltage since last read out."
    ::= { upsInputSeventhEntry 7 }

--
-- The Output group.
--

upsOutputSourceseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        other(1),
        none(2),
        normal(3),
        bypass(4),
        battery(5),
        booster(6),
        reducer(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present source of output power.  The enumeration
            none(2) indicates that there is no source of output
            power (and therefore no output power), for example,
            the system has opened the output breaker.(*)"
    ::= { upsOutputseventh 1 }

upsOutputFrequencyseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output frequency.(*)"
    ::= { upsOutputseventh 2 }

upsOutputNumLinesseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of output lines utilized in this device.
            This variable indicates the number of rows in the
            output table.(*)"
    ::= { upsOutputseventh 3 }

upsOutputSeventhTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsOutputSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of output table entries.  The number of
            entries is given by the value of upsOutputNumLines.(*)"
    ::= { upsOutputseventh 4 }

upsOutputSeventhEntry OBJECT-TYPE
    SYNTAX     UpsOutputSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular output line.(*)"
    INDEX { upsOutputLineIndexseventh }
    ::= { upsOutputSeventhTable 1 }

UpsOutputSeventhEntry ::= SEQUENCE {
    upsOutputLineIndexseventh   PositiveInteger32,
    upsOutputVoltageseventh     NonNegativeInteger32,
    upsOutputCurrentseventh     NonNegativeInteger32,
    upsOutputPowerseventh       NonNegativeInteger32,
    upsOutputPercentLoadseventh Integer32,
    upsOutputPowerFactorseventh Integer32,
    upsOutputPeakCurrentseventh Integer32,
    upsOutputShareCurrentseventh Integer32
}

upsOutputLineIndexseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The output line identifier.(*)"
    ::= { upsOutputSeventhEntry 1 }

upsOutputVoltageseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output voltage.(*)"
    ::= { upsOutputSeventhEntry 2 }

upsOutputCurrentseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output current.(*)"
    ::= { upsOutputSeventhEntry 3 }

upsOutputPowerseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output true power.(*)"
    ::= { upsOutputSeventhEntry 4 }

upsOutputPercentLoadseventh OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The percentage of the UPS power capacity presently
            being used on this output line, i.e., the greater of
            the percent load of true power capacity and the
            percent load of VA.(*)"
    ::= { upsOutputSeventhEntry 5 }

upsOutputPowerFactorseventh OBJECT-TYPE
    SYNTAX     Integer32 (-99..100)
    UNITS      "0.01 cos phi"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output power factor. 
             The returned value correspond to the cosf of the load.
             A positive value indicate an inductive load; 
             a negative value indicate a capacitive load; 
             value 1 indicate a resistive load. 
             If the measure is not available due to a small load for 
             a consistent calculation, the NA value is then returned.(*)"
    ::= { upsOutputSeventhEntry 6 }
    
upsOutputPeakCurrentseventh OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output peak current.(*)"
    ::= { upsOutputSeventhEntry 7 }

upsOutputShareCurrentseventh OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "In a parallel system ideally all the UPS are requested to 
            contribute to the load with the same amount of current, 
            i.e. with no current share. The current share occurs when an
            UPS exchanges some current with another UPS, so that this 
            current component doesn't feed the load. 
            The share part of the UPS current represents an undesired UPS
            loading, and therefore it should be minimized. If the share 
            current is too high, the UPS results overloaded and in some 
            conditions (i.e. very high load) the system could turn on 
            bypass reducing dramatically the global system reliability.
   PMAD detects the amount of share currents in a parallel system,
   generating an alarm if this value is above a parameter-based threshold.
   Single UPS systems don't have this feature, NA will be provided.(*)"
    ::= { upsOutputSeventhEntry 8 }

--
-- The Bypass group generic.
--

upsBypassFrequencyseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass frequency.(*)"
    ::= { upsBypassseventh 1 }

upsBypassNumLinesseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of bypass lines utilized in this device.
            This entry indicates the number of rows in the bypass
            table.(*)"
    ::= { upsBypassseventh 2 }

upsBypassSeventhTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsBypassSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of bypass table entries.  The number of
            entries is given by the value of upsBypassNumLines.(*)"
    ::= { upsBypassseventh 3 }

upsBypassSeventhEntry OBJECT-TYPE
    SYNTAX     UpsBypassSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular bypass input.(*)"
    INDEX { upsBypassLineIndexseventh }
    ::= { upsBypassSeventhTable 1 }

UpsBypassSeventhEntry ::= SEQUENCE {
    upsBypassLineIndexseventh  PositiveInteger32,
    upsBypassVoltageseventh    NonNegativeInteger32,
    upsBypassCurrentseventh    NonNegativeInteger32,
    upsBypassPowerseventh      NonNegativeInteger32
}

upsBypassLineIndexseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The bypass line identifier.(*)"
    ::= { upsBypassSeventhEntry 1 }

upsBypassVoltageseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass voltage.(*)"
    ::= { upsBypassSeventhEntry 2 }

upsBypassCurrentseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass current.(*)"
    ::= { upsBypassSeventhEntry 3 }

upsBypassPowerseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present true power conveyed by the bypass.(*)"
    ::= { upsBypassSeventhEntry 4 }

--
-- The Alarm group generic.
--

upsAlarmsPresentseventh OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present number of active alarm conditions.(*)"
    ::= { upsAlarmseventh 1 }

upsAlarmSeventhTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsAlarmSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
            upsAlarmId equal to 1, and increments the value of
            upsAlarmId each time a new row is created, wrapping to
            the first free value greater than or equal to 1 when
            the maximum value of upsAlarmId would otherwise be
            exceeded.  Consequently, after multiple operations,
            the table may become sparse, e.g., containing entries
            for rows 95, 100, 101, and 203 and the entries should
            not be assumed to be in chronological order because
            upsAlarmId might have wrapped.

            Alarms are named by an AutonomousType (OBJECT
            IDENTIFIER), upsAlarmDescr, to allow a single table to
            reflect well known alarms plus alarms defined by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.  No
            two rows will have the same value of upsAlarmDescr,
            since alarms define conditions.  In order to meet this
            requirement, care should be taken in the definition of
            alarm conditions to insure that a system cannot enter
            the same condition multiple times simultaneously.

            The number of rows in the table at any given time is
            reflected by the value of upsAlarmsPresent.(*)"
    ::= { upsAlarmseventh 2 }

upsAlarmSeventhEntry OBJECT-TYPE
    SYNTAX     UpsAlarmSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular alarm.(*)"
    INDEX { upsAlarmIdseventh }
    ::= { upsAlarmSeventhTable 1 }

UpsAlarmSeventhEntry ::= SEQUENCE {
    upsAlarmIdseventh          PositiveInteger32,
    upsAlarmDescrseventh       AutonomousType,
    upsAlarmTimeseventh       TimeStamp
}

upsAlarmIdseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique identifier for an alarm condition.  This
            value must remain constant.(*)"
    ::= { upsAlarmSeventhEntry 1 }

upsAlarmDescrseventh OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A reference to an alarm description object.  The
            object referenced should not be accessible, but rather
            be used to provide a unique description of the alarm
            condition.(*)"
    ::= { upsAlarmSeventhEntry 2 }

upsAlarmTimeseventh OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when the alarm condition was
            detected.  If the alarm condition was detected at the
            time of agent startup and presumably existed before
            agent startup, the value of upsAlarmTime shall equal
            0.(*)"
    ::= { upsAlarmSeventhEntry 3 }

--
-- Well known alarm conditions generic.
--

upsAlarmBatteryBadseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement.(*)"
    ::= { upsWellKnownAlarmsseventh  1 }

upsAlarmOnBatteryseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS is drawing power from the batteries.(*)"
    ::= { upsWellKnownAlarmsseventh  2 }

upsAlarmLowBatteryseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime.(*)"
    ::= { upsWellKnownAlarmsseventh  3 }

upsAlarmDepletedBatteryseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost.(*)"
    ::= { upsWellKnownAlarmsseventh  4 }

upsAlarmTempBadseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A temperature is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsseventh  5 }

upsAlarmInputBadseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An input condition is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsseventh  6 }

upsAlarmOutputBadseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance.(*)"
    ::= { upsWellKnownAlarmsseventh  7 }

upsAlarmOutputOverloadseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output load exceeds the UPS output capacity.(*)"
    ::= { upsWellKnownAlarmsseventh  8 }

upsAlarmOnBypassseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS.(*)"
    ::= { upsWellKnownAlarmsseventh  9 }

upsAlarmBypassBadseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is out of tolerance.(*)"
    ::= { upsWellKnownAlarmsseventh 10 }

upsAlarmOutputOffAsRequestedseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off.(*)"
    ::= { upsWellKnownAlarmsseventh 11 }

upsAlarmUpsOffAsRequestedseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The entire UPS has shutdown as commanded.(*)"
    ::= { upsWellKnownAlarmsseventh 12 }

upsAlarmChargerFailedseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem.(*)"
    ::= { upsWellKnownAlarmsseventh 13 }

upsAlarmUpsOutputOffseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output of the UPS is in the off state.(*)"
    ::= { upsWellKnownAlarmsseventh 14 }

upsAlarmUpsSystemOffseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS system is in the off state.(*)"
    ::= { upsWellKnownAlarmsseventh 15 }

upsAlarmFanFailureseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected.(*)"
    ::= { upsWellKnownAlarmsseventh 16 }

upsAlarmFuseFailureseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fuses has been detected.(*)"
    ::= { upsWellKnownAlarmsseventh 17 }

upsAlarmGeneralFaultseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A general fault in the UPS has been detected.(*)"
    ::= { upsWellKnownAlarmsseventh 18 }

upsAlarmDiagnosticTestFailedseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure.(*)"
    ::= { upsWellKnownAlarmsseventh 19 }

upsAlarmCommunicationsLostseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem has been encountered in the communications
            between the agent and the UPS.(*)"
    ::= { upsWellKnownAlarmsseventh 20 }

upsAlarmAwaitingPowerseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of input power.(*)"
    ::= { upsWellKnownAlarmsseventh 21 }

upsAlarmShutdownPendingseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway.(*)"
    ::= { upsWellKnownAlarmsseventh 22 }

upsAlarmShutdownImminentseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 sevenths; this may be either a timed shutdown or a
            low battery shutdown.(*)"
    ::= { upsWellKnownAlarmsseventh 23 }

upsAlarmTestInProgressseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY.(*)"
    ::= { upsWellKnownAlarmsseventh 24 }

upsAlarmReceptacleOffseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The receptacle are switch off    "
    ::= { upsWellKnownAlarmsseventh 25 }

upsAlarmHighSpeedBusFailureseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the High Speed Bus communication is detected"
    ::= { upsWellKnownAlarmsseventh 26 }
    
upsAlarmHighSpeedBusJACRCFailureseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JA is detected."
    ::= { upsWellKnownAlarmsseventh 27 }
    
upsAlarmConnectivityBusFailureseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected."
    ::= { upsWellKnownAlarmsseventh 28 }

upsAlarmHighSpeedBusJBCRCFailureseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JB is detected."
    ::= { upsWellKnownAlarmsseventh 29 }

upsAlarmCurrentSharingseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high current sharing on the parallel system."
    ::= { upsWellKnownAlarmsseventh 30 }
        
upsAlarmDCRippleseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high ripple voltage on his DC link."
    ::= { upsWellKnownAlarmsseventh 31 }

upsAlarmMaskAseventh OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Specifies which alarm can be handled by the UPS.
            The 'Mask' parameter is a Long Integer32. The meaning
            of every bit is the same as for the 'upsAlarmGroupA'
            command. A bit having value=1 indicates that the
            corresponding alarm is handled by the UPS."
    ::= { upsAlarmseventh 4 }

--
-- The Test Group generic
--

upsTestIdseventh OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The test is named by an OBJECT IDENTIFIER which
            allows a standard mechanism for the initiation of
            tests, including the well known tests identified in
            this document as well as those introduced by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.

            Setting this variable initiates the named test. Sets
            to this variable require the presence of
            upsTestSpinLock in the same SNMP message.

            The set request will be rejected with an appropriate
            error message if the requested test cannot be
            performed, including attempts to start a test when
            another test is already in progress.  The status of
            the current or last test is maintained in
            upsTestResultsSummary. Tests in progress may be
            aborted by setting the upsTestId variable to
            upsTestAbortTestInProgress.

            Read operations return the value of the name of the
            test in progress if a test is in progress or the name
            of the last test performed if no test is in progress,
            unless no test has been run, in which case the well
            known value upsTestNoTestsInitiated is returned.(*)"
    ::= { upsTestseventh 1 }

-- see [6] for more information on the semantics of objects with
-- syntax of TestAndIncr

upsTestSpinLockseventh OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the test subsystem.  The spinlock is
            used as follows.

            Before starting a test, a manager-station should make
            sure that a test is not in progress as follows:

                tryagain:
                  get (upsTestSpinLock)
                  while (upsTestResultsSummary == inProgress) {
                    /* loop while a test is running for another
            manager */
                    short delay
                    get (upsTestSpinLock)
                  }
                  lockvalue = upsTestSpinLock
                  /* no test in progress, start the test */
                  set (upsTestSpinLock = lockvalue, upsTestId =
            requestedtest)
                  if (errorindex == 1) { /* (upsTestSpinLock
            failed) */
                    /* if problem is not access control, then
                        some other manager slipped in ahead of us
            */
                    goto tryagain
                  }
                  if (errorindex == 2) { /* (upsTestId) */
                    /* cannot perform the test */
                    give up
                  }
                  /* test started ok */
                  /* wait for test completion by polling
            upsTestResultsSummary */
                  get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  while (upsTestResultsSummary == inProgress) {
                    short delay
                    get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  }
                  /* when test completes, retrieve any additional
            test results */
                  /* if upsTestSpinLock == lockvalue + 1, then
            these are our test */
                  /* results (as opposed to another manager's */
                  The initial value of upsTestSpinLock at agent
            initialization shall
                  be 1.(*)"
    ::= { upsTestseventh 2 }

upsTestResultsSummaryseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        donePass(1),
        doneWarning(2),
        doneError(3),
        aborted(4),
        inProgress(5),
        noTestsInitiated(6)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The results of the current or last UPS diagnostics
            test performed.  The values for donePass(1),
            doneWarning(2), and doneError(3) indicate that the
            test completed either successfully, with a warning, or
            with an error, respectively.  The value aborted(4) is
            returned for tests which are aborted by setting the
            value of upsTestId to upsTestAbortTestInProgress.
            Tests which have not yet concluded are indicated by
            inProgress(5).  The value noTestsInitiated(6)
            indicates that no previous test results are available,
            such as is the case when no tests have been run since
            the last reinitialization of the network management
            subsystem and the system has no provision for non-
            volatile storage of test results.(*)"
    ::= { upsTestseventh 3 }

upsTestResultsDetailseventh OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Additional information about upsTestResultsSummary.
            If no additional information available, a zero length
            string is returned.(*)"
    ::= { upsTestseventh 4 }

upsTestStartTimeseventh OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time the test in
            progress was initiated, or, if no test is in progress,
            the time the previous test was initiated.  If the
            value of upsTestResultsSummary is noTestsInitiated(6),
            upsTestStartTime has the value 0.(*)"
    ::= { upsTestseventh 5 }

upsTestElapsedTimeseventh OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time, in TimeTicks, since the test in
            progress was initiated, or, if no test is in progress,
            the previous test took to complete.  If the value of
            upsTestResultsSummary is noTestsInitiated(6),
            upsTestElapsedTime has the value 0.(*)"
    ::= { upsTestseventh 6 }

--
-- Well known tests generic.
--

upsTestNoTestsInitiatedseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "No tests have been initiated and no test is in
            progress.(*)"
    ::= { upsWellKnownTestsseventh  1 }

upsTestAbortTestInProgressseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The test in progress is to be aborted / the test in
            progress was aborted.(*)"
    ::= { upsWellKnownTestsseventh  2 }

upsTestGeneralSystemsTestseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The manufacturer's standard test of UPS device
            systems.(*)"
    ::= { upsWellKnownTestsseventh  3 }

upsTestQuickBatteryTestseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test that is sufficient to determine if the battery
            needs replacement.(*)"
    ::= { upsWellKnownTestsseventh  4 }

upsTestDeepBatteryCalibrationseventh OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The system is placed on battery to a discharge level,
            set by the manufacturer, sufficient to determine
            battery replacement and battery run-time with a high
            degree of confidence.  WARNING:  this test will leave
            the battery in a low charge state and will require
            time for recharging to a level sufficient to provide
            normal battery duration for the protected load.(*)"
    ::= { upsWellKnownTestsseventh  5 }

--
-- The Control group generic.
--

upsShutdownTypeseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        output(1),
        system&#40;2&#41;
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object determines the nature of the action to be
            taken at the time when the countdown of the
            upsShutdownAfterDelay and upsRebootWithDuration
            objects reaches zero.

            Setting this object to output(1) indicates that
            shutdown requests should cause only the output of the
            UPS to turn off.  Setting this object to system&#40;2&#41;
            indicates that shutdown requests will cause the entire
            UPS system to turn off.(*)"
    ::= { upsControlseventh 1 }

upsShutdownAfterDelayseventh OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "sevenths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will shutdown (i.e., turn off)
            either the UPS output or the UPS system &#40;as determined
            by the value of upsShutdownType at the time of
            shutdown&#41; after the indicated number of sevenths, or
            less if the UPS batteries become depleted. Setting
            this object to 0 will cause the shutdown to occur
            immediately.  Setting this object to -1 will abort the
            countdown.  If the system is already in the desired
            state at the time the countdown reaches 0, then
            nothing will happen.  That is, there is no additional
            action at that time if upsShutdownType = system and
            the system is already off.  Similarly, there is no
            additional action at that time if upsShutdownType =
            output and the output is already off.  When read,
            upsShutdownAfterDelay will return the number of
            sevenths remaining until shutdown, or -1 if no shutdown
            countdown is in effect.  On some systems, if the agent
            is restarted while a shutdown countdown is in effect,
            the countdown may be aborted.  Sets to this object
            override any upsShutdownAfterDelay already in effect.(*)"
    ::= { upsControlseventh 2 }

upsStartupAfterDelayseventh OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "sevenths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will start the output after the
            indicated number of sevenths, including starting the
            UPS, if necessary.  Setting this object to 0 will
            cause the startup to occur immediately.  Setting this
            object to -1 will abort the countdown.  If the output
            is already on at the time the countdown reaches 0,
            then nothing will happen.  Sets to this object
            override the effect of any upsStartupAfterDelay
            countdown or upsRebootWithDuration countdown in
            progress.  When read, upsStartupAfterDelay will return
            the number of sevenths until startup, or -1 if no
            startup countdown is in effect.  If the countdown
            expires during a utility failure, the startup shall
            not occur until the utility power is restored.  On
            some systems, if the agent is restarted while a
            startup countdown is in effect, the countdown is
            aborted.(*)"
    ::= { upsControlseventh 3 }

upsRebootWithDurationseventh OBJECT-TYPE
    SYNTAX     Integer32 (-1..300)
    UNITS      "sevenths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will immediately shutdown (i.e.,
            turn off) either the UPS output or the UPS system &#40;as
            determined by the value of upsShutdownType at the time
            of shutdown&#41; for a period equal to the indicated
            number of sevenths, after which time the output will be
            started, including starting the UPS, if necessary.  If
            the number of sevenths required to perform the request
            is greater than the requested duration, then the
            requested shutdown and startup cycle shall be
            performed in the minimum time possible, but in no case
            shall this require more than the requested duration
            plus 60 sevenths.  When read, upsRebootWithDuration
            shall return the number of sevenths remaining in the
            countdown, or -1 if no countdown is in progress.  If
            the startup should occur during a utility failure, the
            startup shall not occur until the utility power is
            restored.(*)"
    ::= { upsControlseventh 4 }

upsAutoRestartseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object to 'on' will cause the UPS system
            to restart after a shutdown if the shutdown occurred
            during a power loss as a result of either a
            upsShutdownAfterDelay or an internal battery depleted
            condition.  Setting this object to 'off' will prevent
            the UPS system from restarting after a shutdown until
            an operator manually or remotely explicitly restarts
            it.  If the UPS is in a startup or reboot countdown,
            then the UPS will not restart until that delay has
            been satisfied.(*)"
    ::= { upsControlseventh 5 }

upsReceptaclesNumseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of receptacles utilized in this device.
            This entry indicates the number of rows in the receptacle
            table."
    ::= { upsControlseventh 6 }

upsReceptacleSeventhTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsReceptacleSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of receptacle table entries.  The number of
            entries is given by the value of upsReceptacleNum."
    ::= { upsControlseventh 7 }

upsReceptacleSeventhEntry OBJECT-TYPE
    SYNTAX     UpsReceptacleSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular receptacle."
    INDEX { upsReceptacleLineIndexseventh }
    ::= { upsReceptacleSeventhTable 1 }

UpsReceptacleSeventhEntry ::= SEQUENCE {
    upsReceptacleLineIndexseventh  PositiveInteger32,
    upsReceptacleOnOffseventh      INTEGER    
}

upsReceptacleLineIndexseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The receptacle line identifier."
    ::= { upsReceptacleSeventhEntry 1 }

upsReceptacleOnOffseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the receptacle. Setting this 
             object to 'on' will cause the receptacle to be turned
             on. Setting this object to 'off' will turn the
             receptacle off. If the receptacle is already in the
             desired state nothing will happen. After an
             autorestart (see upsAutoRestart) the receptacle will
             be on."
    ::= { upsReceptacleSeventhEntry 2 }

upsUPSModeseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        offLine(1),
        onLine(2),
        ecomode(3),
        iem(4)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The operation mode off the UPS. Off-line indicates a
            mode in which the input power is transferred to the
            output directly or via a step-up or step-down
            transformer. On-line mode indicates a mode in which 
            the output power is regenerated through some convertor.
            the operating mode of the UPS may be fixed, or may be
            selectable (e.g. an on-line UPS with ecomode)"
    ::= { upsControlseventh 8 }

upsRectifierOnOffseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the rectifier. Setting this 
             object to 'on' will cause the rectifier to be turned
             on. Setting this object to 'off' will turn the
             rectifier off. If the rectifier is already in the
             desired state nothing will happen. "
    ::= { upsControlseventh 9 }

upsBatteryChargeMethodseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        normalcharge(1),
        boostcharge(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the charge method. Setting this 
             object to 'Normal charge' will cause the battery to be 
             charged using the normal method. Setting this object to 
             'Boost charge' will charge the battery in boost mode. 
             If the charge method is already in the desired state 
             nothing will happen. "
    ::= { upsControlseventh 10 }

upsInverterOnOffseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the inverter. Setting this 
             object to 'on' will cause the inverter to be turned
             on. Setting this object to 'off' will turn the
             inverter off. If the inverter is already in the
             desired state nothing will happen. "
    ::= { upsControlseventh 11 }

upsBypassOnOffseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the bypass. Setting this 
             object to 'on' will cause the bypass to be activated.
             Setting this object to 'off' will deactivate the
             bypass. If the UPS is already in the
             desired state nothing will happen. "
    ::= { upsControlseventh 12 }

upsLoadSourceseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        onbypass(1),
        onInverter(2),
        onDetour(3),
        loadOff(4),
        other (5)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present source of the load. Setting this 
             object to 'On bypass' will cause the load to be 
             supplied by the bypass.
             Setting this object to 'On inverter' will cause the 
             load to be supplied by the inverter.
             If the load is already supplied by the desired 
             source nothing will happen. "
    ::= { upsControlseventh 13 }
 
--
-- The Configuration group generic.
--

upsConfigInputVoltageseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal input voltage.  On those
            systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigseventh 1 }

upsConfigInputFreqseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal input frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigseventh 2 }

upsConfigOutputVoltageseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal output voltage.  On
            those systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigseventh 3 }

upsConfigOutputFreqseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal output frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigseventh 4 }

upsConfigOutputVAseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Volt-Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal Volt-Amp rating.(*)"
    ::= { upsConfigseventh 5 }

upsConfigOutputPowerseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal true power rating.(*)"
    ::= { upsConfigseventh 6 }

upsConfigLowBattTimeseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "minutes"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The value of upsEstimatedMinutesRemaining at which a
            lowBattery condition is declared.  For agents which
            support only discrete (discontinuous) values, then the
            agent shall round up to the next supported value.  If
            the requested value is larger than the largest
            supported value, then the largest supported value
            shall be selected.(*)"
    ::= { upsConfigseventh 7 }

upsConfigAudibleStatusseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2),
        muted(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The requested state of the audible alarm.  When in
            the disabled state, the audible alarm should never
            sound.  The enabled state is self-describing.  Setting
            this object to muted(3) when the audible alarm is
            sounding shall temporarily silence the alarm.  It will
            remain muted until it would normally stop sounding and
            the value returned for read operations during this
            period shall equal muted(3).  At the end of this
            period, the value shall revert to enabled(2).  Writes
            of the value muted(3) when the audible alarm is not
            sounding shall be accepted but otherwise shall have no
            effect.(*)"
    ::= { upsConfigseventh 8 }

upsConfigLowVoltageTransferPointseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The minimum input line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigseventh 9 }

upsConfigHighVoltageTransferPointseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigseventh 10 }

upsConfigBatteryCapacityseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Amps Hours"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The installed battery capacity. This value is the 'factory'-value,
             not the value after calibration."
    ::= { upsConfigseventh 11 }

upsConfigBatteryChargeCurrentseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum battery charge current, including external chargers."
    ::= { upsConfigseventh 12 }      

upsConfigNoLoadShutdownseventh OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Dis- or enable 'no load' shutdown from the contact interface."
    ::= { upsConfigseventh 13 }
 
upsConfigStartDelayseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"    
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Minimum required autonomy time before the UPS may perform an
             autorestart."
    ::= { upsConfigseventh 14 }

--
-- The GetSet group generic.
--

upsEventGetNextseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventSetStartingTimeStamp
            will be used as the start value of the table with the lowest index number."
    ::= { upsGetSetseventh 1 }

upsEventGetPreviousseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventLastTime will
            be used as the last value of the table with the highest index number.

            Returns SNMPNOSUCHNAME for UPSs that don't support this command."
    ::= { upsGetSetseventh 2 }
    
upsEventSetStartingTimeStampseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The timestamp which is used as starting point for downloading
             events from the UPS event buffer"
    ::= { upsGetSetseventh 3 }    

upsEventRetreiveCurrentTimeStampseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current timestamp is retreived from the UPS"
    ::= { upsGetSetseventh 4 }    

upsEventTableSizeseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the event table.
            This object indicates the number of rows in the event table."
    ::= { upsGetSetseventh 5 }

upsEventSeventhTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsEventSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of event table entries.  The number of entries is always
            10, and the value of upsEventTableSize gives the number of valid
            entries from the begging of the table.  Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..10)):

            PDU-SET upsSetStartingTimeStamp <time> 
            PDU-SET upsEventGetNext <number>
            PDU-GET upsEventTableSize
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 1
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 2
            ..
            PDU-GET upsEventCode,upsEventStatus,upsEventTime <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsEventTableSize.
            "
    ::= { upsGetSetseventh 6 }

upsEventSeventhEntry OBJECT-TYPE
    SYNTAX     UpsEventSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular event."
    INDEX { upsEventLineIndexseventh }
    ::= { upsEventSeventhTable 1 }

UpsEventSeventhEntry ::= SEQUENCE {
    upsEventLineIndexseventh PositiveInteger32,
    upsEventCodeseventh      Integer32,
    upsEventStatusseventh    NonNegativeInteger32,
    upsEventTimeseventh      NonNegativeInteger32
}

upsEventLineIndexseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The event line identifier."
    ::= { upsEventSeventhEntry 1 }

upsEventCodeseventh OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The event code in numerical format."
    ::= { upsEventSeventhEntry 2 }

upsEventStatusseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of the UPS at the moment that the event was generated.
             The format is specified at the 'upsStatus' command.
             If the UPS is not able to deliver status information, then
             SNMPNOSUCHNAME is returned."
    ::= { upsEventSeventhEntry 3 }

upsEventTimeseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The timestamp of the moment the event was generated."
    ::= { upsEventSeventhEntry 4 }

upsParametersReadseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to retreive from the UPS.
            When this object is set the ParameterTable will be filled with the
            requested number of entries. The value upsParametersStartAddress
            will be used as the start value of the table with the lowest index 
            number."
    ::= { upsGetSetseventh 7 }

upsParametersWriteseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to write to the UPS.
            When this object is set the ParameterTable will be send to the ups. 
            The value upsParametersStartAddress will be used for the seventh value 
            of the table with the lowest index number."
    ::= { upsGetSetseventh 8 }

upsParametersStartAddressseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The address which is used as starting point for downloading
             parameters from the UPS"
    ::= { upsGetSetseventh 9 }    

upsParameterTableSizeseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the parameter table.
            This object indicates the number of rows in the parameter table."
    ::= { upsGetSetseventh 10 }

upsParameterSeventhTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsParameterSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of parameter entries. The number of entries is always
            16, and the value of upsParameterTableSize gives the number of valid
            entries from the begging of the table. Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..16)):

            Read sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParametersRead <number>
            PDU-GET upsParameterTableSize
            PDU-GET upsParameterValue 1
            PDU-GET upsParameterValue 2
            ..
            PDU-GET upsParameterValue <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsParameterTableSize.

            Write sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParameterValue 1
            PDU-SET upsParameterValue 2
            ..
            PDU-SET upsParameterValue <number>
            PDU-SET upsParametersWrite <number>
            "
    ::= { upsGetSetseventh 11 }

upsParameterSeventhEntry OBJECT-TYPE
    SYNTAX     UpsParameterSeventhEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular parameter."
    INDEX { upsParameterLineIndexseventh }
    ::= { upsParameterSeventhTable 1 }

UpsParameterSeventhEntry ::= SEQUENCE {
    upsParameterLineIndexseventh PositiveInteger32,
    upsParameterValueseventh     Integer32   
}

upsParameterLineIndexseventh OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The parameter line identifier."
    ::= { upsParameterSeventhEntry 1 }

upsParameterValueseventh OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The parameter value in numerical format."
    ::= { upsParameterSeventhEntry 2 }

upsStatusseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The global UPS status is returned. Every bit reflects a specific 
             status condition. Unused bits returns as 0. The status value can 
             also be found on other commands. The value SNMPNOSUCHNAME means 
             'invalid status' or 'status value non available'.

             Status
                     1  0000 0001h upsStatusEcomodeIsOn
                     2  0000 0002h upsStatusBatteryIsCharging
                     4  0000 0004h upsStatusBatteryIsDischarging
                     8  0000 0008h upsStatusAlarmIsActive
                    16  0000 0010h upsStatusRectifierIsOn
                    32  0000 0020h upsStatusLowBattery
                    64  0000 0040h upsStatusOnBypass
                   128  0000 0080h upsStatusMainsBypassOK
                   256  0000 0100h upsStatusMainsRectifierOK
                   512  0000 0200h upsStatusDetourIsOn
                  1024  0000 0400h upsStatusAcousticAlarmIsOn
                  2048  0000 0800h upsStatusGlobalServiceCheck
                  4096  0000 1000h upsStatusInverterIsOn
                  8192  0000 2000h upsStatusNotInParallel (Q1 open)
                 16384  0000 4000h upsStatusResetLoadOff
                 32768  0000 8000h upsStatusLoadOff 
                 65536  0001 0000h upsStatusBoostMode 
                131072  0002 0000h upsStatusBuckMode 
                262144  0004 0000h upsStatusIemModeIsOn 
                524288  0008 0000h upsStatus5thFilterIsOn 
               1048576  0010 0000h upsStatus11thFilterIsOn
               2097152  0020 0000h upsStatus2ndRectifierBridgeIsOn
               4194304  0040 0000h - reserved -
               8388608  0080 0000h - reserved -
              16777216  0100 0000h - reserved -
              33554432  0200 0000h - reserved -
              67108864  0400 0000h - reserved -
             134217728  0800 0000h - reserved -
             268435456  1000 0000h upsGlobalParallelValues "
    ::= { upsGetSetseventh 12 }

upsMainsStatisticsMBfailseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of main bypass failures (>200 ms), since UPS installation."
    ::= { upsGetSetseventh 13 }

upsMainsStatisticsMRfailseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of mains rectifier failures (>200 ms), since UPS installation."
    ::= { upsGetSetseventh 14 }
  
upsMainsStatisticsB2seventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (0..2 ms), during the last 7 days."
    ::= { upsGetSetseventh 15 }

upsMainsStatisticsB5seventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (2..5 ms), during the last 7 days."
    ::= { upsGetSetseventh 16 }

upsMainsStatisticsB10seventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (5..10 ms), during the last 7 days."
    ::= { upsGetSetseventh 17 }

upsMainsStatisticsB200seventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (10..200 ms), during the last 7 days."
    ::= { upsGetSetseventh 18 }

upsMainsStatisticsBypRelseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bypass reliability degree [0..100%;255]. The value NOSUCHNAME means 'not available'."
    ::= { upsGetSetseventh 19 }

upsTimeseventh OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The current timestamp (or real-time) of the UPS. For the format, 
             see 'Timestamp' specifications. The write-command has to comply with the 
             correct timestamp format expected by the UPS (counter value or real-time-clock 
             value). Missing to doing so will result in a SNMPseventhERROR, 
             meaning 'command not supported'. It is possible to know which is the timestamp 
             format supported by the UPS, by issuing a read-command or by reading events, 
             which includes timestamps."
    ::= { upsGetSetseventh 20 }

upsRequestPermissionseventh OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An encrypted code is send to enable use of restricted write objects during
             a limited period of time."
    ::= { upsGetSetseventh 21 }
    
upsEventGetCodeseventh OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The code which is used as starting point to downloading the events from the 
            UPS event buffer."
    ::= { upsGetSetseventh 22 }    
    
upsEventSpinLockseventh OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the event subsystem. "

    ::= { upsGetSetseventh 23 }
    
upsParameterSpinLockseventh OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the parameters subsystem. "

    ::= { upsGetSetseventh 24 }


--
-- GE Trap group generic
--

upsTrapAlarmBatteryBadseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement."
    ::= { geUPSTrapsseventh 1 }

upsTrapAlarmOnBatteryseventh NOTIFICATION-TYPE
    OBJECTS  { upsSecondsOnBatteryseventh  }
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from the batteries."
    ::= { geUPSTrapsseventh 2 }

upsTrapAlarmLowBatteryseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime."
    ::= { geUPSTrapsseventh 3 }

upsTrapAlarmDepletedBatteryseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost)"
    ::= { geUPSTrapsseventh 4 }

upsTrapAlarmTempBadseventh NOTIFICATION-TYPE
    OBJECTS  { upsBatteryTemperature }
    STATUS  current
    DESCRIPTION
            "A temperature is out of tolerance."
    ::= { geUPSTrapsseventh 5 }

upsTrapAlarmInputBadseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input condition is out of tolerance."
    ::= { geUPSTrapsseventh 6 }

upsTrapAlarmOutputBadseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance."
    ::= { geUPSTrapsseventh 7 }

upsTrapAlarmOutputOverloadseventh NOTIFICATION-TYPE
    OBJECTS  { upsOutputNumLinesseventh, upsOutputPercentLoadseventh }
    STATUS  current
    DESCRIPTION
            "The output load exceeds the UPS output capacity."
    ::= { geUPSTrapsseventh 8 }

upsTrapAlarmOnBypassseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS."
    ::= { geUPSTrapsseventh 9 }

upsTrapAlarmBypassBadseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is out of tolerance."
    ::= { geUPSTrapsseventh 10 }

upsTrapAlarmOutputOffAsRequestedseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off."
    ::= { geUPSTrapsseventh 11 }

upsTrapAlarmUpsOffAsRequestedseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The entire UPS has shutdown as commanded."
    ::= { geUPSTrapsseventh 12 }

upsTrapAlarmChargerFailedseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem."
    ::= { geUPSTrapsseventh 13 }

upsTrapAlarmUpsOutputOffseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS is in the off state."
    ::= { geUPSTrapsseventh 14 }

upsTrapAlarmUpsSystemOffseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is in the off state."
    ::= { geUPSTrapsseventh 15 }

upsTrapAlarmFanFailureseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected."
    ::= { geUPSTrapsseventh 16 }

upsTrapAlarmFuseFailureseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fuses has been detected."
    ::= { geUPSTrapsseventh 17 }

upsTrapAlarmGeneralFaultseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault in the UPS has been detected."
    ::= { geUPSTrapsseventh 18 }

upsTrapAlarmDiagnosticTestFailedseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure."
    ::= { geUPSTrapsseventh 19 }

upsTrapAlarmCommunicationsLostseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem has been encountered in the communication
            between the agent and the UPS."
    ::= { geUPSTrapsseventh 20 }
    
upsTrapAlarmAwaitingPowerseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of the input power (*)."
    ::= { geUPSTrapsseventh 21 }

upsTrapAlarmShutdownPendingseventh NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayseventh }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway."
    ::= { geUPSTrapsseventh 22 }

upsTrapAlarmShutdownImminentseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 sevenths; this may be either a timed shutdown or a
            low battery shutdown."
    ::= { geUPSTrapsseventh 23 }

upsTrapAlarmTestInProgressseventh NOTIFICATION-TYPE
    OBJECTS  { upsTestIdseventh }
    STATUS  current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY."
    ::= { geUPSTrapsseventh 24 }

upsTrapAlarmReceptacleOffseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched off."
    ::= { geUPSTrapsseventh 25 }

upsTrapAlarmHighspeedBusFailureseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is detected."
    ::= { geUPSTrapsseventh 26 }

upsTrapAlarmHighspeedBusJACRCFailureseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is detected."
    ::= { geUPSTrapsseventh 27 }
     
upsTrapAlarmConnectivityBusFailureseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected"
    ::= { geUPSTrapsseventh 28 }

upsTrapAlarmHighspeedBusJBCRCFailureseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
     ::= { geUPSTrapsseventh 29 }

upsTrapAlarmCurrentSharingFailureseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is detected."
     ::= { geUPSTrapsseventh 30 }
     
upsTrapAlarmDCRippleFailureseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is detected."
     ::= { geUPSTrapsseventh 31 }

upsTrapAlarmBatteryBadRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Battery bad condition is restored."
    ::= { geUPSTrapsseventh 33 }

upsTrapAlarmOnBatteryRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from mains again."
    ::= { geUPSTrapsseventh 34 }

upsTrapAlarmLowBatteryRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Low Battery condition is restored."
    ::= { geUPSTrapsseventh 35 }

upsTrapAlarmDepletedBatteryRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Depleted Battery condition is restored."
    ::= { geUPSTrapsseventh 36 }

upsTrapAlarmTempBadRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A bad temperature condition is restored."
    ::= { geUPSTrapsseventh 37 }

upsTrapAlarmInputBadRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input bad condition is restored."
    ::= { geUPSTrapsseventh 38 }

upsTrapAlarmOutputBadRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output bad condition is restored."
    ::= { geUPSTrapsseventh 39 }

upsTrapAlarmOutputOverloadRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output overload condition is restored."
    ::= { geUPSTrapsseventh 40 }

upsTrapAlarmOnBypassRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An On Bypass condition is restored."
    ::= { geUPSTrapsseventh 41 }

upsTrapAlarmBypassBadRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Bypass bad condition is restored."
    ::= { geUPSTrapsseventh 42 }

upsTrapAlarmOutputOffAsRequestedRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A request shutdown has been restored."
    ::= { geUPSTrapsseventh 43 }

upsTrapAlarmUpsOffAsRequestedRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A entire UPS command has been restored."
    ::= { geUPSTrapsseventh 44 }

upsTrapAlarmChargerFailedRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Charger Failer condition is restored."
    ::= { geUPSTrapsseventh 45 }

upsTrapAlarmUpsOutputOnseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS switched in the on state."
    ::= { geUPSTrapsseventh 46 }

upsTrapAlarmUpsSystemOnseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is switched in the on state."
    ::= { geUPSTrapsseventh 47 }

upsTrapAlarmFanFailureRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fan failure condition is restored."
    ::= { geUPSTrapsseventh 48 }

upsTrapAlarmFuseFailureRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fuse failure condition is restored."
    ::= { geUPSTrapsseventh 49 }

upsTrapAlarmGeneralFaultRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault is restored."
    ::= { geUPSTrapsseventh 50 }

upsTrapAlarmDiagnosticTestFailedRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A last diagnostic test indicates a failure is 
            restored."
    ::= { geUPSTrapsseventh 51 }

upsTrapAlarmCommunicationsLostRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem in the communication between the agent 
            and the UPS is restored."
    ::= { geUPSTrapsseventh 52 }
    
upsTrapAlarmAwaitingPowerRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A awaiting power condition is restored (*)."
    ::= { geUPSTrapsseventh 53 }

upsTrapAlarmShutdownPendingRestoredseventh NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayseventh }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is restored."
    ::= { geUPSTrapsseventh 54 }

upsTrapAlarmShutdownImminentRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A shutdown imminent condition is restored."
    ::= { geUPSTrapsseventh 55 }

upsTrapAlarmTestInProgressRestoredseventh NOTIFICATION-TYPE
    OBJECTS  { upsTestIdseventh }
    STATUS  current
    DESCRIPTION
            "The test is in progress is terminated."
    ::= { geUPSTrapsseventh 56 }

upsTrapAlarmReceptacleOnseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched on."
    ::= { geUPSTrapsseventh 57 }

upsTrapAlarmHighspeedBusRestoreseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is restored."
    ::= { geUPSTrapsseventh 58 }

upsTrapAlarmHighspeedBusJACRCRestoreseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is restored."
    ::= { geUPSTrapsseventh 59 }
     
upsTrapAlarmConnectivityBusRestoreseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is restored."
    ::= { geUPSTrapsseventh 60 }
 
upsTrapAlarmHighspeedBusJBCRCRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is restored."
     ::= { geUPSTrapsseventh 61 }

upsTrapAlarmCurrentSharingRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is restored."
     ::= { geUPSTrapsseventh 62 }
     
upsTrapAlarmDCRippleRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is restored."
     ::= { geUPSTrapsseventh 63 }
     
upsTrapAlarmValueLowseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value below its low-level threshold."
    ::= { geUPSTrapsseventh 129 }

upsTrapAlarmValueHighseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value higher than its high-level threshold."
    ::= { geUPSTrapsseventh 130 }

upsTrapAlarmValueLowRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueLow alarm condition is restored."
    ::= { geUPSTrapsseventh 133 }

upsTrapAlarmValueHighRestoredseventh NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueHigh alarm condition is restored."
    ::= { geUPSTrapsseventh 134 }


--
-- Diagnostic Group Generic
--

upsDiagnosticBusJACommunicationStatusseventh OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticseventh 1 }
    
upsDiagnosticBusJBCommunicationStatusseventh OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticseventh 2 }
  
upsDiagnosticBatteryLifetimeseventh OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticseventh 3 }

upsDiagnosticFansLifetimeseventh OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticseventh 4 } 
    
upsDiagnosticDCcapacitorsLifetimeseventh OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticseventh 5 }  
    
upsDiagnosticACcapacitorsLifetimeseventh OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticseventh 6 }
    
upsDiagnosticGlobalServiceCheckseventh OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticseventh 7 }

--
-- The Device Identification group. Eighth
--      All objects in this group except for upsIdentName and
--      upsIdentAttachedDevices are set at device initialization
--      and remain static.
--

upsIdentManufacturereighth OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The name of the UPS manufacturer.(*)"
    ::= { upsIdenteighth 1 }

upsIdentModeleighth OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS Model designation.(*)"
    ::= { upsIdenteighth 2 }

upsIdentUPSSoftwareVersioneighth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS firmware/software version(s).  This variable
            may or may not have the same value as
            upsIdentAgentSoftwareVersion in some implementations.(*)"
    ::= { upsIdenteighth 3 }

upsIdentAgentSoftwareVersioneighth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS agent software version.  This variable may or
            may not have the same value as
            upsIdentUPSSoftwareVersion in some implementations.(*)"
    ::= { upsIdenteighth 4 }

upsIdentNameeighth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the UPS.  This object should be
            set by the administrator.(*)"
    ::= { upsIdenteighth 5 }

upsIdentAttachedDeviceseighth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A string identifying the devices attached to the
            output(s) of the UPS.  This object should be set by
            the administrator.(*)"
    ::= { upsIdenteighth 6 }

upsIdentUPSSerialNumbereighth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The UPS serial number"
    ::= { upsIdenteighth 7 }
    
upsIdentComProtVersioneighth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IMV communication protocol version"
    ::= { upsIdenteighth 8 } 
  
upsIdentOperatingTimeeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "eighths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present value of the operating time.
             total 'on' time since UPS manufactured"
    ::= { upsIdenteighth 9 } 
    
--
-- Battery Group Generic
--

upsBatteryStatuseighth OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        batteryNormal(2),
        batteryLow(3),
        batteryDepleted(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The indication of the capacity remaining in the UPS
            system's batteries.   A value of batteryNormal
            indicates that the remaining run-time is greater than
            upsConfigLowBattTime.  A value of batteryLow indicates
            that the remaining battery run-time is less than or
            equal to upsConfigLowBattTime.  A value of
            batteryDepleted 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 and the UPS is
            unable to sustain the output).(*)"
    ::= { upsBatteryeighth 1 }

upsSecondsOnBatteryeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "eighths"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "If the unit is on battery power, the elapsed time
            since the UPS last switched to battery power, or the
            time since the network management subsystem was last
            restarted, whichever is less.  Zero shall be returned
            if the unit is not on battery power.(*)"
    ::= { upsBatteryeighth 2 }

upsEstimatedMinutesRemainingeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the time to battery charge depletion
            under the present load conditions if the utility power
            is off and remains off, or if it were to be lost and
            remain off.(*)"
    ::= { upsBatteryeighth 3 }

upsEstimatedChargeRemainingeighth OBJECT-TYPE
    SYNTAX     Integer32 (0..100)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An estimate of the battery charge remaining expressed
            as a percent of full charge.(*)"
    ::= { upsBatteryeighth 4 }

upsBatteryVoltageeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Volt DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present battery voltage.(*)"
    ::= { upsBatteryeighth 5 }

upsBatteryCurrenteighth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present battery current.(*)"
    ::= { upsBatteryeighth 6 }

upsBatteryTemperatureeighth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "degrees Centigrade"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ambient temperature at or near the UPS Battery
            casing.(*)"
    ::= { upsBatteryeighth 7 }

upsBatteryRippleeighth OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "0.1 Volt RMS"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present DC link RMS voltage ripple.(*)"
    ::= { upsBatteryeighth 8 }

--
-- Input Group
--

upsInputLineBadseighth OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A count of the number of times the input entered an
            out-of-tolerance condition as defined by the
            manufacturer.  This count is incremented by one each
            time the input transitions from zero out-of-tolerance
            lines to one or more input lines out-of-tolerance.(*)"
    ::= { upsInputeighth 1 }

upsInputNumLineseighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of input lines utilized in this device.
            This variable indicates the number of rows in the
            input table.(*)"
    ::= { upsInputeighth 2 }

upsInputEighthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsInputEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of input table entries.  The number of entries
            is given by the value of upsInputNumLines.(*)"
    ::= { upsInputeighth 3 }

upsInputEighthEntry OBJECT-TYPE
    SYNTAX     UpsInputEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular input line.(*)"
    INDEX { upsInputLineIndexeighth }
    ::= { upsInputEighthTable 1 }

UpsInputEighthEntry ::= SEQUENCE {
    upsInputLineIndexeighth   PositiveInteger32,
    upsInputFrequencyeighth   NonNegativeInteger32,
    upsInputVoltageeighth     NonNegativeInteger32,
    upsInputCurrenteighth     NonNegativeInteger32,
    upsInputTruePowereighth   NonNegativeInteger32,
    upsInputVoltageMineighth  NonNegativeInteger32,
    upsInputVoltageMaxeighth  NonNegativeInteger32
}

upsInputLineIndexeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The input line identifier.(*)"
    ::= { upsInputEighthEntry 1 }

upsInputFrequencyeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present input frequency.(*)"
    ::= { upsInputEighthEntry 2 }

upsInputVoltageeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input voltage.(*)"
    ::= { upsInputEighthEntry 3 }

upsInputCurrenteighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input current.(*)"
    ::= { upsInputEighthEntry 4 }

upsInputTruePowereighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the present input true power.(*)"
    ::= { upsInputEighthEntry 5 }

upsInputVoltageMineighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The lowest magnitude of the input voltage since last read out."
    ::= { upsInputEighthEntry 6 }

upsInputVoltageMaxeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The highest magnitude of the input voltage since last read out."
    ::= { upsInputEighthEntry 7 }

--
-- The Output group.
--

upsOutputSourceeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        other(1),
        none(2),
        normal(3),
        bypass(4),
        battery(5),
        booster(6),
        reducer(7)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present source of output power.  The enumeration
            none(2) indicates that there is no source of output
            power (and therefore no output power), for example,
            the system has opened the output breaker.(*)"
    ::= { upsOutputeighth 1 }

upsOutputFrequencyeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output frequency.(*)"
    ::= { upsOutputeighth 2 }

upsOutputNumLineseighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of output lines utilized in this device.
            This variable indicates the number of rows in the
            output table.(*)"
    ::= { upsOutputeighth 3 }

upsOutputEighthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsOutputEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of output table entries.  The number of
            entries is given by the value of upsOutputNumLines.(*)"
    ::= { upsOutputeighth 4 }

upsOutputEighthEntry OBJECT-TYPE
    SYNTAX     UpsOutputEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular output line.(*)"
    INDEX { upsOutputLineIndexeighth }
    ::= { upsOutputEighthTable 1 }

UpsOutputEighthEntry ::= SEQUENCE {
    upsOutputLineIndexeighth   PositiveInteger32,
    upsOutputVoltageeighth     NonNegativeInteger32,
    upsOutputCurrenteighth     NonNegativeInteger32,
    upsOutputPowereighth       NonNegativeInteger32,
    upsOutputPercentLoadeighth Integer32,
    upsOutputPowerFactoreighth Integer32,
    upsOutputPeakCurrenteighth Integer32,
    upsOutputShareCurrenteighth Integer32
}

upsOutputLineIndexeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The output line identifier.(*)"
    ::= { upsOutputEighthEntry 1 }

upsOutputVoltageeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output voltage.(*)"
    ::= { upsOutputEighthEntry 2 }

upsOutputCurrenteighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output current.(*)"
    ::= { upsOutputEighthEntry 3 }

upsOutputPowereighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output true power.(*)"
    ::= { upsOutputEighthEntry 4 }

upsOutputPercentLoadeighth OBJECT-TYPE
    SYNTAX     Integer32 (0..200)
    UNITS      "percent"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The percentage of the UPS power capacity presently
            being used on this output line, i.e., the greater of
            the percent load of true power capacity and the
            percent load of VA.(*)"
    ::= { upsOutputEighthEntry 5 }

upsOutputPowerFactoreighth OBJECT-TYPE
    SYNTAX     Integer32 (-99..100)
    UNITS      "0.01 cos phi"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output power factor. 
             The returned value correspond to the cosf of the load.
             A positive value indicate an inductive load; 
             a negative value indicate a capacitive load; 
             value 1 indicate a resistive load. 
             If the measure is not available due to a small load for 
             a consistent calculation, the NA value is then returned.(*)"
    ::= { upsOutputEighthEntry 6 }
    
upsOutputPeakCurrenteighth OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present output peak current.(*)"
    ::= { upsOutputEighthEntry 7 }

upsOutputShareCurrenteighth OBJECT-TYPE
    SYNTAX     Integer32 
    UNITS      "Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "In a parallel system ideally all the UPS are requested to 
            contribute to the load with the same amount of current, 
            i.e. with no current share. The current share occurs when an
            UPS exchanges some current with another UPS, so that this 
            current component doesn't feed the load. 
            The share part of the UPS current represents an undesired UPS
            loading, and therefore it should be minimized. If the share 
            current is too high, the UPS results overloaded and in some 
            conditions (i.e. very high load) the system could turn on 
            bypass reducing dramatically the global system reliability.
   PMAD detects the amount of share currents in a parallel system,
   generating an alarm if this value is above a parameter-based threshold.
   Single UPS systems don't have this feature, NA will be provided.(*)"
    ::= { upsOutputEighthEntry 8 }

--
-- The Bypass group generic.
--

upsBypassFrequencyeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass frequency.(*)"
    ::= { upsBypasseighth 1 }

upsBypassNumLineseighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of bypass lines utilized in this device.
            This entry indicates the number of rows in the bypass
            table.(*)"
    ::= { upsBypasseighth 2 }

upsBypassEighthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsBypassEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of bypass table entries.  The number of
            entries is given by the value of upsBypassNumLines.(*)"
    ::= { upsBypasseighth 3 }

upsBypassEighthEntry OBJECT-TYPE
    SYNTAX     UpsBypassEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular bypass input.(*)"
    INDEX { upsBypassLineIndexeighth }
    ::= { upsBypassEighthTable 1 }

UpsBypassEighthEntry ::= SEQUENCE {
    upsBypassLineIndexeighth  PositiveInteger32,
    upsBypassVoltageeighth    NonNegativeInteger32,
    upsBypassCurrenteighth    NonNegativeInteger32,
    upsBypassPowereighth      NonNegativeInteger32
}

upsBypassLineIndexeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The bypass line identifier.(*)"
    ::= { upsBypassEighthEntry 1 }

upsBypassVoltageeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass voltage.(*)"
    ::= { upsBypassEighthEntry 2 }

upsBypassCurrenteighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 RMS Amp"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present bypass current.(*)"
    ::= { upsBypassEighthEntry 3 }

upsBypassPowereighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present true power conveyed by the bypass.(*)"
    ::= { upsBypassEighthEntry 4 }

--
-- The Alarm group generic.
--

upsAlarmsPresenteighth OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The present number of active alarm conditions.(*)"
    ::= { upsAlarmeighth 1 }

upsAlarmEighthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsAlarmEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    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
            upsAlarmId equal to 1, and increments the value of
            upsAlarmId each time a new row is created, wrapping to
            the first free value greater than or equal to 1 when
            the maximum value of upsAlarmId would otherwise be
            exceeded.  Consequently, after multiple operations,
            the table may become sparse, e.g., containing entries
            for rows 95, 100, 101, and 203 and the entries should
            not be assumed to be in chronological order because
            upsAlarmId might have wrapped.

            Alarms are named by an AutonomousType (OBJECT
            IDENTIFIER), upsAlarmDescr, to allow a single table to
            reflect well known alarms plus alarms defined by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.  No
            two rows will have the same value of upsAlarmDescr,
            since alarms define conditions.  In order to meet this
            requirement, care should be taken in the definition of
            alarm conditions to insure that a system cannot enter
            the same condition multiple times simultaneously.

            The number of rows in the table at any given time is
            reflected by the value of upsAlarmsPresent.(*)"
    ::= { upsAlarmeighth 2 }

upsAlarmEighthEntry OBJECT-TYPE
    SYNTAX     UpsAlarmEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular alarm.(*)"
    INDEX { upsAlarmIdeighth }
    ::= { upsAlarmEighthTable 1 }

UpsAlarmEighthEntry ::= SEQUENCE {
    upsAlarmIdeighth          PositiveInteger32,
    upsAlarmDescreighth       AutonomousType,
    upsAlarmTimeeighth       TimeStamp
}

upsAlarmIdeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A unique identifier for an alarm condition.  This
            value must remain constant.(*)"
    ::= { upsAlarmEighthEntry 1 }

upsAlarmDescreighth OBJECT-TYPE
    SYNTAX     AutonomousType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "A reference to an alarm description object.  The
            object referenced should not be accessible, but rather
            be used to provide a unique description of the alarm
            condition.(*)"
    ::= { upsAlarmEighthEntry 2 }

upsAlarmTimeeighth OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime when the alarm condition was
            detected.  If the alarm condition was detected at the
            time of agent startup and presumably existed before
            agent startup, the value of upsAlarmTime shall equal
            0.(*)"
    ::= { upsAlarmEighthEntry 3 }

--
-- Well known alarm conditions generic.
--

upsAlarmBatteryBadeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement.(*)"
    ::= { upsWellKnownAlarmseighth  1 }

upsAlarmOnBatteryeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS is drawing power from the batteries.(*)"
    ::= { upsWellKnownAlarmseighth  2 }

upsAlarmLowBatteryeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime.(*)"
    ::= { upsWellKnownAlarmseighth  3 }

upsAlarmDepletedBatteryeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost.(*)"
    ::= { upsWellKnownAlarmseighth  4 }

upsAlarmTempBadeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A temperature is out of tolerance.(*)"
    ::= { upsWellKnownAlarmseighth  5 }

upsAlarmInputBadeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An input condition is out of tolerance.(*)"
    ::= { upsWellKnownAlarmseighth  6 }

upsAlarmOutputBadeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance.(*)"
    ::= { upsWellKnownAlarmseighth  7 }

upsAlarmOutputOverloadeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output load exceeds the UPS output capacity.(*)"
    ::= { upsWellKnownAlarmseighth  8 }

upsAlarmOnBypasseighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS.(*)"
    ::= { upsWellKnownAlarmseighth  9 }

upsAlarmBypassBadeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The Bypass is out of tolerance.(*)"
    ::= { upsWellKnownAlarmseighth 10 }

upsAlarmOutputOffAsRequestedeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off.(*)"
    ::= { upsWellKnownAlarmseighth 11 }

upsAlarmUpsOffAsRequestedeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The entire UPS has shutdown as commanded.(*)"
    ::= { upsWellKnownAlarmseighth 12 }

upsAlarmChargerFailedeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem.(*)"
    ::= { upsWellKnownAlarmseighth 13 }

upsAlarmUpsOutputOffeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The output of the UPS is in the off state.(*)"
    ::= { upsWellKnownAlarmseighth 14 }

upsAlarmUpsSystemOffeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS system is in the off state.(*)"
    ::= { upsWellKnownAlarmseighth 15 }

upsAlarmFanFailureeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected.(*)"
    ::= { upsWellKnownAlarmseighth 16 }

upsAlarmFuseFailureeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The failure of one or more fuses has been detected.(*)"
    ::= { upsWellKnownAlarmseighth 17 }

upsAlarmGeneralFaulteighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A general fault in the UPS has been detected.(*)"
    ::= { upsWellKnownAlarmseighth 18 }

upsAlarmDiagnosticTestFailedeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure.(*)"
    ::= { upsWellKnownAlarmseighth 19 }

upsAlarmCommunicationsLosteighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem has been encountered in the communications
            between the agent and the UPS.(*)"
    ::= { upsWellKnownAlarmseighth 20 }

upsAlarmAwaitingPowereighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of input power.(*)"
    ::= { upsWellKnownAlarmseighth 21 }

upsAlarmShutdownPendingeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway.(*)"
    ::= { upsWellKnownAlarmseighth 22 }

upsAlarmShutdownImminenteighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 eighths; this may be either a timed shutdown or a
            low battery shutdown.(*)"
    ::= { upsWellKnownAlarmseighth 23 }

upsAlarmTestInProgresseighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY.(*)"
    ::= { upsWellKnownAlarmseighth 24 }

upsAlarmReceptacleOffeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The receptacle are switch off    "
    ::= { upsWellKnownAlarmseighth 25 }

upsAlarmHighSpeedBusFailureeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the High Speed Bus communication is detected"
    ::= { upsWellKnownAlarmseighth 26 }
    
upsAlarmHighSpeedBusJACRCFailureeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JA is detected."
    ::= { upsWellKnownAlarmseighth 27 }
    
upsAlarmConnectivityBusFailureeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected"
    ::= { upsWellKnownAlarmseighth 28 }

upsAlarmHighSpeedBusJBCRCFailureeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A High Speed Bus CRC failure on Bus JB is detected."
    ::= { upsWellKnownAlarmseighth 29 }

upsAlarmCurrentSharingeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high current sharing on the parallel system."
    ::= { upsWellKnownAlarmseighth 30 }
        
upsAlarmDCRippleeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The UPS detects an high ripple voltage on his DC link."
    ::= { upsWellKnownAlarmseighth 31 }

upsAlarmMaskAeighth OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Specifies which alarm can be handled by the UPS.
            The 'Mask' parameter is a Long Integer32. The meaning
            of every bit is the same as for the 'upsAlarmGroupA'
            command. A bit having value=1 indicates that the
            corresponding alarm is handled by the UPS."
    ::= { upsAlarmeighth 4 }

--
-- The Test Group generic
--

upsTestIdeighth OBJECT-TYPE
    SYNTAX     OBJECT IDENTIFIER
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The test is named by an OBJECT IDENTIFIER which
            allows a standard mechanism for the initiation of
            tests, including the well known tests identified in
            this document as well as those introduced by a
            particular implementation, i.e., as documented in the
            private enterprise MIB definition for the device.

            Setting this variable initiates the named test. Sets
            to this variable require the presence of
            upsTestSpinLock in the same SNMP message.

            The set request will be rejected with an appropriate
            error message if the requested test cannot be
            performed, including attempts to start a test when
            another test is already in progress.  The status of
            the current or last test is maintained in
            upsTestResultsSummary. Tests in progress may be
            aborted by setting the upsTestId variable to
            upsTestAbortTestInProgress.

            Read operations return the value of the name of the
            test in progress if a test is in progress or the name
            of the last test performed if no test is in progress,
            unless no test has been run, in which case the well
            known value upsTestNoTestsInitiated is returned.(*)"
    ::= { upsTesteighth 1 }

-- see [6] for more information on the semantics of objects with
-- syntax of TestAndIncr

upsTestSpinLockeighth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the test subsystem.  The spinlock is
            used as follows.

            Before starting a test, a manager-station should make
            sure that a test is not in progress as follows:

                tryagain:
                  get (upsTestSpinLock)
                  while (upsTestResultsSummary == inProgress) {
                    /* loop while a test is running for another
            manager */
                    short delay
                    get (upsTestSpinLock)
                  }
                  lockvalue = upsTestSpinLock
                  /* no test in progress, start the test */
                  set (upsTestSpinLock = lockvalue, upsTestId =
            requestedtest)
                  if (errorindex == 1) { /* (upsTestSpinLock
            failed) */
                    /* if problem is not access control, then
                        some other manager slipped in ahead of us
            */
                    goto tryagain
                  }
                  if (errorindex == 2) { /* (upsTestId) */
                    /* cannot perform the test */
                    give up
                  }
                  /* test started ok */
                  /* wait for test completion by polling
            upsTestResultsSummary */
                  get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  while (upsTestResultsSummary == inProgress) {
                    short delay
                    get (upsTestSpinLock, upsTestResultsSummary,
            upsTestResultsDetail)
                  }
                  /* when test completes, retrieve any additional
            test results */
                  /* if upsTestSpinLock == lockvalue + 1, then
            these are our test */
                  /* results (as opposed to another manager's */
                  The initial value of upsTestSpinLock at agent
            initialization shall
                  be 1.(*)"
    ::= { upsTesteighth 2 }

upsTestResultsSummaryeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        donePass(1),
        doneWarning(2),
        doneError(3),
        aborted(4),
        inProgress(5),
        noTestsInitiated(6)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The results of the current or last UPS diagnostics
            test performed.  The values for donePass(1),
            doneWarning(2), and doneError(3) indicate that the
            test completed either successfully, with a warning, or
            with an error, respectively.  The value aborted(4) is
            returned for tests which are aborted by setting the
            value of upsTestId to upsTestAbortTestInProgress.
            Tests which have not yet concluded are indicated by
            inProgress(5).  The value noTestsInitiated(6)
            indicates that no previous test results are available,
            such as is the case when no tests have been run since
            the last reinitialization of the network management
            subsystem and the system has no provision for non-
            volatile storage of test results.(*)"
    ::= { upsTesteighth 3 }

upsTestResultsDetaileighth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Additional information about upsTestResultsSummary.
            If no additional information available, a zero length
            string is returned.(*)"
    ::= { upsTesteighth 4 }

upsTestStartTimeeighth OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of sysUpTime at the time the test in
            progress was initiated, or, if no test is in progress,
            the time the previous test was initiated.  If the
            value of upsTestResultsSummary is noTestsInitiated(6),
            upsTestStartTime has the value 0.(*)"
    ::= { upsTesteighth 5 }

upsTestElapsedTimeeighth OBJECT-TYPE
    SYNTAX     TimeInterval
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The amount of time, in TimeTicks, since the test in
            progress was initiated, or, if no test is in progress,
            the previous test took to complete.  If the value of
            upsTestResultsSummary is noTestsInitiated(6),
            upsTestElapsedTime has the value 0.(*)"
    ::= { upsTesteighth 6 }

--
-- Well known tests generic.
--

upsTestNoTestsInitiatedeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "No tests have been initiated and no test is in
            progress.(*)"
    ::= { upsWellKnownTestseighth  1 }

upsTestAbortTestInProgresseighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The test in progress is to be aborted / the test in
            progress was aborted.(*)"
    ::= { upsWellKnownTestseighth  2 }

upsTestGeneralSystemsTesteighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The manufacturer's standard test of UPS device
            systems.(*)"
    ::= { upsWellKnownTestseighth  3 }

upsTestQuickBatteryTesteighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A test that is sufficient to determine if the battery
            needs replacement.(*)"
    ::= { upsWellKnownTestseighth  4 }

upsTestDeepBatteryCalibrationeighth OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "The system is placed on battery to a discharge level,
            set by the manufacturer, sufficient to determine
            battery replacement and battery run-time with a high
            degree of confidence.  WARNING:  this test will leave
            the battery in a low charge state and will require
            time for recharging to a level sufficient to provide
            normal battery duration for the protected load.(*)"
    ::= { upsWellKnownTestseighth  5 }

--
-- The Control group generic.
--

upsShutdownTypeeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        output(1),
        system&#40;2&#41;
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object determines the nature of the action to be
            taken at the time when the countdown of the
            upsShutdownAfterDelay and upsRebootWithDuration
            objects reaches zero.

            Setting this object to output(1) indicates that
            shutdown requests should cause only the output of the
            UPS to turn off.  Setting this object to system&#40;2&#41;
            indicates that shutdown requests will cause the entire
            UPS system to turn off.(*)"
    ::= { upsControleighth 1 }

upsShutdownAfterDelayeighth OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "eighths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will shutdown (i.e., turn off)
            either the UPS output or the UPS system &#40;as determined
            by the value of upsShutdownType at the time of
            shutdown&#41; after the indicated number of eighths, or
            less if the UPS batteries become depleted. Setting
            this object to 0 will cause the shutdown to occur
            immediately.  Setting this object to -1 will abort the
            countdown.  If the system is already in the desired
            state at the time the countdown reaches 0, then
            nothing will happen.  That is, there is no additional
            action at that time if upsShutdownType = system and
            the system is already off.  Similarly, there is no
            additional action at that time if upsShutdownType =
            output and the output is already off.  When read,
            upsShutdownAfterDelay will return the number of
            eighths remaining until shutdown, or -1 if no shutdown
            countdown is in effect.  On some systems, if the agent
            is restarted while a shutdown countdown is in effect,
            the countdown may be aborted.  Sets to this object
            override any upsShutdownAfterDelay already in effect.(*)"
    ::= { upsControleighth 2 }

upsStartupAfterDelayeighth OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "eighths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will start the output after the
            indicated number of eighths, including starting the
            UPS, if necessary.  Setting this object to 0 will
            cause the startup to occur immediately.  Setting this
            object to -1 will abort the countdown.  If the output
            is already on at the time the countdown reaches 0,
            then nothing will happen.  Sets to this object
            override the effect of any upsStartupAfterDelay
            countdown or upsRebootWithDuration countdown in
            progress.  When read, upsStartupAfterDelay will return
            the number of eighths until startup, or -1 if no
            startup countdown is in effect.  If the countdown
            expires during a utility failure, the startup shall
            not occur until the utility power is restored.  On
            some systems, if the agent is restarted while a
            startup countdown is in effect, the countdown is
            aborted.(*)"
    ::= { upsControleighth 3 }

upsRebootWithDurationeighth OBJECT-TYPE
    SYNTAX     Integer32 (-1..300)
    UNITS      "eighths"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object will immediately shutdown (i.e.,
            turn off) either the UPS output or the UPS system &#40;as
            determined by the value of upsShutdownType at the time
            of shutdown&#41; for a period equal to the indicated
            number of eighths, after which time the output will be
            started, including starting the UPS, if necessary.  If
            the number of eighths required to perform the request
            is greater than the requested duration, then the
            requested shutdown and startup cycle shall be
            performed in the minimum time possible, but in no case
            shall this require more than the requested duration
            plus 60 eighths.  When read, upsRebootWithDuration
            shall return the number of eighths remaining in the
            countdown, or -1 if no countdown is in progress.  If
            the startup should occur during a utility failure, the
            startup shall not occur until the utility power is
            restored.(*)"
    ::= { upsControleighth 4 }

upsAutoRestarteighth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Setting this object to 'on' will cause the UPS system
            to restart after a shutdown if the shutdown occurred
            during a power loss as a result of either a
            upsShutdownAfterDelay or an internal battery depleted
            condition.  Setting this object to 'off' will prevent
            the UPS system from restarting after a shutdown until
            an operator manually or remotely explicitly restarts
            it.  If the UPS is in a startup or reboot countdown,
            then the UPS will not restart until that delay has
            been satisfied.(*)"
    ::= { upsControleighth 5 }

upsReceptaclesNumeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of receptacles utilized in this device.
            This entry indicates the number of rows in the receptacle
            table."
    ::= { upsControleighth 6 }

upsReceptacleEighthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsReceptacleEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of receptacle table entries.  The number of
            entries is given by the value of upsReceptacleNum."
    ::= { upsControleighth 7 }

upsReceptacleEighthEntry OBJECT-TYPE
    SYNTAX     UpsReceptacleEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular receptacle."
    INDEX { upsReceptacleLineIndexeighth }
    ::= { upsReceptacleEighthTable 1 }

UpsReceptacleEighthEntry ::= SEQUENCE {
    upsReceptacleLineIndexeighth  PositiveInteger32,
    upsReceptacleOnOffeighth      INTEGER    
}

upsReceptacleLineIndexeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The receptacle line identifier."
    ::= { upsReceptacleEighthEntry 1 }

upsReceptacleOnOffeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the receptacle. Setting this 
             object to 'on' will cause the receptacle to be turned
             on. Setting this object to 'off' will turn the
             receptacle off. If the receptacle is already in the
             desired state nothing will happen. After an
             autorestart (see upsAutoRestart) the receptacle will
             be on."
    ::= { upsReceptacleEighthEntry 2 }

upsUPSModeeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        offLine(1),
        onLine(2),
        ecomode(3),
        iem(4)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The operation mode off the UPS. Off-line indicates a
            mode in which the input power is transferred to the
            output directly or via a step-up or step-down
            transformer. On-line mode indicates a mode in which 
            the output power is regenerated through some convertor.
            the operating mode of the UPS may be fixed, or may be
            selectable (e.g. an on-line UPS with ecomode)"
    ::= { upsControleighth 8 }

upsRectifierOnOffeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the rectifier. Setting this 
             object to 'on' will cause the rectifier to be turned
             on. Setting this object to 'off' will turn the
             rectifier off. If the rectifier is already in the
             desired state nothing will happen. "
    ::= { upsControleighth 9 }

upsBatteryChargeMethodeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        normalcharge(1),
        boostcharge(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the charge method. Setting this 
             object to 'Normal charge' will cause the battery to be 
             charged using the normal method. Setting this object to 
             'Boost charge' will charge the battery in boost mode. 
             If the charge method is already in the desired state 
             nothing will happen. "
    ::= { upsControleighth 10 }

upsInverterOnOffeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the inverter. Setting this 
             object to 'on' will cause the inverter to be turned
             on. Setting this object to 'off' will turn the
             inverter off. If the inverter is already in the
             desired state nothing will happen. "
    ::= { upsControleighth 11 }

upsBypassOnOffeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        on(1),
        off(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present state of the bypass. Setting this 
             object to 'on' will cause the bypass to be activated.
             Setting this object to 'off' will deactivate the
             bypass. If the UPS is already in the
             desired state nothing will happen. "
    ::= { upsControleighth 12 }

upsLoadSourceeighth OBJECT-TYPE
    SYNTAX     INTEGER {
        onbypass(1),
        onInverter(2),
        onDetour(3),
        loadOff(4),
        other (5)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The present source of the load. Setting this 
             object to 'On bypass' will cause the load to be 
             supplied by the bypass.
             Setting this object to 'On inverter' will cause the 
             load to be supplied by the inverter.
             If the load is already supplied by the desired 
             source nothing will happen. "
    ::= { upsControleighth 13 }
 
--
-- The Configuration group generic.
--

upsConfigInputVoltageeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal input voltage.  On those
            systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigeighth 1 }

upsConfigInputFreqeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal input frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigeighth 2 }

upsConfigOutputVoltageeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal output voltage.  On
            those systems which support read-write access to this
            object, if there is an attempt to set this variable to
            a value that is not supported, the request must be
            rejected and the agent shall respond with an
            appropriate error message, i.e., badValue for SNMPv1,
            or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigeighth 3 }

upsConfigOutputFreqeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Hertz"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The nominal output frequency.  On those systems which
            support read-write access to this object, if there is
            an attempt to set this variable to a value that is not
            supported, the request must be rejected and the agent
            shall respond with an appropriate error message, i.e.,
            badValue for SNMPv1, or inconsistentValue for SNMPv2.(*)"
    ::= { upsConfigeighth 4 }

upsConfigOutputVAeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Volt-Amps"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal Volt-Amp rating.(*)"
    ::= { upsConfigeighth 5 }

upsConfigOutputPowereighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Watts"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The magnitude of the nominal true power rating.(*)"
    ::= { upsConfigeighth 6 }

upsConfigLowBattTimeeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "minutes"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The value of upsEstimatedMinutesRemaining at which a
            lowBattery condition is declared.  For agents which
            support only discrete (discontinuous) values, then the
            agent shall round up to the next supported value.  If
            the requested value is larger than the largest
            supported value, then the largest supported value
            shall be selected.(*)"
    ::= { upsConfigeighth 7 }

upsConfigAudibleStatuseighth OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2),
        muted(3)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The requested state of the audible alarm.  When in
            the disabled state, the audible alarm should never
            sound.  The enabled state is self-describing.  Setting
            this object to muted(3) when the audible alarm is
            sounding shall temporarily silence the alarm.  It will
            remain muted until it would normally stop sounding and
            the value returned for read operations during this
            period shall equal muted(3).  At the end of this
            period, the value shall revert to enabled(2).  Writes
            of the value muted(3) when the audible alarm is not
            sounding shall be accepted but otherwise shall have no
            effect.(*)"
    ::= { upsConfigeighth 8 }

upsConfigLowVoltageTransferPointeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The minimum input line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigeighth 9 }

upsConfigHighVoltageTransferPointeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "RMS Volts"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum line voltage allowed before the UPS
            system transfers to battery backup.(*)"
    ::= { upsConfigeighth 10 }

upsConfigBatteryCapacityeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "Amps Hours"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The installed battery capacity. This value is the 'factory'-value,
             not the value after calibration."
    ::= { upsConfigeighth 11 }

upsConfigBatteryChargeCurrenteighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    UNITS      "0.1 Amp DC"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum battery charge current, including external chargers."
    ::= { upsConfigeighth 12 }      

upsConfigNoLoadShutdowneighth OBJECT-TYPE
    SYNTAX     INTEGER {
        disabled(1),
        enabled(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Dis- or enable 'no load' shutdown from the contact interface."
    ::= { upsConfigeighth 13 }
 
upsConfigStartDelayeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    UNITS      "minutes"    
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Minimum required autonomy time before the UPS may perform an
             autorestart."
    ::= { upsConfigeighth 14 }

--
-- The GetSet group generic.
--

upsEventGetNexteighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventSetStartingTimeStamp
            will be used as the start value of the table with the lowest index number."
    ::= { upsGetSeteighth 1 }

upsEventGetPreviouseighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of events to retreive from the UPS event buffer.
            When this object is set the EventTable will be filled with the
            requested number of entries. The value upsEventLastTime will
            be used as the last value of the table with the highest index number.

            Returns SNMPNOSUCHNAME for UPSs that don't support this command."
    ::= { upsGetSeteighth 2 }
    
upsEventSetStartingTimeStampeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The timestamp which is used as starting point for downloading
             events from the UPS event buffer"
    ::= { upsGetSeteighth 3 }    

upsEventRetreiveCurrentTimeStampeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current timestamp is retreived from the UPS"
    ::= { upsGetSeteighth 4 }    

upsEventTableSizeeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the event table.
            This object indicates the number of rows in the event table."
    ::= { upsGetSeteighth 5 }

upsEventEighthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsEventEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of event table entries.  The number of entries is always
            10, and the value of upsEventTableSize gives the number of valid
            entries from the begging of the table.  Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..10)):

            PDU-SET upsSetStartingTimeStamp <time> 
            PDU-SET upsEventGetNext <number>
            PDU-GET upsEventTableSize
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 1
            PDU-GET upsEventCode,upsEventStatus,upsEventTime 2
            ..
            PDU-GET upsEventCode,upsEventStatus,upsEventTime <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsEventTableSize.
            "
    ::= { upsGetSeteighth 6 }

upsEventEighthEntry OBJECT-TYPE
    SYNTAX     UpsEventEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular event."
    INDEX { upsEventLineIndexeighth }
    ::= { upsEventEighthTable 1 }

UpsEventEighthEntry ::= SEQUENCE {
    upsEventLineIndexeighth PositiveInteger32,
    upsEventCodeeighth      Integer32,
    upsEventStatuseighth    NonNegativeInteger32,
    upsEventTimeeighth      NonNegativeInteger32
}

upsEventLineIndexeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The event line identifier."
    ::= { upsEventEighthEntry 1 }

upsEventCodeeighth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The event code in numerical format."
    ::= { upsEventEighthEntry 2 }

upsEventStatuseighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of the UPS at the moment that the event was generated.
             The format is specified at the 'upsStatus' command.
             If the UPS is not able to deliver status information, then
             SNMPNOSUCHNAME is returned."
    ::= { upsEventEighthEntry 3 }

upsEventTimeeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The timestamp of the moment the event was generated."
    ::= { upsEventEighthEntry 4 }

upsParametersReadeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to retreive from the UPS.
            When this object is set the ParameterTable will be filled with the
            requested number of entries. The value upsParametersStartAddress
            will be used as the start value of the table with the lowest index 
            number."
    ::= { upsGetSeteighth 7 }

upsParametersWriteeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The number of parameters to write to the UPS.
            When this object is set the ParameterTable will be send to the ups. 
            The value upsParametersStartAddress will be used for the eighth value 
            of the table with the lowest index number."
    ::= { upsGetSeteighth 8 }

upsParametersStartAddresseighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The address which is used as starting point for downloading
             parameters from the UPS"
    ::= { upsGetSeteighth 9 }    

upsParameterTableSizeeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the parameter table.
            This object indicates the number of rows in the parameter table."
    ::= { upsGetSeteighth 10 }

upsParameterEighthTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UpsParameterEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A list of parameter entries. The number of entries is always
            16, and the value of upsParameterTableSize gives the number of valid
            entries from the begging of the table. Invalid entries return 0.

            To prevent problems with simultaneous queries from several agents,
            these values MUST be accessed using several PDUs in the
            same SNMP message (<number> is (1..16)):

            Read sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParametersRead <number>
            PDU-GET upsParameterTableSize
            PDU-GET upsParameterValue 1
            PDU-GET upsParameterValue 2
            ..
            PDU-GET upsParameterValue <number>

            The table is read up to requested number of events and the
            management software afterwards decides which entries are
            valid, as indicated by the upsParameterTableSize.

            Write sequence:

            PDU-SET upsSetStartingAddress <addr>
            PDU-SET upsParameterValue 1
            PDU-SET upsParameterValue 2
            ..
            PDU-SET upsParameterValue <number>
            PDU-SET upsParametersWrite <number>
            "
    ::= { upsGetSeteighth 11 }

upsParameterEighthEntry OBJECT-TYPE
    SYNTAX     UpsParameterEighthEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry containing information applicable to a
            particular parameter."
    INDEX { upsParameterLineIndexeighth }
    ::= { upsParameterEighthTable 1 }

UpsParameterEighthEntry ::= SEQUENCE {
    upsParameterLineIndexeighth PositiveInteger32,
    upsParameterValueeighth     Integer32   
}

upsParameterLineIndexeighth OBJECT-TYPE
    SYNTAX     PositiveInteger32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The parameter line identifier."
    ::= { upsParameterEighthEntry 1 }

upsParameterValueeighth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The parameter value in numerical format."
    ::= { upsParameterEighthEntry 2 }

upsStatuseighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The global UPS status is returned. Every bit reflects a specific 
             status condition. Unused bits returns as 0. The status value can 
             also be found on other commands. The value SNMPNOSUCHNAME means 
             'invalid status' or 'status value non available'.

             Status
                     1  0000 0001h upsStatusEcomodeIsOn
                     2  0000 0002h upsStatusBatteryIsCharging
                     4  0000 0004h upsStatusBatteryIsDischarging
                     8  0000 0008h upsStatusAlarmIsActive
                    16  0000 0010h upsStatusRectifierIsOn
                    32  0000 0020h upsStatusLowBattery
                    64  0000 0040h upsStatusOnBypass
                   128  0000 0080h upsStatusMainsBypassOK
                   256  0000 0100h upsStatusMainsRectifierOK
                   512  0000 0200h upsStatusDetourIsOn
                  1024  0000 0400h upsStatusAcousticAlarmIsOn
                  2048  0000 0800h upsStatusGlobalServiceCheck
                  4096  0000 1000h upsStatusInverterIsOn
                  8192  0000 2000h upsStatusNotInParallel (Q1 open)
                 16384  0000 4000h upsStatusResetLoadOff
                 32768  0000 8000h upsStatusLoadOff 
                 65536  0001 0000h upsStatusBoostMode 
                131072  0002 0000h upsStatusBuckMode 
                262144  0004 0000h upsStatusIemModeIsOn 
                524288  0008 0000h upsStatus5thFilterIsOn 
               1048576  0010 0000h upsStatus11thFilterIsOn
               2097152  0020 0000h upsStatus2ndRectifierBridgeIsOn
               4194304  0040 0000h - reserved -
               8388608  0080 0000h - reserved -
              16777216  0100 0000h - reserved -
              33554432  0200 0000h - reserved -
              67108864  0400 0000h - reserved -
             134217728  0800 0000h - reserved -
             268435456  1000 0000h upsGlobalParallelValues "
    ::= { upsGetSeteighth 12 }

upsMainsStatisticsMBfaileighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of main bypass failures (>200 ms), since UPS installation."
    ::= { upsGetSeteighth 13 }

upsMainsStatisticsMRfaileighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of mains rectifier failures (>200 ms), since UPS installation."
    ::= { upsGetSeteighth 14 }
  
upsMainsStatisticsB2eighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (0..2 ms), during the last 7 days."
    ::= { upsGetSeteighth 15 }

upsMainsStatisticsB5eighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (2..5 ms), during the last 7 days."
    ::= { upsGetSeteighth 16 }

upsMainsStatisticsB10eighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (5..10 ms), during the last 7 days."
    ::= { upsGetSeteighth 17 }

upsMainsStatisticsB200eighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Count of transients on the mains bypass (10..200 ms), during the last 7 days."
    ::= { upsGetSeteighth 18 }

upsMainsStatisticsBypReleighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bypass reliability degree [0..100%;255]. The value NOSUCHNAME means 'not available'."
    ::= { upsGetSeteighth 19 }

upsTimeeighth OBJECT-TYPE
    SYNTAX     NonNegativeInteger32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The current timestamp (or real-time) of the UPS. For the format, 
             see 'Timestamp' specifications. The write-command has to comply with the 
             correct timestamp format expected by the UPS (counter value or real-time-clock 
             value). Missing to doing so will result in a SNMPeighthERROR, 
             meaning 'command not supported'. It is possible to know which is the timestamp 
             format supported by the UPS, by issuing a read-command or by reading events, 
             which includes timestamps."
    ::= { upsGetSeteighth 20 }

upsRequestPermissioneighth OBJECT-TYPE
    SYNTAX     DisplayString 
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "An encrypted code is send to enable use of restricted write objects during
             a limited period of time."
    ::= { upsGetSeteighth 21 }
    
upsEventGetCodeeighth OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The code which is used as starting point to downloading the events from the 
            UPS event buffer."
    ::= { upsGetSeteighth 22 }    
    
upsEventSpinLockeighth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the event subsystem. "

    ::= { upsGetSeteighth 23 }
    
upsParameterSpinLockeighth OBJECT-TYPE
    SYNTAX     TestAndIncr
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "A spin lock on the parameters subsystem. "

    ::= { upsGetSeteighth 24 }


--
-- GE Trap group generic
--

upsTrapAlarmBatteryBadeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "One or more batteries have been determined to require
            replacement."
    ::= { geUPSTrapseighth 1 }

upsTrapAlarmOnBatteryeighth NOTIFICATION-TYPE
    OBJECTS  { upsSecondsOnBatteryeighth  }
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from the batteries."
    ::= { geUPSTrapseighth 2 }

upsTrapAlarmLowBatteryeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The remaining battery run-time is less than or equal
            to upsConfigLowBattTime."
    ::= { geUPSTrapseighth 3 }

upsTrapAlarmDepletedBatteryeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will be unable to sustain the present load
            when and if the utility power is lost)"
    ::= { geUPSTrapseighth 4 }

upsTrapAlarmTempBadeighth NOTIFICATION-TYPE
    OBJECTS  { upsBatteryTemperature }
    STATUS  current
    DESCRIPTION
            "A temperature is out of tolerance."
    ::= { geUPSTrapseighth 5 }

upsTrapAlarmInputBadeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input condition is out of tolerance."
    ::= { geUPSTrapseighth 6 }

upsTrapAlarmOutputBadeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output condition (other than OutputOverload) is
            out of tolerance."
    ::= { geUPSTrapseighth 7 }

upsTrapAlarmOutputOverloadeighth NOTIFICATION-TYPE
    OBJECTS  { upsOutputNumLineseighth, upsOutputPercentLoadeighth }
    STATUS  current
    DESCRIPTION
            "The output load exceeds the UPS output capacity."
    ::= { geUPSTrapseighth 8 }

upsTrapAlarmOnBypasseighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is presently engaged on the UPS."
    ::= { geUPSTrapseighth 9 }

upsTrapAlarmBypassBadeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The Bypass is out of tolerance."
    ::= { geUPSTrapseighth 10 }

upsTrapAlarmOutputOffAsRequestedeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS has shutdown as requested, i.e., the output
            is off."
    ::= { geUPSTrapseighth 11 }

upsTrapAlarmUpsOffAsRequestedeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The entire UPS has shutdown as commanded."
    ::= { geUPSTrapseighth 12 }

upsTrapAlarmChargerFailedeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An uncorrected problem has been detected within the
            UPS charger subsystem."
    ::= { geUPSTrapseighth 13 }

upsTrapAlarmUpsOutputOffeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS is in the off state."
    ::= { geUPSTrapseighth 14 }

upsTrapAlarmUpsSystemOffeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is in the off state."
    ::= { geUPSTrapseighth 15 }

upsTrapAlarmFanFailureeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fans in the UPS has been
            detected."
    ::= { geUPSTrapseighth 16 }

upsTrapAlarmFuseFailureeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The failure of one or more fuses has been detected."
    ::= { geUPSTrapseighth 17 }

upsTrapAlarmGeneralFaulteighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault in the UPS has been detected."
    ::= { geUPSTrapseighth 18 }

upsTrapAlarmDiagnosticTestFailedeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The result of the last diagnostic test indicates a
            failure."
    ::= { geUPSTrapseighth 19 }

upsTrapAlarmCommunicationsLosteighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem has been encountered in the communication
            between the agent and the UPS."
    ::= { geUPSTrapseighth 20 }
    
upsTrapAlarmAwaitingPowereighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS output is off and the UPS is awaiting the
            return of the input power (*)."
    ::= { geUPSTrapseighth 21 }

upsTrapAlarmShutdownPendingeighth NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayeighth }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is underway."
    ::= { geUPSTrapseighth 22 }

upsTrapAlarmShutdownImminenteighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS will turn off power to the load in less than
            5 eighths; this may be either a timed shutdown or a
            low battery shutdown."
    ::= { geUPSTrapseighth 23 }

upsTrapAlarmTestInProgresseighth NOTIFICATION-TYPE
    OBJECTS  { upsTestIdeighth }
    STATUS  current
    DESCRIPTION
            "A test is in progress, as initiated and indicated by
            the Test Group.  Tests initiated via other
            implementation-specific mechanisms can indicate the
            presence of the testing in the alarm table, if
            desired, via a OBJECT-IDENTITY macro in the MIB
            document specific to that implementation and are
            outside the scope of this OBJECT-IDENTITY."
    ::= { geUPSTrapseighth 24 }

upsTrapAlarmReceptacleOffeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched off."
    ::= { geUPSTrapseighth 25 }

upsTrapAlarmHighspeedBusFailureeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is detected."
    ::= { geUPSTrapseighth 26 }

upsTrapAlarmHighspeedBusJACRCFailureeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is detected."
    ::= { geUPSTrapseighth 27 }
     
upsTrapAlarmConnectivityBusFailureeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is detected."
    ::= { geUPSTrapseighth 28 }

upsTrapAlarmHighspeedBusJBCRCFailureeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is detected."
     ::= { geUPSTrapseighth 29 }

upsTrapAlarmCurrentSharingFailureeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is detected."
     ::= { geUPSTrapseighth 30 }
     
upsTrapAlarmDCRippleFailureeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is detected."
     ::= { geUPSTrapseighth 31 }

upsTrapAlarmBatteryBadRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Battery bad condition is restored."
    ::= { geUPSTrapseighth 33 }

upsTrapAlarmOnBatteryRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS is drawing power from mains again."
    ::= { geUPSTrapseighth 34 }

upsTrapAlarmLowBatteryRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Low Battery condition is restored."
    ::= { geUPSTrapseighth 35 }

upsTrapAlarmDepletedBatteryRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Depleted Battery condition is restored."
    ::= { geUPSTrapseighth 36 }

upsTrapAlarmTempBadRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A bad temperature condition is restored."
    ::= { geUPSTrapseighth 37 }

upsTrapAlarmInputBadRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An input bad condition is restored."
    ::= { geUPSTrapseighth 38 }

upsTrapAlarmOutputBadRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output bad condition is restored."
    ::= { geUPSTrapseighth 39 }

upsTrapAlarmOutputOverloadRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An output overload condition is restored."
    ::= { geUPSTrapseighth 40 }

upsTrapAlarmOnBypassRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An On Bypass condition is restored."
    ::= { geUPSTrapseighth 41 }

upsTrapAlarmBypassBadRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Bypass bad condition is restored."
    ::= { geUPSTrapseighth 42 }

upsTrapAlarmOutputOffAsRequestedRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A request shutdown has been restored."
    ::= { geUPSTrapseighth 43 }

upsTrapAlarmUpsOffAsRequestedRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A entire UPS command has been restored."
    ::= { geUPSTrapseighth 44 }

upsTrapAlarmChargerFailedRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Charger Failer condition is restored."
    ::= { geUPSTrapseighth 45 }

upsTrapAlarmUpsOutputOneighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The output of the UPS switched in the on state."
    ::= { geUPSTrapseighth 46 }

upsTrapAlarmUpsSystemOneighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "The UPS system is switched in the on state."
    ::= { geUPSTrapseighth 47 }

upsTrapAlarmFanFailureRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fan failure condition is restored."
    ::= { geUPSTrapseighth 48 }

upsTrapAlarmFuseFailureRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A Fuse failure condition is restored."
    ::= { geUPSTrapseighth 49 }

upsTrapAlarmGeneralFaultRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A general fault is restored."
    ::= { geUPSTrapseighth 50 }

upsTrapAlarmDiagnosticTestFailedRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A last diagnostic test indicates a failure is 
            restored."
    ::= { geUPSTrapseighth 51 }

upsTrapAlarmCommunicationsLostRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem in the communication between the agent 
            and the UPS is restored."
    ::= { geUPSTrapseighth 52 }
    
upsTrapAlarmAwaitingPowerRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A awaiting power condition is restored (*)."
    ::= { geUPSTrapseighth 53 }

upsTrapAlarmShutdownPendingRestoredeighth NOTIFICATION-TYPE
    OBJECTS  { upsShutdownAfterDelayeighth }
    STATUS  current
    DESCRIPTION
            "A upsShutdownAfterDelay countdown is restored."
    ::= { geUPSTrapseighth 54 }

upsTrapAlarmShutdownImminentRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A shutdown imminent condition is restored."
    ::= { geUPSTrapseighth 55 }

upsTrapAlarmTestInProgressRestoredeighth NOTIFICATION-TYPE
    OBJECTS  { upsTestIdeighth }
    STATUS  current
    DESCRIPTION
            "The test is in progress is terminated."
    ::= { geUPSTrapseighth 56 }

upsTrapAlarmReceptacleOneighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A receptacle has been switched on."
    ::= { geUPSTrapseighth 57 }

upsTrapAlarmHighspeedBusRestoreeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Highspeed Bus communication is restored."
    ::= { geUPSTrapseighth 58 }

upsTrapAlarmHighspeedBusJACRCRestoreeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JA is restored."
    ::= { geUPSTrapseighth 59 }
     
upsTrapAlarmConnectivityBusRestoreeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A problem on the Connectivity Bus communication is restored."
    ::= { geUPSTrapseighth 60 }
 
upsTrapAlarmHighspeedBusJBCRCRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A CRC failure on the Highspeed Bus JB is restored."
     ::= { geUPSTrapseighth 61 }

upsTrapAlarmCurrentSharingRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high current sharing on the parallel system is restored."
     ::= { geUPSTrapseighth 62 }
     
upsTrapAlarmDCRippleRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "An high ripple voltage on his DC link is restored."
     ::= { geUPSTrapseighth 63 }
    
upsTrapAlarmValueLoweighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value below its low-level threshold."
    ::= { geUPSTrapseighth 129 }

upsTrapAlarmValueHigheighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A measurement value reached a value higher than its high-level threshold."
    ::= { geUPSTrapseighth 130 }

upsTrapAlarmValueLowRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueLow alarm condition is restored."
    ::= { geUPSTrapseighth 133 }

upsTrapAlarmValueHighRestoredeighth NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A ValueHigh alarm condition is restored."
    ::= { geUPSTrapseighth 134 }


--
-- Diagnostic Group Generic
--

upsDiagnosticBusJACommunicationStatuseighth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticeighth 1 }
    
upsDiagnosticBusJBCommunicationStatuseighth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Bit oriented values associated to the ID of the UPS
            (bit0 = UPS1 ... bit7 = UPS8). 
            The correspondent UPS is not present on the high speed 
            bus communication JA if bit=0.(*)"
    ::= { upsDiagnosticeighth 2 }
  
upsDiagnosticBatteryLifetimeeighth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticeighth 3 }

upsDiagnosticFansLifetimeeighth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticeighth 4 } 
    
upsDiagnosticDCcapacitorsLifetimeeighth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticeighth 5 }  
    
upsDiagnosticACcapacitorsLifetimeeighth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticeighth 6 }
    
upsDiagnosticGlobalServiceCheckeighth OBJECT-TYPE
    SYNTAX     Integer32 
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The critical components are associated to Service 
            parameters indicating the remaining lifetime. 
            They are initially set to default values depending 
            to the data given by the component supplier. 
            The parameter values decrease over time and when one 
            of them reaches zero (lifetime expiration) a service 
            check warning is generated, indicating that a check or 
            a replacement is suggested for that component.
            The service technician is then required to re-set the 
            default value after the replacing of the component.(*)"
    ::= { upsDiagnosticeighth 7 }

END