--
-- DCP-ALARM-MIB.mib
-- Smartoptics DCP Alarm Enterprise Specific MIB.
--
-- Copyright (c) 2018, Smartoptics
-- All rights reserved
--

DCP-ALARM-MIB DEFINITIONS ::= BEGIN
IMPORTS
    dcpGeneric
        FROM DCP-MIB
    ItuPerceivedSeverity
        FROM SO-TC-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    Unsigned32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    DisplayString, DateAndTime, TEXTUAL-CONVENTION
        FROM SNMPv2-TC;


-- September 11, 2018 at 21:26 GMT
-- 1.3.6.1.4.1.30826.2.2.2
dcpAlarm MODULE-IDENTITY 
    LAST-UPDATED "202006240800Z"
    ORGANIZATION "Smartoptics."
    CONTACT-INFO "http://www.smartoptics.com"
    DESCRIPTION "This is the enterprise specific DCP ALARM MIB for Smartoptics"

    REVISION "202006240800Z"  -- June 24.
    DESCRIPTION "Addition of interfaceDescription attribute in alarmActive."

    REVISION "201810081444Z"
    DESCRIPTION "The initial revision"
::= { dcpGeneric 2 }

--  Textual conventions
--
-- definitions of the textual convetions
--

DcpAlarmIndex ::= TEXTUAL-CONVENTION
    DISPLAY-HINT
    "d"
    STATUS current
    DESCRIPTION
    "Unique alarm index."
    SYNTAX Unsigned32 (0..29999)


--  Node definitions
-- 
-- 1.3.6.1.4.1.30826.2.2.2.1
dcpAlarmGeneral OBJECT IDENTIFIER ::= { dcpAlarm 1 }


-- 1.3.6.1.4.1.30826.2.2.2.1.1
dcpAlarmGeneralList OBJECT IDENTIFIER ::= { dcpAlarmGeneral 1 }


-- 1.3.6.1.4.1.30826.2.2.2.1.1.1
dcpAlarmGeneralHighestSeverity OBJECT-TYPE
    SYNTAX ItuPerceivedSeverity
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The highest severity of the active alarms in the system."
::= { dcpAlarmGeneralList 1 }


-- 1.3.6.1.4.1.30826.2.2.2.1.1.2
dcpAlarmGeneralActiveCritical OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The number of active critical alarms in the system."
::= { dcpAlarmGeneralList 2 }


-- 1.3.6.1.4.1.30826.2.2.2.1.1.3
dcpAlarmGeneralActiveMajor OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The number of active major alarms in the system."
::= { dcpAlarmGeneralList 3 }


-- 1.3.6.1.4.1.30826.2.2.2.1.1.4
dcpAlarmGeneralActiveMinor OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
   "The number of active minor alarms in the system."
::= { dcpAlarmGeneralList 4 }


-- 1.3.6.1.4.1.30826.2.2.2.1.1.5
dcpAlarmGeneralActiveWarning OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The number of active warning alarms in the system."
::= { dcpAlarmGeneralList 5 }


-- 1.3.6.1.4.1.30826.2.2.2.1.1.6
dcpAlarmGeneralNumberActiveList OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The number of active alarms in the system. This is also the 
	number of alarms in the dcpAlarmActiveLTable"
::= { dcpAlarmGeneralList 6 }


-- 1.3.6.1.4.1.30826.2.2.2.1.1.7
dcpAlarmGeneralNumberLogList OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The number of alarms(active and deactivated) there is in the 
	system. This number matches the number of rows in the 
	dcpAlarmLogTable."
::= { dcpAlarmGeneralList 7 }


-- 1.3.6.1.4.1.30826.2.2.2.1.1.8
dcpAlarmGeneralLastTrapSeqNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The sequece number used when the last Enterprise trap was sent."
::= { dcpAlarmGeneralList 8 }


-- 1.3.6.1.4.1.30826.2.2.2.2
dcpAlarmObjects OBJECT IDENTIFIER ::= { dcpAlarm 2 }


-- 1.3.6.1.4.1.30826.2.2.2.2.1
dcpAlarmActiveListTable OBJECT-TYPE
    SYNTAX SEQUENCE OF DcpAlarmActiveListEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "Keeps a list of the current active alarms in the system."
::= { dcpAlarmObjects 1 }


-- 1.3.6.1.4.1.30826.2.2.2.2.1.1
dcpAlarmActiveListEntry OBJECT-TYPE
    SYNTAX DcpAlarmActiveListEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "Description."
INDEX { dcpAlarmActiveListIndex }
::= { dcpAlarmActiveListTable 1 }


DcpAlarmActiveListEntry ::=
    SEQUENCE { 
        dcpAlarmActiveListIndex
        DcpAlarmIndex,
        dcpAlarmActiveListLocation
        DisplayString,
        dcpAlarmActiveListInterfaceName
        DisplayString,
        dcpAlarmActiveListText
        DisplayString,
        dcpAlarmActiveListSeverity
        ItuPerceivedSeverity,
        dcpAlarmActiveListStartTime
        DateAndTime,
        dcpAlarmActiveListSeqNumber
        Unsigned32,
        dcpAlarmActiveListInterfaceDescription
        DisplayString
 }

-- 1.3.6.1.4.1.30826.2.2.2.2.1.1.1
dcpAlarmActiveListIndex OBJECT-TYPE
    SYNTAX DcpAlarmIndex
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "Unique index assigned to each alarm."
::= { dcpAlarmActiveListEntry 1 }


-- 1.3.6.1.4.1.30826.2.2.2.2.1.1.2
dcpAlarmActiveListLocation OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The location from where the alarm originated.
     chassis, slot 1, slot 2, psu-1/1, psu-1/2 or fan-1/1"
::= { dcpAlarmActiveListEntry 2 }


-- 1.3.6.1.4.1.30826.2.2.2.2.1.1.3
dcpAlarmActiveListInterfaceName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The interface name from where the alarm originated. If no 
     interface this value is empty.
     if-c/s/i where c = chassis, s = slot, i = interface
     or 
     if-c/channelid where c = chassis."

::= { dcpAlarmActiveListEntry 3 }


-- 1.3.6.1.4.1.30826.2.2.2.2.1.1.4
dcpAlarmActiveListText OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The text for the alarm."
::= { dcpAlarmActiveListEntry 4 }


-- 1.3.6.1.4.1.30826.2.2.2.2.1.1.5
dcpAlarmActiveListSeverity OBJECT-TYPE
    SYNTAX ItuPerceivedSeverity
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The severity of the alarm as defined in ITU-T X.733."
::= { dcpAlarmActiveListEntry 5 }


-- 1.3.6.1.4.1.30826.2.2.2.2.1.1.6
dcpAlarmActiveListStartTime OBJECT-TYPE
    SYNTAX DateAndTime
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The time when the alarm was activated."
::= { dcpAlarmActiveListEntry 6 }

-- 1.3.6.1.4.1.30826.2.2.2.2.1.1.7
dcpAlarmActiveListSeqNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "This OID currently always returns 0."
::= { dcpAlarmActiveListEntry 7 }

-- 1.3.6.1.4.1.30826.2.2.2.2.1.1.8
dcpAlarmActiveListInterfaceDescription OBJECT-TYPE
    SYNTAX DisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The interface description field from where the alarm originated."
::= { dcpAlarmActiveListEntry 8 }

-- 1.3.6.1.4.1.30826.2.2.2.2.2
dcpAlarmLogTable OBJECT-TYPE
    SYNTAX SEQUENCE OF DcpAlarmLogEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "Keeps a list of the current active and deactivated alarms in
	the system."
::= { dcpAlarmObjects 2 }


-- 1.3.6.1.4.1.30826.2.2.2.2.2.1
dcpAlarmLogEntry OBJECT-TYPE
    SYNTAX DcpAlarmLogEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
    "Description."
INDEX { dcpAlarmLogListIndex }
::= { dcpAlarmLogTable 1 }


DcpAlarmLogEntry ::=
    SEQUENCE { 
        dcpAlarmLogListIndex
        DcpAlarmIndex,
        dcpAlarmLogListLocation
        DisplayString,
        dcpAlarmLogListInterfaceName
        DisplayString,
        dcpAlarmLogListText
        DisplayString,
        dcpAlarmLogListSeverity
        ItuPerceivedSeverity,
        dcpAlarmLogListStartTime
        DateAndTime,
        dcpAlarmLogListEndTime
        DateAndTime,
        dcpAlarmLogListSeqNumber
        Unsigned32,
        dcpAlarmLogListInterfaceDescription
        DisplayString
        }

-- 1.3.6.1.4.1.30826.2.2.2.2.2.1.1
dcpAlarmLogListIndex OBJECT-TYPE
    SYNTAX DcpAlarmIndex
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "Unique index assigned to each alarm."
::= { dcpAlarmLogEntry 1 }


-- 1.3.6.1.4.1.30826.2.2.2.2.2.1.2
dcpAlarmLogListLocation OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The location from where the alarm originated.
	chassis, slot 1, slot 2, psu-1/1, psu-1/2 or fan-1/1"
::= { dcpAlarmLogEntry 2 }


-- 1.3.6.1.4.1.30826.2.2.2.2.2.1.3
dcpAlarmLogListInterfaceName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The interface name from where the alarm originated. If no 
	interface this value is empty.
	if-c/s/i where c = chassis, s = slot and i = interface number."
::= { dcpAlarmLogEntry 3 }


-- 1.3.6.1.4.1.30826.2.2.2.2.2.1.4
dcpAlarmLogListText OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The alarm text for the alarm."
::= { dcpAlarmLogEntry 4 }


-- 1.3.6.1.4.1.30826.2.2.2.2.2.1.5
dcpAlarmLogListSeverity OBJECT-TYPE
    SYNTAX ItuPerceivedSeverity
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The severity of the alarm as defined in ITU-T X.733."
::= { dcpAlarmLogEntry 5 }


-- 1.3.6.1.4.1.30826.2.2.2.2.2.1.6
dcpAlarmLogListStartTime OBJECT-TYPE
    SYNTAX DateAndTime
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The time when the alarm was activated."
::= { dcpAlarmLogEntry 6 }


-- 1.3.6.1.4.1.30826.2.2.2.2.2.1.7
dcpAlarmLogListEndTime OBJECT-TYPE
    SYNTAX DateAndTime
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The time when the alarm was deactivated."
::= { dcpAlarmLogEntry 7 }

-- 1.3.6.1.4.1.30826.2.2.2.2.2.1.8
dcpAlarmLogListSeqNumber OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "This OID currently always returns 0."
::= { dcpAlarmLogEntry 8 }

-- 1.3.6.1.4.1.30826.2.2.2.2.2.1.9
dcpAlarmLogListInterfaceDescription OBJECT-TYPE
    SYNTAX DisplayString (SIZE(0..128))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
    "The interface description field from where the alarm originated."
::= { dcpAlarmLogEntry 9 }


-- 1.3.6.1.4.1.30826.2.2.2.3
dcpAlarmMIBNotifications OBJECT IDENTIFIER ::= { dcpAlarm 3 }

-- 1.3.6.1.4.1.30826.2.2.2.3.0
dcpAlarmNotification OBJECT IDENTIFIER ::= { dcpAlarmMIBNotifications 0 }


-- 1.3.6.1.4.1.30826.2.2.2.3.0.1
dcpAlarmNotificationCleared NOTIFICATION-TYPE
    OBJECTS { dcpAlarmLogListIndex, dcpAlarmLogListLocation, dcpAlarmLogListInterfaceName, dcpAlarmLogListText, dcpAlarmLogListSeverity, 
dcpAlarmLogListStartTime, dcpAlarmLogListEndTime, dcpAlarmLogListSeqNumber, dcpAlarmLogListInterfaceDescription }
    STATUS current
    DESCRIPTION 
    "Sent when an alarm is deactivated."
::= { dcpAlarmNotification 1 }


-- 1.3.6.1.4.1.30826.2.2.2.3.0.2
dcpAlarmNotificationCritical NOTIFICATION-TYPE
    OBJECTS { dcpAlarmLogListIndex, dcpAlarmLogListLocation, dcpAlarmLogListInterfaceName, dcpAlarmLogListText, dcpAlarmLogListSeverity, 
dcpAlarmLogListStartTime, dcpAlarmLogListSeqNumber, dcpAlarmLogListInterfaceDescription }
    STATUS current
    DESCRIPTION 
    "Sent when an alarm of severity critical is activated."
::= { dcpAlarmNotification 2 }


-- 1.3.6.1.4.1.30826.2.2.2.3.0.3
dcpAlarmNotificationMajor NOTIFICATION-TYPE
    OBJECTS { dcpAlarmLogListIndex, dcpAlarmLogListLocation, dcpAlarmLogListInterfaceName, dcpAlarmLogListText, dcpAlarmLogListSeverity, 
dcpAlarmLogListStartTime, dcpAlarmLogListSeqNumber, dcpAlarmLogListInterfaceDescription }
    STATUS current
    DESCRIPTION 
    "Sent when an alarm of severity major is activated."
::= { dcpAlarmNotification 3 }


-- 1.3.6.1.4.1.30826.2.2.2.3.0.4
dcpAlarmNotificationMinor NOTIFICATION-TYPE
    OBJECTS { dcpAlarmLogListIndex, dcpAlarmLogListLocation, dcpAlarmLogListInterfaceName, dcpAlarmLogListText, dcpAlarmLogListSeverity, 
dcpAlarmLogListStartTime, dcpAlarmLogListSeqNumber, dcpAlarmLogListInterfaceDescription }
    STATUS current
    DESCRIPTION 
    "Sent when an alarm of severity minor is activated."
::= { dcpAlarmNotification 4 }


-- 1.3.6.1.4.1.30826.2.2.2.3.0.5
dcpAlarmNotificationWarning NOTIFICATION-TYPE
    OBJECTS { dcpAlarmLogListIndex, dcpAlarmLogListLocation, dcpAlarmLogListInterfaceName, dcpAlarmLogListText, dcpAlarmLogListSeverity, 
dcpAlarmLogListStartTime, dcpAlarmLogListSeqNumber, dcpAlarmLogListInterfaceDescription }
    STATUS current
    DESCRIPTION 
    "Sent when an alarm of severity warning is activated."
::= { dcpAlarmNotification 5 }



--   ----------------------------------------------------
-- Conformance
-- ----------------------------------------------------
-- 1.3.6.1.4.1.30826.2.2.2.4
dcpAlarmMIBCompliance OBJECT IDENTIFIER ::= { dcpAlarm 4 }

-- ----------------------------------------------------
-- Groups
-- ----------------------------------------------------

-- 1.3.6.1.4.1.30826.2.2.2.4.1
dcpAlarmMIBGroups OBJECT IDENTIFIER ::= { dcpAlarmMIBCompliance 1 }

-- ----------------------------------------------------
-- 1.3.6.1.4.1.30826.2.2.2.4.1.1
dcpAlarmGeneralGroupV1 OBJECT-GROUP
    OBJECTS { dcpAlarmGeneralHighestSeverity, dcpAlarmGeneralActiveCritical, dcpAlarmGeneralActiveMajor, dcpAlarmGeneralActiveMinor,
    dcpAlarmGeneralActiveWarning, dcpAlarmGeneralNumberActiveList, dcpAlarmGeneralNumberLogList, dcpAlarmGeneralLastTrapSeqNumber }
    STATUS current
    DESCRIPTION 
    "The general alarm objects V1."
::= { dcpAlarmMIBGroups 1 }


-- 1.3.6.1.4.1.30826.2.2.2.4.1.2
dcpAlarmNotificationGroupV1 NOTIFICATION-GROUP
    NOTIFICATIONS { dcpAlarmNotificationCleared, dcpAlarmNotificationCritical, dcpAlarmNotificationMajor, dcpAlarmNotificationMinor, dcpAlarmNotificationWarning
 }
    STATUS current
    DESCRIPTION 
    "The alarm notifications V1."
::= { dcpAlarmMIBGroups 2 }


-- 1.3.6.1.4.1.30826.2.2.2.4.1.3
dcpAlarmActiveListGroupV1 OBJECT-GROUP
    OBJECTS { dcpAlarmActiveListIndex, dcpAlarmActiveListLocation, dcpAlarmActiveListInterfaceName,
    dcpAlarmActiveListText, dcpAlarmActiveListSeverity, dcpAlarmActiveListStartTime, dcpAlarmActiveListSeqNumber }
    STATUS deprecated
    DESCRIPTION 
    "The active alarm list objects V1."
::= { dcpAlarmMIBGroups 3 }

-- 1.3.6.1.4.1.30826.2.2.2.4.1.4
dcpAlarmLogListGroupV1 OBJECT-GROUP
    OBJECTS { dcpAlarmLogListIndex, dcpAlarmLogListLocation, dcpAlarmLogListInterfaceName,
    dcpAlarmLogListText, dcpAlarmLogListSeverity, dcpAlarmLogListStartTime, dcpAlarmLogListEndTime, dcpAlarmLogListSeqNumber }
    STATUS deprecated
    DESCRIPTION 
    "The alarm log list objects V1."
::= { dcpAlarmMIBGroups 4 }

-- 1.3.6.1.4.1.30826.2.2.2.4.1.5
dcpAlarmLogListGroupV2 OBJECT-GROUP
    OBJECTS { dcpAlarmLogListIndex, dcpAlarmLogListLocation, dcpAlarmLogListInterfaceName, dcpAlarmLogListInterfaceDescription,
    dcpAlarmLogListText, dcpAlarmLogListSeverity, dcpAlarmLogListStartTime, dcpAlarmLogListEndTime, dcpAlarmLogListSeqNumber, dcpAlarmLogListInterfaceDescription }
    STATUS current
    DESCRIPTION 
    "The alarm log list objects V2."
::= { dcpAlarmMIBGroups 5 }

-- 1.3.6.1.4.1.30826.2.2.2.4.1.6
dcpAlarmActiveListGroupV2 OBJECT-GROUP
    OBJECTS { dcpAlarmActiveListIndex, dcpAlarmActiveListLocation, dcpAlarmActiveListInterfaceName,
    dcpAlarmActiveListText, dcpAlarmActiveListSeverity, dcpAlarmActiveListStartTime, dcpAlarmActiveListSeqNumber, dcpAlarmActiveListInterfaceDescription }
    STATUS current
    DESCRIPTION 
    "The active alarm list objects V2."
::= { dcpAlarmMIBGroups 6 }


-- 1.3.6.1.4.1.30826.2.2.2.4.2
dcpAlarmMIBCompliances OBJECT IDENTIFIER ::= { dcpAlarmMIBCompliance 2 }

-- 1.3.6.1.4.1.30826.2.2.2.4.2.1
dcpAlarmBasicComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
    "Basic implementation requirements for the DCP-ALARM-MIB V1."
    MODULE
    MANDATORY-GROUPS {
        dcpAlarmGeneralGroupV1,
        dcpAlarmNotificationGroupV1,
        dcpAlarmActiveListGroupV1,
        dcpAlarmLogListGroupV1}
::= { dcpAlarmMIBCompliances 1 }

-- 1.3.6.1.4.1.30826.2.2.2.4.2.2
dcpAlarmBasicComplV2 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
    "Basic requirements for the DCP-ALARM-MIB Compliance V2."
    MODULE
    MANDATORY-GROUPS {
        dcpAlarmGeneralGroupV1,
        dcpAlarmNotificationGroupV1,
        dcpAlarmActiveListGroupV1,
        dcpAlarmLogListGroupV2}
::= { dcpAlarmMIBCompliances 2}

-- 1.3.6.1.4.1.30826.2.2.2.4.2.3
dcpAlarmBasicComplV3 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
    "Basic requirements for the DCP-ALARM-MIB Compliance V3."
    MODULE
    MANDATORY-GROUPS {
        dcpAlarmGeneralGroupV1,
        dcpAlarmNotificationGroupV1,
        dcpAlarmActiveListGroupV2,
        dcpAlarmLogListGroupV2}
::= { dcpAlarmMIBCompliances 3}

END

--
-- DCP-ALARM-MIB.mib
--
