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

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

-- *********************************************************************************
--
-- Clustering Textual Conventions
--
-- *********************************************************************************

ClusPermissionBits ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION     "Bit field for permissions"
    SYNTAX          BITS { read(0), write(1), exclusive(2) }

-- *********************************************************************************
--
-- Clustering Management Group objects
--
-- *********************************************************************************

clusMgmtGroupName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Name of management group"
    ::= { lhnNusCommonClustering 1 }

clusMgmtGroupIsEnabled OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "True if the management group is enabled, false otherwise"
    ::= { lhnNusCommonClustering 2 }

clusMgmtGroupQuorum OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "Minimum number of managers required to participate in the management group"
    ::= { lhnNusCommonClustering 3 }

clusMgmtGroupDescription OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Description of the management group"
    ::= { lhnNusCommonClustering 4 }

clusMgmtGroupActiveManagerCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Number of active managers in this management group"
    ::= { lhnNusCommonClustering 5 }

clusMgmtGroupManagerCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Number of managers in this management group"
    ::= { lhnNusCommonClustering 6 }



-- *********************************************************************************
--
-- Clustering Manager Objects
--
--   Includes a table of all the managers that are part of the
--   Management Group
--
-- *********************************************************************************


clusManagerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusManagerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A table of managers in the system.
	 The number of entries is given by clusSystemManagerCount."
    ::= { lhnNusCommonClustering 7 }

clusManagerEntry OBJECT-TYPE
    SYNTAX      ClusManagerEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of Manager parameters"
    INDEX { clusManagerIndex }
    ::= { clusManagerTable 1 }

ClusManagerEntry ::= SEQUENCE
{
   clusManagerIndex           INTEGER,
   clusManagerName            OCTET STRING,
   clusManagerVersion         OCTET STRING,
   clusManagerHostSerialNo    OCTET STRING,
   clusManagerStatus          INTEGER,
   clusManagerIsVirtual       TruthValue,
   clusManagerRowStatus       RowStatus
}

clusManagerIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a manager"
    ::= { clusManagerEntry 1 }

clusManagerName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"name of the manager"
    ::= { clusManagerEntry 2 }

clusManagerVersion OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"version string of the manager"
    ::= { clusManagerEntry 3 }

clusManagerHostSerialNo OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
	"serial number of the manager host"
    ::= { clusManagerEntry 4 }

clusManagerStatus OBJECT-TYPE
    SYNTAX      INTEGER { up(1), down(2) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"manager status"
    ::= { clusManagerEntry 5 }

clusManagerIsVirtual OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
	"true if manager is virtual, false if not"
    ::= { clusManagerEntry 7 }

clusManagerRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "device row status"
    ::= { clusManagerEntry 8 }


-- *********************************************************************************
--
-- Clustering Module Objects
--
--   Includes the count of modules (NSMs) and a table describing
--   these modules from the clustering point of view.
--
-- The following items may be added later to this table:
--      deviceStatus (unknown, formatting, releasing, unformatting, error)
--      deviceIsJournal (true, false)
-- *********************************************************************************

clusModuleCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Number of network storage modules in this system"
    ::= { lhnNusCommonClustering 8 }

clusModuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusModuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of modules in the system.
         The number of entries is given by clusModuleCount."
    ::= { lhnNusCommonClustering 9 }

clusModuleEntry OBJECT-TYPE
    SYNTAX      ClusModuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row of module parameters"
    INDEX { clusModuleIndex }
    ::= { clusModuleTable 1 }


ClusModuleEntry ::= SEQUENCE
{
   clusModuleIndex             INTEGER,
   clusModuleName              OCTET STRING,
   clusModuleVersion           OCTET STRING,
   clusModuleSerialNo          OCTET STRING,
   clusModuleTotalSize         Counter64,
   clusModuleAvailSize         Counter64,
   clusModuleIsManager         TruthValue,
   clusModuleRaidConfiguration INTEGER,
   clusModuleRaidStatus        INTEGER,
   clusModuleStorageStatus     INTEGER,
   clusModuleStorageIsReady    TruthValue,
   clusModuleCreationTime      DateAndTime,
   clusModuleDescription       OCTET STRING,
   clusModuleClusterName       OCTET STRING,
   clusModuleRowStatus         RowStatus
}

clusModuleIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a module"
    ::= { clusModuleEntry 1 }

clusModuleName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "hostname of module"
    ::= { clusModuleEntry 2 }

clusModuleVersion OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "version string of module"
    ::= { clusModuleEntry 3 }

clusModuleSerialNo OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "serial number of module"
    ::= { clusModuleEntry 4 }

clusModuleTotalSize OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "total storage size of module"
    ::= { clusModuleEntry 5 }

clusModuleAvailSize OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "available storage size of module"
    ::= { clusModuleEntry 6 }

clusModuleIsManager OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "True if module is a manager"
    ::= { clusModuleEntry 7 }

clusModuleRaidConfiguration OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid configuration for a module"
    ::= { clusModuleEntry 8 }

clusModuleRaidStatus OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "raid status for a module"
    ::= { clusModuleEntry 9 }

clusModuleStorageStatus OBJECT-TYPE
    SYNTAX         INTEGER { up(1), down(2) }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "storage status for a module"
    ::= { clusModuleEntry 10 }

clusModuleStorageIsReady OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "True if storage in a module is ready"
    ::= { clusModuleEntry 11 }

clusModuleCreationTime OBJECT-TYPE
    SYNTAX         DateAndTime
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "module creation time"
    ::= { clusModuleEntry 12 }

clusModuleDescription OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "description of module"
    ::= { clusModuleEntry 13 }

clusModuleClusterName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "name of cluster to which this module belongs, empty if none"
    ::= { clusModuleEntry 14 }

clusModuleRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "module row status"
    ::= { clusModuleEntry 15 }



-- *********************************************************************************
--
-- Clustering Cluster Objects
--
--   Includes a count of clusters in the management group and a table
--   describing each cluster.
--
-- *********************************************************************************

clusClusterCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Number of clusters in this system"
    ::= { lhnNusCommonClustering 10 }

clusClusterTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusClusterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of devices for a particular device group.
         The number of entries is given by clusClusterCount."
    ::= { lhnNusCommonClustering 11 }

clusClusterEntry OBJECT-TYPE
    SYNTAX      ClusClusterEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row of cluster parameters"
    INDEX { clusClusterIndex }
    ::= { clusClusterTable 1 }


ClusClusterEntry ::= SEQUENCE
{
   clusClusterIndex        INTEGER,
   clusClusterName         OCTET STRING,
   clusClusterModuleCount  Counter32,
   clusClusterVolumeCount  Counter32,
   clusClusterDescription  OCTET STRING,
   clusClusterRowStatus    RowStatus
}

clusClusterIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a cluster"
    ::= { clusClusterEntry 1 }

clusClusterName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "name of cluster"
    ::= { clusClusterEntry 2 }

clusClusterModuleCount OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "number of modules in this cluster"
    ::= { clusClusterEntry 3 }

clusClusterVolumeCount OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "number of volumes in this cluster"
    ::= { clusClusterEntry 4 }

clusClusterDescription OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "description of cluster"
    ::= { clusClusterEntry 5 }

clusClusterRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "cluster row status"
    ::= { clusClusterEntry 6 }

-- *********************************************************************************
--
-- Clustering Cluster Module Objects
--
--   This table describes the relationship between clusters
--   and modules (NSMs).  For each cluster (described by the
--   clusClusterIndex) it lists each module belonging to it.
--
-- *********************************************************************************

clusClusterModuleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusClusterModuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of modules for a particular cluster.
         The number of entries is given by clusClusterModuleCount."
    ::= { lhnNusCommonClustering 12 }

clusClusterModuleEntry OBJECT-TYPE
    SYNTAX      ClusClusterModuleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row of cluster modules"
    INDEX { clusClusterIndex, clusClusterModuleIndex }
    ::= { clusClusterModuleTable 1 }


ClusClusterModuleEntry ::= SEQUENCE
{
   clusClusterModuleIndex       INTEGER,
   clusClusterModuleName        OCTET STRING,
   clusClusterModuleSerialNo    OCTET STRING,
   clusClusterModuleIsHotSpare  TruthValue,
   clusClusterModuleRowStatus   RowStatus
}

clusClusterModuleIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a cluster module entry"
    ::= { clusClusterModuleEntry 1 }

clusClusterModuleName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "name of the module"
    ::= { clusClusterModuleEntry 2 }

clusClusterModuleSerialNo OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "serial number of the module"
    ::= { clusClusterModuleEntry 3 }

clusClusterModuleIsHotSpare OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "true if this module is a hot spare"
    ::= { clusClusterModuleEntry 4 }

clusClusterModuleRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "cluster module row status"
    ::= { clusClusterModuleEntry 5 }

-- *********************************************************************************
--
-- Clustering Volume Objects
--
--   Includes a count of all the volumes belonging to this management group
--   and a table describing all the volumes.
--
-- *********************************************************************************

clusVolumeCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "Number of volumes in this system"
    ::= { lhnNusCommonClustering 13 }

clusVolumeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusVolumeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of volumes in a system.
         The number of entries is given by clusVolumeCount."
    ::= { lhnNusCommonClustering 14 }

clusVolumeEntry OBJECT-TYPE
    SYNTAX      ClusVolumeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row of volumes"
    INDEX { clusVolumeIndex }
    ::= { clusVolumeTable 1 }


ClusVolumeEntry ::= SEQUENCE
{
   clusVolumeIndex                      INTEGER,
   clusVolumeName                       OCTET STRING,
   clusVolumeCreationTime               DateAndTime,
   clusVolumeDescription                OCTET STRING,
   clusVolumeSize                       Counter64,
   clusVolumeSoftThreshold              Counter64,
   clusVolumeHardThreshold              Counter64,
   clusVolumeReplicaCount               Counter32,
   clusVolumeSnapshotCount              Counter32,
   clusVolumeACLCount                   Counter32,
   clusVolumeClusterName                OCTET STRING,
   clusVolumeIsSoftThresholdExceeded    TruthValue,
   clusVolumeIsHardThresholdExceeded    TruthValue,
   clusVolumeReplicationStatus          INTEGER,
   clusVolumeIsRemoteIPCopy             TruthValue,
   clusVolumeRemoteIPCopyFailureMessage OCTET STRING,
   clusVolumeRowStatus                  RowStatus
}

clusVolumeIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a volume entry"
    ::= { clusVolumeEntry 1 }

clusVolumeName OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "name of stacked volume"
    ::= { clusVolumeEntry 2 }

clusVolumeCreationTime OBJECT-TYPE
    SYNTAX         DateAndTime
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "volume creation time"
    ::= { clusVolumeEntry 3 }

clusVolumeDescription OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "description for a volume entry"
    ::= { clusVolumeEntry 4 }

clusVolumeSize OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "number of kbytes comprising the volume"
    ::= { clusVolumeEntry 5 }

clusVolumeSoftThreshold OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "number of kbytes to be filled before alert is issued"
    ::= { clusVolumeEntry 6 }

clusVolumeHardThreshold OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "number of kbytes to be filled before the volume stops"
    ::= { clusVolumeEntry 7 }

clusVolumeReplicaCount OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "number of replicas"
    ::= { clusVolumeEntry 8 }

clusVolumeSnapshotCount OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "number of snapshots associated with this volume"
    ::= { clusVolumeEntry 9 }

clusVolumeACLCount OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "number of ACLs associated with this volume"
    ::= { clusVolumeEntry 10 }

clusVolumeClusterName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "name of cluster to which this volume belongs, empty if none"
    ::= { clusVolumeEntry 11 }

clusVolumeIsSoftThresholdExceeded OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "true if soft threshold has been exceeded, false if not"
    ::= { clusVolumeEntry 13 }

clusVolumeIsHardThresholdExceeded OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "true if soft threshold has been exceeded, false if not"
    ::= { clusVolumeEntry 14 }

clusVolumeReplicationStatus OBJECT-TYPE
    SYNTAX         INTEGER { normal(1), faulty(2) }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "status of replication for this volume"
    ::= { clusVolumeEntry 15 }

clusVolumeIsRemoteIPCopy OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "true if this volume is remote IP copy, false if not"
    ::= { clusVolumeEntry 16 }

clusVolumeRemoteIPCopyFailureMessage OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "message indicating why a remote copy into this volume failed,
                    empty if no errors"
    ::= { clusVolumeEntry 17 }

clusVolumeRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "volume row status"
    ::= { clusVolumeEntry 18 }

-- *********************************************************************************
--
-- Clustering Volume ACL Objects
--
--   This table contains the authorization communities and permissions
--   to allow access for a particular volume.
--
-- *********************************************************************************

clusVolumeACLTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusVolumeACLEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A table of ACL entries for each volume.
	 The number of entries is given by clusVolumeACLCount."
    ::= { lhnNusCommonClustering 15 }

clusVolumeACLEntry OBJECT-TYPE
    SYNTAX      ClusVolumeACLEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of authorization and permissions for a volume."
    INDEX { clusVolumeIndex, clusVolumeACLIndex }
    ::= { clusVolumeACLTable 1 }

ClusVolumeACLEntry ::= SEQUENCE
{
   clusVolumeACLIndex           INTEGER,
   clusVolumeACLAuthGroup       OCTET STRING,
   clusVolumeACLPermissions     ClusPermissionBits,
   clusVolumeACLRowStatus       RowStatus
}

clusVolumeACLIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index of volume's ACL entry"
    ::= { clusVolumeACLEntry 1 }

clusVolumeACLAuthGroup OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "authorization group name"
    ::= { clusVolumeACLEntry 2 }

clusVolumeACLPermissions OBJECT-TYPE
    SYNTAX         ClusPermissionBits
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "permissions bits"
    ::= { clusVolumeACLEntry 3 }

clusVolumeACLRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status"
    ::= { clusVolumeACLEntry 4 }

-- *********************************************************************************
--
-- Clustering Cluster Volume Objects
--
--   This table describes the relationship between clusters
--   and volumes.  For each cluster (described by the
--   clusClusterIndex) it lists each volume belonging to it.
--
-- *********************************************************************************

clusClusterVolumeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusClusterVolumeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of volumes for a particular cluster.
         The number of entries is given by clusClusterVolumeCount."
    ::= { lhnNusCommonClustering 16 }

clusClusterVolumeEntry OBJECT-TYPE
    SYNTAX      ClusClusterVolumeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row of volumes for a cluster"
    INDEX { clusClusterIndex, clusClusterVolumeIndex }
    ::= { clusClusterVolumeTable 1 }


ClusClusterVolumeEntry ::= SEQUENCE
{
   clusClusterVolumeIndex      INTEGER,
   clusClusterVolumeName       OCTET STRING,
   clusClusterVolumeRowStatus  RowStatus
}

clusClusterVolumeIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a cluster's volume entry"
    ::= { clusClusterVolumeEntry 1 }

clusClusterVolumeName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "cluster volume name"
    ::= { clusClusterVolumeEntry 2 }

clusClusterVolumeRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "cluster volume row status"
    ::= { clusClusterVolumeEntry 3 }

-- *********************************************************************************
--
-- Clustering Volume Snapshot Table
--
--   This table describes the relationship between snapshots
--   and volumes.  For each volume (described by the
--   clusVolumeIndex) it lists each snapshot belonging
--   to it.
--
-- *********************************************************************************

clusVolumeSnapshotTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusClusterVolumeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of snapshots for a particular volume.
         The number of entries is given by clusVolumeSnapshotCount."
    ::= { lhnNusCommonClustering 17 }

clusVolumeSnapshotEntry OBJECT-TYPE
    SYNTAX      ClusClusterVolumeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row of volumes for a cluster"
    INDEX { clusVolumeIndex, clusVolumeSnapshotIndex }
    ::= { clusVolumeSnapshotTable 1 }


ClusVolumeSnapshotEntry ::= SEQUENCE
{
   clusVolumeSnapshotIndex                    INTEGER,
   clusVolumeSnapshotName                     OCTET STRING,
   clusVolumeSnapshotCreationTime             DateAndTime,
   clusVolumeSnapshotDescription              OCTET STRING,
   clusVolumeSnapshotSize                     Counter64,
   clusVolumeSnapshotSoftThreshold            Counter64,
   clusVolumeSnapshotHardThreshold            Counter64,
   clusVolumeSnapshotACLCount                 Counter32,
   clusVolumeSnapshotScheduleName             OCTET STRING,
   clusVolumeSnapshotIsSoftThresholdExceeded  TruthValue,
   clusVolumeSnapshotIsHardThresholdExceeded  TruthValue,
   clusVolumeSnapshotReplicationStatus        INTEGER,
   clusVolumeSnapshotType                     INTEGER,
   clusVolumeSnapshotCopyProgress             INTEGER,
   clusVolumeSnapshotRowStatus                RowStatus
}

clusVolumeSnapshotIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a volumes's snapshot entry"
    ::= { clusVolumeSnapshotEntry 1 }

clusVolumeSnapshotName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "volume snapshot name"
    ::= { clusVolumeSnapshotEntry 2 }

clusVolumeSnapshotCreationTime OBJECT-TYPE
    SYNTAX         DateAndTime
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "volume snapshot creation time"
    ::= { clusVolumeSnapshotEntry 3 }

clusVolumeSnapshotDescription OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "volume snapshot name"
    ::= { clusVolumeSnapshotEntry 4 }

clusVolumeSnapshotSize OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "volume snapshot size"
    ::= { clusVolumeSnapshotEntry 5 }

clusVolumeSnapshotSoftThreshold OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "volume snapshot soft quota"
    ::= { clusVolumeSnapshotEntry 6 }

clusVolumeSnapshotHardThreshold OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "volume snapshot hard quota"
    ::= { clusVolumeSnapshotEntry 7 }

clusVolumeSnapshotACLCount OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "number of ACLs associated with this snapshot"
    ::= { clusVolumeSnapshotEntry 8 }

clusVolumeSnapshotScheduleName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "volume snapshot schedule name (not displayed if a manual snapshot)"
    ::= { clusVolumeSnapshotEntry 10 }

clusVolumeSnapshotIsSoftThresholdExceeded OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "true if soft threshold has been exceeded, false if not"
    ::= { clusVolumeSnapshotEntry 12 }

clusVolumeSnapshotIsHardThresholdExceeded OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "true if soft threshold has been exceeded, false if not"
    ::= { clusVolumeSnapshotEntry 13 }

clusVolumeSnapshotReplicationStatus OBJECT-TYPE
    SYNTAX         INTEGER { normal(1), faulty(2) }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "status of replication for this volume"
    ::= { clusVolumeSnapshotEntry 14 }

clusVolumeSnapshotType OBJECT-TYPE
    SYNTAX         INTEGER { primary(1), remote(2) }
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "primary snapshots are normal, remote snapshots are remote copies"
    ::= { clusVolumeSnapshotEntry 15 }

clusVolumeSnapshotCopyProgress OBJECT-TYPE
    SYNTAX         INTEGER (0..100)
    UNITS          "%"
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "percentage progress of a remote IP copy (if a remote copy)"
    ::= { clusVolumeSnapshotEntry 16 }

clusVolumeSnapshotRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "snapshot row status"
    ::= { clusVolumeSnapshotEntry 17 }

-- *********************************************************************************
--
-- Clustering Volume Snapshot ACL Objects
--
--   This table contains the authorization communities and permissions for
--   a particular volume snapshot.
--
-- *********************************************************************************

clusVolumeSnapshotACLTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusVolumeSnapshotACLEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A table of authorization and permissions for each volume snapshot.
	 The number of entries is given by clusVolumeSnapshotACLCount."
    ::= { lhnNusCommonClustering 18 }

clusVolumeSnapshotACLEntry OBJECT-TYPE
    SYNTAX      ClusVolumeSnapshotACLEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of authorization and permissions for a volume snapshot"
    INDEX { clusVolumeIndex, clusVolumeSnapshotIndex, clusVolumeSnapshotACLIndex }
    ::= { clusVolumeSnapshotACLTable 1 }

ClusVolumeSnapshotACLEntry ::= SEQUENCE
{
   clusVolumeSnapshotACLIndex           INTEGER,
   clusVolumeSnapshotACLAuthGroup       OCTET STRING,
   clusVolumeSnapshotACLPermissions     ClusPermissionBits,
   clusVolumeSnapshotACLRowStatus       RowStatus
}

clusVolumeSnapshotACLIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index of snapshot's ACL entry"
    ::= { clusVolumeSnapshotACLEntry 1 }

clusVolumeSnapshotACLAuthGroup OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "name of authorization group"
    ::= { clusVolumeSnapshotACLEntry 2 }

clusVolumeSnapshotACLPermission OBJECT-TYPE
    SYNTAX         ClusPermissionBits
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "permissions associated with this ACL entry"
    ::= { clusVolumeSnapshotACLEntry 3 }

clusVolumeSnapshotACLRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status"
    ::= { clusVolumeSnapshotACLEntry 4 }

-- *********************************************************************************
--
-- Clustering Authorization Group Objects
--
--   This table contains the list of all authorization groups
--
-- *********************************************************************************

clusAuthGroupCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "number of authorization communities in this management group"
    ::= { lhnNusCommonClustering 19 }

clusAuthGroupTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusAuthGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A table of hosts for each authorization group.
	 The number of entries is given by clusAuthGroupCount."
    ::= { lhnNusCommonClustering 20 }

clusAuthGroupEntry OBJECT-TYPE
    SYNTAX      ClusAuthGroupEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	"A row of authorization group information"
    INDEX { clusAuthGroupIndex }
    ::= { clusAuthGroupTable 1 }

ClusAuthGroupEntry ::= SEQUENCE
{
   clusAuthGroupIndex           INTEGER,
   clusAuthGroupName            OCTET STRING,
   clusAuthGroupDescription     OCTET STRING,
   clusAuthGroupAcceptAll       TruthValue,
   clusAuthGroupAcceptNone      TruthValue,
   clusAuthGroupAcceptSubnet    TruthValue,
   clusAuthGroupMaskCount       Counter32,
   clusAuthGroupRowStatus       RowStatus
}

clusAuthGroupIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index of authorization group entry"
    ::= { clusAuthGroupEntry 1 }

clusAuthGroupName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "name of authorization group"
    ::= { clusAuthGroupEntry 2 }

clusAuthGroupDescription OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "description of authorization group"
    ::= { clusAuthGroupEntry 3 }

clusAuthGroupAcceptAll OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "accepts any IP addresses if true"
    ::= { clusAuthGroupEntry 4 }

clusAuthGroupAcceptNone OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "does not accept any IP addresses if true"
    ::= { clusAuthGroupEntry 5 }

clusAuthGroupAcceptSubnet OBJECT-TYPE
    SYNTAX         TruthValue
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "accepts addresses described by the subnet list if true"
    ::= { clusAuthGroupEntry 6 }

clusAuthGroupSubnetCount OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "number of subnets associated with this authorization group"
    ::= { clusAuthGroupEntry 7 }

clusAuthGroupRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION "The row status"
    ::= { clusAuthGroupEntry 8 }

-- *********************************************************************************
--
-- Clustering Authorization Group Subnets
--
--   This table contains a list of subnet masks
--   associated with an authorization group.  For each
--   authorization group (given by clusAuthGroupIndex)
--   it lists the subnet masks belonging to it.
--
-- *********************************************************************************

clusAuthGroupSubnetTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusAuthGroupSubnetEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of subnets for a particular authorization group.
         The number of entries is given by clusAuthGroupMaskCount."
    ::= { lhnNusCommonClustering 21 }

clusAuthGroupSubnetEntry OBJECT-TYPE
    SYNTAX      ClusAuthGroupSubnetEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row of subnets for an authorization group"
    INDEX { clusAuthGroupIndex, clusAuthGroupNetmaskIndex }
    ::= { clusAuthGroupSubnetTable 1 }


ClusAuthGroupSubnetEntry ::= SEQUENCE
{
   clusAuthGroupSubnetIndex      INTEGER,
   clusAuthGroupSubnetAddress    IpAddress,
   clusAuthGroupSubnetMask       IpAddress,
   clusAuthGroupSubnetRowStatus  RowStatus
}

clusAuthGroupSubnetIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a authorization group subnet"
    ::= { clusAuthGroupSubnetEntry 1 }

clusAuthGroupSubnetAddress OBJECT-TYPE
    SYNTAX         IpAddress
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "address part of subnet"
    ::= { clusAuthGroupSubnetEntry 2 }

clusAuthGroupSubnetMask OBJECT-TYPE
    SYNTAX         IpAddress
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "mask part of subnet"
    ::= { clusAuthGroupSubnetEntry 3 }

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

-- *********************************************************************************
--
-- Clustering Communication Mode
--
--   This table contains a list of hosts in the case of
--   using unicast.  If using multicast the list will be
--   empty and the mode will be 'multicast'.
--
-- *********************************************************************************

clusCommunicationMode OBJECT-TYPE
    SYNTAX      INTEGER { multicast(1), unicast(2), multicastAndUnicast(3) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "commication mode"
    ::= { lhnNusCommonClustering 22 }

clusUnicastHostCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "number of hosts part of the unicast group"
    ::= { lhnNusCommonClustering 23 }


clusUnicastHostTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusUnicastHostEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of hosts doing unicast communication.
         The number of entries is given by clusUnicastHostCount."
    ::= { lhnNusCommonClustering 24 }

clusUnicastHostEntry OBJECT-TYPE
    SYNTAX      ClusUnicastHostEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A host entry in the unicast host list"
    INDEX { clusUnicastHostIndex }
    ::= { clusUnicastHostTable 1 }


ClusUnicastHostEntry ::= SEQUENCE
{
   clusUnicastHostIndex      INTEGER,
   clusUnicastHostName       OCTET STRING,
   clusUnicastHostRowStatus  RowStatus
}

clusUnicastHostIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a unicast host entry"
    ::= { clusUnicastHostEntry 1 }

clusUnicastHostName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "unicast host name"
    ::= { clusUnicastHostEntry 2 }

clusUnicastHostRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "the row status"
    ::= { clusUnicastHostEntry 3 }

-- *********************************************************************************
--
-- Clustering Snapshot Schedules
--
--   This table contains a list of schedules for automatic
--   volume snapshots.
--
-- *********************************************************************************

clusSnapshotScheduleCount OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "number of snapshot schedules in the management group"
    ::= { lhnNusCommonClustering 25 }


clusSnapshotScheduleTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF ClusSnapshotScheduleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table of volume snapshot schedules entries.
         The number of entries is given by clusSnapshotScheduleCount."
    ::= { lhnNusCommonClustering 26 }

clusSnapshotScheduleEntry OBJECT-TYPE
    SYNTAX      ClusSnapshotScheduleEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A host entry in the snapshot schedule list"
    INDEX { clusSnapshotScheduleIndex }
    ::= { clusSnapshotScheduleTable 1 }


ClusSnapshotScheduleEntry ::= SEQUENCE
{
   clusSnapshotScheduleIndex              INTEGER,
   clusSnapshotScheduleName               OCTET STRING,
   clusSnapshotScheduleDescription        OCTET STRING,
   clusSnapshotScheduleSoftThreshold      Counter64,
   clusSnapshotScheduleHardThreshold      Counter64,
   clusSnapshotScheduleFirstCreationTime  DateAndTime,
   clusSnapshotScheduleFrequency          Counter32,
   clusSnapshotScheduleVolumeName         OCTET STRING,
   clusSnapshotScheduleRetainType         INTEGER,
   clusSnapshotScheduleRetainCount        Counter32,
   clusSnapshotScheduleRetainTime         Counter32,
   clusSnapshotScheduleType               INTEGER,
   clusSnapshotScheduleFailureMessage     OCTET STRING,
   clusSnapshotScheduleRowStatus          RowStatus
}

clusSnapshotScheduleIndex OBJECT-TYPE
    SYNTAX         INTEGER
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "index for a unicast host entry"
    ::= { clusSnapshotScheduleEntry 1 }

clusSnapshotScheduleName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "schedule name"
    ::= { clusSnapshotScheduleEntry 2 }

clusSnapshotScheduleDescription OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "schedule description"
    ::= { clusSnapshotScheduleEntry 3 }

clusSnapshotScheduleSoftThreshold OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "snapshot soft quota"
    ::= { clusSnapshotScheduleEntry 4 }

clusSnapshotScheduleHardThreshold OBJECT-TYPE
    SYNTAX         Counter64
    UNITS          "kbytes"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "snapshot hard quota"
    ::= { clusSnapshotScheduleEntry 5 }

clusSnapshotScheduleFirstCreationTime OBJECT-TYPE
    SYNTAX         DateAndTime
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "first snapshot creation time"
    ::= { clusSnapshotScheduleEntry 6 }

clusSnapshotScheduleFrequency OBJECT-TYPE
    SYNTAX         Counter32
    UNITS          "seconds"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "snapshot frequency"
    ::= { clusSnapshotScheduleEntry 7 }

clusSnapshotScheduleVolumeName OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "name of volume from which to create snapshots"
    ::= { clusSnapshotScheduleEntry 8 }

clusSnapshotScheduleRetainType OBJECT-TYPE
    SYNTAX         INTEGER { byTime(1), byNumber(2) }
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "schedule retain type"
    ::= { clusSnapshotScheduleEntry 9 }

clusSnapshotScheduleRetainCount OBJECT-TYPE
    SYNTAX         Counter32
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "number of snapshot to retain (defaults to 0 if retain type is byTime)"
    ::= { clusSnapshotScheduleEntry 10 }

clusSnapshotScheduleRetainTime OBJECT-TYPE
    SYNTAX         Counter32
    UNITS          "seconds"
    MAX-ACCESS     read-write
    STATUS         current
    DESCRIPTION    "how long to retain snapshots (defaults to 0 if retain type is byNumber)"
    ::= { clusSnapshotScheduleEntry 11 }

clusSnapshotScheduleType OBJECT-TYPE
    SYNTAX         INTEGER { normal(1), primary(2), remote(3) }
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "type of snapshot schedule, normal is without remote copy,
                    primary is the original in a remote IP copy,
                    remote is for remote IP copies"
    ::= { clusSnapshotScheduleEntry 13 }

clusSnapshotScheduleFailureMessage OBJECT-TYPE
    SYNTAX         OCTET STRING
    MAX-ACCESS     read-only
    STATUS         current
    DESCRIPTION    "if a snapshot fails, this contains an error message, otherwise empty"
    ::= { clusSnapshotScheduleEntry 14 }

clusSnapshotScheduleRowStatus OBJECT-TYPE
    SYNTAX         RowStatus
    MAX-ACCESS     read-create
    STATUS         current
    DESCRIPTION    "the row status"
    ::= { clusSnapshotScheduleEntry 15 }


END
