TIMETRA-POWER-SHELF-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-COMPLIANCE, NOTIFICATION-GROUP,
    OBJECT-GROUP
                                                         FROM SNMPv2-CONF
    MODULE-IDENTITY, NOTIFICATION-TYPE,
    OBJECT-TYPE, Unsigned32
                                                         FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, TimeStamp
                                                         FROM SNMPv2-TC
    TmnxHwIndex, tmnxCpmPowerShelfCommsFail,
    tmnxHwClass
                                                         FROM TIMETRA-CHASSIS-MIB
    timetraSRMIBModules, tmnxSRConfs,
    tmnxSRNotifyPrefix, tmnxSRObjs
                                                         FROM TIMETRA-GLOBAL-MIB
    TItemDescription, TNamedItemOrEmpty
                                                         FROM TIMETRA-TC-MIB
    ;

timetraPowerShelfMIBModule       MODULE-IDENTITY
    LAST-UPDATED "201709120000Z"
    ORGANIZATION "Nokia"
    CONTACT-INFO
        "Nokia SROS Support
         Web: http://www.nokia.com"
    DESCRIPTION
        "This document is the SNMP MIB module for the Nokia SROS implementation
         of Power Shelf.

         Copyright (c) 2017-2018 Nokia. All rights reserved. Reproduction of
         this document is authorized on the condition that the foregoing
         copyright notice is included.

         This SNMP MIB module (Specification) embodies Nokia's
         proprietary intellectual property.  Nokia retains all
         title and ownership in the Specification, including any
         revisions.

         Nokia grants all interested parties a non-exclusive license to use and
         distribute an unmodified copy of this Specification in connection with
         management of Nokia products, and without fee, provided this copyright
         notice and license appear on all copies.

         This Specification is supplied `as is', and Nokia makes no warranty,
         either express or implied, as to the use, operation, condition, or
         performance of the Specification."

    REVISION    "201709120000Z"
    DESCRIPTION
        "Rev 0.1        12 Sep 2017 00:00
         Initial Version of the TIMETRA-POWER-SHELF-MIB."

    ::= { timetraSRMIBModules 118 }

TmnxPowerShelfType               ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "TmnxPowerShelfType is used to identify a specific type of Power Shelf."
    SYNTAX      Unsigned32

TmnxPowerShelfSuppType           ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The TmnxPowerShelfSuppType is a bit-mask specifying the power shelf
         type supported for a specific chassis.

         When multiple bits are set, it can be used to identify a set or list
         of power shelf types that can be used in the tmnxPowerShelfTable."
    SYNTAX      BITS {
        invalidPowerShelfType (0),
        unassigned            (1),
        suppPowerShelfType2   (2),
        suppPowerShelfType3   (3),
        suppPowerShelfType4   (4),
        suppPowerShelfType5   (5),
        suppPowerShelfType6   (6),
        suppPowerShelfType7   (7),
        suppPowerShelfType8   (8),
        suppPowerShelfType9   (9),
        suppPowerShelfType10  (10),
        suppPowerShelfType11  (11),
        suppPowerShelfType12  (12),
        suppPowerShelfType13  (13),
        suppPowerShelfType14  (14),
        suppPowerShelfType15  (15)
    }

tmnxPowerShelfObjects            OBJECT IDENTIFIER ::= { tmnxSRObjs 118 }

tmnxPowerShelfConfigTimestamps   OBJECT IDENTIFIER ::= { tmnxPowerShelfObjects 1 }

tmnxPowerShelfTableLastChanged   OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfTableLastChanged indicates the time, since
         system startup, when tmnxPowerShelfTable last changed configuration."
    ::= { tmnxPowerShelfConfigTimestamps 1 }

tmnxPowerShelfTypeTable          OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPowerShelfTypeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPowerShelfTypeTable has an entry for each Power Shelf type
         supported by the system."
    ::= { tmnxPowerShelfObjects 2 }

tmnxPowerShelfTypeEntry          OBJECT-TYPE
    SYNTAX      TmnxPowerShelfTypeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Each row entry represents an Nokia SROS series Power Shelf type. Rows
         in this table are created by the agent at initialization and cannot be
         created or destroyed by SNMP Set requests."
    INDEX       { tmnxPowerShelfTypeIndex }
    ::= { tmnxPowerShelfTypeTable 1 }

TmnxPowerShelfTypeEntry          ::= SEQUENCE
{
    tmnxPowerShelfTypeIndex          TmnxPowerShelfType,
    tmnxPowerShelfTypeName           TNamedItemOrEmpty,
    tmnxPowerShelfTypeDescription    TItemDescription
}

tmnxPowerShelfTypeIndex          OBJECT-TYPE
    SYNTAX      TmnxPowerShelfType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfTypeIndex specifies the unique index which
         identifies the type of Nokia SROS series Power Shelf."
    ::= { tmnxPowerShelfTypeEntry 1 }

tmnxPowerShelfTypeName           OBJECT-TYPE
    SYNTAX      TNamedItemOrEmpty
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfTypeName indicates the administrative name
         that identifies the type of Nokia SROS series Power Shelf. This name
         string is used in CLI commands to specify a particular PM type."
    ::= { tmnxPowerShelfTypeEntry 2 }

tmnxPowerShelfTypeDescription    OBJECT-TYPE
    SYNTAX      TItemDescription
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfTypeDescription indicates the detailed
         description of this Nokia SROS series Power Shelf type."
    ::= { tmnxPowerShelfTypeEntry 3 }

tmnxPowerShelfConfigurations     OBJECT IDENTIFIER ::= { tmnxPowerShelfObjects 3 }

tmnxPowerShelfTable              OBJECT-TYPE
    SYNTAX      SEQUENCE OF TmnxPowerShelfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPowerShelfTable contains information for power shelves."
    ::= { tmnxPowerShelfConfigurations 1 }

tmnxPowerShelfEntry              OBJECT-TYPE
    SYNTAX      TmnxPowerShelfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The tmnxPowerShelfEntry contains information for the specified power
         shelf."
    INDEX       { tmnxPowerShelfHwIndex }
    ::= { tmnxPowerShelfTable 1 }

TmnxPowerShelfEntry              ::= SEQUENCE
{
    tmnxPowerShelfHwIndex            TmnxHwIndex,
    tmnxPowerShelfEntryLastChanged   TimeStamp,
    tmnxPowerShelfAssignedType       TmnxPowerShelfType,
    tmnxPowerShelfEquippedType       TmnxPowerShelfType,
    tmnxPowerShelfSupportedTypes     TmnxPowerShelfSuppType,
    tmnxPowerShelfDescription        TItemDescription,
    tmnxPowerShelfInputPowerMode     Unsigned32,
    tmnxPowerShelfOutputStatus       INTEGER,
    tmnxPowerShelfCommsFail          BITS
}

tmnxPowerShelfHwIndex            OBJECT-TYPE
    SYNTAX      TmnxHwIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfHwIndex specifies a unique value which
         identifies the power shelf."
    ::= { tmnxPowerShelfEntry 1 }

tmnxPowerShelfEntryLastChanged   OBJECT-TYPE
    SYNTAX      TimeStamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfEntryLastChanged indicates the time, since
         system startup, that the configuration of the row was last modified."
    ::= { tmnxPowerShelfEntry 2 }

tmnxPowerShelfAssignedType       OBJECT-TYPE
    SYNTAX      TmnxPowerShelfType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfAssignedType specifies the administratively
         assigned type of the power shelf."
    DEFVAL      { 1 }
    ::= { tmnxPowerShelfEntry 3 }

tmnxPowerShelfEquippedType       OBJECT-TYPE
    SYNTAX      TmnxPowerShelfType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfEquippedType indicates the power shelf type
         that is equipped."
    ::= { tmnxPowerShelfEntry 4 }

tmnxPowerShelfSupportedTypes     OBJECT-TYPE
    SYNTAX      TmnxPowerShelfSuppType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfSupportedTypes is a bit-mask that indicates
         what power shelf types can be physically supported in this chassis."
    ::= { tmnxPowerShelfEntry 5 }

tmnxPowerShelfDescription        OBJECT-TYPE
    SYNTAX      TItemDescription
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfDescription specifies the description of
         the power shelf."
    DEFVAL      { ''H }
    ::= { tmnxPowerShelfEntry 6 }

tmnxPowerShelfInputPowerMode     OBJECT-TYPE
    SYNTAX      Unsigned32 (0 | 60 | 80)
    UNITS       "amperes"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfInputPowerMode indicates the input power
         mode of the power shelf."
    ::= { tmnxPowerShelfEntry 7 }

tmnxPowerShelfOutputStatus       OBJECT-TYPE
    SYNTAX      INTEGER {
        unknown     (0),
        on          (1),
        off         (2),
        notEquipped (3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfOutputStatus indicates the output power
         status of the power shelf."
    ::= { tmnxPowerShelfEntry 8 }

tmnxPowerShelfCommsFail          OBJECT-TYPE
    SYNTAX      BITS {
        cpmA (0),
        cpmB (1)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of tmnxPowerShelfCommsFail identifies any CPM(s) which
         cannot communicate with a given power-shelf element."
    ::= { tmnxPowerShelfEntry 9 }

tmnxPowerShelfConformance        OBJECT IDENTIFIER ::= { tmnxSRConfs 118 }

tmnxPowerShelfCompliances        OBJECT IDENTIFIER ::= { tmnxPowerShelfConformance 1 }

tmnxPowerShelfComplianceV16v0    MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "The compliance statement for management of power shelves for release
         16.0 on Nokia SROS series systems."
    MODULE
        MANDATORY-GROUPS {
            tmnxPowerShelfGroupV16v0,
            tmnxPowerShelfNotifGroupV16v0,
            tmnxPowerShelfGroupV22v0
        }
    ::= { tmnxPowerShelfCompliances 1 }

tmnxPowerShelfGroups             OBJECT IDENTIFIER ::= { tmnxPowerShelfConformance 2 }

tmnxPowerShelfGroupV16v0         OBJECT-GROUP
    OBJECTS     {
        tmnxPowerShelfTableLastChanged,
        tmnxPowerShelfTypeName,
        tmnxPowerShelfTypeDescription,
        tmnxPowerShelfEntryLastChanged,
        tmnxPowerShelfAssignedType,
        tmnxPowerShelfEquippedType,
        tmnxPowerShelfSupportedTypes,
        tmnxPowerShelfDescription,
        tmnxPowerShelfInputPowerMode,
        tmnxPowerShelfOutputStatus
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining configuration for power shelves on
         Nokia SROS series systems for release 16.0."
    ::= { tmnxPowerShelfGroups 1 }

tmnxPowerShelfNotifGroupV16v0    NOTIFICATION-GROUP
    NOTIFICATIONS {
        tmnxPowerShelfInputPwrModeSwitch,
        tmnxPowerShelfCommsDown,
        tmnxPowerShelfCommsUp,
        tmnxPowerShelfOutputStatusSwitch,
        tmnxPowerShelfOutputStatusDown,
        tmnxPowerShelfOutputStatusUp
    }
    STATUS      current
    DESCRIPTION
        "The group of notifications supporting power shelves on Nokia SROS
         series systems for release 16.0."
    ::= { tmnxPowerShelfGroups 2 }

tmnxPowerShelfGroupV22v0         OBJECT-GROUP
    OBJECTS     {
        tmnxPowerShelfCommsFail
    }
    STATUS      current
    DESCRIPTION
        "The group of objects maintaining configuration for power shelves on
         Nokia SROS series systems for release 22.0."
    ::= { tmnxPowerShelfGroups 3 }

tmnxPowerShelfNotifyPrefix       OBJECT IDENTIFIER ::= { tmnxSRNotifyPrefix 120 }

tmnxPowerShelfNotification       OBJECT IDENTIFIER ::= { tmnxPowerShelfNotifyPrefix 0 }

tmnxPowerShelfNotifications      OBJECT IDENTIFIER ::= { tmnxPowerShelfNotification 1 }

tmnxPowerShelfInputPwrModeSwitch NOTIFICATION-TYPE
    OBJECTS     {
        tmnxHwClass,
        tmnxPowerShelfInputPowerMode
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPowerShelfInputPwrModeSwitch is generated when
         tmnxPowerShelfInputPowerMode has changed value.

         [EFFECT] No effect.

         [RECOVERY] No recovery required."
    ::= { tmnxPowerShelfNotifications 1 }

tmnxPowerShelfCommsDown          NOTIFICATION-TYPE
    OBJECTS     {
        tmnxHwClass,
        tmnxCpmPowerShelfCommsFail
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPowerShelfCommsDown is generated when there is a loss
         of communications with the power shelf controller.

         [EFFECT] If there is a power failure, it will not be detected since
         the power modules cannot be polled. The system will continue to report
         the state of the power modules as they were when last seen.

         [RECOVERY] Correct the power shelf controller communications problem."
    ::= { tmnxPowerShelfNotifications 2 }

tmnxPowerShelfCommsUp            NOTIFICATION-TYPE
    OBJECTS     {
        tmnxHwClass
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPowerShelfCommsUp notification is generated when a
         loss of communications with the power shelf controller has been
         resolved.

         [EFFECT] Power failures can be detected.

         [RECOVERY] No recovery required."
    ::= { tmnxPowerShelfNotifications 3 }

tmnxPowerShelfOutputStatusSwitch NOTIFICATION-TYPE
    OBJECTS     {
        tmnxHwClass,
        tmnxPowerShelfOutputStatus
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPowerShelfOutputStatusSwitch is generated when
         tmnxPowerShelfOutputStatus has changed value.

         [EFFECT] No effect.

         [RECOVERY] No recovery required."
    ::= { tmnxPowerShelfNotifications 4 }

tmnxPowerShelfOutputStatusDown   NOTIFICATION-TYPE
    OBJECTS     {
        tmnxHwClass,
        tmnxPowerShelfOutputStatus
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPowerShelfOutputStatusSwitch is generated when the
         physical output switch on the power shelf is set to Standby.

         [EFFECT] The power output from the identified power shelf is switched
         off and does not supply power to the system.

         [RECOVERY] Set output switch to On to restore power output."
    ::= { tmnxPowerShelfNotifications 5 }

tmnxPowerShelfOutputStatusUp     NOTIFICATION-TYPE
    OBJECTS     {
        tmnxHwClass,
        tmnxPowerShelfOutputStatus
    }
    STATUS      current
    DESCRIPTION
        "[CAUSE] The tmnxPowerShelfOutputStatusSwitch is generated when the
         physical output switch on the power shelf is set to On.

         [EFFECT] Power output from the identified power shelf is enabled and
         now supplies power to the system.

         [RECOVERY] No recovery required."
    ::= { tmnxPowerShelfNotifications 6 }

END
