PDU2-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE                         FROM SNMPv2-SMI
    enterprises, Integer32, Unsigned32, IpAddress                           FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF
    TEXTUAL-CONVENTION, DisplayString, MacAddress, TruthValue, RowPointer   FROM SNMPv2-TC
    InetAddressType, InetAddress, InetPortNumber FROM INET-ADDRESS-MIB
    sysContact, sysName, sysLocation FROM RFC1213-MIB;

raritan MODULE-IDENTITY
    LAST-UPDATED "201711130000Z"      -- November 13, 2017
    ORGANIZATION "Raritan"
    CONTACT-INFO
           "Author:       Raritan Americas, Inc.
            postal:       Raritan Americas, Inc.
                          400 Cottontail Lane
                          Somerset, NJ 08873
            email:        tech@raritan.com
            phone:        +1 732 764 8886"
    DESCRIPTION
           "This MIB describes the SNMP functions of the Raritan PX2, PX3
            and BCM2 series power distribution units by Raritan."

    REVISION     "201711130000Z"      -- November 13, 2017
    DESCRIPTION
           "PX2/PX3 release 3.4.0:
            1) Changed STATUS of inletConfigurationTable/inletRCMResidualOperatingCurrent to obsolete
            2) Added to trapInformationGroup:
                smartCardReaderId
                smartCardTimestamp
                smartCardType
                smartCardId
                suspectedTripCauseLabel
            3) Added the following traps:
                smartCardInserted
                smartCardRemoved
            4) Deprecated the following traps:
                rfCodeTagConnected
                rfCodeTagDisconnected
            5) Revised the DESCRIPTION of all objects
            6) SensorTypeEnumeration: Added
                doorLockState(49)
                doorHandleLock(50)
            7) Added to overCurrentProtectorSensorStateChange trap:
                suspectedTripCauseLabel"

    REVISION     "201612020000Z"      -- December 2, 2016
    DESCRIPTION
           "PX2/PX3 release 3.3.10:
            1) Added 'none(2)' to DeviceCascadeTypeEnumeration
            2) Deprecated unitConfigurationTable/pxMACAddress
            3) Deprecated unitConfigurationTable/networkInterfaceType
            4) Added pduSerialNumber to the OBJECTS clause of all traps
            5) Deprecated activeDNSServerTable/activeDNSServerAddressSource
            6) Deprecated activeNTPServerTable/activeNTPServerAddressSource
            7) Changed STATUS of unitConfigurationTable/useDHCPProvidedNTPServer to obsolete
            8) Added OBJECT-GROUP obsoleteObjectsGroup
            9) Modified DESCRPTION of the following:
                deviceCascadeType
                deviceCascadePosition
                outletPowerCyclingPowerOffPeriod
                pduPowerCyclingPowerOffPeriod
                globalOutletPowerCyclingPowerOffPeriod
                usbSlaveConnected
                usbSlaveDisconnected"

    REVISION     "201602160000Z"      -- February 16, 2016
    DESCRIPTION
           "PX2/PX3 release 3.3.0:
            1) Added inletRatedCurrent to the following traps:
                powerMeterModified
                powerMeterAdded
            2) Added activeNTPServerCount to unitConfigurationTable
            3) Added activeNTPServerTable"

    REVISION     "201602090000Z"      -- February 9, 2016
    DESCRIPTION
           "PX2/PX3 release 3.2.20:
            1) Added the following:
                 NetworkInterfaceTypeEnumeration,
                 networkInterfaceType to unitConfigurationTable
            2) Added AddressSourceEnumeration
            3) Added activeDNS ServerCount to unitConfigurationTable
            4) Added activeDNSServerTable"

    REVISION     "201510260000Z"      -- October 26, 2015
    DESCRIPTION
           "PX2/PX3 release 3.2.10:
            1) Added to trapInformation:
                phoneNumber
            2) Added the following traps:
                smsMessageTransmissionFailure trap"

    REVISION     "201509300000Z"      -- September 30, 2015
    DESCRIPTION
           "PX2/PX3 release 3.2.1:
                - Support for PMC/BCM2
                - Line and node information for component poles

            1) SensorTypeEnumeration: Added
                reactivePower(29)
                displacementPowerFactor(35)
            2) SensorUnitsEnumeration: Added
                var(23)
            3) ProductTypeEnumeration: Added
                powerMeter(3)
            4) Added the following enumerations:
                PanelLayoutEnumeration
                PanelNumberingEnumeration
                CircuitTypeEnumeration
                PhaseEnumeration
                LineEnumeration
                PowerMeterTypeEnumeration
            5) Added the following tables:
                inletPoleConfigurationTable
                overCurrentProtectorPoleConfigurationTable
                outletPoleConfigurationTable
                transferSwitchPoleConfigurationTable
                powerMeterConfigurationTable
                circuitConfigurationTable
                circuitPoleConfigurationTable
                circuitSensorConfigurationTable
                circuitPoleSensorConfigurationTable
                circuitSensorLogTable
                circuitPoleSensorLogTable
                circuitSensorMeasurementsTable
                circuitPoleSensorMeasurementsTable
                circuitSensorControlTable
            6) unitConfigurationTable: Added
                circuitCount
            7) inletDeviceCapabilities: Added
                reactivePower(28)
            8) inletPoleCapabilities: Added
                phaseAngle(23)
                reactivePower(28)
                displacementPowerFactor(34)
            9) overCurrentProtectorConfigurationTable: Added
                overCurrentProtectorPoleCount
            10) transferSwitchConfigurationTable: Added
                transferSwitchPoleCount
            11) Added the following to trapInformation:
                circuitNumber
                circuitPoleNumber
            12) Added the following traps:
                circuitSensorStateChange
                circuitPoleSensorStateChange
                circuitAdded
                circuitDeleted
                circuitModified
                circuitSensorReset
                powerMeterAdded
                powerMeterDeleted
                powerMeterModified
            13) Revised the DESCRIPTION clauses of:
                pduCount
                pduId
                inletPoleCount"

    REVISION     "201502180000Z"      -- February 18, 2015
    DESCRIPTION
           "PX2/PX3 release 3.1.0:
                - Support absolute humidity sensors

            1) SensorStateEnumeration: Added
                nonRedundant(30)
            2) SensorTypeEnumeration: Added
                absoluteHumidity(28)
            3) SensorUnitsEnumeration: Added
                grampercubicmeter(22)
            4) Corrected the possible states for the rcmState, operatingState and activeInlet sensors
            5) Documented that the unitSensorResetValue object in unitSensorControlTable applies
                only to multi-inlet PDUs
            6) Deprecated inletRatedVA, inletRatedFrequency
            7) inletDeviceCapabilities: Corrected bit values for residualCurrent(25)
                and rcmState(26)"


    REVISION     "201406040000Z"      -- June 04, 2014
    DESCRIPTION
           "PX2/PX3 release 3.0.0:
                - Support for signed sensor readings
                - Support for unit-level power and energy sensors
                - Send trap on peripheral device firmware update
                - Allow peripheral device auto management to be disabled
                - Allow front panel outlet switching to be enabled or disabled
                - Support DX-PIR occupancy sensor

            1) Changed the SYNTAX from Integer32 to Unsigned32:
                measurementsUnitSensorValue
            2) Added signed value, range and threshold columns to:
                unitSensorConfigurationTable
                unitSensorMeasurementsTable
                pduSensorStateChange
                inletSensorConfigurationTable
                inletSensorMeasurementsTable
                inletSensorLogTable
                inletSensorStateChange
                inletPoleSensorConfigurationTable
                inletPoleSensorMeasurementsTable
                inletPoleSensorLogTable
                inletPoleSensorStateChange
                overCurrentProtectorSensorConfigurationTable
                overCurrentProtectorSensorMeasurementsTable
                overCurrentProtectorSensorLogTable
                overCurrentProtectorSensorStateChange
                outletSensorConfigurationTable
                outletSensorMeasurementsTable
                outletSensorLogTable
                outletSensorStateChange
                outletPoleSensorConfigurationTable
                outletPoleSensorMeasurementsTable
                outletPoleSensorLogTable
                outletPoleSensorStateChange
            3) Added unsigned value, range and threshold columns to:
                unitSensorLogTable
                transferSwitchSensorConfigurationTable
                transferSwitchSensorMeasurementsTable
                transferSwitchSensorLogTable
                transferSwitchSensorStateChange
            4) Added UnitSensorControlTable
            5) Added unitSensorReset and unitSensorStateChange traps
            6) Deprecated pduSensorStateChange trap
            7) Added to unitConfigurationTable:
                peripheralDevicesAutoManagement
                frontPanelOutletSwitching
                frontPanelRCMSelfTest
                frontPanelActuatorControl
            8) Added to externalSensorConfigurationTable:
                externalSensorAlarmedToNormalDelay
            9) Deprecated:
                wireCount in unitConfiguraionTable
                tables for wireSensors
                traps for wireSensors
            10) SensorStateEnumeration: Added
                fail(14)
            11) ProductTypeEnumeration: Renamed
                rackSts(2) to transferSwitch
            12) Added:
                PeripheralDeviceFirmwareUpdateStateEnumeration
                peripheralDeviceFirmwareUpdateState
                peripheralDeviceFirmwareUpdate trap
            13) Added userName to the following traps:
                bulkConfigurationSaved
                bulkConfigurationCopied
                lhxSupportChanged
                deviceSettingsSaved
                deviceSettingsRestored"

    REVISION     "201401090000Z"      -- January 9, 2014
    DESCRIPTION
           "PX2/PX3 release 2.6.0:
                - Support for PX3TS transfer switches

            1) SensorTypeEnumeration:
               Removed:
                scrOpenStatus
                scrShortStatus
               Added:
                i1SmpsStatus(46)
                i2SmpsStatus(47)
                switchStatus(48)
            2) SensorStateEnumeration:
               Removed:
                marginal
                fail
               Added:
                i1OpenFault(22)
                i1ShortFault(23)
                i2OpenFault(24)
                i2ShortFault(25)
                fault(26)
                warning(27)
                critical(28)
            3) unitDeviceCapabilities: Added
                i1SmpsStatus(45)
                i2SmpsStatus(46)
            4) transferSwitchCapabilities: Added
                switchStatus(47)
            5) Added transferSwitchConfiguration table
            6) unitSensorLogTable:
               Removed:
                logUnitSensorAvgValue
                logUnitSensorMaxValue
                logUnitSensorMinValue
               Added:
                logUnitSensorSignedAvgValue
                logUnitSensorSignedMaxValue
                logUnitSensorSignedMinValue"

    REVISION     "201401070000Z"      -- January 7, 2014
    DESCRIPTION
           "PX2/PX3 release 2.5.30:
                - Accumulating sensors (energy counters) can be reset
                - Sensor accuray and tolerance variables are deprecated

            1) Added peripheralDevicePackagePosition and peripheralDevicePackageState
            2) Added radiusError trap
            3) Added serverReachabilityError trap
            4) Deprecated the following:
                unitSensorConfigurationTable/unitSensorAccuracy
                unitSensorConfigurationTable/unitSensorTolerance
                inletSensorConfigurationTable/inletSensorAccuracy
                inletSensorConfigurationTable/inletSensorTolerance
                inletPoleSensorConfigurationTable/inletPoleSensorAccuracy
                inletPoleSensorConfigurationTable/inletPoleSensorTolerance
                outletSensorConfigurationTable/outetSensorAccuracy
                outletSensorConfigurationTable/outletSensorTolerance
                outletPoleSensorConfigurationTable/outetPoleSensorAccuracy
                outletPoleSensorConfigurationTable/outletPoleSensorTolerance
                overCurrentProtectorSensorConfigurationTable/overCurrentProtectorSensorAccuracy
                overCurrentProtectorSensorConfigurationTable/overCurrentProtectorSensorTolerance
                externalSensorConfigurationTable/externalSensorAccuracy
                externalSensorConfigurationTable/externalSensorTolerance
                wireSensorConfigurationTable/wireSensorAccuracy
                wireSensorConfigurationTable/wireSensorTolerance
                transferSwitchSensorConfigurationTable/transferSwitchSensorAccuracy
                transferSwitchSensorConfigurationTable/transferSwitchSensorTolerance
            5) Added inletSensorReset and outletSensorReset traps
            6) Added inletSensorControl and inletSensorControlTable
            7) Added outletSensorControl and outletSensorControlTable
            8) Added unknownPeripheralDeviceAttached trap"

    REVISION     "201311210000Z"      -- November 21, 2013
    DESCRIPTION
           "PX2/PX3 release 2.5.20:
                - Support for residual current monitors
                - Support for USB cascading with one IP address
                - Support for line-neutral voltage sensors

            1) SensorTypeEnumeration: Added
                rmsVoltageLN(25)
                residualCurrent(26)
                rcmState(27)
            2) SensorStateEnumeration: Added
                warning(27)
                critical(28)
                selfTest(29)
            3) inletDeviceCapabilities: Added
                residualCurrent(26)
                rcmState(27)
            4) Added rmsVoltageLN(24) to inletPoleCapabilities
            5) Added inletRCMResidualOperatingCurrent to inletConfigurationTable
            6) Added rcmControl under control
            7) Added rcmSelfTestTable under rcmControl
            8) Added DeviceCascadeTypeEnumeration
            9) Added deviceCascadeType, deviceCascadePosition to unitConfigurationTable
            10) Added agentInetPortNumber under trapInformation
            11) Added agentInetPortNumber as a varbind to all traps
            12) Added peripheralDevicePackageTable containing information on peripheral
                device packages"

    REVISION     "201309180000Z"      -- September 18, 2013
    DESCRIPTION
           "1) Added serverConnectivityUnrecoverable trap"

    REVISION     "201308010000Z"      -- August 1, 2013
    DESCRIPTION
           "1) Added RCBO OCP types"

    REVISION     "201307100000Z"      -- July 10, 2013
    DESCRIPTION
           "1) Added externalSensorTypeDefaultThresholdsTable"

    REVISION     "201307020000Z"      -- July 2, 2013
    DESCRIPTION
           "1) Added relayBehaviorOnPowerLoss to unitConfigurationTable"

    REVISION     "201305210000Z"      -- May 21, 2013
    DESCRIPTION
           "1) Added inletEnableState to inletConfigurationTable
            2) Added traps: inletEnabled and inletDisabled"

    REVISION     "201304260000Z"      -- April 26, 2013
    DESCRIPTION
           "1) Added traps: webcamInserted and webcamRemoved
            2) Added trapInformation parameters: webcamModel, webcamConnectionPort"

    REVISION     "201303270000Z"      -- March 27, 2013
    DESCRIPTION
           "1) Changed outletSource to outletPowerSource in outletConfigurationTable
            2) Changed transferSwitchSource1 and transferSwitchSource2 to
               transferSwitchPowerSource1 and transferSwitchPowerSource2 in transferSwitchConfigurationTable
            3) Changed overCurrentProtectorSource to overCurrentProtectorPowerSource in overCurrentProtectorConfigurationTable
            4) Changed wireSource to wirePowerSource in wireConfigurationTable"

    REVISION     "201303251000Z"      -- March 25, 2013
    DESCRIPTION
           "1) Added comments showing the possible states for each sensor type."

    REVISION     "201303250000Z"      -- March 25, 2013
    DESCRIPTION
           "1) Added outletSource to outletConfigurationTable
            2) Added transferSwitchSource1 and transferSwitchSource2 to transferSwitchConfigurationTable
            3) Added overCurrentProtectorSource to overCurrentProtectorConfigurationTable
            4) Added wireSource to wireConfigurationTable"

    REVISION     "201303180000Z"      -- March 18, 2013
    DESCRIPTION
           "1) Added meteringControllerCount to the unitConfigurationTable
            2) Added meteringController to BoardTypeEnumeration"

    REVISION     "201302250000Z"      -- February 25, 2013
    DESCRIPTION
           "1) Added ProductTypeEnumeration
            2) Added productType to unitConfigurationTable"


    REVISION     "201302040000Z"      -- February 04, 2013
    DESCRIPTION
           "1) Added TransferSwitchTransferReasonEnumeration
            2) Added transferSwitchLastTransferReason to transferSwitchControlTable
            3) Added transferSwitchLastTransferReason to transferSwitchSensorStateChange trap"

    REVISION     "201301240000Z"      -- January 24, 2013
    DESCRIPTION
           "1) Added required sensor types and units"

    REVISION     "201211200000Z"      -- November 20, 2012
    DESCRIPTION
           "1) Added  externalSensorIsActuator and externalSensorPosition to the externalSensorConfigurationTable
            2) Added actuatorControlTable"

    REVISION     "201211150000Z"      -- November 15, 2012
    DESCRIPTION
           "1) Removed transferSwitchOutputCapabilities from transferSwitchConfigurationTable
            2) Removed the following tables:
                transferSwitchOutputSensorConfigurationTable
                transferSwitchOutputSensorLogTable
                transferSwitchOutputSensorMeasurementsTable
            3) Removed transferSwitchOutputSensorStateChange trap
            4) Added transferSwitchControlTable
            5) Removed the following entries from SensorTypeEnumeration:
                overTemperatureFault
                fans
                internalFault
                inletPhaseDeviationFault
                overloadFault
            6) Added the following entries to SensorTypeEnumeration:
                overloadStatus
                overheatStatus
                scrOpenStatus
                scrShortStatus
                fanStatus
                inletPhaseSyncAngle
                inletPhaseSync
            7) Added the following entries to SensorStateEnumeration:
                inSync,
                outOfSync
            8) Renamed transferSwitchNoTransferIfPhaseDeviationFault to
               transferSwitchAutoReTransferRequiresPhaseSync"

    REVISION     "201210050000Z"      -- October 5, 2012
    DESCRIPTION
           "1) Modified the DESCRIPTION of the following:
                outletSwitchControlTable
                transferSwitchOutputSensorMeasurementsEntry
                overCurrentProtectorSensorMeasurementsEntry
                outletPoleSensorMeasurementsEntry
                transferSwitchOutputSensorLogEntry
                transferSwitchOutputSensorLogTable
                wireSensorLogEntry
                externalSensorNumber
                controllerConfigurationEntry
                SensorUnitsEnumeration
                measurementsGroup
                logGroup"

    REVISION     "201210040000Z"      -- October 4, 2012
    DESCRIPTION
           "1) In the transferSwitchConfigurationTable,
               replaced transferSwitchFrequencyDeviation with
               transferSwitchLowerMarginalFrequency and transferSwitchUpperMarginalFrequency"

    REVISION     "201209280000Z"      -- September 28, 2012
    DESCRIPTION
           "1) Modified the DESCRIPTION of the following:
                bulkConfigurationCopied, userModified, userSessionTimeout"

    REVISION     "201209210000Z"      -- September 21, 2012
    DESCRIPTION
           "1) Added the following traps:
                deviceSettingsSaved, deviceSettingsRestored"

    REVISION     "201209200000Z"      -- September 20, 2012
    DESCRIPTION
           "1) Added the following objects to the transferSwitchConfigurationTable:
                transferSwitchInternalFaultType
            2) Added transferSwitchInternalFaultType to transferSwitchSensorStateChange trap
            3) Added marginal to SensorStateEnumeration"

    REVISION     "201209170000Z"      -- September 17, 2012
    DESCRIPTION
           "1) Deprecated the following objects from the unitConfigurationTable
                pxInetAddressType
                pxInetIPAddress
                pxInetNetmask
                pxInetGateway"

    REVISION     "201209040000Z"      -- September 4, 2012
    DESCRIPTION
           "Support for transfer Switch objects and sensors
            1) Added transferSwitchCount to unitConfigurationTable
            2) Added the following tables:
                transferSwitchConfigurationTable
                transferSwitchSensorConfigurationTable
                transferSwitchSensorLogTable
                transferSwitchSensorMeasurementsTable
                transferSwitchOutputSensorConfigurationTable
                transferSwitchOutputSensorLogTable
                transferSwitchOutputSensorMeasurementsTable
            3) Added
                transferSwitchSensorStateChange trap
                transferSwitchOutputSensorStateChange trap"

    REVISION     "201206220000Z"      -- June 22, 2012
    DESCRIPTION
           "1) Added surgeProtectorStatus to SensorTypeEnumeration
            2) Added surgeProtectorStatus to inletDeviceCapabilities"

    REVISION     "201206180000Z"      -- June 18, 2012
    DESCRIPTION
           "1) Added a comment before the section listing the traps.
               The comment notes that the pxInetIPAddressType and
               pxInetIPAddress fields are not used for IPv6 traps"

    REVISION     "201206060000Z"      -- June 6, 2012
    DESCRIPTION
           "Support for wire objects and sensors
            1) Added wireCount to unitConfigurationTable
            2) Added the following tables:
                wireConfigurationTable
                wireSensorConfigurationTable
                wireSensorLogTable
                wireSensorMeasurementsTable
            3) Added wireSensorStateChange trap"

    REVISION     "201205250000Z"      -- May 25, 2012
    DESCRIPTION
           "1) Added userAccepted/DeclinedRestrictedServiceAgreement traps"

    REVISION     "201205150000Z"      -- May 15, 2012
    DESCRIPTION
           "Added support for NTP servers
            1) Added the following objects under info:
                synchronizeWithNTPServer
                useDHCPProvidedNTPServer
                firstNTPServerAddressType
                firstNTPServerAddress
                secondNTPServerAddressType
                secondNTPServerAddress"

    REVISION     "201203260000Z"      -- March 26, 2012
    DESCRIPTION
           "1) Added lhxSupportChanged trap"

    REVISION     "201112130000Z"      -- December 13, 2011
    DESCRIPTION
           "1) Added usbSlaveConnected, usbSlaveDisonnected traps"

    REVISION     "201111290000Z"      -- November 29, 2011
    DESCRIPTION
           "1) Added cascadedDeviceConnected to UnitConfigurationEntryStruct"

    REVISION     "201110250000Z"      -- October 25, 2011
    DESCRIPTION
           "1) Added DeviceIdentificationParameterEnumeration
            2) Added deviceIdentificationChanged Trap
            3) Added sysContact, sysName, sysLocation to all traps"

    REVISION     "201106160000Z"      -- June 16, 2011
    DESCRIPTION
           "1) Changed DESCRIPTION of outletSequencingDelay"

    REVISION     "201103220000Z"      -- March 22, 2011
    DESCRIPTION
           "1) Added rfCodeTagConnected, rfCodeTagDisconnected traps
            2) Changed MAX-ACCESS for externalOnOffSensorSubtype to read-write"

    REVISION     "201102210000Z"      -- February 21, 2011
    DESCRIPTION
           "1) Added rpm(19) to SensorUnitsEnumeration"

    REVISION     "201102140000Z"      -- February 14, 2011
    DESCRIPTION
           "1) Changed 5WIRE IEC60309 enumerations from 250V to 208V"

    REVISION     "201102080000Z"      -- February 8, 2011
    DESCRIPTION
           "1) Removed OnOffSensorSubtypeEnumeration
            2) Changed SYNTAX of externalOnOffSensorSubtype to SensorTypeEnumeration
            3) Added binary, contact, fanspeed, none to SensorTypeEnumeration
            4) Changed outletPoleCapabilities to be the same as inletPoleCapabilities"

    REVISION     "201102030000Z"      -- February 3, 2011
    DESCRIPTION
           "1) Added externalSensorSerialNumber,externalOnOffSensorSubtype, externalSensorChannelNumber
               to the externalSensorStateChange trap."

    REVISION     "201101310000Z"      -- January 31, 2011
    DESCRIPTION
           "1) Modifed the DESCRIPTION of the powerControl trap"

    REVISION     "201012150000Z"      -- December 15, 2010
    DESCRIPTION
           "1) Added dataLoggingEnableForAllSensors to logConfigurationTable"

    REVISION     "201012131131Z"      -- December 13, 2010
    DESCRIPTION
           "1) Added inrushGuardDelay to unitConfigurationTable
            2) Added outletSequenceDelay to outletConfigurationTable
            3) Deprecated outletSequencingDelay"

    REVISION     "201012130000Z"      -- December 13, 2010
    DESCRIPTION
           "1) Added externalOnOffSensorSubtype to ExternalSensorConfigurationEntryStruct
            2) Added OnOffSensorSubtypeEnumeration
            3) Added alarmed to SensorStateEnumeration
            4) Removed firmwareFileDiscarded trap
            5) Removed securityViolation trap"

    REVISION     "201012070000Z"      -- December 7, 2010
    DESCRIPTION
           "1) Changed DESCRIPTION of measurementPeriod to say that the value is fixed at 1 second"

    REVISION     "201010070000Z"      -- October 7, 2010
    DESCRIPTION
           "1) Added ocpFUSEPAIR(5) to OverCurrentProtectorTypeEnumeration
            2) Changed ocpFUSE1POLE(4) to ocpFUSE(4) in OverCurrentProtectorTypeEnumeration"

    REVISION     "201010040000Z"      -- October 4, 2010
    DESCRIPTION
           "1) added ocpFUSE2POLE(5) to OverCurrentProtectorTypeEnumeration
            2) changed ocpFUSE(4) to ocpFUSE1POLE(4) in OverCurrentProtectorTypeEnumeration"

    REVISION     "201009010000Z"      -- September 1, 2010
    DESCRIPTION
           "1) Removed userName from serverNotReachable and serverReachable traps"

    REVISION     "201008050000Z"      -- August 5, 2010
    DESCRIPTION
           "1) Added reliabilityDataTableSequenceNumber
            2) Changed SYNTAX of reliabilityErrorLogIndex to Integer32(1..2147483647)"

    REVISION     "201007230000Z"      -- July 23, 2010
    DESCRIPTION
           "1) Moved serverCount to unitConfigurationTable"

    REVISION     "201007220000Z"      -- July 22, 2010
    DESCRIPTION
           "1) Added support for the Reliability Tables
            2) Added new group reliabilityGroup
            3) Defined nodes reliability,reliabilityData,reliabilityErrorLog
            4) Added reliabilityDataTable & reliabilityErrorLogTable"

    REVISION     "201007210000Z"      -- July 21, 2010
    DESCRIPTION
           "1) Added plug56PA320 to PlugTypeEnumeration
            2) Added plug56P320F to PlugTypeEnumeration"

    REVISION     "201007140000Z"      -- July 14, 2010
    DESCRIPTION
           "1) Added the following traps:
                pingServerEnabled
                pingServerDisabled
                serverNotReachable
                serverReachable
            2) Added the serverReachabilityTable"

    REVISION     "201007060000Z"      -- July 6, 2010
    DESCRIPTION
           "1) Added externalSensorChannelNumber to externalSensorConfigurationTable"

    REVISION     "201007010000Z"      -- July 1, 2010
    DESCRIPTION
           "1) Added outletSwitchingState to outletSwitchControlTable
            2) Added outletSwitchingTimeStamp to outletSwitchControlTable"

    REVISION     "201006300000Z"      -- June 30, 2010
    DESCRIPTION
           "1) Added switchingOperation to the powerControl trap"

    REVISION     "201006210000Z"      -- June 21, 2010
    DESCRIPTION
           "1) Added support for Load shedding
            2) Added loadShedding to the unitConfigurationTable.
            3) Added nonCritical to the outletConfigurationTable
            4) Added loadSheddingModeEntered & loadSheddingModeExited traps
            5) Modified description of inletPlug in inletConfigurationTable"

    REVISION     "201006030000Z"      -- June 3, 2010
    DESCRIPTION
           "1) Added plugOTHER to PlugTypeEnumeration
            2) Added receptacleOTHER to ReceptacleTypeEnumeration
            3) Added inletPlugDescriptor to inletConfigurationTable
            4) Added outletReceptacleDescriptor to outletConfigurationTable"

    REVISION     "201005270000Z"      -- May 27, 2010
    DESCRIPTION
           "1) Added INetAddressType and INetAddress to represent IP addresses
            2) unitConfigurationTable: deprecated pxIpAddress
            3) unitConfigurationTable: added
                pxInetAddressType
                pxInetIPAddress
                pxInetNetmask
                pxInetGateway
            4) Added pxInetAddressType,pxInetIPAddress to all traps
            5) Defined new trap deviceUpdateFailed"

    REVISION     "201005240000Z"      -- May 24, 2010
    DESCRIPTION
           "Added typeOfSensor to externalSensorStateChange trap"

    REVISION     "201004190000Z"      -- April 19, 2010
    DESCRIPTION
           "Modified the DESCRIPTION of the deviceUpdateCompleted trap"

    REVISION     "201004150000Z"      -- April 15, 2010
    DESCRIPTION
           "Modified the DESCRIPTION of all SensorStateChangeDelay parameters"

    REVISION     "201004080000Z"      -- April 8, 2010
    DESCRIPTION
           "Modified the DESCRIPTION of sensor parameters that do not apply to discrete sensors"

    REVISION     "201003290000Z"      -- March 29, 2010
    DESCRIPTION
           "Added trap ldapError"

    REVISION     "201003250000Z"      -- March 25, 2010
    DESCRIPTION
           "Changed the SYNTAX of the following objects from Integer32 to Unsigned32:
                logInletSensorMaxValue,
                logInletSensorMinValue,
                logInletSensorAvgValue,
                logInletPoleSensorMaxValue,
                logInletPoleSensorMinValue,
                logInletPoleSensorAvgValue,
                logOutletSensorMaxValue,
                logOutletSensorMinValue,
                logOutletSensorAvgValue,
                logOutletPoleSensorMaxValue,
                logOutlePoletSensorMinValue,
                logOutletPoleSensorAvgValue,
                logOverCurrentProtectorSensorMaxValue,
                logOverCurrentProtectorSensorMinValue,
                logOverCurrentProtectorSensorAvgValue,
                measurementsInletSensorValue,
                measurementsInletPoleSensorValue,
                measurementsOutletSensorValue,
                measurementsOutletPoleSensorValue,
                measurementsOverCurrentProtectorSensorValue"

    REVISION     "201003160000Z"      -- March 16, 2010
    DESCRIPTION
           "Added trap smtpMessageTransmissionFailure"

    REVISION     "201003010000Z"      -- March 1, 2010
    DESCRIPTION
           "Changed externalSensorsZCoordinateUnits to an enumeration"

    REVISION     "201001290000Z"      -- January 29, 2010
    DESCRIPTION
           "The first version of the MIB"

    ::= { enterprises 13742 }

pdu2                                OBJECT IDENTIFIER ::= { raritan 6 }

traps                               OBJECT IDENTIFIER ::= { pdu2 0 }
trapInformation                     OBJECT IDENTIFIER ::= { traps 0 }
board                               OBJECT IDENTIFIER ::= { pdu2 1 }
environmental                       OBJECT IDENTIFIER ::= { pdu2 2 }
configuration                       OBJECT IDENTIFIER ::= { pdu2 3 }
control                             OBJECT IDENTIFIER ::= { pdu2 4 }
measurements                        OBJECT IDENTIFIER ::= { pdu2 5 }
log                                 OBJECT IDENTIFIER ::= { pdu2 6 }
conformance                         OBJECT IDENTIFIER ::= { pdu2 9 }
reliability                         OBJECT IDENTIFIER ::= { pdu2 10 }

unit                                OBJECT IDENTIFIER ::= { configuration 2 }
inlets                              OBJECT IDENTIFIER ::= { configuration 3 }
overCurrentProtector                OBJECT IDENTIFIER ::= { configuration 4 }
outlets                             OBJECT IDENTIFIER ::= { configuration 5 }
externalSensors                     OBJECT IDENTIFIER ::= { configuration 6 }
serverReachability                  OBJECT IDENTIFIER ::= { configuration 7 }
wires                               OBJECT IDENTIFIER ::= { configuration 8 }
transferSwitch                      OBJECT IDENTIFIER ::= { configuration 9 }
powerMeter                          OBJECT IDENTIFIER ::= { configuration 10 }
circuit                             OBJECT IDENTIFIER ::= { configuration 11 }

outletControl                       OBJECT IDENTIFIER ::= { control 1 }
externalSensorControl               OBJECT IDENTIFIER ::= { control 2 }
transferSwitchControl               OBJECT IDENTIFIER ::= { control 3 }
actuatorControl                     OBJECT IDENTIFIER ::= { control 4 }
rcmControl                          OBJECT IDENTIFIER ::= { control 5 }
inletSensorControl                  OBJECT IDENTIFIER ::= { control 6 }
outletSensorControl                 OBJECT IDENTIFIER ::= { control 7 }
unitSensorControl                   OBJECT IDENTIFIER ::= { control 8 }
circuitSensorControl                OBJECT IDENTIFIER ::= { control 9 }

measurementsUnit                    OBJECT IDENTIFIER ::= { measurements 1 }
measurementsInlet                   OBJECT IDENTIFIER ::= { measurements 2 }
measurementsOverCurrentProtector    OBJECT IDENTIFIER ::= { measurements 3 }
measurementsOutlet                  OBJECT IDENTIFIER ::= { measurements 4 }
measurementsExternalSensor          OBJECT IDENTIFIER ::= { measurements 5 }
measurementsWire                    OBJECT IDENTIFIER ::= { measurements 6 }
measurementsTransferSwitch          OBJECT IDENTIFIER ::= { measurements 7 }
measurementsCircuit                 OBJECT IDENTIFIER ::= { measurements 8 }

logUnit                             OBJECT IDENTIFIER ::= { log 1 }
logInlet                            OBJECT IDENTIFIER ::= { log 2 }
logOverCurrentProtector             OBJECT IDENTIFIER ::= { log 3 }
logOutlet                           OBJECT IDENTIFIER ::= { log 4 }
logExternalSensor                   OBJECT IDENTIFIER ::= { log 5 }
logWire                             OBJECT IDENTIFIER ::= { log 6 }
logTransferSwitch                   OBJECT IDENTIFIER ::= { log 7 }
logCircuit                          OBJECT IDENTIFIER ::= { log 8 }

reliabilityData                     OBJECT IDENTIFIER ::= { reliability 1 }
reliabilityErrorLog                 OBJECT IDENTIFIER ::= { reliability 2 }

compliances                         OBJECT IDENTIFIER ::= { conformance 1 }
groups                              OBJECT IDENTIFIER ::= { conformance 2 }

-- Conformance Information
-- compliance statements
complianceRev2 MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
           "The requirements for conformance to the PDU2-MIB."
    MODULE -- this module

    GROUP configGroup
    DESCRIPTION
           "The configuration group."

    OBJECT powerMeterPhaseCTRating
    MIN-ACCESS read-only
    DESCRIPTION
           "configuration is not required"

    OBJECT powerMeterNeutralCTRating
    MIN-ACCESS read-only
    DESCRIPTION
           "configuration is not required"

    OBJECT powerMeterEarthCTRating
    MIN-ACCESS read-only
    DESCRIPTION
           "configuration is not required"

    OBJECT circuitName
    MIN-ACCESS read-only
    DESCRIPTION
           "configuration is not required"

    OBJECT circuitRatedCurrent
    MIN-ACCESS read-only
    DESCRIPTION
           "configuration is not required"

    OBJECT circuitPoleCTNumber
    MIN-ACCESS read-only
    DESCRIPTION
           "configuration is not required"

    OBJECT circuitPolePhase
    MIN-ACCESS read-only
    DESCRIPTION
           "configuration is not required"

    OBJECT circuitCTRating
    MIN-ACCESS read-only
    DESCRIPTION
           "configuration is not required"

    GROUP logGroup
    DESCRIPTION
           "The log group."

    GROUP measurementsGroup
    DESCRIPTION
           "The measurements group."

    GROUP controlGroup
    DESCRIPTION
           "The control group."

    GROUP trapInformationGroup
    DESCRIPTION
           "The information group."

    GROUP trapsGroup
    DESCRIPTION
           "The information group."

    GROUP reliabilityGroup
    DESCRIPTION
           "The reliability group."

    ::= { compliances 2 }

complianceRev1 MODULE-COMPLIANCE
    STATUS deprecated
    DESCRIPTION
           "The requirements for conformance to the PDU2-MIB."
    MODULE -- this module

    GROUP ipAddressGroup
    DESCRIPTION
           "The ipAddress group."

    GROUP oldConfigGroup
    DESCRIPTION
           "old (deprecated) configuration data"

    GROUP oldLogGroup
    DESCRIPTION
           "old (deprecated) logging data"

    GROUP oldMeasurementsGroup
    DESCRIPTION
           "old (deprecated) measurement data"

    GROUP oldTrapsGroup
    DESCRIPTION
           "old (deprecated) traps"

    ::= { compliances 1 }

-- units of conformance

configGroup OBJECT-GROUP
    OBJECTS { pduCount,
              pduManufacturer,
              pduModel,
              pduSerialNumber,
              pduRatedVoltage,
              pduRatedCurrent,
              pduRatedFrequency,
              pduRatedVA,
              pduImage,
              inletCount,
              transferSwitchCount,
              productType,
              overCurrentProtectorCount,
              outletCount,
              inletControllerCount,
              outletControllerCount,
              meteringControllerCount,
              externalSensorCount,
              circuitCount,
              utcOffset,
              pduName,
              boardVersion,
              boardFirmwareVersion,
              boardFirmwareTimeStamp,
              unitSensorLogAvailable,
              unitSensorUnits,
              unitSensorDecimalDigits,
              unitSensorResolution,
              unitSensorMaximum,
              unitSensorMinimum,
              unitSensorHysteresis,
              unitSensorStateChangeDelay,
              unitSensorLowerCriticalThreshold,
              unitSensorLowerWarningThreshold,
              unitSensorUpperCriticalThreshold,
              unitSensorUpperWarningThreshold,
              unitSensorEnabledThresholds,
              unitSensorSignedMaximum,
              unitSensorSignedMinimum,
              unitSensorSignedLowerCriticalThreshold,
              unitSensorSignedLowerWarningThreshold,
              unitSensorSignedUpperCriticalThreshold,
              unitSensorSignedUpperWarningThreshold,
              inletLabel,
              inletName,
              inletPlug,
              inletPoleCount,
              inletRatedVoltage,
              inletRatedCurrent,
              inletDeviceCapabilities,
              inletPoleCapabilities,
              inletPlugDescriptor,
              inletEnableState,
              inletPoleLine,
              inletPoleNode,
              inletSensorLogAvailable,
              inletSensorUnits,
              inletSensorDecimalDigits,
              inletSensorResolution,
              inletSensorMaximum,
              inletSensorMinimum,
              inletSensorHysteresis,
              inletSensorStateChangeDelay,
              inletSensorLowerCriticalThreshold,
              inletSensorLowerWarningThreshold,
              inletSensorUpperCriticalThreshold,
              inletSensorUpperWarningThreshold,
              inletSensorEnabledThresholds,
              inletSensorSignedMaximum,
              inletSensorSignedMinimum,
              inletSensorSignedLowerCriticalThreshold,
              inletSensorSignedLowerWarningThreshold,
              inletSensorSignedUpperCriticalThreshold,
              inletSensorSignedUpperWarningThreshold,
              inletPoleSensorLogAvailable,
              inletPoleSensorUnits,
              inletPoleSensorDecimalDigits,
              inletPoleSensorResolution,
              inletPoleSensorMaximum,
              inletPoleSensorMinimum,
              inletPoleSensorHysteresis,
              inletPoleSensorStateChangeDelay,
              inletPoleSensorLowerCriticalThreshold,
              inletPoleSensorLowerWarningThreshold,
              inletPoleSensorUpperCriticalThreshold,
              inletPoleSensorUpperWarningThreshold,
              inletPoleSensorEnabledThresholds,
              inletPoleSensorSignedMaximum,
              inletPoleSensorSignedMinimum,
              inletPoleSensorSignedLowerCriticalThreshold,
              inletPoleSensorSignedLowerWarningThreshold,
              inletPoleSensorSignedUpperCriticalThreshold,
              inletPoleSensorSignedUpperWarningThreshold,
              overCurrentProtectorLabel,
              overCurrentProtectorName,
              overCurrentProtectorType,
              overCurrentProtectorRatedCurrent,
              overCurrentProtectorCapabilities,
              overCurrentProtectorPoleCount,
              overCurrentProtectorPoleLine,
              overCurrentProtectorPoleInNode,
              overCurrentProtectorPoleOutNode,
              overCurrentProtectorSensorLogAvailable,
              overCurrentProtectorSensorUnits,
              overCurrentProtectorSensorDecimalDigits,
              overCurrentProtectorSensorResolution,
              overCurrentProtectorSensorMaximum,
              overCurrentProtectorSensorMinimum,
              overCurrentProtectorSensorHysteresis,
              overCurrentProtectorSensorStateChangeDelay,
              overCurrentProtectorSensorLowerCriticalThreshold,
              overCurrentProtectorSensorLowerWarningThreshold,
              overCurrentProtectorSensorUpperCriticalThreshold,
              overCurrentProtectorSensorUpperWarningThreshold,
              overCurrentProtectorSensorEnabledThresholds,
              overCurrentProtectorSensorSignedMaximum,
              overCurrentProtectorSensorSignedMinimum,
              overCurrentProtectorSensorSignedLowerCriticalThreshold,
              overCurrentProtectorSensorSignedLowerWarningThreshold,
              overCurrentProtectorSensorSignedUpperCriticalThreshold,
              overCurrentProtectorSensorSignedUpperWarningThreshold,
              overCurrentProtectorPowerSource,
              outletLabel,
              outletName,
              outletReceptacle,
              outletPoleCount,
              outletRatedVoltage,
              outletRatedCurrent,
              outletRatedVA,
              outletDeviceCapabilities,
              outletPoleCapabilities,
              outletPowerCyclingPowerOffPeriod,
              outletStateOnStartup,
              outletUseGlobalPowerCyclingPowerOffPeriod,
              outletSwitchable,
              outletReceptacleDescriptor,
              outletNonCritical,
              outletSequenceDelay,
              outletPoleLine,
              outletPoleNode,
              outletSensorLogAvailable,
              outletSensorUnits,
              outletSensorDecimalDigits,
              outletSensorResolution,
              outletSensorMaximum,
              outletSensorMinimum,
              outletSensorHysteresis,
              outletSensorStateChangeDelay,
              outletSensorLowerCriticalThreshold,
              outletSensorLowerWarningThreshold,
              outletSensorUpperCriticalThreshold,
              outletSensorUpperWarningThreshold,
              outletSensorEnabledThresholds,
              outletSensorSignedMaximum,
              outletSensorSignedMinimum,
              outletSensorSignedLowerCriticalThreshold,
              outletSensorSignedLowerWarningThreshold,
              outletSensorSignedUpperCriticalThreshold,
              outletSensorSignedUpperWarningThreshold,
              outletPoleSensorLogAvailable,
              outletPoleSensorUnits,
              outletPoleSensorDecimalDigits,
              outletPoleSensorResolution,
              outletPoleSensorMaximum,
              outletPoleSensorMinimum,
              outletPoleSensorHysteresis,
              outletPoleSensorStateChangeDelay,
              outletPoleSensorLowerCriticalThreshold,
              outletPoleSensorLowerWarningThreshold,
              outletPoleSensorUpperCriticalThreshold,
              outletPoleSensorUpperWarningThreshold,
              outletPoleSensorEnabledThresholds,
              outletPoleSensorSignedMaximum,
              outletPoleSensorSignedMinimum,
              outletPoleSensorSignedLowerCriticalThreshold,
              outletPoleSensorSignedLowerWarningThreshold,
              outletPoleSensorSignedUpperCriticalThreshold,
              outletPoleSensorSignedUpperWarningThreshold,
              outletPowerSource,
              externalSensorType,
              externalSensorSerialNumber,
              externalSensorName,
              externalSensorDescription,
              externalSensorXCoordinate,
              externalSensorYCoordinate,
              externalSensorZCoordinate,
              externalSensorChannelNumber,
              externalOnOffSensorSubtype,
              externalSensorLogAvailable,
              externalSensorUnits,
              externalSensorDecimalDigits,
              externalSensorResolution,
              externalSensorMaximum,
              externalSensorMinimum,
              externalSensorHysteresis,
              externalSensorStateChangeDelay,
              externalSensorLowerCriticalThreshold,
              externalSensorLowerWarningThreshold,
              externalSensorUpperCriticalThreshold,
              externalSensorUpperWarningThreshold,
              externalSensorEnabledThresholds,
              externalSensorsZCoordinateUnits,
              externalSensorIsActuator,
              externalSensorPosition,
              externalSensorUseDefaultThresholds,
              externalSensorTypeDefaultHysteresis,
              externalSensorTypeDefaultStateChangeDelay,
              externalSensorTypeDefaultLowerCriticalThreshold,
              externalSensorTypeDefaultLowerWarningThreshold,
              externalSensorTypeDefaultUpperCriticalThreshold,
              externalSensorTypeDefaultUpperWarningThreshold,
              externalSensorTypeDefaultEnabledThresholds,
              measurementPeriod,
              measurementsPerLogEntry,
              logSize,
              unitDeviceCapabilities,
              globalOutletPowerCyclingPowerOffPeriod,
              globalOutletStateOnStartup,
              relayBehaviorOnPowerLoss,
              pduPowerCyclingPowerOffPeriod,
              pduDaisychainMemberType,
              managedExternalSensorCount,
              outletPowerupSequence,
              loadShedding,
              serverCount,
              serverIPAddress,
              serverPingEnabled,
              inrushGuardDelay,
              cascadedDeviceConnected,
              synchronizeWithNTPServer,
              firstNTPServerAddressType,
              firstNTPServerAddress,
              secondNTPServerAddressType,
              secondNTPServerAddress,
              transferSwitchLabel,
              transferSwitchName,
              transferSwitchPreferredInlet,
              transferSwitchPoleCount,
              transferSwitchAutoReTransferEnabled,
              transferSwitchAutoReTransferWaitTime,
              transferSwitchAutoReTransferRequiresPhaseSync,
              transferSwitchFrontPanelManualTransferButtonEnabled,
              transferSwitchCapabilities,
              transferSwitchPoleLine,
              transferSwitchPoleIn1Node,
              transferSwitchPoleIn2Node,
              transferSwitchPoleOutNode,
              transferSwitchSensorLogAvailable,
              transferSwitchSensorUnits,
              transferSwitchSensorDecimalDigits,
              transferSwitchSensorResolution,
              transferSwitchSensorMaximum,
              transferSwitchSensorMinimum,
              transferSwitchSensorHysteresis,
              transferSwitchSensorStateChangeDelay,
              transferSwitchSensorLowerCriticalThreshold,
              transferSwitchSensorLowerWarningThreshold,
              transferSwitchSensorUpperCriticalThreshold,
              transferSwitchSensorUpperWarningThreshold,
              transferSwitchSensorEnabledThresholds,
              transferSwitchSensorSignedMaximum,
              transferSwitchSensorSignedMinimum,
              transferSwitchSensorSignedLowerCriticalThreshold,
              transferSwitchSensorSignedLowerWarningThreshold,
              transferSwitchSensorSignedUpperCriticalThreshold,
              transferSwitchSensorSignedUpperWarningThreshold,
              transferSwitchPowerSource1,
              transferSwitchPowerSource2,
              peripheralDevicePackageSerialNumber,
              peripheralDevicePackageModel,
              peripheralDevicePackageFirmwareVersion,
              peripheralDevicePackageMinFirmwareVersion,
              peripheralDevicePackageFirmwareTimeStamp,
              peripheralDevicePackagePosition,
              peripheralDevicePackageState,
              deviceCascadeType,
              deviceCascadePosition,
              peripheralDevicesAutoManagement,
              externalSensorAlarmedToNormalDelay,
              frontPanelOutletSwitching,
              frontPanelRCMSelfTest,
              frontPanelActuatorControl,
              powerMeterPanelPositions,
              powerMeterPanelLayout,
              powerMeterPanelNumbering,
              powerMeterPhaseCTRating,
              powerMeterNeutralCTRating,
              powerMeterEarthCTRating,
              powerMeterBranchCount,
              powerMeterType,
              circuitPoleCount,
              circuitName,
              circuitType,
              circuitRatedCurrent,
              circuitCTRating,
              circuitCapabilities,
              circuitPoleCapabilities,
              circuitPowerSource,
              circuitPolePanelPosition,
              circuitPoleCTNumber,
              circuitPolePhase,
              circuitSensorLogAvailable,
              circuitSensorUnits,
              circuitSensorDecimalDigits,
              circuitSensorResolution,
              circuitSensorMaximum,
              circuitSensorMinimum,
              circuitSensorHysteresis,
              circuitSensorStateChangeDelay,
              circuitSensorLowerCriticalThreshold,
              circuitSensorLowerWarningThreshold,
              circuitSensorUpperCriticalThreshold,
              circuitSensorUpperWarningThreshold,
              circuitSensorEnabledThresholds,
              circuitSensorSignedMaximum,
              circuitSensorSignedMinimum,
              circuitSensorSignedLowerCriticalThreshold,
              circuitSensorSignedLowerWarningThreshold,
              circuitSensorSignedUpperCriticalThreshold,
              circuitSensorSignedUpperWarningThreshold,
              circuitPoleSensorLogAvailable,
              circuitPoleSensorUnits,
              circuitPoleSensorDecimalDigits,
              circuitPoleSensorResolution,
              circuitPoleSensorMaximum,
              circuitPoleSensorMinimum,
              circuitPoleSensorHysteresis,
              circuitPoleSensorStateChangeDelay,
              circuitPoleSensorLowerCriticalThreshold,
              circuitPoleSensorLowerWarningThreshold,
              circuitPoleSensorUpperCriticalThreshold,
              circuitPoleSensorUpperWarningThreshold,
              circuitPoleSensorEnabledThresholds,
              circuitPoleSensorSignedMaximum,
              circuitPoleSensorSignedMinimum,
              circuitPoleSensorSignedLowerCriticalThreshold,
              circuitPoleSensorSignedLowerWarningThreshold,
              circuitPoleSensorSignedUpperCriticalThreshold,
              circuitPoleSensorSignedUpperWarningThreshold,
              activeDNSServerAddressType,
              activeDNSServerAddress,
              activeDNSServerCount,
              activeNTPServerAddressType,
              activeNTPServerAddress,
              activeNTPServerCount }
    STATUS current
    DESCRIPTION
           "A collection of objects representing configuration data."
    ::= { groups 1 }

ipAddressGroup OBJECT-GROUP
    OBJECTS { pxIPAddress,
              netmask,
              gateway,
              pxInetAddressType,
              pxInetIPAddress,
              pxInetNetmask,
              pxInetGateway }
    STATUS deprecated
    DESCRIPTION
           "A collection of objects representing configuration data."
    ::= { groups 12 }

obsoleteObjectsGroup OBJECT-GROUP
    OBJECTS { useDHCPProvidedNTPServer,
              inletRCMResidualOperatingCurrent }
    STATUS obsolete
    DESCRIPTION
           "A collection of obsolete objects."
    ::= { groups 20 }

oldConfigGroup OBJECT-GROUP
    OBJECTS { outletSequencingDelay,
              unitSensorAccuracy,
              unitSensorTolerance,
              inletSensorAccuracy,
              inletSensorTolerance,
              inletPoleSensorAccuracy,
              inletPoleSensorTolerance,
              outletSensorAccuracy,
              outletSensorTolerance,
              outletPoleSensorAccuracy,
              outletPoleSensorTolerance,
              overCurrentProtectorSensorAccuracy,
              overCurrentProtectorSensorTolerance,
              externalSensorAccuracy,
              externalSensorTolerance,
              wireSensorAccuracy,
              wireSensorTolerance,
              transferSwitchSensorAccuracy,
              transferSwitchSensorTolerance,
              wireCount,
              wireLabel,
              wireCapabilities,
              wireSensorLogAvailable,
              wireSensorUnits,
              wireSensorDecimalDigits,
              wireSensorResolution,
              wireSensorMaximum,
              wireSensorMinimum,
              wireSensorHysteresis,
              wireSensorStateChangeDelay,
              wireSensorLowerCriticalThreshold,
              wireSensorLowerWarningThreshold,
              wireSensorUpperCriticalThreshold,
              wireSensorUpperWarningThreshold,
              wireSensorEnabledThresholds,
              wirePowerSource,
              inletRatedFrequency,
              inletRatedVA,
              pxMACAddress,
              networkInterfaceType,
              activeDNSServerAddressSource,
              activeNTPServerAddressSource }
    STATUS deprecated
    DESCRIPTION
           "A collection of objects representing old (deprecated) configuration data."
    ::= { groups 13 }

logGroup OBJECT-GROUP
    OBJECTS { dataLogging,
              oldestLogID,
              newestLogID,
              logTimeStamp,
              dataLoggingEnableForAllSensors,
              logUnitSensorDataAvailable,
              logUnitSensorState,
              logUnitSensorAvgValue,
              logUnitSensorMaxValue,
              logUnitSensorMinValue,
              logUnitSensorSignedAvgValue,
              logUnitSensorSignedMaxValue,
              logUnitSensorSignedMinValue,
              logInletSensorDataAvailable,
              logInletSensorState,
              logInletSensorAvgValue,
              logInletSensorMaxValue,
              logInletSensorMinValue,
              logInletSensorSignedAvgValue,
              logInletSensorSignedMaxValue,
              logInletSensorSignedMinValue,
              logInletPoleSensorDataAvailable,
              logInletPoleSensorState,
              logInletPoleSensorAvgValue,
              logInletPoleSensorMaxValue,
              logInletPoleSensorMinValue,
              logInletPoleSensorSignedAvgValue,
              logInletPoleSensorSignedMaxValue,
              logInletPoleSensorSignedMinValue,
              logOutletSensorDataAvailable,
              logOutletSensorState,
              logOutletSensorAvgValue,
              logOutletSensorMaxValue,
              logOutletSensorMinValue,
              logOutletSensorSignedAvgValue,
              logOutletSensorSignedMaxValue,
              logOutletSensorSignedMinValue,
              logOutletPoleSensorDataAvailable,
              logOutletPoleSensorState,
              logOutletPoleSensorAvgValue,
              logOutletPoleSensorMaxValue,
              logOutletPoleSensorMinValue,
              logOutletPoleSensorSignedAvgValue,
              logOutletPoleSensorSignedMaxValue,
              logOutletPoleSensorSignedMinValue,
              logOverCurrentProtectorSensorDataAvailable,
              logOverCurrentProtectorSensorState,
              logOverCurrentProtectorSensorAvgValue,
              logOverCurrentProtectorSensorMaxValue,
              logOverCurrentProtectorSensorMinValue,
              logOverCurrentProtectorSensorSignedAvgValue,
              logOverCurrentProtectorSensorSignedMaxValue,
              logOverCurrentProtectorSensorSignedMinValue,
              logExternalSensorDataAvailable,
              logExternalSensorState,
              logExternalSensorAvgValue,
              logExternalSensorMaxValue,
              logExternalSensorMinValue,
              logTransferSwitchSensorDataAvailable,
              logTransferSwitchSensorState,
              logTransferSwitchSensorAvgValue,
              logTransferSwitchSensorMaxValue,
              logTransferSwitchSensorMinValue,
              logTransferSwitchSensorSignedAvgValue,
              logTransferSwitchSensorSignedMaxValue,
              logTransferSwitchSensorSignedMinValue,
              logCircuitSensorDataAvailable,
              logCircuitSensorState,
              logCircuitSensorAvgValue,
              logCircuitSensorMaxValue,
              logCircuitSensorMinValue,
              logCircuitSensorSignedAvgValue,
              logCircuitSensorSignedMaxValue,
              logCircuitSensorSignedMinValue,
              logCircuitPoleSensorDataAvailable,
              logCircuitPoleSensorState,
              logCircuitPoleSensorAvgValue,
              logCircuitPoleSensorMaxValue,
              logCircuitPoleSensorMinValue,
              logCircuitPoleSensorSignedAvgValue,
              logCircuitPoleSensorSignedMaxValue,
              logCircuitPoleSensorSignedMinValue }
    STATUS current
    DESCRIPTION
           "A collection of objects providing logging (history of readings) capabilities
            about the PDU."
    ::= { groups 2 }

oldLogGroup OBJECT-GROUP
    OBJECTS { logWireSensorDataAvailable,
              logWireSensorState,
              logWireSensorAvgValue,
              logWireSensorMaxValue,
              logWireSensorMinValue }
    STATUS deprecated
    DESCRIPTION
           "A collection of objects representing old (deprecated) logging data."
    ::= { groups 14 }

measurementsGroup OBJECT-GROUP
    OBJECTS { measurementsUnitSensorIsAvailable,
              measurementsUnitSensorState,
              measurementsUnitSensorValue,
              measurementsUnitSensorTimeStamp,
              measurementsUnitSensorSignedValue,
              measurementsInletSensorIsAvailable,
              measurementsInletSensorState,
              measurementsInletSensorValue,
              measurementsInletSensorTimeStamp,
              measurementsInletSensorSignedValue,
              measurementsInletPoleSensorIsAvailable,
              measurementsInletPoleSensorState,
              measurementsInletPoleSensorValue,
              measurementsInletPoleSensorTimeStamp,
              measurementsInletPoleSensorSignedValue,
              measurementsOutletSensorIsAvailable,
              measurementsOutletSensorState,
              measurementsOutletSensorValue,
              measurementsOutletSensorTimeStamp,
              measurementsOutletSensorSignedValue,
              measurementsOutletPoleSensorIsAvailable,
              measurementsOutletPoleSensorState,
              measurementsOutletPoleSensorValue,
              measurementsOutletPoleSensorTimeStamp,
              measurementsOutletPoleSensorSignedValue,
              measurementsOverCurrentProtectorSensorIsAvailable,
              measurementsOverCurrentProtectorSensorState,
              measurementsOverCurrentProtectorSensorValue,
              measurementsOverCurrentProtectorSensorTimeStamp,
              measurementsOverCurrentProtectorSensorSignedValue,
              measurementsExternalSensorIsAvailable,
              measurementsExternalSensorState,
              measurementsExternalSensorValue,
              measurementsExternalSensorTimeStamp,
              measurementsTransferSwitchSensorIsAvailable,
              measurementsTransferSwitchSensorState,
              measurementsTransferSwitchSensorValue,
              measurementsTransferSwitchSensorTimeStamp,
              measurementsTransferSwitchSensorSignedValue,
              measurementsCircuitSensorIsAvailable,
              measurementsCircuitSensorState,
              measurementsCircuitSensorValue,
              measurementsCircuitSensorTimeStamp,
              measurementsCircuitSensorSignedValue,
              measurementsCircuitPoleSensorIsAvailable,
              measurementsCircuitPoleSensorState,
              measurementsCircuitPoleSensorValue,
              measurementsCircuitPoleSensorTimeStamp,
              measurementsCircuitPoleSensorSignedValue }
    STATUS current
    DESCRIPTION
           "A collection of objects providing measurements (most recent data) capabilities.
            about the PDU."
    ::= { groups 3 }

oldMeasurementsGroup OBJECT-GROUP
    OBJECTS { measurementsWireSensorIsAvailable,
              measurementsWireSensorState,
              measurementsWireSensorValue,
              measurementsWireSensorTimeStamp }
    STATUS  deprecated
    DESCRIPTION
           "A collection of objects representing old (deprecated) measurement data."
    ::= { groups 15 }

controlGroup OBJECT-GROUP
    OBJECTS { switchingOperation,
              outletSwitchingState,
              outletSwitchingTimeStamp,
              transferSwitchActiveInlet,
              transferSwitchTransferToInlet,
              transferSwitchAlarmOverride,
              transferSwitchLastTransferReason,
              actuatorState,
              rcmState,
              inletSensorResetValue,
              outletSensorResetValue,
              unitSensorResetValue,
              circuitSensorResetValue }
    STATUS current
    DESCRIPTION
           "A collection of objects providing the ability to control various components
            of a PDU."
    ::= { groups 4 }

trapInformationGroup  OBJECT-GROUP
    OBJECTS { userName,
              targetUser,
              imageVersion,
              roleName,
              oldSensorState,
              pduNumber,
              inletPoleNumber,
              outletPoleNumber,
              externalSensorNumber,
              typeOfSensor,
              smtpMessageRecipients,
              smtpServer,
              errorDescription,
              deviceChangedParameter,
              changedParameterNewValue,
              lhxSupportEnabled,
              webcamModel,
              webcamConnectionPort,
              agentInetPortNumber,
              peripheralDeviceRomcode,
              peripheralDeviceFirmwareUpdateState,
              circuitNumber,
              circuitPoleNumber,
              phoneNumber,
              smartCardReaderId,
              smartCardTimestamp,
              smartCardType,
              smartCardId,
              suspectedTripCauseLabel }
    STATUS current
    DESCRIPTION
           "A collection of objects providing information in the traps."
    ::= { groups 5 }

trapsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { systemStarted,
                    systemReset,
                    userLogin,
                    userLogout,
                    userAuthenticationFailure,
                    userSessionTimeout,
                    userAdded,
                    userModified,
                    userDeleted,
                    roleAdded,
                    roleModified,
                    roleDeleted,
                    deviceUpdateStarted,
                    deviceUpdateCompleted,
                    userBlocked,
                    powerControl,
                    userPasswordChanged,
                    passwordSettingsChanged,
                    firmwareValidationFailed,
                    logFileCleared,
                    bulkConfigurationSaved,
                    bulkConfigurationCopied,
                    inletSensorStateChange,
                    inletPoleSensorStateChange,
                    outletSensorStateChange,
                    outletPoleSensorStateChange,
                    overCurrentProtectorSensorStateChange,
                    externalSensorStateChange,
                    smtpMessageTransmissionFailure,
                    ldapError,
                    deviceUpdateFailed,
                    loadSheddingModeEntered,
                    loadSheddingModeExited,
                    pingServerEnabled,
                    pingServerDisabled,
                    serverNotReachable,
                    serverReachable,
                    deviceIdentificationChanged,
                    usbSlaveConnected,
                    usbSlaveDisconnected,
                    lhxSupportChanged,
                    userAcceptedRestrictedServiceAgreement,
                    userDeclinedRestrictedServiceAgreement,
                    transferSwitchSensorStateChange,
                    deviceSettingsSaved,
                    deviceSettingsRestored,
                    webcamInserted,
                    webcamRemoved,
                    inletEnabled,
                    inletDisabled,
                    serverConnectivityUnrecoverable,
                    radiusError,
                    serverReachabilityError,
                    inletSensorReset,
                    outletSensorReset,
                    unitSensorReset,
                    circuitSensorReset,
                    unknownPeripheralDeviceAttached,
                    peripheralDeviceFirmwareUpdate,
                    unitSensorStateChange,
                    circuitSensorStateChange,
                    circuitPoleSensorStateChange,
                    circuitAdded,
                    circuitDeleted,
                    circuitModified,
                    powerMeterAdded,
                    powerMeterDeleted,
                    powerMeterModified,
                    smsMessageTransmissionFailure,
                    smartCardInserted,
                    smartCardRemoved }
    STATUS current
    DESCRIPTION
           "A collection of traps."
    ::= { groups 9 }

oldTrapsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { wireSensorStateChange,
                    pduSensorStateChange,
                    rfCodeTagConnected,
                    rfCodeTagDisconnected }
    STATUS deprecated
    DESCRIPTION
           "A collection of objects representing old (deprecated) traps."
    ::= { groups 16 }

reliabilityGroup OBJECT-GROUP
    OBJECTS { reliabilityId,
              reliabilityDataValue,
              reliabilityDataMaxPossible,
              reliabilityDataWorstValue,
              reliabilityDataThreshold,
              reliabilityDataRawUpperBytes,
              reliabilityDataRawLowerBytes,
              reliabilityDataFlags,
              reliabilityErrorLogId,
              reliabilityErrorLogValue,
              reliabilityErrorLogThreshold,
              reliabilityErrorLogRawUpperBytes,
              reliabilityErrorLogRawLowerBytes,
              reliabilityErrorLogPOH,
              reliabilityErrorLogTime,
              reliabilityDataTableSequenceNumber }
    STATUS current
    DESCRIPTION
           "A collection of objects providing reliability data."
    ::= { groups 10 }

-- Textual Conventions

SensorTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The types a sensor can be."
    SYNTAX INTEGER { rmsCurrent(1),
                     peakCurrent(2),
                     unbalancedCurrent(3),
                     rmsVoltage(4),
                     activePower(5),
                     apparentPower(6),
                     powerFactor(7),
                     activeEnergy(8),
                     apparentEnergy(9),
                     temperature(10),
                     humidity(11),
                     airFlow(12),
                     airPressure(13),
                     onOff(14),
                     trip(15),
                     vibration(16),
                     waterDetection(17),
                     smokeDetection(18),
                     binary(19),
                     contact(20),
                     fanSpeed(21),
                     surgeProtectorStatus(22),
                     frequency(23),
                     phaseAngle(24),
                     rmsVoltageLN(25),
                     residualCurrent(26),
                     rcmState(27),
                     absoluteHumidity(28),
                     reactivePower(29),
                     other(30),
                     none(31),
                     powerQuality(32),
                     overloadStatus(33),
                     overheatStatus(34),
                     displacementPowerFactor(35),
                     fanStatus(37),
                     inletPhaseSyncAngle(38),
                     inletPhaseSync(39),
                     operatingState(40),
                     activeInlet(41),
                     illuminance(42),
                     doorContact(43),
                     tamperDetection(44),
                     motionDetection(45),
                     i1smpsStatus(46),
                     i2smpsStatus(47),
                     switchStatus(48),
                     doorLockState(49),
                     doorHandleLock(50) }

SensorStateEnumeration ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
           "The states a sensor can be in."
    SYNTAX INTEGER { unavailable(-1),
                     open(0),
                     closed(1),
                     belowLowerCritical(2),
                     belowLowerWarning(3),
                     normal(4),
                     aboveUpperWarning(5),
                     aboveUpperCritical(6),
                     on(7),
                     off(8),
                     detected(9),
                     notDetected(10),
                     alarmed(11),
                     ok(12),
                     fail(14),
                     yes(15),
                     no(16),
                     standby(17),
                     one(18),
                     two(19),
                     inSync(20),
                     outOfSync(21),
                     i1OpenFault(22),
                     i1ShortFault(23),
                     i2OpenFault(24),
                     i2ShortFault(25),
                     fault(26),
                     warning(27),
                     critical(28),
                     selfTest(29),
                     nonRedundant(30) }

-- Possible  Sensor States for each  Sensor Type
-- This comment must be updated whenever a new sensor type is added.
-- Sensor Type                  Sensor States
--   rmsCurrent                 unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   peakCurrent                unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   unbalancedCurrent          unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   rmsVoltage                 unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   activePower                unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   apparentPower              unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   powerFactor                unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   activeEnergy               unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   apparentEnergy             unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   temperature                unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   humidity                   unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   airFlow                    unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   airPressure                unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   onOff                      unavailable,on,off
--   trip                       unavailable,open,closed
--   vibration                  unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   waterDetection             unavailable,normal,alarmed
--   smokeDetection             unavailable,normal,alarmed
--   binary                     unavailable,normal,alarmed
--   contact                    unavailable,normal,alarmed
--   fanSpeed                   unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   surgeProtectorStatus       unavailable,ok,fault
--   frequency                  unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   phaseAngle                 unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   powerQuality               unavailable,normal,warning,critical
--   overloadStatus             unavailable,ok,fault
--   overheatStatus             unavailable,ok,fault
--   fanStatus                  unavailable,ok,fault
--   residualCurrent            unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   rcmState                   unavailable,normal,warning,critical,selfTest,fail
--   reactivePower              unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   inletPhaseSyncAngle        unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   inletPhaseSync             unavailable,inSync,outOfSync
--   operatingState             unavailable,normal,standby,nonRedundant,off
--   activeInlet                unavailable,one,two,off
--   illuminance                unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   doorContact                unavailable,open,closed
--   tamperDetection            unavailable,normal,alarmed
--   motionDetection            unavailable,??
--   i1smpsStatus               unavailable,ok,fault
--   i2smpsStatus               unavailable,ok,fault
--   switchStatus               unavailable,ok,i1OpenFault,i1ShortFault,i2OpenFault,i2ShortFault
--   displacementPowerFactor    unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   doorLockState              unavailable,open,closed
--   doorHandleLock             unavailable,open,closed
--   doorHandleSwitch           unavailable,open,closed


PlugTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The types of inlet plug."
    SYNTAX INTEGER { plugOTHER(-1),
                     plugNONE(0),
                     plug56P320(1),
                     plug56P520(2),
                     plug56P532(3),
                     plugCS8365C(4),
                     plugIEC320C14(5),
                     plugIEC320C20(6),
                     plugIEC603093WIRE250V16A(7),
                     plugIEC603093WIRE250V20A(8),
                     plugIEC603093WIRE250V30A(9),
                     plugIEC603093WIRE250V32A(10),
                     plugIEC603093WIRE250V60A(11),
                     plugIEC603093WIRE250V63A(12),
                     plugIEC603093WIRE250V100A(13),
                     plugIEC603093WIRE250V125A(14),
                     plugIEC603094WIRE250V20A(15),
                     plugIEC603094WIRE250V30A(16),
                     plugIEC603094WIRE250V60A(17),
                     plugIEC603094WIRE250V100A(18),
                     plugIEC603095WIRE208V20A(23),
                     plugIEC603095WIRE208V30A(24),
                     plugIEC603095WIRE208V60A(25),
                     plugIEC603095WIRE208V100A(26),
                     plugIEC603095WIRE415V16A(27),
                     plugIEC603095WIRE415V32A(28),
                     plugIEC603095WIRE415V63A(29),
                     plugIEC603095WIRE415V125A(30),
                     plugIEC603095WIRE480V20A(31),
                     plugIEC603095WIRE480V30A(32),
                     plugIEC603095WIRE480V60A(33),
                     plugIEC603095WIRE480V100A(34),
                     plugNEMA515P(35),
                     plugNEMAL515P(36),
                     plugNEMA520P(37),
                     plugNEMAL520P(38),
                     plugNEMAL530P(39),
                     plugNEMAL615P(40),
                     plugNEMAL620P(41),
                     plugNEMAL630P(42),
                     plugNEMAL1520P(43),
                     plugNEMAL1530P(44),
                     plugNEMAL2120P(45),
                     plugNEMAL2130P(46),
                     plugNEMAL2230P(47),
                     plug56P320F(48),
                     plug56PA320(49) }

ReceptacleTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The types of outlet receptacle."
    SYNTAX INTEGER { receptacleOTHER(-1),
                     receptacleNONE(0),
                     receptacleBS1363(1),
                     receptacle56P532(3),
                     receptacleCS8364C(4),
                     receptacleIEC320C13(5),
                     receptacleIEC320C19(6),
                     receptacleIEC603093WIRE250V16A(7),
                     receptacleIEC603093WIRE250V20A(8),
                     receptacleIEC603093WIRE250V30A(9),
                     receptacleIEC603093WIRE250V32A(10),
                     receptacleIEC603093WIRE250V60A(11),
                     receptacleIEC603093WIRE250V63A(12),
                     receptacleIEC603093WIRE250V100A(13),
                     receptacleIEC603093WIRE250V125A(14),
                     receptacleIEC603094WIRE250V20A(15),
                     receptacleIEC603094WIRE250V30A(16),
                     receptacleIEC603094WIRE250V60A(17),
                     receptacleIEC603094WIRE250V100A(18),
                     receptacleIEC603095WIRE208V20A(23),
                     receptacleIEC603095WIRE208V30A(24),
                     receptacleIEC603095WIRE208V60A(25),
                     receptacleIEC603095WIRE208V100A(26),
                     receptacleIEC603095WIRE415V16A(27),
                     receptacleIEC603095WIRE415V32A(28),
                     receptacleIEC603095WIRE415V63A(29),
                     receptacleIEC603095WIRE415V125A(30),
                     receptacleIEC603095WIRE480V20A(31),
                     receptacleIEC603095WIRE480V30A(32),
                     receptacleIEC603095WIRE480V60A(33),
                     receptacleIEC603095WIRE480V100A(34),
                     receptacleNEMA515R(35),
                     receptacleNEMAL515R(36),
                     receptacleNEMA520R(37),
                     receptacleNEMAL520R(38),
                     receptacleNEMAL530R(39),
                     receptacleNEMAL615R(40),
                     receptacleNEMAL620R(41),
                     receptacleNEMAL630R(42),
                     receptacleNEMAL1520R(43),
                     receptacleNEMAL1530R(44),
                     receptacleNEMAL2120RP(45),
                     receptacleNEMAL2130R(46),
                     receptacleSCHUKOTYPEE(47),
                     receptacleSCHUKOTYPEF(48) }

OverCurrentProtectorTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The types of overcurrent protectors."
    SYNTAX INTEGER { ocpBREAKER1POLE(1),
                     ocpBREAKER2POLE(2),
                     ocpBREAKER3POLE(3),
                     ocpFUSE(4),
                     ocpFUSEPAIR(5),
                     ocpRCBO2POLE(6),
                     ocpRCBO3POLE(7),
                     ocpRCBO4POLE(8) }

BoardTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The types of boards."
    SYNTAX INTEGER { mainController(1),
                     inletController(2),
                     outletController(3),
                     meteringController(4) }

OutletSwitchingOperationsEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The switching operations on an outlet."
    SYNTAX INTEGER { off(0),
                     on(1),
                     cycle(2) }

SensorUnitsEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The sensor units."
    SYNTAX INTEGER { none(-1),
                     other(0),
                     volt(1),
                     amp(2),
                     watt(3),
                     voltamp(4),
                     wattHour(5),
                     voltampHour(6),
                     degreeC(7),
                     hertz(8),
                     percent(9),
                     meterpersec(10),
                     pascal(11),
                     psi(12),
                     g(13),
                     degreeF(14),
                     feet(15),
                     inches(16),
                     cm(17),
                     meters(18),
                     rpm(19),
                     degrees(20),
                     lux(21),
                     grampercubicmeter(22),
                     var(23) }

DaisychainMemberTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The daisy chain member type."
    SYNTAX INTEGER { standalone(0),
                     master(1),
                     slave(2) }

URL ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "255a"
    STATUS current
    DESCRIPTION
           "A Uniform Resource Locator (URL), as defined in RFC1738."
    SYNTAX OCTET STRING (SIZE (0..255))

GlobalOutletStateOnStartupEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The global outlet state on device start up; can be overridden per outlet."
    SYNTAX INTEGER { off(0),
                     on(1),
                     lastKnownState(2) }

OutletStateOnStartupEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The outlet state on device start up; this overrides the global value."
    SYNTAX INTEGER { off(0),
                     on(1),
                     lastKnownState(2),
                     globalOutletStateOnStartup(3) }

ExternalSensorsZCoordinateUnitsEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The units of the external sensor Z coordinate.
            rackUnits implies that the Z coordinate for all external sensors
            is in rack units (U)
            text implies that the Z coordinate for all external sensors
            is a text string (label)"
    SYNTAX INTEGER { rackUnits(0),
                     text(1) }

HundredthsOfAPercentage ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS current
    DESCRIPTION
           "Data type for reporting values in hundredths of percentage, i.e. 0.01 %."
    SYNTAX Unsigned32 (0..10000)

DeviceIdentificationParameterEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The configurable parameters."
    SYNTAX INTEGER { pduName(0),
                     sysContact(1),
                     sysName(2),
                     sysLocation(3) }

TransferSwitchTransferReasonEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "Transfer Switch Transfer Reason"
    SYNTAX INTEGER { unknown(0),
                     startup(1),
                     manualTransfer(2),
                     automaticReTransfer(3),
                     powerFailure(4),
                     powerQuality(5),
                     overloadAlarm(6),
                     overheatAlarm(7),
                     internalFailure(8) }

ProductTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The product types."
    SYNTAX INTEGER { rackPdu(0),
                     bcm(1),
                     transferSwitch(2),
                     powerMeter(3) }

RelayPowerLossBehaviorEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The type of relay behavior on power loss."
    SYNTAX INTEGER { nonLatching(0),
                     latching(1) }

DeviceCascadeTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The type of configured cascading on this device."
    SYNTAX INTEGER { bridging(0),
                     portForwarding(1),
                     none(2) }

PeripheralDeviceFirmwareUpdateStateEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The state of a peripheral device firmware update."
    SYNTAX INTEGER { started(1),
                     successful(2),
                     failed(3) }

PanelLayoutEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The panel circuit position layout."
    SYNTAX INTEGER { invalid(-1),
                     oneColumn(1),
                     twoColumns(2) }

PanelNumberingEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The panel circuit position numbering scheme."
    SYNTAX INTEGER { invalid(-1),
                     oddEven(1),
                     sequential(2) }

CircuitTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The panel circuit types."
    SYNTAX INTEGER { onePhaseLL(1),
                     onePhaseLN(2),
                     onePhaseLLN(3),
                     threePhase(4) }

PhaseEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The power phase."
    SYNTAX INTEGER { phaseA(1),
                     phaseB(2),
                     phaseC(3),
                     neutral(4),
                     earth(5) }

LineEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The Lines: L1, L2, L3, N."
    SYNTAX INTEGER { lineL1(1),
                     lineL2(2),
                     lineL3(3),
                     lineNeutral(4) }

PowerMeterTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The power meter types"
    SYNTAX INTEGER { singlePhase(1),
                     splitPhase(2),
                     threePhase(3) }

NetworkInterfaceTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The type of network interface."
    SYNTAX INTEGER { wired(0),
                     wireless(1) }

AddressSourceEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "How was the address obtained?"
    SYNTAX INTEGER { static(1),
                     dhcp(2),
                     dhcpv6(3) }

-- Global OIDs

pduCount OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of PDUs managed by this MIB.

            For PX2, PX3 and PX3TS, pduCount is always 1
            For BCM2, pduCount is the number of power meters plus 1 (for the main controller)"
    ::= { configuration 1 }

-- nameplateTable: PDU nameplate information

nameplateTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF NameplateEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of PDU nameplate entries. The number of
            entries is given by the value of pduCount."
    ::= { unit 1 }

nameplateEntry OBJECT-TYPE
    SYNTAX     NameplateEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry providing PDU nameplate information."
    INDEX { pduId }
    ::= { nameplateTable 1 }

NameplateEntryStruct ::= SEQUENCE {
        pduId               Integer32,
        pduManufacturer     DisplayString,
        pduModel            DisplayString,
        pduSerialNumber     DisplayString,
        pduRatedVoltage     DisplayString,
        pduRatedCurrent     DisplayString,
        pduRatedFrequency   DisplayString,
        pduRatedVA          DisplayString,
        pduImage            URL
    }

pduId OBJECT-TYPE
    SYNTAX     Integer32(0..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each PDU or power meter.

            For PX2, PX3 and PX3TS, pduId  is always 1
            For BCM2, pduId can be:
                - 0 for the main controller
                - The meter ID (rotary switch) for power meter"
    ::= { nameplateEntry 1 }

pduManufacturer OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The PDU manufacturer."
    ::= { nameplateEntry 2 }

pduModel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The PDU model name."
    ::= { nameplateEntry 3 }

pduSerialNumber OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The PDU serial number."
    ::= { nameplateEntry 4 }

pduRatedVoltage OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The PDU voltage rating."
    ::= { nameplateEntry 5 }

pduRatedCurrent OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The PDU current rating."
    ::= { nameplateEntry 6 }

pduRatedFrequency OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The PDU frequency rating."
    ::= { nameplateEntry 7 }

pduRatedVA OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The PDU VA (VoltAmps) rating."
    ::= { nameplateEntry 8 }

pduImage OBJECT-TYPE
    SYNTAX     URL
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The URL of the wiring diagram for this PDU."
    ::= { nameplateEntry 9 }

-- unitConfigurationTable: PDU configuration and settings

unitConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UnitConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of PDU configuration entries. The number of
            entries is given by the value of pduCount."
    ::= { unit 2 }

unitConfigurationEntry OBJECT-TYPE
    SYNTAX     UnitConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing configuration objects for a particular PDU."
    INDEX { pduId }
    ::= { unitConfigurationTable 1 }

UnitConfigurationEntryStruct ::= SEQUENCE {
        inletCount                               Integer32,
        overCurrentProtectorCount                Integer32,
        outletCount                              Integer32,
        inletControllerCount                     Integer32,
        outletControllerCount                    Integer32,
        externalSensorCount                      Integer32,
        pxIPAddress                              IpAddress,
        netmask                                  IpAddress,
        gateway                                  IpAddress,
        pxMACAddress                             MacAddress,
        utcOffset                                DisplayString,
        pduName                                  DisplayString,
        networkInterfaceType                     NetworkInterfaceTypeEnumeration,
        externalSensorsZCoordinateUnits          ExternalSensorsZCoordinateUnitsEnumeration,
        unitDeviceCapabilities                   BITS,
        outletSequencingDelay                    Unsigned32,
        globalOutletPowerCyclingPowerOffPeriod   Unsigned32,
        globalOutletStateOnStartup               GlobalOutletStateOnStartupEnumeration,
        outletPowerupSequence                    DisplayString,
        pduPowerCyclingPowerOffPeriod            Unsigned32,
        pduDaisychainMemberType                  DaisychainMemberTypeEnumeration,
        managedExternalSensorCount               Integer32,
        pxInetAddressType                        InetAddressType,
        pxInetIPAddress                          InetAddress,
        pxInetNetmask                            InetAddress,
        pxInetGateway                            InetAddress,
        loadShedding                             TruthValue,
        serverCount                              Integer32,
        inrushGuardDelay                         Unsigned32,
        cascadedDeviceConnected                  TruthValue,
        synchronizeWithNTPServer                 TruthValue,
        useDHCPProvidedNTPServer                 TruthValue,
        firstNTPServerAddressType                InetAddressType,
        firstNTPServerAddress                    InetAddress,
        secondNTPServerAddressType               InetAddressType,
        secondNTPServerAddress                   InetAddress,
        wireCount                                Integer32,
        transferSwitchCount                      Integer32,
        productType                              ProductTypeEnumeration,
        meteringControllerCount                  Integer32,
        relayBehaviorOnPowerLoss                 RelayPowerLossBehaviorEnumeration,
        deviceCascadeType                        DeviceCascadeTypeEnumeration,
        deviceCascadePosition                    Integer32,
        peripheralDevicesAutoManagement          TruthValue,
        frontPanelOutletSwitching                TruthValue,
        frontPanelRCMSelfTest                    TruthValue,
        frontPanelActuatorControl                TruthValue,
        circuitCount                             Integer32,
        activeDNSServerCount                     Integer32,
        activeNTPServerCount                     Integer32
    }

inletCount OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of inlets."
    ::= { unitConfigurationEntry 2 }

overCurrentProtectorCount OBJECT-TYPE
    SYNTAX     Integer32(0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of overcurrent protectors."
    ::= { unitConfigurationEntry 3 }

outletCount OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of outlets."
    ::= { unitConfigurationEntry 4 }

inletControllerCount OBJECT-TYPE
    SYNTAX     Integer32(0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of inlet controllers."
    ::= { unitConfigurationEntry 5 }

outletControllerCount OBJECT-TYPE
    SYNTAX     Integer32(0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of outlet controllers."
    ::= { unitConfigurationEntry 6 }

externalSensorCount OBJECT-TYPE
    SYNTAX     Integer32(0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum supported number of external sensors. This value is
            fixed and does not reflect how many sensors are actually connected."
    ::= { unitConfigurationEntry 7 }

pxIPAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The current IP address. A value of 0.0.0.0 indicates an error
            or an unset option."
    ::= { unitConfigurationEntry 8 }

netmask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The current netmask. A value of 0.0.0.0 indicates an error
            or an unset option."
    ::= { unitConfigurationEntry 9 }

gateway OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The current gateway. A value of 0.0.0.0 indicates an error
            or an unset option."
    ::= { unitConfigurationEntry 10 }

pxMACAddress OBJECT-TYPE
    SYNTAX     MacAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The current MAC address.
            If bridge interface is enabled, then equal to the MAC address of Ethernet 1
            else if Ethernet 1 is enabled, then equal to the MAC address of Ethernet 1
            else if Ethernet 2 is enabled, then equal to the MAC address of Ethernet 2
            else if Wlan is enabled, then equal to the MAC address of Wlan
            else return SNMP_ERR_NOSUCHNAME"
    ::= { unitConfigurationEntry 11 }

utcOffset OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The current UTC offset."
    ::= { unitConfigurationEntry 12 }

pduName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The user-defined name for the PDU."
    ::= { unitConfigurationEntry 13 }

networkInterfaceType OBJECT-TYPE
    SYNTAX     NetworkInterfaceTypeEnumeration
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The network interface type: wired or wireless.
            If only the Wireless interface is enabled, then equal to wireless
            else equal to wired"
    ::= { unitConfigurationEntry 14 }

externalSensorsZCoordinateUnits OBJECT-TYPE
    SYNTAX     ExternalSensorsZCoordinateUnitsEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "External sensor Z coordinate units: freeform text or rack units (U)
            Default is U."
    ::= { unitConfigurationEntry 34 }

unitDeviceCapabilities OBJECT-TYPE
    SYNTAX     BITS{ i1smpsStatus(45),
                     i2smpsStatus(46) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which unit sensors are available."
    ::= { unitConfigurationEntry 35 }

outletSequencingDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "It is deprecated. This is an alias for  inrushGuardDelay"
    ::= { unitConfigurationEntry 36 }

globalOutletPowerCyclingPowerOffPeriod OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The power-off period when an outlet is cycled;
            applies to all outlets unless overridden at the outlet level;
            specified in seconds;
            1 <= value <= 3600 seconds."
    ::= { unitConfigurationEntry 37 }

globalOutletStateOnStartup OBJECT-TYPE
    SYNTAX     GlobalOutletStateOnStartupEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The outlet state on device startup; applies to all outlets
            unless overridden at the outlet level.
            Note that this value is ignored if relayBehaviorOnPowerLoss is set to latching."
    ::= { unitConfigurationEntry 38 }

outletPowerupSequence OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The sequence in which will the outlets will be switched on under the following conditions.
            1) Switch all outlets on operation is executed
            2) Power to the PDU is cycled
            String must consist of a comma separated sequence of the outlet numbers and
            all outlet numbers must be included. The numbers entered must be a permutation of the numbers
            1,2,3,-outletnumber.
            Example for a 12 outlet PDU: 1,12,3,5,6,7,10,2,4,11,9,8.

            The per outlet sequence delays are defined as outletSequenceDelay in the outletConfigurationTable"
    ::= { unitConfigurationEntry 39 }

pduPowerCyclingPowerOffPeriod OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "When power to the  PX is cycled (either manually or because of a
            temporary power loss), this number determines how many seconds the
            PX will wait before it provides power to the outlets.
            specified in seconds:
            1 <= value <= 3600 seconds.
            Note that this value is ignored if relayBehaviorOnPowerLoss is set to latching."
    ::= { unitConfigurationEntry 40 }

pduDaisychainMemberType OBJECT-TYPE
    SYNTAX     DaisychainMemberTypeEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The daisy chain member type."
    ::= { unitConfigurationEntry 41 }

managedExternalSensorCount OBJECT-TYPE
    SYNTAX     Integer32(0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of managed external sensors"
    ::= { unitConfigurationEntry 42 }

pxInetAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The type of address format
            This object is deprecated in favor of ipAddressTable from the IP-MIB (rfc4293)."
    ::= { unitConfigurationEntry 50 }

pxInetIPAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The current IP address. A value of 0.0.0.0 indicates an error
            or an unset option.
            This object is deprecated in favor of ipAddressTable from the IP-MIB (rfc4293).
            For IPv6, its value is 0.0.0.0"
    ::= { unitConfigurationEntry 51 }

pxInetNetmask OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The current netmask. A value of 0.0.0.0 indicates an error
            or an unset option.
            This object is deprecated in favor of ipAddressTable from the IP-MIB (rfc4293).
            For IPv6, its value is 0.0.0.0"
    ::= { unitConfigurationEntry 52 }

pxInetGateway OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The current gateway. A value of 0.0.0.0 indicates an error
            or an unset option.
            This object is deprecated in favor of ipAddressTable from the IP-MIB (rfc4293).
            For IPv6, its value is 0.0.0.0"
    ::= { unitConfigurationEntry 53 }

loadShedding OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Enter/Exit Load Shedding Mode"
    ::= { unitConfigurationEntry 55 }

serverCount OBJECT-TYPE
    SYNTAX     Integer32(0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of servers monitored with the server reachability feature"
    ::= { unitConfigurationEntry 56 }

inrushGuardDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The time interval between switching on two outlets;
            specified in milliseconds;
            100 <= value <= 100000 milliseconds."
    ::= { unitConfigurationEntry 57 }

cascadedDeviceConnected OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Indicates whether another PX2 is connected using an USB cable to
            the USB-A port of this PX2 in a cascaded configuration."
    ::= { unitConfigurationEntry 58 }

synchronizeWithNTPServer OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Indicates whether time is synchronized with an NTP server."
    ::= { unitConfigurationEntry 59 }

useDHCPProvidedNTPServer OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     obsolete
    DESCRIPTION
           "**NOTE: This object is obsolete. Its functionality has been replaced
            by the following:
            - If at least one of firstNTPServerAddress and secondNTPServerAddress
              has been configured then use the static NTP servers
            - else use the DHCP-provided NTP servers"
    ::= { unitConfigurationEntry 60 }

firstNTPServerAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Represents the type of the corresponding instance
            of firstNTPServerAddress object. When setting this value,
            be sure that firstNTPServerAddress is of this address type,
            e.g. by setting both of them."
    DEFVAL { ipv4 }
    ::= { unitConfigurationEntry 61 }

firstNTPServerAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The address of the primary NTP server.
            When setting this value, be sure that it
            is of the type specified in firstNTPServerAddressType,
            e.g. by setting both of them."
    ::= { unitConfigurationEntry 62 }

secondNTPServerAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Represents the type of the corresponding instance
            of secondNTPServerAddress object. When setting this value,
            be sure that secondNTPServerAddress is of this address type,
            e.g. by setting both of them.
            Default is ipv4"
    ::= { unitConfigurationEntry 63 }

secondNTPServerAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The address of the second NTP server.
            When setting this value, be sure that it
            is of the type specified in secondNTPServerAddressType,
            e.g. by setting both of them."
    ::= { unitConfigurationEntry 64 }

wireCount OBJECT-TYPE
    SYNTAX     Integer32(0..255)
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The number of wire objects in the PDU topology. This feature is no
            longer used, the returned value is always 0."
    ::= { unitConfigurationEntry 65 }

transferSwitchCount OBJECT-TYPE
    SYNTAX     Integer32(0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of transfer switches."
    ::= { unitConfigurationEntry 66 }

productType OBJECT-TYPE
    SYNTAX     ProductTypeEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The product type (PDU, BCM, transfer switch or power meter)."
    ::= { unitConfigurationEntry 67 }

meteringControllerCount OBJECT-TYPE
    SYNTAX     Integer32(0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of metering controllers."
    ::= { unitConfigurationEntry 68 }

relayBehaviorOnPowerLoss OBJECT-TYPE
    SYNTAX     RelayPowerLossBehaviorEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The relay behavior on power loss (latching or non-latching)."
    ::= { unitConfigurationEntry 69 }

deviceCascadeType OBJECT-TYPE
    SYNTAX     DeviceCascadeTypeEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The type of network cascade this device is part of (none, bridging
            or port forwarding)."
    ::= { unitConfigurationEntry 70 }

deviceCascadePosition OBJECT-TYPE
    SYNTAX     Integer32(0..99)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The position of the device in the cascade chain. Only supported in
            port forwarding mode, 0 otherwise."
    ::= { unitConfigurationEntry 71 }

peripheralDevicesAutoManagement OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Defines whether newly-connected peripheral devices are automatically
            assigned to an unused slot."
    ::= { unitConfigurationEntry 72 }

frontPanelOutletSwitching OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Enables/disables switching of outlets using the PDU front panel."
    ::= { unitConfigurationEntry 73 }

frontPanelRCMSelfTest OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Enables/disables front panel RCM self-test."
    ::= { unitConfigurationEntry 74 }

frontPanelActuatorControl OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Enables/disables front panel peripheral actuator control."
    ::= { unitConfigurationEntry 75 }

circuitCount OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of branch circuits in a panel."
    ::= { unitConfigurationEntry 76 }

activeDNSServerCount OBJECT-TYPE
    SYNTAX     Integer32(0..16)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of active DNS servers"
    ::= { unitConfigurationEntry 77 }

activeNTPServerCount OBJECT-TYPE
    SYNTAX     Integer32(0..16)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of active NTP servers"
    ::= { unitConfigurationEntry 78 }

-- activeDNSServerTable: information about active DNS servers

activeDNSServerTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ActiveDNSServerEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of active DNS server entries. The number of rows in the table is
            given by the value of activeDNSServerCount in unitConfigurationTable."
    ::= { unit 6 }

activeDNSServerEntry OBJECT-TYPE
    SYNTAX     ActiveDNSServerEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing an active DNS server for a particular PDU."
    INDEX { pduId, activeDNSServerIndex }
    ::= { activeDNSServerTable 1 }

ActiveDNSServerEntryStruct ::= SEQUENCE {
        activeDNSServerIndex            Integer32,
        activeDNSServerAddressType      InetAddressType,
        activeDNSServerAddress          InetAddress,
        activeDNSServerAddressSource    AddressSourceEnumeration
    }

activeDNSServerIndex OBJECT-TYPE
    SYNTAX     Integer32(1..16)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for a DNS server. Its value ranges between 1 and activeDNSServerCount."
    ::= { activeDNSServerEntry 2 }

activeDNSServerAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Represents the type of the corresponding instance
            of activeDNSServerAddress object."
    ::= { activeDNSServerEntry 3 }

activeDNSServerAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The address of the DNS server."
    ::= { activeDNSServerEntry 4 }

activeDNSServerAddressSource OBJECT-TYPE
    SYNTAX     AddressSourceEnumeration
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "How was the address obtained: static, DHCP, DHCPv6?
            No longer used, always set to static."
    ::= { activeDNSServerEntry 5 }

-- activeNTPServerTable: information about active NTP servers

activeNTPServerTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ActiveNTPServerEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of active NTP server entries. The number of rows in the table is
            given by the value of activeNTPServerCount in unitConfigurationTable."
    ::= { unit 7 }

activeNTPServerEntry OBJECT-TYPE
    SYNTAX     ActiveNTPServerEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing an active NTP server for a particular PDU."
    INDEX { pduId, activeNTPServerIndex }
    ::= { activeNTPServerTable 1 }

ActiveNTPServerEntryStruct ::= SEQUENCE {
        activeNTPServerIndex            Integer32,
        activeNTPServerAddressType      InetAddressType,
        activeNTPServerAddress          InetAddress,
        activeNTPServerAddressSource    AddressSourceEnumeration
    }

activeNTPServerIndex OBJECT-TYPE
    SYNTAX     Integer32(1..16)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for an NTP server. Its value ranges between 1 and activeNTPServerCount."
    ::= { activeNTPServerEntry 2 }

activeNTPServerAddressType OBJECT-TYPE
    SYNTAX     InetAddressType
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Represents the type of the corresponding instance
            of activeNTPServerAddress object, e.g. IPv4, IPv6, DNS Name"
    ::= { activeNTPServerEntry 3 }

activeNTPServerAddress OBJECT-TYPE
    SYNTAX     InetAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The address of the NTP server."
    ::= { activeNTPServerEntry 4 }

activeNTPServerAddressSource OBJECT-TYPE
    SYNTAX     AddressSourceEnumeration
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "How was the address obtained: static, DHCP, DHCPv6?
            No longer used, always set to static."
    ::= { activeNTPServerEntry 5 }

-- controllerConfigurationTable: information about the controllers in a PDU

controllerConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ControllerConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of entries for the boards in a PDU. The number of entries is
            one more than the sum of inletControllerCount, outletControllerCount
            and meterControllerCount."
    ::= { unit 3 }

controllerConfigurationEntry OBJECT-TYPE
    SYNTAX     ControllerConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An  entry containing objects for a controller."
    INDEX { pduId, boardType, boardIndex }
    ::= { controllerConfigurationTable 1 }

ControllerConfigurationEntryStruct ::= SEQUENCE {
        boardType                   BoardTypeEnumeration,
        boardIndex                  Integer32,
        boardVersion                DisplayString,
        boardFirmwareVersion        DisplayString,
        boardFirmwareTimeStamp      Unsigned32
    }

boardType OBJECT-TYPE
    SYNTAX     BoardTypeEnumeration
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The type of board."
    ::= { controllerConfigurationEntry 1 }

boardIndex OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each controller."
    ::= { controllerConfigurationEntry 2 }

boardVersion OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The board hardware version."
    ::= { controllerConfigurationEntry 4 }

boardFirmwareVersion OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The firmware version."
    ::= { controllerConfigurationEntry 6 }

boardFirmwareTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The time when the board firmware was updated as UNIX timestamp.
            It is measured in seconds since January 1, 1970 (midnight UTC/GMT)"
    ::= { controllerConfigurationEntry 8 }

-- logConfigurationTable: information and configuration for the sensor data log

logConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF LogConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A table of parameters for the data logging feature. The number of
            entries is given by the value of pduCount."
    ::= { unit 4 }

logConfigurationEntry OBJECT-TYPE
    SYNTAX     LogConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing data logging parameters for a particular PDU."
    INDEX { pduId }
    ::= { logConfigurationTable 1 }

LogConfigurationEntryStruct ::= SEQUENCE {
        dataLogging                         TruthValue,
        measurementPeriod                   Integer32,
        measurementsPerLogEntry             Integer32,
        logSize                             Integer32,
        dataLoggingEnableForAllSensors      TruthValue
    }

dataLogging OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Defines whether sensor data logging is enabled."
    ::= { logConfigurationEntry 1 }

measurementPeriod OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Data collection periodicity. This is the periodicity of the data
            collected by the PDU. This value is fixed at 1 second."
    ::= { logConfigurationEntry 2 }

measurementsPerLogEntry OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The number of measurements aggregated into a data log entry."
    ::= { logConfigurationEntry 3 }

logSize OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The capacity (number of entries) of the data log."
    ::= { logConfigurationEntry 4 }

dataLoggingEnableForAllSensors OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Operation to control data logging for all sensors:
            - when set to true, all *SensorLogAvailable OIDs are set to true
            - when set to false, all *SensorLogAvailable OIDs are set to false"
    ::= { logConfigurationEntry 5 }

-- Information objects used exclusively in traps

trapInformationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TrapInformationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A group of objects used exclusively in traps. This is a table for
            historic reasons; it can't be queried from the SNMP agent."
    ::= { trapInformation 1 }

trapInformationEntry OBJECT-TYPE
    SYNTAX     TrapInformationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing objects used in traps."
    INDEX { pduId }
    ::= { trapInformationTable 1 }

TrapInformationEntryStruct ::= SEQUENCE {
        userName                    DisplayString,
        targetUser                  DisplayString,
        imageVersion                DisplayString,
        roleName                    DisplayString,
        smtpMessageRecipients       DisplayString,
        smtpServer                  DisplayString
    }

userName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The user currently logged in."
    ::= { trapInformationEntry 2 }

targetUser OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The user added, deleted, or modified."
    ::= { trapInformationEntry 3 }

imageVersion OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The version of the upgrade image."
    ::= { trapInformationEntry 5 }

roleName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The role added, deleted, or modified."
    ::= { trapInformationEntry 6 }

smtpMessageRecipients OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Comma separated list of SMTP message recipients"
    ::= { trapInformationEntry 7 }

smtpServer OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The IP address/host name of the SMTP server"
    ::= { trapInformationEntry 8 }

-- Additional Information needed for traps.

oldSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The old sensor state used in sensor state transition traps."
    ::= { trapInformation  2 }

pduNumber OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "A unique value for each PDU. Its value ranges between 1 and the
            value of pduCount."
    ::= { trapInformation 3 }

inletPoleNumber OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "A unique value for each inlet pole. Its value ranges between 1
            and the value of inletPoleCount."
    ::= { trapInformation 5 }

outletPoleNumber OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "A unique value for each outlet pole. Its value ranges between 1
            and the value of outletPoleCount."
    ::= { trapInformation 7 }

externalSensorNumber OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "A unique value for each external sensor. Its value ranges between 1
            and the value of externalSensorCount."
    ::= { trapInformation 8  }

typeOfSensor OBJECT-TYPE
    SYNTAX     SensorTypeEnumeration
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The type of sensor."
    ::= { trapInformation 10 }

errorDescription OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "Description of the error"
    ::= { trapInformation 11 }

deviceChangedParameter OBJECT-TYPE
    SYNTAX     DeviceIdentificationParameterEnumeration
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "Identifies the parameter that has changed."
    ::= { trapInformation 12 }

changedParameterNewValue OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The new value of the changed parameter"
    ::= { trapInformation 13 }

lhxSupportEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The new enabled state for Schroff LHX support."
    ::= { trapInformation 14 }

webcamModel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The model of the webcam"
    ::= { trapInformation 15 }

webcamConnectionPort OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The port to which the webcam is connected"
    ::= { trapInformation 16 }

agentInetPortNumber OBJECT-TYPE
    SYNTAX     InetPortNumber
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The UDP port number used for accessing the SNMP agent on the device.
            This is necessary to identify the slave in a port forwarding cascade."
    ::= { trapInformation 18 }

peripheralDeviceRomcode OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The 1-wire romcode of a peripheral device"
    ::= { trapInformation 19 }

peripheralDeviceFirmwareUpdateState OBJECT-TYPE
    SYNTAX     PeripheralDeviceFirmwareUpdateStateEnumeration
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The firmware update state of a peripheral device"
    ::= { trapInformation 20 }

circuitNumber OBJECT-TYPE
    SYNTAX     Integer32(1..33000)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "A unique value for each circuit. Defined as follows:
                circuitNumber = 1000 * panelId + circuitPosition

            Examples:
                1045 is the the circuit on panel 1 with lowest circuit position equal to 45
                4067 is the the circuit on panel 4 with lowest circuit position equal to 67."
    ::= { trapInformation 21 }

circuitPoleNumber OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "A unique value for each circuit pole."
    ::= { trapInformation 22 }

phoneNumber OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The phone number of e.g. an SMS receiver."
    ::= { trapInformation 23 }

smartCardReaderId OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The ID of a smartcard reader."
    ::= { trapInformation 24 }

smartCardTimestamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the smartcard was inserted or removed.
            It is measured in seconds since January 1, 1970 UTC"
    ::= { trapInformation 25 }

smartCardType OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The type of a smartcard."
    ::= { trapInformation 26 }

smartCardId OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The ID/serial number of a smartcard."
    ::= { trapInformation 27 }

suspectedTripCauseLabel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The label of the outlet that likely caused the OCP trip,
            if it can be determined."
    ::= { trapInformation 28 }

-- unitSensorConfigurationTable: information and settings for unit-level sensors

unitSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UnitSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of unit-level sensors for a PDU."
    ::= { unit 5 }

unitSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     UnitSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing unit sensor parameters."
    INDEX { pduId, sensorType }
    ::= { unitSensorConfigurationTable 1 }

UnitSensorConfigurationEntryStruct ::= SEQUENCE {
        sensorType                              SensorTypeEnumeration,
        unitSensorLogAvailable                  TruthValue,
        unitSensorUnits                         SensorUnitsEnumeration,
        unitSensorDecimalDigits                 Unsigned32,
        unitSensorAccuracy                      HundredthsOfAPercentage,
        unitSensorResolution                    Unsigned32,
        unitSensorTolerance                     Unsigned32,
        unitSensorMaximum                       Unsigned32,
        unitSensorMinimum                       Unsigned32,
        unitSensorHysteresis                    Unsigned32,
        unitSensorStateChangeDelay              Unsigned32,
        unitSensorLowerCriticalThreshold        Unsigned32,
        unitSensorLowerWarningThreshold         Unsigned32,
        unitSensorUpperCriticalThreshold        Unsigned32,
        unitSensorUpperWarningThreshold         Unsigned32,
        unitSensorEnabledThresholds             BITS,
        unitSensorSignedMaximum                 Integer32,
        unitSensorSignedMinimum                 Integer32,
        unitSensorSignedLowerCriticalThreshold  Integer32,
        unitSensorSignedLowerWarningThreshold   Integer32,
        unitSensorSignedUpperCriticalThreshold  Integer32,
        unitSensorSignedUpperWarningThreshold   Integer32
    }

sensorType OBJECT-TYPE
    SYNTAX     SensorTypeEnumeration
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The type of sensor."
    ::= { unitSensorConfigurationEntry 1 }

unitSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for the sensor?"
    ::= { unitSensorConfigurationEntry 4 }

unitSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 6 }

unitSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point."
    ::= { unitSensorConfigurationEntry 7 }

unitSensorAccuracy OBJECT-TYPE
    SYNTAX     HundredthsOfAPercentage
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The accuracy: the maximum relative difference (in percent) between
            measurement and the actual value.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 8 }

unitSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 9 }

unitSensorTolerance OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The tolerance: the maximum difference between measurement and the
            actual value. The value of this OID variable should be scaled by
            (unitSensorDecimalDigits + 1).  For example, if the value is 50 and
            unitSensorDecimalDigits is 2, then actual value is 0.05.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 10 }

unitSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled maximum exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 11 }

unitSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 12 }

unitSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 13 }

unitSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 14 }

unitSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 21 }

unitSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 22 }

unitSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 23 }

unitSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 24 }

unitSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 25 }

unitSensorSignedMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 26 }

unitSensorSignedMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This value determines whether to use the signed or unsigned threshold
            and value columns: If the minimum is below zero the sensor can have
            negative readings and the signed columns should be used.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 27 }

unitSensorSignedLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 28 }

unitSensorSignedLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 29 }

unitSensorSignedUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 30 }

unitSensorSignedUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorConfigurationEntry 31 }

-- inletConfigurationTable: inlet information and settings

inletConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inlet configuration entries. The number of
            entries is given by the value of inletCount for the PDU."
    ::= { inlets 3 }

inletConfigurationEntry OBJECT-TYPE
    SYNTAX     InletConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parametersfor a particular inlet."
    INDEX { pduId, inletId }
    ::= { inletConfigurationTable 1 }

InletConfigurationEntryStruct ::= SEQUENCE {
        inletId                             Integer32,
        inletLabel                          DisplayString,
        inletName                           DisplayString,
        inletPlug                           PlugTypeEnumeration,
        inletPoleCount                      Integer32,
        inletRatedVoltage                   DisplayString,
        inletRatedCurrent                   DisplayString,
        inletRatedFrequency                 DisplayString,
        inletRatedVA                        DisplayString,
        inletDeviceCapabilities             BITS,
        inletPoleCapabilities               BITS,
        inletPlugDescriptor                 DisplayString,
        inletEnableState                    TruthValue,
        inletRCMResidualOperatingCurrent    Unsigned32
    }

inletId OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each inlet. Its value ranges between 1 and the
            value of inletCount."
    ::= { inletConfigurationEntry 1 }

inletLabel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The label on the PDU identifying the inlet."
    ::= { inletConfigurationEntry 2 }

inletName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The user-defined name."
    ::= { inletConfigurationEntry 3 }

inletPlug OBJECT-TYPE
    SYNTAX     PlugTypeEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The type of plug/receptacle wired to the inlet.
            Note: PlugTypeEnumeration is no longer updated, unlisted plugs will be
            reported as plugOTHER. Use inletPlugDescriptor to reliably determine
            the plug type."
    ::= { inletConfigurationEntry 4 }

inletPoleCount OBJECT-TYPE
    SYNTAX     Integer32(2..5)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of poles.
            PDU:
              2 for 1-phase circuits
              3 for 3-phase delta-wired models
              4 for 3-phase wye-wired models, pole 4 is neutral
            Power Meter:
              2 to 5 depending on the power meter type:
                Pole 1 is Phase A
                Pole 2 is Phase B
                Pole 3 is Phase C
                Pole 4 is Neutral
                Pole 5 is Earth"
    ::= { inletConfigurationEntry 5 }

inletRatedVoltage OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The inlet voltage rating."
    ::= { inletConfigurationEntry 6 }

inletRatedCurrent OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The inlet current rating."
    ::= { inletConfigurationEntry 7 }

inletRatedFrequency OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The inlet frequency rating.
            Deprecated: use pduRatedFrequency for unit nameplate information."
    ::= { inletConfigurationEntry 8 }

inletRatedVA OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The inlet VA (VoltAmps) rating.
            Deprecated: use pduRatedVA for unit nameplate information."
    ::= { inletConfigurationEntry 9 }

inletDeviceCapabilities OBJECT-TYPE
    SYNTAX     BITS { rmsCurrent(0),
                      peakCurrent(1),
                      unbalancedCurrent(2),
                      rmsVoltage(3),
                      activePower(4),
                      apparentPower(5),
                      powerFactor(6),
                      activeEnergy(7),
                      apparentEnergy(8),
                      surgeProtectorStatus(21),
                      frequency(22),
                      phaseAngle(23),
                      residualCurrent(25),
                      rcmState(26),
                      reactivePower(28),
                      powerQuality(31) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which inlet sensors are available."
    ::= { inletConfigurationEntry 10 }

inletPoleCapabilities OBJECT-TYPE
    SYNTAX     BITS { rmsCurrent(0),
                      peakCurrent(1),
                      rmsVoltage(3),
                      activePower(4),
                      apparentPower(5),
                      powerFactor(6),
                      activeEnergy(7),
                      apparentEnergy(8),
                      phaseAngle(23),
                      rmsVoltageLN(24),
                      reactivePower(28),
                      displacementPowerFactor(34) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which inlet pole sensors are available."
    ::= { inletConfigurationEntry 11 }

inletPlugDescriptor OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The inlet plug type as a string."
    ::= { inletConfigurationEntry 12 }

inletEnableState OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Enable/disable PDU operation for this inlet.
            When PDU operation is disabled the sensors for this inlet and all
            children will no longer be updated, and outlet switching is no longer
            allowed. This is only meaningful for multi-inlet units if one inlet
            is temporarily expected to be powered down.
            Disabling the inlet of a single-inlet unit is forbidden and any
            attempt to do so will result in an error."
    ::= { inletConfigurationEntry 13 }

inletRCMResidualOperatingCurrent OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     obsolete
    DESCRIPTION
           "**NOTE:This object is obsolete.
            Its functionality was implemented by existing RCM sensor thresholds.
            The Residual Operating Current (Threshold) for the RCM State sensor.
            For inlets without an RCM, any attempt to access this OID will return
            NoSuchInstance error. The value of this OID is in milliamps."
    ::= { inletConfigurationEntry 14 }

-- inletPoleConfigurationTable: inlet pole information

inletPoleConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inlet pole configuration entries. The number of
            entries is given by the value of inletPoleCount for the inlet."
    ::= { inlets 5 }

inletPoleConfigurationEntry OBJECT-TYPE
    SYNTAX     InletPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parameters for a particular inlet pole."
    INDEX { pduId, inletId, inletPoleIndex }
    ::= { inletPoleConfigurationTable 1 }

InletPoleConfigurationEntryStruct ::= SEQUENCE {
        inletPoleLine   LineEnumeration,
        inletPoleNode   Integer32
    }

inletPoleLine OBJECT-TYPE
    SYNTAX     LineEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The phase for this inlet pole."
    ::= { inletPoleConfigurationEntry 1 }

inletPoleNode OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The node to which this inlet pole is connected"
    ::= { inletPoleConfigurationEntry 2 }

-- inletSensorConfigurationTable: information and settings for inlet sensors

inletSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of configuration entries for an inlet sensor."
    ::= { inlets 4 }

inletSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     InletSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing objects for configuring an inlet sensor."
    INDEX { pduId, inletId, sensorType }
    ::= { inletSensorConfigurationTable 1 }

InletSensorConfigurationEntryStruct ::= SEQUENCE {
        inletSensorLogAvailable                 TruthValue,
        inletSensorUnits                        SensorUnitsEnumeration,
        inletSensorDecimalDigits                Unsigned32,
        inletSensorAccuracy                     HundredthsOfAPercentage,
        inletSensorResolution                   Unsigned32,
        inletSensorTolerance                    Unsigned32,
        inletSensorMaximum                      Unsigned32,
        inletSensorMinimum                      Unsigned32,
        inletSensorHysteresis                   Unsigned32,
        inletSensorStateChangeDelay             Unsigned32,
        inletSensorLowerCriticalThreshold       Unsigned32,
        inletSensorLowerWarningThreshold        Unsigned32,
        inletSensorUpperCriticalThreshold       Unsigned32,
        inletSensorUpperWarningThreshold        Unsigned32,
        inletSensorEnabledThresholds            BITS,
        inletSensorSignedMaximum                Integer32,
        inletSensorSignedMinimum                Integer32,
        inletSensorSignedLowerCriticalThreshold Integer32,
        inletSensorSignedLowerWarningThreshold  Integer32,
        inletSensorSignedUpperCriticalThreshold Integer32,
        inletSensorSignedUpperWarningThreshold  Integer32
    }

inletSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for the sensor?"
    ::= { inletSensorConfigurationEntry 4 }

inletSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 6 }

inletSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 7 }

inletSensorAccuracy OBJECT-TYPE
    SYNTAX     HundredthsOfAPercentage
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The accuracy: the maximum relative difference (in percent) between
            measurement and the actual value.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 8 }

inletSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 9 }

inletSensorTolerance OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The tolerance: the maximum difference between measurement and the
            actual value. The value of this OID variable should be scaled by
            (inletSensorDecimalDigits + 1).  For example, if the value is 50 and
            inletSensorDecimalDigits is 2, then actual value is 0.05.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 10 }

inletSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled maximum exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 11 }

inletSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 12 }

inletSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 13 }

inletSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 14 }

inletSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 21 }

inletSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 22 }

inletSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 23 }

inletSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 24 }

inletSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 25 }

inletSensorSignedMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 26 }

inletSensorSignedMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value determines whether to use the signed or unsigned threshold
            and value columns: If the minimum is below zero the sensor can have
            negative readings and the signed columns should be used.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 27 }

inletSensorSignedLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 28 }

inletSensorSignedLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 29 }

inletSensorSignedUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 30 }

inletSensorSignedUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorConfigurationEntry 31 }

-- inletPoleSensorConfigurationTable: information and settings for inlet pole sensors

inletPoleSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletPoleSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of configuration entries for an inlet pole sensor."
    ::= { inlets 6 }

inletPoleSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     InletPoleSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing objects for configuring an inlet pole sensor."
    INDEX { pduId, inletId, inletPoleIndex, sensorType }
    ::= { inletPoleSensorConfigurationTable 1 }

InletPoleSensorConfigurationEntryStruct ::= SEQUENCE {
        inletPoleIndex                              Integer32,
        inletPoleSensorLogAvailable                 TruthValue,
        inletPoleSensorUnits                        SensorUnitsEnumeration,
        inletPoleSensorDecimalDigits                Unsigned32,
        inletPoleSensorAccuracy                     HundredthsOfAPercentage,
        inletPoleSensorResolution                   Unsigned32,
        inletPoleSensorTolerance                    Unsigned32,
        inletPoleSensorMaximum                      Unsigned32,
        inletPoleSensorMinimum                      Unsigned32,
        inletPoleSensorHysteresis                   Unsigned32,
        inletPoleSensorStateChangeDelay             Unsigned32,
        inletPoleSensorLowerCriticalThreshold       Unsigned32,
        inletPoleSensorLowerWarningThreshold        Unsigned32,
        inletPoleSensorUpperCriticalThreshold       Unsigned32,
        inletPoleSensorUpperWarningThreshold        Unsigned32,
        inletPoleSensorEnabledThresholds            BITS,
        inletPoleSensorSignedMaximum                Integer32,
        inletPoleSensorSignedMinimum                Integer32,
        inletPoleSensorSignedLowerCriticalThreshold Integer32,
        inletPoleSensorSignedLowerWarningThreshold  Integer32,
        inletPoleSensorSignedUpperCriticalThreshold Integer32,
        inletPoleSensorSignedUpperWarningThreshold  Integer32
    }

inletPoleIndex OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each inlet pole. Its value
            ranges between 1 and the value of inletPoleCount."
    ::= { inletPoleSensorConfigurationEntry 1 }

inletPoleSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for the sensor?"
    ::= { inletPoleSensorConfigurationEntry 4 }

inletPoleSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 6 }

inletPoleSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 7 }

inletPoleSensorAccuracy OBJECT-TYPE
    SYNTAX     HundredthsOfAPercentage
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The accuracy: the maximum relative difference (in percent) between
            measurement and the actual value.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 8 }

inletPoleSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 9 }

inletPoleSensorTolerance OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The tolerance: the maximum difference between measurement and the
            actual value. The value of this OID variable should be scaled by
            (inletPoleSensorDecimalDigits + 1).  For example, if the value is 50 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.05.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 10 }

inletPoleSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled maximum exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 11 }

inletPoleSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 12 }

inletPoleSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 13 }

inletPoleSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 14 }

inletPoleSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 21 }

inletPoleSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 22 }

inletPoleSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 23 }

inletPoleSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 24 }

inletPoleSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 25 }

inletPoleSensorSignedMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 26 }

inletPoleSensorSignedMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value determines whether to use the signed or unsigned threshold
            and value columns: If the minimum is below zero the sensor can have
            negative readings and the signed columns should be used.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 27 }

inletPoleSensorSignedLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 28 }

inletPoleSensorSignedLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 29 }

inletPoleSensorSignedUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 30 }

inletPoleSensorSignedUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorConfigurationEntry 31 }

-- overCurrentProtectorConfigurationTable: information and settings for overcurrent protectors

overCurrentProtectorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OverCurrentProtectorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of overcurrent protector configuration entries. The number of
            entries is given by the value of overCurrentProtectorCount for the PDU."
    ::= { overCurrentProtector 3 }

overCurrentProtectorConfigurationEntry OBJECT-TYPE
    SYNTAX     OverCurrentProtectorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing objects for a particular overcurrent protector."
    INDEX { pduId, overCurrentProtectorIndex }
    ::= { overCurrentProtectorConfigurationTable 1 }

OverCurrentProtectorConfigurationEntryStruct ::= SEQUENCE {
        overCurrentProtectorIndex           Integer32,
        overCurrentProtectorLabel           DisplayString,
        overCurrentProtectorName            DisplayString,
        overCurrentProtectorType            OverCurrentProtectorTypeEnumeration,
        overCurrentProtectorRatedCurrent    DisplayString,
        overCurrentProtectorPoleCount       Integer32,
        overCurrentProtectorCapabilities    BITS,
        overCurrentProtectorPowerSource     RowPointer
    }

overCurrentProtectorIndex OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each overcurrent protector. Its value
            ranges between 1 and the value of overCurrentProtectorCount."
    ::= { overCurrentProtectorConfigurationEntry 1 }

overCurrentProtectorLabel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The label on the PDU identifying the overcurrent protector."
    ::= { overCurrentProtectorConfigurationEntry 2 }

overCurrentProtectorName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The user-defined name."
    ::= { overCurrentProtectorConfigurationEntry 3 }

overCurrentProtectorType OBJECT-TYPE
    SYNTAX     OverCurrentProtectorTypeEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The type of overcurrent protector."
    ::= { overCurrentProtectorConfigurationEntry 4 }

overCurrentProtectorRatedCurrent OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The current rating."
    ::= { overCurrentProtectorConfigurationEntry 5 }

overCurrentProtectorPoleCount OBJECT-TYPE
    SYNTAX     Integer32(1..3)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of overcurrent protector poles."
    ::= { overCurrentProtectorConfigurationEntry 6 }

overCurrentProtectorCapabilities OBJECT-TYPE
    SYNTAX     BITS { rmsCurrent(0),
                      peakCurrent(1),
                      trip(14) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which overcurrent protector sensors are available."
    ::= { overCurrentProtectorConfigurationEntry 9 }

overCurrentProtectorPowerSource OBJECT-TYPE
    SYNTAX     RowPointer
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "This object allows discovery of how the PDU is wired. It indicates the
            overcurrent protector's power source which can be one of the following:
             - an inlet
             - another overcurrent protector
             - a transfer switch

            If the power source is an inlet, it contains the OID of
            an inletLabel in the inletConfigurationTable. The indices of the OID can
            then be used to reference other objects in the inlet tables.

            If the power source is an overcurrent protector, it
            contains the OID of an overCurrentProtectorLabel in the
            overCurrentProtectorConfigurationTable. The indices of the OID can then be
            used to reference other objects in the overcurrent protector tables.

            If the power source is a transfer switch, it
            contains the OID of a transferSwitchLabel in the
            transferSwitchConfigurationTable. The indices of the OID can then be
            used to reference other objects in the transfer switch tables."
    ::= { overCurrentProtectorConfigurationEntry 10 }

-- overCurrentProtectorPoleConfigurationTable: overcurrent protector pole information

overCurrentProtectorPoleConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OverCurrentProtectorPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of overcurrent protector pole configuration entries. The number of
            entries is given by the value of overCurrentProtectorPoleCount."
    ::= { overCurrentProtector 5 }

overCurrentProtectorPoleConfigurationEntry OBJECT-TYPE
    SYNTAX     OverCurrentProtectorPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parameters for a particular overcurrent protector pole."
    INDEX { pduId, overCurrentProtectorIndex, overCurrentProtectorPoleIndex }
    ::= { overCurrentProtectorPoleConfigurationTable 1 }

OverCurrentProtectorPoleConfigurationEntryStruct ::= SEQUENCE {
        overCurrentProtectorPoleIndex       Integer32,
        overCurrentProtectorPoleLine        LineEnumeration,
        overCurrentProtectorPoleInNode      Integer32,
        overCurrentProtectorPoleOutNode     Integer32
    }

overCurrentProtectorPoleIndex OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each overcurrent protector pole. Its value
            ranges between 1 and the value of overCurrentProtectorPoleCount."
    ::= { overCurrentProtectorPoleConfigurationEntry 1 }

overCurrentProtectorPoleLine OBJECT-TYPE
    SYNTAX     LineEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The phase for this overcurrent protector pole."
    ::= { overCurrentProtectorPoleConfigurationEntry 2 }

overCurrentProtectorPoleInNode OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The node to which this overcurrent protector pole input is connected"
    ::= { overCurrentProtectorPoleConfigurationEntry 3 }

overCurrentProtectorPoleOutNode OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The node to which this overcurrent protector pole output is connected"
    ::= { overCurrentProtectorPoleConfigurationEntry 4 }

-- overCurrentProtectorSensorConfigurationTable: information and settings for OCP sensors

overCurrentProtectorSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OverCurrentProtectorSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of overcurrent protector sensor configuration entries."
    ::= { overCurrentProtector 4 }

overCurrentProtectorSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     OverCurrentProtectorSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An overcurrent protector sensor entry containing objects for a
            particular overcurrent protector sensor."
    INDEX { pduId, overCurrentProtectorIndex, sensorType }
    ::= { overCurrentProtectorSensorConfigurationTable 1 }

OverCurrentProtectorSensorConfigurationEntryStruct ::= SEQUENCE {
        overCurrentProtectorSensorLogAvailable                  TruthValue,
        overCurrentProtectorSensorUnits                         SensorUnitsEnumeration,
        overCurrentProtectorSensorDecimalDigits                 Unsigned32,
        overCurrentProtectorSensorAccuracy                      HundredthsOfAPercentage,
        overCurrentProtectorSensorResolution                    Unsigned32,
        overCurrentProtectorSensorTolerance                     Unsigned32,
        overCurrentProtectorSensorMaximum                       Unsigned32,
        overCurrentProtectorSensorMinimum                       Unsigned32,
        overCurrentProtectorSensorHysteresis                    Unsigned32,
        overCurrentProtectorSensorStateChangeDelay              Unsigned32,
        overCurrentProtectorSensorLowerCriticalThreshold        Unsigned32,
        overCurrentProtectorSensorLowerWarningThreshold         Unsigned32,
        overCurrentProtectorSensorUpperCriticalThreshold        Unsigned32,
        overCurrentProtectorSensorUpperWarningThreshold         Unsigned32,
        overCurrentProtectorSensorEnabledThresholds             BITS,
        overCurrentProtectorSensorSignedMaximum                 Integer32,
        overCurrentProtectorSensorSignedMinimum                 Integer32,
        overCurrentProtectorSensorSignedLowerCriticalThreshold  Integer32,
        overCurrentProtectorSensorSignedLowerWarningThreshold   Integer32,
        overCurrentProtectorSensorSignedUpperCriticalThreshold  Integer32,
        overCurrentProtectorSensorSignedUpperWarningThreshold   Integer32
    }

overCurrentProtectorSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for this sensor?"
    ::= { overCurrentProtectorSensorConfigurationEntry 4 }

overCurrentProtectorSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 6 }

overCurrentProtectorSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 7 }

overCurrentProtectorSensorAccuracy OBJECT-TYPE
    SYNTAX     HundredthsOfAPercentage
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The accuracy: the maximum relative difference (in percent) between
            measurement and the actual value.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 8 }

overCurrentProtectorSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits. For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 9 }

overCurrentProtectorSensorTolerance OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The tolerance: the maximum difference between measurement and the
            actual value. The value of this OID variable should be scaled by
            (overCurrentProtectorSensorDecimalDigits + 1).  For example, if the value is 50 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.05.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 10 }

overCurrentProtectorSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled maximum exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 11 }

overCurrentProtectorSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 12 }

overCurrentProtectorSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 13 }

overCurrentProtectorSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 14 }

overCurrentProtectorSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 21 }

overCurrentProtectorSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 22 }

overCurrentProtectorSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 23 }

overCurrentProtectorSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 24 }

overCurrentProtectorSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 25}

overCurrentProtectorSensorSignedMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 26 }

overCurrentProtectorSensorSignedMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This value determines whether to use the signed or unsigned threshold
            and value columns: If the minimum is below zero the sensor can have
            negative readings and the signed columns should be used.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 27 }

overCurrentProtectorSensorSignedLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 28 }

overCurrentProtectorSensorSignedLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 29 }

overCurrentProtectorSensorSignedUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 30 }

overCurrentProtectorSensorSignedUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorConfigurationEntry 31 }

-- outletConfigurationTable: outlet information and settings

outletConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet configuration entries. The number of
            entries is given by the value of outletCount for the PDU."
    ::= { outlets 3 }

outletConfigurationEntry OBJECT-TYPE
    SYNTAX     OutletConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An outlet entry containing parameters for a particular outlet."
    INDEX { pduId, outletId }
    ::= { outletConfigurationTable 1 }

OutletConfigurationEntryStruct ::= SEQUENCE {
        outletId                                    Integer32,
        outletLabel                                 DisplayString,
        outletName                                  DisplayString,
        outletReceptacle                            ReceptacleTypeEnumeration,
        outletPoleCount                             Integer32,
        outletRatedVoltage                          DisplayString,
        outletRatedCurrent                          DisplayString,
        outletRatedVA                               DisplayString,
        outletDeviceCapabilities                    BITS,
        outletPoleCapabilities                      BITS,
        outletPowerCyclingPowerOffPeriod            Unsigned32,
        outletStateOnStartup                        OutletStateOnStartupEnumeration,
        outletUseGlobalPowerCyclingPowerOffPeriod   TruthValue,
        outletSwitchable                            TruthValue,
        outletReceptacleDescriptor                  DisplayString,
        outletNonCritical                           TruthValue,
        outletSequenceDelay                         Unsigned32,
        outletPowerSource                           RowPointer
    }

outletId OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each outlet. Its value
            ranges between 1 and the value of outletCount."
    ::= { outletConfigurationEntry 1 }

outletLabel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The label on the PDU identifying the outlet."
    ::= { outletConfigurationEntry 2 }

outletName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The user-defined name."
    ::= { outletConfigurationEntry 3 }

outletReceptacle OBJECT-TYPE
    SYNTAX     ReceptacleTypeEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The receptacle type.
            Note: ReceptacleTypeEnumeration is no longer updated, unlisted receptacles
            will be listed as receptacleOTHER. Use outletReceptacleDescriptor to
            reliably determine the receptacle type."
    ::= { outletConfigurationEntry 4 }

outletPoleCount OBJECT-TYPE
    SYNTAX     Integer32(2..4)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of poles."
    ::= { outletConfigurationEntry 5 }

outletRatedVoltage OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The outlet voltage rating."
    ::= { outletConfigurationEntry 6 }

outletRatedCurrent OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The outlet current rating."
    ::= { outletConfigurationEntry 7 }

outletRatedVA OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The outlet VA (VoltAmps) rating."
    ::= { outletConfigurationEntry 8 }

outletDeviceCapabilities OBJECT-TYPE
    SYNTAX     BITS { rmsCurrent(0),
                      peakCurrent(1),
                      unbalancedCurrent(2),
                      rmsVoltage(3),
                      activePower(4),
                      apparentPower(5),
                      powerFactor(6),
                      activeEnergy(7),
                      apparentEnergy(8),
                      onOff(13),
                      frequency(22),
                      phaseAngle(23) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which outlet sensors are available."
    ::= { outletConfigurationEntry 10 }

outletPoleCapabilities OBJECT-TYPE
    SYNTAX     BITS { rmsCurrent(0),
                      peakCurrent(1),
                      rmsVoltage(3),
                      activePower(4),
                      apparentPower(5),
                      powerFactor(6),
                      activeEnergy(7),
                      apparentEnergy(8),
                      rmsVoltageLN(24) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which outlet pole sensors are available."
    ::= { outletConfigurationEntry 11 }

outletPowerCyclingPowerOffPeriod OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The power-off period when an outlet is cycled.
            Overrides the global value if outletUseGlobalPowerCyclingPowerOffPeriod
            is false.
            Specified in seconds, 1 <= value <= 3600."
    ::= { outletConfigurationEntry 12 }

outletStateOnStartup OBJECT-TYPE
    SYNTAX     OutletStateOnStartupEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The outlet state on device startup.
            This value is ignored if relayBehaviorOnPowerLoss is set to latching."
    ::= { outletConfigurationEntry 13 }

outletUseGlobalPowerCyclingPowerOffPeriod OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Indicates which power-off period to use when the outlet is cycled:
             - true: use globalOutletPowerCyclingPowerOffPeriod
             - false: use outletPowerCyclingPowerOffPeriod"
    ::= { outletConfigurationEntry 14 }

outletSwitchable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is this outlet switchable?"
    ::= { outletConfigurationEntry 28 }

outletReceptacleDescriptor OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The outlet receptacle type as a string."
    ::= { outletConfigurationEntry 29 }

outletNonCritical OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is this outlet non-critical? Non-critical outlets will be switched
            off when load shedding is enabled."
    ::= { outletConfigurationEntry 30 }

outletSequenceDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The time interval between switching on this outlet and the next outlet in the
            outlet sequence.
            This applies to the following operations.
              1) Switch all outlets on operation is executed
              2) Power to the PDU is cycled
            It is specified in seconds, 0 <= value <= 3600 seconds.
            The effective time interval used can never be less than the inrushGuardDelay
            defined in the unitConfigurationTable."
    ::= { outletConfigurationEntry 32 }

outletPowerSource OBJECT-TYPE
    SYNTAX     RowPointer
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "This object allows discovery of how the PDU is wired. It indicates the
            outlet's power source which can one of the following:
             - an inlet
             - an overcurrent protector
             - a transfer switch

            If the power source is an inlet, it contains the OID of
            an inletLabel in the inletConfigurationTable. The indices of the OID can
            then be used to reference other objects in the inlet tables.

            If the power source is an overcurrent protector, it
            contains the OID of an overCurrentProtectorLabel in the
            overCurrentProtectorConfigurationTable. The indices of the OID can then be
            used to reference other objects in the overcurrent protector tables.

            If the power source is a transfer switch, it
            contains the OID of a transferSwitchLabel in the
            transferSwitchConfigurationTable. The indices of the OID can then be
            used to reference other objects in the transfer switch tables."
    ::= { outletConfigurationEntry 33}

-- outetPoleConfigurationTable: outlet pole information

outletPoleConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet pole configuration entries. The number of
            entries is given by the value of outletPoleCount for the PDU."
    ::= { outlets 5 }

outletPoleConfigurationEntry OBJECT-TYPE
    SYNTAX     OutletPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parameters for a particular outlet pole."
    INDEX { pduId, outletId, outletPoleIndex }
    ::= { outletPoleConfigurationTable 1 }

OutletPoleConfigurationEntryStruct ::= SEQUENCE {
        outletPoleLine      LineEnumeration,
        outletPoleNode      Integer32
    }

outletPoleLine OBJECT-TYPE
    SYNTAX     LineEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The phase for this outlet pole."
    ::= { outletPoleConfigurationEntry 1 }

outletPoleNode OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The node to which this outlet pole is connected"
    ::= { outletPoleConfigurationEntry 2 }

-- outletSensorConfigurationTable: information and settings for outlet sensors

outletSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet sensor configuration entries."
    ::= { outlets 4 }

outletSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     OutletSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parameters for an outlet sensor."
    INDEX { pduId, outletId, sensorType }
    ::= { outletSensorConfigurationTable 1 }

OutletSensorConfigurationEntryStruct ::= SEQUENCE {
        outletSensorLogAvailable                    TruthValue,
        outletSensorUnits                           SensorUnitsEnumeration,
        outletSensorDecimalDigits                   Unsigned32,
        outletSensorAccuracy                        HundredthsOfAPercentage,
        outletSensorResolution                      Unsigned32,
        outletSensorTolerance                       Unsigned32,
        outletSensorMaximum                         Unsigned32,
        outletSensorMinimum                         Unsigned32,
        outletSensorHysteresis                      Unsigned32,
        outletSensorStateChangeDelay                Unsigned32,
        outletSensorLowerCriticalThreshold          Unsigned32,
        outletSensorLowerWarningThreshold           Unsigned32,
        outletSensorUpperCriticalThreshold          Unsigned32,
        outletSensorUpperWarningThreshold           Unsigned32,
        outletSensorEnabledThresholds               BITS,
        outletSensorSignedMaximum                   Integer32,
        outletSensorSignedMinimum                   Integer32,
        outletSensorSignedLowerCriticalThreshold    Integer32,
        outletSensorSignedLowerWarningThreshold     Integer32,
        outletSensorSignedUpperCriticalThreshold    Integer32,
        outletSensorSignedUpperWarningThreshold     Integer32
    }

outletSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for this sensor?"
    ::= { outletSensorConfigurationEntry 4 }

outletSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 6 }

outletSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 7 }

outletSensorAccuracy OBJECT-TYPE
    SYNTAX     HundredthsOfAPercentage
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The accuracy: the maximum relative difference (in percent) between
            measurement and the actual value.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 8 }

outletSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 9 }

outletSensorTolerance OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The tolerance: the maximum difference between measurement and the
            actual value. The value of this OID variable should be scaled by
            (outletSensorDecimalDigits + 1).  For example, if the value is 50 and
            outletSensorDecimalDigits is 2, then actual value is 0.05.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 10 }

outletSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled maximum exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 11 }

outletSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 12 }

outletSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 13 }

outletSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 14 }

outletSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 21 }

outletSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 22 }

outletSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 23 }

outletSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 24 }

outletSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 25 }

outletSensorSignedMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 26 }

outletSensorSignedMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This value determines whether to use the signed or unsigned threshold
            and value columns: If the minimum is below zero the sensor can have
            negative readings and the signed columns should be used.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 27 }

outletSensorSignedLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 28 }

outletSensorSignedLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 29 }

outletSensorSignedUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 30 }

outletSensorSignedUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorConfigurationEntry 31 }

-- outletPoleSensorConfigurationTable: information and settings for outlet pole sensors

outletPoleSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletPoleSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet pole sensor configuration entries."
    ::= { outlets 6 }

outletPoleSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     OutletPoleSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing objects for configuring an outlet pole sensor."
    INDEX { pduId, outletId, outletPoleIndex, sensorType }
    ::= { outletPoleSensorConfigurationTable 1 }

OutletPoleSensorConfigurationEntryStruct ::= SEQUENCE {
        outletPoleIndex                                 Integer32,
        outletPoleSensorLogAvailable                    TruthValue,
        outletPoleSensorUnits                           SensorUnitsEnumeration,
        outletPoleSensorDecimalDigits                   Unsigned32,
        outletPoleSensorAccuracy                        HundredthsOfAPercentage,
        outletPoleSensorResolution                      Unsigned32,
        outletPoleSensorTolerance                       Unsigned32,
        outletPoleSensorMaximum                         Unsigned32,
        outletPoleSensorMinimum                         Unsigned32,
        outletPoleSensorHysteresis                      Unsigned32,
        outletPoleSensorStateChangeDelay                Unsigned32,
        outletPoleSensorLowerCriticalThreshold          Unsigned32,
        outletPoleSensorLowerWarningThreshold           Unsigned32,
        outletPoleSensorUpperCriticalThreshold          Unsigned32,
        outletPoleSensorUpperWarningThreshold           Unsigned32,
        outletPoleSensorEnabledThresholds               BITS,
        outletPoleSensorSignedMaximum                   Integer32,
        outletPoleSensorSignedMinimum                   Integer32,
        outletPoleSensorSignedLowerCriticalThreshold    Integer32,
        outletPoleSensorSignedLowerWarningThreshold     Integer32,
        outletPoleSensorSignedUpperCriticalThreshold    Integer32,
        outletPoleSensorSignedUpperWarningThreshold     Integer32
    }

outletPoleIndex OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each outlet pole. Its value
            ranges between 1 and the value of outletPoleCount."
    ::= { outletPoleSensorConfigurationEntry 1 }

outletPoleSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for the sensor?"
    ::= { outletPoleSensorConfigurationEntry 4 }

outletPoleSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 6 }

outletPoleSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 7 }

outletPoleSensorAccuracy OBJECT-TYPE
    SYNTAX     HundredthsOfAPercentage
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The accuracy: the maximum relative difference (in percent) between
            measurement and the actual value.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 8 }

outletPoleSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 9 }

outletPoleSensorTolerance OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The tolerance: the maximum difference between measurement and the
            actual value. The value of this OID variable should be scaled by
            (outletPoleSensorDecimalDigits + 1).  For example, if the value is 50 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.05.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 10 }

outletPoleSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled maximum exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 11 }

outletPoleSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 12 }

outletPoleSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 13 }

outletPoleSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 14 }

outletPoleSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 21 }

outletPoleSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 22 }

outletPoleSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 23 }

outletPoleSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 24 }

outletPoleSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 25 }

outletPoleSensorSignedMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 26 }

outletPoleSensorSignedMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value determines whether to use the signed or unsigned threshold
            and value columns: If the minimum is below zero the sensor can have
            negative readings and the signed columns should be used.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 27 }

outletPoleSensorSignedLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 28 }

outletPoleSensorSignedLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 29 }

outletPoleSensorSignedUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 30 }

outletPoleSensorSignedUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorConfigurationEntry 31 }

-- externalSensorConfigurationTable: external sensor information and settings

externalSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ExternalSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of external sensor configuration entries. The number of
            entries is given by the value of externalSensorCount for the PDU."
    ::= { externalSensors 3 }

externalSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     ExternalSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parameters for an external sensor."
    INDEX { pduId, sensorID }
    ::= { externalSensorConfigurationTable 1 }

ExternalSensorConfigurationEntryStruct ::= SEQUENCE {
        sensorID                                Integer32,
        externalSensorType                      SensorTypeEnumeration,
        externalSensorSerialNumber              DisplayString,
        externalSensorName                      DisplayString,
        externalSensorDescription               DisplayString,
        externalSensorXCoordinate               DisplayString,
        externalSensorYCoordinate               DisplayString,
        externalSensorZCoordinate               DisplayString,
        externalSensorChannelNumber             Integer32,
        externalOnOffSensorSubtype              SensorTypeEnumeration,
        externalSensorLogAvailable              TruthValue,
        externalSensorUnits                     SensorUnitsEnumeration,
        externalSensorDecimalDigits             Unsigned32,
        externalSensorAccuracy                  HundredthsOfAPercentage,
        externalSensorResolution                Unsigned32,
        externalSensorTolerance                 Unsigned32,
        externalSensorMaximum                   Integer32,
        externalSensorMinimum                   Integer32,
        externalSensorHysteresis                Unsigned32,
        externalSensorStateChangeDelay          Unsigned32,
        externalSensorLowerCriticalThreshold    Integer32,
        externalSensorLowerWarningThreshold     Integer32,
        externalSensorUpperCriticalThreshold    Integer32,
        externalSensorUpperWarningThreshold     Integer32,
        externalSensorEnabledThresholds         BITS,
        externalSensorIsActuator                TruthValue,
        externalSensorPosition                  DisplayString,
        externalSensorUseDefaultThresholds      TruthValue,
        externalSensorAlarmedToNormalDelay      Integer32
    }

sensorID OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each sensor. Its value
            ranges between 1 and the value of externalSensorCount."
    ::= { externalSensorConfigurationEntry 1 }

externalSensorType OBJECT-TYPE
    SYNTAX     SensorTypeEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The type of sensor."
    ::= { externalSensorConfigurationEntry 2 }

externalSensorSerialNumber OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor serial number."
    ::= { externalSensorConfigurationEntry 3 }

externalSensorName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The user-defined name."
    ::= { externalSensorConfigurationEntry 4 }

externalSensorDescription OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The user-defined description."
    ::= { externalSensorConfigurationEntry 5 }

externalSensorXCoordinate OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The X coordinate."
    ::= { externalSensorConfigurationEntry 6 }

externalSensorYCoordinate OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The Y coordinate."
    ::= { externalSensorConfigurationEntry 7 }

externalSensorZCoordinate OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The Z coordinate. The value must be a number if
            externalSensorsZCoordinateUnits is rackUnits."
    ::= { externalSensorConfigurationEntry 8 }

externalSensorChannelNumber OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The channel number.
            This applies only to contact sensors, -1 for other sensors."
    ::= { externalSensorConfigurationEntry 9 }

externalOnOffSensorSubtype OBJECT-TYPE
    SYNTAX     SensorTypeEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The subtype of the binary sensor."
    ::= { externalSensorConfigurationEntry 10 }

externalSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for this sensor?"
    ::= { externalSensorConfigurationEntry 14 }

externalSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 16 }

externalSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 17 }

externalSensorAccuracy OBJECT-TYPE
    SYNTAX     HundredthsOfAPercentage
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The accuracy: the maximum relative difference (in percent) between
            measurement and the actual value.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 18 }

externalSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 19 }

externalSensorTolerance OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The tolerance: the maximum difference between measurement and the
            actual value. The value of this OID variable should be scaled by
            (externalSensorDecimalDigits + 1).  For example, if the value is 50 and
            externalSensorDecimalDigits is 2, then actual value is 0.05.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 20 }

externalSensorMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible value
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 21 }

externalSensorMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible value
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 22 }

externalSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 23 }

externalSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 24 }

externalSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 31 }

externalSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 32 }

externalSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 33 }

externalSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 34 }

externalSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorConfigurationEntry 35}

externalSensorIsActuator OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Indicates whether the sensor is an actuator."
    ::= { externalSensorConfigurationEntry 36 }

externalSensorPosition OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The position of the sensor in the bus topology.
            The format is a semicolon separated list of Keyword:value pairs.
            Keyword can be one of the following:
                ONBOARD, DEVICE-1WIREPORT, HUBPORT, CHAIN-POSITION

            Examples:
            1) Onboard sensor
                  ONBOARD:CC1
            2) Old sensor connected to device 1-wire port
                  DEVICE-1WIREPORT:2
            3) New-style sensor connected to device 1-wire port
                  DEVICE-1WIREPORT:2;CHAIN-POSITION:3
            4) New-style sensor connected to hub port 3
                  DEVICE-1WIREPORT:2;CHAIN-POSITION:1;HUBPORT:3;CHAIN-POSITION:1
            5) Old-style sensor connected to end of new-style sensor chain
                  DEVICE-1WIREPORT:2;"
    ::= { externalSensorConfigurationEntry 37 }

externalSensorUseDefaultThresholds OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Use default thresholds for this sensor?
            True:  Use default thresholds from externalSensorTypeDefaultThresholdsTable
            False: Use sensor-specific thresholds from this table"
    ::= { externalSensorConfigurationEntry 38 }

externalSensorAlarmedToNormalDelay OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay (in seconds) before the sensor returns from alarmed to normal.
            This is supported for motion detectors only. For all other sensors the
            value is 0 and cannot be set to any other value."
    ::= { externalSensorConfigurationEntry 39 }

-- externalSensorTypeDefaultThresholdsTable: Default thresholds for each external sensor type

externalSensorTypeDefaultThresholdsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ExternalSensorTypeDefaultThresholdsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A table listing the default thresholds for each sensor type.
            The table contains a row for each supported type of external sensor
            with a numeric reading."
    ::= { externalSensors 4 }

externalSensorTypeDefaultThresholdsEntry OBJECT-TYPE
    SYNTAX     ExternalSensorTypeDefaultThresholdsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing default thresholds for a sensor type."
    INDEX { pduId, sensorType }
    ::= { externalSensorTypeDefaultThresholdsTable 1 }

ExternalSensorTypeDefaultThresholdsEntryStruct ::= SEQUENCE {
        externalSensorTypeDefaultHysteresis                 Unsigned32,
        externalSensorTypeDefaultStateChangeDelay           Unsigned32,
        externalSensorTypeDefaultLowerCriticalThreshold     Integer32,
        externalSensorTypeDefaultLowerWarningThreshold      Integer32,
        externalSensorTypeDefaultUpperCriticalThreshold     Integer32,
        externalSensorTypeDefaultUpperWarningThreshold      Integer32,
        externalSensorTypeDefaultEnabledThresholds          BITS
    }

externalSensorTypeDefaultHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01."
    ::= { externalSensorTypeDefaultThresholdsEntry 3 }

externalSensorTypeDefaultStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported."
    ::= { externalSensorTypeDefaultThresholdsEntry 4 }

externalSensorTypeDefaultLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01."
    ::= { externalSensorTypeDefaultThresholdsEntry 5 }

externalSensorTypeDefaultLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01."
    ::= { externalSensorTypeDefaultThresholdsEntry 6 }

externalSensorTypeDefaultUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01."
    ::= { externalSensorTypeDefaultThresholdsEntry 7 }

externalSensorTypeDefaultUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01."
    ::= { externalSensorTypeDefaultThresholdsEntry 8 }

externalSensorTypeDefaultEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled."
    ::= { externalSensorTypeDefaultThresholdsEntry 9}

-- serverReachabilityTable: Settings for the server reachability feature

serverReachabilityTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ServerReachabilityEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of server entries. The number of
            entries is given by the value of serverCount for the PDU."
    ::= { serverReachability 3 }

serverReachabilityEntry OBJECT-TYPE
    SYNTAX     ServerReachabilityEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parameters for a server."
    INDEX { pduId, serverID }
    ::= { serverReachabilityTable 1 }

ServerReachabilityEntryStruct ::= SEQUENCE {
        serverID            Integer32,
        serverIPAddress     DisplayString,
        serverPingEnabled   TruthValue
    }

serverID OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each server. Its value
            ranges between 1 and the value of serverCount for that PDU"
    ::= { serverReachabilityEntry 1 }

serverIPAddress OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The IP Address/host name of the server"
    ::= { serverReachabilityEntry 3 }

serverPingEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is ping enabled for this server?"
    ::= { serverReachabilityEntry 4 }

-- wireConfigurationTable: Information about wire objects in the PDU

wireConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF WireConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "A list of wire configuration entries. The number of
            entries is given by the value of wireCount for the PDU.
            Note: This feature is no longer used, the table is always empty."
    ::= { wires 3 }

wireConfigurationEntry OBJECT-TYPE
    SYNTAX     WireConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "An entry containing objects for a particular wire."
    INDEX { pduId, wireId }
    ::= { wireConfigurationTable 1 }

WireConfigurationEntryStruct ::= SEQUENCE {
        wireId              Integer32,
        wireLabel           DisplayString,
        wireCapabilities    BITS,
        wirePowerSource     RowPointer
    }

wireId OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "A unique value for each wire. Its value
            ranges between 1 and the value of wireCount."
    ::= { wireConfigurationEntry 1 }

wireLabel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The label on the PDU identifying the wire."
    ::= { wireConfigurationEntry 2 }

wireCapabilities OBJECT-TYPE
    SYNTAX     BITS { rmsCurrent(0),
                      peakCurrent(1),
                      unbalancedCurrent(2),
                      rmsVoltage(3),
                      activePower(4),
                      apparentPower(5),
                      powerFactor(6),
                      activeEnergy(7),
                      apparentEnergy(8) }
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "A bit string indicating which wire sensors are available."
    ::= { wireConfigurationEntry 3 }

wirePowerSource OBJECT-TYPE
    SYNTAX     RowPointer
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "This object allows discovery of how the PDU is wired. It indicates the
            wire's power source which can one of the following:
              - an inlet
              - an overcurrent protector
              - a transfer switch

            If the power source is an inlet, it contains the OID of
            an inletLabel in the inletConfigurationTable. The indices of the OID can
            then be used to reference other objects in the inlet tables.

            If the power source is an overcurrent protector, it
            contains the OID of an overCurrentProtectorLabel in the
            overCurrentProtectorConfigurationTable. The indices of the OID can then be
            used to reference other objects in the overcurrent protector tables.

            If the power source is a transfer switch, it
            contains the OID of a transferSwitchLabel in the
            transferSwitchConfigurationTable. The indices of the OID can then be
            used to reference other objects in the transfer switch tables."
    ::= { wireConfigurationEntry 4 }

-- wireSensorConfigurationTable: information and settings for wire sensors

wireSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF WireSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "A list of wire sensor configuration entries.
            Note: This feature is no longer used, the table is always empty."
    ::= { wires 4 }

wireSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     WireSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "An wireSensor entry containing objects for a particular wire Sensor."
    INDEX { pduId, wireId, sensorType }
    ::= { wireSensorConfigurationTable 1 }

WireSensorConfigurationEntryStruct ::= SEQUENCE {
        wireSensorLogAvailable              TruthValue,
        wireSensorUnits                     SensorUnitsEnumeration,
        wireSensorDecimalDigits             Unsigned32,
        wireSensorAccuracy                  HundredthsOfAPercentage,
        wireSensorResolution                Unsigned32,
        wireSensorTolerance                 Unsigned32,
        wireSensorMaximum                   Unsigned32,
        wireSensorMinimum                   Unsigned32,
        wireSensorHysteresis                Unsigned32,
        wireSensorStateChangeDelay          Unsigned32,
        wireSensorLowerCriticalThreshold    Unsigned32,
        wireSensorLowerWarningThreshold     Unsigned32,
        wireSensorUpperCriticalThreshold    Unsigned32,
        wireSensorUpperWarningThreshold     Unsigned32,
        wireSensorEnabledThresholds         BITS
    }

wireSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "Is data logging enabled for this sensor?"
    ::= { wireSensorConfigurationEntry 4 }

wireSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 6 }

wireSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 7 }

wireSensorAccuracy OBJECT-TYPE
    SYNTAX     HundredthsOfAPercentage
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The accuracy: the maximum relative difference (in percent) between
            measurement and the actual value.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 8 }

wireSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits. For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 9 }

wireSensorTolerance OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The tolerance: the maximum difference between measurement and the
            actual value. The value of this OID variable should be scaled by
            (wireSensorDecimalDigits + 1).  For example, if the value is 50 and
            wireSensorDecimalDigits is 2, then actual value is 0.05.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 10 }

wireSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The largest possible value
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits.  For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 11 }

wireSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The smallest possible value
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits.  For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 12 }

wireSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits.  For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 13 }

wireSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 14 }

wireSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "The lower critical threshold
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits.  For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 21 }

wireSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "The lower non-critical (warning) threshold
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits.  For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 22 }

wireSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "The upper critical  threshold
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits.  For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 23 }

wireSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "The upper non-critical (warning) threshold
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits.  For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 24 }

wireSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 25 }

-- transferSwitchConfigurationTable: transfer switch information and settings

transferSwitchConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TransferSwitchConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of transfer switch configuration entries. The number of
            entries is given by the value of transferSwitchCount."
    ::= { transferSwitch 3 }

transferSwitchConfigurationEntry OBJECT-TYPE
    SYNTAX     TransferSwitchConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing objects for a particular transfer switch."
    INDEX { pduId, transferSwitchId }
    ::= { transferSwitchConfigurationTable 1 }

TransferSwitchConfigurationEntryStruct ::= SEQUENCE {
        transferSwitchId                                        Integer32,
        transferSwitchLabel                                     DisplayString,
        transferSwitchName                                      DisplayString,
        transferSwitchPreferredInlet                            Integer32,
        transferSwitchPoleCount                                 Integer32,
        transferSwitchAutoReTransferEnabled                     TruthValue,
        transferSwitchAutoReTransferWaitTime                    Unsigned32,
        transferSwitchAutoReTransferRequiresPhaseSync           TruthValue,
        transferSwitchFrontPanelManualTransferButtonEnabled     TruthValue,
        transferSwitchCapabilities                              BITS,
        transferSwitchPowerSource1                              RowPointer,
        transferSwitchPowerSource2                              RowPointer
    }

transferSwitchId OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each transfer switch. Its value
            ranges between 1 and the value of transferSwitchCount."
    ::= { transferSwitchConfigurationEntry 1 }

transferSwitchLabel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The label on the PDU identifying the transfer switch."
    ::= { transferSwitchConfigurationEntry 2 }

transferSwitchName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The user-defined name of the transfer switch."
    ::= { transferSwitchConfigurationEntry 3 }

transferSwitchPreferredInlet OBJECT-TYPE
    SYNTAX     Integer32(1..64)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The preferred inlet. This is the inlet to be selected in case both
            inlets have acceptable power."
    ::= { transferSwitchConfigurationEntry 4 }

transferSwitchPoleCount OBJECT-TYPE
    SYNTAX     Integer32(2..4)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of poles."
    ::= { transferSwitchConfigurationEntry 5 }

transferSwitchAutoReTransferEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Enables or disables automatic retransfer from the standby inlet to
            the preferred inlet after power has been restored."
    ::= { transferSwitchConfigurationEntry 20 }

transferSwitchAutoReTransferWaitTime OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay for automatic retransfers. Retransfer occurs this many
            seconds after the condition causing the original transfer has been
            corrected."
    ::= { transferSwitchConfigurationEntry 21 }

transferSwitchAutoReTransferRequiresPhaseSync OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Enables or disables automatic retransfer in case the two inlets are
            not synchronized. If set to True, automatic retransfer is inhibited while
            a phase sync alarm is present, i.e. the phase difference between the two
            inlets is too large."
    ::= { transferSwitchConfigurationEntry 22 }

transferSwitchFrontPanelManualTransferButtonEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Enables or disables the Manual Transfer button on the unit's front panel."
    ::= { transferSwitchConfigurationEntry 23 }

transferSwitchCapabilities OBJECT-TYPE
    SYNTAX     BITS { overloadStatus(32),
                      inletPhaseSyncAngle(37),
                      inletPhaseSync(38),
                      operatingState(39),
                      activeInlet(40),
                      switchStatus(47) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which sensors are available for the transfer switch."
    ::= { transferSwitchConfigurationEntry 24 }

transferSwitchPowerSource1 OBJECT-TYPE
    SYNTAX     RowPointer
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "This object allows discovery of how the PDU is wired. It indicates the
            transfer switch's first power source, typically a fuse.

            It contains the OID of an overCurrentProtectorLabel in the
            overCurrentProtectorConfiguration Table. The indices of the OID can then be
            used to reference other objects in the overcurrent protector tables."
    ::= { transferSwitchConfigurationEntry 31 }

transferSwitchPowerSource2 OBJECT-TYPE
    SYNTAX     RowPointer
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "This object allows discovery of how the PDU is wired. It indicates the
            transfer switch's second power source, typically a fuse.

            It contains the OID of an overCurrentProtectorLabel in the
            overCurrentProtectorConfiguration Table. The indices of the OID can then be
            used to reference other objects in the overcurrent protector tables."
    ::= { transferSwitchConfigurationEntry 32 }

-- transferSwitchPoleConfigurationTable: transfer switch pole information

transferSwitchPoleConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TransferSwitchPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of transfer switch pole configuration entries. The number of
            entries is given by the value of transferSwitchPoleCount."
    ::= { transferSwitch 5 }

transferSwitchPoleConfigurationEntry OBJECT-TYPE
    SYNTAX     TransferSwitchPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parameters for a particular transfer switch pole."
    INDEX { pduId, transferSwitchId, transferSwitchPoleIndex }
    ::= { transferSwitchPoleConfigurationTable 1 }

TransferSwitchPoleConfigurationEntryStruct ::= SEQUENCE {
        transferSwitchPoleIndex         Integer32,
        transferSwitchPoleLine          LineEnumeration,
        transferSwitchPoleIn1Node       Integer32,
        transferSwitchPoleIn2Node       Integer32,
        transferSwitchPoleOutNode       Integer32
    }

transferSwitchPoleIndex OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each transfer switch pole. Its value
            ranges between 1 and the value of transferSwitchPoleCount."
    ::= { transferSwitchPoleConfigurationEntry 1 }

transferSwitchPoleLine OBJECT-TYPE
    SYNTAX     LineEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The phase for this transfer switch pole."
    ::= { transferSwitchPoleConfigurationEntry 2 }

transferSwitchPoleIn1Node OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The node to which this transfer switch pole input 1 is connected"
    ::= { transferSwitchPoleConfigurationEntry 3 }

transferSwitchPoleIn2Node OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The node to which this transfer switch pole input 2 is connected"
    ::= { transferSwitchPoleConfigurationEntry 4 }

transferSwitchPoleOutNode OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The node to which this transfer switch pole output is connected"
    ::= { transferSwitchPoleConfigurationEntry 5 }

-- transferSwitchSensorConfigurationTable: information and settings for transfer switch sensors

transferSwitchSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TransferSwitchSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of transfer switch sensor configuration entries."
    ::= { transferSwitch 4 }

transferSwitchSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     TransferSwitchSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parameters for a transfer switch sensor."
    INDEX { pduId, transferSwitchId, sensorType }
    ::= { transferSwitchSensorConfigurationTable 1 }

TransferSwitchSensorConfigurationEntryStruct ::= SEQUENCE {
        transferSwitchSensorLogAvailable                    TruthValue,
        transferSwitchSensorUnits                           SensorUnitsEnumeration,
        transferSwitchSensorDecimalDigits                   Unsigned32,
        transferSwitchSensorAccuracy                        HundredthsOfAPercentage,
        transferSwitchSensorResolution                      Unsigned32,
        transferSwitchSensorTolerance                       Unsigned32,
        transferSwitchSensorMaximum                         Unsigned32,
        transferSwitchSensorMinimum                         Unsigned32,
        transferSwitchSensorHysteresis                      Unsigned32,
        transferSwitchSensorStateChangeDelay                Unsigned32,
        transferSwitchSensorLowerCriticalThreshold          Unsigned32,
        transferSwitchSensorLowerWarningThreshold           Unsigned32,
        transferSwitchSensorUpperCriticalThreshold          Unsigned32,
        transferSwitchSensorUpperWarningThreshold           Unsigned32,
        transferSwitchSensorEnabledThresholds               BITS,
        transferSwitchSensorSignedMaximum                   Integer32,
        transferSwitchSensorSignedMinimum                   Integer32,
        transferSwitchSensorSignedLowerCriticalThreshold    Integer32,
        transferSwitchSensorSignedLowerWarningThreshold     Integer32,
        transferSwitchSensorSignedUpperCriticalThreshold    Integer32,
        transferSwitchSensorSignedUpperWarningThreshold     Integer32
    }

transferSwitchSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for this sensor?"
    ::= { transferSwitchSensorConfigurationEntry 4 }

transferSwitchSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 6 }

transferSwitchSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 7 }

transferSwitchSensorAccuracy OBJECT-TYPE
    SYNTAX     HundredthsOfAPercentage
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The accuracy: how close (in percent) the measurement is to the actual value
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 8 }

transferSwitchSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 9 }

transferSwitchSensorTolerance OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The tolerance: the maximum difference between measurement and the
            actual value. The value of this OID variable should be scaled by
            (transferSwitchSensorDecimalDigits + 1).  For example, if the value is 50 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.05.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 10 }

transferSwitchSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled maximum exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 11 }

transferSwitchSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 12 }

transferSwitchSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 13 }

transferSwitchSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 14 }

transferSwitchSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 21 }

transferSwitchSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 22 }

transferSwitchSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 23 }

transferSwitchSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 24 }

transferSwitchSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 25 }

transferSwitchSensorSignedMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 26 }

transferSwitchSensorSignedMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This value determines whether to use the signed or unsigned threshold
            and value columns: If the minimum is below zero the sensor can have
            negative readings and the signed columns should be used.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 27 }

transferSwitchSensorSignedLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 28 }

transferSwitchSensorSignedLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 29 }

transferSwitchSensorSignedUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 30 }

transferSwitchSensorSignedUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorConfigurationEntry 31 }

-- powerMeterConfigurationTable: BCM2/PMC power meter and panel information

powerMeterConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PowerMeterConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of power meter and panel configuration entries.
            Note: Also see inlet tables for settings and sensor information."
    ::= { powerMeter 2 }

powerMeterConfigurationEntry OBJECT-TYPE
    SYNTAX     PowerMeterConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing configuration objects for power meters and panels."
    INDEX { pduId }
    ::= { powerMeterConfigurationTable 1 }

PowerMeterConfigurationEntryStruct ::= SEQUENCE {
        powerMeterPhaseCTRating     Unsigned32,
        powerMeterNeutralCTRating   Unsigned32,
        powerMeterEarthCTRating     Unsigned32,
        powerMeterBranchCount       Unsigned32,
        powerMeterPanelPositions    Integer32,
        powerMeterPanelLayout       PanelLayoutEnumeration,
        powerMeterPanelNumbering    PanelNumberingEnumeration,
        powerMeterType              PowerMeterTypeEnumeration
    }

powerMeterPhaseCTRating OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The rating of the phase CT in Amps, or 0 if no CT is present.
            At present, read-only access;
            see MIN-ACCESS in MODULE-COMPLIANCE ModulecomplianceRev2"
    ::= { powerMeterConfigurationEntry 2 }

powerMeterNeutralCTRating OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The rating of the neutral CT in Amps, or 0 if no CT is present.
            At present, read-only access;
            see MIN-ACCESS in MODULE-COMPLIANCE ModulecomplianceRev2"
    ::= { powerMeterConfigurationEntry 3 }

powerMeterEarthCTRating OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The rating of the earth CT in Amps, or 0 if no CT is present.
            At present, read-only access;
            see MIN-ACCESS in MODULE-COMPLIANCE ModulecomplianceRev2"
    ::= { powerMeterConfigurationEntry 4 }

powerMeterBranchCount OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum number of circuits supported by the panel.

            This can be used to distinguish between panels (>0) and power meters (0).
            See circuitCount for the number of currently defined circuits."
    ::= { powerMeterConfigurationEntry 5 }

powerMeterPanelPositions OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of circuit positions in the panel.
            Its value is specified by the user when configuring a panel"
    ::= { powerMeterConfigurationEntry 6 }

powerMeterPanelLayout OBJECT-TYPE
    SYNTAX     PanelLayoutEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The panel circuit position layout: one or two columns.
            This is valid only for panels, the value is -1 for power meters."
    ::= { powerMeterConfigurationEntry 7 }

powerMeterPanelNumbering OBJECT-TYPE
    SYNTAX     PanelNumberingEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The panel circuit position numbering scheme: odd/even or sequential.
            This is valid only for panels, the value is -1 for power meters."
    ::= { powerMeterConfigurationEntry 8 }

powerMeterType OBJECT-TYPE
    SYNTAX     PowerMeterTypeEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The power meter type: 3-phase, single-phase or split-phase."
    ::= { powerMeterConfigurationEntry 9 }

-- circuitConfigurationTable: BCM2/PMC branch circuit information

circuitConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of circuit configuration entries. The number of
            entries is given by the value of panelCircuitPositionCount."
    ::= { circuit 2 }

circuitConfigurationEntry OBJECT-TYPE
    SYNTAX     CircuitConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing configuration objects for the circuit."
    INDEX { pduId, circuitId }
    ::= { circuitConfigurationTable 1 }

CircuitConfigurationEntryStruct ::= SEQUENCE {
        circuitId                   Integer32,
        circuitPoleCount            Integer32,
        circuitName                 DisplayString,
        circuitType                 CircuitTypeEnumeration,
        circuitRatedCurrent         Unsigned32,
        circuitCTRating             Unsigned32,
        circuitCapabilities         BITS,
        circuitPoleCapabilities     BITS,
        circuitPowerSource          RowPointer
    }

circuitId OBJECT-TYPE
    SYNTAX     Integer32(1..1024)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each circuit. Its value is the smallest panel
            position occupied by the circuit."
    ::= { circuitConfigurationEntry 1 }

circuitPoleCount OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of panel positions occupied by the circuit."
    ::= { circuitConfigurationEntry 2 }

circuitName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The user-defined name for the circuit.
            At present, read-only access;
            see MIN-ACCESS in MODULE-COMPLIANCE ModulecomplianceRev2"
    ::= { circuitConfigurationEntry 3 }

circuitType OBJECT-TYPE
    SYNTAX     CircuitTypeEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The circuit type: line-line, line-neutral, line-line-neutral or 3-phase"
    ::= { circuitConfigurationEntry 4 }

circuitRatedCurrent OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The rating of the breaker for the circuit in Amps.
            At present, read-only access;
            see MIN-ACCESS in MODULE-COMPLIANCE ModulecomplianceRev2"
    ::= { circuitConfigurationEntry 5 }

circuitCTRating OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The rating of the CTs metering this circuit in Amps.
            At present, read-only access;
            see MIN-ACCESS in MODULE-COMPLIANCE ModulecomplianceRev2"
    ::= { circuitConfigurationEntry 6 }

circuitCapabilities OBJECT-TYPE
    SYNTAX     BITS { rmsCurrent(0),
                      peakCurrent(1),
                      unbalancedCurrent(2),
                      rmsVoltage(3),
                      activePower(4),
                      apparentPower(5),
                      powerFactor(6),
                      activeEnergy(7),
                      apparentEnergy(8),
                      surgeProtectorStatus(21),
                      frequency(22),
                      phaseAngle(23),
                      residualCurrent(25),
                      rcmState(26),
                      reactivePower(28),
                      powerQuality(31),
                      displacementPowerFactor(34) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which sensors are available for the circuit."
    ::= { circuitConfigurationEntry 7 }

circuitPoleCapabilities OBJECT-TYPE
    SYNTAX     BITS { rmsCurrent(0),
                      peakCurrent(1),
                      rmsVoltage(3),
                      activePower(4),
                      apparentPower(5),
                      powerFactor(6),
                      activeEnergy(7),
                      apparentEnergy(8),
                      phaseAngle(23),
                      rmsVoltageLN(24),
                      reactivePower(28),
                      displacementPowerFactor(34) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which sensors are available for each circuit pole."
    ::= { circuitConfigurationEntry 8 }

circuitPowerSource OBJECT-TYPE
    SYNTAX     RowPointer
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "This object allows discovery of how the circuit is wired. It indicates the
            circuit's power source, typically an inlet.

            It contains the OID of an inletLabel in the inletConfigurationTable.
            The indices of the OID can then be used to reference other objects in the
            inlet and power meter tables."
    ::= { circuitConfigurationEntry 9 }

-- circuitPoleConfigurationTable: BCM2/PMC branch circuit pole information

circuitPoleConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of branch circuit pole configuration entries. The number of
            entries is given by the value of circuitPoleCount for the circuit."
    ::= { circuit 3 }

circuitPoleConfigurationEntry OBJECT-TYPE
    SYNTAX     CircuitPoleConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing configuration objects for the circuit poles."
    INDEX { pduId, circuitId, circuitPoleId }
    ::= { circuitPoleConfigurationTable 1 }

CircuitPoleConfigurationEntryStruct ::= SEQUENCE {
        circuitPoleId               Integer32,
        circuitPolePanelPosition    Integer32,
        circuitPoleCTNumber         Integer32,
        circuitPolePhase            PhaseEnumeration
    }

circuitPoleId OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each circuit pole. Its value
            ranges between 1 and the value of circuitPoleCount."
    ::= { circuitPoleConfigurationEntry 1 }

circuitPolePanelPosition OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The panel position for this pole."
    ::= { circuitPoleConfigurationEntry 2 }

circuitPoleCTNumber OBJECT-TYPE
    SYNTAX     Integer32(0..256)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The CT number for this circuit pole, or 0 if no CT is present.
            At present, read-only access;
            see MIN-ACCESS in MODULE-COMPLIANCE ModulecomplianceRev2"
    ::= { circuitPoleConfigurationEntry 3 }

circuitPolePhase OBJECT-TYPE
    SYNTAX     PhaseEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The phase for this circuit pole.
            At present, read-only access;
            see MIN-ACCESS in MODULE-COMPLIANCE ModulecomplianceRev2"
    ::= { circuitPoleConfigurationEntry 4 }

-- circuitSensorConfigurationTable: information and settings for BCM2/PMC circuit sensors

circuitSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of configuration entries for branch circuit sensor."
    ::= { circuit 4 }

circuitSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     CircuitSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing objects for configuring a branch circuit sensor."
    INDEX { pduId, circuitId, sensorType }
    ::= { circuitSensorConfigurationTable 1 }

CircuitSensorConfigurationEntryStruct ::= SEQUENCE {
        circuitSensorLogAvailable                   TruthValue,
        circuitSensorUnits                          SensorUnitsEnumeration,
        circuitSensorDecimalDigits                  Unsigned32,
        circuitSensorResolution                     Unsigned32,
        circuitSensorMaximum                        Unsigned32,
        circuitSensorMinimum                        Unsigned32,
        circuitSensorHysteresis                     Unsigned32,
        circuitSensorStateChangeDelay               Unsigned32,
        circuitSensorLowerCriticalThreshold         Unsigned32,
        circuitSensorLowerWarningThreshold          Unsigned32,
        circuitSensorUpperCriticalThreshold         Unsigned32,
        circuitSensorUpperWarningThreshold          Unsigned32,
        circuitSensorEnabledThresholds              BITS,
        circuitSensorSignedMaximum                  Integer32,
        circuitSensorSignedMinimum                  Integer32,
        circuitSensorSignedLowerCriticalThreshold   Integer32,
        circuitSensorSignedLowerWarningThreshold    Integer32,
        circuitSensorSignedUpperCriticalThreshold   Integer32,
        circuitSensorSignedUpperWarningThreshold    Integer32
    }

circuitSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for the sensor?"
    ::= { circuitSensorConfigurationEntry 4 }

circuitSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 6 }

circuitSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 7 }

circuitSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 9 }

circuitSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled maximum exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 11 }

circuitSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 12 }

circuitSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 13 }

circuitSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 14 }

circuitSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 21 }

circuitSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 22 }

circuitSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 23 }

circuitSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 24 }

circuitSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 25 }

circuitSensorSignedMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 26 }

circuitSensorSignedMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value determines whether to use the signed or unsigned threshold
            and value columns: If the minimum is below zero the sensor can have
            negative readings and the signed columns should be used.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 27 }

circuitSensorSignedLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 28 }

circuitSensorSignedLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 29 }

circuitSensorSignedUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 30 }

circuitSensorSignedUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorConfigurationEntry 31 }

-- circuitPoleSensorConfigurationTable: information and settings for BCM2/PMC circuit pole sensors

circuitPoleSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitPoleSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of configuration entries for a circuit's pole sensors."
    ::= { circuit 6 }

circuitPoleSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     CircuitPoleSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing objects for configuring a circuit pole sensor."
    INDEX { pduId, circuitId, circuitPoleId, sensorType }
    ::= { circuitPoleSensorConfigurationTable 1 }

CircuitPoleSensorConfigurationEntryStruct ::= SEQUENCE {
        circuitPoleSensorLogAvailable                   TruthValue,
        circuitPoleSensorUnits                          SensorUnitsEnumeration,
        circuitPoleSensorDecimalDigits                  Unsigned32,
        circuitPoleSensorResolution                     Unsigned32,
        circuitPoleSensorMaximum                        Unsigned32,
        circuitPoleSensorMinimum                        Unsigned32,
        circuitPoleSensorHysteresis                     Unsigned32,
        circuitPoleSensorStateChangeDelay               Unsigned32,
        circuitPoleSensorLowerCriticalThreshold         Unsigned32,
        circuitPoleSensorLowerWarningThreshold          Unsigned32,
        circuitPoleSensorUpperCriticalThreshold         Unsigned32,
        circuitPoleSensorUpperWarningThreshold          Unsigned32,
        circuitPoleSensorEnabledThresholds              BITS,
        circuitPoleSensorSignedMaximum                  Integer32,
        circuitPoleSensorSignedMinimum                  Integer32,
        circuitPoleSensorSignedLowerCriticalThreshold   Integer32,
        circuitPoleSensorSignedLowerWarningThreshold    Integer32,
        circuitPoleSensorSignedUpperCriticalThreshold   Integer32,
        circuitPoleSensorSignedUpperWarningThreshold    Integer32
    }

circuitPoleSensorLogAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Is data logging enabled for the sensor?"
    ::= { circuitPoleSensorConfigurationEntry 4 }

circuitPoleSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the sensor reading is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 6 }

circuitPoleSensorDecimalDigits OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of digits displayed to the right of the decimal point.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 7 }

circuitPoleSensorResolution OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The resolution: the minimum difference between any two measured values
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 9 }

circuitPoleSensorMaximum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled maximum exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 11 }

circuitPoleSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 12 }

circuitPoleSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The hysteresis used when crossing a threshold towards the normal state.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 13 }

circuitPoleSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The delay measured in samples before a state is asserted.
            If the value is zero, then the state is asserted as soon as
            it is detected; if it is non-zero, say n, then the assertion
            condition must exist for n+1 consecutive samples before the
            event is reported.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 14 }

circuitPoleSensorLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 21 }

circuitPoleSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 22 }

circuitPoleSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 23 }

circuitPoleSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is clamped if the scaled threshold exceeds 4294967295. It
            is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 24 }

circuitPoleSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "A bit string indicating which thresholds are enabled.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 25 }

circuitPoleSensorSignedMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 26 }

circuitPoleSensorSignedMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible reading as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value determines whether to use the signed or unsigned threshold
            and value columns: If the minimum is below zero the sensor can have
            negative readings and the signed columns should be used.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 27 }

circuitPoleSensorSignedLowerCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 28 }

circuitPoleSensorSignedLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The lower warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 29 }

circuitPoleSensorSignedUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper critical threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 30 }

circuitPoleSensorSignedUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The upper warning threshold as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            The value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorConfigurationEntry 31 }

-- peripheralDevicePackageTable: peripheral device package information

peripheralDevicePackageTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF PeripheralDevicePackageEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of entries for the peripheral device packages connected to a PDU.
            The number of entries is given by the value of peripheralDevicePackagesCount.
            A peripheral device package contains one or more sensors or actuators in a
            single enclosure."
    ::= { externalSensors 5 }

peripheralDevicePackageEntry OBJECT-TYPE
    SYNTAX     PeripheralDevicePackageEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing objects for a peripheral device package."
    INDEX { pduId, peripheralDevicePackageId }
    ::= { peripheralDevicePackageTable 1 }

PeripheralDevicePackageEntryStruct ::= SEQUENCE {
        peripheralDevicePackageId                   Integer32,
        peripheralDevicePackageSerialNumber         DisplayString,
        peripheralDevicePackageModel                DisplayString,
        peripheralDevicePackageFirmwareVersion      DisplayString,
        peripheralDevicePackageMinFirmwareVersion   DisplayString,
        peripheralDevicePackageFirmwareTimeStamp    Unsigned32,
        peripheralDevicePackagePosition             DisplayString,
        peripheralDevicePackageState                DisplayString
    }

peripheralDevicePackageId OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each peripheral device package."
    ::= { peripheralDevicePackageEntry 1 }

peripheralDevicePackageSerialNumber OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The peripheral device package serial number."
    ::= { peripheralDevicePackageEntry 3 }

peripheralDevicePackageModel OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The peripheral device package model.
            Examples are DX-D2C6, DPX2-T1, DPX2-T1H1, DPX2-T2H1, DPX2-T3H1"
    ::= { peripheralDevicePackageEntry 4 }

peripheralDevicePackageFirmwareVersion OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The peripheral device package firmware version."
    ::= { peripheralDevicePackageEntry 5 }

peripheralDevicePackageMinFirmwareVersion OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The peripheral device package minimum firmware version.
            This field may be empty. If it is not empty, then it shall not be possible
            to downgrade the peripheral device firmware to an older version."
    ::= { peripheralDevicePackageEntry 6 }

peripheralDevicePackageFirmwareTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The time when the peripheral device package firmware was last updated.
            It is measured in seconds since January 1, 1970 (midnight UTC/GMT)."
    ::= { peripheralDevicePackageEntry 7 }

peripheralDevicePackagePosition OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The position of the package in the bus topology.
            The format is a semicolon separated list of Keyword:value pairs.
            Keyword can be one of the following:
                ONBOARD, DEVICE-1WIREPORT, HUBPORT, CHAIN-POSITION

            Examples:
            1) Onboard Sensor
                   ONBOARD:CC1
            2) Old sensor connected to device 1-wire port
                   DEVICE-1WIREPORT:2
            3) New-style sensor connected to device 1-wire port
                   DEVICE-1WIREPORT:2;CHAIN-POSITION:3
            4) New-style sensor connected to hub port 3
                   DEVICE-1WIREPORT:2;CHAIN-POSITION:1;HUBPORT:3;CHAIN-POSITION:1
            5) Old-style sensor connected to end of new-style sensor chain
                   DEVICE-1WIREPORT:2;"
    ::= { peripheralDevicePackageEntry 8 }

peripheralDevicePackageState OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The state of the package."
    ::= { peripheralDevicePackageEntry 9 }

-- sensor data log tables

logIndexTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF LogIndexEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A table containing current indices for the data log buffer."
    ::= { logUnit 1 }

logIndexEntry OBJECT-TYPE
    SYNTAX     LogIndexEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing the current indices for a PDU's data log buffer."
    INDEX { pduId }
    ::= { logIndexTable 1 }

LogIndexEntryStruct ::= SEQUENCE {
        oldestLogID     Integer32,
        newestLogID     Integer32
    }

oldestLogID OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The index of the oldest data in the buffer for this PDU."
    ::= { logIndexEntry 2 }

newestLogID OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The index of the newest data in the buffer for this PDU."
    ::= { logIndexEntry 3 }

-- logTimeStampTable: timestamp information for each data log entry

logTimeStampTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF LogTimeStampEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of entries containing the timestamps of the entries in the log."
    ::= { logUnit 2 }

logTimeStampEntry OBJECT-TYPE
    SYNTAX     LogTimeStampEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing the timestamp for log entries."
    INDEX { pduId, logIndex }
    ::= { logTimeStampTable 1 }

LogTimeStampEntryStruct ::= SEQUENCE {
        logIndex        Integer32,
        logTimeStamp    Unsigned32
    }

logIndex OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each entry in the log. Its value
            ranges between 1 and the value of logSize."
    ::= { logTimeStampEntry 1 }

logTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The time when the data was collected. It is measured in seconds since
            January 1, 1970 (midnight UTC/GMT)."
    ::= { logTimeStampEntry 2 }

-- unitSensorLogTable: unit-level sensor log data

unitSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UnitSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of unit sensor entries in the log."
    ::= { logUnit 3 }

unitSensorLogEntry OBJECT-TYPE
    SYNTAX     UnitSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for a unit sensor."
    INDEX { pduId, sensorType, logIndex }
    ::= { unitSensorLogTable 1 }

UnitSensorLogEntryStruct ::= SEQUENCE {
        logUnitSensorDataAvailable      TruthValue,
        logUnitSensorState              SensorStateEnumeration,
        logUnitSensorAvgValue           Unsigned32,
        logUnitSensorMaxValue           Unsigned32,
        logUnitSensorMinValue           Unsigned32,
        logUnitSensorSignedAvgValue     Integer32,
        logUnitSensorSignedMaxValue     Integer32,
        logUnitSensorSignedMinValue     Integer32
    }

logUnitSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { unitSensorLogEntry 2 }

logUnitSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { unitSensorLogEntry 3 }

logUnitSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { unitSensorLogEntry 4 }

logUnitSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { unitSensorLogEntry 5 }

logUnitSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { unitSensorLogEntry 6 }

logUnitSensorSignedAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { unitSensorLogEntry 7 }

logUnitSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { unitSensorLogEntry 8 }

logUnitSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { unitSensorLogEntry 9 }

-- inletSensorLogTable: inlet sensor log data

inletSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inlet sensor entries in the log."
    ::= { logInlet 3 }

inletSensorLogEntry OBJECT-TYPE
    SYNTAX     InletSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for an inlet sensor."
    INDEX { pduId, inletId, sensorType, logIndex  }
    ::= { inletSensorLogTable 1 }

InletSensorLogEntryStruct ::= SEQUENCE {
        logInletSensorDataAvailable     TruthValue,
        logInletSensorState             SensorStateEnumeration,
        logInletSensorAvgValue          Unsigned32,
        logInletSensorMaxValue          Unsigned32,
        logInletSensorMinValue          Unsigned32,
        logInletSensorSignedAvgValue    Integer32,
        logInletSensorSignedMaxValue    Integer32,
        logInletSensorSignedMinValue    Integer32
    }

logInletSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { inletSensorLogEntry 2 }

logInletSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { inletSensorLogEntry 3 }

logInletSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { inletSensorLogEntry 4 }

logInletSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { inletSensorLogEntry 5 }

logInletSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { inletSensorLogEntry 6 }

logInletSensorSignedAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { inletSensorLogEntry 7 }

logInletSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { inletSensorLogEntry 8 }

logInletSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { inletSensorLogEntry 9 }

-- inletPoleSensorLogTable: inlet pole sensor log data

inletPoleSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletPoleSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inletPole sensor entries in the log."
    ::= { logInlet 4 }

inletPoleSensorLogEntry OBJECT-TYPE
    SYNTAX     InletPoleSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for an inlet pole sensor."
    INDEX { pduId, inletId, inletPoleIndex, sensorType, logIndex }
    ::= { inletPoleSensorLogTable 1 }

InletPoleSensorLogEntryStruct ::= SEQUENCE {
        logInletPoleSensorDataAvailable     TruthValue,
        logInletPoleSensorState             SensorStateEnumeration,
        logInletPoleSensorAvgValue          Unsigned32,
        logInletPoleSensorMaxValue          Unsigned32,
        logInletPoleSensorMinValue          Unsigned32,
        logInletPoleSensorSignedAvgValue    Integer32,
        logInletPoleSensorSignedMaxValue    Integer32,
        logInletPoleSensorSignedMinValue    Integer32
    }

logInletPoleSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { inletPoleSensorLogEntry 2 }

logInletPoleSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { inletPoleSensorLogEntry 3 }

logInletPoleSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { inletPoleSensorLogEntry 4 }

logInletPoleSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { inletPoleSensorLogEntry 5 }

logInletPoleSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { inletPoleSensorLogEntry 6 }

logInletPoleSensorSignedAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { inletPoleSensorLogEntry 7 }

logInletPoleSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { inletPoleSensorLogEntry 8 }

logInletPoleSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { inletPoleSensorLogEntry 9 }

-- outletSensorLogTable: outlet sensor log data

outletSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet sensor entries in the log."
    ::= { logOutlet 3 }

outletSensorLogEntry OBJECT-TYPE
    SYNTAX     OutletSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for an outlet sensor."
    INDEX { pduId, outletId, sensorType, logIndex }
    ::= { outletSensorLogTable 1 }

OutletSensorLogEntryStruct ::= SEQUENCE {
        logOutletSensorDataAvailable    TruthValue,
        logOutletSensorState            SensorStateEnumeration,
        logOutletSensorAvgValue         Unsigned32,
        logOutletSensorMaxValue         Unsigned32,
        logOutletSensorMinValue         Unsigned32,
        logOutletSensorSignedAvgValue   Integer32,
        logOutletSensorSignedMaxValue   Integer32,
        logOutletSensorSignedMinValue   Integer32
    }

logOutletSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { outletSensorLogEntry 2 }

logOutletSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { outletSensorLogEntry 3 }

logOutletSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { outletSensorLogEntry 4 }

logOutletSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { outletSensorLogEntry 5 }

logOutletSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { outletSensorLogEntry 6 }

logOutletSensorSignedAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { outletSensorLogEntry 7 }

logOutletSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { outletSensorLogEntry 8 }

logOutletSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { outletSensorLogEntry 9 }

-- outletPoleSensorLogTable: outlet pole sensor log data

outletPoleSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletPoleSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet pole sensor entries in the log."
    ::= { logOutlet 4 }

outletPoleSensorLogEntry OBJECT-TYPE
    SYNTAX     OutletPoleSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for an outlet pole sensor."
    INDEX { pduId, outletId, outletPoleIndex, sensorType, logIndex }
    ::= { outletPoleSensorLogTable 1 }

OutletPoleSensorLogEntryStruct ::= SEQUENCE {
        logOutletPoleSensorDataAvailable    TruthValue,
        logOutletPoleSensorState            SensorStateEnumeration,
        logOutletPoleSensorAvgValue         Unsigned32,
        logOutletPoleSensorMaxValue         Unsigned32,
        logOutletPoleSensorMinValue         Unsigned32,
        logOutletPoleSensorSignedAvgValue   Integer32,
        logOutletPoleSensorSignedMaxValue   Integer32,
        logOutletPoleSensorSignedMinValue   Integer32
    }

logOutletPoleSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { outletPoleSensorLogEntry 2 }

logOutletPoleSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { outletPoleSensorLogEntry 3 }

logOutletPoleSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { outletPoleSensorLogEntry 4 }

logOutletPoleSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { outletPoleSensorLogEntry 5 }

logOutletPoleSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { outletPoleSensorLogEntry 6 }

logOutletPoleSensorSignedAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { outletPoleSensorLogEntry 7 }

logOutletPoleSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { outletPoleSensorLogEntry 8 }

logOutletPoleSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { outletPoleSensorLogEntry 9 }

-- overCurrentProtectorSensorLogTable: overcurrent protector sensor log data

overCurrentProtectorSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OverCurrentProtectorSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of overcurrent protector sensor entries in the log."
    ::= { logOverCurrentProtector 3 }

overCurrentProtectorSensorLogEntry OBJECT-TYPE
    SYNTAX     OverCurrentProtectorSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for an overcurrent protector sensor."
    INDEX { pduId, overCurrentProtectorIndex, sensorType, logIndex }
    ::= { overCurrentProtectorSensorLogTable 1 }

OverCurrentProtectorSensorLogEntryStruct ::= SEQUENCE {
        logOverCurrentProtectorSensorDataAvailable      TruthValue,
        logOverCurrentProtectorSensorState              SensorStateEnumeration,
        logOverCurrentProtectorSensorAvgValue           Unsigned32,
        logOverCurrentProtectorSensorMaxValue           Unsigned32,
        logOverCurrentProtectorSensorMinValue           Unsigned32,
        logOverCurrentProtectorSensorSignedAvgValue     Integer32,
        logOverCurrentProtectorSensorSignedMaxValue     Integer32,
        logOverCurrentProtectorSensorSignedMinValue     Integer32
    }

logOverCurrentProtectorSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { overCurrentProtectorSensorLogEntry 2 }

logOverCurrentProtectorSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { overCurrentProtectorSensorLogEntry 3 }

logOverCurrentProtectorSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorLogEntry 4 }

logOverCurrentProtectorSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorLogEntry 5 }

logOverCurrentProtectorSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorLogEntry 6 }

logOverCurrentProtectorSensorSignedAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorLogEntry 7 }

logOverCurrentProtectorSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorLogEntry 8 }

logOverCurrentProtectorSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits.  For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorLogEntry 9 }

-- externalSensorLogTable: external sensor log data

externalSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ExternalSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of external sensor entries in the log."
    ::= { logExternalSensor 3 }

externalSensorLogEntry OBJECT-TYPE
    SYNTAX     ExternalSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for an external sensor."
    INDEX { pduId, sensorID, logIndex }
    ::= { externalSensorLogTable 1 }

ExternalSensorLogEntryStruct ::= SEQUENCE {
        logExternalSensorDataAvailable      TruthValue,
        logExternalSensorState              SensorStateEnumeration,
        logExternalSensorAvgValue           Integer32,
        logExternalSensorMaxValue           Integer32,
        logExternalSensorMinValue           Integer32
    }

logExternalSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { externalSensorLogEntry 2 }

logExternalSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { externalSensorLogEntry 3 }

logExternalSensorAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading average value.
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This object does not apply to sensors without numerical reading."
    ::= { externalSensorLogEntry 4 }

logExternalSensorMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading maximum value.
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This object does not apply to sensors without numerical reading."
    ::= { externalSensorLogEntry 5 }

logExternalSensorMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading minimum value.
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This object does not apply to sensors without numerical reading."
    ::= { externalSensorLogEntry 6 }

-- wireSensorLogTable: wire sensor log data

wireSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF WireSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "A list of wire sensor entries in the log.
            Note: This feature is no longer used, the table is always empty."
    ::= { logWire 3 }

wireSensorLogEntry OBJECT-TYPE
    SYNTAX     WireSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "An entry containing log objects for a wire sensor."
    INDEX { pduId, wireId, sensorType, logIndex }
    ::= { wireSensorLogTable 1 }

WireSensorLogEntryStruct ::= SEQUENCE {
        logWireSensorDataAvailable      TruthValue,
        logWireSensorState              SensorStateEnumeration,
        logWireSensorAvgValue           Unsigned32,
        logWireSensorMaxValue           Unsigned32,
        logWireSensorMinValue           Unsigned32
    }

logWireSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { wireSensorLogEntry 2 }

logWireSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { wireSensorLogEntry 3 }

logWireSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The sensor reading average value.
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits. For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the value exceeds 4294967295.
            This object does not apply to sensors without numerical reading."
    ::= { wireSensorLogEntry 4 }

logWireSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The sensor reading maximum value.
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits. For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the value exceeds 4294967295.
            This object does not apply to sensors without numerical reading."
    ::= { wireSensorLogEntry 5 }

logWireSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The sensor reading minimum value.
            The value of this OID variable should be scaled by
            wireSensorDecimalDigits. For example, if the value is 1 and
            wireSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the value exceeds 4294967295.
            This object does not apply to sensors without numerical reading."
    ::= { wireSensorLogEntry 6 }

-- transferSwitchSensorLogTable: transfer switch sensor log data

transferSwitchSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TransferSwitchSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of transfer switch sensor entries in the log."
    ::= { logTransferSwitch 3 }

transferSwitchSensorLogEntry OBJECT-TYPE
    SYNTAX     TransferSwitchSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for a transfer switch sensor."
    INDEX { pduId, transferSwitchId, sensorType, logIndex }
    ::= { transferSwitchSensorLogTable 1 }

TransferSwitchSensorLogEntryStruct ::= SEQUENCE {
        logTransferSwitchSensorDataAvailable    TruthValue,
        logTransferSwitchSensorState            SensorStateEnumeration,
        logTransferSwitchSensorAvgValue         Unsigned32,
        logTransferSwitchSensorMaxValue         Unsigned32,
        logTransferSwitchSensorMinValue         Unsigned32,
        logTransferSwitchSensorSignedAvgValue   Integer32,
        logTransferSwitchSensorSignedMaxValue   Integer32,
        logTransferSwitchSensorSignedMinValue   Integer32
    }

logTransferSwitchSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { transferSwitchSensorLogEntry 2 }

logTransferSwitchSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { transferSwitchSensorLogEntry 3 }

logTransferSwitchSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorLogEntry 4 }

logTransferSwitchSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorLogEntry 5 }

logTransferSwitchSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorLogEntry 6 }

logTransferSwitchSensorSignedAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorLogEntry 7 }

logTransferSwitchSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorLogEntry 8 }

logTransferSwitchSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorLogEntry 9 }

-- circuitSensorLogTable: BCM2/PMC circuit sensor log data

circuitSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of  circuit sensor entries in the log."
    ::= { logCircuit 3 }

circuitSensorLogEntry OBJECT-TYPE
    SYNTAX     CircuitSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for a circuit sensor."
    INDEX { pduId, circuitId, sensorType, logIndex }
    ::= { circuitSensorLogTable 1 }

CircuitSensorLogEntryStruct ::= SEQUENCE {
        logCircuitSensorDataAvailable   TruthValue,
        logCircuitSensorState           SensorStateEnumeration,
        logCircuitSensorAvgValue        Unsigned32,
        logCircuitSensorMaxValue        Unsigned32,
        logCircuitSensorMinValue        Unsigned32,
        logCircuitSensorSignedAvgValue  Integer32,
        logCircuitSensorSignedMaxValue  Integer32,
        logCircuitSensorSignedMinValue  Integer32
    }

logCircuitSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { circuitSensorLogEntry 2 }

logCircuitSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { circuitSensorLogEntry 3 }

logCircuitSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { circuitSensorLogEntry 4 }

logCircuitSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { circuitSensorLogEntry 5 }

logCircuitSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { circuitSensorLogEntry 6 }

logCircuitSensorSignedAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { circuitSensorLogEntry 7 }

logCircuitSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { circuitSensorLogEntry 8 }

logCircuitSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { circuitSensorLogEntry 9 }

-- circuitPoleSensorLogTable: BCM2/PMC circuit pole sensor log data

circuitPoleSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitPoleSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of  circuit pole sensor entries in the log."
    ::= { logCircuit 5 }

circuitPoleSensorLogEntry OBJECT-TYPE
    SYNTAX     CircuitPoleSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for a circuit pole sensor."
    INDEX { pduId, circuitId, circuitPoleId, sensorType, logIndex }
    ::= { circuitPoleSensorLogTable 1 }

CircuitPoleSensorLogEntryStruct ::= SEQUENCE {
        logCircuitPoleSensorDataAvailable   TruthValue,
        logCircuitPoleSensorState           SensorStateEnumeration,
        logCircuitPoleSensorAvgValue        Unsigned32,
        logCircuitPoleSensorMaxValue        Unsigned32,
        logCircuitPoleSensorMinValue        Unsigned32,
        logCircuitPoleSensorSignedAvgValue  Integer32,
        logCircuitPoleSensorSignedMaxValue  Integer32,
        logCircuitPoleSensorSignedMinValue  Integer32
    }

logCircuitPoleSensorDataAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { circuitPoleSensorLogEntry 2 }

logCircuitPoleSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The most critical sensor state during this measurement period."
    ::= { circuitPoleSensorLogEntry 3 }

logCircuitPoleSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorLogEntry 4 }

logCircuitPoleSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorLogEntry 5 }

logCircuitPoleSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This object does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorLogEntry 6 }

logCircuitPoleSensorSignedAvgValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The average sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorLogEntry 7 }

logCircuitPoleSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorLogEntry 8 }

logCircuitPoleSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum sensor reading for the log period as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This object does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorLogEntry 9 }

-- unitSensorMeasurementsTable: unit-level sensor readings

unitSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UnitSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of unit sensor entries."
    ::= { measurementsUnit 3 }

unitSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     UnitSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing measurement objects for an unit sensor."
    INDEX { pduId, sensorType }
    ::= { unitSensorMeasurementsTable 1 }

UnitSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsUnitSensorIsAvailable   TruthValue,
        measurementsUnitSensorState         SensorStateEnumeration,
        measurementsUnitSensorValue         Unsigned32,
        measurementsUnitSensorTimeStamp     Unsigned32,
        measurementsUnitSensorSignedValue   Integer32
    }

measurementsUnitSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { unitSensorMeasurementsEntry 2 }

measurementsUnitSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { unitSensorMeasurementsEntry 3 }

measurementsUnitSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorMeasurementsEntry 4 }

measurementsUnitSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp."
    ::= { unitSensorMeasurementsEntry 5 }

measurementsUnitSensorSignedValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            unitSensorDecimalDigits.  For example, if the value is 1 and
            unitSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { unitSensorMeasurementsEntry 6 }

-- inletSensorMeasurementsTable: inlet sensor readings

inletSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inlet sensor entries."
    ::= { measurementsInlet 3 }

inletSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     InletSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing measurement objects for an inlet sensor."
    INDEX { pduId, inletId, sensorType }
    ::= { inletSensorMeasurementsTable 1 }

InletSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsInletSensorIsAvailable      TruthValue,
        measurementsInletSensorState            SensorStateEnumeration,
        measurementsInletSensorValue            Unsigned32,
        measurementsInletSensorTimeStamp        Unsigned32,
        measurementsInletSensorSignedValue      Integer32
    }

measurementsInletSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { inletSensorMeasurementsEntry 2 }


measurementsInletSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { inletSensorMeasurementsEntry 3 }

measurementsInletSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorMeasurementsEntry 4 }

measurementsInletSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp."
    ::= { inletSensorMeasurementsEntry 5 }

measurementsInletSensorSignedValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletSensorMeasurementsEntry 6 }

-- inletPoleSensorMeasurementsTable: inlet pole sensor readings

inletPoleSensorMeasurementsTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF InletPoleSensorMeasurementsEntryStruct
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
           "A list of inlet pole sensor entries."
    ::= { measurementsInlet 4 }

inletPoleSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX        InletPoleSensorMeasurementsEntryStruct
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
           "An entry containing measurement objects for an inlet pole sensor."
    INDEX { pduId, inletId, inletPoleIndex, sensorType }
    ::= { inletPoleSensorMeasurementsTable 1 }

InletPoleSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsInletPoleSensorIsAvailable      TruthValue,
        measurementsInletPoleSensorState            SensorStateEnumeration,
        measurementsInletPoleSensorValue            Unsigned32,
        measurementsInletPoleSensorTimeStamp        Unsigned32,
        measurementsInletPoleSensorSignedValue      Integer32
    }

measurementsInletPoleSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { inletPoleSensorMeasurementsEntry 2 }

measurementsInletPoleSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { inletPoleSensorMeasurementsEntry 3 }

measurementsInletPoleSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorMeasurementsEntry 4 }

measurementsInletPoleSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp."
    ::= { inletPoleSensorMeasurementsEntry 5 }

measurementsInletPoleSensorSignedValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            inletPoleSensorDecimalDigits.  For example, if the value is 1 and
            inletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { inletPoleSensorMeasurementsEntry 6 }

-- outletSensorMeasurementsTable: outlet sensor readings

outletSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet sensor entries."
    ::= { measurementsOutlet 3 }

outletSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     OutletSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing measurement objects for an outlet sensor."
    INDEX { pduId, outletId, sensorType }
    ::= { outletSensorMeasurementsTable 1 }

OutletSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsOutletSensorIsAvailable     TruthValue,
        measurementsOutletSensorState           SensorStateEnumeration,
        measurementsOutletSensorValue           Unsigned32,
        measurementsOutletSensorTimeStamp       Unsigned32,
        measurementsOutletSensorSignedValue     Integer32
    }

measurementsOutletSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { outletSensorMeasurementsEntry 2 }

measurementsOutletSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { outletSensorMeasurementsEntry 3 }

measurementsOutletSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorMeasurementsEntry 4 }

measurementsOutletSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp."
    ::= { outletSensorMeasurementsEntry 5 }

measurementsOutletSensorSignedValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            outletSensorDecimalDigits.  For example, if the value is 1 and
            outletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletSensorMeasurementsEntry 6 }

-- outletPoleSensorMeasurementsTable: outlet pole sensor readings

outletPoleSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletPoleSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet pole sensor entries."
    ::= { measurementsOutlet 4 }

outletPoleSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     OutletPoleSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing measurement objects for an outlet pole sensor."
    INDEX { pduId, outletId, outletPoleIndex, sensorType }
    ::= { outletPoleSensorMeasurementsTable 1 }

OutletPoleSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsOutletPoleSensorIsAvailable     TruthValue,
        measurementsOutletPoleSensorState           SensorStateEnumeration,
        measurementsOutletPoleSensorValue           Unsigned32,
        measurementsOutletPoleSensorTimeStamp       Unsigned32,
        measurementsOutletPoleSensorSignedValue     Integer32
    }

measurementsOutletPoleSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { outletPoleSensorMeasurementsEntry 2 }

measurementsOutletPoleSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { outletPoleSensorMeasurementsEntry 3 }

measurementsOutletPoleSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorMeasurementsEntry 4 }

measurementsOutletPoleSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp."
    ::= { outletPoleSensorMeasurementsEntry 5 }

measurementsOutletPoleSensorSignedValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            outletPoleSensorDecimalDigits.  For example, if the value is 1 and
            outletPoleSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { outletPoleSensorMeasurementsEntry 6 }

-- overCurrentProtectorSensorMeasurementsTable: overcurrent protector sensor readings

overCurrentProtectorSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OverCurrentProtectorSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of overcurrent protector sensor entries."
    ::= { measurementsOverCurrentProtector 3 }

overCurrentProtectorSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     OverCurrentProtectorSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing measurement objects for an overcurrent protector sensor."
    INDEX { pduId, overCurrentProtectorIndex, sensorType }
    ::= { overCurrentProtectorSensorMeasurementsTable 1 }

OverCurrentProtectorSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsOverCurrentProtectorSensorIsAvailable   TruthValue,
        measurementsOverCurrentProtectorSensorState         SensorStateEnumeration,
        measurementsOverCurrentProtectorSensorValue         Unsigned32,
        measurementsOverCurrentProtectorSensorTimeStamp     Unsigned32,
        measurementsOverCurrentProtectorSensorSignedValue   Integer32
    }

measurementsOverCurrentProtectorSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { overCurrentProtectorSensorMeasurementsEntry 2 }

measurementsOverCurrentProtectorSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { overCurrentProtectorSensorMeasurementsEntry 3 }

measurementsOverCurrentProtectorSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits. For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorMeasurementsEntry 4 }

measurementsOverCurrentProtectorSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp."
    ::= { overCurrentProtectorSensorMeasurementsEntry 5 }

measurementsOverCurrentProtectorSensorSignedValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            overCurrentProtectorSensorDecimalDigits. For example, if the value is 1 and
            overCurrentProtectorSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { overCurrentProtectorSensorMeasurementsEntry 6 }

-- externalSensorMeasurementsTable: external sensor readings

externalSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ExternalSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of external sensor entries. The number of
            entries is given by the value of externalSensorCount
            for the PDU."
    ::= { measurementsExternalSensor 3 }

externalSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     ExternalSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing measurement objects for an external sensor."
    INDEX { pduId, sensorID }
    ::= { externalSensorMeasurementsTable 1 }

ExternalSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsExternalSensorIsAvailable      TruthValue,
        measurementsExternalSensorState           SensorStateEnumeration,
        measurementsExternalSensorValue           Integer32,
        measurementsExternalSensorTimeStamp        Unsigned32
    }

measurementsExternalSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { externalSensorMeasurementsEntry 2 }

measurementsExternalSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { externalSensorMeasurementsEntry 3 }

measurementsExternalSensorValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            externalSensorDecimalDigits.  For example, if the value is 1 and
            externalSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { externalSensorMeasurementsEntry 4 }

measurementsExternalSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading timestamp."
    ::= { externalSensorMeasurementsEntry 5 }

-- wireSensorMeasurementsTable: wire sensor readings

wireSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF WireSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "A list of wire sensor entries.
            Note: This feature is no longer used, the table is always empty."
    ::= { measurementsWire 3 }

wireSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     WireSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
           "An entry containing measurement objects for a wire."
    INDEX { pduId, wireId, sensorType }
    ::= { wireSensorMeasurementsTable 1 }

WireSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsWireSensorIsAvailable   TruthValue,
        measurementsWireSensorState         SensorStateEnumeration,
        measurementsWireSensorValue         Unsigned32,
        measurementsWireSensorTimeStamp     Unsigned32
    }

measurementsWireSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "Is the sensor available?"
    ::= { wireSensorMeasurementsEntry 2 }

measurementsWireSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The sensor state."
    ::= { wireSensorMeasurementsEntry 3 }

measurementsWireSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The sensor value.
             The value of this OID variable should be scaled by
             wireSensorDecimalDigits. For example, if the value is 1 and
             wireSensorDecimalDigits is 2, then actual value is 0.01.
             This value will wrap around if the value exceeds 4294967295
             This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorMeasurementsEntry 4 }

measurementsWireSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
           "The timestamp."
    ::= { wireSensorMeasurementsEntry 5 }

-- transferSwitchSensorMeasurementsTable: transfer switch sensor readings

transferSwitchSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TransferSwitchSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of transfer switch sensor entries."
    ::= { measurementsTransferSwitch 3 }

transferSwitchSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     TransferSwitchSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing measurement objects for a transfer switch sensor."
    INDEX { pduId, transferSwitchId, sensorType }
    ::= { transferSwitchSensorMeasurementsTable 1 }

TransferSwitchSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsTransferSwitchSensorIsAvailable     TruthValue,
        measurementsTransferSwitchSensorState           SensorStateEnumeration,
        measurementsTransferSwitchSensorValue           Unsigned32,
        measurementsTransferSwitchSensorTimeStamp       Unsigned32,
        measurementsTransferSwitchSensorSignedValue     Integer32
    }

measurementsTransferSwitchSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { transferSwitchSensorMeasurementsEntry 2 }

measurementsTransferSwitchSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { transferSwitchSensorMeasurementsEntry 3 }

measurementsTransferSwitchSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorMeasurementsEntry 4 }

measurementsTransferSwitchSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp."
    ::= { transferSwitchSensorMeasurementsEntry 5 }

measurementsTransferSwitchSensorSignedValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            transferSwitchSensorDecimalDigits.  For example, if the value is 1 and
            transferSwitchSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { transferSwitchSensorMeasurementsEntry 6 }

-- circuitSensorMeasurementsTable: BCM2/PMC branch circuit sensor readings

circuitSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of circuit sensor entries."
    ::= { measurementsCircuit 3 }

circuitSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     CircuitSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing measurement objects for a circuit sensor."
    INDEX { pduId, circuitId, sensorType }
    ::= { circuitSensorMeasurementsTable 1 }

CircuitSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsCircuitSensorIsAvailable    TruthValue,
        measurementsCircuitSensorState          SensorStateEnumeration,
        measurementsCircuitSensorValue          Unsigned32,
        measurementsCircuitSensorTimeStamp      Unsigned32,
        measurementsCircuitSensorSignedValue    Integer32
    }

measurementsCircuitSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { circuitSensorMeasurementsEntry 2 }

measurementsCircuitSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { circuitSensorMeasurementsEntry 3 }

measurementsCircuitSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorMeasurementsEntry 4 }

measurementsCircuitSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp."
    ::= { circuitSensorMeasurementsEntry 5 }

measurementsCircuitSensorSignedValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitSensorMeasurementsEntry 6 }

-- circuitPoleSensorMeasurementsTable: BCM2/PMC circuit pole sensor readings

circuitPoleSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitPoleSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of panel circuit pole sensor entries."
    ::= { measurementsCircuit 4 }

circuitPoleSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     CircuitPoleSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing measurement objects for a circuit pole sensor."
    INDEX { pduId, circuitId, circuitPoleId, sensorType }
    ::= { circuitPoleSensorMeasurementsTable 1 }

CircuitPoleSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsCircuitPoleSensorIsAvailable    TruthValue,
        measurementsCircuitPoleSensorState          SensorStateEnumeration,
        measurementsCircuitPoleSensorValue          Unsigned32,
        measurementsCircuitPoleSensorTimeStamp      Unsigned32,
        measurementsCircuitPoleSensorSignedValue    Integer32
    }

measurementsCircuitPoleSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Is the sensor available?"
    ::= { circuitPoleSensorMeasurementsEntry 2 }

measurementsCircuitPoleSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { circuitPoleSensorMeasurementsEntry 3 }

measurementsCircuitPoleSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value will wrap around if the scaled sensor reading exceeds
            4294967295. It is undefined for sensors which can have negative
            readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorMeasurementsEntry 4 }

measurementsCircuitPoleSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp."
    ::= { circuitPoleSensorMeasurementsEntry 5 }

measurementsCircuitPoleSensorSignedValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor reading as a signed integer.
            The value of this OID variable should be scaled by
            inletSensorDecimalDigits.  For example, if the value is 1 and
            inletSensorDecimalDigits is 2, then actual value is 0.01.
            This value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without numerical reading."
    ::= { circuitPoleSensorMeasurementsEntry 6 }

-- outletSwitchControlTable: objects for controlling outlets

outletSwitchControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletSwitchControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlets for a PDU. The number of
            entries is given by the value of outletCount."
    ::= { outletControl  2 }

outletSwitchControlEntry OBJECT-TYPE
    SYNTAX     OutletSwitchControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry for implementing switching operations on an outlet."
    INDEX { pduId, outletId }
    ::= { outletSwitchControlTable 1 }

OutletSwitchControlEntryStruct ::= SEQUENCE {
        switchingOperation              OutletSwitchingOperationsEnumeration,
        outletSwitchingState            SensorStateEnumeration,
        outletSwitchingTimeStamp        Unsigned32
    }

switchingOperation OBJECT-TYPE
    SYNTAX     OutletSwitchingOperationsEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The switching operation: switch on, switch off or power-cycle."
    ::= { outletSwitchControlEntry 2 }

outletSwitchingState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The outlet state at present"
    ::= { outletSwitchControlEntry 3 }

outletSwitchingTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The  timestamp indicating when the outlet was last switched"
    ::= { outletSwitchControlEntry 4 }

-- transferSwitchControlTable: objects for controlling transfer switches

transferSwitchControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TransferSwitchControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of transfer switches for a PDU. The number of
            entries is given by the value of transferSwitchCount."
    ::= { transferSwitchControl 1 }

transferSwitchControlEntry OBJECT-TYPE
    SYNTAX     TransferSwitchControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry for implementing switching operations on a transfer switch."
    INDEX { pduId, transferSwitchId }
    ::= { transferSwitchControlTable 1 }

TransferSwitchControlEntryStruct ::= SEQUENCE {
        transferSwitchActiveInlet           Integer32,
        transferSwitchTransferToInlet       Integer32,
        transferSwitchAlarmOverride         TruthValue,
        transferSwitchLastTransferReason    TransferSwitchTransferReasonEnumeration
    }

transferSwitchActiveInlet OBJECT-TYPE
    SYNTAX     Integer32(1..64)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The index of the currently active inlet."
    ::= { transferSwitchControlEntry 1 }

transferSwitchTransferToInlet OBJECT-TYPE
    SYNTAX     Integer32(1..64)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Select the active inlet. If the new inlet is available, it will become
            both active and preferred, otherwise an inconsistentValue error will
            be returned.
            By default the switching operation will fail if the phase difference
            between the inlets is too large. In this case the switch can be forced
            by writing transferSwitchAlarmOverride as True in the same request.
            This variable will always read as 0."
    ::= { transferSwitchControlEntry 2 }

transferSwitchAlarmOverride OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Force transfer even if the phase difference between the inlets is too
            large.
            This may only be written together with transferSwitchTransferToInlet,
            otherwise an inconsistentValue error will be returned. Always reads as
            false."
    ::= { transferSwitchControlEntry 3 }

transferSwitchLastTransferReason OBJECT-TYPE
    SYNTAX     TransferSwitchTransferReasonEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The reason for the most recent transfer"
    ::= { transferSwitchControlEntry 4 }

-- actuatorControlTable: objects for controlling peripheral actuators

actuatorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ActuatorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of actuators for a PDU. "
    ::= { actuatorControl  2 }

actuatorControlEntry OBJECT-TYPE
    SYNTAX     ActuatorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry for implementing user-initiated state changes for an actuator."
    INDEX { pduId, sensorID }
    ::= { actuatorControlTable 1 }

ActuatorControlEntryStruct ::= SEQUENCE {
        actuatorState   SensorStateEnumeration
    }

actuatorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The actuator state.
            A get operation retrieves the state of the actuator.
            A set operation changes the state of the sensor.
            The valid states for set operations are on(7) and off(8).
            Attempting to set the state to any other value will generate an error."
    ::= { actuatorControlEntry 2 }

-- rcmSelfTestTable: objects for controlling RCM (residual current) sensors

rcmSelfTestTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF RcmSelfTestEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of RCMs."
    ::= { rcmControl  2 }

rcmSelfTestEntry OBJECT-TYPE
    SYNTAX     RcmSelfTestEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry for initiating the self test of an RCM."
    INDEX { pduId, inletId }
    ::= { rcmSelfTestTable 1 }

RcmSelfTestEntryStruct ::= SEQUENCE {
        rcmState    SensorStateEnumeration
    }

rcmState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The rcm state.
            A Get operation retrieves the state of the RCM State Sensor.
            A Set operation changes the state of the sensor.
            The only valid state for set operations is selfTest(29).
            When rcmState is set to selfTest, self test of the RCM starts.
            Attempting to set the state to any other value will generate an error.
            If the current state is selfTest, then an attempt to set the value to selfTest
            will be ignored."
    ::= { rcmSelfTestEntry 2 }

-- inletSensorControlTable: objects for controlling inlet sensors

inletSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the inlet sensors of a PDU. The set
            of valid indices is defined by the value of inletCount and the
            inletDeviceCapabilities entry for the selected inlet."
    ::= { inletSensorControl 1 }

inletSensorControlEntry OBJECT-TYPE
    SYNTAX     InletSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an inlet sensor."
    INDEX { pduId, inletId, sensorType }
    ::= { inletSensorControlTable 1 }

InletSensorControlEntryStruct ::= SEQUENCE {
        inletSensorResetValue Integer32
    }

inletSensorResetValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing to this variable sets a new value for the addressed sensor. Only
            accumulating sensors (e.g. energy counters) can be reset, and currently
            the only supported value is 0. Writing any other value returns an error.
            This variable will always read as 0."
    ::= { inletSensorControlEntry 1 }

-- outletSensorControlTable: objects for controlling outlet sensors

outletSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the outlet sensors of a PDU. The set
            of valid indices is defined by the value of outletCount and the
            outletDeviceCapabilities entry for the selected outlet."
    ::= { outletSensorControl 1 }

outletSensorControlEntry OBJECT-TYPE
    SYNTAX     OutletSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an outlet sensor."
    INDEX { pduId, outletId, sensorType }
    ::= { outletSensorControlTable 1 }

OutletSensorControlEntryStruct ::= SEQUENCE {
        outletSensorResetValue Integer32
    }

outletSensorResetValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing to this variable sets a new value for the addressed sensor. Only
            accumulating sensors (e.g. energy counters) can be reset, and currently
            the only supported value is 0. Writing any other value returns an error.
            This variable will always read as 0."
    ::= { outletSensorControlEntry 1 }

-- unitSensorControlTable: objects for controlling unit sensors

unitSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UnitSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the global sensors of a PDU. The set
            of valid indices is defined by the value of pduCount and the
            pduDeviceCapabilities entry."
    ::= { unitSensorControl 1 }

unitSensorControlEntry OBJECT-TYPE
    SYNTAX     UnitSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an global sensor."
    INDEX { pduId, sensorType }
    ::= { unitSensorControlTable 1 }

UnitSensorControlEntryStruct ::= SEQUENCE {
        unitSensorResetValue Integer32
    }

unitSensorResetValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing to this variable sets a new value for the addressed sensor. Only
            accumulating sensors (e.g. energy counters) can be reset, and currently
            the only supported value is 0. Writing any other value returns an error.
            This variable will always read as 0.
            This object applies only to multi-inlet PDUs."
    ::= { unitSensorControlEntry 1 }

-- circuitSensorControlTable: objects for controlling BCM2/PMC circuit sensors

circuitSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the circuit sensors of a BCM2. The maximum
            number of entries is given by the value of panelCircuitPositionCount."
    ::= { circuitSensorControl 1 }

circuitSensorControlEntry OBJECT-TYPE
    SYNTAX     CircuitSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an circuit sensor."
    INDEX { pduId, circuitId, sensorType }
    ::= { circuitSensorControlTable 1 }

CircuitSensorControlEntryStruct ::= SEQUENCE {
        circuitSensorResetValue Integer32
    }

circuitSensorResetValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing to this variable sets a new value for the addressed sensor. Only
            accumulating sensors (e.g. energy counters) can be reset, and currently
            the only supported value is 0. Writing any other value returns an error.
            This variable will always read as 0."
    ::= { circuitSensorControlEntry 1 }

-- reliabilityData table: PDU reliability data

reliabilityDataTableSequenceNumber OBJECT-TYPE
    SYNTAX     Integer32(1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sequence number for updates to the reliability data table"
    ::= { reliabilityData 1 }

reliabilityDataTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ReliabilityDataEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of PDU reliability data entries."
    ::= { reliabilityData 2 }

reliabilityDataEntry OBJECT-TYPE
    SYNTAX     ReliabilityDataEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing reliability data for a particular PDU."
    INDEX { reliabilityIndex }
    ::= { reliabilityDataTable 1 }

ReliabilityDataEntryStruct ::= SEQUENCE {
        reliabilityIndex                Integer32,
        reliabilityId                   DisplayString,
        reliabilityDataValue            Unsigned32,
        reliabilityDataMaxPossible      Unsigned32,
        reliabilityDataWorstValue       Unsigned32,
        reliabilityDataThreshold        Unsigned32,
        reliabilityDataRawUpperBytes    Unsigned32,
        reliabilityDataRawLowerBytes    Unsigned32,
        reliabilityDataFlags            BITS
    }

reliabilityIndex OBJECT-TYPE
    SYNTAX     Integer32(1..4096)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "Index of the entry in the reliability data table."
    ::= { reliabilityDataEntry 1 }

reliabilityId OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Unique ID of the entry.
            POH
                Power on hours.

            CB.<label>.TRIPCNT
               Trip count of circuit breaker with label <label>.

            CTRL.<serial>.<addr>.MASTER.CSUMERRLASTHOUR
               Number of checksum errors in slave (controller board) to master (CPU
               board) communication in the last hour on controller with serial
               number <serial> and bus address <addr>.

            CTRL.<serial>.<addr>.SLAVE.CSUMERRLASTHOUR
              Number of checksum errors in master (CPU board) to slave (controller
              board) communication in the last hour on controller with serial
              number <serial> and bus address <addr>.

            CTRL.<serial>.<addr>.TOUTLASTHOUR
              Number of communication timeouts to controller with serial
              number <serial> and bus address <addr> in the last hour.

            CTRL.<serial>.<addr>.RLY.<num>.CYCLECNT
              Number of cycles the relay <num> on the controller board with serial
              number <serial> and bus address <addr> has made. A cycle is an
              off->on followed by an on->off event later. The count is increased on
              the off->on transition.

            CTRL.<serial>.<addr>.RLY.<num>.FAILLASTHOUR
              Number of failed switching operations on relay <num> on the controller
              board with serial number <serial> and bus address <addr> in the last
              hour. It depends on the specific controller board hardware  and what
              error conditions are detected."
    ::= { reliabilityDataEntry 2 }

reliabilityDataValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The normalized value"
    ::= { reliabilityDataEntry 3 }

reliabilityDataMaxPossible OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum possible normalized value"
    ::= { reliabilityDataEntry 4 }

reliabilityDataWorstValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The worst normalized value seen so far"
    ::= { reliabilityDataEntry 5 }

reliabilityDataThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The normalized Threshold value "
    ::= { reliabilityDataEntry 6 }

reliabilityDataRawUpperBytes OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The upper 4 bytes of the raw (not normalized) data.
            reliabilityDataRawUpperBytes and reliabilityDataRawLowerBytes
            should be combined and interpreted as a signed 64-bit value"
    ::= { reliabilityDataEntry 7 }

reliabilityDataRawLowerBytes OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The lower 4 bytes of the raw (not normalized) data.
            reliabilityDataRawUpperBytes and reliabilityDataRawLowerBytes
            should be combined and interpreted as a signed 64-bit value"
    ::= { reliabilityDataEntry 8 }

reliabilityDataFlags OBJECT-TYPE
    SYNTAX     BITS { invalidFlag(0),
                      oldValue(1),
                      criticalEntry(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Flags"
    ::= { reliabilityDataEntry 9 }

-- reliabilityErrorLog: log for reliability data errors

reliabilityErrorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ReliabilityErrorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of PDU reliability error log entries."
    ::= { reliabilityErrorLog 2 }

reliabilityErrorLogEntry OBJECT-TYPE
    SYNTAX     ReliabilityErrorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing reliability error log data for a particular PDU."
    INDEX { reliabilityErrorLogIndex }
    ::= { reliabilityErrorLogTable 1 }

ReliabilityErrorLogEntryStruct ::= SEQUENCE {
        reliabilityErrorLogIndex                     Integer32,
        reliabilityErrorLogId                        DisplayString,
        reliabilityErrorLogValue                     Unsigned32,
        reliabilityErrorLogThreshold                 Unsigned32,
        reliabilityErrorLogRawUpperBytes             Unsigned32,
        reliabilityErrorLogRawLowerBytes             Unsigned32,
        reliabilityErrorLogPOH                       Unsigned32,
        reliabilityErrorLogTime                      Unsigned32
    }

reliabilityErrorLogIndex OBJECT-TYPE
    SYNTAX     Integer32(1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "Index of the entry in the reliability error log table."
    ::= { reliabilityErrorLogEntry 1 }

reliabilityErrorLogId OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Unique ID of the entry.
            POH
                Power on hours.

            CB.<label>.TRIPCNT
               Trip count of circuit breaker with label <label>.

            CTRL.<serial>.<addr>.MASTER.CSUMERRLASTHOUR
               Number of checksum errors in slave (controller board) to master (CPU
               board) communication in the last hour on controller with serial
               number <serial> and bus address <addr>.

            CTRL.<serial>.<addr>.SLAVE.CSUMERRLASTHOUR
              Number of checksum errors in master (CPU board) to slave (controller
              board) communication in the last hour on controller with serial
              number <serial> and bus address <addr>.

            CTRL.<serial>.<addr>.TOUTLASTHOUR
              Number of communication timeouts to controller with serial
              number <serial> and bus address <addr> in the last hour.

            CTRL.<serial>.<addr>.RLY.<num>.CYCLECNT
              Number of cycles the relay <num> on the controller board with serial
              number <serial> and bus address <addr> has made. A cycle is an
              off->on followed by an on->off event later. The count is increased on
              the off->on transition.

            CTRL.<serial>.<addr>.RLY.<num>.FAILLASTHOUR
              Number of failed switching operations on relay <num> on the controller
              board with serial number <serial> and bus address <addr> in the last
              hour. It depends on the specific controller board hardware  and what
              error conditions are detected."
    ::= { reliabilityErrorLogEntry 2 }

reliabilityErrorLogValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The normalized value"
    ::= { reliabilityErrorLogEntry 3 }

reliabilityErrorLogThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The normalized threshold value"
    ::= { reliabilityErrorLogEntry 6 }

reliabilityErrorLogRawUpperBytes OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The upper 4 bytes of the raw (not normalized) data.
            reliabilityErrorLogRawUpperBytes and reliabilityErrorLogRawLowerBytes
            should be combined and interpreted as a signed 64-bit value"
    ::= { reliabilityErrorLogEntry 7 }

reliabilityErrorLogRawLowerBytes OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The lower 4 bytes of the raw (not normalized) data.
            reliabilityErrorLogRawUpperBytes and reliabilityErrorLogRawLowerBytes
            should be combined and interpreted as a signed 64-bit value"
    ::= { reliabilityErrorLogEntry 8 }

reliabilityErrorLogPOH OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The time of occurrence of the event measured from the last
            time the PDU was powered on"
    ::= { reliabilityErrorLogEntry 9 }

reliabilityErrorLogTime OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The UTC time of occurrence of the event"
    ::= { reliabilityErrorLogEntry 10 }

-- Definition of SNMP traps that can be sent by the PDU
-- All traps contain the pxInetIPAddressType and  pxInetIPAddress fields.
-- For IPv4, these parameters contain the IP address type and IP address.
-- For IPv6, these parameters are not used.

systemStarted NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The system has started."
    ::= { traps 1 }

systemReset NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The system was rebooted."
    ::= { traps 2 }

userLogin NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user logged in."
    ::= { traps 3 }

userLogout NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user logged out."
    ::= { traps 4 }

userAuthenticationFailure NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user authentication attempt failed."
    ::= { traps 5 }

userSessionTimeout NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user session timed out."
    ::= { traps 8 }

userAdded NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              targetUser,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user account was added to the system."
    ::= { traps 11 }

userModified NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              targetUser,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user account was modified."
    ::= { traps 12 }

userDeleted NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              targetUser,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user account was deleted from the system."
    ::= { traps 13 }

roleAdded NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              roleName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A role was added to the system."
    ::= { traps 14 }

roleModified NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              roleName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A role was modified."
    ::= { traps 15 }

roleDeleted NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              roleName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A role was deleted from the system."
    ::= { traps 16 }

deviceUpdateStarted NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              imageVersion,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The device firmware update has started."
    ::= { traps 20 }

deviceUpdateCompleted NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              imageVersion,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The device firmware update has completed."
    ::= { traps 21 }

userBlocked NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A blocked user tried to log in."
    ::= { traps 22 }

powerControl NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              outletLabel,
              measurementsOutletSensorState,
              switchingOperation,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An outlet switching operation has been performed.
            Note that measurementsOutletSensorState represents the state of the outlet at the time the trap was sent.
            This may be different from the final state of the outlet. For instance,
            if the outlet is cycled and the outlet cycle delay is 20 seconds, this variable will
            indicate OFF although the final state of the outlet will be ON. The final state of the
            outlet will be indicated in the outletSensorStateChange trap for the outlet onOff sensor."
    ::= { traps 23 }

userPasswordChanged NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              targetUser,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "User password was changed."
    ::= { traps 24 }

passwordSettingsChanged NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Strong password settings changed."
    ::= { traps 28 }

firmwareValidationFailed NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Validation of an uploaded firmware image failed."
    ::= { traps 38 }

logFileCleared NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The event log has been cleared."
    ::= { traps 41 }

bulkConfigurationSaved NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A bulk configuration file was downloaded from the device."
    ::= { traps 53 }

bulkConfigurationCopied NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A bulk configuration file was copied to the device."
    ::= { traps 54 }

pduSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              typeOfSensor,
              measurementsUnitSensorTimeStamp,
              measurementsUnitSensorValue,
              measurementsUnitSensorState,
              measurementsUnitSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS deprecated
    DESCRIPTION
           "Unit-level sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsUnitSensorValue is undefined for sensors which can
            have negative readings, measurementsUnitSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 60 }

inletSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              typeOfSensor,
              measurementsInletSensorTimeStamp,
              measurementsInletSensorValue,
              measurementsInletSensorState,
              measurementsInletSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Inlet sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsInletSensorValue is undefined for sensors which can
            have negative readings, measurementsInletSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings.

            For an rcmState sensor transitioning to the fail state, the value is the residual current
            just before the sensor transitioned to the fail state i.e.
            if typeOfSensor = rcmState and measurementsInletSensorState = fail,
            then measurementsInletSensorValue = the residual current just before the sensor transitioned to the fail state"
    ::= { traps 61 }

inletPoleSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              inletPoleNumber,
              typeOfSensor,
              measurementsInletPoleSensorTimeStamp,
              measurementsInletPoleSensorValue,
              measurementsInletPoleSensorState,
              measurementsInletPoleSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Inlet pole sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsInletPoleSensorValue is undefined for sensors which can
            have negative readings, measurementsInletPoleSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 62 }

outletSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              outletLabel,
              typeOfSensor,
              measurementsOutletSensorTimeStamp,
              measurementsOutletSensorValue,
              measurementsOutletSensorState,
              measurementsOutletSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Outlet sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsOutletSensorValue is undefined for sensors which can
            have negative readings, measurementsOutletSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 63 }

outletPoleSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              outletLabel,
              outletPoleNumber,
              typeOfSensor,
              measurementsOutletPoleSensorTimeStamp,
              measurementsOutletPoleSensorValue,
              measurementsOutletPoleSensorState,
              measurementsOutletPoleSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Outlet pole sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsOutletPoleSensorValue is undefined for sensors which can
            have negative readings, measurementsOutletPoleSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 64 }

overCurrentProtectorSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              overCurrentProtectorLabel,
              typeOfSensor,
              measurementsOverCurrentProtectorSensorTimeStamp,
              measurementsOverCurrentProtectorSensorValue,
              measurementsOverCurrentProtectorSensorState,
              measurementsOverCurrentProtectorSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              suspectedTripCauseLabel }
    STATUS current
    DESCRIPTION
           "Overcurrent protector sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsOverCurrentProtectorSensorValue is undefined for sensors which can
            have negative readings, measurementsOverCurrentProtectorSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings.
            For trip sensor state changes, if a particular outlet is determined to be likely
            to have caused the OCP trip, its label is passed in suspectedTripCauseLabel."
    ::= { traps 65 }

externalSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              externalSensorNumber,
              typeOfSensor,
              measurementsExternalSensorTimeStamp,
              measurementsExternalSensorValue,
              measurementsExternalSensorState ,
              oldSensorState,
              externalSensorSerialNumber,
              externalOnOffSensorSubtype,
              externalSensorChannelNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "External sensor state change."
    ::= { traps 66 }

smtpMessageTransmissionFailure NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              smtpMessageRecipients,
              smtpServer,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "SMTP message transmission failure"
    ::= { traps 67 }

ldapError NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              errorDescription,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An LDAP error occurred; errorDescription describes the error"
    ::= { traps 68 }

deviceUpdateFailed NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              imageVersion,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The device firmware update has failed."
    ::= { traps 70 }

loadSheddingModeEntered NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The PDU has entered load shedding mode"
    ::= { traps 71 }

loadSheddingModeExited NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The PDU has exited load shedding mode"
    ::= { traps 72 }

pingServerEnabled NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              serverIPAddress,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The ping feature has been enabled for a server."
    ::= { traps 73 }

pingServerDisabled NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              serverIPAddress,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The ping feature has been disabled for a server."
    ::= { traps 74 }

serverNotReachable NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              serverIPAddress,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A monitored server has become unreachable."
    ::= { traps 75 }

serverReachable NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              serverIPAddress,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A monitored server has become reachable."
    ::= { traps 76 }

rfCodeTagConnected NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS deprecated
    DESCRIPTION
           "An RF-Code tag has been connected."
    ::= { traps 77 }

rfCodeTagDisconnected NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS deprecated
    DESCRIPTION
           "An RF-Code tag has been disconnected."
    ::= { traps 78 }

deviceIdentificationChanged NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              userName,
              deviceChangedParameter,
              changedParameterNewValue,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A device identification parameter has been changed."
    ::= { traps 79 }

usbSlaveConnected NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Connectivity to downstream slave has been established.
            It applies to the following interfaces:
                USB
                Ethernet
            This trap is sent only if deviceCascadeType is portForwarding"
    ::= { traps 80 }

usbSlaveDisconnected NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Connectivity to downstream slave has been lost
            It applies to the following interfaces:
                USB
                Ethernet
            This trap is sent only if deviceCascadeType is portForwarding"
    ::= { traps 81 }

lhxSupportChanged NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              lhxSupportEnabled,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Schroff LHX support has been enabled or disabled."
    ::= { traps 82 }

userAcceptedRestrictedServiceAgreement NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user accepted the Restricted Service Agreement."
    ::= { traps 83 }

userDeclinedRestrictedServiceAgreement NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user declined the Restricted Service Agreement."
    ::= { traps 84 }

wireSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              wireLabel,
              typeOfSensor,
              measurementsWireSensorTimeStamp,
              measurementsWireSensorValue,
              measurementsWireSensorState,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS deprecated
    DESCRIPTION
           "Wire sensor state change."
    ::= { traps 85 }

transferSwitchSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              transferSwitchLabel,
              typeOfSensor,
              measurementsTransferSwitchSensorTimeStamp,
              measurementsTransferSwitchSensorValue,
              measurementsTransferSwitchSensorState,
              measurementsTransferSwitchSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              transferSwitchLastTransferReason,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Transfer switch sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsTransferSwitchSensorValue is undefined for sensors which can
            have negative readings, measurementsTransferSwitchSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 86 }

deviceSettingsSaved NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A configuration backup has been downloaded from the device."
    ::= { traps 88 }

deviceSettingsRestored NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxIPAddress,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A configuration backup has been restored to the device."
    ::= { traps 89 }

webcamInserted NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              webcamModel,
              webcamConnectionPort,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A webcam has been connected."
    ::= { traps 90 }

webcamRemoved NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              webcamModel,
              webcamConnectionPort,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A webcam has been disconnected."
    ::= { traps 91 }

inletEnabled NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "PDU operation has been enabled for an inlet"
    ::= { traps 92 }

inletDisabled NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "PDU operation has been disabled for an inlet"
    ::= { traps 93 }

serverConnectivityUnrecoverable NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              serverIPAddress,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The connection to a monitored server could not be recovered."
    ::= { traps 94 }

radiusError NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              errorDescription,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A Radius error occurred; errorDescription describes the error"
    ::= { traps 95 }

serverReachabilityError NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              serverIPAddress,
              errorDescription,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Server reachability error occurred; errorDescription describes the error.
            This trap is sent when the Error state is entered.
            Reasons for transitioning to the Error state include the following:
                Unable to resolve the server hostname."
    ::= { traps 96 }

inletSensorReset NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              typeOfSensor,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An inlet sensor was reset."
    ::= { traps 97 }

outletSensorReset NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              outletLabel,
              typeOfSensor,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An outlet sensor was reset."
    ::= { traps 98 }

unknownPeripheralDeviceAttached NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              peripheralDeviceRomcode,
              peripheralDevicePackagePosition,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An unsupported peripheral device was attached."
    ::= { traps 99 }

peripheralDeviceFirmwareUpdate NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              peripheralDevicePackageSerialNumber,
              peripheralDeviceFirmwareUpdateState,
              peripheralDevicePackageFirmwareVersion,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The firmware update state of a peripheral device changed while
            performing update to peripheralDevicePackageFirmwareVersion."
    ::= { traps 100 }

unitSensorReset NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              typeOfSensor,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber}
    STATUS current
    DESCRIPTION
           "A unit-level sensor was reset."
    ::= { traps 101 }

unitSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              typeOfSensor,
              measurementsUnitSensorTimeStamp,
              measurementsUnitSensorValue,
              measurementsUnitSensorState,
              measurementsUnitSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Unit-level sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsUnitSensorValue is undefined for sensors which can
            have negative readings, measurementsUnitSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 102 }

circuitSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              circuitNumber,
              typeOfSensor,
              measurementsCircuitSensorTimeStamp,
              measurementsCircuitSensorValue,
              measurementsCircuitSensorState,
              measurementsCircuitSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "BCM2/PMC branch circuit sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsCircuitSensorValue is undefined for sensors which can
            have negative readings, measurementsCircuitSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 103 }

circuitPoleSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              circuitNumber,
              circuitPoleNumber,
              typeOfSensor,
              measurementsCircuitPoleSensorTimeStamp,
              measurementsCircuitPoleSensorValue,
              measurementsCircuitPoleSensorState,
              measurementsCircuitPoleSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "BCM2/PMC circuit pole sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsCircuitPoleSensorValue is undefined for sensors which can
            have negative readings, measurementsCircuitPoleSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 104 }

circuitAdded NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              circuitNumber,
              circuitName,
              circuitType,
              circuitRatedCurrent,
              circuitCTRating,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A new branch circuit has been configured"
    ::= { traps 105 }

circuitDeleted NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              circuitNumber,
              circuitName,
              circuitType,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A configured branch circuit has been deleted"
    ::= { traps 106 }

circuitModified NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              circuitNumber,
              circuitName,
              circuitType,
              circuitRatedCurrent,
              circuitCTRating,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A configured branch circuit has been modified"
    ::= { traps 107 }

circuitSensorReset NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              circuitNumber,
              typeOfSensor,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An BCM2/PMC branch circuit sensor was reset."
    ::= { traps 108 }

powerMeterAdded NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              powerMeterPhaseCTRating,
              powerMeterNeutralCTRating,
              powerMeterEarthCTRating,
              powerMeterPanelPositions,
              powerMeterPanelLayout,
              powerMeterPanelNumbering,
              powerMeterType,
              inletRatedCurrent,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A new power meter or panel has been configured"
    ::= { traps 109 }

powerMeterDeleted NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              powerMeterType,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A configured power meter has been deleted"
    ::= { traps 110 }

powerMeterModified NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              powerMeterPhaseCTRating,
              powerMeterNeutralCTRating,
              powerMeterEarthCTRating,
              powerMeterType,
              inletRatedCurrent,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A configured power meter has been modified"
    ::= { traps 111 }

smsMessageTransmissionFailure NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              phoneNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Sending an SMS message failed."
    ::= { traps 112 }

smartCardInserted NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              smartCardReaderId,
              smartCardTimestamp,
              smartCardType,
              smartCardId,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A smartcard was inserted into a card reader."
    ::= { traps 113 }

smartCardRemoved NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              smartCardReaderId,
              smartCardTimestamp,
              smartCardType,
              smartCardId,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A smartcard was removed from a card reader."
    ::= { traps 114 }

END
