NAS-RAID-MIB DEFINITIONS ::= BEGIN

IMPORTS
    enterprises,
    MODULE-IDENTITY, OBJECT-TYPE,
    Integer32                        FROM SNMPv2-SMI

    DisplayString                    FROM SNMPv2-TC

    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF
;

nasRaid MODULE-IDENTITY
    LAST-UPDATED "201610060000Z"
    ORGANIZATION "Please contact the vendor"
    CONTACT-INFO
         "Please contact the vendor"
    DESCRIPTION
        "Characteristics of the raid information"
    REVISION     "201610060000Z"
    DESCRIPTION
        "First draft"
    ::= { nas 3 }

nasstorage    OBJECT IDENTIFIER ::= { enterprises 38243 }
nas               OBJECT IDENTIFIER ::= { nasstorage 1 }

raidTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RaidEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION
        "nas raid table"
    ::= { nasRaid 1 }

raidEntry  OBJECT-TYPE
    SYNTAX      RaidEntry
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION
        "For all raid entry"
    INDEX   { raidIndex }
    ::= { raidTable 1 }

RaidEntry ::= SEQUENCE {
    raidIndex    Integer32,
    raidNum        Integer32,
    raidID        DisplayString,
    raidLevel        DisplayString,
    raidStatus        Integer32,
    raidUnit        DisplayString,
    raidSize        DisplayString,
    raidUsedPercentage        Integer32
}

raidIndex OBJECT-TYPE
    SYNTAX      Integer32(1..100)
    MAX-ACCESS      not-accessible
    STATUS      current
    DESCRIPTION
        "The index of existent raid
        NOTE: 
            1. Used as the index of every entry and NOT responsed as OID
        "
    ::= { raidEntry 1 }

raidNum OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The raid num of every existent raid"
    ::= { raidEntry 2 }

raidID OBJECT-TYPE
    SYNTAX    DisplayString
    MAX-ACCESS  read-only
    STATUS    current
    DESCRIPTION
        "The name of every existent raid"
    ::= { raidEntry 3 }

raidLevel OBJECT-TYPE
    SYNTAX    DisplayString
    MAX-ACCESS  read-only
    STATUS    current
    DESCRIPTION
        "The raid level of every existent raid"
    ::= { raidEntry 4 }

raidStatus OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The status of every existent raid
            0 = Health
            1 = Degraded
            2 = Damaged
            3 = Creating
            4 = Formatting
            5 = Building
            6 = Waiting
            7 = Recovering
            8 = Migrating
            9 = Unknown
           10 = Decrypt_Fail
           11 = Encrypt_Fail
        "
    ::= { raidEntry 5 }

raidUnit OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The name of devices or partitions of every existent raid"
    ::= { raidEntry 6 }

raidSize OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The raid size (KB) of every existent raid"
    ::= { raidEntry 7 }

raidUsedPercentage OBJECT-TYPE
    SYNTAX      Integer32(0..2147483647)
    MAX-ACCESS      read-only
    STATUS      current
    DESCRIPTION
        "The used percentage (%) of every existent raid"
    ::= { raidEntry 8 }

raidConformance OBJECT IDENTIFIER ::= { nasRaid 2 }

raidCompliances OBJECT IDENTIFIER ::= { raidConformance 1 }
raidGroups     OBJECT IDENTIFIER ::= { raidConformance 2 }

raidCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
        "The compliance statement for nasRaid entities which implement the NAS RAID MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { raidGroup }

    ::= { raidCompliances 1 }

raidGroup OBJECT-GROUP
    OBJECTS { raidNum,
              raidID,
              raidLevel,
              raidStatus,
              raidUnit,
              raidSize,
              raidUsedPercentage
    }
    STATUS  current
    DESCRIPTION
        "A collection of objects providing basic information of a nas raid entity."
    ::= { raidGroups 1 }

END
