ARISTA-ENTITY-SENSOR-MIB DEFINITIONS ::= BEGIN 

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE,
    NOTIFICATION-TYPE                    FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP,
    NOTIFICATION-GROUP                   FROM SNMPv2-CONF
    TEXTUAL-CONVENTION                   FROM SNMPv2-TC
    entPhysicalIndex, entPhysicalDescr   FROM ENTITY-MIB
    entStateAlarm                        FROM ENTITY-STATE-MIB
    EntitySensorValue, entPhySensorValue
                                         FROM ENTITY-SENSOR-MIB
    SnmpAdminString                      FROM SNMP-FRAMEWORK-MIB
    aristaMibs                           FROM ARISTA-SMI-MIB;


aristaEntSensorMIB   MODULE-IDENTITY
    LAST-UPDATED  "202302100000Z"
    ORGANIZATION  "Arista Networks, Inc."
    CONTACT-INFO
        "Arista Networks, Inc.

        Postal: 5453 Great America Parkway
                Santa Clara, CA 95054

        Tel: +1 408 547-5500

        E-mail: snmp@arista.com"
    DESCRIPTION
        "This MIB module augments the entPhySensorTable of 
        ENTITY-SENSOR-MIB to provide threshold information for 
        various sensors in the system. For example, a given device
        may have several voltage sensors as well as temperature
        sensors each with appropriate threshold support to help
        NMS systems detect and alert appropriately.

        In addition, on systems where it is supported, if the 
        sensor value crosses the supported threshold value the system
        can generate appropriate notification as well."
    REVISION       "202302100000Z"
    DESCRIPTION    "Added aristaFanStateTable."
    REVISION       "201408150000Z"
    DESCRIPTION    "Updated postal and e-mail addresses."
    REVISION       "201305090950Z"
    DESCRIPTION    "Initial version of this MIB module."
    ::= { aristaMibs 12 }

-- Textual Conventions -- 

 aristaEntSensorMibNotifications OBJECT IDENTIFIER
    ::= { aristaEntSensorMIB 0 }

aristaEntSensorMibObjects  OBJECT IDENTIFIER
    ::= { aristaEntSensorMIB 1 }

aristaEntSensorMibConformance  OBJECT IDENTIFIER
    ::= { aristaEntSensorMIB 2 }

AristaEntityOperState  ::=  TEXTUAL-CONVENTION
 STATUS         current
 DESCRIPTION
      " Represents the possible values of operational states.

        A value of 'disabled' means the resource is totally
        inoperable.  A value of 'enabled' means the resource
        is partially or fully operable.  A value of 'testing'
        means the resource is currently being tested
        and cannot therefore report whether it is operational
        or not.  A value of 'unknown' means that this
        resource is unable to report operational state.
        A value of 'notInstalled' means the resource is not
        physically present."
 SYNTAX         INTEGER
           {
           unknown (1),
           disabled (2),
           enabled (3),
           testing (4),
           notInstalled (5)
           }

-- entity threshold table --

aristaEntSensorThresholdTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF AristaEntSensorThresholdEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "This table contains threshold information for the 
        various sensors in the system."
    ::= { aristaEntSensorMibObjects 1 }

aristaEntSensorThresholdEntry OBJECT-TYPE
    SYNTAX       AristaEntSensorThresholdEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "A single row containing threshold information for a
        sensor. Threshold values are reported using the unit
        of EntitySensorValue. If a sensor does not support threshold
        data, then an underflow/overflow value is returned.
        All the other relevant information for the given sensor can be
        obtained from the entPhySensorTable itself."
    INDEX        { entPhysicalIndex } 
    ::= { aristaEntSensorThresholdTable 1 }

AristaEntSensorThresholdEntry ::= SEQUENCE {
    aristaEntSensorThresholdLowWarning   EntitySensorValue,
    aristaEntSensorThresholdLowCritical  EntitySensorValue,
    aristaEntSensorThresholdHighWarning  EntitySensorValue,
    aristaEntSensorThresholdHighCritical  EntitySensorValue,
    aristaEntSensorStatusDescr           SnmpAdminString
}
 
aristaEntSensorThresholdLowWarning   OBJECT-TYPE
    SYNTAX        EntitySensorValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION       
        "The low thresold value for the given sensor at which point
        the entity's alarm status is set to warning."
    ::= { aristaEntSensorThresholdEntry 1 }

aristaEntSensorThresholdLowCritical  OBJECT-TYPE
    SYNTAX        EntitySensorValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION       
        "The low critical value for the given sensor at which point
        the entity's alarm status is set to critical."
    ::= { aristaEntSensorThresholdEntry 2 }

aristaEntSensorThresholdHighWarning   OBJECT-TYPE
    SYNTAX        EntitySensorValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION       
        "The high thresold value for the given sensor at which point
        the entity's alarm status is set to warning."
    ::= { aristaEntSensorThresholdEntry 3 }

aristaEntSensorThresholdHighCritical  OBJECT-TYPE
    SYNTAX        EntitySensorValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION       
        "The high critical value for the given sensor at which point
        the entity's alarm status is set to critical."
    ::= { aristaEntSensorThresholdEntry 4 }

aristaEntSensorStatusDescr            OBJECT-TYPE
    SYNTAX        SnmpAdminString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION       
        "A textual description of the current status of the sensor.
        It serves as a human-readable representation of the operating 
        status including any threshold alerts."
    ::= { aristaEntSensorThresholdEntry 5 }

aristaFanStateTable OBJECT-TYPE
   SYNTAX           SEQUENCE OF AristaFanStateEntry
   MAX-ACCESS       not-accessible
   STATUS           current
   DESCRIPTION
      "This table contains brief fan state information for fan tray slot fans
      and power supply fans.  Once a fan is inserted for the first time, the
      corresponding table entry will remain persistent even if that fan
      is subsequently removed from the fan slot; the entry will be deleted
      only if the supervisor is rebooted."
   ::= { aristaEntSensorMibObjects 2 }

aristaFanStateEntry OBJECT-TYPE
   SYNTAX           AristaFanStateEntry
   MAX-ACCESS       not-accessible
   STATUS           current
   DESCRIPTION
      "A single row containing brief information related to fan."
   INDEX            { entPhysicalIndex }
   ::=  { aristaFanStateTable 1 }

AristaFanStateEntry ::= SEQUENCE {
   aristaFanStateDescr  SnmpAdminString,
   aristaFanStateOper   AristaEntityOperState
}

aristaFanStateDescr       OBJECT-TYPE
    SYNTAX        SnmpAdminString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "A textual description of the logical entity."
    ::= { aristaFanStateEntry 1 }

aristaFanStateOper  OBJECT-TYPE
       SYNTAX      AristaEntityOperState
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The operational state for this entity.

            A value of 'testing' means that entity currently being
            tested and cannot therefore report whether it is
            operational or not.

            A value of 'disabled' means that an entity is totally
            inoperable and unable to provide service both to entities
            within its containment hierarchy, or to other receivers
            of its service as defined in ways outside the scope of
            this MIB.

            A value of 'enabled' means that an entity is fully or
            partially operable and able to provide service both to
            entities within its containment hierarchy, or to other
            receivers of its service as defined in ways outside the
            scope of this MIB.

            A value of 'notInstalled' means that an entity is no longer
            physically present and unable to provide service."
       ::= { aristaFanStateEntry 2 }

-- Notifications --

aristaEntSensorAlarm  NOTIFICATION-TYPE
    OBJECTS {
        entPhysicalDescr, entPhySensorValue, entStateAlarm
    }                      
    STATUS            current
    DESCRIPTION
        "This notification is generated under 2 conditions:
           a) When the value of the sensor value crosses a supported
           low or high threshold into warning or critical status.
           b) If previously the sensor value was in a warning or
           critical status but returns back to a normal status."
    ::= { aristaEntSensorMibNotifications 1 }

        
-- Conformance and Compliance

aristaEntSensorMibCompliances OBJECT IDENTIFIER
    ::= { aristaEntSensorMibConformance 1 }

aristaEntSensorMibGroups OBJECT IDENTIFIER
    ::= { aristaEntSensorMibConformance 2 }

aristaEntSensorMibCompliance  MODULE-COMPLIANCE
    STATUS        current
    DESCRIPTION
        "The compliance statement for Arista switches that implement
        the ARISTA-ENTITY-SENSOR-MIB."
    MODULE        -- this module
    MANDATORY-GROUPS {
        aristaEntSensorThresholdGroup,
        aristaEntSensorNotificationsGroup,
        aristaFanStateGroup
    }
    ::= { aristaEntSensorMibCompliances 1 }

aristaEntSensorThresholdGroup   OBJECT-GROUP
    OBJECTS  {
        aristaEntSensorThresholdLowWarning,
        aristaEntSensorThresholdLowCritical,
        aristaEntSensorThresholdHighWarning,
        aristaEntSensorThresholdHighCritical,
        aristaEntSensorStatusDescr
    }
    STATUS   current
    DESCRIPTION
        "The collection of objects that provide threshold
        information for the sensors in the system."
    ::= { aristaEntSensorMibGroups 1 }

aristaEntSensorNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        aristaEntSensorAlarm
    }
    STATUS   current
    DESCRIPTION
        "The collection of notifications generated by the system if
        sensor(s) change value are not within the acceptable operating
        range."
    ::= { aristaEntSensorMibGroups 2 }

aristaFanStateGroup             OBJECT-GROUP
    OBJECTS  {
        aristaFanStateDescr,
        aristaFanStateOper
    }
    STATUS   current
    DESCRIPTION
        "The collection of objects that provide brief fan state
        information in the system."
    ::= { aristaEntSensorMibGroups 3 }

END
        
        
