-- DO NOT EDIT - This file is generated from PDU2-MIB.txt.in

--
-- Copyright 2010-2025 Raritan Inc. All rights reserved.
--

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 "202504280000Z"      -- April 28, 2025
    ORGANIZATION "Raritan"
    CONTACT-INFO
           "Raritan Americas, Inc.
              postal:     400 Cottontail Lane
                          Somerset, NJ 08873
              email:      tech@raritan.com
              phone:      +1 732 764 8886
            Server Technology
              postal:     1040 Sandhill Road
                          Reno, NV 89521
              email:      support@servertech.com
              phone:      +1 775 284 2000"

    DESCRIPTION
           "This MIB describes the SNMP functions of the PX2, PX3, PX4, PXC,
            SRC, PXO, and BCM/BCM2 series power distribution units by Raritan,
            the PRO3X and PRO4X series power distribution units by Server
            Technology, and the intelligent power distribution units by
            Legrand."

    REVISION     "202504280000Z"      -- April 28, 2025
    DESCRIPTION
           "Release 4.3.10:
           1) Added to OutletSwitchingOperationsEnumeration:
               unknown(3)"

    REVISION     "202410070000Z"      -- October 7, 2024
    DESCRIPTION
           "Release 4.3.0:
           1) Added energy sensor reset timestamps:
               measurementsUnitSensorResetTimeStamp
               measurementsInletSensorResetTimeStamp
               measurementsOutletSensorResetTimeStamp
               measurementsCircuitSensorResetTimeStamp
               measurementsOutletGroupSensorResetTimeStamp
           2) Added to SensorTypeEnumeration:
               installFaultStatus(80)
               transferSwitchOutputStatus(81)
           3) Added to SensorStateEnumeration:
               bypassActive(36)
           4) Added to transferSwitchCapabilities:
               transferSwitchBypassState(77)
               installFaultStatus(79)
               transferSwitchOutputStatus(80)"

    REVISION     "202311280000Z"      -- November 28, 2023
    DESCRIPTION
           "Release 4.2.0:
            1) Added to SensorTypeEnumeration:
                transferSwitchBypassState(78)
                batteryLevel(79)
            2) Added to SensorStateEnumeration:
                inactive(31)
                i1Selected(32)
                i2Selected(33)
                i1SelectedAndActive(34)
                i2SelectedAndActive(35)
            3) Added to TransferSwitchTransferReasonEnumeration:
                bypassActive(9)
            4) Added to outletConfigurationTable:
                outletServiceMode
            5) Added trap outletServiceModeChanged
           "

    REVISION     "202305260000Z"      -- May 26, 2023
    DESCRIPTION
           "Release 4.1.0:
            1) Added to SensorUnitsEnumeration:
                hour(27)
                minute(28)
                second(29)
                coulomb(30)
                kelvin(31)
                voltAmpReactiveHour(32)
                voltPerAmpere(33)
                voltPerMeter(34)
                gram(35)
                meterPerSquareSec(36)
                litersPerHour(37)
                nit(38)
                candela(39)
                lumen(40)
                lumenSecond(41)
                cubicMeter(42)
                radiant(43)
                steradiant(44)
                newton(45)
                joule(46)
                ohm(47)
                tesla(48)
                henry(49)
                farad(50)
                mol(51)
                becquerel(52)
                gray(53)
                sievert(54)
            2) Added to SensorTypeEnumeration:
                dewPoint(63)
                mass(64)
                flux(65)
                luminousIntensity(66)
                luminousEnergy(67)
                luminousFlux(68)
                luminousEmittance(69)
                electricalResistance(70)
                electricalImpedance(71)
                totalHarmonicDistortion(72)
                magneticFieldStrength(73)
                magneticFluxDensity(74)
                electricFieldStrength(75)
                selection(76)
                rotationalSpeed(77)
            3) Added traps:
                linkUnitAdded
                linkUnitReleased
                linkUnitCommunicationOk
                linkUnitCommunicationFailed
                doorMechanicallyUnlocked
                doorForcedOpen"

    REVISION     "202209210000Z"      -- September 21, 2022
    DESCRIPTION
           "Release 4.0.20:
            1) Changed range of logIndex to 1..20000"

    REVISION     "202206010000Z"      -- June 1, 2022
    DESCRIPTION
           "Release 4.0.10:
            1) unitDeviceCapabilities: Added
                apparentPower(5)
            2) Changed MAX-ACCESS for logSize to read-write
            3) Changed range of logSize to 60..20000
            4) Added trap portFuseStateChange"

    REVISION     "202201050000Z"      -- January 5, 2022
    DESCRIPTION
           "Release 4.0.0:
            1) Added OIDs and tables for inlet line pair metrics:
                inletLinePairCount
                inletLinePairCapabilities
                inletLinePairConfigurationTable
                inletLinePairSensorConfigurationTable
                inletLinePairSensorLogTable
                inletLinePairSensorMeasurementsTable
                inletLinePairSensorControlTable
            2) Added numeric min/max measurements:
                measurementUnitSensor(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsInletSensor(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsInletPoleSensor(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsInletLinePairSensor(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsOutletSensor(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsOutletPoleSensor(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsOverCurrentProtectorSensor(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsExternalSensor(MinMaxValid|(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsTransferSwitch(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsCircuit(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsCircuitPole(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp),
                measurementsOutletGroup(MinMaxValid|(Min|Max)Value|Signed(Min|Max)Value|(Min|Max)TimeStamp|MinMaxResetTimeStamp)
            3) Added for reset control:
                overCurrentProtectorSensorControl,
                transferSwitchSensorControl
            4) Added reset control for numeric min/max measurements:
                unitSensorResetMinMax,
                inletSensorResetMinMax,
                inletPoleSensorResetMinMax,
                inletLinePairSensorResetMinMax,
                outletSensorResetMinMax,
                outletPoleSensorResetMinMax,
                overCurrentProtectorSensorResetMinMax,
                transferSwitchSensorResetMinMax,
                circuitSensorResetMinMax,
                circuitPoleSensorResetMinMax,
                outletGroupSensorResetMinMax
            5) Added to unitConfigurationTable:
                pduOrientation
                pduUptime
                tripCauseOutletHandling
            6) Added to outletSwitchControlTable:
                outletSuspendedState
            7) Added to externalSensorTypeDefaultThresholdsTable:
                externalSensorTypeDefaultUnit
                externalSensorTypeDefaultDecimalDigits
                externalSensorTypeDefaultMaximum
                externalSensorTypeDefaultMinimum
            8) SensorTypeEnumeration: Added
                particleDensity(56)
                voltageThd(57)
                currentThd(58)
                inrushCurrent(59)
                unbalancedVoltage(60)
                unbalancedLineLineCurrent(61)
                unbalancedLineLineVoltage(62)
            9) SensorUnitsEnumeration: Added
                feetpersec(24)
                lbspercubicfoot(25)
                microgrampercubicmeter(26)
            10) LineEnumeration: Added
                lineDcPositive(5)
                lineDcNegative(6)
            11) unitDeviceCapabilities: Added
                apparentEnergy(8)
            12) inletDeviceCapabilities: Added
                voltageThd(56)
                currentThd(57)
                unbalancedVoltage(59)
                unbalancedLineLineCurrent(60)
                unbalancedLineLineVoltage(61)
            13) inletPoleCapabilities: Added
                voltageThd(56)
                currentThd(57)
            14) outletGroupCapabilities: Added
                apparentPower(5)
                apparentEnergy(8)
            15) peripheralDevicePackageId: Changed range to include 0
            16) Added traps:
                inletLinePairSensorStateChange
                tacPlusError
                outletSuspended
                userRenamed
                inletDipEvent
                inletSwellEvent
                inletPoleDipEvent
                inletPoleSwellEvent
            17) Added pduNumber varbind to the following traps:
                rawConfigurationDownloaded
                rawConfigurationUpdated
                hwFailureStatusChanged
            18) Renamed traps:
                usbSlaveConnected -> usbExpansionUnitConnected
                usbSlaveDisconnected -> usbExpansionUnitDisconnected
            19) DaisychainMemberTypeEnumeration: Renamed
                master(1) -> primaryUnit(1)
                slave(2) -> expansionUnit(2)
            20) HwFailureTypeEnumeration: Renamed
                slaveCtrlNotReachable(3) -> subCtrlNotReachable(3)
                slaveCtrlMalfunction(4) -> subCtrlMalfunction(4)
            21) Marked the following as deprecated:
                lhxSupportEnabled
                lhxSupportChanged"

    REVISION     "202108030000Z"      -- August 03, 2021
    DESCRIPTION
           "PX2/PX3 release 3.6.50:
            1) overCurrentProtectorCapabilities: Added
                residualCurrent(25),
                rcmState(26),
                residualDcCurrent(35),
                residualAcCurrent(54)
            2) New table: overCurrentProtectorRcmSelfTestTable"

    REVISION     "202012110000Z"      -- December 11, 2020
    DESCRIPTION
           "PX2/PX3 release 3.6.30:
            1) Added to unitConfigurationTable:
                hasDCInlets
            2) Added to inletConfigurationTable:
                inletIsDC
            3) Added wireless keywords to externalSensorPosition"

    REVISION     "202010220000Z"      -- October 22, 2020
    DESCRIPTION
           "PX2/PX3 release 3.6.20:
            1) SensorTypeEnumeration: Added residualAcCurrent(55)
            2) Added residualAcCurrent(54) to the following bitmasks:
                inletDeviceCapabilities
                inletPoleCapabilities"

    REVISION     "202007060000Z"      -- July 06, 2020
    DESCRIPTION
           "PX2/PX3 release 3.6.10:
            1) Added the following to unitConfigurationTable:
                demandUpdateInterval
                demandAveragingIntervals
            2) SensorTypeEnumeration: Added
                length(52)
                distance(53)
                activePowerDemand(54)
            3) Added crestFactor(50) to the following bitmasks:
                inletDeviceCapabilities
                inletPoleCapabilities
                outletDeviceCapabilities
                outletPoleCapabilities
                circuitCapabilities
                circuitPoleCapabilities
            4) Added activePowerDemand(53) to the following bitmasks:
                inletDeviceCapabilities
                circuitCapabilities
            5) Added traps:
                keypadPinEntered
                doorAccessGranted
                doorAccessDenied
                doorAccessRuleAdded
                doorAccessRuleChanged
                doorAccessRuleDeleted
            6) Added pduNumber varbind to the following traps:
                powerControl
                bulkConfigurationSaved/-Copied
                loadSheddingModeEntered/-Exited
                deviceIdentificationChanged
                deviceSettingsSaved/-Restored
                inletEnabled/-Disabled
                unknownPeripheralDeviceAttached
                peripheralDeviceFirmwareUpdate
            7) Added varbinds to smartCardInserted/-Removed traps:
                smartCardReaderPosition
                smartCardReaderName
                smartCardReaderDescription
            8) Clarified some descriptions"

    REVISION     "201911290000Z"      -- November 29, 2019
    DESCRIPTION
           "PX2/PX3 release 3.6.0:
            1) SensorTypeEnumeration: Added crestFactor(51)
            2) powerMeterPanelPositions: Changed range to include 0
            3) transferSwitchTransferToInlet: Changed range to allow 0 (value when read)
            4) Added traps: testEventTriggered, actuatorSwitched
            5) Added pduNumber to the following traps:
                webcamInserted
                webcamRemoved
                smartCardInserted
                smartCardRemoved
                systemStarted
                systemReset
                deviceUpdateStarted
                deviceUpdateCompleted
                firmwareValidationFailed
                deviceUpdateFailed"

    REVISION     "201905200000Z"      -- May 20, 2019
    DESCRIPTION
           "PX2/PX3 release 3.5.10:

            1) Added trap: webcamStorageUploadStarted
            2) Added trapInformation parameters: webcamName, webcamFolderUrl
            3) Added externalSensorName to externalSensorStateChange trap"

    REVISION     "201810160000Z"      -- October 16, 2018
    DESCRIPTION
           "PX2/PX3 release 3.5.0:
            1) deviceCascadeType access read-only
            2) Added the following to unitConfigurationTable:
                peripheralDevicePackageCount
                outletGroupCount
            3) Added tables:
                hwFailureTable
                outletGroupConfigurationTable
                outletGroupSensorConfigurationTable
                outletGroupSensorLogTable
                outletGroupSensorMeasurementsTable
                outletGroupSwitchControlTable
                outletGroupSensorControlTable
                serverPowerControlTable
            4) Added traps:
                rawConfigurationDownloaded
                rawConfigurationUpdated
                hwFailureStatusChanged
                outletGroupAdded
                outletGroupModified
                outletGroupDeleted
                outletGroupSensorStateChange
                outletGroupSensorReset
                outletGroupPowerControl
                serverPowerControlInitiated
                serverPowerControlCompleted
            5) Changed MAX-ACCESS of trapInformationTable to accessible-for-notify
            6) Marked the following as deprecated:
                inletPlug
                outletReceptacle
            7) Marked the following as obsolete:
                wireCount
                wireConfigurationTable
                wireSensorConfigurationTable
                wireSensorLogTable
                wireSensorMeasurementsTable
                wireSensorStateChange trap
            8) Declare and correct ranges for integer OIDs
            9) Added the following to trapInformationGroup:
                outletGroupNumber
                serverPowerOperation
                serverPowerResult"

    REVISION     "201805070000Z"      -- May 7, 2018
    DESCRIPTION
           "PX2/PX3 release 3.4.20:
            1) unitDeviceCapabilities: Added
                activePower(4)
                activeEnergy(7)
            2) Added the following to trapInformationGroup, smartCardInserted
               and smartCardRemoved:
                smartCardReaderManufacturer
                smartCardReaderProduct
                smartCardReaderSerialNumber
                smartCardReaderChannel"

    REVISION     "201803050000Z"      -- March 5, 2018
    DESCRIPTION
           "PX2/PX3 release 3.4.10:
                - Support for residual DC current sensor

            1) SensorTypeEnumeration: Added
                residualDcCurrent(36)
            2) inletDeviceCapabilities: Added
                displacementPowerFactor(34)
                residualDcCurrent(35)
            3) inletPoleCapabilities: Added
                residualCurrent(25)
                rcmState(26)
                residualDcCurrent(35)
            4) outletDeviceCapabilities: Added
                reactivePower(28)
                displacementPowerFactor(34)
            5) outletPoleCapabilities: Added
                phaseAngle(23)
                reactivePower(28)
                displacementPowerFactor(34)"

    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 }
outletGroups                        OBJECT IDENTIFIER ::= { configuration 12 }

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 }
outletGroupControl                  OBJECT IDENTIFIER ::= { control 10 }
outletGroupSensorControl            OBJECT IDENTIFIER ::= { control 11 }
serverPowerControl                  OBJECT IDENTIFIER ::= { control 12 }
overCurrentProtectorSensorControl   OBJECT IDENTIFIER ::= { control 13 }
transferSwitchSensorControl         OBJECT IDENTIFIER ::= { control 14 }

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 }
measurementsOutletGroup             OBJECT IDENTIFIER ::= { measurements 9 }

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 }
logOutletGroup                      OBJECT IDENTIFIER ::= { log 9 }

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

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 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,
              inletPoleCount,
              inletRatedVoltage,
              inletRatedCurrent,
              inletDeviceCapabilities,
              inletPoleCapabilities,
              inletPlugDescriptor,
              inletEnableState,
              inletIsDC,
              inletLinePairCount,
              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,


              inletLinePairCapabilities,
              inletLinePairLeftLine,
              inletLinePairRightLine,
              inletLinePairLeftNode,
              inletLinePairRightNode,

              inletLinePairSensorLogAvailable,
              inletLinePairSensorUnits,
              inletLinePairSensorDecimalDigits,
              inletLinePairSensorResolution,

              inletLinePairSensorMaximum,
              inletLinePairSensorMinimum,

              inletLinePairSensorHysteresis,
              inletLinePairSensorStateChangeDelay,

              inletLinePairSensorLowerCriticalThreshold,
              inletLinePairSensorLowerWarningThreshold,
              inletLinePairSensorUpperCriticalThreshold,
              inletLinePairSensorUpperWarningThreshold,

              inletLinePairSensorEnabledThresholds,

              inletLinePairSensorSignedMaximum,
              inletLinePairSensorSignedMinimum,


              inletLinePairSensorSignedLowerCriticalThreshold,
              inletLinePairSensorSignedLowerWarningThreshold,
              inletLinePairSensorSignedUpperCriticalThreshold,
              inletLinePairSensorSignedUpperWarningThreshold,


              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,
              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,
              outletServiceMode,
              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,
              externalSensorTypeDefaultUnit,
              externalSensorTypeDefaultDecimalDigits,
              externalSensorTypeDefaultMaximum,
              externalSensorTypeDefaultMinimum,
              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,
              peripheralDevicePackageCount,
              outletGroupCount,
              outletGroupName,
              outletGroupCapabilities,
              outletGroupMembers,

              outletGroupSensorLogAvailable,
              outletGroupSensorUnits,
              outletGroupSensorDecimalDigits,
              outletGroupSensorResolution,

              outletGroupSensorMaximum,
              outletGroupSensorMinimum,

              outletGroupSensorHysteresis,
              outletGroupSensorStateChangeDelay,

              outletGroupSensorLowerCriticalThreshold,
              outletGroupSensorLowerWarningThreshold,
              outletGroupSensorUpperCriticalThreshold,
              outletGroupSensorUpperWarningThreshold,

              outletGroupSensorEnabledThresholds,

              outletGroupSensorSignedMaximum,
              outletGroupSensorSignedMinimum,


              outletGroupSensorSignedLowerCriticalThreshold,
              outletGroupSensorSignedLowerWarningThreshold,
              outletGroupSensorSignedUpperCriticalThreshold,
              outletGroupSensorSignedUpperWarningThreshold,


              demandUpdateInterval,
              demandAveragingIntervals,
              hasDCInlets,
              pduOrientation,
              pduUptime,
              tripCauseOutletHandling }
    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,
              wireSensorAccuracy,
              wireSensorTolerance,
              wireCount,
              wireLabel,
              wireCapabilities,
              wireSensorLogAvailable,
              wireSensorUnits,
              wireSensorDecimalDigits,
              wireSensorResolution,
              wireSensorMaximum,
              wireSensorMinimum,
              wireSensorHysteresis,
              wireSensorStateChangeDelay,
              wireSensorLowerCriticalThreshold,
              wireSensorLowerWarningThreshold,
              wireSensorUpperCriticalThreshold,
              wireSensorUpperWarningThreshold,
              wireSensorEnabledThresholds,
              wirePowerSource,
              logWireSensorDataAvailable,
              logWireSensorState,
              logWireSensorAvgValue,
              logWireSensorMaxValue,
              logWireSensorMinValue,
              measurementsWireSensorIsAvailable,
              measurementsWireSensorState,
              measurementsWireSensorValue,
              measurementsWireSensorTimeStamp }
    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,
              transferSwitchSensorAccuracy,
              transferSwitchSensorTolerance,
              inletRatedFrequency,
              inletRatedVA,
              pxMACAddress,
              networkInterfaceType,
              activeDNSServerAddressSource,
              activeNTPServerAddressSource,
              inletPlug,
              outletReceptacle,
              lhxSupportEnabled }
    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,


              logInletLinePairSensorDataAvailable,
              logInletLinePairSensorState,
              logInletLinePairSensorAvgValue,
              logInletLinePairSensorMaxValue,
              logInletLinePairSensorMinValue,
              logInletLinePairSensorSignedAvgValue,
              logInletLinePairSensorSignedMaxValue,
              logInletLinePairSensorSignedMinValue,


              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,


              logOutletGroupSensorDataAvailable,
              logOutletGroupSensorState,
              logOutletGroupSensorAvgValue,
              logOutletGroupSensorMaxValue,
              logOutletGroupSensorMinValue,
              logOutletGroupSensorSignedAvgValue,
              logOutletGroupSensorSignedMaxValue,
              logOutletGroupSensorSignedMinValue
    }
    STATUS current
    DESCRIPTION
           "A collection of objects providing logging (history of readings) capabilities
            about the PDU."
    ::= { groups 2 }

measurementsGroup OBJECT-GROUP

    OBJECTS {

              measurementsUnitSensorIsAvailable,
              measurementsUnitSensorState,
              measurementsUnitSensorValue,
              measurementsUnitSensorTimeStamp,
              measurementsUnitSensorSignedValue,
              measurementsUnitSensorMinMaxValid,
              measurementsUnitSensorMinValue,
              measurementsUnitSensorSignedMinValue,
              measurementsUnitSensorMinTimeStamp,
              measurementsUnitSensorMaxValue,
              measurementsUnitSensorSignedMaxValue,
              measurementsUnitSensorMaxTimeStamp,
              measurementsUnitSensorMinMaxResetTimeStamp,
              measurementsUnitSensorResetTimeStamp,



              measurementsInletSensorIsAvailable,
              measurementsInletSensorState,
              measurementsInletSensorValue,
              measurementsInletSensorTimeStamp,
              measurementsInletSensorSignedValue,
              measurementsInletSensorMinMaxValid,
              measurementsInletSensorMinValue,
              measurementsInletSensorSignedMinValue,
              measurementsInletSensorMinTimeStamp,
              measurementsInletSensorMaxValue,
              measurementsInletSensorSignedMaxValue,
              measurementsInletSensorMaxTimeStamp,
              measurementsInletSensorMinMaxResetTimeStamp,
              measurementsInletSensorResetTimeStamp,



              measurementsInletPoleSensorIsAvailable,
              measurementsInletPoleSensorState,
              measurementsInletPoleSensorValue,
              measurementsInletPoleSensorTimeStamp,
              measurementsInletPoleSensorSignedValue,
              measurementsInletPoleSensorMinMaxValid,
              measurementsInletPoleSensorMinValue,
              measurementsInletPoleSensorSignedMinValue,
              measurementsInletPoleSensorMinTimeStamp,
              measurementsInletPoleSensorMaxValue,
              measurementsInletPoleSensorSignedMaxValue,
              measurementsInletPoleSensorMaxTimeStamp,
              measurementsInletPoleSensorMinMaxResetTimeStamp,



              measurementsInletLinePairSensorIsAvailable,
              measurementsInletLinePairSensorState,
              measurementsInletLinePairSensorValue,
              measurementsInletLinePairSensorTimeStamp,
              measurementsInletLinePairSensorSignedValue,
              measurementsInletLinePairSensorMinMaxValid,
              measurementsInletLinePairSensorMinValue,
              measurementsInletLinePairSensorSignedMinValue,
              measurementsInletLinePairSensorMinTimeStamp,
              measurementsInletLinePairSensorMaxValue,
              measurementsInletLinePairSensorSignedMaxValue,
              measurementsInletLinePairSensorMaxTimeStamp,
              measurementsInletLinePairSensorMinMaxResetTimeStamp,



              measurementsOutletSensorIsAvailable,
              measurementsOutletSensorState,
              measurementsOutletSensorValue,
              measurementsOutletSensorTimeStamp,
              measurementsOutletSensorSignedValue,
              measurementsOutletSensorMinMaxValid,
              measurementsOutletSensorMinValue,
              measurementsOutletSensorSignedMinValue,
              measurementsOutletSensorMinTimeStamp,
              measurementsOutletSensorMaxValue,
              measurementsOutletSensorSignedMaxValue,
              measurementsOutletSensorMaxTimeStamp,
              measurementsOutletSensorMinMaxResetTimeStamp,
              measurementsOutletSensorResetTimeStamp,



              measurementsOutletPoleSensorIsAvailable,
              measurementsOutletPoleSensorState,
              measurementsOutletPoleSensorValue,
              measurementsOutletPoleSensorTimeStamp,
              measurementsOutletPoleSensorSignedValue,
              measurementsOutletPoleSensorMinMaxValid,
              measurementsOutletPoleSensorMinValue,
              measurementsOutletPoleSensorSignedMinValue,
              measurementsOutletPoleSensorMinTimeStamp,
              measurementsOutletPoleSensorMaxValue,
              measurementsOutletPoleSensorSignedMaxValue,
              measurementsOutletPoleSensorMaxTimeStamp,
              measurementsOutletPoleSensorMinMaxResetTimeStamp,



              measurementsOverCurrentProtectorSensorIsAvailable,
              measurementsOverCurrentProtectorSensorState,
              measurementsOverCurrentProtectorSensorValue,
              measurementsOverCurrentProtectorSensorTimeStamp,
              measurementsOverCurrentProtectorSensorSignedValue,
              measurementsOverCurrentProtectorSensorMinMaxValid,
              measurementsOverCurrentProtectorSensorMinValue,
              measurementsOverCurrentProtectorSensorSignedMinValue,
              measurementsOverCurrentProtectorSensorMinTimeStamp,
              measurementsOverCurrentProtectorSensorMaxValue,
              measurementsOverCurrentProtectorSensorSignedMaxValue,
              measurementsOverCurrentProtectorSensorMaxTimeStamp,
              measurementsOverCurrentProtectorSensorMinMaxResetTimeStamp,



              measurementsExternalSensorIsAvailable,
              measurementsExternalSensorState,
              measurementsExternalSensorValue,
              measurementsExternalSensorTimeStamp,
              measurementsExternalSensorMinMaxValid,
              measurementsExternalSensorMinValue,
              measurementsExternalSensorMinTimeStamp,
              measurementsExternalSensorMaxValue,
              measurementsExternalSensorMaxTimeStamp,
              measurementsExternalSensorMinMaxResetTimeStamp,



              measurementsTransferSwitchSensorIsAvailable,
              measurementsTransferSwitchSensorState,
              measurementsTransferSwitchSensorValue,
              measurementsTransferSwitchSensorTimeStamp,
              measurementsTransferSwitchSensorSignedValue,
              measurementsTransferSwitchSensorMinMaxValid,
              measurementsTransferSwitchSensorMinValue,
              measurementsTransferSwitchSensorSignedMinValue,
              measurementsTransferSwitchSensorMinTimeStamp,
              measurementsTransferSwitchSensorMaxValue,
              measurementsTransferSwitchSensorSignedMaxValue,
              measurementsTransferSwitchSensorMaxTimeStamp,
              measurementsTransferSwitchSensorMinMaxResetTimeStamp,



              measurementsCircuitSensorIsAvailable,
              measurementsCircuitSensorState,
              measurementsCircuitSensorValue,
              measurementsCircuitSensorTimeStamp,
              measurementsCircuitSensorSignedValue,
              measurementsCircuitSensorMinMaxValid,
              measurementsCircuitSensorMinValue,
              measurementsCircuitSensorSignedMinValue,
              measurementsCircuitSensorMinTimeStamp,
              measurementsCircuitSensorMaxValue,
              measurementsCircuitSensorSignedMaxValue,
              measurementsCircuitSensorMaxTimeStamp,
              measurementsCircuitSensorMinMaxResetTimeStamp,
              measurementsCircuitSensorResetTimeStamp,



              measurementsCircuitPoleSensorIsAvailable,
              measurementsCircuitPoleSensorState,
              measurementsCircuitPoleSensorValue,
              measurementsCircuitPoleSensorTimeStamp,
              measurementsCircuitPoleSensorSignedValue,
              measurementsCircuitPoleSensorMinMaxValid,
              measurementsCircuitPoleSensorMinValue,
              measurementsCircuitPoleSensorSignedMinValue,
              measurementsCircuitPoleSensorMinTimeStamp,
              measurementsCircuitPoleSensorMaxValue,
              measurementsCircuitPoleSensorSignedMaxValue,
              measurementsCircuitPoleSensorMaxTimeStamp,
              measurementsCircuitPoleSensorMinMaxResetTimeStamp,



              measurementsOutletGroupSensorIsAvailable,
              measurementsOutletGroupSensorState,
              measurementsOutletGroupSensorValue,
              measurementsOutletGroupSensorTimeStamp,
              measurementsOutletGroupSensorSignedValue,
              measurementsOutletGroupSensorMinMaxValid,
              measurementsOutletGroupSensorMinValue,
              measurementsOutletGroupSensorSignedMinValue,
              measurementsOutletGroupSensorMinTimeStamp,
              measurementsOutletGroupSensorMaxValue,
              measurementsOutletGroupSensorSignedMaxValue,
              measurementsOutletGroupSensorMaxTimeStamp,
              measurementsOutletGroupSensorMinMaxResetTimeStamp,
              measurementsOutletGroupSensorResetTimeStamp

    }
    STATUS current
    DESCRIPTION
           "A collection of objects providing measurements (most recent data) capabilities.
            about the PDU."
    ::= { groups 3 }

controlGroup OBJECT-GROUP
    OBJECTS { switchingOperation,
              outletSwitchingState,
              outletSwitchingTimeStamp,
              outletSuspendedState,
              transferSwitchActiveInlet,
              transferSwitchTransferToInlet,
              transferSwitchAlarmOverride,
              transferSwitchLastTransferReason,
              actuatorState,
              rcmState,
              inletSensorResetValue,
              inletSensorResetMinMax,
              inletPoleSensorResetMinMax,
              inletLinePairSensorResetMinMax,
              outletSensorResetValue,
              outletSensorResetMinMax,
              outletPoleSensorResetMinMax,
              unitSensorResetValue,
              unitSensorResetMinMax,
              overCurrentProtectorSensorResetMinMax,
              externalSensorResetMinMax,
              transferSwitchSensorResetMinMax,
              circuitSensorResetValue,
              circuitSensorResetMinMax,
              circuitPoleSensorResetMinMax,
              outletGroupSwitchingOperation,
              outletGroupSensorResetValue,
              outletGroupSensorResetMinMax,
              serverPowerControlOperation,
              overCurrentProtectorRcmState }
    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,
              newTargetUser,
              imageVersion,
              roleName,
              oldSensorState,
              pduNumber,
              inletPoleNumber,
              outletPoleNumber,
              externalSensorNumber,
              typeOfSensor,
              smtpMessageRecipients,
              smtpServer,
              errorDescription,
              deviceChangedParameter,
              changedParameterNewValue,
              webcamModel,
              webcamConnectionPort,
              agentInetPortNumber,
              peripheralDeviceRomcode,
              peripheralDeviceFirmwareUpdateState,
              circuitNumber,
              circuitPoleNumber,
              phoneNumber,
              smartCardReaderId,
              smartCardTimestamp,
              smartCardType,
              smartCardId,
              suspectedTripCauseLabel,
              smartCardReaderDescription,
              smartCardReaderManufacturer,
              smartCardReaderName,
              smartCardReaderProduct,
              smartCardReaderSerialNumber,
              smartCardReaderChannel,
              smartCardReaderPosition,
              outletGroupNumber,
              serverPowerOperation,
              serverPowerResult,
              webcamName,
              webcamFolderUrl,
              keypadDescription,
              keypadId,
              keypadPinTimestamp,
              keypadPin,
              keypadManufacturer,
              keypadName,
              keypadProduct,
              keypadSerialNumber,
              keypadChannel,
              keypadPosition,
              doorAccessRuleId,
              doorAccessDenialReason,
              doorAccessRuleName,
              inletLinePairNumber,
              dipSwellEventVoltage,
              dipSwellEventTimeStamp,
              dipSwellEventDuration,
              portFuseState,
              externalPortFuseId,
              externalPortName,
              linkUnitId,
              linkUnitAddress,
              doorHandleName,
              doorLockName,
              doorStateName }
    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,
                    userRenamed,
                    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,
                    usbExpansionUnitConnected,
                    usbExpansionUnitDisconnected,
                    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,
                    rawConfigurationDownloaded,
                    rawConfigurationUpdated,
                    hwFailureStatusChanged,
                    outletGroupAdded,
                    outletGroupModified,
                    outletGroupDeleted,
                    outletGroupSensorStateChange,
                    outletGroupSensorReset,
                    outletGroupPowerControl,
                    serverPowerControlInitiated,
                    serverPowerControlCompleted,
                    webcamStorageUploadStarted,
                    testEventTriggered,
                    actuatorSwitched,
                    keypadPinEntered,
                    doorAccessGranted,
                    doorAccessDenied,
                    doorAccessRuleAdded,
                    doorAccessRuleChanged,
                    doorAccessRuleDeleted,
                    inletLinePairSensorStateChange,
                    tacPlusError,
                    outletSuspended,
                    inletDipEvent,
                    inletSwellEvent,
                    inletPoleDipEvent,
                    inletPoleSwellEvent,
                    portFuseStateChange,
                    linkUnitAdded,
                    linkUnitReleased,
                    linkUnitCommunicationOk,
                    linkUnitCommunicationFailed,
                    doorMechanicallyUnlocked,
                    doorForcedOpen,
                    outletServiceModeChanged }
    STATUS current
    DESCRIPTION
           "A collection of traps."
    ::= { groups 9 }

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

obsoleteTrapsGroup NOTIFICATION-GROUP
    NOTIFICATIONS { wireSensorStateChange }
    STATUS obsolete
    DESCRIPTION
           "A collection of objects representing obsolete traps."
    ::= { groups 17 }

reliabilityGroup OBJECT-GROUP
    OBJECTS { reliabilityId,
              reliabilityDataValue,
              reliabilityDataMaxPossible,
              reliabilityDataWorstValue,
              reliabilityDataThreshold,
              reliabilityDataRawUpperBytes,
              reliabilityDataRawLowerBytes,
              reliabilityDataFlags,
              reliabilityErrorLogId,
              reliabilityErrorLogValue,
              reliabilityErrorLogThreshold,
              reliabilityErrorLogRawUpperBytes,
              reliabilityErrorLogRawLowerBytes,
              reliabilityErrorLogPOH,
              reliabilityErrorLogTime,
              reliabilityDataTableSequenceNumber,
              hwFailureComponentId,
              hwFailureType,
              hwFailureAsserted,
              hwFailureLastAssertTimeStamp,
              hwFailureLastDeassertTimeStamp,
              hwFailureAssertCount }
    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),
                     residualDcCurrent(36),
                     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),
                     crestFactor(51),
                     length(52),
                     distance(53),
                     activePowerDemand(54),
                     residualAcCurrent(55),
                     particleDensity(56),
                     voltageThd(57),
                     currentThd(58),
                     inrushCurrent(59),
                     unbalancedVoltage(60),
                     unbalancedLineLineCurrent(61),
                     unbalancedLineLineVoltage(62),
                     dewPoint(63),
                     mass(64),
                     flux(65),
                     luminousIntensity(66),
                     luminousEnergy(67),
                     luminousFlux(68),
                     luminousEmittance(69),
                     electricalResistance(70),
                     electricalImpedance(71),
                     totalHarmonicDistortion(72),
                     magneticFieldStrength(73),
                     magneticFluxDensity(74),
                     electricFieldStrength(75),
                     selection(76),
                     rotationalSpeed(77),
                     transferSwitchBypassState(78),
                     batteryLevel(79),
                     installFaultStatus(80),
                     transferSwitchOutputStatus(81)}

SensorStateEnumeration ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
           "The states a sensor can be in; unavailable means no sensor reading."
    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),
                     inactive(31),
                     i1Selected(32),
                     i2Selected(33),
                     i1SelectedAndActive(34),
                     i2SelectedAndActive(35),
                     bypassActive(36),
                     i1Active(37),
                     i2Active(38),
                     bypassSelectedButInactive(39) }

-- 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
--   rmsVoltageLN               unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   residualCurrent            unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   rcmState                   unavailable,normal,warning,critical,selfTest,fail
--   absoluteHumidity           unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   reactivePower              unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   other                      unavailable
--   none                       unavailable
--   powerQuality               unavailable,normal,warning,critical
--   overloadStatus             unavailable,ok,fault
--   overheatStatus             unavailable,ok,fault
--   displacementPowerFactor    unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   residualDcCurrent          unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   fanStatus                  unavailable,ok,fault
--   inletPhaseSyncAngle        unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   inletPhaseSync             unavailable,inSync,outOfSync
--   operatingState             unavailable,normal,standby,nonRedundant,bypassActive,off
--   activeInlet                unavailable,one,two,off
--   illuminance                unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   doorContact                unavailable,open,closed
--   tamperDetection            unavailable,normal,alarmed
--   motionDetection            unavailable,normal,alarmed
--   i1smpsStatus               unavailable,ok,fault
--   i2smpsStatus               unavailable,ok,fault
--   switchStatus               unavailable,ok,i1OpenFault,i1ShortFault,i2OpenFault,i2ShortFault
--   doorLockState              unavailable,open,closed
--   doorHandleLock             unavailable,open,closed
--   crestFactor                unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   length                     unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   distance                   unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   activePowerDemand          unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   residualAcCurrent          unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   particleDensity            unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   voltageThd                 unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   currentThd                 unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   inrushCurrent              unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   unbalancedVoltage          unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   unbalancedLineLineCurrent  unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   unbalancedLineLineVoltage  unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   dewPoint                   unavailable,belowLowerCritical,belowLowerWarning,normal,aboveUpperWarning,aboveUpperCritical
--   transferSwitchBypassState  unavailable,inactive,i1Active,i2Active,bypassSelectedButInactive,fault
--   installFaultStatus         unavailable, ok, fault
--   transferSwitchOutputStatus unavailable, ok, fault


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),
                     unknown(3) }

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),
                     feetpersec(24),
                     lbspercubicfoot(25),
                     microgrampercubicmeter(26),
                     hour(27),
                     minute(28),
                     second(29),
                     coulomb(30),
                     kelvin(31),
                     voltAmpReactiveHour(32),
                     voltPerAmpere(33),
                     voltPerMeter(34),
                     gram(35),
                     meterPerSquareSec(36),
                     litersPerHour(37),
                     nit(38),
                     candela(39),
                     lumen(40),
                     lumenSecond(41),
                     cubicMeter(42),
                     radiant(43),
                     steradiant(44),
                     newton(45),
                     joule(46),
                     ohm(47),
                     tesla(48),
                     henry(49),
                     farad(50),
                     mol(51),
                     becquerel(52),
                     gray(53),
                     sievert(54) }

DaisychainMemberTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The daisy chain member type."
    SYNTAX INTEGER { standalone(0),
                     primaryUnit(1),
                     expansionUnit(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),
                     bypassActive(9) }

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) }

TripCauseOutletHandlingEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "How to handle outlets that are suspected to have caused an OCP trip event."
    SYNTAX INTEGER { keepUnchanged(0),
                     suspend(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),
                     lineDcPositive(5),
                     lineDcNegative(6) }

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) }

HwFailureTypeEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The hardware failure type."
    SYNTAX INTEGER { networkDeviceNotDetected(1),
                     i2cBusStuck(2),
                     subCtrlNotReachable(3),
                     subCtrlMalfunction(4),
                     outletPowerStateInconsistent(5) }

ServerPowerStateEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The server power control state."
    SYNTAX INTEGER { unknown(0),
                     on(1),
                     off(2),
                     shuttingDown(3) }

ServerPowerControlResultEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The result of a server power control operation."
    SYNTAX INTEGER { noError(0),
                     shutdownCmdFailed(1),
                     switchingOffFailed(2),
                     switchingOnFailed(3),
                     powerCheckTimeout(4) }

PduOrientationEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The detected pdu orientation on device startup."
    SYNTAX INTEGER { none(0),
                     bottomFeed(1),
                     topFeed(2) }

PortFuseStateEnumeration ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
           "The states a port fuse can be in."
    SYNTAX INTEGER { unknown(0),
                     good(1),
                     tripped(2) }

-- Global OIDs

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

            For BCM2 and PMC, pduCount is the number of power meters plus 1 (for the main controller).
            For all other products, pduCount is the number of link units, including the primary unit."
    ::= { 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 BCM2 and PMC, pduId can be:
                - 0 for the main controller
                - The meter ID (rotary switch) for power meter
            For all other products, pduId is the PDU's link ID. If linking
            is not used, pduId is 1."
    ::= { 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,
        peripheralDevicePackageCount             Integer32,
        outletGroupCount                         Integer32,
        demandUpdateInterval                     Unsigned32,
        demandAveragingIntervals                 Unsigned32,
        hasDCInlets                              TruthValue,
        pduOrientation                           PduOrientationEnumeration,
        pduUptime                                Unsigned32,
        tripCauseOutletHandling                  TripCauseOutletHandlingEnumeration
    }

inletCount OBJECT-TYPE
    SYNTAX     Integer32(0..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(0..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{ activePower(4),
                     apparentPower(5),
                     activeEnergy(7),
                     apparentEnergy(8),
                     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(100..10000)
    MAX-ACCESS read-write
    STATUS     deprecated
    DESCRIPTION
           "This OID is deprecated, it is an alias for inrushGuardDelay"
    ::= { unitConfigurationEntry 36 }

globalOutletPowerCyclingPowerOffPeriod OBJECT-TYPE
    SYNTAX     Unsigned32(1..3600)
    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 used when powering the respective inlet;
            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(1..3600)
    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 role of the unit in a port forwarding USB or Ethernet cascade"
    ::= { 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(100..10000)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The time interval between switching on two outlets;
            specified in milliseconds;
            100 <= value <= 10000 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     obsolete
    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-only
    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(0..96)
    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 }

peripheralDevicePackageCount OBJECT-TYPE
    SYNTAX     Integer32(0..256)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of peripheral device packages."
    ::= { unitConfigurationEntry 79 }

outletGroupCount OBJECT-TYPE
    SYNTAX     Integer32(0..128)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of configured outlet groups"
    ::= { unitConfigurationEntry 80 }

demandUpdateInterval OBJECT-TYPE
    SYNTAX     Unsigned32(15..300)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The update interval (in seconds) for demand sensors (BCM2 only).

            Demand sensors report the average active power within the averaging
            period. The sensor reading is updated every 'demandUpdateInterval'
            seconds and averaged over the number of intervals configured in
            'demandAveragingIntervals'. The resulting averaging period is the
            product of the two values."
    ::= { unitConfigurationEntry 81 }

demandAveragingIntervals OBJECT-TYPE
    SYNTAX     Unsigned32(1..60)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The number of intervals for demand sensor averaging (BCM2 only).

            Demand sensors report the average active power within the averaging
            period. The sensor reading is updated every 'demandUpdateInterval'
            seconds and averaged over the number of intervals configured in
            'demandAveragingIntervals'. The resulting averaging period is the
            product of the two values."
    ::= { unitConfigurationEntry 82 }

hasDCInlets OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "True if the PDU has at least one DC inlet"
    ::= { unitConfigurationEntry 83 }

pduOrientation OBJECT-TYPE
    SYNTAX     PduOrientationEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The detected PDU orientation at startup (none if orientation is not
            supported)."
    ::= { unitConfigurationEntry 84 }

pduUptime OBJECT-TYPE
    SYNTAX     Unsigned32(0..4294967295)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of seconds elapsed since the PDU booted. Link units
             are not supported and return 0."
    ::= { unitConfigurationEntry 85 }

tripCauseOutletHandling OBJECT-TYPE
    SYNTAX     TripCauseOutletHandlingEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "How to handle outlets that are suspected to have caused an OCP trip event."
    ::= { unitConfigurationEntry 86 }

-- 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(1..600)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The number of measurements aggregated into a data log entry."
    ::= { logConfigurationEntry 3 }

logSize OBJECT-TYPE
    SYNTAX     Integer32(60..20000)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The capacity (number of entries) of the data log.
            Note: The value may be reduced due to memory limitations depending
            on the number of sensors with data logging enabled."
    ::= { 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
            This OID is supposed to be written only. When reading it, it returns
            the last written value, or false if it was never written since
            device startup."
    ::= { 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,
        newTargetUser               DisplayString
    }

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

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

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

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

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

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

newTargetUser OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The new name of a renamed user."
    ::= { trapInformationEntry 9 }

-- 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 or power meter. This is the same as
            pduId, but for use in traps.

            For BCM2 and PMC, pduNumber can be:
                - 0 for the main controller
                - The meter ID (rotary switch) for power meter
            For all other products, pduNumber is the PDU's link ID. If linking
            is not used, pduNumber is 1."
    ::= { 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     deprecated
    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 expansion unit 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 }

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

smartCardReaderProduct OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The product name of a smartcard reader."
    ::= { trapInformation 30 }

smartCardReaderSerialNumber OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The serial number of a smartcard reader."
    ::= { trapInformation 31 }

smartCardReaderChannel OBJECT-TYPE
    SYNTAX     Integer32(-1..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The channel number of a smartcard reader.
            The channel number is used to differentiate multiple readers
            implemented in the same physical package. It will be -1 for
            single-channel readers."
    ::= { trapInformation 32 }

outletGroupNumber OBJECT-TYPE
    SYNTAX     Integer32(1..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The ID of the outlet group."
    ::= { trapInformation 33 }

serverPowerOperation OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The power control operation that was initiated on the server
            (on/off)"
    ::= { trapInformation 34 }

serverPowerResult OBJECT-TYPE
    SYNTAX     ServerPowerControlResultEnumeration
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The result of the server power control operation."
    ::= { trapInformation 35 }

webcamName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The user-defined name of the webcam"
    ::= { trapInformation 36 }

webcamFolderUrl OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The URL of the folder containing the image"
    ::= { trapInformation 37 }

keypadId OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The ID of a keypad."
    ::= { trapInformation 38 }

keypadPinTimestamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the PIN was entered.
            It is measured in seconds since January 1, 1970 UTC"
    ::= { trapInformation 39 }

keypadPin OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The PIN entered on a keypad."
    ::= { trapInformation 40 }

keypadManufacturer OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The manufacturer of a keypad."
    ::= { trapInformation 41 }

keypadProduct OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The product name of a keypad."
    ::= { trapInformation 42 }

keypadSerialNumber OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The serial number of a keypad."
    ::= { trapInformation 43 }

keypadChannel OBJECT-TYPE
    SYNTAX     Integer32(-1..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The channel number of a keypad.
            The channel number is used to differentiate multiple keypads
            implemented in the same physical package. It will be -1 for
            single-channel keypads."
    ::= { trapInformation 44 }

doorAccessRuleId OBJECT-TYPE
    SYNTAX     Integer32(-1..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The ID of a door access control rule. -1 if undefined."
    ::= { trapInformation 45 }

doorAccessDenialReason OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The reason for door access being denied."
    ::= { trapInformation 46 }

doorAccessRuleName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The name of a door access rule. Empty if undefined."
    ::= { trapInformation 47 }

smartCardReaderPosition OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The position of a smartcard reader.
            Contains either the position in the 1-wire topology and the
            channel (e.g. D1:H1:C1-1) or, for usb card readers, a string like
            usb:<n> where n is a number increasing with usb card readers."
    ::= { trapInformation 48 }

keypadPosition OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The position of a keypad.
            A string representing the position of the keypad in the 1-wire
            topology and the channel (e.g. D1:H1:C1-1)"
    ::= { trapInformation 49 }

keypadDescription OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The custom description of a keypad."
    ::= { trapInformation 50 }

keypadName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The custom name of a keypad."
    ::= { trapInformation 51 }

smartCardReaderDescription OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The custom description of a smartcard reader."
    ::= { trapInformation 52 }

smartCardReaderName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The custom name of a smartcard reader."
    ::= { trapInformation 53 }

inletLinePairNumber OBJECT-TYPE
    SYNTAX     Integer32(1..3)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "A unique value for each inlet line pair. Its value ranges between 1
            and the value of inletLinePairCount."
    ::= { trapInformation 54 }

dipSwellEventVoltage OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The minimum (dip) / maximum (swell) voltage seen during a dip/swell event.
            This value should be scaled by the number of decimal digits of the respective
            voltage sensor, found in the inletSensorDecimalDigits or
            inletPoleSensorDecimalDigits, respectively."
     ::= { trapInformation 55 }

dipSwellEventTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the dip/swell event occurred.
            It is measured in seconds since January 1, 1970 UTC"
    ::= { trapInformation 56 }

dipSwellEventDuration OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The dip/swell event duration, measured in milliseconds."
    ::= { trapInformation 57 }

portFuseState OBJECT-TYPE
    SYNTAX     PortFuseStateEnumeration
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The new fuse state used in fuse state transition traps."
    ::= { trapInformation 58 }

externalPortFuseId OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The ID of the fuse that triggered a state transition."
    ::= { trapInformation 59 }

externalPortName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The human-readable name of an external port."
    ::= { trapInformation 60 }

linkUnitId OBJECT-TYPE
    SYNTAX     Integer32(2..256)
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The pduId value of the link unit."
    ::= { trapInformation 61 }

linkUnitAddress OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The host name, IP address or bus address of the link unit."
    ::= { trapInformation 62 }

doorHandleName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The name of a door handle sensor."
    ::= { trapInformation 63 }

doorLockName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The name of a door lock sensor."
    ::= { trapInformation 64 }

doorStateName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS accessible-for-notify
    STATUS     current
    DESCRIPTION
           "The name of a door state sensor."
    ::= { trapInformation 65 }




-- unitSensorConfigurationTable: information and settings for unit sensors

unitSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF UnitSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of unit sensor configuration entries.
           "
    ::= { unit 5 }

unitSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     UnitSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing unit sensor configuration objects."
    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 this 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.
            This parameter does not apply to sensors without numerical reading."
    ::= { 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(0..300)
    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,
        inletIsDC                           TruthValue,
        inletLinePairCount                  Integer32,
        inletLinePairCapabilities           BITS
    }

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     deprecated
    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),
                      displacementPowerFactor(34),
                      residualDcCurrent(35),
                      crestFactor(50),
                      activePowerDemand(53),
                      residualAcCurrent(54),
                      voltageThd(56),
                      currentThd(57),
                      unbalancedVoltage(59),
                      unbalancedLineLineCurrent(60),
                      unbalancedLineLineVoltage(61) }
    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),
                      residualCurrent(25),
                      rcmState(26),
                      reactivePower(28),
                      displacementPowerFactor(34),
                      residualDcCurrent(35),
                      crestFactor(50),
                      residualAcCurrent(54),
                      voltageThd(56),
                      currentThd(57) }
    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 }

inletIsDC OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Inlet current type: true for DC, false for AC"
    ::= { inletConfigurationEntry 15 }

inletLinePairCount OBJECT-TYPE
    SYNTAX     Integer32(0..3)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of inlet line pairs."
    ::= { inletConfigurationEntry 16 }

inletLinePairCapabilities OBJECT-TYPE
    SYNTAX     BITS { rmsCurrent(0),
                      peakCurrent(1),
                      rmsVoltage(3),
                      activePower(4),
                      apparentPower(5),
                      powerFactor(6),
                      activeEnergy(7),
                      apparentEnergy(8),
                      phaseAngle(23),
                      reactivePower(28),
                      displacementPowerFactor(34),
                      crestFactor(50),
                      voltageThd(56),
                      currentThd(57) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which inlet line pair sensors are available."
    ::= { inletConfigurationEntry 17 }

-- 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 inlet sensor configuration entries.
           "
    ::= { inlets 4 }

inletSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     InletSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing inlet sensor configuration objects."
    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 this 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(0..300)
    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 inlet pole sensor configuration entries.
           "
    ::= { inlets 6 }

inletPoleSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     InletPoleSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing inlet pole sensor configuration objects."
    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 this 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(0..300)
    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 }




-- inletLinePairConfigurationTable: inlet line pair information

inletLinePairConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletLinePairConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inlet line pair configuration entries. The number of
            entries is given by the value of inletLinePairCount for the inlet."
    ::= { inlets 7 }

inletLinePairConfigurationEntry OBJECT-TYPE
    SYNTAX     InletLinePairConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing parameters for a particular inlet line pair."
    INDEX { pduId, inletId, inletLinePairIndex }
    ::= { inletLinePairConfigurationTable 1 }

InletLinePairConfigurationEntryStruct ::= SEQUENCE {
        inletLinePairIndex      Integer32,
        inletLinePairLeftLine   LineEnumeration,
        inletLinePairRightLine  LineEnumeration,
        inletLinePairLeftNode   Integer32,
        inletLinePairRightNode  Integer32
    }

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

inletLinePairLeftLine OBJECT-TYPE
    SYNTAX     LineEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The phase for the line pair's left power line."
    ::= { inletLinePairConfigurationEntry 2 }

inletLinePairRightLine OBJECT-TYPE
    SYNTAX     LineEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The phase for the line pair's right power line."
    ::= { inletLinePairConfigurationEntry 3 }

inletLinePairLeftNode OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The node number of the line pair's left power line"
    ::= { inletLinePairConfigurationEntry 4 }

inletLinePairRightNode OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The node number of the line pair's right power line"
    ::= { inletLinePairConfigurationEntry 5 }



-- inletLinePairSensorConfigurationTable: information and settings for inlet line pair sensors

inletLinePairSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletLinePairSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inlet line pair sensor configuration entries.
           "
    ::= { inlets 8 }

inletLinePairSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     InletLinePairSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing inlet line pair sensor configuration objects."
    INDEX { pduId, inletId, inletLinePairIndex, sensorType }
    ::= { inletLinePairSensorConfigurationTable 1 }

InletLinePairSensorConfigurationEntryStruct ::= SEQUENCE {
        inletLinePairSensorLogAvailable                 TruthValue,
        inletLinePairSensorUnits                        SensorUnitsEnumeration,
        inletLinePairSensorDecimalDigits                Unsigned32,
        inletLinePairSensorResolution                   Unsigned32,

        inletLinePairSensorMaximum                      Unsigned32,
        inletLinePairSensorMinimum                      Unsigned32,

        inletLinePairSensorHysteresis                   Unsigned32,
        inletLinePairSensorStateChangeDelay             Unsigned32,

        inletLinePairSensorLowerCriticalThreshold       Unsigned32,
        inletLinePairSensorLowerWarningThreshold        Unsigned32,
        inletLinePairSensorUpperCriticalThreshold       Unsigned32,
        inletLinePairSensorUpperWarningThreshold        Unsigned32,

        inletLinePairSensorEnabledThresholds            BITS,

        inletLinePairSensorSignedMaximum                Integer32,
        inletLinePairSensorSignedMinimum                Integer32,


        inletLinePairSensorSignedLowerCriticalThreshold Integer32,
        inletLinePairSensorSignedLowerWarningThreshold  Integer32,
        inletLinePairSensorSignedUpperCriticalThreshold Integer32,
        inletLinePairSensorSignedUpperWarningThreshold  Integer32

    }



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

inletLinePairSensorUnits 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."
    ::= { inletLinePairSensorConfigurationEntry 6 }

inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 7 }


inletLinePairSensorResolution 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletLinePairSensorConfigurationEntry 9 }





inletLinePairSensorMaximum 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 11 }

inletLinePairSensorMinimum 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 12 }


inletLinePairSensorHysteresis 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { inletLinePairSensorConfigurationEntry 13 }

inletLinePairSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32(0..300)
    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."
    ::= { inletLinePairSensorConfigurationEntry 14 }




inletLinePairSensorLowerCriticalThreshold 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 21 }

inletLinePairSensorLowerWarningThreshold 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 22 }

inletLinePairSensorUpperCriticalThreshold 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 23 }

inletLinePairSensorUpperWarningThreshold 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 24 }


inletLinePairSensorEnabledThresholds 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."
    ::= { inletLinePairSensorConfigurationEntry 25 }


inletLinePairSensorSignedMaximum 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 26 }

inletLinePairSensorSignedMinimum 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 27 }



inletLinePairSensorSignedLowerCriticalThreshold 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 28 }

inletLinePairSensorSignedLowerWarningThreshold 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 29 }

inletLinePairSensorSignedUpperCriticalThreshold 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 30 }

inletLinePairSensorSignedUpperWarningThreshold 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorConfigurationEntry 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),
                      residualCurrent(25),
                      rcmState(26),
                      residualDcCurrent(35),
                      residualAcCurrent(54) }
    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 over current protector sensors

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

overCurrentProtectorSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     OverCurrentProtectorSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing over current protector sensor configuration objects."
    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(0..300)
    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,
        outletServiceMode                           TruthValue
    }

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     deprecated
    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),
                      reactivePower(28),
                      displacementPowerFactor(34),
                      crestFactor(50),
                      voltageThd(56),
                      currentThd(57),
                      inrushCurrent(58) }
    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),
                      phaseAngle(23),
                      rmsVoltageLN(24),
                      reactivePower(28),
                      displacementPowerFactor(34),
                      crestFactor(50),
                      voltageThd(56),
                      currentThd(57) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which outlet pole sensors are available."
    ::= { outletConfigurationEntry 11 }

outletPowerCyclingPowerOffPeriod OBJECT-TYPE
    SYNTAX     Unsigned32(1..3600)
    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 when powering the respective inlet.
            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(0..3600)
    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}

outletServiceMode OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Whether the outlet is currently in service mode"
    ::= { outletConfigurationEntry 34 }

-- 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 outlet sensor configuration objects."
    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(0..300)
    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 outlet pole sensor configuration objects."
    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 this 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(0..300)
    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(0..300)
    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, REMOTE-HUB,
                WIRELESS-BRIDGE, WIRELESS-DEVICE

            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
            6) Zigbee wireless sensor
                  WIRELESS-BRIDGE:1;WIRELESS-DEVICE:00540100"
    ::= { 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(0..300)
    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,
        externalSensorTypeDefaultUnit                       SensorUnitsEnumeration,
        externalSensorTypeDefaultDecimalDigits              Unsigned32,
        externalSensorTypeDefaultMaximum                    Integer32,
        externalSensorTypeDefaultMinimum                    Integer32
    }

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
            externalSensorTypeDefaultDecimalDigits.  For example, if the value is 1 and
            externalSensorTypeDefaultDecimalDigits is 2, then actual value is 0.01."
    ::= { externalSensorTypeDefaultThresholdsEntry 3 }

externalSensorTypeDefaultStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32(0..300)
    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
            externalSensorTypeDefaultDecimalDigits.  For example, if the value is 1 and
            externalSensorTypeDefaultDecimalDigits 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
            externalSensorTypeDefaultDecimalDigits.  For example, if the value is 1 and
            externalSensorTypeDefaultDecimalDigits 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
            externalSensorTypeDefaultDecimalDigits.  For example, if the value is 1 and
            externalSensorTypeDefaultDecimalDigits 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
            externalSensorTypeDefaultDecimalDigits.  For example, if the value is 1 and
            externalSensorTypeDefaultDecimalDigits 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}

externalSensorTypeDefaultUnit OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The unit in which the default threshold parameters are specified."
    ::= { externalSensorTypeDefaultThresholdsEntry 10 }

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

externalSensorTypeDefaultMaximum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The largest possible threshold value for this sensor type.
            The value of this OID variable should be scaled by
            externalSensorTypeDefaultDecimalDigits.  For example, if the value
            is 1 and externalSensorTypeDefaultDecimalDigits is 2, then the
            actual value is 0.01."
    ::= { externalSensorTypeDefaultThresholdsEntry 12 }

externalSensorTypeDefaultMinimum OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The smallest possible threshold value for this sensor type.
            The value of this OID variable should be scaled by
            externalSensorTypeDefaultDecimalDigits.  For example, if the value
            is 1 and externalSensorTypeDefaultDecimalDigits is 2, then the
            actual value is 0.01."
    ::= { externalSensorTypeDefaultThresholdsEntry 13 }

-- 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     obsolete
    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     obsolete
    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     obsolete
    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     obsolete
    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     obsolete
    DESCRIPTION
           "A bit string indicating which wire sensors are available."
    ::= { wireConfigurationEntry 3 }

wirePowerSource OBJECT-TYPE
    SYNTAX     RowPointer
    MAX-ACCESS read-only
    STATUS     obsolete
    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     obsolete
    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     obsolete
    DESCRIPTION
           "An entry containing wire sensor configuration objects."
    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     obsolete
    DESCRIPTION
           "Is data logging enabled for this sensor?"
    ::= { wireSensorConfigurationEntry 4 }

wireSensorUnits OBJECT-TYPE
    SYNTAX     SensorUnitsEnumeration
    MAX-ACCESS read-only
    STATUS     obsolete
    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     obsolete
    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     obsolete
    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     obsolete
    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     obsolete
    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     obsolete
    DESCRIPTION
           "The largest possible reading as an unsigned integer.
            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.
            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."
    ::= { wireSensorConfigurationEntry 11 }

wireSensorMinimum OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     obsolete
    DESCRIPTION
           "The smallest possible reading as an unsigned integer.
            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.
            The value is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without numerical reading."
    ::= { wireSensorConfigurationEntry 12 }


wireSensorHysteresis OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     obsolete
    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(0..300)
    MAX-ACCESS read-write
    STATUS     obsolete
    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     obsolete
    DESCRIPTION
           "The lower critical threshold as an unsigned integer.
            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.
            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."
    ::= { wireSensorConfigurationEntry 21 }

wireSensorLowerWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     obsolete
    DESCRIPTION
           "The lower warning threshold as an unsigned integer.
            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.
            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."
    ::= { wireSensorConfigurationEntry 22 }

wireSensorUpperCriticalThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     obsolete
    DESCRIPTION
           "The upper critical threshold as an unsigned integer.
            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.
            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."
    ::= { wireSensorConfigurationEntry 23 }

wireSensorUpperWarningThreshold OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-write
    STATUS     obsolete
    DESCRIPTION
           "The upper warning threshold as an unsigned integer.
            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.
            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."
    ::= { wireSensorConfigurationEntry 24 }


wireSensorEnabledThresholds OBJECT-TYPE
    SYNTAX     BITS { lowerCritical(0),
                      lowerWarning(1),
                      upperWarning(2),
                      upperCritical(3) }
    MAX-ACCESS read-write
    STATUS     obsolete
    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(1..180)
    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),
                      transferSwitchBypassState(77),
                      installFaultStatus(79),
                      transferSwitchOutputStatus(80) }
    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 transfer switch sensor configuration objects."
    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: the maximum relative difference (in percent) between
            measurement and 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(0..300)
    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(0..256)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of circuit positions in the panel, or 0 for power meters.
            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."
    ::= { 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),
                      crestFactor(50),
                      activePowerDemand(53) }
    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),
                      crestFactor(50) }
    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 circuit sensors

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

circuitSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     CircuitSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing circuit sensor configuration objects."
    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 this 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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(0..300)
    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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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 circuit pole sensors

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

circuitPoleSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     CircuitPoleSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing circuit pole sensor configuration objects."
    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 this 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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(0..300)
    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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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 }




-- outletGroupConfigurationTable: Outlet group information

outletGroupConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletGroupConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet group configuration entries."
    ::= { outletGroups 2 }

outletGroupConfigurationEntry OBJECT-TYPE
    SYNTAX     OutletGroupConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing configuration objects for outlet groups."
    INDEX { outletGroupId }
    ::= { outletGroupConfigurationTable 1 }

OutletGroupConfigurationEntryStruct ::= SEQUENCE {
        outletGroupId               Integer32,
        outletGroupName             DisplayString,
        outletGroupCapabilities     BITS,
        outletGroupMembers          DisplayString
    }

outletGroupId OBJECT-TYPE
    SYNTAX     Integer32(1..128)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A unique value for each outlet group."
    ::= { outletGroupConfigurationEntry 1 }

outletGroupName OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The user-defined name."
    ::= { outletGroupConfigurationEntry 2 }

outletGroupCapabilities OBJECT-TYPE
    SYNTAX     BITS { activePower(4),
                      apparentPower(5),
                      activeEnergy(7),
                      apparentEnergy(8) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "A bit string indicating which sensors are available for the outlet group."
    ::= { outletGroupConfigurationEntry 3 }

outletGroupMembers OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The list of member outlets of this group.
            String must consist of a comma separated sequence of the outlet identifiers in
            the format PDUID-OUTLETID.
            Example: 1-1,1-5,2-2."
    ::= { outletGroupConfigurationEntry 4 }



-- outletGroupSensorConfigurationTable: information and settings for outlet group sensors

outletGroupSensorConfigurationTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletGroupSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet group sensor configuration entries.
           "
    ::= { outletGroups 3 }

outletGroupSensorConfigurationEntry OBJECT-TYPE
    SYNTAX     OutletGroupSensorConfigurationEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing outlet group sensor configuration objects."
    INDEX { outletGroupId, sensorType }
    ::= { outletGroupSensorConfigurationTable 1 }

OutletGroupSensorConfigurationEntryStruct ::= SEQUENCE {
        outletGroupSensorLogAvailable                   TruthValue,
        outletGroupSensorUnits                          SensorUnitsEnumeration,
        outletGroupSensorDecimalDigits                  Unsigned32,
        outletGroupSensorResolution                     Unsigned32,

        outletGroupSensorMaximum                        Unsigned32,
        outletGroupSensorMinimum                        Unsigned32,

        outletGroupSensorHysteresis                     Unsigned32,
        outletGroupSensorStateChangeDelay               Unsigned32,

        outletGroupSensorLowerCriticalThreshold         Unsigned32,
        outletGroupSensorLowerWarningThreshold          Unsigned32,
        outletGroupSensorUpperCriticalThreshold         Unsigned32,
        outletGroupSensorUpperWarningThreshold          Unsigned32,

        outletGroupSensorEnabledThresholds              BITS,

        outletGroupSensorSignedMaximum                  Integer32,
        outletGroupSensorSignedMinimum                  Integer32,


        outletGroupSensorSignedLowerCriticalThreshold   Integer32,
        outletGroupSensorSignedLowerWarningThreshold    Integer32,
        outletGroupSensorSignedUpperCriticalThreshold   Integer32,
        outletGroupSensorSignedUpperWarningThreshold    Integer32

    }



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

outletGroupSensorUnits 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."
    ::= { outletGroupSensorConfigurationEntry 6 }

outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 7 }


outletGroupSensorResolution 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletGroupSensorConfigurationEntry 9 }





outletGroupSensorMaximum 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 11 }

outletGroupSensorMinimum 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 12 }


outletGroupSensorHysteresis 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits is 2, then actual value is 0.01.
            This parameter does not apply to sensors without numerical reading."
    ::= { outletGroupSensorConfigurationEntry 13 }

outletGroupSensorStateChangeDelay OBJECT-TYPE
    SYNTAX     Unsigned32(0..300)
    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."
    ::= { outletGroupSensorConfigurationEntry 14 }




outletGroupSensorLowerCriticalThreshold 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 21 }

outletGroupSensorLowerWarningThreshold 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 22 }

outletGroupSensorUpperCriticalThreshold 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 23 }

outletGroupSensorUpperWarningThreshold 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 24 }


outletGroupSensorEnabledThresholds 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."
    ::= { outletGroupSensorConfigurationEntry 25 }


outletGroupSensorSignedMaximum 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 26 }

outletGroupSensorSignedMinimum 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 27 }



outletGroupSensorSignedLowerCriticalThreshold 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 28 }

outletGroupSensorSignedLowerWarningThreshold 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 29 }

outletGroupSensorSignedUpperCriticalThreshold 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 30 }

outletGroupSensorSignedUpperWarningThreshold 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorConfigurationEntry 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(0..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, REMOTE-HUB

            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..20000)
    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 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 a 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 inlet pole 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 a 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 }


-- inletLinePairSensorLogTable: inlet line pair sensor log data

inletLinePairSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletLinePairSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inlet line pair sensor entries in the log.
           "
    ::= { logInlet 5 }

inletLinePairSensorLogEntry OBJECT-TYPE
    SYNTAX     InletLinePairSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for a inlet line pair sensor."
    INDEX { pduId, inletId, inletLinePairIndex, sensorType, logIndex }
    ::= { inletLinePairSensorLogTable 1 }

InletLinePairSensorLogEntryStruct ::= SEQUENCE {
        logInletLinePairSensorDataAvailable     TruthValue,
        logInletLinePairSensorState             SensorStateEnumeration,
        logInletLinePairSensorAvgValue          Unsigned32,
        logInletLinePairSensorMaxValue          Unsigned32,
        logInletLinePairSensorMinValue          Unsigned32,
        logInletLinePairSensorSignedAvgValue    Integer32,
        logInletLinePairSensorSignedMaxValue    Integer32,
        logInletLinePairSensorSignedMinValue    Integer32
    }

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

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

logInletLinePairSensorAvgValue 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorLogEntry 4 }

logInletLinePairSensorMaxValue 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorLogEntry 5 }

logInletLinePairSensorMinValue 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorLogEntry 6 }

logInletLinePairSensorSignedAvgValue 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorLogEntry 7 }

logInletLinePairSensorSignedMaxValue 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorLogEntry 8 }

logInletLinePairSensorSignedMinValue 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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."
    ::= { inletLinePairSensorLogEntry 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 a 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 a 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: over current protector sensor log data

overCurrentProtectorSensorLogTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OverCurrentProtectorSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of over current 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 a over current 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 a 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 average sensor reading for the log period 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 value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            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 maximum sensor reading for the log period 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 value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            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 minimum sensor reading for the log period 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 value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            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     obsolete
    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     obsolete
    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     obsolete
    DESCRIPTION
           "Is data available for this sensor during this measurement period?"
    ::= { wireSensorLogEntry 2 }

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

logWireSensorAvgValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     obsolete
    DESCRIPTION
           "The average sensor reading for the log period as an unsigned integer.
            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 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."
    ::= { wireSensorLogEntry 4 }

logWireSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     obsolete
    DESCRIPTION
           "The maximum sensor reading for the log period as an unsigned integer.
            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 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."
    ::= { wireSensorLogEntry 5 }

logWireSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     obsolete
    DESCRIPTION
           "The minimum sensor reading for the log period as an unsigned integer.
            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 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."
    ::= { 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: 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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: 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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 }


-- outletGroupSensorLogTable: outlet group sensor log data

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

outletGroupSensorLogEntry OBJECT-TYPE
    SYNTAX     OutletGroupSensorLogEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing log objects for a outlet group sensor."
    INDEX { outletGroupId, sensorType, logIndex }
    ::= { outletGroupSensorLogTable 1 }

OutletGroupSensorLogEntryStruct ::= SEQUENCE {
        logOutletGroupSensorDataAvailable   TruthValue,
        logOutletGroupSensorState           SensorStateEnumeration,
        logOutletGroupSensorAvgValue        Unsigned32,
        logOutletGroupSensorMaxValue        Unsigned32,
        logOutletGroupSensorMinValue        Unsigned32,
        logOutletGroupSensorSignedAvgValue  Integer32,
        logOutletGroupSensorSignedMaxValue  Integer32,
        logOutletGroupSensorSignedMinValue  Integer32
    }

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

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

logOutletGroupSensorAvgValue 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorLogEntry 4 }

logOutletGroupSensorMaxValue 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorLogEntry 5 }

logOutletGroupSensorMinValue 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorLogEntry 6 }

logOutletGroupSensorSignedAvgValue 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorLogEntry 7 }

logOutletGroupSensorSignedMaxValue 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorLogEntry 8 }

logOutletGroupSensorSignedMinValue 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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."
    ::= { outletGroupSensorLogEntry 9 }




-- unitSensorMeasurementsTable: unit 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 unit sensor measurement objects."

    INDEX { pduId, sensorType }
    ::= { unitSensorMeasurementsTable 1 }

UnitSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsUnitSensorIsAvailable   TruthValue,
        measurementsUnitSensorState         SensorStateEnumeration,
        measurementsUnitSensorValue         Unsigned32,
        measurementsUnitSensorTimeStamp     Unsigned32,
        measurementsUnitSensorSignedValue   Integer32,
        measurementsUnitSensorMinMaxValid   TruthValue,
        measurementsUnitSensorMinValue      Unsigned32,
        measurementsUnitSensorSignedMinValue Integer32,
        measurementsUnitSensorMinTimeStamp  Unsigned32,
        measurementsUnitSensorMaxValue      Unsigned32,
        measurementsUnitSensorSignedMaxValue Integer32,
        measurementsUnitSensorMaxTimeStamp  Unsigned32,
        measurementsUnitSensorMinMaxResetTimeStamp Unsigned32,
        measurementsUnitSensorResetTimeStamp Unsigned32
    }

measurementsUnitSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { unitSensorMeasurementsEntry 4 }


measurementsUnitSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { unitSensorMeasurementsEntry 6 }

measurementsUnitSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsUnitSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { unitSensorMeasurementsEntry 7 }


measurementsUnitSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { unitSensorMeasurementsEntry 8 }


measurementsUnitSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { unitSensorMeasurementsEntry 9 }


measurementsUnitSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementUnitSensor[Signed]MinValue"
    ::= { unitSensorMeasurementsEntry 10 }



measurementsUnitSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { unitSensorMeasurementsEntry 11 }


measurementsUnitSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { unitSensorMeasurementsEntry 12 }


measurementsUnitSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementUnitSensor[Signed]MaxValue"
    ::= { unitSensorMeasurementsEntry 13 }



measurementsUnitSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsUnitSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsUnitSensorMinMaxValid. The measurementsUnitSensorMinMaxResetTimeStamp is
            always valid, even if measurementsUnitSensorMinMaxValid is false."
    ::= { unitSensorMeasurementsEntry 14 }


measurementsUnitSensorResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the sensor value was last reset. If the
            sensor never was reset this will read 0. Only for accumulating sensors."
    ::= { unitSensorMeasurementsEntry 15 }



-- 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 inlet sensor measurement objects."

    INDEX { pduId, inletId, sensorType }
    ::= { inletSensorMeasurementsTable 1 }

InletSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsInletSensorIsAvailable      TruthValue,
        measurementsInletSensorState            SensorStateEnumeration,
        measurementsInletSensorValue            Unsigned32,
        measurementsInletSensorTimeStamp        Unsigned32,
        measurementsInletSensorSignedValue      Integer32,
        measurementsInletSensorMinMaxValid      TruthValue,
        measurementsInletSensorMinValue         Unsigned32,
        measurementsInletSensorSignedMinValue   Integer32,
        measurementsInletSensorMinTimeStamp     Unsigned32,
        measurementsInletSensorMaxValue         Unsigned32,
        measurementsInletSensorSignedMaxValue   Integer32,
        measurementsInletSensorMaxTimeStamp     Unsigned32,
        measurementsInletSensorMinMaxResetTimeStamp Unsigned32,
        measurementsInletSensorResetTimeStamp   Unsigned32
    }

measurementsInletSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletSensorMeasurementsEntry 4 }


measurementsInletSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletSensorMeasurementsEntry 6 }

measurementsInletSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsInletSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { inletSensorMeasurementsEntry 7 }


measurementsInletSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletSensorMeasurementsEntry 8 }


measurementsInletSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletSensorMeasurementsEntry 9 }


measurementsInletSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementInletSensor[Signed]MinValue"
    ::= { inletSensorMeasurementsEntry 10 }



measurementsInletSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletSensorMeasurementsEntry 11 }


measurementsInletSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletSensorMeasurementsEntry 12 }


measurementsInletSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementInletSensor[Signed]MaxValue"
    ::= { inletSensorMeasurementsEntry 13 }



measurementsInletSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsInletSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsInletSensorMinMaxValid. The measurementsInletSensorMinMaxResetTimeStamp is
            always valid, even if measurementsInletSensorMinMaxValid is false."
    ::= { inletSensorMeasurementsEntry 14 }


measurementsInletSensorResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the sensor value was last reset. If the
            sensor never was reset this will read 0. Only for accumulating sensors."
    ::= { inletSensorMeasurementsEntry 15 }



-- 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 inlet pole sensor measurement objects."

    INDEX { pduId, inletId, inletPoleIndex, sensorType }
    ::= { inletPoleSensorMeasurementsTable 1 }

InletPoleSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsInletPoleSensorIsAvailable      TruthValue,
        measurementsInletPoleSensorState            SensorStateEnumeration,
        measurementsInletPoleSensorValue            Unsigned32,
        measurementsInletPoleSensorTimeStamp        Unsigned32,
        measurementsInletPoleSensorSignedValue      Integer32,
        measurementsInletPoleSensorMinMaxValid      TruthValue,
        measurementsInletPoleSensorMinValue         Unsigned32,
        measurementsInletPoleSensorSignedMinValue   Integer32,
        measurementsInletPoleSensorMinTimeStamp     Unsigned32,
        measurementsInletPoleSensorMaxValue         Unsigned32,
        measurementsInletPoleSensorSignedMaxValue   Integer32,
        measurementsInletPoleSensorMaxTimeStamp     Unsigned32,
        measurementsInletPoleSensorMinMaxResetTimeStamp Unsigned32
    }

measurementsInletPoleSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletPoleSensorMeasurementsEntry 4 }


measurementsInletPoleSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletPoleSensorMeasurementsEntry 6 }

measurementsInletPoleSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsInletPoleSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { inletPoleSensorMeasurementsEntry 7 }


measurementsInletPoleSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletPoleSensorMeasurementsEntry 8 }


measurementsInletPoleSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletPoleSensorMeasurementsEntry 9 }


measurementsInletPoleSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementInletPoleSensor[Signed]MinValue"
    ::= { inletPoleSensorMeasurementsEntry 10 }



measurementsInletPoleSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletPoleSensorMeasurementsEntry 11 }


measurementsInletPoleSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletPoleSensorMeasurementsEntry 12 }


measurementsInletPoleSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementInletPoleSensor[Signed]MaxValue"
    ::= { inletPoleSensorMeasurementsEntry 13 }



measurementsInletPoleSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsInletPoleSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsInletPoleSensorMinMaxValid. The measurementsInletPoleSensorMinMaxResetTimeStamp is
            always valid, even if measurementsInletPoleSensorMinMaxValid is false."
    ::= { inletPoleSensorMeasurementsEntry 14 }


-- inletLinePairSensorMeasurementsTable: inlet line pair sensor readings

inletLinePairSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletLinePairSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inlet line pair sensor entries.
           "
    ::= { measurementsInlet 5 }

inletLinePairSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     InletLinePairSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing inlet line pair sensor measurement objects."

    INDEX { pduId, inletId, inletLinePairIndex, sensorType }
    ::= { inletLinePairSensorMeasurementsTable 1 }

InletLinePairSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsInletLinePairSensorIsAvailable      TruthValue,
        measurementsInletLinePairSensorState            SensorStateEnumeration,
        measurementsInletLinePairSensorValue            Unsigned32,
        measurementsInletLinePairSensorTimeStamp        Unsigned32,
        measurementsInletLinePairSensorSignedValue      Integer32,
        measurementsInletLinePairSensorMinMaxValid      TruthValue,
        measurementsInletLinePairSensorMinValue         Unsigned32,
        measurementsInletLinePairSensorSignedMinValue   Integer32,
        measurementsInletLinePairSensorMinTimeStamp     Unsigned32,
        measurementsInletLinePairSensorMaxValue         Unsigned32,
        measurementsInletLinePairSensorSignedMaxValue   Integer32,
        measurementsInletLinePairSensorMaxTimeStamp     Unsigned32,
        measurementsInletLinePairSensorMinMaxResetTimeStamp Unsigned32
    }

measurementsInletLinePairSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { inletLinePairSensorMeasurementsEntry 2 }


measurementsInletLinePairSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { inletLinePairSensorMeasurementsEntry 3 }






measurementsInletLinePairSensorValue 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletLinePairSensorMeasurementsEntry 4 }


measurementsInletLinePairSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { inletLinePairSensorMeasurementsEntry 5 }


measurementsInletLinePairSensorSignedValue 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
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletLinePairSensorMeasurementsEntry 6 }

measurementsInletLinePairSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsInletLinePairSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { inletLinePairSensorMeasurementsEntry 7 }


measurementsInletLinePairSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset as an unsigned integer
            The value of this OID variable should be scaled by
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletLinePairSensorMeasurementsEntry 8 }


measurementsInletLinePairSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset as a signed integer
            The value of this OID variable should be scaled by
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletLinePairSensorMeasurementsEntry 9 }


measurementsInletLinePairSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementInletLinePairSensor[Signed]MinValue"
    ::= { inletLinePairSensorMeasurementsEntry 10 }



measurementsInletLinePairSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset as an unsigned integer
            The value of this OID variable should be scaled by
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletLinePairSensorMeasurementsEntry 11 }


measurementsInletLinePairSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset as a signed integer
            The value of this OID variable should be scaled by
            inletLinePairSensorDecimalDigits. For example, if the value is 1 and
            inletLinePairSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { inletLinePairSensorMeasurementsEntry 12 }


measurementsInletLinePairSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementInletLinePairSensor[Signed]MaxValue"
    ::= { inletLinePairSensorMeasurementsEntry 13 }



measurementsInletLinePairSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsInletLinePairSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsInletLinePairSensorMinMaxValid. The measurementsInletLinePairSensorMinMaxResetTimeStamp is
            always valid, even if measurementsInletLinePairSensorMinMaxValid is false."
    ::= { inletLinePairSensorMeasurementsEntry 14 }


-- 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 outlet sensor measurement objects."

    INDEX { pduId, outletId, sensorType }
    ::= { outletSensorMeasurementsTable 1 }

OutletSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsOutletSensorIsAvailable     TruthValue,
        measurementsOutletSensorState           SensorStateEnumeration,
        measurementsOutletSensorValue           Unsigned32,
        measurementsOutletSensorTimeStamp       Unsigned32,
        measurementsOutletSensorSignedValue     Integer32,
        measurementsOutletSensorMinMaxValid     TruthValue,
        measurementsOutletSensorMinValue        Unsigned32,
        measurementsOutletSensorSignedMinValue  Integer32,
        measurementsOutletSensorMinTimeStamp    Unsigned32,
        measurementsOutletSensorMaxValue        Unsigned32,
        measurementsOutletSensorSignedMaxValue  Integer32,
        measurementsOutletSensorMaxTimeStamp    Unsigned32,
        measurementsOutletSensorMinMaxResetTimeStamp Unsigned32,
        measurementsOutletSensorResetTimeStamp  Unsigned32
    }

measurementsOutletSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletSensorMeasurementsEntry 4 }


measurementsOutletSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletSensorMeasurementsEntry 6 }

measurementsOutletSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsOutletSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { outletSensorMeasurementsEntry 7 }


measurementsOutletSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletSensorMeasurementsEntry 8 }


measurementsOutletSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletSensorMeasurementsEntry 9 }


measurementsOutletSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementOutletSensor[Signed]MinValue"
    ::= { outletSensorMeasurementsEntry 10 }



measurementsOutletSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletSensorMeasurementsEntry 11 }


measurementsOutletSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletSensorMeasurementsEntry 12 }


measurementsOutletSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementOutletSensor[Signed]MaxValue"
    ::= { outletSensorMeasurementsEntry 13 }



measurementsOutletSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsOutletSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsOutletSensorMinMaxValid. The measurementsOutletSensorMinMaxResetTimeStamp is
            always valid, even if measurementsOutletSensorMinMaxValid is false."
    ::= { outletSensorMeasurementsEntry 14 }


measurementsOutletSensorResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the sensor value was last reset. If the
            sensor never was reset this will read 0. Only for accumulating sensors."
    ::= { outletSensorMeasurementsEntry 15 }



-- 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 outlet pole sensor measurement objects."

    INDEX { pduId, outletId, outletPoleIndex, sensorType }
    ::= { outletPoleSensorMeasurementsTable 1 }

OutletPoleSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsOutletPoleSensorIsAvailable     TruthValue,
        measurementsOutletPoleSensorState           SensorStateEnumeration,
        measurementsOutletPoleSensorValue           Unsigned32,
        measurementsOutletPoleSensorTimeStamp       Unsigned32,
        measurementsOutletPoleSensorSignedValue     Integer32,
        measurementsOutletPoleSensorMinMaxValid     TruthValue,
        measurementsOutletPoleSensorMinValue        Unsigned32,
        measurementsOutletPoleSensorSignedMinValue  Integer32,
        measurementsOutletPoleSensorMinTimeStamp    Unsigned32,
        measurementsOutletPoleSensorMaxValue        Unsigned32,
        measurementsOutletPoleSensorSignedMaxValue  Integer32,
        measurementsOutletPoleSensorMaxTimeStamp    Unsigned32,
        measurementsOutletPoleSensorMinMaxResetTimeStamp Unsigned32
    }

measurementsOutletPoleSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletPoleSensorMeasurementsEntry 4 }


measurementsOutletPoleSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletPoleSensorMeasurementsEntry 6 }

measurementsOutletPoleSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsOutletPoleSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { outletPoleSensorMeasurementsEntry 7 }


measurementsOutletPoleSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletPoleSensorMeasurementsEntry 8 }


measurementsOutletPoleSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletPoleSensorMeasurementsEntry 9 }


measurementsOutletPoleSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementOutletPoleSensor[Signed]MinValue"
    ::= { outletPoleSensorMeasurementsEntry 10 }



measurementsOutletPoleSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletPoleSensorMeasurementsEntry 11 }


measurementsOutletPoleSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletPoleSensorMeasurementsEntry 12 }


measurementsOutletPoleSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementOutletPoleSensor[Signed]MaxValue"
    ::= { outletPoleSensorMeasurementsEntry 13 }



measurementsOutletPoleSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsOutletPoleSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsOutletPoleSensorMinMaxValid. The measurementsOutletPoleSensorMinMaxResetTimeStamp is
            always valid, even if measurementsOutletPoleSensorMinMaxValid is false."
    ::= { outletPoleSensorMeasurementsEntry 14 }


-- overCurrentProtectorSensorMeasurementsTable: over current protector sensor readings

overCurrentProtectorSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OverCurrentProtectorSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of over current protector sensor entries.
           "
    ::= { measurementsOverCurrentProtector 3 }

overCurrentProtectorSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     OverCurrentProtectorSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing over current protector sensor measurement objects."

    INDEX { pduId, overCurrentProtectorIndex, sensorType }
    ::= { overCurrentProtectorSensorMeasurementsTable 1 }

OverCurrentProtectorSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsOverCurrentProtectorSensorIsAvailable   TruthValue,
        measurementsOverCurrentProtectorSensorState         SensorStateEnumeration,
        measurementsOverCurrentProtectorSensorValue         Unsigned32,
        measurementsOverCurrentProtectorSensorTimeStamp     Unsigned32,
        measurementsOverCurrentProtectorSensorSignedValue   Integer32,
        measurementsOverCurrentProtectorSensorMinMaxValid   TruthValue,
        measurementsOverCurrentProtectorSensorMinValue      Unsigned32,
        measurementsOverCurrentProtectorSensorSignedMinValue Integer32,
        measurementsOverCurrentProtectorSensorMinTimeStamp  Unsigned32,
        measurementsOverCurrentProtectorSensorMaxValue      Unsigned32,
        measurementsOverCurrentProtectorSensorSignedMaxValue Integer32,
        measurementsOverCurrentProtectorSensorMaxTimeStamp  Unsigned32,
        measurementsOverCurrentProtectorSensorMinMaxResetTimeStamp Unsigned32
    }

measurementsOverCurrentProtectorSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { overCurrentProtectorSensorMeasurementsEntry 4 }


measurementsOverCurrentProtectorSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { overCurrentProtectorSensorMeasurementsEntry 6 }

measurementsOverCurrentProtectorSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsOverCurrentProtectorSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { overCurrentProtectorSensorMeasurementsEntry 7 }


measurementsOverCurrentProtectorSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { overCurrentProtectorSensorMeasurementsEntry 8 }


measurementsOverCurrentProtectorSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { overCurrentProtectorSensorMeasurementsEntry 9 }


measurementsOverCurrentProtectorSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementOverCurrentProtectorSensor[Signed]MinValue"
    ::= { overCurrentProtectorSensorMeasurementsEntry 10 }



measurementsOverCurrentProtectorSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { overCurrentProtectorSensorMeasurementsEntry 11 }


measurementsOverCurrentProtectorSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { overCurrentProtectorSensorMeasurementsEntry 12 }


measurementsOverCurrentProtectorSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementOverCurrentProtectorSensor[Signed]MaxValue"
    ::= { overCurrentProtectorSensorMeasurementsEntry 13 }



measurementsOverCurrentProtectorSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsOverCurrentProtectorSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsOverCurrentProtectorSensorMinMaxValid. The measurementsOverCurrentProtectorSensorMinMaxResetTimeStamp is
            always valid, even if measurementsOverCurrentProtectorSensorMinMaxValid is false."
    ::= { overCurrentProtectorSensorMeasurementsEntry 14 }


-- 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 external sensor measurement objects."

    INDEX { pduId, sensorID }
    ::= { externalSensorMeasurementsTable 1 }

ExternalSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsExternalSensorIsAvailable     TruthValue,
        measurementsExternalSensorState           SensorStateEnumeration,
        measurementsExternalSensorValue           Integer32,
        measurementsExternalSensorTimeStamp       Unsigned32,
        measurementsExternalSensorMinMaxValid     TruthValue,
        measurementsExternalSensorMinValue        Integer32,
        measurementsExternalSensorMinTimeStamp    Unsigned32,
        measurementsExternalSensorMaxValue        Integer32,
        measurementsExternalSensorMaxTimeStamp    Unsigned32,
        measurementsExternalSensorMinMaxResetTimeStamp Unsigned32
    }

measurementsExternalSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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 value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { externalSensorMeasurementsEntry 4 }


measurementsExternalSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { externalSensorMeasurementsEntry 5 }

measurementsExternalSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsExternalSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { externalSensorMeasurementsEntry 7 }


measurementsExternalSensorMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { externalSensorMeasurementsEntry 8 }


measurementsExternalSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementExternalSensor[Signed]MinValue"
    ::= { externalSensorMeasurementsEntry 10 }



measurementsExternalSensorMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 value is undefined for sensors whose range exceeds the
            Integer32 range (-2147483648 .. 2147483647).
            This parameter does not apply to sensors without a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { externalSensorMeasurementsEntry 11 }


measurementsExternalSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementExternalSensor[Signed]MaxValue"
    ::= { externalSensorMeasurementsEntry 13 }



measurementsExternalSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsExternalSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsExternalSensorMinMaxValid. The measurementsExternalSensorMinMaxResetTimeStamp is
            always valid, even if measurementsExternalSensorMinMaxValid is false."
    ::= { externalSensorMeasurementsEntry 14 }


-- wireSensorMeasurementsTable: wire sensor readings

wireSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF WireSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     obsolete
    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     obsolete
    DESCRIPTION
           "An entry containing wire sensor measurement objects."

    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     obsolete
    DESCRIPTION
           "The sensor is present."
    ::= { wireSensorMeasurementsEntry 2 }


measurementsWireSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     obsolete
    DESCRIPTION
           "The sensor state."
    ::= { wireSensorMeasurementsEntry 3 }






measurementsWireSensorValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     obsolete
    DESCRIPTION
           "The sensor reading as an unsigned integer.
            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 scaled sensor reading exceeds 4294967295.
            It is undefined for sensors which can have negative readings.
            This parameter does not apply to sensors without a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { wireSensorMeasurementsEntry 4 }


measurementsWireSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     obsolete
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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 transfer switch sensor measurement objects."

    INDEX { pduId, transferSwitchId, sensorType }
    ::= { transferSwitchSensorMeasurementsTable 1 }

TransferSwitchSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsTransferSwitchSensorIsAvailable     TruthValue,
        measurementsTransferSwitchSensorState           SensorStateEnumeration,
        measurementsTransferSwitchSensorValue           Unsigned32,
        measurementsTransferSwitchSensorTimeStamp       Unsigned32,
        measurementsTransferSwitchSensorSignedValue     Integer32,
        measurementsTransferSwitchSensorMinMaxValid     TruthValue,
        measurementsTransferSwitchSensorMinValue        Unsigned32,
        measurementsTransferSwitchSensorSignedMinValue  Integer32,
        measurementsTransferSwitchSensorMinTimeStamp    Unsigned32,
        measurementsTransferSwitchSensorMaxValue        Unsigned32,
        measurementsTransferSwitchSensorSignedMaxValue  Integer32,
        measurementsTransferSwitchSensorMaxTimeStamp    Unsigned32,
        measurementsTransferSwitchSensorMinMaxResetTimeStamp Unsigned32
    }

measurementsTransferSwitchSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { transferSwitchSensorMeasurementsEntry 4 }


measurementsTransferSwitchSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { transferSwitchSensorMeasurementsEntry 6 }

measurementsTransferSwitchSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsTransferSwitchSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { transferSwitchSensorMeasurementsEntry 7 }


measurementsTransferSwitchSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { transferSwitchSensorMeasurementsEntry 8 }


measurementsTransferSwitchSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { transferSwitchSensorMeasurementsEntry 9 }


measurementsTransferSwitchSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementTransferSwitchSensor[Signed]MinValue"
    ::= { transferSwitchSensorMeasurementsEntry 10 }



measurementsTransferSwitchSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { transferSwitchSensorMeasurementsEntry 11 }


measurementsTransferSwitchSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { transferSwitchSensorMeasurementsEntry 12 }


measurementsTransferSwitchSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementTransferSwitchSensor[Signed]MaxValue"
    ::= { transferSwitchSensorMeasurementsEntry 13 }



measurementsTransferSwitchSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsTransferSwitchSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsTransferSwitchSensorMinMaxValid. The measurementsTransferSwitchSensorMinMaxResetTimeStamp is
            always valid, even if measurementsTransferSwitchSensorMinMaxValid is false."
    ::= { transferSwitchSensorMeasurementsEntry 14 }


-- circuitSensorMeasurementsTable: 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 circuit sensor measurement objects."

    INDEX { pduId, circuitId, sensorType }
    ::= { circuitSensorMeasurementsTable 1 }

CircuitSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsCircuitSensorIsAvailable    TruthValue,
        measurementsCircuitSensorState          SensorStateEnumeration,
        measurementsCircuitSensorValue          Unsigned32,
        measurementsCircuitSensorTimeStamp      Unsigned32,
        measurementsCircuitSensorSignedValue    Integer32,
        measurementsCircuitSensorMinMaxValid    TruthValue,
        measurementsCircuitSensorMinValue       Unsigned32,
        measurementsCircuitSensorSignedMinValue Integer32,
        measurementsCircuitSensorMinTimeStamp   Unsigned32,
        measurementsCircuitSensorMaxValue       Unsigned32,
        measurementsCircuitSensorSignedMaxValue Integer32,
        measurementsCircuitSensorMaxTimeStamp   Unsigned32,
        measurementsCircuitSensorMinMaxResetTimeStamp Unsigned32,
        measurementsCircuitSensorResetTimeStamp Unsigned32
    }

measurementsCircuitSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitSensorMeasurementsEntry 4 }


measurementsCircuitSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitSensorMeasurementsEntry 6 }

measurementsCircuitSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsCircuitSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { circuitSensorMeasurementsEntry 7 }


measurementsCircuitSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset as an unsigned integer
            The value of this OID variable should be scaled by
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitSensorMeasurementsEntry 8 }


measurementsCircuitSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset as a signed integer
            The value of this OID variable should be scaled by
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitSensorMeasurementsEntry 9 }


measurementsCircuitSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementCircuitSensor[Signed]MinValue"
    ::= { circuitSensorMeasurementsEntry 10 }



measurementsCircuitSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset as an unsigned integer
            The value of this OID variable should be scaled by
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitSensorMeasurementsEntry 11 }


measurementsCircuitSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset as a signed integer
            The value of this OID variable should be scaled by
            circuitSensorDecimalDigits. For example, if the value is 1 and
            circuitSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitSensorMeasurementsEntry 12 }


measurementsCircuitSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementCircuitSensor[Signed]MaxValue"
    ::= { circuitSensorMeasurementsEntry 13 }



measurementsCircuitSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsCircuitSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsCircuitSensorMinMaxValid. The measurementsCircuitSensorMinMaxResetTimeStamp is
            always valid, even if measurementsCircuitSensorMinMaxValid is false."
    ::= { circuitSensorMeasurementsEntry 14 }


measurementsCircuitSensorResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the sensor value was last reset. If the
            sensor never was reset this will read 0. Only for accumulating sensors."
    ::= { circuitSensorMeasurementsEntry 15 }



-- circuitPoleSensorMeasurementsTable: circuit pole sensor readings

circuitPoleSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitPoleSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of circuit pole sensor entries.
           "
    ::= { measurementsCircuit 4 }

circuitPoleSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     CircuitPoleSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing circuit pole sensor measurement objects."

    INDEX { pduId, circuitId, circuitPoleId, sensorType }
    ::= { circuitPoleSensorMeasurementsTable 1 }

CircuitPoleSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsCircuitPoleSensorIsAvailable    TruthValue,
        measurementsCircuitPoleSensorState          SensorStateEnumeration,
        measurementsCircuitPoleSensorValue          Unsigned32,
        measurementsCircuitPoleSensorTimeStamp      Unsigned32,
        measurementsCircuitPoleSensorSignedValue    Integer32,
        measurementsCircuitPoleSensorMinMaxValid    TruthValue,
        measurementsCircuitPoleSensorMinValue       Unsigned32,
        measurementsCircuitPoleSensorSignedMinValue Integer32,
        measurementsCircuitPoleSensorMinTimeStamp   Unsigned32,
        measurementsCircuitPoleSensorMaxValue       Unsigned32,
        measurementsCircuitPoleSensorSignedMaxValue Integer32,
        measurementsCircuitPoleSensorMaxTimeStamp   Unsigned32,
        measurementsCircuitPoleSensorMinMaxResetTimeStamp Unsigned32
    }

measurementsCircuitPoleSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitPoleSensorMeasurementsEntry 4 }


measurementsCircuitPoleSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { 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
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitPoleSensorMeasurementsEntry 6 }

measurementsCircuitPoleSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsCircuitPoleSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { circuitPoleSensorMeasurementsEntry 7 }


measurementsCircuitPoleSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset as an unsigned integer
            The value of this OID variable should be scaled by
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitPoleSensorMeasurementsEntry 8 }


measurementsCircuitPoleSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset as a signed integer
            The value of this OID variable should be scaled by
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitPoleSensorMeasurementsEntry 9 }


measurementsCircuitPoleSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementCircuitPoleSensor[Signed]MinValue"
    ::= { circuitPoleSensorMeasurementsEntry 10 }



measurementsCircuitPoleSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset as an unsigned integer
            The value of this OID variable should be scaled by
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitPoleSensorMeasurementsEntry 11 }


measurementsCircuitPoleSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset as a signed integer
            The value of this OID variable should be scaled by
            circuitPoleSensorDecimalDigits. For example, if the value is 1 and
            circuitPoleSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { circuitPoleSensorMeasurementsEntry 12 }


measurementsCircuitPoleSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementCircuitPoleSensor[Signed]MaxValue"
    ::= { circuitPoleSensorMeasurementsEntry 13 }



measurementsCircuitPoleSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsCircuitPoleSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsCircuitPoleSensorMinMaxValid. The measurementsCircuitPoleSensorMinMaxResetTimeStamp is
            always valid, even if measurementsCircuitPoleSensorMinMaxValid is false."
    ::= { circuitPoleSensorMeasurementsEntry 14 }


-- outletGroupSensorMeasurementsTable: outlet group sensor readings

outletGroupSensorMeasurementsTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletGroupSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet group sensor entries.
           "
    ::= { measurementsOutletGroup 3 }

outletGroupSensorMeasurementsEntry OBJECT-TYPE
    SYNTAX     OutletGroupSensorMeasurementsEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry containing outlet group sensor measurement objects."

    INDEX { outletGroupId, sensorType }
    ::= { outletGroupSensorMeasurementsTable 1 }

OutletGroupSensorMeasurementsEntryStruct ::= SEQUENCE {
        measurementsOutletGroupSensorIsAvailable    TruthValue,
        measurementsOutletGroupSensorState          SensorStateEnumeration,
        measurementsOutletGroupSensorValue          Unsigned32,
        measurementsOutletGroupSensorTimeStamp      Unsigned32,
        measurementsOutletGroupSensorSignedValue    Integer32,
        measurementsOutletGroupSensorMinMaxValid    TruthValue,
        measurementsOutletGroupSensorMinValue       Unsigned32,
        measurementsOutletGroupSensorSignedMinValue Integer32,
        measurementsOutletGroupSensorMinTimeStamp   Unsigned32,
        measurementsOutletGroupSensorMaxValue       Unsigned32,
        measurementsOutletGroupSensorSignedMaxValue Integer32,
        measurementsOutletGroupSensorMaxTimeStamp   Unsigned32,
        measurementsOutletGroupSensorMinMaxResetTimeStamp Unsigned32,
        measurementsOutletGroupSensorResetTimeStamp Unsigned32
    }

measurementsOutletGroupSensorIsAvailable OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor is present."
    ::= { outletGroupSensorMeasurementsEntry 2 }


measurementsOutletGroupSensorState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The sensor state."
    ::= { outletGroupSensorMeasurementsEntry 3 }






measurementsOutletGroupSensorValue 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletGroupSensorMeasurementsEntry 4 }


measurementsOutletGroupSensorTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp for reading."
    ::= { outletGroupSensorMeasurementsEntry 5 }


measurementsOutletGroupSensorSignedValue 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
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletGroupSensorMeasurementsEntry 6 }

measurementsOutletGroupSensorMinMaxValid OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum and maximum values of sensor reading and their timestamps
             provided as measurementsOutletGroupSensor[Signed]{Min|Max}{Value|TimeStamp} are valid"
    ::= { outletGroupSensorMeasurementsEntry 7 }


measurementsOutletGroupSensorMinValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset as an unsigned integer
            The value of this OID variable should be scaled by
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletGroupSensorMeasurementsEntry 8 }


measurementsOutletGroupSensorSignedMinValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The minimum value of sensor reading since last reset as a signed integer
            The value of this OID variable should be scaled by
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletGroupSensorMeasurementsEntry 9 }


measurementsOutletGroupSensorMinTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the minimum value of sensor reading
            provided as measurementOutletGroupSensor[Signed]MinValue"
    ::= { outletGroupSensorMeasurementsEntry 10 }



measurementsOutletGroupSensorMaxValue OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset as an unsigned integer
            The value of this OID variable should be scaled by
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletGroupSensorMeasurementsEntry 11 }


measurementsOutletGroupSensorSignedMaxValue OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The maximum value of sensor reading since last reset as a signed integer
            The value of this OID variable should be scaled by
            outletGroupSensorDecimalDigits. For example, if the value is 1 and
            outletGroupSensorDecimalDigits 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 a numerical
            reading, or sensors that are not present or are in an unavailable
            state."
    ::= { outletGroupSensorMeasurementsEntry 12 }


measurementsOutletGroupSensorMaxTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last change of the maximum value of sensor reading
            provided as measurementOutletGroupSensor[Signed]MaxValue"
    ::= { outletGroupSensorMeasurementsEntry 13 }



measurementsOutletGroupSensorMinMaxResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp of last reset of all minimum and maximum values of sensor reading
            including their timestamps, provided as measurementsOutletGroupSensor[Signed]{Min|Max}{Value|TimeStamp}
            and measurementsOutletGroupSensorMinMaxValid. The measurementsOutletGroupSensorMinMaxResetTimeStamp is
            always valid, even if measurementsOutletGroupSensorMinMaxValid is false."
    ::= { outletGroupSensorMeasurementsEntry 14 }


measurementsOutletGroupSensorResetTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the sensor value was last reset. If the
            sensor never was reset this will read 0. Only for accumulating sensors."
    ::= { outletGroupSensorMeasurementsEntry 15 }




-- 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,
        outletSuspendedState            TruthValue
    }

switchingOperation OBJECT-TYPE
    SYNTAX     OutletSwitchingOperationsEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing to this OID triggers an outlet control operation (switch
            on, switch off, cycle).

            Reading returns the outlet's target state, which is not necessarily
            the current relay state."
    ::= { outletSwitchControlEntry 2 }

outletSwitchingState OBJECT-TYPE
    SYNTAX     SensorStateEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The state of the outlet relay at present (on or off)"
    ::= { 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 }

outletSuspendedState OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Whether the outlet is currently off because it was suspected to have caused an OCP trip event"
    ::= { outletSwitchControlEntry 5 }

-- 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(0..64)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The index of the currently active inlet. The value normally ranges
            between 1 and the value of inletCount, but can be 0 in case no inlet
            is active (e.g. overload alarm)."
    ::= { transferSwitchControlEntry 1 }

transferSwitchTransferToInlet OBJECT-TYPE
    SYNTAX     Integer32(0..64)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Select the active inlet. The written value must be between 1 and the
            value of inletCount. If the selected 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 depend on the actuator type. See the comment
            for SensorStateEnumeration. Attempting to set the state to any
            other value will generate an error."
    ::= { actuatorControlEntry 2 }

-- rcmSelfTestTable: objects for controlling inlet RCM (residual current) sensors

rcmSelfTestTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF RcmSelfTestEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of inlet RCMs."
    ::= { rcmControl  2 }

rcmSelfTestEntry OBJECT-TYPE
    SYNTAX     RcmSelfTestEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry for initiating the self test of an inlet 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 }

-- overCurrentProtectorRcmSelfTestTable: objects for controlling OCP RCM (residual current) sensors

overCurrentProtectorRcmSelfTestTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OverCurrentProtectorRcmSelfTestEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of overcurrent protector RCMs."
    ::= { rcmControl 3 }

overCurrentProtectorRcmSelfTestEntry OBJECT-TYPE
    SYNTAX     OverCurrentProtectorRcmSelfTestEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry for initiating the self test of an overcurrent protector RCM."
    INDEX { pduId, overCurrentProtectorIndex }
    ::= { overCurrentProtectorRcmSelfTestTable 1 }

OverCurrentProtectorRcmSelfTestEntryStruct ::= SEQUENCE {
        overCurrentProtectorRcmState    SensorStateEnumeration
    }

overCurrentProtectorRcmState 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."
    ::= { overCurrentProtectorRcmSelfTestEntry 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. 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,
        inletSensorResetMinMax TruthValue
    }

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 }
inletSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { inletSensorControlEntry 2 }



-- inletPoleSensorControlTable: objects for controlling inlet pole sensors

inletPoleSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletPoleSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the inlet pole sensors. The set
            of valid indices is defined by the value of inletPoleCount
            and the inletPoleDeviceCapabilities entry for the selected inlet pole.
            "
    ::= { inletSensorControl 2 }

inletPoleSensorControlEntry OBJECT-TYPE
    SYNTAX     InletPoleSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an inlet pole sensor."
    INDEX { pduId, inletId, inletPoleIndex, sensorType }
    ::= { inletPoleSensorControlTable 1 }

InletPoleSensorControlEntryStruct ::= SEQUENCE {
        inletPoleSensorResetMinMax TruthValue
    }

inletPoleSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { inletPoleSensorControlEntry 2 }



-- inletLinePairSensorControlTable: objects for controlling inlet line pair sensors

inletLinePairSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF InletLinePairSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the inlet line pair sensors. The set
            of valid indices is defined by the value of inletLinePairCount
            and the inletLinePairDeviceCapabilities entry for the selected inlet line pair.
            "
    ::= { inletSensorControl 3 }

inletLinePairSensorControlEntry OBJECT-TYPE
    SYNTAX     InletLinePairSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an inlet line pair sensor."
    INDEX { pduId, inletId, inletLinePairIndex, sensorType }
    ::= { inletLinePairSensorControlTable 1 }

InletLinePairSensorControlEntryStruct ::= SEQUENCE {
        inletLinePairSensorResetMinMax TruthValue
    }

inletLinePairSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { inletLinePairSensorControlEntry 2 }



-- 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. 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,
        outletSensorResetMinMax TruthValue
    }

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 }
outletSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { outletSensorControlEntry 2 }



-- outletPoleSensorControlTable: objects for controlling outlet pole sensors

outletPoleSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletPoleSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the outlet pole sensors. The set
            of valid indices is defined by the value of outletPoleCount
            and the outletPoleDeviceCapabilities entry for the selected outlet pole.
            "
    ::= { outletSensorControl 2 }

outletPoleSensorControlEntry OBJECT-TYPE
    SYNTAX     OutletPoleSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an outlet pole sensor."
    INDEX { pduId, outletId, outletPoleIndex, sensorType }
    ::= { outletPoleSensorControlTable 1 }

OutletPoleSensorControlEntryStruct ::= SEQUENCE {
        outletPoleSensorResetMinMax TruthValue
    }

outletPoleSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { outletPoleSensorControlEntry 2 }



-- 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 unit sensors. The set
            of valid indices is defined by the value of unitCount
            and the unitDeviceCapabilities entry for the selected unit.
            "
    ::= { unitSensorControl 1 }

unitSensorControlEntry OBJECT-TYPE
    SYNTAX     UnitSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an unit sensor."
    INDEX { pduId, sensorType }
    ::= { unitSensorControlTable 1 }

UnitSensorControlEntryStruct ::= SEQUENCE {
        unitSensorResetValue  Integer32,
        unitSensorResetMinMax TruthValue
    }

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 }
unitSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { unitSensorControlEntry 2 }



-- overCurrentProtectorSensorControlTable: objects for controlling over current protector sensors

overCurrentProtectorSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OverCurrentProtectorSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the over current protector sensors. The set
            of valid indices is defined by the value of overCurrentProtectorCount
            and the overCurrentProtectorDeviceCapabilities entry for the selected over current protector.
            "
    ::= { overCurrentProtectorSensorControl 1 }

overCurrentProtectorSensorControlEntry OBJECT-TYPE
    SYNTAX     OverCurrentProtectorSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an over current protector sensor."
    INDEX { pduId, overCurrentProtectorIndex, sensorType }
    ::= { overCurrentProtectorSensorControlTable 1 }

OverCurrentProtectorSensorControlEntryStruct ::= SEQUENCE {
        overCurrentProtectorSensorResetMinMax TruthValue
    }

overCurrentProtectorSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { overCurrentProtectorSensorControlEntry 2 }



-- externalSensorControlTable: objects for controlling external sensors

externalSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ExternalSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the external sensors. The set
            of valid indices is defined by the value of externalCount
            and the externalDeviceCapabilities entry for the selected external.
            "
    ::= { externalSensorControl 1 }

externalSensorControlEntry OBJECT-TYPE
    SYNTAX     ExternalSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an external sensor."
    INDEX { pduId, sensorID }
    ::= { externalSensorControlTable 1 }

ExternalSensorControlEntryStruct ::= SEQUENCE {
        externalSensorResetMinMax TruthValue
    }

externalSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { externalSensorControlEntry 2 }



-- transferSwitchSensorControlTable: objects for controlling transfer switch sensors

transferSwitchSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF TransferSwitchSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the transfer switch sensors. The set
            of valid indices is defined by the value of transferSwitchCount
            and the transferSwitchDeviceCapabilities entry for the selected transfer switch.
            "
    ::= { transferSwitchSensorControl 1 }

transferSwitchSensorControlEntry OBJECT-TYPE
    SYNTAX     TransferSwitchSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an transfer switch sensor."
    INDEX { pduId, transferSwitchId, sensorType }
    ::= { transferSwitchSensorControlTable 1 }

TransferSwitchSensorControlEntryStruct ::= SEQUENCE {
        transferSwitchSensorResetMinMax TruthValue
    }

transferSwitchSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { transferSwitchSensorControlEntry 2 }



-- circuitSensorControlTable: objects for controlling 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. The set
            of valid indices is defined by the value of circuitCount
            "
    ::= { 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,
        circuitSensorResetMinMax TruthValue
    }

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 }
circuitSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { circuitSensorControlEntry 2 }



-- circuitPoleSensorControlTable: objects for controlling circuit pole sensors

circuitPoleSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CircuitPoleSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the circuit pole sensors. The set
            of valid indices is defined by the value of circuitPoleCount
            and the circuitPoleDeviceCapabilities entry for the selected circuit pole.
            "
    ::= { circuitSensorControl 2 }

circuitPoleSensorControlEntry OBJECT-TYPE
    SYNTAX     CircuitPoleSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an circuit pole sensor."
    INDEX { pduId, circuitId, circuitPoleId, sensorType }
    ::= { circuitPoleSensorControlTable 1 }

CircuitPoleSensorControlEntryStruct ::= SEQUENCE {
        circuitPoleSensorResetMinMax TruthValue
    }

circuitPoleSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { circuitPoleSensorControlEntry 2 }


-- outletGroupSwitchControlTable: objects for controlling outlet groups

outletGroupSwitchControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletGroupSwitchControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of outlet groups. The number of
            entries is given by the value of outletGroupCount."
    ::= { outletGroupControl  2 }

outletGroupSwitchControlEntry OBJECT-TYPE
    SYNTAX     OutletGroupSwitchControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry for implementing switching operations on an outlet group."
    INDEX { outletGroupId }
    ::= { outletGroupSwitchControlTable 1 }

OutletGroupSwitchControlEntryStruct ::= SEQUENCE {
        outletGroupSwitchingOperation        OutletSwitchingOperationsEnumeration
    }

outletGroupSwitchingOperation OBJECT-TYPE
    SYNTAX     OutletSwitchingOperationsEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "The switching operation: switch on, switch off or power-cycle."
    ::= { outletGroupSwitchControlEntry 2 }




-- outletGroupSensorControlTable: objects for controlling outlet group sensors

outletGroupSensorControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF OutletGroupSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of control entries for the outlet group sensors. The set
            of valid indices is defined by the value of outletGroupCount
            and the outletGroupDeviceCapabilities entry for the selected outlet group.
            "
    ::= { outletGroupSensorControl 1 }

outletGroupSensorControlEntry OBJECT-TYPE
    SYNTAX     OutletGroupSensorControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry used for controlling an outlet group sensor."
    INDEX { outletGroupId, sensorType }
    ::= { outletGroupSensorControlTable 1 }

OutletGroupSensorControlEntryStruct ::= SEQUENCE {
        outletGroupSensorResetValue  Integer32,
        outletGroupSensorResetMinMax TruthValue
    }

outletGroupSensorResetValue 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.
            "
    ::= { outletGroupSensorControlEntry 1 }
outletGroupSensorResetMinMax OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
           "Writing True to this variable resets minimum / maximum values and their timestamps."
    ::= { outletGroupSensorControlEntry 2 }


-- serverPowerControlTable: objects for power controlling servers

serverPowerControlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF ServerPowerControlEntryStruct
    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."
    ::= { serverPowerControl  1 }

serverPowerControlEntry OBJECT-TYPE
    SYNTAX     ServerPowerControlEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "An entry for implementing power control operations on a server."
    INDEX { pduId, serverID }
    ::= { serverPowerControlTable 1 }

ServerPowerControlEntryStruct ::= SEQUENCE {
        serverPowerControlOperation    ServerPowerStateEnumeration
    }

serverPowerControlOperation OBJECT-TYPE
    SYNTAX     ServerPowerStateEnumeration
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "Reading the variable returns the current power state of the server. Writing
             on(1) or off(2) results in a power control operation, switching the configured
             power target on or initiating a graceful shutdown. Writing any other value
             results in an error."
    ::= { serverPowerControlEntry 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>.MAIN.CSUMERRLASTHOUR
               Number of checksum errors in sub (controller board) to main (CPU
               board) communication in the last hour on controller with serial
               number <serial> and bus address <addr>.

            CTRL.<serial>.<addr>.SUB.CSUMERRLASTHOUR
              Number of checksum errors in main (CPU board) to sub (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.

            CTRL.<serial>.<addr>.EMRSTCNT
              Number of energy-meter resets on the controller board with serial
              number <serial> and bus address <addr>.

            CTRL.<serial>.<addr>.RSTCNT
              Number of resets of the controller board with serial number <serial>
              and bus address <addr>."
    ::= { 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>.MAIN.CSUMERRLASTHOUR
               Number of checksum errors in sub (controller board) to main (CPU
               board) communication in the last hour on controller with serial
               number <serial> and bus address <addr>.

            CTRL.<serial>.<addr>.SUB.CSUMERRLASTHOUR
              Number of checksum errors in main (CPU board) to sub (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 }

-- hwFailureTable: table with hardware failure statistic

hwFailureTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF HwFailureEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A list of hardware failure entries."
    ::= { reliabilityHardwareHealth 1 }

HwFailureEntryStruct ::= SEQUENCE {
        hwFailureIndex                  Integer32,
        hwFailureComponentId            DisplayString,
        hwFailureType                   HwFailureTypeEnumeration,
        hwFailureAsserted               TruthValue,
        hwFailureLastAssertTimeStamp    Unsigned32,
        hwFailureLastDeassertTimeStamp  Unsigned32,
        hwFailureAssertCount            Unsigned32
    }

hwFailureEntry OBJECT-TYPE
    SYNTAX     HwFailureEntryStruct
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "A hardware failure entry."
    INDEX { pduId, hwFailureIndex }
    ::= { hwFailureTable 1 }

hwFailureIndex OBJECT-TYPE
    SYNTAX     Integer32(1..65535)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "Index of the entry in the hardware failure table."
    ::= { hwFailureEntry 1 }

hwFailureComponentId OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The id of the affected hardware component."
    ::= { hwFailureEntry 2 }

hwFailureType OBJECT-TYPE
    SYNTAX     HwFailureTypeEnumeration
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The hardware failure type."
    ::= { hwFailureEntry 3 }

hwFailureAsserted OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Reflects whether the failure state is asserted(true) or not(false)."
    ::= { hwFailureEntry 4 }

hwFailureLastAssertTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the failure was last asserted.
            It is measured in seconds since January 1, 1970 UTC."
    ::= { hwFailureEntry 5 }

hwFailureLastDeassertTimeStamp OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The timestamp indicating when the failure was last deasserted.
            It is measured in seconds since January 1, 1970 UTC.
            If the failure is currently asserted then this has no meaning and is reported as 0."
    ::= { hwFailureEntry 6 }

hwFailureAssertCount OBJECT-TYPE
    SYNTAX     Unsigned32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "The number of times the failure was asserted."
    ::= { hwFailureEntry 7 }

-- 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,
              pduNumber }
    STATUS current
    DESCRIPTION
           "The system has started."
    ::= { traps 1 }

systemReset NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              pduNumber }
    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,
              pduNumber }
    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,
              pduNumber }
    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,
              pduNumber }
    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,
              pduNumber }
    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,
              pduNumber }
    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,
              pduNumber }
    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.

            For an rcmState sensor transitioning to the fail state, the value is the
            residual current just before the sensor transitioned to the fail state."
    ::= { traps 65 }

externalSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              externalSensorNumber,
              typeOfSensor,
              measurementsExternalSensorTimeStamp,
              measurementsExternalSensorValue,
              measurementsExternalSensorState ,
              oldSensorState,
              externalSensorSerialNumber,
              externalOnOffSensorSubtype,
              externalSensorChannelNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              externalSensorName }
    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,
              pduNumber }
    STATUS current
    DESCRIPTION
           "The device firmware update has failed."
    ::= { traps 70 }

loadSheddingModeEntered NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              pduNumber }
    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,
              pduNumber }
    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,
              pduNumber }
    STATUS current
    DESCRIPTION
           "A device identification parameter has been changed."
    ::= { traps 79 }

usbExpansionUnitConnected NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Connectivity to downstream expansion unit has been established.
            It applies to the following interfaces:
                USB
                Ethernet
            This trap is sent only if deviceCascadeType is portForwarding"
    ::= { traps 80 }

usbExpansionUnitDisconnected NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Connectivity to downstream expansion unit 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 deprecated
    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 obsolete
    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,
              pduNumber }
    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,
              pduNumber }
    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,
              pduNumber }
    STATUS current
    DESCRIPTION
           "A webcam has been connected."
    ::= { traps 90 }

webcamRemoved NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              webcamModel,
              webcamConnectionPort,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              pduNumber }
    STATUS current
    DESCRIPTION
           "A webcam has been disconnected."
    ::= { traps 91 }

inletEnabled NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              pduNumber }
    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,
              pduNumber }
    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,
              pduNumber }
    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,
              pduNumber }
    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
           "An unit 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,
              userName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              circuitNumber,
              typeOfSensor,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An 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,
              smartCardReaderManufacturer,
              smartCardReaderProduct,
              smartCardReaderSerialNumber,
              smartCardReaderChannel,
              smartCardReaderPosition,
              pduNumber,
              smartCardReaderName,
              smartCardReaderDescription }
    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,
              smartCardReaderManufacturer,
              smartCardReaderProduct,
              smartCardReaderSerialNumber,
              smartCardReaderChannel,
              smartCardReaderPosition,
              pduNumber,
              smartCardReaderName,
              smartCardReaderDescription }
    STATUS current
    DESCRIPTION
           "A smartcard was removed from a card reader."
    ::= { traps 114 }

rawConfigurationDownloaded NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              pduNumber }
    STATUS current
    DESCRIPTION
           "The raw configuration was downloaded from the device."
    ::= { traps 115 }

rawConfigurationUpdated NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              pduNumber }
    STATUS current
    DESCRIPTION
           "A raw configuration update was applied on the device."
    ::= { traps 116 }

hwFailureStatusChanged NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              hwFailureComponentId,
              hwFailureType,
              hwFailureAsserted,
              pduNumber }
    STATUS current
    DESCRIPTION
           "A hardware component's failure state has changed."
    ::= { traps 117 }

outletGroupAdded NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              outletGroupNumber,
              outletGroupName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A new outlet group has been configured"
    ::= { traps 118 }

outletGroupModified NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              outletGroupNumber,
              outletGroupName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A configured outlet group has been modified"
    ::= { traps 119 }

outletGroupDeleted NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              outletGroupNumber,
              outletGroupName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A configured outlet group has been deleted"
    ::= { traps 120 }

outletGroupSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              outletGroupNumber,
              outletGroupName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              typeOfSensor,
              measurementsOutletGroupSensorTimeStamp,
              measurementsOutletGroupSensorValue,
              measurementsOutletGroupSensorState,
              measurementsOutletGroupSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Outlet group sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsOutletGroupSensorValue is undefined for sensors which can
            have negative readings, measurementsOutletGroupSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 121 }

outletGroupSensorReset NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              outletGroupNumber,
              outletGroupName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              typeOfSensor,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An outlet group sensor was reset."
    ::= { traps 122 }

outletGroupPowerControl NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              outletGroupNumber,
              outletGroupName,
              outletGroupSwitchingOperation,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An outlet group switching operation has been performed."
    ::= { traps 123 }

serverPowerControlInitiated NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              userName,
              serverIPAddress,
              serverPowerOperation,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A server power control operation was initiated."
    ::= { traps 124 }

serverPowerControlCompleted NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              serverIPAddress,
              serverPowerResult,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A server power control operation has completed."
    ::= { traps 125 }

webcamStorageUploadStarted NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              userName,
              webcamName,
              webcamFolderUrl,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              pduNumber }
    STATUS current
    DESCRIPTION
           "A new snapshot upload to webcam storage has started."
    ::= { traps 126 }

testEventTriggered NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              userName,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A test event was triggered."
    ::= { traps 127 }

actuatorSwitched NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              userName,
              externalSensorNumber,
              externalSensorName,
              externalSensorSerialNumber,
              externalOnOffSensorSubtype,
              externalSensorChannelNumber,
              typeOfSensor,
              actuatorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "An actuator control operation has been performed."
    ::= { traps 128 }

keypadPinEntered NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              keypadId,
              keypadPinTimestamp,
              keypadPin,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              keypadManufacturer,
              keypadProduct,
              keypadSerialNumber,
              keypadChannel,
              keypadPosition,
              keypadName,
              keypadDescription }
    STATUS current
    DESCRIPTION
           "A PIN was entered into a keypad."
    ::= { traps 129 }

doorAccessGranted NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              doorAccessRuleId,
              doorAccessRuleName,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Door access was granted."
    ::= { traps 130 }

doorAccessDenied NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              doorAccessRuleId,
              doorAccessRuleName,
              doorAccessDenialReason,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Door access was denied."
    ::= { traps 131 }

doorAccessRuleAdded NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              doorAccessRuleId,
              doorAccessRuleName,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A door access rule was added."
    ::= { traps 132 }

doorAccessRuleChanged NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              doorAccessRuleId,
              doorAccessRuleName,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A door access rule was changed."
    ::= { traps 133 }

doorAccessRuleDeleted NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              doorAccessRuleId,
              doorAccessRuleName,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A door access rule was deleted."
    ::= { traps 134 }

inletLinePairSensorStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              inletLinePairNumber,
              typeOfSensor,
              measurementsInletLinePairSensorTimeStamp,
              measurementsInletLinePairSensorValue,
              measurementsInletLinePairSensorState,
              measurementsInletLinePairSensorSignedValue,
              oldSensorState,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Inlet line pair sensor state change.
            Which value field to use depends on the metadata of the sensor.
            measurementsInletLinePairSensorValue is undefined for sensors which can
            have negative readings, measurementsInletLinePairSensorSignedValue is
            undefined for sensors whose range exceeds the Integer32 range.
            Both fields do not apply to sensors without numerical readings."
    ::= { traps 135 }

tacPlusError NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              errorDescription,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A TACACS+ error occurred; errorDescription describes the error"
    ::= { traps 136 }

outletSuspended NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              outletLabel,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              pduNumber }
    STATUS current
    DESCRIPTION
           "An outlet was suspended after being suspected to have caused an OCP trip event."
    ::= { traps 137 }

userRenamed NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              targetUser,
              newTargetUser,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A user account was renamed."
    ::= { traps 138 }



inletDipEvent NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              dipSwellEventVoltage,
              dipSwellEventTimeStamp,
              dipSwellEventDuration,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Dip event on the inlet voltage sensor."
    ::= { traps 151 }

inletSwellEvent NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              dipSwellEventVoltage,
              dipSwellEventTimeStamp,
              dipSwellEventDuration,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Dip event on the inlet voltage sensor."
    ::= { traps 152 }

inletPoleDipEvent NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              inletPoleNumber,
              dipSwellEventVoltage,
              dipSwellEventTimeStamp,
              dipSwellEventDuration,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Dip event on the voltage sensor of an inlet pole."
    ::= { traps 153 }

inletPoleSwellEvent NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              inletLabel,
              inletPoleNumber,
              dipSwellEventVoltage,
              dipSwellEventTimeStamp,
              dipSwellEventDuration,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Swell event on the voltage sensor of an inlet pole."
    ::= { traps 154 }

portFuseStateChange NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              portFuseState,
              externalPortFuseId,
              externalPortName,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "The state of a port fuse changed."
    ::= { traps 155 }

linkUnitAdded NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              linkUnitId,
              linkUnitAddress,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A new link unit has been added."
    ::= { traps 156 }

linkUnitReleased NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              linkUnitId,
              linkUnitAddress,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A link unit has been released."
    ::= { traps 157 }

linkUnitCommunicationOk NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              linkUnitId,
              linkUnitAddress,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Communication with link unit is OK."
    ::= { traps 158 }

linkUnitCommunicationFailed NOTIFICATION-TYPE
    OBJECTS { pduName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              linkUnitId,
              linkUnitAddress,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "Communication with a link unit failed."
    ::= { traps 159 }

doorMechanicallyUnlocked NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              doorHandleName,
              doorLockName,
              doorStateName,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A door handle was opened without being electronically unlocked."
    ::= { traps 160 }

doorForcedOpen NOTIFICATION-TYPE
    OBJECTS { pduName,
              pduNumber,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              doorHandleName,
              doorLockName,
              doorStateName,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber }
    STATUS current
    DESCRIPTION
           "A door was opened without unlocking the door handle."
    ::= { traps 161 }

outletServiceModeChanged NOTIFICATION-TYPE
    OBJECTS { pduName,
              userName,
              pxInetAddressType,
              pxInetIPAddress,
              agentInetPortNumber,
              outletLabel,
              outletServiceMode,
              sysContact,
              sysName,
              sysLocation,
              pduSerialNumber,
              pduNumber }
    STATUS current
    DESCRIPTION
           "Service mode was changed on an outlet."
    ::= { traps 162 }

END

