LEFTHAND-NETWORKS-NUS-COMMON-SECURITY-MIB DEFINITIONS ::= BEGIN

-- IMPORTS: Include definitions from other mibs here, which is always
-- the first item in a MIB file.
IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, IpAddress,
	Counter64                                  FROM SNMPv2-SMI
	RowStatus, TruthValue                      FROM SNMPv2-TC
	lhnModules                                 FROM LEFTHAND-NETWORKS-GLOBAL-REG
	lhnNusCommonSecurity                       FROM LEFTHAND-NETWORKS-NUS-COMMON-MIB;
--
-- A brief description and update information about this mib.
--
lhnNusCommonSecurityModule MODULE-IDENTITY
    LAST-UPDATED "0106010000Z"            
	 ORGANIZATION "LeftHand Networks, Inc."
    CONTACT-INFO "
                  Author:     Jose Faria
                              LeftHand Networks
                  postal:     6185 Arapahoe Rd.
                              Boulder, CO 80301
                              USA
                  email:      jfaria@lefthandnetworks.com
                  phone:      +1 303 449-4100
                 "
    DESCRIPTION  "Security items for NUS Devices"
    ::= { lhnModules 10 }

-- *********************************************************************************
--
-- Security User Module Objects
--
-- *********************************************************************************

secUserCount OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Number of users in the NUS"
    ::= { lhnNusCommonSecurity 1 }
    
secUserTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SecUserEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A table of users for the NUS.
	 The number of entries is given by secUserCount."
    ::= { lhnNusCommonSecurity 2 }
    
secUserEntry OBJECT-TYPE
    SYNTAX      SecUserEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of network setup parameters for the NUS."
    INDEX { secUserIndex }
    ::= { secUserTable 1 }
    
SecUserEntry ::= SEQUENCE
{
   secUserIndex     INTEGER,
   secUserName      OCTET STRING,
   secUserDesc      OCTET STRING,
   secUserPasswd    OCTET STRING,
   secUserRowStatus RowStatus
}

secUserIndex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "security user index"
    ::= { secUserEntry 1 }

secUserName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
	"security username for NUS"
    ::= { secUserEntry 2 }

secUserDesc OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
	"security user description for NUS"
    ::= { secUserEntry 3 }
    
secUserPasswd OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write  -- write only
    STATUS      current
    DESCRIPTION
	"security user password for NUS"
    ::= { secUserEntry 4 }
    
secUserRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status"
    ::= { secUserEntry 5 }
    
-- *********************************************************************************
--
-- Security Group Module Objects
--
-- *********************************************************************************

secGroupCount OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Number of security groups in the NUS"
    ::= { lhnNusCommonSecurity 3 }
    
secGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SecGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A table of users for the NUS.
	 The number of entries is given by secUserCount."
    ::= { lhnNusCommonSecurity 4 }

secGroupEntry OBJECT-TYPE
    SYNTAX      SecGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of network setup parameters for the NUS."
    INDEX { secGroupIndex }
    ::= { secGroupTable 1 }

SecGroupEntry ::= SEQUENCE
{
   secGroupIndex      INTEGER,
   secGroupName       OCTET STRING,
   secGroupDesc       OCTET STRING,
   secGroupUserCount  INTEGER,
   secGroupRowStatus  RowStatus
}

secGroupIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for security group"
    ::= { secGroupEntry 1 }

secGroupName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
	"security groupname for NUS"
    ::= { secGroupEntry 2 }

secGroupDesc OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
	"security group description for NUS"
    ::= { secGroupEntry 3 }

secGroupUserCount OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
	"security group user count for NUS"
    ::= { secGroupEntry 4 }

secGroupRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status"
    ::= { secGroupEntry 5 }

secGroupUserTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF SecGroupUserEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "security group user table"
    ::= { lhnNusCommonSecurity 5 }


secGroupUserEntry OBJECT-TYPE
    SYNTAX      SecGroupUserEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of network setup parameters for the NUS."
    INDEX { secGroupIndex, secGroupUserIndex }
    ::= { secGroupUserTable 1 }

SecGroupUserEntry ::= SEQUENCE
{
   secGroupUserIndex      INTEGER,
   secGroupUserName       OCTET STRING,
   secGroupUserRowStatus  RowStatus
}

secGroupUserIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for security group user"
    ::= { secGroupUserEntry 1 }

secGroupUserName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
	"security group username for NUS"
    ::= { secGroupUserEntry 2 }

secGroupUserRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status"
    ::= { secGroupUserEntry 3 }


-- *********************************************************************************
--
-- Security Admin User Module Objects
--
-- *********************************************************************************

secAdminUserCount OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Number of users in the NUS"
    ::= { lhnNusCommonSecurity 6 }

secAdminUserTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SecUserEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A table of users for the NUS.
	 The number of entries is given by secUserCount."
    ::= { lhnNusCommonSecurity 7 }

secAdminUserEntry OBJECT-TYPE
    SYNTAX      SecUserEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of network setup parameters for the NUS."
    INDEX { secAdminUserIndex }
    ::= { secAdminUserTable 1 }

SecAdminUserEntry ::= SEQUENCE
{
   secAdminUserIndex     INTEGER,
   secAdminUserName      OCTET STRING,
   secAdminUserDesc      OCTET STRING,
   secAdminUserPasswd    OCTET STRING,
   secAdminUserRowStatus RowStatus
}

secAdminUserIndex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "security user index"
    ::= { secAdminUserEntry 1 }

secAdminUserName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
	"security username for NUS"
    ::= { secAdminUserEntry 2 }

secAdminUserDesc OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
	"security user description for NUS"
    ::= { secAdminUserEntry 3 }

secAdminUserPasswd OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write  -- write only
    STATUS      current
    DESCRIPTION
	"security user password for NUS"
    ::= { secAdminUserEntry 4 }

secAdminUserRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status"
    ::= { secAdminUserEntry 5 }

-- *********************************************************************************
--
-- Security Admin Group Module Objects
--
-- *********************************************************************************

secAdminGroupCount OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Number of security groups in the NUS"
    ::= { lhnNusCommonSecurity 8 }

secAdminGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF SecGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A table of users for the NUS.
	 The number of entries is given by secUserCount."
    ::= { lhnNusCommonSecurity 9 }

secAdminGroupEntry OBJECT-TYPE
    SYNTAX      SecGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of network setup parameters for the NUS."
    INDEX { secAdminGroupIndex }
    ::= { secAdminGroupTable 1 }

SecAdminGroupEntry ::= SEQUENCE
{
   secAdminGroupIndex      INTEGER,
   secAdminGroupName       OCTET STRING,
   secAdminGroupDesc       OCTET STRING,
   secAdminGroupUserOrSubGroupCount  INTEGER,
   secAdminGroupRowStatus  RowStatus
}

secAdminGroupIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for security group"
    ::= { secAdminGroupEntry 1 }

secAdminGroupName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
	"security groupname for NUS"
    ::= { secAdminGroupEntry 2 }

secAdminGroupDesc OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
	"security group description for NUS"
    ::= { secAdminGroupEntry 3 }

secAdminGroupUserOrSubGroupCount OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
	"security group user count for NUS"
    ::= { secAdminGroupEntry 4 }

secAdminGroupRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status"
    ::= { secAdminGroupEntry 5 }


secAdminGroupUserOrSubGroupTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF SecAdminGroupUserOrSubGroupEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "security group user table"
    ::= { lhnNusCommonSecurity 10 }

secAdminGroupUserOrSubGroupEntry OBJECT-TYPE
    SYNTAX      SecGroupUserEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of network setup parameters for the NUS."
    INDEX { secAdminGroupIndex, secAdminGroupUserOrSubGroupIndex }
    ::= { secAdminGroupUserOrSubGroupTable 1 }

SecAdminGroupUserOrSubGroupEntry ::= SEQUENCE
{
   secAdminGroupUserOrSubGroupIndex      INTEGER,
   secAdminGroupUserOrSubGroupName       OCTET STRING,
   secAdminGroupUserOrSubGroupRowStatus  RowStatus
}

secAdminGroupUserOrSubGroupIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for security group user"
    ::= { secAdminGroupUserOrSubGroupEntry 1 }

secAdminGroupUserOrSubGroupName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
	"security admin group username for NUS"
    ::= { secAdminGroupUserOrSubGroupEntry 2 }

secAdminGroupUserOrSubGroupRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status"
    ::= { secAdminGroupUserOrSubGroupEntry 3 }

secAdminGroupAccessTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF SecAdminGroupAccessEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION   "security admin group key access table"
    ::= { lhnNusCommonSecurity 11 }

secAdminGroupAccessEntry OBJECT-TYPE
    SYNTAX      SecGroupUserEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of keys for the admin group."
    INDEX { secAdminGroupIndex, secAdminGroupAccessIndex }
    ::= { secAdminGroupAccessTable 1 }

SecAdminGroupAccessEntry ::= SEQUENCE
{
   secAdminGroupAccessIndex      INTEGER,
   secAdminGroupAccessKey        OCTET STRING,
   secAdminGroupAccessMode       BITS,
   secAdminGroupAccessRowStatus  RowStatus
}

secAdminGroupAccessIndex OBJECT-TYPE
    SYNTAX          INTEGER
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "index to admin group key access table"
    ::= { secAdminGroupAccessEntry 1 }

secAdminGroupAccessKey OBJECT-TYPE
    SYNTAX          OCTET STRING
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION     "key in admin group key access table"
    ::= { secAdminGroupAccessEntry 2 }

secAdminGroupAccessMode OBJECT-TYPE
    SYNTAX          BITS { get(0), set(1), add(2), delete(3) }
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "mode of access in admin group key access table"
    ::= { secAdminGroupAccessEntry 3 }

secAdminGroupAccessRowStatus OBJECT-TYPE
    SYNTAX          RowStatus
    MAX-ACCESS      read-create
    STATUS          current
    DESCRIPTION     "the row status"
    ::= { secAdminGroupAccessEntry 4 }


END
