-- AMERICAN POWER CONVERSION PowerNet-MIB

-- Copyright (c) American Power Conversion Corporation, 1992-1998.
-- PowerNet is a Trademark of American Power Conversion Corp.
-- Version : 3.0.2

-- Title: APC TOP LEVEL PowerNet MIB

-- *************************************************************************
-- ************************************************************************
-- 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 }
mtrapargs                      OBJECT IDENTIFIER ::=  { apcmgmt 3 }
mfiletransfer                  OBJECT IDENTIFIER ::=  { apcmgmt 4 }

mconfigClock                   OBJECT IDENTIFIER ::=  { mconfig 6 }

mfiletransferStatus            OBJECT IDENTIFIER ::=  { mfiletransfer 1 }
mfiletransferConfig            OBJECT IDENTIFIER ::=  { mfiletransfer 2 }
mfiletransferControl           OBJECT IDENTIFIER ::=  { mfiletransfer 3 }

mfiletransferConfigSettings    OBJECT IDENTIFIER ::=  { mfiletransferConfig 1 }
mfiletransferConfigTFTP        OBJECT IDENTIFIER ::=  { mfiletransferConfig 2 }
mfiletransferConfigFTP         OBJECT IDENTIFIER ::=  { mfiletransferConfig 3 }

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

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 }
masterSwitch                   OBJECT IDENTIFIER ::=  { system  4 }
symmetraUPS                    OBJECT IDENTIFIER ::=  { system  5 }

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 }

masterSwitchV1                 OBJECT IDENTIFIER ::=  { masterSwitch 1}

symmetraUPS4kVA                OBJECT IDENTIFIER ::=  { symmetraUPS 1 }
symmetraUPS8kVA                OBJECT IDENTIFIER ::=  { symmetraUPS 2 }
symmetraUPS12kVA               OBJECT IDENTIFIER ::=  { symmetraUPS 3 }
symmetraUPS16kVA               OBJECT IDENTIFIER ::=  { symmetraUPS 4 }

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}

sPDUIdent                      OBJECT IDENTIFIER ::=  { masterswitch 1 }
sPDUMasterControl              OBJECT IDENTIFIER ::=  { masterswitch 2 }    
sPDUMasterConfig               OBJECT IDENTIFIER ::=  { masterswitch 3 }
sPDUOutletControl              OBJECT IDENTIFIER ::=  { masterswitch 4 }
sPDUOutletConfig               OBJECT IDENTIFIER ::=  { masterswitch 5 }

-- 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. This OID is only supported by AP9605, AP9205, 
       and AP9603 PowerNet SNMP Adapters."
   ::= { 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.
       This OID is only supported by AP9605, AP9205, and AP9603 PowerNet SNMP Adapters."
       
   ::= { mconfig 5 }

mconfigClockDate OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The current date in the mm/dd/yyyy format. Example: 01/01/2000."
   ::= { mconfigClock 1 }

mconfigClockTime OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The current time in the hh:mm:ss am/pm format. Example: 12:00:00 am."
   ::= { mconfigClock 2 }

mcontrolRestartAgent OBJECT-TYPE
   SYNTAX INTEGER   {
      restartCurrentAgent    (1),
      continueCurrentAgent   (2),
      loadAndExecuteNewAgent (3),
      restartWithoutAgent    (4)
  }
   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.
       loadAndExecuteNewAgent is only supported by AP9605, AP9205, and AP9603 
       PowerNet SNMP Adapters. Setting this OID to restartWithoutAgent (4) will restart
       the system and not start the agent. The subsequent time the system restarts the agent
       will also automatically restart."

   ::= { mcontrol 1 }

-- the mtrapargs group
mtrapargsInteger OBJECT-TYPE
   SYNTAX INTEGER    
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "This OID allows APC traps to be sent with an integer argument
       that my not be defined in the APC MIB.
      
       A get of this OID will return 0."
   ::= { mtrapargs 1 }

mtrapargsIpAddress OBJECT-TYPE
   SYNTAX IpAddress   
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "This OID allows APC traps to be sent with an IP address argument
       that my not be defined in the APC MIB.
      
       A get of this OID will return 0.0.0.0."
   ::= { mtrapargs 2 }
   
mtrapargsString OBJECT-TYPE
   SYNTAX  DisplayString 
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "This OID allows APC traps to be sent with an octet string argument
       that my not be defined in the APC MIB.
      
       A get of this OID will return a NULL string."
   ::= { mtrapargs 3 }

mtrapargsGauge OBJECT-TYPE
   SYNTAX  Gauge 
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "This OID allows APC traps to be sent with a Gauge argument
       that my not be defined in the APC MIB.
      
       A get of this OID will return 0."
   ::= { mtrapargs 4 }

mtrapargsTimeTicks OBJECT-TYPE
   SYNTAX TimeTicks  
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "This OID allows APC traps to be sent with a TimeTicks argument
       that my not be defined in the APC MIB.
      
       A get of this OID will return 0."
   ::= { mtrapargs 5 }
   
-- the mfiletransfer group
-- the mfiletransferStatus group
mfiletransferStatusLastTransferResult OBJECT-TYPE
   SYNTAX INTEGER {
      lastFileTransferResultSuccessful                 (1),
      lastFileTransferResultNotAvailable               (2),
      lastFileTransferResultFailureUnknown             (3),
      lastFileTransferResultFailureServerInaccessible  (4),
      lastFileTransferResultFailureServerAccessDenied  (5),
      lastFileTransferResultFailureFileNotFound        (6),
      lastFileTransferResultFailureFileTypeUnknown     (7),
      lastFileTransferResultFailureFileCorrupted       (8)
   }
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Once mfiletransferControlInitiateFileTransfer is set to a value other than doNotInitiateFileTransfer
      a file transfer of mfiletransferConfigSettingsFilename will be attempted from either a TFTP or FTP
      server.
       
      This OID shows the last attempted file transfer result.
        lastFileTransferResultSuccessful (1) means the file transfer was successful.
        lastFileTransferResultNotAvailable (2) means that there have been no previous file transfers.
        lastFileTransferResultFailureUnknown (3) means that the last file transfer failed for an unknown reason.
        lastFileTransferResultFailureServerInaccessible (4) means that the TFTP or FTP server could not be found on the network.
        lastFileTransferResultFailureServerAccessDenied (5) means that the TFTP or FTP server denied access.
        lastFileTransferResultFailureFileNotFound (6) means that the file could not be located.
        lastFileTransferResultFailureFileTypeUnknown (7) means the file was examined, but the contents were unknown.
        lastFileTransferResultFailureFileCorrupt (8) means the transfered file was corrupt."
       
   ::= { mfiletransferStatus 1 }
   
-- the mfiletransferConfig group
-- the mfiletransferConfigSettings group

mfiletransferConfigSettingsFilename  OBJECT-TYPE
   SYNTAX  DisplayString    
   ACCESS  read-write
   STATUS  mandatory
   DESCRIPTION
      "The path and name of the file to transfer using the mfiletransferControlInitiateFileTransfer OID.
      If the file to transfer exists in the default server directory then the path may be omitted."

   ::= { mfiletransferConfigSettings 1 }

-- the mfiletransferConfigTFTP group

mfiletransferConfigTFTPServerAddress     OBJECT-TYPE
   SYNTAX  DisplayString    
   ACCESS  read-write
   STATUS  mandatory
   DESCRIPTION
      "The IP Address in dotted decimal notation of the TFTP server involved in the file transfer."

   ::= { mfiletransferConfigTFTP 1 }

-- the mfiletransferConfigFTP group

mfiletransferConfigFTPServerAddress  OBJECT-TYPE
   SYNTAX  DisplayString    
   ACCESS  read-write
   STATUS  mandatory
   DESCRIPTION
      "The IP Address in dotted decimal notation of the FTP server involved in the file transfer."

   ::= { mfiletransferConfigFTP 1 }

mfiletransferConfigFTPServerUser     OBJECT-TYPE
   SYNTAX  DisplayString    
   ACCESS  read-write
   STATUS  mandatory
   DESCRIPTION
      "The user identification for logging into the FTP server specifed with mfiletransferConfigFTPServerAddress."

   ::= { mfiletransferConfigFTP 2 }

mfiletransferConfigFTPServerPassword     OBJECT-TYPE
   SYNTAX  DisplayString    
   ACCESS  read-write
   STATUS  mandatory
   DESCRIPTION
      "The password for logging into the FTP server specifed with mfiletransferConfigFTPServerAddress."

   ::= { mfiletransferConfigFTP 3 }

-- the mfiletransferControl group

mfiletransferControlInitiateFileTransfer OBJECT-TYPE
   SYNTAX INTEGER   {
      doNotInitiateFileTransfer             (1),
      initiateFileTransferDownloadViaTFTP   (2),
      initiateFileTransferDownloadViaFTP    (3)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this OID to doNotInitiateFileTransfer (1) will do nothing.
       
      Setting this OID to initiateFileTransferDownloadViaTFTP (2) will attempt to transfer the file named in 
      mfiletransferConfigSettingsFilename from the TFTP Server identified in mfiletransferConfigTFTPAddress.
       
      Setting this OID to initiateFileTransferDownloadViaFTP (3) will attempt to transfer the file named in 
      mfiletransferConfigSettingsFilename from the FTP Server identified in mfiletransferConfigFTPAddress 
      using mfiletransferConfigFTPUser and mfiletransferConfigFTPPassword for the FTP Server login process."

   ::= { mfiletransferControl 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),
      selfTest(9),
      rateOfVoltageChnage(10)
   }
   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.
       - selfTest(9) -- if the UPS was commanded to do a self test.
       - rateOfVoltageChange(10) -- if the failure is due to the rate of change of
       the line voltage."
   ::= { 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),
      turnUpsOffGracefully(3)
   }
   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 variable to turnUpsOffGracefully(3) causes
       the UPS to shut off after a delay period. This allows the
       host to shut down in a graceful manner. 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),
      rebootUpsGracefully(3)
   }
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this variable to rebootUps(2) causes the
       UPS to shut off and turn back on.
      
       Setting this variable to rebootUpsGracefully(3) causes the
       UPS to shut off and turn back on after a delay period. 
       This allows the host to shut down in a graceful manner.

       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),
      putUpsToSleepGracefully(3)
   }
   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.
      
       Setting this variable to putUpsToSleepGracefully(3)
       causes the UPS to go to sleep for the time specified 
       by upsAdvConfigUpsSleepTime after a delay period. 
       This allows the host to shut down in a graceful manner.
       
       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 }

-- the sPDUIdent group

sPDUIdentHardwareRev OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The hardware revision of the PDU. This value 
       is set at the factory."
   ::= { sPDUIdent 1 }

sPDUIdentFirmwareRev OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "An 8 byte ID string identifying the PDU firmware revision. 
       This value is set at the factory." 
   ::= {  sPDUIdent 2 }


sPDUIdentDateOfManufacture OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The date when the PDU was manufactured in mm/dd/yy format.
       This value is set at the factory. The year 2000 will be 
       represented by 00." 
         ::= { sPDUIdent 3 }
   
sPDUIdentModelNumber OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "A 10-character string identifying the model number of 
       the PDU internal. This value is set at the factory."
   ::= { sPDUIdent 4 }

sPDUIdentSerialNumber OBJECT-TYPE
   SYNTAX DisplayString
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "A 12-character string identifying the serial number of 
       the PDU internal microprocessor. This value is set at
       the factory."
   ::= { sPDUIdent 5 }
   

-- the sPDUMasterControl group

sPDUMasterControlSwitch  OBJECT-TYPE
  SYNTAX INTEGER       {
      turnAllOnNow              (1),
      turnAllOnSequence         (2),
      turnAllOffNow             (3),
      rebootAllNow              (4),
      rebootAllSequence         (5),
      noCommand                 (6)
   }
   
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "Setting this OID to turnAllOnNow (1) will turn all outlets
       on immediately.
       
       Setting this OID to turnAllOnSequence (2) will turn all outlets
       on as defined by each outlet's sPDUOutletPowerOnTime OID value.
       
       Setting this OID to turnAllOff (3) will turn all outlets
       off immediately.
       
       Setting this OID to rebootAllNow (4) will reboot all outlets
       immediately.
       
       Setting this OID to rebootAllSequence (5)  reboots all outlets,
       with power returned to the outlets in the sequence defined 
       by each outlet's sPDUOutletPowerOnTime OID value.
       
       Getting this OID will return the noCommand (6) value.
       
       This OID is read-only when another user is logged in via
       another interface."
              
   ::= { sPDUMasterControl 1 }

   
sPDUMasterState  OBJECT-TYPE
   SYNTAX DisplayString       
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
          "Getting this OID will cause the status of all outlets to be 
          returned. This OID is provided for informational purposes only.
          To change the outlet state, the user should use the sPDUOutletCtl
          OID in the sPDUOutletControlTable.

          The format of the data returned is a character string consisting
          of the word 'On' if the outlet is on or 'Off' if the outlet is
          off. At least one space will delimit each outlet entry in the 
          string. 
          
          If the outlet states are unknown, the character string 'Unknown'
          will be returned. This signifies that there is an inconsistancy 
          in the PDU. In the rear case that this should happen, the user 
          is advised to shut down all equipment powered by the PDU and 
          then cycle the PDU's power. This will put the PDU in a consistant
          state."
           
   ::= { sPDUMasterControl 2 }

sPDUMasterPending    OBJECT-TYPE
   SYNTAX DisplayString       
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
          "Getting this OID will cause the command pending status of all outlets to be returned.

          The format of the data returned is a character string consisting
          of the word 'Yes' if a command is pending for the outlet or 'No'
          if there is no command pending for the outlet. At least one 
          space will delimit each outlet entry in the string. 
          
          If the pending states are unknown, the character string 'Unknown'
          will be returned. This signifies that there is an inconsistancy 
          in the PDU. In the rear case that this should happen, the user 
          is advised to shut down all equipment powered by the PDU and then
          cycle the PDU's power. This will put the PDU in a consistant state."
  ::= { sPDUMasterControl 3 }


-- the sPDUMasterConfig group
   
sPDUMasterConfigPowerOn  OBJECT-TYPE
   SYNTAX INTEGER                
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      " The amount of delay, in seconds, between when
        power is provided to the PDU and when the PDU
        provides basic master power to the outlets.       
       
       Allowed values are:

       -1 never apply power automatically.
       0 apply power immediately.
       15 apply power in 15 seconds.
       30 apply power in 30 seconds.
       45 apply power in 45 seconds.
       60 apply power in 60 seconds  (1 minute).
       120 apply power in 120 seconds (2 minutes).
       300 apply power in 300 seconds (5 minutes).
       
       If a value other than a supported value is provided in a 
       set request, the PDU 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.

       This OID is read-only when another user is logged in via
       another interface."
       
   ::= { sPDUMasterConfig 1 }

sPDUMasterConfigReboot   OBJECT-TYPE
   SYNTAX INTEGER                
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "During a reboot sequence, power is turned off and then 
       back on. This OID defines the amount of time to wait, 
       in seconds, after turning the power off, at the start
       of the sequence, before turning power back on, at the
       end of the reboot sequence.       
       
       Allowed values are:
       
       5 wait 5 seconds between off/on.
       10 wait 10 seconds between off/on.
       15 wait 15 seconds between off/on.
       20 wait 20 seconds between off/on.
       30 wait 30 seconds between off/on.
       45 wait 45 seconds between off/on.
       60 wait 60 seconds (1 minute) between off/on.
       
       If a value other than a supported value is provided in a 
       set request, the PDU 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.

       This OID is read-only when another user is logged in via
       another interface."
       
   ::= { sPDUMasterConfig 2 }
   
sPDUMasterConfigPDUName  OBJECT-TYPE
   SYNTAX  DisplayString    
   ACCESS  read-write
   STATUS  mandatory
   DESCRIPTION
      "The name of the PDU. The maximum value is 20 characters.

       This OID is read-only when another user is logged in via
       another interface."
   ::= { sPDUMasterConfig 3 }



-- the sPDUOutletControl group
sPDUOutletControlTableSize OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of outlets for the PDU."
   ::= { sPDUOutletControl 1 }

   
sPDUOutletControlTable OBJECT-TYPE
   SYNTAX SEQUENCE OF OutletControlEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "Allows for control of individual outlet switches. The number of
       entries is contained in the sPDUOutletControlTableSize OID."
   ::= { sPDUOutletControl 2 }

sPDUOutletControlEntry OBJECT-TYPE
   SYNTAX OutletControlEntry  
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "The outlets to control."
   INDEX  { sPDUOutletControlIndex}
   ::= { sPDUOutletControlTable 1 }

OutletControlEntry ::=
   SEQUENCE {
      sPDUOutletControlIndex  INTEGER,
      sPDUOutletPending       INTEGER,
      sPDUOutletCtl           INTEGER,
      sPDUOutletCtlName       DisplayString    
   }      

sPDUOutletControlIndex OBJECT-TYPE
   SYNTAX INTEGER 
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The index to the outlet entry."
   ::= { sPDUOutletControlEntry 1 }
   
sPDUOutletPending OBJECT-TYPE
   SYNTAX INTEGER{
        commandPending        (1),
        noCommandPending      (2),
        commandPendingUnknown (3)
   }    
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "Reports whether the current outlet has a pending command.
      
       If the commandPendingUnknown (3) value is returned, all 
       devices powered by the PDU should be shut down. The PDU's
       power should then be cycled to clear this condition."
       
   ::= { sPDUOutletControlEntry 2 }
   
sPDUOutletCtl OBJECT-TYPE
   SYNTAX INTEGER {
        outletOn      (1),
        outletOff     (2),
        outletReboot  (3),
        outletUnknown (4)
   }     

   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
       "Getting this variable will return the outlet state. If 
       the outlet is on, the outletOn (1) value will be returned.
       If the outlet is off, the outletOff (2) value will be
       returned. 
       
       If the state of the outlet cannot be determined, the 
       outletUnknown (4) value will be returned. If the 
       outletUnknown condition should occur, all devices 
       powered by the PDU should be shut down. The PDU's power 
       should then be cycled to clear this condition.
       
       Setting this variable to outletOn (1) will turn the outlet on.
       
       Setting this variable to outletOff (2) will turn the outlet off. 

       Setting this variable to outletReboot (3) will reboot the outlet.
      
       This OID is read-only when another user is logged in via
       another interface."

   ::= { sPDUOutletControlEntry 3 }

sPDUOutletCtlName    OBJECT-TYPE
   SYNTAX  DisplayString
   ACCESS  read-only
   STATUS  mandatory
   DESCRIPTION
      "The name of the outlet. Maximum size is 20 characters.
       This OID is provided for informational purposes only.
       This value is set by the sPDUOutletName OID."
       
   ::= { sPDUOutletControlEntry  4 }

-- the sPDUOutletConfig group
sPDUOutletConfigTableSize OBJECT-TYPE
   SYNTAX INTEGER
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The number of outlets for the PDU."
   ::= { sPDUOutletConfig 1 }

sPDUOutletConfigTable OBJECT-TYPE
   SYNTAX SEQUENCE OF SPDUOutletConfigEntry
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "The list of outlets to configure. The number of
       entries is defined by the sPDUOutletConfigTableSize
       OID."
       
   ::= { sPDUOutletConfig 2  }

sPDUOutletConfigEntry OBJECT-TYPE
   SYNTAX SPDUOutletConfigEntry  
   ACCESS not-accessible
   STATUS mandatory
   DESCRIPTION
      "The outlets to control."
   INDEX  { sPDUOutletConfigIndex}
   ::= { sPDUOutletConfigTable 1 }

SPDUOutletConfigEntry ::=
   SEQUENCE {
      sPDUOutletConfigIndex INTEGER,
      sPDUOutletPowerOnTime INTEGER,
      sPDUOutletName        DisplayString    
   }      

sPDUOutletConfigIndex OBJECT-TYPE
   SYNTAX INTEGER 
   ACCESS read-only
   STATUS mandatory
   DESCRIPTION
      "The index to the outlet entry."
   ::= { sPDUOutletConfigEntry 1 }
   
sPDUOutletPowerOnTime OBJECT-TYPE
   SYNTAX INTEGER 
   ACCESS read-write
   STATUS mandatory
   DESCRIPTION
      "The amount of time (in seconds) the outlet will delay 
       powering on when the Master Switch is powered on.
              
       Allowed values are:
       
       -1 never power on automatically.
       0  power on with the Master Switch.
       15 power on 15 seconds after the Master Switch has power applied.
       30 power on 30 seconds after the Master Switch has power applied.
       45 power on 45 seconds after the Master Switch has power applied.
       60 power on 60 seconds (1 minute) after the Master Switch has power applied.
       120 power on 120 seconds (2 minutes) after the Master Switch has power applied.
       300 power on 300 seconds (5 minutes) after the Master Switch has power applied.
       
       If a value other than a supported value is provided in a 
       set request, the PDU 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.
       
       This OID is read-only when another user is logged in via
       another interface."

   ::= { sPDUOutletConfigEntry 2 }
   
sPDUOutletName   OBJECT-TYPE
   SYNTAX  DisplayString    ACCESS  read-write
   STATUS  mandatory
   DESCRIPTION
      "The name of the outlet. Maximum size is 20 characters.

       This OID is read-only when another user is logged in via
       another interface."

   ::= { sPDUOutletConfigEntry  3 }

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

communicationLost TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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 percent of its rated capacity."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE DEGRADED
   ::= 2

upsDiagnosticsFailed TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsInteger, mtrapargsString }
   DESCRIPTION
      "SEVERE: One of the contacts on the Measure-UPS has 
       changed from its default position. The first variable is
       the contact number that is faulted."
   --#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
   VARIABLES { mtrapargsInteger, mtrapargsString }
   DESCRIPTION
      "INFORMATION: A fault on one of the Measure-UPS contacts
       has been resolved. The first variable is
       the contact number that 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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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
   VARIABLES { mtrapargsString }
   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

upsOverloadCleared TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: The overload condition has been cleared."
   --#TYPE "APC UPS: Overload cleared."
   --#SUMMARY "The overload condition has been cleared. ."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 33

smartBoostOff TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: The UPS has returned from smartboost."
   --#TYPE "APC UPS: Smartboost off."
   --#SUMMARY "The UPS has returned from smartboost."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 34

smartAvrReducingOff TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: The UPS has returned from Smart-AVR."
   --#TYPE "APC UPS: Smart-AVR reducing off"
   --#SUMMARY "The UPS has returned from Smart-AVR voltage reduction."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 35
   
upsBatteryReplaced TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: A bad battery fault has been cleared."
   --#TYPE "APC UPS: Bad battery replaced"
   --#SUMMARY "The UPS has returned from a bad battery fault."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 36

calibrationEnd TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: The UPS has finished calibrating."
   --#TYPE "APC UPS: Calibration end"
   --#SUMMARY "The UPS has finished calibrating"
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 37

dischargeCleared TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: A UPS discharge condition has been cleared."
   --#TYPE "APC UPS: Discharge cleared."
   --#SUMMARY "The UPS discharge condition has been cleared."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 38

gracefullShutdown TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: A gracefull shutdown has been initiated."
   --#TYPE "APC UPS: A gracefull shutdown has been initiated."
   --#SUMMARY "A gracefull shutdown has been initiated."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 39

   
outletOn TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { sPDUOutletControlIndex }
   DESCRIPTION
       "WARNING: The specified PDU outlet has turned on.
       If sPDUOutletControlIndex equals zero, then all outlets have 
       turned on."
   --#TYPE "APC PDU: State change."
   --#SUMMARY "An OUTLET has been turned on"
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 41
   

outletOff TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { sPDUOutletControlIndex }
   DESCRIPTION
       "WARNING: The specified PDU outlet has turned off.
       If sPDUOutletControlIndex equals zero, then all outlets 
       have turned off."
   --#TYPE "APC PDU: State change."
   --#SUMMARY "An OUTLET has turned off."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 42
   
outletReboot TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { sPDUOutletControlIndex }
   DESCRIPTION
       "WARNING: The specified PDU outlet has rebooted.
       If sPDUOutletControlIndex equals zero, then all outlets 
       have rebooted."
   --#TYPE "APC PDU: State change."
   --#SUMMARY "An OUTLET has rebooted."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 43

configChangeSNMP TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "WARNING: The SNMP configuration has been changed."
   --#TYPE "APC: State change."
   --#SUMMARY "The SNMP configuration has been changed."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 44
   
   
configChangeOutlet TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { sPDUOutletConfigIndex }
   DESCRIPTION
       "WARNING: The specified PDU outlet has changed configuration.
       If sPDUOutletConfigIndex equals zero, then the Master outlet 
       has changed configuration."
   --#TYPE "APC PDU: State change."
   --#SUMMARY "An outlet configuration has been changed."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 45

accessViolationConsole TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "WARNING: Someone has attempted to login via the console with the incorrect password."
   --#TYPE "APC: Access violation."
   --#SUMMARY "Three unsuccessful logins have been attempted."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 46

accessViolationHTTP TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "WARNING: Someone has attempted to login via HTTP with the incorrect password."
   --#TYPE "APC: Access violation."
   --#SUMMARY "An unsuccessful attempt to login via HTTP."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 47
   
passwordChange TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "WARNING: The password for the PDU has been changed."
   --#TYPE "APC: Password change."
   --#SUMMARY "Someone has changed the password on the PDU."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 48

badVoltage TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "WARNING: The output voltage is not within acceptable range."
   --#TYPE "APC UPS: Bad output voltage."
   --#SUMMARY "The output voltage is not within acceptable range."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 49
   
badVoltageCleared TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: The output voltage has returned to an acceptable level."
   --#TYPE "APC UPS: The bad voltage output condition has been cleared."
   --#SUMMARY "The output voltage has returned to an acceptable level."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 50
   
chargerFailure TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "WARNING: The battery charger has failed."
   --#TYPE "APC UPS: The battery charger has failed."
   --#SUMMARY "The battery charger has failed."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 51

chargerFailureCleared TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "INFORMATIONAL: The battery charger failure condition has been cleared."
   --#TYPE "APC UPS: The battery charger failure condition has been cleared."
   --#SUMMARY "The battery charger failure condition has been cleared."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 52

batteryOverTemperature TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "WARNING: The battery temperature threshold has been violated."
   --#TYPE "APC UPS: The battery temperature threshold has been violated."
   --#SUMMARY "The battery temperature threshold has been violated."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 53

batteryOverTemperatureCleared TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "INFORMATIONAL: The battery over temperature has been cleared."
   --#TYPE "APC UPS: The battery over temperature has been cleared."
   --#SUMMARY "The battery over temperature has been cleared."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 54
   
 smartRelayFault TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "WARNING: SmartBoost(TM) or SmartTrim(TM) relay fault."
   --#TYPE "APC UPS: SmartBoost(TM) or SmartTrim(TM) relay fault."
   --#SUMMARY "SmartBoost(TM) or SmartTrim(TM) relay fault."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 55

smartRelayFaultCleared TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
       "INFORMATIONAL: SmartBoost(TM) or SmartTrim(TM) relay fault has been cleared."
   --#TYPE "APC UPS: SmartBoost(TM) or SmartTrim(TM) relay fault has been cleared."
   --#SUMMARY "SmartBoost(TM) or SmartTrim(TM) relay fault has been cleared."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 56
   
 humidityThresholdViolation1 TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsInteger, mtrapargsString }
   DESCRIPTION
       "WARNING: Probe 1 humidity threshold violated. The
       first variable is the current humidity."
   --#TYPE "APC UPS: Probe 1 humidity threshold violated."
   --#SUMMARY "Probe 1 humidity threshold violated."
   --#ARGUMENTS { }
   --#SEVERITY MAJOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL 
   ::= 57

humidityThresholdViolationCleared1 TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: A Measure-UPS humidity threshold violated has been cleared on probe 1."
   --#TYPE "APC MEASURE-UPS: A humidity threshold violation has been cleared on probe 1."
   --#SUMMARY "A humidity threshold violation has been cleared on probe 1."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 58

temperatureThresholdViolation1 TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsInteger, mtrapargsString }
   DESCRIPTION
      "SEVERE: A Measure-UPS temperature threshold has been violated on probe 1.
      The first variable is the current temperature."
   --#TYPE "APC MEASURE-UPS: A temperature threshold has been violated on probe 1."
   --#SUMMARY "A temperature threshold has been violated on probe 1."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 59
   
temperatureThresholdViolationCleared1 TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: A Measure-UPS temperature threshold violated has been cleared on probe 1."
   --#TYPE "APC MEASURE-UPS: A temperature threshold violation has been cleared on probe 1."
   --#SUMMARY "A temperature threshold violation has been cleared on probe 1."
   --#ARGUMENTS { }
   --#SEVERITY MINOR
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 60
   
humidityThresholdViolation2 TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsInteger, mtrapargsString }
   DESCRIPTION
      "SEVERE: A Measure-UPS humidity threshold has been violated on probe 2.
      The first variable is the current humidity."
   --#TYPE "APC MEASURE-UPS: A humidity threshold has been violated on probe 2."
   --#SUMMARY "A humidity threshold has been violated on probe 2."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 61
   
humidityThresholdViolationCleared2 TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: A Measure-UPS humidity threshold violated has been cleared on probe 2."
   --#TYPE "APC MEASURE-UPS: A humiditythreshold violation has been cleared on probe 2."
   --#SUMMARY "A humidity threshold violation has been cleared on probe 2."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 62

temperatureThresholdViolation2 TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsInteger, mtrapargsString }
   DESCRIPTION
      "SEVERE: A Measure-UPS temperature threshold has been violated on probe 2.
       The first variable is the current temperature."
   --#TYPE "APC MEASURE-UPS: A temperature threshold has been violated on probe 2."
   --#SUMMARY "A temperature threshold has been violated on probe 2."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 63
   
temperatureThresholdViolationCleared2 TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATIONAL: A Measure-UPS temperature threshold violated has been cleared on probe 2."
   --#TYPE "APC MEASURE-UPS: A temperature threshold violation has been cleared on probe 2."
   --#SUMMARY "A tempreature threshold violation has been cleared on probe 2."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 64

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

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

batteryIncrease TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: The number of batteries has increased."
   --#TYPE "APC UPS: The number of batteries has increased."
   --#SUMMARY "The number of batteries has increased."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 67
   
batteryDecrease TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: The number of batteries has decreased."
   --#TYPE "APC UPS: The number of batteries has decreased."
   --#SUMMARY "The number of batteries has decreased."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 68
   
powerModuleIncrease TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: The number of power modules has increased."
   --#TYPE "APC UPS: The number of power modules has increased."
   --#SUMMARY "The number of power modules has increased."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 69

powerModuleDecrease TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: The number of power modules has decreased."
   --#TYPE "APC UPS: The number of power modules has decreased."
   --#SUMMARY "The number of power modules has decreased."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 70
   
intelligenceModuleInserted TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: An intelligence module has been inserted."
   --#TYPE "APC UPS: An intelligence module has been inserted."
   --#SUMMARY "An intelligence module has been inserted."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 71

intelligenceModuleRemoved TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: An intelligence module has been removed."
   --#TYPE "APC UPS: An intelligence module has been removed."
   --#SUMMARY "An intelligence module has been removed."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 72
   
rintelligenceModuleInserted TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: A redundant intelligence module has been inserted."
   --#TYPE "APC UPS: A redundant intelligence module has been inserted."
   --#SUMMARY "A redundant intelligence module has been inserted."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 73

rintelligenceModuleRemoved TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: A redundant intelligence module has been removed."
   --#TYPE "APC UPS: An redundant intelligence module has been removed."
   --#SUMMARY "An redundant intelligence module has been removed."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 74
   
extBatteryFrameIncease TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: An external battery frame has been added."
   --#TYPE "APC UPS: An external battery frame has been added."
   --#SUMMARY "An external battery frame has been added."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 75

extBatteryFrameDecrease TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsString }
   DESCRIPTION
      "INFORMATION: An external battery frame has been removed."
   --#TYPE "APC UPS: An external battery frame has been removed."
   --#SUMMARY "An external battery frame has been removed."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 76
   
abnormalCondition TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsInteger, mtrapargsString }
   DESCRIPTION
      "INFORMATION: An abnormal condition has been detected.
       The first variable is the fault condition."
   --#TYPE "APC UPS: An abnormal condition has been detected."
   --#SUMMARY "An abnormal condition has been detected."
   --#ARGUMENTS { }
   --#SEVERITY CRITICAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 77

abnormalConditionCleared TRAP-TYPE
   ENTERPRISE apc
   VARIABLES { mtrapargsInteger, mtrapargsString }
   DESCRIPTION
      "INFORMATION: An abnormal condition has been cleared.
      The first variable is the fault condition."
   --#TYPE "APC UPS: An abnormal condition has been cleared."
   --#SUMMARY "An abnormal condition has been cleared."
   --#ARGUMENTS { }
   --#SEVERITY INFORMATIONAL
   --#TIMEINDEX 1
   --#HELP ""
   --#HELPTAG 0
   --#STATE OPERATIONAL
   ::= 78
   
END

