AD | Application | AWS | Azure | Cloud | Database | Enterprise | Environmental | Event Log | File System | IoT | IT Service | Network/System | Infra | Performance | Protocol | SaaS | Security | Service Level | Storage | Linux | VMware | VoIP | Web | Wireless | SNMP

Crumbtrail

MonitorTools.com » Technical documentation » SNMP » MIB » American Power Conversion Corp » PowerNet-MIB

PowerNet-MIB device MIB details by American Power Conversion Corp

PowerNet-MIB file content

The SNMP protocol is used to for conveying information and commands between agents and managing entities. SNMP uses the User Datagram Protocol (UDP) as the transport protocol for passing data between managers and agents. The reasons for using UDP for SNMP are, firstly it has low overheads in comparison to TCP, which uses a 3-way hand shake for connection. Secondly, in congested networks, SNMP over TCP is a bad idea because TCP in order to maintain reliability will flood the network with retransmissions.

Management information (MIB) is represented as a collection of managed objects. These objects together form a virtual information base called MIB. An agent may implement many MIBs, but all agents must implement a particular MIB called MIB-II [16]. This standard defines variables for things such as interface statistics (interface speeds, MTU, octets sent, octets received, etc.) as well as various other things pertaining to the system itself (system location, system contact, etc.). The main goal of MIB-II is to provide general TCP/IP management information.

Use ActiveXperts Network Monitor 2024 to import vendor-specific MIB files, inclusing PowerNet-MIB.


Vendor: American Power Conversion Corp
Mib: PowerNet-MIB  [download]  [view objects]
Tool: ActiveXperts Network Monitor 2024 [download]    (ships with advanced SNMP/MIB tools)
-- AMERICAN POWER CONVERSION PowerNet-MIB
-- PowerNet-MIB (APC internal SCCS version 1.55)
-- Syntax error(s) fixed by HP 5/19/95 : See all lines w/ string "Original MIB".

-- Copyright (c) American Power Conversion Corporation, 1992, 1993.
-- PowerNet is a Trademark of American Power Conversion Corp.

-- Title: APC TOP LEVEL PowerNet MIB
-- Date: May 7, 1992
-- By: Pete Yoest

-- *************************************************************************
-- RELEASE HISTORY:
-- Date: October 15, 1992 (Version 1.0)
-- Revised by Doug Rademacher, Pete Yoest, Bryan Hoke, and Hong Wang.
--
-- Date: April 21, 1993  (Version 1.01)
-- Annotated by Bob Thurston for compatibility with Novell's NMS product.
--
-- Date: September 8, 1993  (Version 1.1)
-- Revised by Hong Wang and Bryan Hoke.
--
--    ** THE FOLLOWING IS NOT REQUIRED TO BE IN DISTRIBUTION DISK **
--    Major changes since Version 1.0 
--      a) Specified SYNTAX TimeTicks for the following non-date 
--         time-related OIDs:
--           upsBasicTimeOnBattery
--           upsAdvConfigReturnDelay,   upsAdvConfigShutoffDelay,
--           upsAdvConfigUpsSleepTime,  upsAdvBatteryRunTimeRemaining,
--           upsAdvConfigAlarmTimer,    upsAdvConfigLowBatteryRunTime, 
--      b) Removed 2 OIDs from MIB:  
--           upsAdvBatteryVoltage,   upsAdvFullChargeBatteryVoltage 
--      c) Added system branch which has 3 leaves:
--           backUPS, smartUPS, matrixUPS
--      d) Modified wording of upsDischarged trap.
--      e) Specified SYNTAX Gauge for the following OIDs:
--              upsAdvBatteryCapacity,  upsAdvBatteryTemperature
--              upsAdvInputLineVoltage,  upsAdvInputMaxLineVoltage
--              upsAdvInputFrequency,  upsAdvInputMinLineVoltage,
--              upsAdvOutputFrequency,  upsAdvOutputVoltage,
--              upsAdvOutputLoad,  mUpsEnvironAmbientTemperature,
--              mUpsEnvironRelativeHumidity
--      f) Added the following OIDs under system branch:
--              smartUPS250
--              smartUPS400
--              smartUPS600
--              smartUPS900
--              smartUPS1250
--              smartUPS2000
--              matrixUPS
--              matrixUPS3000
--              matrixUPS5000
--      g) Added "system" subtree as a new branch under OID "products"
--      h) Moved "upsAdvTestIndicators" to the control group and renamed
--         to "upsAdvControlFlashAndBeep". 
--      i) Added new trap "batteryReplacementNeeded".
--      j) Removed redundant reference to "ups" from following OIDs:
--            upsBasicIdentUpsName is now upsBasicIdentName
--            upsAdvIdentUpsSerialNumber is now upsAdvIdentSerialNumber
--      k) Added IMPORTS Gauge and TimeTicks for compatability.
--    ** End of Version 1.1 Modifications **
--
-- Date: October 19, 1993
-- Revised: Hong Wang
-- Comment:
--      a) Add: upsAdvControlTurnOnUPS in advanced control group

-- Date: December 1, 1993 
-- Revised: Bryan Hoke
--
--
-- Date: February 27, 1994
-- Revised: Bob Thurston & Hong Wang
-- Comment:
--      a) Hong patched Bob's file in this mib with minor modification 
--              a.1> remove "=" from the following INDEX clause 
--                       INDEX  = { apcUpsConfigFieldIndex }
--              a.2> make the following OID acceptable to mib compiler 
--                       apcUpsConfigFieldOID OBJECT IDENTIFIER
--                            DESCRIPTION
--                               "The OID of the current configurable value."
--                       ::= { apcUpsConfigEntry 2 }
--              a.3> add Novell NMS specific annotation clauses for new TRAPs
--      b) Add: Matrix specific OIDs, including
--              upsAdvBatteryNumOfBattPacks,   upsAdvBatteryNumOfBadBattPacks
--              byPass-related new options in  upsBasicOutputStatus,
--              upsAdvOutputCurrent,           upsAdvOutputVoltAmpPercent
--              upsAdvConfigBattExhaustThresh, upsAdvConfigPassword
--              upsAdvConfigAllowedSetTable    upsAdvControlBypassSwitch
--
--      c) Add: Matrix specific Traps, including
--              hardwareFailureBypass          softwareBypass
--              switchedBypass                 returnFromBypass
--              bypassPowerSupplyFailure       baseFanFailure
--              batteryPackCommLost            batteryPackCommEstablished
--
--
-- Date: March 1, 1994
-- Revised: Hong Wang
-- Comment: a) merge miniAdapter subtree into powernet mib tree
--          b) add the following subtree
--              serialPort2Config            OBJECT IDENTIFIER ::=  { serialPort2 1}
--              serialPort2Mode OBJECT-TYPE
--                 SYNTAX INTEGER  {
--                    localConsole(1),
--                    passthrough(2)
--                 }
--                 ACCESS read-write
--                 STATUS mandatory
--                 DESCRIPTION
--                    "Setting this variable to passthrough will enable mini's port2
--                     behave like a UPS port. Choosing localConsole will enable the port
--                     to be used as local console."
--                    ::= { serialPort2Config 1 }
--
--         c) modify  upsBasicOutputStatus OBJECT-TYPE by distinguishing
--                 timedSleeping(5) from  sleepTillPowerReturn(11)
--            which correspond to S-Sleep and @ddd-Sleep
--
--         d) add new subtree
--            upsComm              OBJECT IDENTIFIER ::=  { ups 8 }
--            the upsComm group
--            upsCommStatus OBJECT-TYPE
--               SYNTAX INTEGER {
--                  ok(1),
--                  noComm(2)
--               }
--               ACCESS read-only
--               STATUS mandatory
--               DESCRIPTION
--                  "The status of agent's communication with UPS. "
--               ::= { upsComm 1 }
--
-- Date: May 2, 1994
-- Revised: Doug Rademacher
-- Comment: reword several mib OIDs and TRAP defs
--
--
-- Date: May 10, 1994
-- Revised: Hong Wang
-- Comment: a) add mcontrol subtree under apcmgmt and agent restart OID
--          b) add 2 traps: agentRestart and upsTurnedOn
--          c) reword "sleepingUntilPowerReturn"
--          d) remove VoltAmp OID from output group
--          e) use small case for options in TrapType OID
--
--
-- Date: May 13, 1994
-- Revised: Doug Rademacher
-- Comment: reword several mib OIDs and TRAP defs
--
--
-- Date: May 16, 1994
-- Revised: Hong Wang
-- Comment: depricate Severity OID and change its access to READ_ONLY
--        spell check sleepUntil
--
-- Date: June 2, 1994
-- Revised: Bob Thurston
-- Comment: changed access on the 'normalState' row in the 'mUpsContactEntry'
--          table to read-write.
--
-- Date: August 20, 1994
-- Revised: Hong Wang
-- Comment: add features for v2.2 agent, including
--          new options:
--              1> loadAndExecuteNewAgent (3) in mcontrolRestartAgent, to start update
--                      flash memory with new agent code image via TFTP
--
--              2> onSmartTrim(12)  in upsBasicOutputStatus, to indicate if a UPS
--                      is on smart trim mode
--
--          new OIDs:  
--              1> mconfigBOOTPEnabled  as {mconfig 3}, to indicate whether adapter
--                      is configured to use BOOTP.
--
--              2> mconfigTFTPServerIP  as {mconfig 4}, operation on this OID depends on value
--                      of mconfigBOOTPEnabled 
--
--              3> newCodeAuthentViaTFTP as {mconfig 5}, to indicate result of authentication
--                      performed on the code image file at TFTP server.
--
--          new TRAPs:  
--              1> smartTrimOn, to indicate UPS is on smart trim
-- 
--              2> codeAuthenticationDone, to indicate authentication on remote code image
--                      at a TFTP server has been performed. Result of the authentication
--                      together with the TFTP server IP address is associated with this 
--                      trap.
--
-- Date: August 27, 1994
-- Revised: Hong Wang
-- Comment: minor changes:
--              1> ';' is removed after onSmartTrim(12) so that 
--                      every known  NMS can compile this mib
--              2> "unknown" is added as 1st option for new OID: newCodeAuthentViaTFTP,
--                      to indicate  no authentication has been performed on an agent 
--                      image via TFTP since boot time.
--
-- Date: September 28, 1994 (Version 2.2)
-- Revised: Bob Thurston
-- Comment: Added attributes to the 'software' branch.
--
--       Added branch software.powerNetSubAgent.powerNetSoftwareSystem:
--
--          powerNetSoftwareSystemDescription OBJECT-TYPE
--             SYNTAX  DisplayString (SIZE (0..79))
--             ACCESS  read-only
--             STATUS  mandatory
--             DESCRIPTION
--                "A brief description of the PowerNet sub-agent."
--             ::= { powerNetSoftwareSystem 1 }
--
--          powerNetSoftwareOid  OBJECT IDENTIFIER ::= { powerNetSoftwareSystem 2 }
--
--          powerNetSmuxPeer     OBJECT IDENTIFIER ::= { powerNetSoftwareOid 1 }
--          powerNetDPIPeer      OBJECT IDENTIFIER ::= { powerNetSoftwareOid 2 }
--
--          powerNetSoftwareSystemUpTime  OBJECT-TYPE
--             SYNTAX  TimeTicks
--             ACCESS  read-only
--             STATUS  mandatory
--             DESCRIPTION
--                   "The time that the sub-agent has been running."
--             ::= { powerNetSoftwareSystem 3 }
--
--
--       Added branch software.powerNetSubAgent.powerNetSoftwareConfig:
--
--          powerNetSoftwareTableSize OBJECT-TYPE
--             SYNTAX INTEGER
--             ACCESS read-only
--             STATUS mandatory
--             DESCRIPTION
--                "The number of software modules supporting the UPS."
--             ::= { powerNetSoftwareConfig 1 }
--
--          powerNetSoftwareTable OBJECT-TYPE
--             SYNTAX SEQUENCE OF SoftwareEntry
--             ACCESS not-accessible
--             STATUS mandatory
--             DESCRIPTION 
--                "A list of the software monitoring the UPS."
--             ::= { powerNetSoftwareConfig 2 }
--
--          powerNetSoftwareEntry OBJECT-TYPE
--             SYNTAX SoftwareEntry
--             ACCESS not-accessible
--             STATUS mandatory
--             DESCRIPTION
--                "An entry containing information on a software module."
--             INDEX { moduleNumber }
--             ::= { powerNetSoftwareTable 1 }
--
--          SoftwareEntry ::= 
--             SEQUENCE {
--                moduleNumber
--                   INTEGER,
--                moduleName
--                   DisplayString,
--                moduleVersion
--                   DisplayString,
--                moduleDate
--                   DisplayString
--             }
--
-- Date: September 30, 1994
-- Revised: Bob Thurston
-- Comment: changed the description on the 'normalState' row in
--          the 'mUpsContactEntry' table.
--
-- Date: October 5, 1994
-- Revised: Hong Wang 
-- Comment: 1> change "size" to "SIZE" for powerNetSoftwareSystemDescription 
--	    2> add access, syntax and description to OID:
--					   powerNetSoftwareSystemOid
-- 
-- ************************************************************************
-- PowerNet-MIB { iso org(3) dod(6) internet(1) private(4)
--    enterprises(1) apc(318) }

PowerNet-MIB DEFINITIONS ::= BEGIN

IMPORTS
   enterprises, IpAddress, Gauge, TimeTicks     FROM RFC1155-SMI
   DisplayString                                FROM RFC1213-MIB
   OBJECT-TYPE                                  FROM RFC-1212
   TRAP-TYPE                                    FROM RFC-1215;


apc                     OBJECT IDENTIFIER ::=  { enterprises 318 }

products                OBJECT IDENTIFIER ::=  { apc 1 }
apcmgmt                 OBJECT IDENTIFIER ::=  { apc 2 }

hardware                OBJECT IDENTIFIER ::=  { products 1 }
software                OBJECT IDENTIFIER ::=  { products 2 }
system                  OBJECT IDENTIFIER ::=  { products 3 }

mconfig                 OBJECT IDENTIFIER ::=  { apcmgmt 1 }
mcontrol                OBJECT IDENTIFIER ::=  { apcmgmt 2 }

ups                     OBJECT IDENTIFIER ::=  { hardware 1 }
measureUps              OBJECT IDENTIFIER ::=  { hardware 2 }
miniSNMPadapter         OBJECT IDENTIFIER ::=  { hardware 3 }

powerNetSubAgent        OBJECT IDENTIFIER ::=  { software 1 }

powerNetSoftwareSystem  OBJECT IDENTIFIER ::=  { powerNetSubAgent 1 }
powerNetSoftwareConfig  OBJECT IDENTIFIER ::=  { powerNetSubAgent 2 }

backUPS                 OBJECT IDENTIFIER ::=  { system  1 }
smartUPS                OBJECT IDENTIFIER ::=  { system  2 }
matrixUPS               OBJECT IDENTIFIER ::=  { system  3 }

smartUPS250             OBJECT IDENTIFIER ::=  { smartUPS  1 }
smartUPS400             OBJECT IDENTIFIER ::=  { smartUPS  2 }
smartUPS600             OBJECT IDENTIFIER ::=  { smartUPS  3 }
smartUPS900             OBJECT IDENTIFIER ::=  { smartUPS  4 }
smartUPS1250            OBJECT IDENTIFIER ::=  { smartUPS  5 }
smartUPS2000            OBJECT IDENTIFIER ::=  { smartUPS  6 }

smartUPS450             OBJECT IDENTIFIER ::=  { smartUPS  7 }
smartUPS700             OBJECT IDENTIFIER ::=  { smartUPS  8 }
smartUPS1000            OBJECT IDENTIFIER ::=  { smartUPS  9 }
smartUPS1400            OBJECT IDENTIFIER ::=  { smartUPS  10 }
smartUPS2200            OBJECT IDENTIFIER ::=  { smartUPS  11 }
smartUPS3000            OBJECT IDENTIFIER ::=  { smartUPS  12 }

matrixUPS3000           OBJECT IDENTIFIER ::=  { matrixUPS 1 }
matrixUPS5000           OBJECT IDENTIFIER ::=  { matrixUPS 2 }

upsIdent                OBJECT IDENTIFIER ::=  { ups 1 }
upsBattery              OBJECT IDENTIFIER ::=  { ups 2 }
upsInput                OBJECT IDENTIFIER ::=  { ups 3 }
upsOutput               OBJECT IDENTIFIER ::=  { ups 4 }
upsConfig               OBJECT IDENTIFIER ::=  { ups 5 }
upsControl              OBJECT IDENTIFIER ::=  { ups 6 }
upsTest                 OBJECT IDENTIFIER ::=  { ups 7 }
upsComm                 OBJECT IDENTIFIER ::=  { ups 8 }

upsBasicIdent           OBJECT IDENTIFIER ::=  { upsIdent 1 }
upsAdvIdent             OBJECT IDENTIFIER ::=  { upsIdent 2 }

upsBasicBattery         OBJECT IDENTIFIER ::=  { upsBattery 1 }
upsAdvBattery           OBJECT IDENTIFIER ::=  { upsBattery 2 }

upsBasicInput           OBJECT IDENTIFIER ::=  { upsInput 1 }
upsAdvInput             OBJECT IDENTIFIER ::=  { upsInput 2 }

upsBasicOutput          OBJECT IDENTIFIER ::=  { upsOutput 1 }
upsAdvOutput            OBJECT IDENTIFIER ::=  { upsOutput 2 }

upsBasicConfig          OBJECT IDENTIFIER ::=  { upsConfig 1 }
upsAdvConfig            OBJECT IDENTIFIER ::=  { upsConfig 2 }

upsBasicControl         OBJECT IDENTIFIER ::=  { upsControl 1 }
upsAdvControl           OBJECT IDENTIFIER ::=  { upsControl 2 }

upsBasicTest            OBJECT IDENTIFIER ::=  { upsTest 1 }
upsAdvTest              OBJECT IDENTIFIER ::=  { upsTest 2 }

mUpsEnviron             OBJECT IDENTIFIER ::=  { measureUps 1 }
mUpsContact             OBJECT IDENTIFIER ::=  { measureUps 2 }

serialPort              OBJECT IDENTIFIER ::=  { miniSNMPadapter 1}

serialPort1             OBJECT IDENTIFIER ::=  { serialPort 1}
serialPort2             OBJECT IDENTIFIER ::=  { serialPort 2}

serialPort2Config       OBJECT IDENTIFIER ::=  { serialPort2 1}
serialPort2Control      OBJECT IDENTIFIER ::=  { serialPort2 2}

-- object types

-- the apcmgmt group
-- the mconfig group

mconfigNumTrapReceivers OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of managers to send traps to."
   ::= { mconfig 1 }

mconfigTrapReceiverTable OBJECT-TYPE
   SYNTAX SEQUENCE OF MconfigTrapReceiverEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "A list of managers to send traps to.  The number of
       entries is given by the value of mconfigNumTrapReceivers.
      Maximum number of Trap Receivers is four."
   ::= { mconfig 2 }

mconfigTrapReceiverEntry OBJECT-TYPE
   SYNTAX MconfigTrapReceiverEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "The managers to send traps to."
   INDEX  { trapIndex}
   ::= { mconfigTrapReceiverTable 1 }

MconfigTrapReceiverEntry ::=
   SEQUENCE {
      trapIndex
         INTEGER,
      receiverAddr
         IpAddress,
      communityString
          DisplayString,
      severity
         INTEGER,
      acceptThisReceiver
         INTEGER, 
      receiveTrapType
         INTEGER
   }

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

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

communityString OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The community name to use in the trap when
       sent to the manager."
   ::= { mconfigTrapReceiverEntry 3 }

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

acceptThisReceiver OBJECT-TYPE
   SYNTAX INTEGER   {
      yes (1),
      no  (2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "An entry will become active if yes, and will
       be deleted if no."
   ::= { mconfigTrapReceiverEntry 5 }


receiveTrapType OBJECT-TYPE
   SYNTAX INTEGER   {
      powernet (1),
      ietf     (2),
      both     (3)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The node in this entry will receive traps defined in APC
       PowerNet MIB, if this OID is set to yes."
   ::= { mconfigTrapReceiverEntry 6 }

mconfigBOOTPEnabled OBJECT-TYPE
   SYNTAX INTEGER {
      yes (1),
      no  (2)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The value of yes(1) indicates the PowerNet Adapter is configured to
       obtain its IP configuration parameters from a BOOTP server.
       
       The value of no(2) indicates adapter will assume IP configuration parameters 
       values saved in adapter's eeprom, which was orginially configured at local
       console."
   ::= { mconfig 3 }

mconfigTFTPServerIP OBJECT-TYPE
   SYNTAX IpAddress
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The IP address of TFTP server. If mconfigBOOTPEnabled is yes(1), then this IP address
       is provided by BOOTP server and not allowed to be modified; otherwise, this IP address
       can be modified.
       
       Before using TFTP to load new code image, the image file should be placed in proper
       directory of the specified TFTP server."
   ::= { mconfig 4 }


newCodeAuthentViaTFTP OBJECT-TYPE
   SYNTAX INTEGER {
      unknown                (1),
      validNewAgentCodeImage (2),
      sameAgentCodeImage     (3),
      invalidAgentCodeImage  (4)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Once mcontrolRestartAgent is set to loadAndExecuteNewAgent (3), PowerNet adapter will
       start to load the remote image file, for authentication only, instead of saving the code 
       into flash memory. Only if a validNewAgentCodeImage (1) is found will the agent reboot
       the PowerNet adaoter and invoke the loader to load and save new code into the flash memory. 
       Otherwise, the current agent code will continue to run.
       
       This OID shows the result of the above authentication process.  
                validNewAgentCodeImage (1) means the code image on TFTP server 
                is a valid APC agent code and is different version from the current agent.
                Once agent identifies this, loader will start to update flash memory with
                the new agent code.
       
                sameAgentCodeImage  (2)  means the code image on TFTP server is exactly the
                same as the currently running agent. Currently running agent will not invoke
                loader to load the same again.
                
                invalidAgentCodeImage  (3) means the code image on TFTP server is NOT a valid
                APC agent code. Thus, current agent will not load it into the flash memory.
                
       The value of this OID will be associated with TRAP codeImageAuthentDone."
       
   ::= { mconfig 5 }

-- the mcontrol group

mcontrolRestartAgent OBJECT-TYPE
   SYNTAX INTEGER   {
      restartCurrentAgent    (1),
      continueCurrentAgent   (2),
      loadAndExecuteNewAgent (3)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this OID to restartCurrentAgent (1) 
       will restart the same SNMP agent code currently saved in
       flash memory.
       
       Setting this OID to loadAndExecuteNewAgent (3) will enable adapter
       to load a new agent code into the flash memory and start to
       execute this new agent code. Bootp/tftp is the default protocol."
   ::= { mcontrol 1 }

-- the software group
-- the powerNetSubAgent group
-- the powerNetSoftwareSystem group
      
powerNetSoftwareSystemDescription OBJECT-TYPE
   SYNTAX  DisplayString (SIZE (0..79))
   ACCESS  read-only
   STATUS  mandatory
   DESCRIPTION
      "A brief description of the PowerNet sub-agent."
   ::= { powerNetSoftwareSystem 1 }

powerNetSoftwareOid  OBJECT-TYPE
   SYNTAX  OBJECT IDENTIFIER
   ACCESS  read-only
   STATUS  mandatory
   DESCRIPTION
      "The object identifier of the PowerNet sub-agent."
   ::= { powerNetSoftwareSystem 2 }

powerNetSmuxPeer     OBJECT IDENTIFIER ::= { powerNetSoftwareOid 1 }
powerNetDPIPeer      OBJECT IDENTIFIER ::= { powerNetSoftwareOid 2 }

powerNetSoftwareSystemUpTime  OBJECT-TYPE
   SYNTAX  TimeTicks
   ACCESS  read-only
   STATUS  mandatory
   DESCRIPTION
         "The time that the sub-agent has been running."
   ::= { powerNetSoftwareSystem 3 }


-- powerNetSoftwareConfig group

powerNetSoftwareTableSize OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of software modules supporting the UPS."
   ::= { powerNetSoftwareConfig 1 }

powerNetSoftwareTable OBJECT-TYPE
   SYNTAX SEQUENCE OF SoftwareEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION 
      "A list of the software monitoring the UPS."
   ::= { powerNetSoftwareConfig 2 }

powerNetSoftwareEntry OBJECT-TYPE
   SYNTAX SoftwareEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "An entry containing information on a software module."
   INDEX { moduleNumber }
   ::= { powerNetSoftwareTable 1 }

SoftwareEntry ::= 
   SEQUENCE {
      moduleNumber
         INTEGER,
      moduleName
         DisplayString,
      moduleVersion
         DisplayString,
      moduleDate
         DisplayString
   }

moduleNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The index into the Software Entry Table"
   ::= { powerNetSoftwareEntry 1 }

moduleName OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..79))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The name of the software module."
   ::= { powerNetSoftwareEntry 2 }

moduleVersion OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..8))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The version of the software module." 
   ::= { powerNetSoftwareEntry 3 }

moduleDate OBJECT-TYPE
   SYNTAX DisplayString (SIZE (0..9))
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The date of the software module represented as mm-dd-yy."
   ::= { powerNetSoftwareEntry 4 }


-- the ups group
-- the upsIdent group
-- the upsBasicIdent

upsBasicIdentModel OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The UPS model name (e.g. 'APC Smart-UPS 600')."
   ::= { upsBasicIdent 1 }

upsBasicIdentName OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "An 8 byte ID string identifying the UPS.  This object
       can be set by the administrator."
   ::= { upsBasicIdent 2 }


-- the upsAdvIdent group

upsAdvIdentFirmwareRevision OBJECT-TYPE
   SYNTAX DisplayString 
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The firmware revision of the UPS system's microprocessor."
   ::= { upsAdvIdent 1 }

upsAdvIdentDateOfManufacture OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The date when the UPS was manufactured in mm/dd/yy format."
   ::= { upsAdvIdent 2 }

upsAdvIdentSerialNumber OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "An 8-character string identifying the serial number of 
       the UPS internal microprocessor.  This number is set at
       the factory.  NOTE: This number does NOT correspond to
       the serial number on the rear of the UPS."
   ::= { upsAdvIdent 3 }



-- the upsBattery group
-- the upsBasicBattery group

upsBasicBatteryStatus OBJECT-TYPE
   SYNTAX INTEGER  {
      unknown(1),
      batteryNormal(2),
      batteryLow(3)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The status of the UPS batteries.  A batteryLow(3) 
       value indicates the UPS will be unable to sustain the 
       current load, and its services will be lost if power is 
       not restored.  The amount of run time in reserve at the 
       time of low battery can be configured by the 
       upsAdvConfigLowBatteryRunTime."
   ::= { upsBasicBattery 1 }

upsBasicBatteryTimeOnBattery OBJECT-TYPE
   SYNTAX TimeTicks 
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The elapsed time since the UPS has switched to battery 
       power."
   ::= { upsBasicBattery 2 }

upsBasicBatteryLastReplaceDate OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The date when the UPS system's batteries were last replaced 
       in mm/dd/yy format.   For Smart-UPS models, this value 
       is originally set in the factory.  When the UPS batteries 
       are replaced, this value should be reset by the administrator."
   ::= { upsBasicBattery 3 }



-- the upsAdvBattery group

upsAdvBatteryCapacity OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The remaining battery capacity expressed in 
       percent of full capacity."
   ::= { upsAdvBattery 1 }

upsAdvBatteryTemperature OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The current internal UPS temperature expressed in 
       Celsius."
   ::= { upsAdvBattery 2 }

upsAdvBatteryRunTimeRemaining OBJECT-TYPE
   SYNTAX TimeTicks 
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The UPS battery run time remaining before battery 
       exhaustion."
   ::= { upsAdvBattery 3 }

upsAdvBatteryReplaceIndicator OBJECT-TYPE
   SYNTAX INTEGER  {
      noBatteryNeedsReplacing(1),
      batteryNeedsReplacing(2)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Indicates whether the UPS batteries need replacing."
   ::= { upsAdvBattery 4 }

upsAdvBatteryNumOfBattPacks OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of external battery packs connected to the UPS. If
       the UPS does not use smart cells then the agent reports
       ERROR_NO_SUCH_NAME."
   ::= { upsAdvBattery 5 }

upsAdvBatteryNumOfBadBattPacks OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of external battery packs connected to the UPS that 
       are defective. If the UPS does not use smart cells then the
       agent reports ERROR_NO_SUCH_NAME."
   ::= { upsAdvBattery 6 }


-- the upsBasicInput group

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


-- the upsAdvInput group

upsAdvInputLineVoltage OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The current utility line voltage in VAC."
   ::= { upsAdvInput 1 }

upsAdvInputMaxLineVoltage OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The maximum utility line voltage in VAC over the
       previous 1 minute period."
   ::= { upsAdvInput 2 }

upsAdvInputMinLineVoltage OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The minimum utility line voltage in VAC over the
       previous 1 minute period."
   ::= { upsAdvInput 3 }

upsAdvInputFrequency OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The current input frequency to the UPS system in Hz."
   ::= { upsAdvInput 4 }


upsAdvInputLineFailCause OBJECT-TYPE
   SYNTAX INTEGER  {
      noTransfer(1),
      highLineVoltage(2),
      brownout(3),
      blackout(4),
      smallMomentarySag(5),
      deepMomentarySag(6),
      smallMomentarySpike(7),
      largeMomentarySpike(8)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The reason for the occurrence of the last transfer to UPS
       battery power.  The variable is set to:
       - noTransfer(1) -- if there is no transfer yet.
       - highLineVoltage(2) -- if the transfer to battery is caused
       by an over voltage greater than the high transfer vloltage.
       - brownout(3) -- if the duration of the outage is greater than
       five seconds and the line voltage is between 40% of the
       rated output voltage and the low transfer voltage.
       - blackout(4) -- if the duration of the outage is greater than five
       seconds and the line voltage is between 40% of the rated 
       output voltage and ground.
       - smallMomentarySag(5) -- if the duration of the outage is less
       than five seconds and the line voltage is between 40% of the
       rated output voltage and the low transfer voltage.
       - deepMomentarySag(6) -- if the duration of the outage is less 
       than five seconds and the line voltage is between 40% of the 
       rated output voltage and ground.  The variable is set to 
       - smallMomentarySpike(7) -- if the line failure is caused by a
       rate of change of input voltage less than ten volts per cycle.
       - largeMomentarySpike(8) -- if the line failure is caused by 
       a rate of change of input voltage greater than ten volts per cycle."
   ::= { upsAdvInput 5 }


-- the upsBasicOutput group


upsBasicOutputStatus OBJECT-TYPE
   SYNTAX INTEGER  {
      unknown(1),
      onLine(2),
      onBattery(3),
      onSmartBoost(4),
      timedSleeping(5),
      softwareBypass(6),
      off(7),
      rebooting(8),
      switchedBypass(9),
      hardwareFailureBypass(10),
      sleepingUntilPowerReturn(11),
      onSmartTrim(12)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The current state of the UPS.  If the UPS is unable 
       to determine the state of the UPS this variable is set 
       to unknown(1)."
   ::= { upsBasicOutput 1 }

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


-- the upsAdvOutput group

upsAdvOutputVoltage OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The output voltage of the UPS system in VAC."
   ::= { upsAdvOutput 1 }

upsAdvOutputFrequency OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The current output frequency of the UPS system in Hz."
   ::= { upsAdvOutput 2 }

upsAdvOutputLoad OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The current UPS load expressed in percent 
       of rated capacity."
   ::= { upsAdvOutput 3 }

upsAdvOutputCurrent OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The current in ampres drawn by the load on the UPS."
   ::= { upsAdvOutput 4 }


-- the upsBasicConfig group

upsBasicConfigNumDevices OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of devices that are plugged into the UPS."
   ::= { upsBasicConfig 1 }

upsBasicConfigDeviceTable OBJECT-TYPE
   SYNTAX SEQUENCE OF UpsBasicConfigDeviceEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "A list of devices that are plugged into the UPS.
       The number of entries is given by the value of
       upsBasicConfigNumDevices."
   ::= { upsBasicConfig 2 }

upsBasicConfigDeviceEntry OBJECT-TYPE
   SYNTAX UpsBasicConfigDeviceEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "The devices plugged in to the UPS."
   INDEX  { deviceIndex }
   ::= { upsBasicConfigDeviceTable 1 }

UpsBasicConfigDeviceEntry ::=
   SEQUENCE {
      deviceIndex 
         INTEGER,
      deviceName
         DisplayString,
      vaRating
         INTEGER,
      acceptThisDevice
         INTEGER
   }

deviceIndex OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The index of the device that is plugged into the UPS."
   ::= { upsBasicConfigDeviceEntry 1 }

deviceName OBJECT-TYPE
   SYNTAX DisplayString 
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The name/description of the device plugged into the UPS."
   ::= { upsBasicConfigDeviceEntry 2 }

vaRating OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The volt-amp rating of the device plugged into the UPS."
   ::= { upsBasicConfigDeviceEntry 3 }

acceptThisDevice OBJECT-TYPE
   SYNTAX INTEGER   {
      yes(1),
      no(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "An entry is added if yes, the entry is deleted if no."
   ::= { upsBasicConfigDeviceEntry 4 }




-- the upsAdvConfig group

upsAdvConfigRatedOutputVoltage OBJECT-TYPE
   SYNTAX INTEGER  
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The nominal output voltage from the UPS in VAC. 
       Possible values are 100, 120, 208, 220, 225, 230 and 240.
       
       NOTE: Only units that are 220, 225, 230 and 240 can be
       changed.  Allowable set values are 220, 225, 230, and 240.
      
       For these adjustable units, if a value other than 
       a supported value is provided in a set request, the
       UPS interprets it as the next lower acceptable value.
       If the provided value is lower than the lowest acceptable 
       value, the lowest acceptable value is used."
   ::= { upsAdvConfig 1 }

upsAdvConfigHighTransferVolt OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The maximum line voltage in VAC allowed before the
       UPS system transfers to battery backup.

       Allowed values depend on the UPS used:
       100 volt units allow settings of 108, 110, 112, and 114.
       120 volt units allow settings of 129, 132, 135, and 138.
       208 volt units allow settings of 224, 229, 234, and 239.
       230 volt units allow settings of 253, 264, 271, and 280.

       Matrix Notes:
       Matrix units configured for 208V input allow settings of
       240, 244, 248, and 252.  Matrix units configured for 240V
       input allow settings of 276, 264, 253, and 282.

       If a value other than a supported value is provided in a 
       set request, the UPS interprets it as the next lower
       acceptable value.  If the provided value is lower than
       the lowest acceptable value, the lowest acceptable 
       value is used."
   ::= { upsAdvConfig 2 }

upsAdvConfigLowTransferVolt OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The minimum line voltage in VAC allowed before the
       UPS system transfers to battery backup.
      
       Allowable values depend on the UPS used:
       100 volt units allow settings of 81, 83, 85, 87.
       120 volt units allow settings of 97, 100, 103, 106.
       208 volt units allow settings of 168, 172, 177, 182.
       230 volt units allow settings of 188, 196, 204, 208.

       Matrix Notes:
       Matrix units configured for 208V input have a fixed low
       transfer voltage of 156 volts.
       Matrix units configured for 240V input have a fixed low 
       transfer voltage of 180 volts.

       If a value other than a supported value is provided in a
       set request, the UPS interprets it as a the next higher
       acceptable value.  If the provided value is higher than
       the highest acceptable value, the highest acceptable 
       value is used."
   ::= { upsAdvConfig 3 }

upsAdvConfigAlarm OBJECT-TYPE
   SYNTAX INTEGER  {
      timed(1),
      atLowBattery(2),
      never(3)
   } 
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "A flag indicating how the UPS should handle audible
       line fail alarms."
   ::= { upsAdvConfig 4 }

upsAdvConfigAlarmTimer OBJECT-TYPE
   SYNTAX TimeTicks 
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The time after initial line failure at which the UPS
       begins emitting audible alarms (beeping).  This timer is
       observerd only if the value of extControlAlarm is timed(2).
       Allowed values are 0 or 30 seconds.

       If a value other than a supported value is provided in a
       set request, the UPS interprets it as a the next lower
       acceptable value.  If the provided value is lower than
       the lowest acceptable value, the lowest acceptable 
       value is used."
   ::= { upsAdvConfig 5 }

upsAdvConfigMinReturnCapacity OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The minimum battery capacity required before the UPS will 
       return from a low battery shutdown condition.  The capacity is
       measured from 0% battery capacity (or Low Battery) as a percent
       of full capacity (100%).   In other words, the UPS will not re-energize
       the output until the battery has charged so that its' capacity is equal 
       to this value. Allowed values are 0, 10, 25, or 90  percent.

       If a value other than a supported value is provided in a
       set request, the UPS interprets the value as the next higher
       acceptable value.  If the provided value is higher than
       the highest acceptable value, the highest acceptable 
       value (90%) is used."
   ::= { upsAdvConfig 6 }

upsAdvConfigSensitivity OBJECT-TYPE
   SYNTAX INTEGER  {
      auto(1),
      low(2),
      medium(3),
      high(4)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The sensitivity of the UPS to utility line abnormalities
       or noises."
   ::= { upsAdvConfig 7 }

upsAdvConfigLowBatteryRunTime OBJECT-TYPE
   SYNTAX TimeTicks 
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The desired run time of the UPS, in seconds, once the 
       low battery condition is reached.  Allowed values are 120,
       300, 420, or 600 seconds.  During this time the UPS will
       produce a constant warning tone which can not be disabled.

       If a value other than a supported value is provided in a set
       request, the UPS interprets the value as the next higher
       acceptable value.  If the provided value is higher than the
       highest acceptable value, the highest acceptable value is used."
   ::= { upsAdvConfig 8 }

upsAdvConfigReturnDelay OBJECT-TYPE
   SYNTAX TimeTicks
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The delay in seconds after utility line power returns
       before the UPS will turn on.  This value is also used 
       when the UPS comes out of a reboot and before the UPS
       wakes up from 'sleep' mode.  Allowed values are 0, 60,
       180 and 300 seconds.
      
       If a value other than a supported value is provided in a
       set request, the UPS interprets it as a the next higher
       acceptable value.  If the provided value is higher than
       the highest acceptable value, the highest acceptable 
       value is used."
   ::= { upsAdvConfig 9 }

upsAdvConfigShutoffDelay OBJECT-TYPE
   SYNTAX TimeTicks 
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The delay in seconds the UPS remains on after being told 
       to turn off.  Allowed values are 20, 180, 300, and
       600 seconds.

       If a value other than a supported value is provided in a
       set request, the UPS interprets it as a the next higher
       acceptable value.  If the provided value is higher than
       the highest acceptable value, the highest acceptable 
       value is used."
   ::= { upsAdvConfig 10 }

upsAdvConfigUpsSleepTime OBJECT-TYPE
   SYNTAX TimeTicks 
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The time in seconds for the UPS to go to 'sleep' when 
       instructed.  When in sleep mode, the UPS will not provide
       output power regardless of the input line state.  Once the
       specified time has elapsed, output power will be restored.

       This is a configuration setting.  The UPS will not go to
       sleep until told to do so by the manager from a management
       station.
      
       Any input value is allowed, however the UPS only recognizes
       1/10 of an hour increments.  The provided value will be 
       rounded to the closest 1/10 of an hour with one exception:
       Any value entered between 1 and 540 seconds will be rounded 
       to 360 seconds (or 6 minutes)."
   ::= { upsAdvConfig 11 }


upsAdvConfigSetEEPROMDefaults OBJECT-TYPE
   SYNTAX INTEGER  {
      noSetEEPROMDefaults(1),
      setEEPROMDefaults(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "WRITE: Resets the UPS EEPROM variables to default values.
       READ: returns 0"
   ::= { upsAdvConfig 12 }

upsAdvConfigDipSwitchSetting OBJECT-TYPE
   SYNTAX SEQUENCE OF UpsAdvConfigDipSwitchEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "Current settings of UPS dip switches."
   ::= { upsAdvConfig 13 }

upsAdvConfigDipSwitchEntry OBJECT-TYPE
   SYNTAX UpsAdvConfigDipSwitchEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "The current setting of one dip switch."
   INDEX  { dipSwitchIndex }
   ::= { upsAdvConfigDipSwitchSetting 1 }

UpsAdvConfigDipSwitchEntry ::=
   SEQUENCE {
      dipSwitchIndex 
         INTEGER,
      dipSwitchStatus
         INTEGER
   }

dipSwitchIndex OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The index of a UPS dip switch."
   ::= { upsAdvConfigDipSwitchEntry 1 }

dipSwitchStatus OBJECT-TYPE
   SYNTAX INTEGER {
      on(1),
      off(2)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The setting of a UPS dip switch."
   ::= { upsAdvConfigDipSwitchEntry 2 }

upsAdvConfigBattExhaustThresh OBJECT-TYPE
   SYNTAX TimeTicks
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The number of seconds prior to battery exhaustion when the
       UPS will switch off power to it's load."
   ::= { upsAdvConfig 14 }

upsAdvConfigPassword OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The password entered at the UPS front panel to enable local
       configuation of the EEProm. If the password is disabled or 
       is not supported, then the agent returns a null string."
   ::= { upsAdvConfig 15 }

upsAdvConfigAllowedSetTable OBJECT-TYPE
   SYNTAX SEQUENCE OF ApcUpsConfigEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "The table listing the allowed values for all discrete 
       configurable UPS variables."
   ::= { upsAdvConfig 16 }

apcUpsConfigEntry OBJECT-TYPE
   SYNTAX ApcUpsConfigEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "The table entry for a configurable UPS variable."
   INDEX  { apcUpsConfigFieldIndex }
   ::= { upsAdvConfigAllowedSetTable 1 }

ApcUpsConfigEntry ::= SEQUENCE {
   apcUpsConfigFieldIndex        INTEGER,
   apcUpsConfigFieldOID          OBJECT IDENTIFIER,
   apcUpsConfigFieldValueRange   DisplayString
   }

apcUpsConfigFieldIndex OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The index to an eeprom field entry."
   ::= { apcUpsConfigEntry 1 }

apcUpsConfigFieldOID OBJECT-TYPE
   SYNTAX OBJECT IDENTIFIER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The OID of the current configurable value."
   ::= { apcUpsConfigEntry 2 }

apcUpsConfigFieldValueRange OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The distcrete set of allowed values of a configurable 
       register. Individual values are delimited by a comma."
   ::= { apcUpsConfigEntry 3 }

-- the upsBasicControl group

upsBasicControlConserveBattery OBJECT-TYPE
   SYNTAX INTEGER  {
      noTurnOffUps(1),
      turnOffUpsToConserveBattery(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to turnUpsOffToConserveBattery(2) 
       causes a UPS on battery to be put into 'sleep' mode.  The 
       UPS will turn back on when utility power is restored.  
       Attempting to turn off a UPS that is not on battery will 
       result in a badValue error.

       Setting this value to noTurnOffUps(1) has no
       effect.

       The value noTurnOffUps(1) will always be returned
       when the variable is read."
::= { upsBasicControl 1 }



-- the upsAdvControl group

upsAdvControlUpsOff OBJECT-TYPE
   SYNTAX INTEGER  {
      noTurnUpsOff(1),
      turnUpsOff(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to turnUpsOff(2) causes
       the UPS to shut off.  When in this state, the UPS 
       will not provide output power regardless of the input
       line state.  The ON/OFF switch on the UPS
       must be toggled for the UPS to return to operation.

       Setting this value to noTurnUpsOff(1) has no
       effect.

       The value noTurnUpsOff(1) will always be returned
       when the variable is read."
   ::= { upsAdvControl 1 }

upsAdvControlRebootUps OBJECT-TYPE
   SYNTAX INTEGER  {
      noRebootUps(1),
      rebootUps(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to rebootUps(2) causes the
       UPS to shut off and turn back on.
      
       Setting this value to noRebootUps(1) has no effect.
      
       The value noRebootUps(1) will always be returned
       when the variable is read."
   ::= { upsAdvControl 2 }

upsAdvControlUpsSleep OBJECT-TYPE
   SYNTAX INTEGER  {
      noPutUpsToSleep(1),
      putUpsToSleep(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to putUpsToSleep(2) causes
       the UPS to go to sleep for the time specified by
       upsAdvConfigUpsSleepTime.
      
       When in sleep mode, the UPS will not provide output
       power regardless of the input line state.  Once the
       specified time has elapsed, output power will be
       restored. 
      
       Setting this value to noPutUpsToSleep(1) has no
       effect.
      
       The value noPutUpsToSleep(1) will always be returned
       when the variable is read."
   ::= { upsAdvControl 3 }


upsAdvControlSimulatePowerFail OBJECT-TYPE
   SYNTAX INTEGER  {
      noSimulatePowerFailure(1),
      simulatePowerFailure(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to simulatePowerFailure(2) causes
       the UPS switch to battery power.

       Setting this value to noSimulatePowerFailure(1) has no
       effect.

       The value noSimulatePowerFailure(1) will always be returned
       when the variable is read."
   ::= { upsAdvControl 4 }


upsAdvControlFlashAndBeep OBJECT-TYPE
   SYNTAX INTEGER  {
      noFlashAndBeep(1),
      flashAndBeep(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to flashAndBeep(2) causes the
       UPS to beep and simultaneously turn on the UPS front
       panel lights (Smart-UPS only).

       Setting this value to noFlashAndBeep(1) has no
       effect.

       The value noFlashAndBeep(1) will always be returned
       when the variable is read."
   ::= { upsAdvControl 5 }


upsAdvControlTurnOnUPS OBJECT-TYPE
   SYNTAX INTEGER  {
      noTurnOnUPS(1),
      turnOnUPS(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to turnOnUPS(2) causes the
       UPS to be turned on immediately, provided
       upsBasicOutputStatus does not read ON.

       Setting this value to noTurnOnUPS(1) has no
       effect.

       The value noTurnOnUPS(1) will always be returned
       when the variable is read.

       This action is only available with the APC
       Mini-SNMP Adapter."
   ::= { upsAdvControl 6 }

upsAdvControlBypassSwitch OBJECT-TYPE
   SYNTAX INTEGER {
      noBypassSwitch (1),
      switchToBypass (2),
      switchOutOfBypass(3)
      }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "This switch pertains to the Matrix UPS. It switchs the
       UPS in or out of bypass mode."
   ::= { upsAdvControl 7 }



-- the upsTest group

-- the upsBasicTest group

-- the upsAdvTest group

upsAdvTestDiagnosticSchedule OBJECT-TYPE
   SYNTAX INTEGER  {
      unknown(1),
      biweekly(2),
      weekly(3),
      atTurnOn(4),
      never(5)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The UPS system's automatic battery test schedule."
   ::= { upsAdvTest 1 }


upsAdvTestDiagnostics OBJECT-TYPE
   SYNTAX INTEGER  {
      noTestDiagnostics(1),
      testDiagnostics(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to testDiagnostics(2) causes
       the UPS to perform a diagnostic self test.
      
       Setting this value to noTestDiagnostics(1) has no
       effect.
      
       The value noTestDiagnostics(1) will always be returned
       when the variable is read."
   ::= { upsAdvTest 2 }

upsAdvTestDiagnosticsResults OBJECT-TYPE
   SYNTAX INTEGER {
      ok(1),
      failed(2),
      invalidTest(3),
      testInProgress(4)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The results of the last UPS diagnostics test performed."
   ::= { upsAdvTest 3 }

upsAdvTestLastDiagnosticsDate OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The date the last UPS diagnostics test was performed in
       mm/dd/yy format."
   ::= { upsAdvTest 4 }

upsAdvTestRuntimeCalibration OBJECT-TYPE
   SYNTAX INTEGER  {
      noPerformCalibration(1),
      performCalibration(2),
      cancelCurrentCalibration(3)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to performCalibration(2) causes
       the UPS to discharge to calibrate the UPS.
       The test will only start if the battery capacity is 100%.
       The test runs until capacity is less than 25%.
      
       Setting this variable to cancelCurrentCalibration(3)
       after setting performCalibration(2) will cancel the 
       current discharge.
      
       Setting this variable to noPerformCalibration(1) 
       will have no effect.
      
       The value noPerformCalibration(1) will always be returned
       when the variable is read.
      
       The result of the calibration will be saved in 
       upsAdvTestCalibrationResult."
   ::= { upsAdvTest 5 }

upsAdvTestCalibrationResults OBJECT-TYPE
   SYNTAX INTEGER {
      ok(1),
      invalidCalibration(2),
      calibrationInProgress(3)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The results of the last runtime calibration.
      
       Value ok(1) means a successful runtime calibration.
      
       Value invalidCalibration(2) indicates last calibration did
       not take place since the battery capacity was below
       100%.
      
       Value calibrationInProgress(3) means a calibration 
       is occurring now. "
   ::= { upsAdvTest 6 }

upsAdvTestCalibrationDate OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The date the last UPS runtime calibration was 
       performed in mm/dd/yy format."
   ::= { upsAdvTest 7 }

-- the upsComm group

upsCommStatus OBJECT-TYPE
   SYNTAX INTEGER {
      ok(1),
      noComm(2)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The status of agent's communication with UPS. "
   ::= { upsComm 1 }


-- the measureUps group
-- the Environ group

mUpsEnvironAmbientTemperature OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The ambient temperature in Celsius."
   ::= { mUpsEnviron 1 }

mUpsEnvironRelativeHumidity OBJECT-TYPE
   SYNTAX Gauge
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The relative humidity as a percentage."
   ::= { mUpsEnviron 2 }


-- the mUpsContact group

mUpsContactNumContacts OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of contacts supported by the Measure-UPS."
   ::= { mUpsContact 1 }

mUpsContactTable OBJECT-TYPE
   SYNTAX SEQUENCE OF ContactEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "A list of contacts supported by the Measure-UPS."
   ::= { mUpsContact 2 }

mUpsContactEntry OBJECT-TYPE
   SYNTAX ContactEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "A contact entry containing information for a given contact."
   INDEX  { contactNumber }
   ::= { mUpsContactTable 1 }

ContactEntry ::=
   SEQUENCE {
      contactNumber
         INTEGER,
      normalState
         INTEGER,
      description
         DisplayString,
      monitoringStatus
         INTEGER,
      currentStatus
         INTEGER
   }

contactNumber OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "An index identifying the contact on the Measure-UPS."
   ::= { mUpsContactEntry 1 }

normalState OBJECT-TYPE
   SYNTAX INTEGER {
      unknown(1),
      open(2),
      closed(3)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The normal operating position of the contact. If the normal
       operating postion cannot be set then it is contolled via the
       dip switch on the Measure-UPS and is therefore read-only."
   ::= { mUpsContactEntry 2 }

description OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The decsription of the purpose/use of the contact."
   ::= { mUpsContactEntry 3 }

monitoringStatus OBJECT-TYPE
   SYNTAX INTEGER {
      unknown(1),
      enabled(2),
      disabled(3)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "A flag indicating whether this contact is 
       monitored, or not."
   ::= { mUpsContactEntry 4 }

currentStatus OBJECT-TYPE
   SYNTAX INTEGER {
      unknown(1),
      noFault(2),
      fault(3)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "This value indicates the current state of the contact.
       If the contact is not in its normal state.  This value
       is set to fault(2)."
   ::= { mUpsContactEntry 5 }

-- the serialPort2Config group

serialPort2Mode OBJECT-TYPE
   SYNTAX INTEGER  {
      localConsole(1),
      passthrough(2)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to passthrough will enable mini's port2
       behave like a UPS port. Choosing localConsole will enable the port
       to be used as local console."
      ::= { serialPort2Config 1 }
-- the serialPort2Control group

setPulseOnTXD OBJECT-TYPE
   SYNTAX INTEGER  {
      noSetPulseOnTXD(1),
      setPulseOnTXD(2),
      setTXDLow(3),
      setTXDHigh(4)

   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to setPulseOnTXD(2) 
       causes adapter to generate a PULSE on TXD pin of serial port 2.
       The duration in the prototype implementation will be 1 second.

       Setting this value to noSetPulseOnTXD(1) has no
       effect.
      
       The value noSetPulseOnTXD(1) will always be returned
       when the variable is read.

       Setting this value to setTXDLow(3), or setTXDHigh(4) will keep TXD
       always low or high respectively."
      ::= { serialPort2Control 1 }


-- Traps
-- Annotations are provided for Novell's NMS product

communicationLost TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
       "SEVERE: Communication to the UPS has been lost.  Steps
        to reestablish communication are in progress."
   --#TYPE "APC UPS: Communication failure"
   --#SUMMARY "Communication lost between the agent and the UPS."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE DEGRADED
   ::= 1

upsOverload TRAP-TYPE
   ENTERPRISE apc
    --Original MIB had format string error : "...100%..." in SUMMARY.
   DESCRIPTION
      "SEVERE: The UPS has sensed a load greater than 100 percent
       of its rated capacity."
   --#TYPE "APC UPS: UPS overload"
   --#SUMMARY "The UPS has sensed a load greater than 100%% of its rated capacity."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE DEGRADED
   ::= 2

upsDiagnosticsFailed TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "SEVERE: The UPS failed its internal diagnostic self-test."
   --#TYPE "APC UPS: Failed self-test"
   --#SUMMARY "The UPS has failed its internal self-test."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE DEGRADED
   ::= 3

upsDischarged TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "SEVERE: The UPS batteries are discharged; if utility power fails
       an immediate low battery condition will exist.  Sufficient runtime 
       for necessary action cannot be guaranteed."
   --#TYPE "APC UPS: batteries are discharged"
   --#SUMMARY "The UPS batteries are discharged."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE DEGRADED
   ::= 4

upsOnBattery TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "WARNING: The UPS has switched to battery backup power."
   --#TYPE "APC UPS: On battery"
   --#SUMMARY "The UPS is now providing battery backup power."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 5

smartBoostOn TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "WARNING: The UPS has enabled SmartBoost."
   --#TYPE "APC UPS: SmartBoost"
   --#SUMMARY "The UPS has enabled SmartBoost."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 6

lowBattery TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "SEVERE: The UPS batteries are low and will soon be exhausted.
       If utility power is not restored the UPS will put itself 
       to 'sleep' and immediately cut power to the load."
   --#TYPE "APC UPS: Low battery"
   --#SUMMARY "The UPS system's batteries are low and will soon be exhausted."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE DEGRADED
   ::= 7

communicationEstablished TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATION: Communication with the UPS has been established."
   --#TYPE "APC UPS: Communication established"
   --#SUMMARY "Communication established between the agent and the UPS."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 8

powerRestored TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATION: Utility power has been restored."
   --#TYPE "APC UPS: Utility restored"
   --#SUMMARY "Normal power has been restored to the UPS."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 9

upsDiagnosticsPassed TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATION: The UPS passed its internal self-test."
   --#TYPE "APC UPS: Passed self-test"
   --#SUMMARY "The UPS has passed its internal self-test."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 10

returnFromLowBattery TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATION: The UPS has returned from a low battery
       condition."
   --#TYPE "APC UPS: Battery normal"
   --#SUMMARY "The UPS has returned from a low battery condition."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 11

upsTurnedOff TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "WARNING: The UPS has been turned 'off' by the management station."
   --#TYPE "APC UPS: Switching off"
   --#SUMMARY "The UPS is being switched off by a management station."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE NONOPERATIONAL
   ::= 12

upsSleeping   TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "WARNING: The UPS is entering 'sleep' mode.  Power 
       to the load will be cut off."
   --#TYPE "APC UPS: Going to sleep"
   --#SUMMARY "The UPS is going into sleep mode."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE NONOPERATIONAL
   ::= 13

upsWokeUp TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATION: The UPS has returned from 'sleep' mode.  Power 
       to the load has been restored."
   --#TYPE "APC UPS: Wake up"
   --#SUMMARY "The UPS has returned from sleep mode."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 14

upsRebootStarted TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "WARNING: The UPS has started its reboot sequence.
       The UPS will reboot itself at this time."
   --#TYPE "APC UPS: Starting reboot"
   --#SUMMARY "The UPS has started its reboot sequence."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE NONOPERATIONAL
   ::= 15 

upsDipSwitchChanged TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "WARNING: The dip switch settings on the UPS have been
       changed, possibly altering UPS performance."
   --#TYPE "APC UPS: DIP switch altered"
   --#SUMMARY "The DIP switch settings on the UPS have been changed."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 16

upsBatteryNeedsReplacement TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "SEVERE: The batteries of the UPS need immediate replacement." 
   --#TYPE "APC UPS: UPS batteries needs replacement"
   --#SUMMARY "The UPS batteries require immediate replacement."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE DEGRADED
   ::= 17


-- the Measure-UPS traps

contactFault TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "SEVERE: One of the contacts on the Measure-UPS has 
       changed from its default position."
   --#TYPE "APC M-UPS: Contact fault"
   --#SUMMARY "A Measure-UPS contact closure has faulted."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 18

contactFaultResolved TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATION: A fault on one of the Measure-UPS contacts
       has been resolved."
   --#TYPE "APC M-UPS: Contact normal"
   --#SUMMARY "A Measure-UPS contact closure has returned to it's default state."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 19

-- the Matrix-UPS traps

hardwareFailureBypass TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "SEVERE: UPS on bypass due to hardware failure"
   --#TYPE "APC UPS: On bypass due to hardware failure"
   --#SUMMARY "The UPS is on bypass due to a hardware failure."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE DEGRADED
   ::= 20

softwareBypass TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "WARNING: UPS on bypass - user set via software or panel"
   --#TYPE "APC UPS: On bypass by user via software or panel"
   --#SUMMARY "UPS put on bypass by user via software or front UPS panel."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 21

switchedBypass TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "WARNING: UPS on bypass - user set via rear switch"
   --#TYPE "APC UPS: On bypass by user via rear switch"
   --#SUMMARY "UPS put on bypass by user via rear UPS switch."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 22

returnFromBypass TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATIONAL: UPS has returned from bypass"
   --#TYPE "APC UPS: UPS has returned from bypass"
   --#SUMMARY "The UPS has returned from bypass mode."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 23

bypassPowerSupplyFailure TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "SEVERE: Base module bypass power supply needs repair"
   --#TYPE "APC UPS: Base module bypass power supply needs repair"
   --#SUMMARY "The base module bypass power supply needs repair."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE NONOPERATIONAL
   ::= 24

baseFanFailure TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "SEVERE: Base module fan needs repair"
   --#TYPE "APC UPS: Base module fan needs repair"
   --#SUMMARY "The base module fan needs repair."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE NONOPERATIONAL
   ::= 25

batteryPackCommLost TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "SEVERE: Check installation of external battery packs signal cable"
   --#TYPE "APC UPS: Communication lost with battery packs"
   --#SUMMARY "Communication lost with external battery packs, check battery signal cable."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE DEGRADED
   ::= 26

batteryPackCommEstablished TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATIONAL: UPS is communicating with the external battery packs."
   --#TYPE "APC UPS: Communication established with battery packs"
   --#SUMMARY "Communication established with external battery packs."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 27

calibrationStart TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATIONAL: A battery calibration test has been initiated on the UPS."
   --#TYPE "APC UPS: Calibration initiated"
   --#SUMMARY "A battery run time calibration test has been initiated."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 28

-- Misc. Traps

restartAgent TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATIONAL: Agent restarting as commanded by manager."
   --#TYPE "APC SNMP Agent: Agent restarting"
   --#SUMMARY "Agent restarting as commanded by manager."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 29

upsTurnedOn TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "INFORMATIONAL: A UPS is turned on."
   --#TYPE "APC UPS: A UPS is turned on."
   --#SUMMARY " A UPS is turned on."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 30

smartAvrReducing TRAP-TYPE
   ENTERPRISE apc
   DESCRIPTION
      "WARNING: The UPS is reducing the line voltage via Smart-AVR."
   --#TYPE "APC UPS: Smart-AVR reducing"
   --#SUMMARY "The UPS has enabled Smart-AVR voltage reduction."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 31

codeAuthenticationDone TRAP-TYPE
   ENTERPRISE apc
   VARIABLES   { mconfigTFTPServerIP, newCodeAuthentViaTFTP }
   DESCRIPTION
      "INFORMATIONAL: Authentication on agent code image is done."
   --#TYPE "APC CODE: Authentication on agent code image is done."
   --#SUMMARY "Authentication on agent code image is done."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 32

END