UBNT-EdgeMAX-MIB DEFINITIONS ::= BEGIN
    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, Integer32, Gauge32, Counter64,
        IpAddress, TimeTicks FROM SNMPv2-SMI
        DisplayString, TruthValue, MacAddress FROM SNMPv2-TC
        OBJECT-GROUP, MODULE-COMPLIANCE FROM SNMPv2-CONF
        ubntEdgeMaxGroups, ubntMIB FROM UBNT-MIB;

    ubntEdgeMax MODULE-IDENTITY
    LAST-UPDATED "201801030000Z"
    ORGANIZATION "Ubiquiti Networks, Inc."
    CONTACT-INFO "support@ubnt.com"
    DESCRIPTION  "The EdgeMax MIB module for Ubiquiti Networks, Inc. entities"
    REVISION "201801030000Z"
    DESCRIPTION "ubntEdgeMax revision"
    ::= { ubntMIB 5 }

    -- --------------------------------------------------------------------------------
    --                            product identification
    -- --------------------------------------------------------------------------------

    ubntProductIdent     OBJECT IDENTIFIER ::= { ubntEdgeMax 1 }

    ubntModel OBJECT-TYPE
        SYNTAX     DisplayString
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Product model."
        ::= { ubntProductIdent 1 }

    ubntSerialNumber OBJECT-TYPE
        SYNTAX     DisplayString
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Serial number."
        ::= { ubntProductIdent 2 }

    ubntVersion OBJECT-TYPE
        SYNTAX     DisplayString
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Firmware version."
        ::= { ubntProductIdent 3 }

    -- --------------------------------------------------------------------------------
    --                              power outputs
    -- --------------------------------------------------------------------------------

    ubntPowerOuts         OBJECT IDENTIFIER ::= { ubntEdgeMax 2 }

    ubntPowerOutsCount OBJECT-TYPE
        SYNTAX     Unsigned32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "The number of power outputs present on this system."
        ::= { ubntPowerOuts 1 }

    ubntPowerOutTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF UbntPowerOutEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION "A list of power out entries. The number of entries is given by the value of ubntPowerOutsCount."
        ::= { ubntPowerOuts 2 }

    ubntPowerOutEntry OBJECT-TYPE
       SYNTAX     UbntPowerOutEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION "An entry in the ubntPowerOutTable."
       INDEX      { ubntPowerOutIndex }
       ::= { ubntPowerOutTable 1 }

    UbntPowerOutTable ::= SEQUENCE {
        ubntPowerOutIndex   Integer32,
        ubntPowerOutVoltage Integer32,
        ubntPowerOutCurrent Integer32,
        ubntPowerOutPower   Integer32
    }

    ubntPowerOutIndex OBJECT-TYPE
        SYNTAX     Integer32 (1..255)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "A unique value for each power output."
        ::= { ubntPowerOutEntry 1 }

    ubntPowerOutVoltage OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Output voltage in mV."
        ::= { ubntPowerOutEntry 2 }

    ubntPowerOutCurrent OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Output current in mA."
        ::= { ubntPowerOutEntry 3 }

    ubntPowerOutPower OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Output power in mW."
        ::= { ubntPowerOutEntry 4 }

    -- --------------------------------------------------------------------------------
    --                            power supplies
    -- --------------------------------------------------------------------------------

    ubntPowerSupplies    OBJECT IDENTIFIER ::= { ubntEdgeMax 3 }

    ubntPsuBaysNumber OBJECT-TYPE
        SYNTAX     Unsigned32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "The number of PSU bays available on this system."
        ::= { ubntPowerSupplies 1 }

    ubntPsuTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF UbntPsuEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION "A list of PSU entries. The number of entries is given by the value of ubntPsuBaysNumber."
        ::= { ubntPowerSupplies 2 }

    ubntPsuEntry OBJECT-TYPE
       SYNTAX     UbntPsuEntry
       MAX-ACCESS not-accessible
       STATUS     current
       DESCRIPTION "An entry in the ubntPsuTable."
       INDEX      { ubntPsuIndex }
       ::= { ubntPsuTable 1 }

    UbntPsuEntry ::= SEQUENCE {
        ubntPsuIndex             Integer32,
        ubntPsuType              Integer32,
        ubntPsuStatus            Integer32,
        ubntPsuOperStatus        Integer32,
        ubntPsuVoltage           Integer32,
        ubntPsuTemperature       Integer32,
        ubntPsuCharging          Integer32,
        ubntPsuBatteryQuantity   Integer32
    }

    ubntPsuIndex OBJECT-TYPE
        SYNTAX     Integer32 (1..255)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "A unique value for each PSU."
        ::= { ubntPsuEntry 1 }

    ubntPsuType OBJECT-TYPE
        SYNTAX     INTEGER { unknown(0),ac(1),dc(2),poe(3) }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "PSU Type."
        ::= { ubntPsuEntry 2 }

    ubntPsuStatus OBJECT-TYPE
        SYNTAX     INTEGER { unknown(0),on(1),off(2),standby(3) }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "PSU Status."
        ::= { ubntPsuEntry 3 }

    ubntPsuOperStatus OBJECT-TYPE
        SYNTAX     INTEGER { down(0),up(1) }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "PSU operational status."
        ::= { ubntPsuEntry 4 }

    ubntPsuVoltage OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "PSU voltage in mV."
        ::= { ubntPsuEntry 5 }

    ubntPsuTemperature OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "PSU temperature in thousands of degrees Celsius."
        ::= { ubntPsuEntry 6 }

    ubntPsuCharging OBJECT-TYPE
        SYNTAX     INTEGER { unknown(0),on(1),off(2) }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Shows PSU charging state if it is supported."
        ::= { ubntPsuEntry 7 }

    ubntPsuBatteryQuantity OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Number of batteries connected to PSU."
        ::= { ubntPsuEntry 8 }

    -- --------------------------------------------------------------------------------
    --                             thermometers
    -- --------------------------------------------------------------------------------

    ubntThermometers     OBJECT IDENTIFIER ::= { ubntEdgeMax 4 }

    ubntThermometersCount OBJECT-TYPE
        SYNTAX     Unsigned32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "The number of installed thermometers on this system."
        ::= { ubntThermometers 1 }

    ubntThermsTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF UbntThermsEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION "A list of thermometers entries. The number of entries is given by the value of ubntThermometersCount."
        ::= { ubntThermometers 2 }

    ubntThermsEntry OBJECT-TYPE
        SYNTAX     UbntThermsEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION "An entry in the ubntThermsTable."
        INDEX      { ubntThermIndex }
        ::= { ubntThermsTable 1 }

    UbntThermsEntry ::= SEQUENCE {
        ubntThermIndex        Integer32,
        ubntThermType         Integer32,
        ubntThermTemperature  Integer32
    }

    ubntThermIndex OBJECT-TYPE
        SYNTAX     Integer32 (1..255)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "A unique value for thermometer."
        ::= { ubntThermsEntry 1 }

    ubntThermType OBJECT-TYPE
        SYNTAX     INTEGER { other(0),board(1),cpu(2),power(3) }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Type of thermometer."
        ::= { ubntThermsEntry 2 }

    ubntThermTemperature OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Temperature in thousands of degrees Celsius."
        ::= { ubntThermsEntry 3 }

    -- --------------------------------------------------------------------------------
    --                                  fans
    -- --------------------------------------------------------------------------------

    ubntFans             OBJECT IDENTIFIER ::= { ubntEdgeMax 5 }

    ubntFansCount OBJECT-TYPE
        SYNTAX     Unsigned32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "The number of installed fans on this system."
        ::= { ubntFans 1 }

    ubntFansTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF UbntFanEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION "A list of fan entries. The number of entries is given by the value of ubntFansCount."
        ::= { ubntFans 2 }

    ubntFanEntry OBJECT-TYPE
        SYNTAX     UbntFanEntry
        MAX-ACCESS not-accessible
        STATUS     current
        DESCRIPTION "An entry in the ubntFansTable."
        INDEX      { ubntFanIndex }
        ::= { ubntFansTable 1 }

    UbntFanEntry ::= SEQUENCE {
        ubntFanIndex      Integer32,
        ubntFanType       Integer32,
        ubntFanRpm        Integer32
    }

    ubntFanIndex OBJECT-TYPE
        SYNTAX     Integer32 (1..255)
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "A unique value for fan."
        ::= { ubntFanEntry 1 }

    ubntFanType OBJECT-TYPE
        SYNTAX     INTEGER { other(0),board(1),cpu(2),power(3) }
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Type of fan."
        ::= { ubntFanEntry 2 }

    ubntFanRpm OBJECT-TYPE
        SYNTAX     Integer32
        MAX-ACCESS read-only
        STATUS     current
        DESCRIPTION "Fan RPM."
        ::= { ubntFanEntry 3 }

END
