-- *****************************************************************
-- ALARM-MIB:  Cisco private MIB
-- ****************************************************************

CIE1000-ALARM-MIB DEFINITIONS ::= BEGIN

IMPORTS
    NOTIFICATION-GROUP, MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
    NOTIFICATION-TYPE, MODULE-IDENTITY, OBJECT-TYPE FROM SNMPv2-SMI
    TEXTUAL-CONVENTION FROM SNMPv2-TC
    cie1000SwitchMgmt FROM CISCO-IE1000-MIB
    CIE1000DisplayString FROM CIE1000-TC
    CIE1000RowEditorState FROM CIE1000-TC
    TruthValue FROM SNMPv2-TC
    ;

cie1000AlarmMib MODULE-IDENTITY
    LAST-UPDATED "201602080000Z"
    ORGANIZATION
        "Cisco Systems, Inc."
    CONTACT-INFO
        "Cisco Systems
	 Customer Service

	 Postal: 170 West Tasman Drive
	 San Jose, CA  95134
	 USA

	 Tel: +1 800 553-NETS

	 E-mail: cs-snmp@cisco.com"
    DESCRIPTION
        "This is a private mib for alarms"
    REVISION    "201602080000Z"
    DESCRIPTION
        "Initial version"
    ::= { cie1000SwitchMgmt 136 }


cie1000AlarmMibObjects OBJECT IDENTIFIER
    ::= { cie1000AlarmMib 1 }

cie1000AlarmConfig OBJECT IDENTIFIER
    ::= { cie1000AlarmMibObjects 2 }

cie1000AlarmConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000AlarmConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table is the list of configured alarms. The index is the name of
         the alarm"
    ::= { cie1000AlarmConfig 1 }

cie1000AlarmConfigEntry OBJECT-TYPE
    SYNTAX      CIE1000AlarmConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An index is a dotted name e.g. alarm.port.status"
    INDEX       { cie1000AlarmConfigAlarmName }
    ::= { cie1000AlarmConfigTable 1 }

CIE1000AlarmConfigEntry ::= SEQUENCE {
    cie1000AlarmConfigAlarmName   CIE1000DisplayString,
    cie1000AlarmConfigExpression  CIE1000DisplayString,
    cie1000AlarmConfigAction      CIE1000RowEditorState
}

cie1000AlarmConfigAlarmName OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..99))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The name of the alarm"
    ::= { cie1000AlarmConfigEntry 1 }

cie1000AlarmConfigExpression OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..1023))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The expression defining the alarm."
    ::= { cie1000AlarmConfigEntry 2 }

cie1000AlarmConfigAction OBJECT-TYPE
    SYNTAX      CIE1000RowEditorState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action"
    ::= { cie1000AlarmConfigEntry 100 }

cie1000AlarmConfigTableRowEditor OBJECT IDENTIFIER
    ::= { cie1000AlarmConfig 2 }

cie1000AlarmConfigTableRowEditorAlarmName OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..99))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The name of the alarm"
    ::= { cie1000AlarmConfigTableRowEditor 1 }

cie1000AlarmConfigTableRowEditorExpression OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..1023))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The expression defining the alarm."
    ::= { cie1000AlarmConfigTableRowEditor 2 }

cie1000AlarmConfigTableRowEditorAction OBJECT-TYPE
    SYNTAX      CIE1000RowEditorState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Action"
    ::= { cie1000AlarmConfigTableRowEditor 100 }

cie1000AlarmStatus OBJECT IDENTIFIER
    ::= { cie1000AlarmMibObjects 3 }

cie1000AlarmStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000AlarmStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table is the list of alarm nodes. The index is the name of the
         alarm node"
    ::= { cie1000AlarmStatus 1 }

cie1000AlarmStatusEntry OBJECT-TYPE
    SYNTAX      CIE1000AlarmStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An index is a dotted name e.g. alarm.port.status"
    INDEX       { cie1000AlarmStatusAlarmName }
    ::= { cie1000AlarmStatusTable 1 }

CIE1000AlarmStatusEntry ::= SEQUENCE {
    cie1000AlarmStatusAlarmName      CIE1000DisplayString,
    cie1000AlarmStatusSuppressed     TruthValue,
    cie1000AlarmStatusActive         TruthValue,
    cie1000AlarmStatusExposedActive  TruthValue
}

cie1000AlarmStatusAlarmName OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..99))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The name of the alarm"
    ::= { cie1000AlarmStatusEntry 1 }

cie1000AlarmStatusSuppressed OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates whether the alarm subtree is suppressed. When a subtree is
         suppressed, the status does not contribute to the state of the superior
         alarm tree."
    ::= { cie1000AlarmStatusEntry 2 }

cie1000AlarmStatusActive OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates whether the alarm is active"
    ::= { cie1000AlarmStatusEntry 3 }

cie1000AlarmStatusExposedActive OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The exposed alarm status."
    ::= { cie1000AlarmStatusEntry 4 }

cie1000AlarmControl OBJECT IDENTIFIER
    ::= { cie1000AlarmMibObjects 4 }

cie1000AlarmControlTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CIE1000AlarmControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table is the list of alarm nodes. The index is the name of the
         alarm node"
    ::= { cie1000AlarmControl 1 }

cie1000AlarmControlEntry OBJECT-TYPE
    SYNTAX      CIE1000AlarmControlEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An index is a dotted name e.g. alarm.port.status"
    INDEX       { cie1000AlarmControlAlarmName }
    ::= { cie1000AlarmControlTable 1 }

CIE1000AlarmControlEntry ::= SEQUENCE {
    cie1000AlarmControlAlarmName  CIE1000DisplayString,
    cie1000AlarmControlSuppress   TruthValue
}

cie1000AlarmControlAlarmName OBJECT-TYPE
    SYNTAX      CIE1000DisplayString (SIZE(0..99))
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "The name of the alarm"
    ::= { cie1000AlarmControlEntry 1 }

cie1000AlarmControlSuppress OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicates whether to suppress the alarm subtree. When a subtree is
         suppressed, the status does not contribute to the state of the superior
         alarm tree."
    ::= { cie1000AlarmControlEntry 2 }

cie1000AlarmTrap OBJECT IDENTIFIER
    ::= { cie1000AlarmMibObjects 6 }

cie1000AlarmTrapStatusAdd NOTIFICATION-TYPE
    OBJECTS     { cie1000AlarmStatusAlarmName,
                  cie1000AlarmStatusSuppressed,
                  cie1000AlarmStatusActive,
                  cie1000AlarmStatusExposedActive }
    STATUS      current
    DESCRIPTION
        "This trap signals that a row has been added. The index(es) and value(s)
         of the row is included in the trap."

    ::= { cie1000AlarmTrap 1 }

cie1000AlarmTrapStatusMod NOTIFICATION-TYPE
    OBJECTS     { cie1000AlarmStatusAlarmName,
                  cie1000AlarmStatusSuppressed,
                  cie1000AlarmStatusActive,
                  cie1000AlarmStatusExposedActive }
    STATUS      current
    DESCRIPTION
        "This trap signals that one or more of the objects included in the trap
          has been updated."

    ::= { cie1000AlarmTrap 2 }

cie1000AlarmTrapStatusDel NOTIFICATION-TYPE
    OBJECTS     { cie1000AlarmStatusAlarmName }
    STATUS      current
    DESCRIPTION
        "This trap signals that a row has been deleted. The index(es) of the
         row is included in the trap."

    ::= { cie1000AlarmTrap 3 }

cie1000AlarmMibConformance OBJECT IDENTIFIER
    ::= { cie1000AlarmMib 2 }

cie1000AlarmMibCompliances OBJECT IDENTIFIER
    ::= { cie1000AlarmMibConformance 1 }

cie1000AlarmMibGroups OBJECT IDENTIFIER
    ::= { cie1000AlarmMibConformance 2 }

cie1000AlarmConfigTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000AlarmConfigAlarmName,
                  cie1000AlarmConfigExpression,
                  cie1000AlarmConfigAction }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000AlarmMibGroups 1 }

cie1000AlarmConfigTableRowEditorInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000AlarmConfigTableRowEditorAlarmName,
                  cie1000AlarmConfigTableRowEditorExpression,
                  cie1000AlarmConfigTableRowEditorAction }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000AlarmMibGroups 2 }

cie1000AlarmStatusInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000AlarmStatusAlarmName,
                  cie1000AlarmStatusSuppressed,
                  cie1000AlarmStatusActive,
                  cie1000AlarmStatusExposedActive }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000AlarmMibGroups 3 }

cie1000AlarmControlTableInfoGroup OBJECT-GROUP
    OBJECTS     { cie1000AlarmControlAlarmName,
                  cie1000AlarmControlSuppress }
    STATUS      current
    DESCRIPTION
        "A collection of objects."
    ::= { cie1000AlarmMibGroups 4 }

cie1000AlarmTrapStatusAddInfoGroup NOTIFICATION-GROUP
    NOTIFICATIONS { cie1000AlarmTrapStatusAdd }
    STATUS      current
    DESCRIPTION
        "Information group containing a trap."
    ::= { cie1000AlarmMibGroups 5 }

cie1000AlarmTrapStatusModInfoGroup NOTIFICATION-GROUP
    NOTIFICATIONS { cie1000AlarmTrapStatusMod }
    STATUS      current
    DESCRIPTION
        "Information group containing a trap."
    ::= { cie1000AlarmMibGroups 6 }

cie1000AlarmTrapStatusDelInfoGroup NOTIFICATION-GROUP
    NOTIFICATIONS { cie1000AlarmTrapStatusDel }
    STATUS      current
    DESCRIPTION
        "Information group containing a trap."
    ::= { cie1000AlarmMibGroups 7 }

cie1000AlarmMibCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for the implementation."

    MODULE      -- this module

    MANDATORY-GROUPS { cie1000AlarmConfigTableInfoGroup,
                       cie1000AlarmConfigTableRowEditorInfoGroup,
                       cie1000AlarmStatusInfoGroup,
                       cie1000AlarmControlTableInfoGroup,
                       cie1000AlarmTrapStatusAddInfoGroup,
                       cie1000AlarmTrapStatusModInfoGroup,
                       cie1000AlarmTrapStatusDelInfoGroup }

    ::= { cie1000AlarmMibCompliances 1 }

END
