-- Name:       ADIC Enterprise Management Control Blade (MCB) MIB 
--
--                     ADIC_MANAGEMENT_MIB.mib version 1.49
--
--             **********************************************************
--             *                                                        *
--             *                   SMI v1 version                       *
--             *                                                        *
--             **********************************************************
--
-- Copyright (c) 2002-2014 Quantum Corporation
-- 
-- Revision History:
--      $Log: ADIC_MANAGEMENT_MIB.mib  $
--      Revision 1.49 2015/01/20 14:26:49MST Bob Ackerman (backerman) 
--      Fix the RAS group traps to correctly reflect the 6 groups
--      Revision 1.48 2015/12/07 14:26:49MST Bob Ackerman (backerman) 
--      Add module identify so that we can support dynamic module loading.
--      Revision 1.47 2015/08/05 14:26:49MST Bob Ackerman (backerman) 
--      Remove the unsupported rasFruStatTable.
--      Revision 1.46 2015/01/08 14:26:49MST Bob Ackerman (backerman) 
--      Rework the registration table to support IPv6 addresses and removed the phFrameTable
--      Revision 1.44 2014/03/12 14:26:49MST Carsten Prigge (cprigge) 
--      Change the rasTicketPriority to rasTicketSeverity in the rasTicketTable
--      Revision 1.44 2014/03/03 14:26:49MST Carsten Prigge (cprigge) 
--      More cleanup and add the vary state to the phDriveTable.
--      Revision 1.43 2014/02/20 14:26:49MST Carsten Prigge (cprigge) 
--      Added 3 additional slot info variables in PhGeneralInfoEntry
--      Revision 1.43 2014/01/31 14:05:00MST Maurice Smulders (msmulders)
--      Change globalEthernetTable to readonly.
--      Revision 1.42 2014/01/29 10:26:49MST Bob Ackerman (backerman)
--      Change globalEthernetTable to allow multiple interfaces.
--      Revision 1.41 2013/09/16 10:26:49MST Carsten Prigge (cprigge) 
--      Clean up MIB files to reduce errors from various MIB browsers
--      Revision 1.38 2006/11/01 10:26:49MST Darrel Somer (dsomer) 
--      Sync up with master from mib project.
--      Revision 1.93 2005/02/16 18:07:58MST dhawthorne 
--      Add trap #117, drive firmware update start
--      Revision 1.92 2004/12/03 17:07:40EST dhawthorne 
--      Added trapIntendedUsage to trap 406 payload
--      Revision 1.91 2004/10/01 18:08:20EDT dhawthorne 
--      Added noUnload(5) to operatingMode enum
--      Revision 1.90 2004/08/30 17:40:49EDT dhawthorne 
--      Move networkTimeServer2 variable to the end of the globalStatusTable
--      Revision 1.89 2004/08/30 16:06:51EDT dhawthorne 
--      Add second time server to globalStatusTable
--      Revision 1.88 2004/08/13 14:25:07EDT dhawthorne 
--      Correct a typo
--      Revision 1.87 2004/08/13 14:20:14EDT dhawthorne 
--      Add loMediaTypeCheckingPolicy (read/write)
--      Revision 1.86 2004/08/13 13:26:35EDT dhawthorne 
--      Changed name of logical SN feature enable
--      Revision 1.85 2004/08/05 11:38:13EDT dhawthorne 
--      Added driveLogicalSerialNumberMode
--      Revision 1.84 2004/03/29 17:53:59EST dhawthorne 
--      Added totalRawCapcity, totalFreeCapacity, and totalUsedCapacity
--      Revision 1.83 2004/03/09 14:26:59EST dhawthorne 
--      Added phDriveWwPortName.
--      Revision 1.82 2004/03/04 17:23:13EST dhawthorne 
--      Change unimplemented tables/variables to status "optional" 
--      Comment out unimplemented traps 
--      Revision 1.81 2004/02/20 10:55:58EST dhawthorne 
--      Added numPhFrames
--      Revision 1.80 2004/02/19 11:14:19EST dhawthorne 
--      Update phDriveCommand description clause
--      Revision 1.79 2004/02/19 11:10:18EST dhawthorne 
--      Add driveBrickUpdate(7) to phDriveCommand enumeration.
--      Revision 1.78 2004/02/19 10:58:27EST dhawthorne 
--      Added installProcessStatus variables for mcb, cmb, rcu, fcb and amc
--      Revision 1.77 2004/02/02 15:03:29EST dhawthorne 
--      Removed phDriveRow from drive FW update traps, added serial number and FW version
--      Revision 1.76 2004/01/23 17:37:09EST dhawthorne 
--      Add element address range to trap # 116
--      Revision 1.75 2004/01/23 16:35:48EST dhawthorne 
--      Add new trap, #116, physLibraryRESChange 
--      Revision 1.74 2004/01/19 11:04:19EST dhawthorne 
--      Added rasEventNotification trap.
--      Revision 1.73 2004/01/12 11:08:23EST dhawthorne 
--      Add physLibraryConfigurationChange trap to MIB
--      Revision 1.72 2003/12/29 11:13:43EST dhawthorne 
--      Added traps 113 and 114, drive brick firmware update success/failure
--      Revision 1.71 2003/12/17 17:43:40EST dhawthorne 
--      Cleaned up some description clauses
--      Made loNumLibraries obsolete
--      Revision 1.70 2003/12/16 17:33:54EST dhawthorne 
--      Incorporate i2k M2 changes to FDM interface (softwareInstallation table)
--      Revision 1.69 2003/12/16 15:19:32EST dhawthorne 
--      Added ethernet preferredSpeed, actualSpeed, and duplex
--      Revision 1.68 2003/11/12 12:48:44EST dhawthorne 
--      Changed loLtoTapeTags to have three state: prefix, suffix, disabled
--      Revision 1.67 2003/10/22 13:44:19EDT dhawthorne 
--      Add driveActivityUpdate trap.
--      Revision 1.66 2003/09/30 17:47:20EDT dhawthorne 
--      Added syncRcuToFlash(3) to installCommand
--      Revision 1.65 2003/09/25 12:23:39EDT dhawthorne 
--      Added rasTicketFilterSeverity
--      Revision 1.64 2003/09/16 14:19:28EDT dhawthorne 
--      Added rasReportHeadReport
--      Revision 1.63 2003/09/12 10:38:25EDT dhawthorne 
--      Added rasTicketKeyReport variable
--      Revision 1.62 2003/09/10 13:52:22EDT dhawthorne 
--      Added loLtoTapeTags to logiclaLibraryTable
--      Revision 1.61 2003/09/10 12:13:14EDT dhawthorne 
--      Added phDriveErrorCodeBytes and phDriveRasStatus variables
--      Revision 1.60 2003/08/22 14:18:00EDT dhawthorne 
--      Add rcuReady and rcuNotReady traps to Management MIB
--      Revision 1.59 2003/07/02 15:11:42EDT dhawthorne 
--      Add installCommand and  installStatusText variables
--      Revision 1.58 2003/05/01 12:26:00EDT dhawthorne 
--      Added ieStationInventoryPerformed trap, # 109
--      Revision 1.57 2003/04/26 16:26:40EDT dhawthorne 
--      Correct syntax error in AdicRasTicketState enum definition.
--      Revision 1.56 2003/04/23 16:41:04EDT dhawthorne 
--      Added rasTIcketFilterTable
--      Create AdicRasTicketState type definition (enumerated type)
--      Added all(99) value to AdicStatusGroup enumeration
--      Revision 1.55 2003/04/21 11:55:08EDT dhawthorne 
--      Changed AdicStatusGroupState enumeration to match Greg Prestas' code
--      Revision 1.54 2003/04/18 17:16:44EDT dhawthorne 
--      Added RAS ticket time opened, time closed, and count
--      Revision 1.53 2003/04/15 13:15:22EDT dhawthorne 
--      Create AutoPartitionTable
--      Moved numAutoPartition and mediaTypeCommand from MediaTypeTable to AutoPartitionTable
--      Renamed mediaTypeCommand to autoPartitionCommand
--      Revision 1.52 2003/04/09 13:02:52EDT dhawthorne 
--      Declared new enumeration adicFcPortSpeed
--      Changed fcPortPreferredSpeed and fcPortNegotiatedSpeed to be of type adicFcPortSpeed, not INTEGER
--      Revision 1.51 2003/04/07 12:16:58EDT dhawthorne 
--      Added trapSeverity varbind to traps 104 thru 108; these should all be informational(5) traps
--      Revision 1.50 2003/04/03 12:07:19EST dhawthorne 
--      Added licenseKeyAppliedDate
--      Revision 1.49 2003/03/28 18:02:42EST dhawthorne 
--      Added five new traps
--      Revision 1.48 2003/03/15 18:01:20EST dhawthorne 
--      Changed wording of description clause for phDriveOnlineStatus
--      Revision 1.47 2003/03/15 17:50:00EST dhawthorne 
--      Added phDriveOnlineStatus (read-only)
--      Revision 1.46 2003/03/15 17:07:53EST dhawthorne 
--      Remove underscore character from fcPreferredPortType enumeration values (n_port, nl_port)
--      (Underscore is not strictly legal in an SMIv1 enumeration)
--      Declared AdicFcPortType type assignment - use it for fcPreferredPortType and fcNegotiatedPortType
--      Revision 1.45 2003/03/07 15:41:48EST dhawthorne 
--      New group/table for FC port parameters
--      Revision 1.44 2003/02/05 16:34:39EST dhawthorne 
--      Added rasFruStatSerialNumber and rasFruStatState
--      Added rasFruStatIndex
--      ** Re-Indexed FruStatTable: now indexed by componentId and fruStatIndex (not fruStatInstanceID) **
--      ** Put fruStatIndex first in table and shifted the remaining OIDs downward **
--      Revision 1.43 2003/02/04 15:08:02EST dhawthorne 
--      Added license quantity variables.
--      Revision 1.42 2003/02/04 13:19:50EST dhawthorne 
--      Made RAS ticket and report serial numbers read-only
--      Revision 1.41 2003/02/04 12:58:23EST dhawthorne 
--      Added AdicFruSerialNumber type assignment
--      Added rasTicketSerialNumber
--      Added rasReportSerialNumber
--      Revision 1.40 2003/02/03 18:40:08EST dhawthorne 
--      Added trigger to pull log files (logSnapshotCommand) and trap to indicate log retrieval is complete (logRetrievalComplete)
--      Correted enableDaylightSavingsTime to be of type AdicEnable
--      Revision 1.39 2003/01/13 18:37:02EST dhawthorne 
--      Add enableDaylightSavingsTIme to globalStatusTable
--      Revision 1.38 2003/01/07 10:38:45MST dhawthorne 
--      Import Gauge from RFC 1155-SMI
--      Import TRAP-TYPE from RFC-1215
--      Declare rasTicketClosedBy and rasTicketVerifedBy to be type INTEGER (were incorrectly declared as type AdicStatusGroup)
--      Revision 1.37 2003/01/06 11:24:57EST dhawthorne 
--      Added ipAddressSubnetMask (read-write)
--      Revision 1.36 2002/12/23 18:49:15EST dhawthorne 
--      Changed MIB to include index 4 in lo stat table
--      Revision 1.35 2002/12/21 13:49:14EST dhawthorne 
--      MIB changes here - add ticketId and reportId to status change traps
--      Revision 1.34 2002/12/20 18:30:36EST dhawthorne 
--      Changed rasReportSubsytem to rasReportStatusGroup and made it of type AdicStatusGroup.
--      
--      Revision 1.33 2002/12/19 19:41:12EST dhawthorne 
--      Removed RAS Ticket/Report traps
--      Broken System Status Trap in six traps, one for each status group.
--      Added rasReportRepeatCounter
--      Revision 1.32 2002/12/19 16:27:07EST dhawthorne 
--      Added:
--      loStatsNumPuts          INTEGER,
--      loStatsNumPutRetries    INTEGER,
--      loStatsNumGetRetries    INTEGER,
--      loStatsNumScanRetries   INTEGER
--      Revision 1.31 2002/12/18 19:12:03EST dhawthorne 
--      Added trapSummaryText field.
--      Revision 1.29 2002/12/18 16:18:20EST dhawthorne 
--      Added rasReportOrcDescription to RAS report table
--      Revision 1.28 2002/12/17 11:52:38EST dhawthorne 
--      Added RED id to IE station, drive and transport element tables
--      Revision 1.27 2002/12/16 16:00:27EST dhawthorne 
--      Added trap definitions
--      Added I/E station table to allow traps to refer to exact I/E station
--      Revision 1.26 2002/12/13 20:44:16EST dhawthorne 
--      Added numCleaningSlots to MediaDomainTable
--      Revision 1.25 2002/12/13 17:28:58MST dhawthorne 
--      Added softwareInstallationTable
--      Revision 1.24 2002/12/12 09:44:27MST dhawthorne 
--      Made logical library assigned LUN read-only
--      Also fixed a syntax error in the rasFruStatFruCategory enumeration: value 2 was used twice.
--      Revision 1.23 2002/12/12 09:18:01MST dhawthorne 
--      Changed operatingMode access to read-write
--      Revision 1.22 2002/12/12 09:08:14MST dhawthorne 
--      Changed Gauge32 declarartions to Gauge; Gauge32 is SMIv2 syntax
--      Revision 1.21 2002/12/10 17:17:58MST dhawthorne 
--      Added ticket, report and FRU statistics table.
--      Defined AdicStatusGroup enumeration.
--      Revision 1.20 2002/12/07 17:39:13EST dhawthorne 
--      Added rasSystemStatusTable to ADIC-MANAGEMENT-MIB
--      Revision 1.19 2002/12/06 22:04:16EST dhawthorne 
--      Added phDriveStatHistoryTable
--      Revision 1.18 2002/12/06 16:08:57EST jmulder 
--      None
--      Revision 1.17 2002/11/21 11:19:13MST dhawthorne 
--      Corrected terminology.
--      Revision 1.15 2002/11/20 20:16:44EST dhawthorne 
--      Use AdicEnable type assignement for RCU modes
--      Interface types are defined in IntelligentStorage MIB
--      Revision 1.14 2002/11/20 18:45:57EST dhawthorne 
--      Added phIeSegCommand with a single value import(1)
--      Revision 1.13 2002/11/20 18:06:58EST dhawthorne 
--      Added physLibraryAutoCleaning variable
--      Use AdicEnable where applicable
--      Revision 1.12 2002/11/20 17:02:10EST dhawthorne 
--      Added physLibraryManagerLun to phGeneralInfoTable
--      Revision 1.11 2002/11/19 15:54:36EST dhawthorne 
--      Changed loStatus enumeration to { online(1) offline(2) }
--      Revision 1.10 2002/11/08 16:49:08EST dhawthorne 
--      Changed productName to productIdName to resolve jMIBC naming conflict
--      Revision 1.9 2002/10/08 16:40:12EDT dhawthorne 
--      Corrected description clause of managementMibVersion object
--      Revision 1.8 2002/10/07 13:58:01EDT dhawthorne 
--      Removed extra index (phIeSegIndex) from phIeSlotEntry INDEX clause
--      Changed index from "phCleaningRow" to "phCleaningMediaRow" in  phCleaningMediaEntry INDEX clause
--      Commented out any imports which caused compiler warnings with Emissary compiler
--      Revision 1.7 2002/10/04 18:34:41EDT dhawthorne 
--      Removed all enum or SIZE definitions from SEQUENCE clauses to satisfy jMIBc compiler
--      Revision 1.6 2002/10/03 12:16:55EDT dhawthorne 
--      Changed AdicSegmentType enum to match enum used by robotics team
--      Revision 1.5 2002/08/26 16:41:08EDT dhawthorne 
--      Remove hostIndex from registration table
--      Index by IP address and UDP port number
--      Revision 1.4 2002/08/23 11:09:02EDT dhawthorne 
--      Removed userId from table 
--      Moved userId to column 1 in UserEntry sequence
--      Replaced userId with userName in userEntry INDEX clause
--      Revision 1.3 2002/08/22 17:38:26EDT dhawthorne 
--      Added networkTimeEnable object.
--      Revision 1.2 2002/08/13 18:31:47EDT dhawthorne 
--      Added segment Starting Row to physical and logical segment tables
--      Re-indexed segment tables to include Starting Row in instance ID
--      Added phDriveSegMediaType and phDriveSegInterfaceType
--      Added loDriveSegMediaType and loDriveSegInterfaceType
--      Renamed phGeneralInfo.numMediaTypes to numElementDomains (still integer)
--      Revision 1.1 2002/08/12 09:53:03EDT jbruegger 
--      Initial revision
--      Member imported to project e:/mks/projects/mib/mib.pj
--

ADIC-MANAGEMENT-MIB
  
DEFINITIONS ::= BEGIN

IMPORTS                                                 
    Gauge, 
    IpAddress    
                FROM RFC1155-SMI
    OBJECT-TYPE                 
                FROM RFC-1212
    DisplayString            
                FROM RFC1213-MIB 
   TRAP-TYPE                
                FROM RFC-1215 

-- **********************************************************
-- *                                                        *
-- * Imports from ADIC-INTELLIGENT-STORAGE-MIB              *
-- *                                                        *
-- **********************************************************
-- OID Hierarchy
   		hardware, 
		componentId,
-- Common and specific Trap Payload Objects
        trapSequenceNumber,
        trapSeverity,
        trapSummaryText,  
        trapIntendedUsage, 
        trapInstance,
        trapInstanceValue, 
        productName,
        productSerialNumber,
--Type assignments
        Boolean,
        AdicEnable,
    	AdicAgentStatus,
    	AdicOnlineStatus,
	AdicVaryStatus,
    	AdicInterfaceType,
    	AdicDateAndTime,
    	AdicMibVersion, 
    	AdicComponentType,
    	RowStatus,
    	AdicDoorStatus,
    	AdicREDIdentifier,
    	AdicDriveStatus, 
    	AdicTowerStatus
    	    			FROM ADIC-INTELLIGENT-STORAGE-MIB;     

-- **********************************************************
-- *                                                        *
-- * ADIC MANAGEMENT MIB Definitions                        *
-- *                                                        *
-- **********************************************************

-- the mcb node can be located anywhere in the hierarchy
    management MODULE-IDENTITY
    LAST-UPDATED "201509240000Z"
    ORGANIZATION "Quantum Corporation"
    CONTACT-INFO
           " Quantum Corporation
             224 Airport Parkway, Suite 300
             San Jose, CA 95110
             Tel: +1 800 284-5101

             E-mail: support@quantum.com"
    DESCRIPTION
        "This MIB provides Tape Library product information."
    REVISION    "201509240000Z"
    DESCRIPTION
        "MIB update as of September 2015"
    ::= { hardware 20 }
--
    globalStatus			OBJECT IDENTIFIER    ::= { management  10 }
    globalEthernetManager		OBJECT IDENTIFIER    ::= { management  15 }
    systemManager			OBJECT IDENTIFIER    ::= { management  20 }
	persistentData			OBJECT IDENTIFIER    ::= { management  30 }
	security			OBJECT IDENTIFIER    ::= { management  40 }
	licensing 			OBJECT IDENTIFIER    ::= { management  50 }  
	eventManager			OBJECT IDENTIFIER    ::= { management  70 }
	physicalLibrary			OBJECT IDENTIFIER    ::= { management  80 }
	logicalLibrary			OBJECT IDENTIFIER    ::= { management  90 }
	ras				OBJECT IDENTIFIER    ::= { management 100 }

-- **********************************************************
-- *                                                        *
-- * ADIC MCB MIB Textual Conventions                       *
-- *                                                        *
-- **********************************************************
	AdicFruSerialNumber ::= DisplayString (SIZE( 0..40))
	AdicBarCode ::= DisplayString (SIZE(0..36))
	AdicSegmentType ::= INTEGER { gripper(1), storage(2), ie(3), drive(4) }
	AdicInstallStatus ::= INTEGER { ok(1), inProgress(2), failed(3), updateAborted(4) }

-- Ethernet port definitions
    AdicEthernetSpeed ::= INTEGER { baseT10(1), baseT100(2) }    

-- Fibre Channel Port definitions
   AdicFcPortType ::= INTEGER { auto(1), nPort(2), nlPort(3) }
   AdicFcPortSpeed ::= INTEGER { auto(1), megabits1000(1000), megabits2000(2000), megabits4000(4000), megabits8000(8000)  }

-- RAS definitions
   AdicStatusGroup ::= INTEGER { connectivity(1), control(2), media(3), drives(4), 
                                 powerAndCooling(5), robotics(6), all(99) }	
   AdicStatusGroupState ::= INTEGER { good(1), failed(2), degraded(3), warning(4), 
	                                   informational(5), unknown(6), invalid(7) }	
   AdicRasTicketState ::= INTEGER { new(1), open(2), suspended(3), closed(4), verified(5), all(99) }
   AdicRasTicketSeverity ::= INTEGER { critical(1), degraded(2), warning(3), minor(4), informational(5) }   
   AdicRasTicketPriority ::= INTEGER { high(1), medium(2), low(3) }   
   AdicRasFruCategory ::= INTEGER { firmware(1), pcba(2), fan(3), accessor(4), picker(5),
       			            power(6), cable(7), mailbox(8), drive(9), media(10),
       			            label(11), hardware(12), environmental(13), interface(14),
       			            process(15), gen2robot(16), tower(17) }    

   AdicControllerRole ::= INTEGER { master(1), slave(2) }
 
-- ***************************************************************** 
-- 
-- MCB Global Status Group 
-- 
-- ***************************************************************** 
    globalStatusTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF GlobalStatusEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides system date/time configuration and status information"
        ::= { globalStatus 10 }

    globalStatusEntry OBJECT-TYPE 
        SYNTAX GlobalStatusEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId } 
        ::= { globalStatusTable 1 } 

        GlobalStatusEntry ::= 
            SEQUENCE {  
                role			    AdicControllerRole,
                status			    AdicAgentStatus,
                systemDateAndTime	    AdicDateAndTime,
                networkTimeServer1	    IpAddress,
                networkTimeProtocol	    INTEGER,  
                networkTimeEnable	    AdicEnable,
                managementMibVersion	    AdicMibVersion,
                enableDaylightSavingsTime   AdicEnable,
                networkTimeServer2	    IpAddress    
-- CHP                networkTimeServer3    	IpAddress                  
            }
--
-- Begin definitions
--
    role  OBJECT-TYPE
       SYNTAX AdicControllerRole
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The role of this Main Controller Blade (MCB) in the management hierarchy."
       ::= { globalStatusEntry 1 }

    status  OBJECT-TYPE
       SYNTAX AdicAgentStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Status of this MCB."
       ::= { globalStatusEntry 2 }

    systemDateAndTime  OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Current time as set on system realtime
            clock.  Also allows system realtime clock 
            to be set."
       ::= { globalStatusEntry 3 }  
 
    networkTimeServer1 OBJECT-TYPE
       SYNTAX IpAddress
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "IP address of the time server to be used."
       ::= { globalStatusEntry 4 }

    networkTimeProtocol OBJECT-TYPE
       SYNTAX INTEGER { ntp(1) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Protocol to use when with network time server."
       ::= { globalStatusEntry 5 }   

    networkTimeEnable OBJECT-TYPE
       SYNTAX AdicEnable
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Enable/disabled the use of a network time server."
       ::= { globalStatusEntry 6 }          

    managementMibVersion	OBJECT-TYPE
       SYNTAX AdicMibVersion
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Version of the ADIC-MANAGEMENT-MIB on which this
            agent is based."
       ::= { globalStatusEntry 7 }

    enableDaylightSavingsTime	OBJECT-TYPE
       SYNTAX AdicEnable
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Enable automatic adjustment of the system date
            and time for daylight savings time."
       ::= { globalStatusEntry 8 }

    networkTimeServer2 OBJECT-TYPE
       SYNTAX IpAddress
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "IP address of the second time server to be used. 
            Multiple time servers may be used for redundancy
            and (or) improved time accuracy.Two time servers are not recommended."
       ::= { globalStatusEntry 9 }
       
--CHP     networkTimeServer3 OBJECT-TYPE
--       SYNTAX IpAddress
--       ACCESS read-write
--       STATUS mandatory
--       DESCRIPTION
--            "IP address of the third time server to be used. 
--            Multiple time servers may be used for redundancy
--            and (or) improved time accuracy. Two time servers are not recommended."
--       ::= { globalStatusEntry 10 }


-- ***************************************************************** 
-- 
-- MCB Global Ethernet Manager Group 
-- 
-- ***************************************************************** 
    globalEthernetTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF GlobalEthernetEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides Ethernet setting/switch information.  Routing tables
            are part of MIB-II, so we don't include them here."
        ::= { globalEthernetManager 10 }

    globalEthernetEntry OBJECT-TYPE 
        SYNTAX GlobalEthernetEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId } 
        ::= { globalEthernetTable 1 } 

        GlobalEthernetEntry ::= 
            SEQUENCE {
                interfaceIndex		INTEGER,
            	mcbHostName		DisplayString,
            	ipAddress		IpAddress,
            	dhcpStatus		AdicEnable,
            	ipAddressSubnetMask     IpAddress,
            	speedAutoNegotiation    AdicEnable,
            	preferredSpeed          AdicEthernetSpeed,
            	actualSpeed             AdicEthernetSpeed,
            	ethernetDuplex          INTEGER
            }
--
-- Begin definitions
--
    interfaceIndex  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Identifies which Ethernet interface of the MCB"
       ::= { globalEthernetEntry 1 }

    mcbHostName OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Host name of this MCB."
       ::= { globalEthernetEntry 2 }

    ipAddress OBJECT-TYPE
       SYNTAX IpAddress
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "IP Address of this MCB's external Ethernet port."
       ::= { globalEthernetEntry 3 }

    dhcpStatus  OBJECT-TYPE
       SYNTAX AdicEnable
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "State of DHCP support."
       ::= { globalEthernetEntry 4 }     

    ipAddressSubnetMask OBJECT-TYPE
       SYNTAX IpAddress
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
           "Read-Write version of MIB-II ipAdEntNetMask Object.
           
              ** Description clause from MIB-II text **
           The subnet mask associated with the IP address of
           this entry.  The value of the mask is an IP
           address with all the network bits set to 1 and all
           the hosts bits set to 0."
       ::= { globalEthernetEntry 5 }            

    speedAutoNegotiation  OBJECT-TYPE
       SYNTAX AdicEnable
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Enables/disables automatic Ethernet speed negotiation."
       ::= { globalEthernetEntry 6 }
                                          
    preferredSpeed  OBJECT-TYPE
       SYNTAX AdicEthernetSpeed
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The preferred Ethernet speed for this Ethernet port."
       ::= { globalEthernetEntry 7 }
       
    actualSpeed  OBJECT-TYPE
       SYNTAX AdicEthernetSpeed
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The actual (negotiated) speed for this
            Ethernet port."
       ::= { globalEthernetEntry 8 }

    ethernetDuplex  OBJECT-TYPE
       SYNTAX INTEGER { half(1), full(2) }
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The duplex setting for this Ethernet port."
       ::= { globalEthernetEntry 9 }
                                                 
-- ***************************************************************** 
-- 
-- MCB System Manager Group 
-- 
-- ***************************************************************** 
    systemManagerTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF SystemManagerEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides system component/process management information."
        ::= { systemManager 10 }

    systemManagerEntry OBJECT-TYPE 
        SYNTAX SystemManagerEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, softwareComponentIndex } 
        ::= { systemManagerTable 1 } 

        SystemManagerEntry ::= 
            SEQUENCE {  
                softwareComponentIndex	INTEGER,
                processRowStatus	RowStatus,
                processPhysicalMemory	INTEGER,
                processResidentMemory   INTEGER
            }
--
-- Begin definitions
--
    softwareComponentIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..65535)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Identifies the MCB software component/process index."
       ::= { systemManagerEntry 1 }
       
    processRowStatus  OBJECT-TYPE
       SYNTAX RowStatus
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Row status object for creating/deleting system components."
       ::= { systemManagerEntry 2 } 

    processPhysicalMemory  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The size in kilobytes of the actual software 
            process binary."
       ::= { systemManagerEntry 3 }
       
    processResidentMemory  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The size in kilobytes of the software process
            portion that is currently resident in memory."
       ::= { systemManagerEntry 4 }

   -- ***************************************************************** 
   -- 
   -- Component Software Installation Table
   -- 
   -- ***************************************************************** 
    softwareInstallationTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF SoftwareInstallationEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table controls installation of software packages/updates."
        ::= { systemManager 20 }

    softwareInstallationEntry OBJECT-TYPE 
        SYNTAX SoftwareInstallationEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
             "Table entry for the respective table index." 
        INDEX { componentId } 
        ::= { softwareInstallationTable 1 } 

        SoftwareInstallationEntry ::= 
            SEQUENCE {  
            	installPackageName          DisplayString,
                installProcessStatus        INTEGER,
                installCommand              INTEGER,
                installStatusText           DisplayString,
                currentFirmwareVersion      DisplayString,
                previousFirmwareVersion     DisplayString,
                downloadedFirmwareVersion   DisplayString,
                componentsInBundle          INTEGER,
                mcbInstallStatusText        DisplayString, 
                cmbInstallStatusText        DisplayString,
                rcuInstallStatusText        DisplayString,
                fcbInstallStatusText        DisplayString,
                amcInstallStatusText        DisplayString,
                mcbInstallProcessStatus     AdicInstallStatus,
                cmbInstallProcessStatus     AdicInstallStatus,
                rcuInstallProcessStatus     AdicInstallStatus,
                fcbInstallProcessStatus     AdicInstallStatus,
                amcInstallProcessStatus     AdicInstallStatus 
            }
--
-- Begin definitions
--
    installPackageName  OBJECT-TYPE
       SYNTAX DisplayString 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Filename and path of the package to be installed.
            The management application writes the filename here,
            which initiates the update process."
       ::= { softwareInstallationEntry 1 }

    installProcessStatus  OBJECT-TYPE
       SYNTAX INTEGER { ok(1), inProgress(2), failed(3), updateAborted(4) } 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "ok - installation successful - this is the intial state
            inProgress - software package in being installed
            failed - software package installation failed.  The
                     status should return failed until another
                     write to installPackageFilename.
            updateAborted - software installation was cancel and system
               reverts back to previous version"
       ::= { softwareInstallationEntry 2 }       

    installCommand  OBJECT-TYPE 
       SYNTAX INTEGER { download(1), install(2), abort(3), timeEstimate(4) } 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "download - copy firmware bundle to MCB but do not install
            install - commence installation (could be current bundle or 
               previously downloaded bundle)
            abort - abort installation in progress 
            rollback - rollback to the previous version of the system
               identified by the value in the previousFirmwareVersion field.
            timeEstimate - provides a estimate on the overall download time 
               for a previously downloaded bundle"
       ::= { softwareInstallationEntry 3 }   

    installStatusText  OBJECT-TYPE
       SYNTAX DisplayString (SIZE (0..80)) 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Indicates time to complete the entire installation:  
             example: Estimated time to complete download xx minutes"
            
       ::= { softwareInstallationEntry 4 }  

    currentFirmwareVersion  OBJECT-TYPE
       SYNTAX DisplayString 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Current library firmware revision."
       ::= { softwareInstallationEntry 5 }

    previousFirmwareVersion  OBJECT-TYPE
       SYNTAX DisplayString 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Previous library firmware revision available for rollback."
       ::= { softwareInstallationEntry 6 }

    downloadedFirmwareVersion  OBJECT-TYPE
       SYNTAX DisplayString 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Identifier for a the bundle that was previously
            downloaded to the library but is not installed."
       ::= { softwareInstallationEntry 7 }

    componentsInBundle  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Identifies the components being installed with this bundle
             **********************************************************
             (LSB) bit 0 - MCB 
                   bit 1 - CMB
                   bit 2 - RCU
                   bit 3 - FCB
                   bit 4 - AMC"
       ::= { softwareInstallationEntry 8}

    mcbInstallStatusText  OBJECT-TYPE
       SYNTAX DisplayString (SIZE (0..128)) 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Provides detailed information about the MCB component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current component : time to complete MCB"
       ::= { softwareInstallationEntry 9 }

    cmbInstallStatusText  OBJECT-TYPE
       SYNTAX DisplayString (SIZE (0..128)) 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Provides detailed information about the CMB component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current CMB : time to complete CMBs"
       ::= { softwareInstallationEntry 10 }       

    rcuInstallStatusText  OBJECT-TYPE
       SYNTAX DisplayString (SIZE (0..128)) 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Provides detailed information about the RCU component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current component : time to complete RCU"
       ::= { softwareInstallationEntry 11 }       

    fcbInstallStatusText  OBJECT-TYPE
       SYNTAX DisplayString (SIZE (0..128)) 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Provides detailed information about the FCB component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current fcb : time to complete FCBs"
       ::= { softwareInstallationEntry 12 }       

    amcInstallStatusText  OBJECT-TYPE
       SYNTAX DisplayString (SIZE (0..128)) 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Provides detailed information about the AMC component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current component : time to complete AMC"
       ::= { softwareInstallationEntry 13 }   

    mcbInstallProcessStatus  OBJECT-TYPE
       SYNTAX AdicInstallStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
             "Provides detailed information about the MCB component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current component : time to complete MCB"
       ::= { softwareInstallationEntry 14 }       

    cmbInstallProcessStatus  OBJECT-TYPE
       SYNTAX AdicInstallStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
             "Provides detailed information about the CMB component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current CMB : time to complete CMBs"
       ::= { softwareInstallationEntry 15 }
       
    rcuInstallProcessStatus  OBJECT-TYPE
       SYNTAX AdicInstallStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Provides detailed information about the RCU component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current component : time to complete RCU"
       ::= { softwareInstallationEntry 16 }       
       
    fcbInstallProcessStatus  OBJECT-TYPE
       SYNTAX AdicInstallStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Provides detailed information about the FCB component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current fcb : time to complete FCBs"
       ::= { softwareInstallationEntry 17 }

    amcInstallProcessStatus  OBJECT-TYPE
       SYNTAX AdicInstallStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Provides detailed information about the AMC component install
             Example:
                 download status (inprogress, complete, failed, not being upgraded) : current component : time to complete AMC"
       ::= { softwareInstallationEntry 18 }
                     
-- ***************************************************************** 
-- 
-- MCB Persistent Data Group 
-- 
-- ***************************************************************** 
    persistentDataTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PersistentDataEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides non-volatile controller memory information."
        ::= { persistentData 10 }

    persistentDataEntry OBJECT-TYPE 
        SYNTAX PersistentDataEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId } 
        ::= { persistentDataTable 1 } 

        PersistentDataEntry ::= 
            SEQUENCE {  
            	capacity	INTEGER,
                freeSpace	INTEGER
            }
--
-- Begin definitions
--
    capacity  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The number of kilobytes of file space on this MCB."
       ::= { persistentDataEntry 1 }

    freeSpace  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The number of kilobytes of available (unused) file space on this MCB."
       ::= { persistentDataEntry 2 }  
       
-- ***************************************************************** 
-- 
-- MCB Security Group 
-- 
-- ***************************************************************** 

	-- ***************************************************************** 
	-- 
	-- MCB User Table 
	-- 
	-- ***************************************************************** 
    userTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF UserEntry 
        ACCESS not-accessible 
        STATUS obsolete 
        DESCRIPTION 
            "** This table is obsolete. **"
        ::= { security 20 }

    userEntry OBJECT-TYPE 
        SYNTAX UserEntry 
        ACCESS not-accessible 
        STATUS obsolete
        DESCRIPTION 
            "** This entry object is obsolete. **" 
        INDEX { componentId, userName  } 
        ::= { userTable 1 } 

        UserEntry ::= 
            SEQUENCE {              
            	userName		DisplayString,
            	userRowStatus		RowStatus, 
            	userGroup		DisplayString, 
            	userPassword		DisplayString,
            	userLibAccessList	DisplayString
            }

    userName  OBJECT-TYPE
       SYNTAX DisplayString (SIZE(1..80))
       ACCESS read-write
       STATUS obsolete
       DESCRIPTION
            "** This object is obsolete. ** 
            User's name."
       ::= { userEntry 1 }

    userRowStatus  OBJECT-TYPE
       SYNTAX RowStatus
       ACCESS read-write
       STATUS obsolete
       DESCRIPTION
            "** This object is obsolete. **
            Standard Row Status object. Used primarily to
            delete users."
       ::= { userEntry 2 }
              
    userGroup  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS obsolete
       DESCRIPTION
            "** This object is obsolete. **
            User's group."
       ::= { userEntry 3 }                   

    userPassword  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS obsolete
       DESCRIPTION
            "** This object is obsolete. **
            User's password."
       ::= { userEntry 4 }

    userLibAccessList  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS obsolete
       DESCRIPTION
            "** This object is obsolete. **
            Delimited list of logical library identifiers
            to which this use has access."
       ::= { userEntry 5 }
       
--
-- Begin definitions
--
                          
-- ***************************************************************** 
-- 
-- MCB Licensing Group 
-- 
-- ***************************************************************** 
	-- ***************************************************************** 
	-- 
	-- MCB License Key Table
	--
	-- A list of license keys in the license database.  Includes
	-- a row status object to create/destroy entries in the database.
	-- 
	-- ***************************************************************** 
    licenseKeyTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LicenseKeyEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides licensed library feature information."
        ::= { licensing 10 }

    licenseKeyEntry OBJECT-TYPE 
        SYNTAX LicenseKeyEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, licenseKeyIndex } 
        ::= { licenseKeyTable 1 } 

        LicenseKeyEntry ::= 
            SEQUENCE {
            	licenseKeyIndex		  INTEGER,
            	licenseKeyRowStatus	  RowStatus,
            	key			  DisplayString, 
            	licenseKeyDuration	  INTEGER,
            	licenseKeyExpirationDate  AdicDateAndTime,
            	licenseKeyAppliedDate     AdicDateAndTime
            }
--
-- Begin definitions
--
    licenseKeyIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Ordinal index for this table. 
            Identifies a license key database entry.
            Each key may enable multiple features.  A
            list of features enabled by each key can be
            found in the licenseFeatureTable."
       ::= { licenseKeyEntry 1 }

    licenseKeyRowStatus  OBJECT-TYPE
       SYNTAX RowStatus
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Controls creation/deletion of rows in the 
            license key database."
       ::= { licenseKeyEntry 2 }

    key  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "The license key string."
       ::= { licenseKeyEntry 3 }

    licenseKeyDuration  OBJECT-TYPE
       SYNTAX INTEGER { permanent(1), transient(2) }
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "indication of permanent or temporary license key.
            Permanent keys have no expiration date, transient keys
            expire at the time found in the licenseKeyExpirationDate object."
       ::= { licenseKeyEntry 4 }

    licenseKeyExpirationDate  OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Exact date and time when this license
            key expires.  Has no meaning if license 
            key is permanent."
       ::= { licenseKeyEntry 5 }   

    licenseKeyAppliedDate  OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Date and time when the license key 
            was applied.  This field indicates the
            chronological order in which the keys
            were applied.  If multiple keys enable
            the same feature, the most recent key 
            supercedes older keys."
       ::= { licenseKeyEntry 6 }
       
	-- ***************************************************************** 
	-- 
	-- MCB License Feature Table
	--
	-- A list of features which each key enables 
	-- 
	-- ***************************************************************** 
    licenseFeatureTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LicenseFeatureEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a list of all features
            activated by a particular license key."
        ::= { licensing 20 }

    licenseFeatureEntry OBJECT-TYPE 
        SYNTAX LicenseFeatureEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, licenseKeyIndex, licenseFeatureIndex } 
        ::= { licenseFeatureTable 1 } 

        LicenseFeatureEntry ::= 
            SEQUENCE {
            	licenseFeatureIndex      INTEGER,
            	featureName              DisplayString,
            	licenseFeatureQuantity   INTEGER
            }
--
-- Begin definitions
--
    licenseFeatureIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Feature index for this table, as well as 
            licensable feature table.  If a feature is
            not licensed, the row corresponding to that 
            feature does not appear here, but it does 
            appear in the licensableFeatureTable, as do
            all licensableFeatures."
       ::= { licenseFeatureEntry 1 }

    featureName  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Name of the ADIC licensed feature enable
            by this row's license key.  The key is 
            specified by the value of licenseKeyIndex."
       ::= { licenseFeatureEntry 2 }

    licenseFeatureQuantity  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The quantity of this licensed feature 
            enabled by this license key, if applicable.  
            For example, a license key which enables 1000 slots
            of Capacity-on-Demand storage would have 
            quantity = 1000.  For features which are not
            licensed by quantity, return 0."
       ::= { licenseFeatureEntry 3 }
       
	-- ***************************************************************** 
	-- 
	-- MCB Licensable Feature Table
	--
	-- A list of ALL licensable features
	-- Defines the mapping of licenseFatureIndex to feature name
	-- 
	-- ***************************************************************** 
    licensableFeatureTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LicensableFeatureEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table is a list of all licensable features.
            It defines the mapping between a feature name
            and its licenseFeatureIndex."
        ::= { licensing 30 }

    licensableFeatureEntry OBJECT-TYPE 
        SYNTAX LicensableFeatureEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, licenseFeatureIndex } 
        ::= { licensableFeatureTable 1 } 

        LicensableFeatureEntry ::= 
            SEQUENCE {
            	licensableFeatureName      DisplayString,
            	totalQuantityLicensed      INTEGER
            }   
--
-- Begin definitions
--
    licensableFeatureName  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Name of the ADIC licensable feature to be 
            displayed to the user."
       ::= { licensableFeatureEntry 1 }    

    totalQuantityLicensed  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The total licensed quantity for this feature.
            For features which are licensed by quantity,
            this object returns the sum of the indiviual
            quantities enabled by each license key (see
            licenseFeatureQuantity).  For example, if 
            there were two COD license keys installed, one 
            for 500 slots and one for 1000 slots, 
            totalQuantityLicensed would return 1500."
       ::= { licensableFeatureEntry 2 }    
       
-- ***************************************************************** 
-- 
-- MCB Event Manager Group 
-- 
-- ***************************************************************** 

	-- ***************************************************************** 
	-- 
	-- Notification (trap) Registration Table
	-- 
	-- ***************************************************************** 
    registrationTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF RegistrationEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides TRAP registration configuration information."
        ::= { eventManager 10 }

    registrationEntry OBJECT-TYPE 
        SYNTAX RegistrationEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, registrationIndex  } 
        ::= { registrationTable 1 } 

        RegistrationEntry ::= 
            SEQUENCE { 
            	registrationIndex	INTEGER,
            	hostCommunity		OCTET STRING,
            	hostTDomain		OBJECT IDENTIFIER,
            	hostTAddress		OCTET STRING,
                hostFilter		INTEGER,
            	registrationRowStatus	RowStatus
            }
--
-- Begin definitions
--     
    registrationIndex  OBJECT-TYPE
       SYNTAX INTEGER (1..65535)
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Index of this trap registration."
       ::= { registrationEntry 1 }

    hostCommunity  OBJECT-TYPE
       SYNTAX  OCTET STRING (SIZE(1..64))
       ACCESS  read-write
       STATUS  mandatory
       DESCRIPTION
            "Indicates the community string 
             used when formatting trap."
       ::= { registrationEntry 2 }

    hostTDomain  OBJECT-TYPE
       SYNTAX OBJECT IDENTIFIER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Indicates transport type of the address
            defined in the next field."
       ::= { registrationEntry 3 }

    hostTAddress  OBJECT-TYPE
       SYNTAX OCTET STRING (SIZE (1..255))
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Host IP address and port to which SNMP traps 
            will be sent/forwarded."
       ::= { registrationEntry 4 }

    hostFilter  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Indicates trap filtering. The only value 
             used is 4111 (0x100f) indicating that 
             hostTAddress is a DNS host name and all traps."
       ::= { registrationEntry 5 }
       
    registrationRowStatus  OBJECT-TYPE
       SYNTAX RowStatus
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Controls creation/deletion of rows in the 
            notification (trap registration) table."
       ::= { registrationEntry 6 }     
 
-- ***************************************************************** 
-- 
-- Event Log Table
-- 
-- ***************************************************************** 
    logTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LogEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This table is optional **
            Management functionality for general
            event logging.  Log entries are not 
            necessarily available via SNMP."
        ::= { eventManager 20 }

    logEntry OBJECT-TYPE 
        SYNTAX LogEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This entry object is optional **" 
        INDEX { componentId, logName } 
        ::= { logTable 1 } 

        LogEntry ::= SEQUENCE { logName	 DisplayString }
--
-- Begin definitions
--
    logName  OBJECT-TYPE
       SYNTAX DisplayString (SIZE(0..255))
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional. **
            Name of the log to be accessed."
       ::= { logEntry 1 }

-- ***************************************************************** 
-- 
-- Log Snapshot Table
-- 
-- ***************************************************************** 
    logSnapshotTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LogSnapshotEntry 
        ACCESS not-accessible 
        STATUS optional
        DESCRIPTION 
            "** This table is optional. **
            Management functionality for generating 
            a snapshot archive containing all of the
            system logs"
        ::= { eventManager 30 }
 
    logSnapshotEntry OBJECT-TYPE 
        SYNTAX LogSnapshotEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This entry object is optional. **" 
        INDEX { componentId } 
        ::= { logSnapshotTable 1 } 
 
        LogSnapshotEntry ::= SEQUENCE { logSnapshotCommand  INTEGER }
--
-- Begin definitions
--
    logSnapshotCommand  OBJECT-TYPE
       SYNTAX INTEGER { retrieveLogs(1) }
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional. **
            Commands are:
            **********************
            retrieveLogs - Gather snapshots of various
                         system logs in preparation to 
                         build snapshot archive file."
       ::= { logSnapshotEntry 1 }

-- ***************************************************************** 
-- 
-- MCB Physical Library Group 
-- 
-- *****************************************************************  

    phGeneralInfoTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhGeneralInfoEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides library configuration and settings information."
        ::= { physicalLibrary 10 }

    phGeneralInfoEntry OBJECT-TYPE 
        SYNTAX PhGeneralInfoEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId  } 
        ::= { phGeneralInfoTable 1 } 

        PhGeneralInfoEntry ::= 
            SEQUENCE {
            	numElementDomains	INTEGER,
            	numPhSlots		INTEGER,
            	numPhIESlots		INTEGER,
            	numPhDrives		INTEGER,
            	onlineStatus		AdicOnlineStatus,  
            	readiness		INTEGER,
            	autoInventoryMode   	AdicEnable,
            	autoCalibrateMode	AdicEnable,
            	autoConfigureMode	AdicEnable,
            	numPhAisles		INTEGER,
            	operatingMode		INTEGER,
            	numStorageCartridges	INTEGER,
            	numCleaningCartridges	INTEGER,
            	physLibraryManagerLun	INTEGER,
            	physLibraryAutoCleaning	AdicEnable,
            	physLibraryDoorStatus	AdicDoorStatus,
            	numPhFrames		INTEGER,
            	totalRawCapacity	INTEGER,
            	totalFreeCapacity	INTEGER,
            	totalUsedCapacity	INTEGER,
            	logicalSNAdressingMode	AdicEnable,
		usedNumPhSlots		INTEGER,
		numCODSlots		INTEGER,
		usedNumCODSlots		INTEGER
           }
	--
	-- Begin library scalars definitions
	--
    numElementDomains  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of element domains (such as DLT, LTO, etc.) 
            currently installed in this physical library."
       ::= { phGeneralInfoEntry 1 }
 
     numPhSlots  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of installed storage slots."
       ::= { phGeneralInfoEntry 2 }

    numPhIESlots  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of installed import/export slots."
       ::= { phGeneralInfoEntry 3 }
  
    numPhDrives  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of installed drives."
       ::= { phGeneralInfoEntry 4 }

    onlineStatus  OBJECT-TYPE
       SYNTAX AdicOnlineStatus
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Library mode: onlne or offline."
       ::= { phGeneralInfoEntry 5 }      
       
    readiness  OBJECT-TYPE
       SYNTAX INTEGER { ready(1), notReady(2) }
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Library state: ready or not ready."
       ::= { phGeneralInfoEntry 6 }      

    autoInventoryMode  OBJECT-TYPE
       SYNTAX AdicEnable 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Library auto-inventory setting: ON or OFF."
       ::= { phGeneralInfoEntry 7 }   

    autoCalibrateMode  OBJECT-TYPE
       SYNTAX AdicEnable 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
             "Library auto-calibration setting: ON or OFF."
       ::= { phGeneralInfoEntry 8 }

    autoConfigureMode  OBJECT-TYPE
       SYNTAX AdicEnable 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Library auto-configuration setting: ON or OFF."
       ::= { phGeneralInfoEntry 9 }

    numPhAisles  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of aisles in this library."
       ::= { phGeneralInfoEntry 10 }       
           
     operatingMode  OBJECT-TYPE
       SYNTAX INTEGER { normal(1), delay(2), unload(3), 
                        delayAndUnload(4), noUnload(5) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Drive unload control: Controls library behavior when retrieving
            tape from drives."
       ::= { phGeneralInfoEntry 11 } 

	numStorageCartridges  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Total number of storage cartridges present in the library"
       ::= { phGeneralInfoEntry 12 } 

	numCleaningCartridges  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Total number of cleaning cartridges present in the library"
       ::= { phGeneralInfoEntry 13 }

	physLibraryManagerLun  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The SCSI logical unit number of the Physical Library Manager."
       ::= { phGeneralInfoEntry 14 }

	physLibraryAutoCleaning  OBJECT-TYPE
       SYNTAX AdicEnable
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Enable/disable automatic drive cleaning for
            the entire physical library."
       ::= { phGeneralInfoEntry 15 }
    
    physLibraryDoorStatus  OBJECT-TYPE
       SYNTAX AdicDoorStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Main library access door status: (open/closed,locked/unlocked)."
       ::= { phGeneralInfoEntry 16 }
        
    numPhFrames  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The number of physical frames in the library."
       ::= { phGeneralInfoEntry 17 }

    totalRawCapacity  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "An estimate of the amount of data which the 
            library can hold.  Units are in GigaBytes.  May 
            be computed by multiplying the number of cells
            by the maximum number of GigaBytes per tape."
       ::= { phGeneralInfoEntry 18 }

    totalFreeCapacity  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "An estimate of the unused data capacity of the 
            library.  Units are in GigaBytes.  May be computed 
            by multiplying the number of empty cells
            by the maximum number of GigaBytes per tape."
       ::= { phGeneralInfoEntry 19 }

    totalUsedCapacity  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "An estimate of the used data capacity of the 
            library.  Units are in GigaBytes.  May be computed 
            by multiplying the number of full cells
            by the maximum number of GigaBytes per tape."
       ::= { phGeneralInfoEntry 20 }

    logicalSNAdressingMode  OBJECT-TYPE
       SYNTAX AdicEnable 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Enables/disables drive assigned logical serial number
            addressing."
       ::= { phGeneralInfoEntry 21 }   

    usedNumPhSlots  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of assigned/configured storage slots."
       ::= { phGeneralInfoEntry 22 }

    numCODSlots  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of total COD licensed storage slots."
       ::= { phGeneralInfoEntry 23 }

    usedNumCODSlots  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of used/configured COD licensed storage slots."
       ::= { phGeneralInfoEntry 24 }

	--                                 
	-- End library scalars definitions
	--
	-- ***************************************************************** 
	-- 
	-- Physical Library Media Domain Table 
	-- 
	-- ***************************************************************** 
    mediaDomainTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF MediaDomainEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a list of media domains installed in
            the library."
        ::= { physicalLibrary 20 }

    mediaDomainEntry OBJECT-TYPE 
        SYNTAX MediaDomainEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, mediaDomainIndex  } 
        ::= { mediaDomainTable 1 } 

        MediaDomainEntry ::= 
            SEQUENCE {
            	mediaDomainIndex	INTEGER, 
            	mediaDomainName		DisplayString,
            	numStorageElements	INTEGER,
            	numIeElements		INTEGER,
                numCleaningSlots        INTEGER 
           }
	--
	-- Begin media domain definitions
	--
    mediaDomainIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The index associated with the media domain."
       ::= { mediaDomainEntry 1 }

    mediaDomainName  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The media domain name."
       ::= { mediaDomainEntry 2 }
       
    numStorageElements  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Total number of storage elements for this
            media domain in this physical library."
       ::= { mediaDomainEntry 3 }   

    numIeElements  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Total number of import/export elements for this
            media domain in this physical library."
       ::= { mediaDomainEntry 4 }       

    numCleaningSlots  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Returns the number of storage slots reserved for 
            cleaning media of this domain.  When set, the 
            value is the total number of slots to reserve
            for cleaning media of this domain.  The library
            will reserve a set of storage segments such
            that total number of storage slots is greater 
            than or equal to numCleaningSlots."
       ::= { mediaDomainEntry 5 }
	--
	-- End media domain definitions
	--
		
	-- ***************************************************************** 
	-- 
	-- Physical Library Media Type Table 
	-- 
	-- ***************************************************************** 
    mediaTypeTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF MediaTypeEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides media type supprot information."
        ::= { physicalLibrary 30 }

    mediaTypeEntry OBJECT-TYPE 
        SYNTAX MediaTypeEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, mediaDomainIndex, mediaTypeIndex  } 
        ::= { mediaTypeTable 1 } 

        MediaTypeEntry ::= 
            SEQUENCE {
            	mediaTypeIndex		INTEGER,
            	mediaTypeName		DisplayString,
            	numDriveElements	INTEGER  
           }
	--
	-- Begin media type definitions
	--
    mediaTypeIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The index associated with the media type."
       ::= { mediaTypeEntry 1 }
       
    mediaTypeName  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The media type name."
       ::= { mediaTypeEntry 2 }
       
    numDriveElements  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of drives supporting this media type."
       ::= { mediaTypeEntry 3 }
                   
    --
	-- End media type definitions
	--
	-- ***************************************************************** 
	-- 
	-- Physical Library Segement Table
	--
	-- This is a list of all the segments in the library
	-- 
	-- ***************************************************************** 
    phSegmentTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhSegmentEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This is a list of all the segments in the library."
        ::= { physicalLibrary 55 }

    phSegmentEntry OBJECT-TYPE 
        SYNTAX PhSegmentEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, phSegmentType, phSegmentAisle, phSegmentFrame, phSegmentRack, 
        	phSegmentSection, phSegmentCol, phSegmentStartingRow } 
        ::= { phSegmentTable 1 } 

        PhSegmentEntry ::= 
            SEQUENCE {    
            	phSegmentAisle			INTEGER, -- Physical aisle coordinate of segment
            	phSegmentFrame			INTEGER, -- Physical frame coordinate of segment
           	phSegmentRack			INTEGER, -- Physical rack coordinate of segment
		phSegmentSection		INTEGER, -- Physical section coordinate of segment         		
           	phSegmentCol			INTEGER, -- Physical column coordinate of segment 
           	phSegmentStartingRow		INTEGER, -- Within a column, row number where this segment begins
           										  -- Added so that we can have more than one segment per column
            	phSegmentSize			INTEGER,
            	phSegmentType			AdicSegmentType, -- Storage, I/E, or Drive segment
            	phSegmentMediaDomain		INTEGER, -- Element media domain of segment (media domain table index) 
            	phSegmentStatus			INTEGER,
            	phSegmentCodStatus		INTEGER,
            	phSegStartingAddress		INTEGER 
            }  
	--
	-- Begin Physical Library Segment definitions
	--
	
    phSegmentAisle  OBJECT-TYPE
       SYNTAX INTEGER (0..1)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Aisle coordinate value for this segment."
       ::= { phSegmentEntry 1 }

    phSegmentFrame  OBJECT-TYPE
       SYNTAX INTEGER  (0..64)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Frame coordinate value for this segment."
       ::= { phSegmentEntry 2 }       
       
    phSegmentRack  OBJECT-TYPE
       SYNTAX INTEGER (0..64)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Rack coordinate value for this segment."
       ::= { phSegmentEntry 3 }
 
    phSegmentSection  OBJECT-TYPE
       SYNTAX INTEGER (0..64)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Section coordinate for this segment."
       ::= { phSegmentEntry 4 }

    phSegmentCol  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Column coordinate value for this segment."
       ::= { phSegmentEntry 5 }             

    phSegmentStartingRow  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Row coordinate of the first element in this segment.
            This is useful to divide a column into multiple 
            segments.  For instance, a segment which contains
            rows 1 - 10 would have phSegmentStartingRow = 1.  A
            segment which contains rows 11 - 20 in the same 
            column would have phSegmentStartingRow = 11."
       ::= { phSegmentEntry 6 }
       
    phSegmentSize  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of elements in this segment."
       ::= { phSegmentEntry 7 }                        
       
    phSegmentType  OBJECT-TYPE
       SYNTAX AdicSegmentType
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "This segment's type (storage, drive, I/E, etc.)."
       ::= { phSegmentEntry 8 }     

    phSegmentMediaDomain  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Element domain of this segment. 
            Points a row in the media domain table."
       ::= { phSegmentEntry 9 }             
       
    phSegmentStatus  OBJECT-TYPE
       SYNTAX INTEGER { installed(1), notInstalled(2), reservedForCleaning(3) } 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Status of this segment.  May be installed,
            not installed, or reserved for use by the
            automatic cleaning service."
       ::= { phSegmentEntry 10 }     

    phSegmentCodStatus  OBJECT-TYPE
       SYNTAX INTEGER { enabled(1), disabled(2), noCod(3) }
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Capacity on Demand (COD) status for this
            segment.  noCod means that COD is not applied to this segment."
       ::= { phSegmentEntry 11 }       
       
    phSegStartingAddress  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "SCSI media changer element address of the first 
            row in this segment.  Element addresses are 
            contiguous, so we can derive the address of
            each row in the segment from the address of 
            the first row."
       ::= { phSegmentEntry 12 }
       
	-- ***************************************************************** 
	-- 
	-- Physical Library Storage Segement Table
	--
	-- This is a list of all the storage segments in the library
	-- 
	-- ***************************************************************** 
    phStorageSegTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhStorageSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This is a list of all the storage segments in the library, indexed by
	        their media domain and segment Index."
        ::= { physicalLibrary 60 }

    phStorageSegEntry OBJECT-TYPE 
        SYNTAX PhStorageSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, mediaDomainIndex, 
        	phSegmentAisle 	, phSegmentFrame,	phSegmentRack, 
        	phSegmentSection, phSegmentCol, phSegmentStartingRow }        
        ::= { phStorageSegTable 1 } 

        PhStorageSegEntry ::= 
            SEQUENCE {
            	phStorageSegSize 	INTEGER    
            }  
	--
	-- Begin Physical Library Segment definitions
	--
	
    phStorageSegSize  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of elements in this storage segment."
       ::= { phStorageSegEntry 1 }

	-- ***************************************************************** 
	-- 
	-- Physical Library I/E Segement Table
	--
	-- This is a list of all the storage segments in the library
	-- 
	-- ***************************************************************** 
    phIeSegTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhIeSegEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** Some objects in this table are optional **
            This table provides a list of all the I/E segments in the library, indexed by
	        their media domain and segment index."
        ::= { physicalLibrary 70 }

    phIeSegEntry OBJECT-TYPE 
        SYNTAX PhIeSegEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** Some objects in this entry are optional **" 
        INDEX { componentId, mediaDomainIndex,
        		phSegmentAisle 	, phSegmentFrame, phSegmentRack, 
        		phSegmentSection, phSegmentCol, phSegmentStartingRow }        
        		         
        ::= { phIeSegTable 1 } 

        PhIeSegEntry ::= 
            SEQUENCE {                                                       
            	phIeSegSize		INTEGER,
            	phIeSegReserve		INTEGER,
            	phIeSegReservedBy	INTEGER,
		phIeSegOnlineStatus  	INTEGER,
		phIeSegCommand		INTEGER            	
            }  
	--
	-- Begin Physical Library Segment definitions
	--	

    phIeSegSize  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Number of IE elements in this segment."
       ::= { phIeSegEntry 1 }
       
    phIeSegReserve  OBJECT-TYPE
       SYNTAX INTEGER { reserve(1), release(2) } 
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Mechanism to release and reserve this 
            I/E segment."
       ::= { phIeSegEntry 2 }     

    phIeSegReservedBy  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Indicator of who reserved this I/E segment."
       ::= { phIeSegEntry 3 }

    phIeSegOnlineStatus  OBJECT-TYPE
       SYNTAX INTEGER { online(1), offline(2) }
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Indication whether I/E segment is online/offline."
       ::= { phIeSegEntry 4 }      

	phIeSegCommand     OBJECT-TYPE
       SYNTAX INTEGER { import(1) }
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Supporetd command list for this I/E station segment."
       ::= { phIeSegEntry 5 }   

	-- ***************************************************************** 
	-- 
	-- Physical Library I/E Station Table
	--
	-- This is a list of all the I/E Stations in the library
	-- 
	-- ***************************************************************** 
    phIeStationTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhIeStationEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a list of all the I/E stations in the library"
        ::= { physicalLibrary 75 }

    phIeStationEntry OBJECT-TYPE 
        SYNTAX PhIeStationEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, phSegmentAisle, phSegmentFrame, phSegmentRack, phIeStationNumber }        
        		         
        ::= { phIeStationTable 1 } 

        PhIeStationEntry ::= 
            SEQUENCE {                                                       
            	phIeStationNumber       INTEGER,
            	phIeStationDoorStatus	AdicDoorStatus,
                phIeStationREDId        AdicREDIdentifier            	
            }  
	--
	-- Begin Physical Library Segment definitions
	--	

    phIeStationNumber  OBJECT-TYPE
       SYNTAX INTEGER (0..128)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Index of I/E station within a frame.
            If a frame has N I/E stations, the
            range of phIeStationNumber is
            1 through N."
       ::= { phIeStationEntry 1 }

    phIeStationDoorStatus  OBJECT-TYPE
       SYNTAX AdicDoorStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Is the station door open/closed, locked/unlocked ?"
       ::= { phIeStationEntry 2 }

    phIeStationREDId   OBJECT-TYPE 
       SYNTAX AdicREDIdentifier
       ACCESS read-only 
       STATUS mandatory 
       DESCRIPTION 
          "Runtime Error Detection identifier for this 
          import/export station."
       ::= { phIeStationEntry 3 }       
              
	-- ***************************************************************** 
	-- 
	-- Physical Library Drive Segement Table
	--
	-- This is a list of all the storage segments in the library
	-- 
	-- ***************************************************************** 
    phDriveSegTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhDriveSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a list of all the drive segments in the library, indexed by
	        their media domain, media type and segment index."
        ::= { physicalLibrary 80 }

    phDriveSegEntry OBJECT-TYPE 
        SYNTAX PhDriveSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, mediaDomainIndex, mediaTypeIndex, 
        		phSegmentAisle 	, phSegmentFrame, phSegmentRack, 
        		phSegmentSection, phSegmentCol, phSegmentStartingRow }
        ::= { phDriveSegTable 1 } 

        PhDriveSegEntry ::= 
            SEQUENCE {    
            	phDriveSegSize		INTEGER,
            	phDriveSegMediaType	INTEGER, -- Element media type of segment (media type table index) 
            	phDriveSegInterfaceType	AdicInterfaceType  -- Element data transfer interface type of segment            	           		
            }  
	--
	-- Begin Physical Library Segment definitions
	--
	
    phDriveSegSize  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of drive elements in this segment."
       ::= { phDriveSegEntry 1 }    

    phDriveSegMediaType  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Exact media type of this segment. 
            With phSegmentMediaDomain, points a 
            row in the media type table."
       ::= { phDriveSegEntry 2 }

    phDriveSegInterfaceType  OBJECT-TYPE
       SYNTAX AdicInterfaceType
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Drive interface type of this drive segment. "
       ::= { phDriveSegEntry 3 }       

	-- ***************************************************************** 
	-- 
	-- Physical Library Cleaning Segement Table
	--
	-- This is a list of all storage segments in the library reserved for 
	-- automatic cleaning media
	-- 
	-- ***************************************************************** 
    phCleaningSegTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhCleaningSegEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This table is optional **
            This table provides a list of all the storage segments in the library
	        which have been reserved for use by automatic cleaning services."
        ::= { physicalLibrary 85 }

    phCleaningSegEntry OBJECT-TYPE 
        SYNTAX PhCleaningSegEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This entry object is optional **" 
        INDEX { componentId, mediaDomainIndex, 
        		phSegmentAisle 	, phSegmentFrame, phSegmentRack, 
        		phSegmentSection, phSegmentCol, phSegmentStartingRow }
        ::= { phCleaningSegTable 1 } 

        PhCleaningSegEntry ::= 
            SEQUENCE {    
            	phCleaningSegSize	INTEGER,
            	phCleaningSegRowStatus	RowStatus
            }  
	--
	-- Begin Physical Library Segment definitions
	--
	
    phCleaningSegSize  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Number of elements in this segment."
       ::= { phCleaningSegEntry 1 }

    phCleaningSegRowStatus  OBJECT-TYPE
       SYNTAX RowStatus
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Management application use this object to 
            to reserve segment for cleaning or release 
            the segment for use as storage."
       ::= { phCleaningSegEntry 2 }
       
	-- ***************************************************************** 
	-- 
	-- Physical Library Storage Slot Table 
	-- 
	-- ***************************************************************** 
    phStorageSlotTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhStorageSlotEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This table is optional **"
        ::= { physicalLibrary 90 }

    phStorageSlotEntry OBJECT-TYPE 
        SYNTAX PhStorageSlotEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This entry object is optional **" 
        INDEX { componentId, mediaDomainIndex, 
        		phSegmentAisle 	, phSegmentFrame, phSegmentRack, 
        		phSegmentSection, phSegmentCol, phStorageRow }  
        ::= { phStorageSlotTable 1 } 

        PhStorageSlotEntry ::= 
            SEQUENCE {
           		phStorageRow		INTEGER,
           		phStorageElementAddr 	INTEGER 
            }
	--
	-- Begin Physical Storage Slot definitions
	--       
 
     phStorageRow OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Row coordinate value for this storage slot."
       ::= { phStorageSlotEntry 1 } 

     phStorageElementAddr OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            SCSI Medium Changer Element Address for this storage slot."
       ::= { phStorageSlotEntry 2 }
	--
	-- End Physical Storage Slot definitions
	--

	-- ***************************************************************** 
	-- 
	-- Physical Library I/E Slot Table 
	-- 
	-- ***************************************************************** 
    phIeSlotTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhIeSlotEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This table is optional **"
        ::= { physicalLibrary 100 }

    phIeSlotEntry OBJECT-TYPE 
        SYNTAX PhIeSlotEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This entry object is optional **" 
        INDEX { componentId, mediaDomainIndex,
        		phSegmentAisle 	, phSegmentFrame, phSegmentRack, 
        		phSegmentSection, phSegmentCol, phIeRow }  
        ::= { phIeSlotTable 1 } 

        PhIeSlotEntry ::= 
            SEQUENCE {
           		phIeRow			INTEGER,
           		phIeElementAddr 	INTEGER,
           		phIeMediaPresent	INTEGER,
           		phIeMediaId		AdicBarCode
            }
	--
	-- Begin Physical I/E Slot definitions
	--       
 
     phIeRow OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Row coordinate value for this I/E slot"
       ::= { phIeSlotEntry 1 } 

     phIeElementAddr OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            SCSI Medium Changer Element Address for this I/E slot."
       ::= { phIeSlotEntry 2 }

     phIeMediaPresent OBJECT-TYPE
       SYNTAX INTEGER { yes(1), no(2), error(3) } 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Is a media cartridge present in this slot?  Values are:
            yes(1)     - system is certain that a cartridge is present.
            no(2)      - system is certain that a cartridge is not present.
            error(3)   - an error ocurred while determining if media is 
                         present.
            "
       ::= { phIeSlotEntry 3 }
       
     phIeMediaId OBJECT-TYPE
       SYNTAX AdicBarCode
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Media ID bar code of cartridge in this I/E
            slot, if present and available.  Returns
            zero length string if the bar code is not
            available for any reason."
       ::= { phIeSlotEntry 4 }       
	--
	-- End Physical I/E Slot definitions
	--

	-- ***************************************************************** 
	-- 
	-- Physical Library Tower Table 
	-- 
	-- ***************************************************************** 
    phTowerTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhTowerEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides tower status information."
        ::= { physicalLibrary 65 }

    phTowerEntry OBJECT-TYPE 
        SYNTAX PhTowerEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, phSegmentAisle, phSegmentFrame, phSegmentRack, phTowerNumber }        
        		         
        ::= { phTowerTable 1 } 

	--
	-- Begin Physical Library Tower definitions
	--  
	PhTowerEntry ::= 
        SEQUENCE {
           	phTowerNumber     INTEGER,
           	phTowerStatus     AdicTowerStatus,
           	phTowerREDId      AdicREDIdentifier 
            }

    phTowerNumber  OBJECT-TYPE
       SYNTAX INTEGER (0..64)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Index of tower within a frame."
       ::= { phTowerEntry 1 }

    phTowerStatus  OBJECT-TYPE
       SYNTAX AdicTowerStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Tower door status: open/closed, varied on/off."
       ::= { phTowerEntry 2 }

    phTowerREDId   OBJECT-TYPE
       SYNTAX AdicREDIdentifier
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
          "Runtime Error Detection identifier for this tower."
       ::= { phTowerEntry 3 }

 
	-- ***************************************************************** 
	-- 
	-- Physical Library Drive Table 
	-- 
	-- ***************************************************************** 
    phDriveTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhDriveEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides drive configuration and status information."
        ::= { physicalLibrary 110 }

    phDriveEntry OBJECT-TYPE 
        SYNTAX PhDriveEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, mediaDomainIndex, mediaTypeIndex,
        		phSegmentAisle, phSegmentFrame, phSegmentRack, 
        		phSegmentSection, phSegmentCol, phDriveRow }  
        ::= { phDriveTable 1 } 

        PhDriveEntry ::= 
            SEQUENCE {
           		phDriveRow			INTEGER,
           		phDriveElementAddr 		INTEGER,
           		phDriveScsiId			INTEGER,
           		phDriveScsiLun			INTEGER,
           		phDriveWwn			DisplayString,
           		phDriveVendor			DisplayString,
           		phDriveProduct			DisplayString,
           		phDriveSerialNumber		DisplayString,
           		phDriveNeedsCleaning		INTEGER,
           		phDriveAutoCleaning		Boolean,
           		phDriveInterfaceType		AdicInterfaceType,
           		phDriveFcLoopId			INTEGER,
           		phDriveFcLoopIdMode		INTEGER,
           		phDriveFcHardId			INTEGER,
           		phDriveStatus			AdicDriveStatus,
           		phDriveCommand			INTEGER,
           		phDriveFcPortId			INTEGER,
           		phDriveCompressionOn		Boolean,
           		phDriveWriteProtected		Boolean,
           		phDriveNumLoads			INTEGER,
           		phDriveNumCleans		INTEGER, 
           		phDrivePowerStatus 		INTEGER,
           		phDriveReadErrors		INTEGER,
           		phDriveWriteErrors		INTEGER,
           		phDriveMbytesRead		INTEGER,
           		phDriveMbytesWritten		INTEGER,
           		phDriveFirmwareVersion		DisplayString,
           		phDriveREDId            	AdicREDIdentifier,
           		phDriveOnlineStatus     	AdicOnlineStatus,
           		phDriveErrorCodeBytes   	OCTET STRING,
           		phDriveRasStatus        	AdicStatusGroupState,
           		phDriveWwPortName       	DisplayString,
           		phDriveIpAddress	       	IpAddress,
			phDriveVaryStatus     		AdicVaryStatus
            }
	--
	-- Begin Physical Library Drive definitions
	--  
     phDriveRow OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Row coordinate value for this drive element."
       ::= { phDriveEntry 1 } 

     phDriveElementAddr OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Robotic controller reported SCSI Element Address for this drive element.
             This is not the drive SCSI element address reported to a host."
       ::= { phDriveEntry 2 }

    phDriveScsiId OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "SCSI id for parallel SCSI drives."
       ::= { phDriveEntry 3 }

    phDriveScsiLun OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical Unit Number (LUN) of FC drives (SSC device)."
       ::= { phDriveEntry 4 }

    phDriveWwn OBJECT-TYPE
       SYNTAX DisplayString 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Fibre Channel drive World Wide Node Name (WWNN) or SAS Address for SAS drives."
       ::= { phDriveEntry 5 }

    phDriveVendor OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Drive vendor name."
       ::= { phDriveEntry 6 }

    phDriveProduct OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Drive product name."
       ::= { phDriveEntry 7 }

    phDriveSerialNumber OBJECT-TYPE
       SYNTAX DisplayString 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Physical (native) drive serial number."
       ::= { phDriveEntry 8 }

    phDriveNeedsCleaning OBJECT-TYPE
       SYNTAX INTEGER { true(1), false(2), immediate(3) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Drive cleaning need status."
       ::= { phDriveEntry 9 }  

    phDriveAutoCleaning OBJECT-TYPE
       SYNTAX Boolean
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Indication whether drive is configured for inclusion of automatic cleaning."
       ::= { phDriveEntry 10 }

    phDriveInterfaceType OBJECT-TYPE
       SYNTAX AdicInterfaceType
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Data interface type (SCSI, Fibre Channel, SAS, etc.)."
       ::= { phDriveEntry 11 }

    phDriveFcLoopId OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Loop ID for Fibre Channel interface drives; 
             - undefined for other interface type drives."
       ::= { phDriveEntry 12 }

    phDriveFcLoopIdMode OBJECT-TYPE
       SYNTAX INTEGER { soft(1), hard(2) } 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Loop ID Mode for Fibre Channel interface drives;
            - undefined for other interface type drives.  
            Controls negotiation of the port ID on the 
            Fibre Channel connection."
       ::= { phDriveEntry 13 }

    phDriveFcHardId OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Preferred port ID Mode for Fibre Channel 
            interface drives; - undefined for other interface 
            type drives.  Used only when port ID mode is set to 'hard'."  
       ::= { phDriveEntry 14 }

    phDriveStatus OBJECT-TYPE
       SYNTAX AdicDriveStatus
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Drive presence and load status."
       ::= { phDriveEntry 15 }

    phDriveCommand OBJECT-TYPE
       SYNTAX INTEGER { varyOn(1), varyOff(2), reset(3), powerOn(4), powerOff(5), 
                        powerCycle(6), tapeDriveFwUpdate(7), online(8), offline(9) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Perform various operations on a drive:
            ***************************************            
            varyOn(1) - vary on drive (tape drive powered on)
            varyOff(2) - vary off drive (tape drive powered off)
            reset(3) - perform a warm tape drive reset
            powerOn(4) - perform tape drive power on
            powerOff(5) - perform tape drive power off
            powerCycle(6) - perform tape drive power cycle
            tapeDriveFwUpdate(7) - download firmware to the tape drive
            online(8) - take drive sled online
            offline(9) - take drive sled offline"
       ::= { phDriveEntry 16 }
       
    phDriveFcPortId OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Port ID for fabric attached Fibre Channel drives,
            undefined for other interface type drives."
       ::= { phDriveEntry 17 } 

    phDriveCompressionOn OBJECT-TYPE
       SYNTAX Boolean
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Drive compression state."
       ::= { phDriveEntry 18 }             

    phDriveWriteProtected OBJECT-TYPE
       SYNTAX Boolean
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Current Write Protect status (if media present)."
       ::= { phDriveEntry 19 }             

    phDriveNumLoads OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Lifetime drive load count."
       ::= { phDriveEntry 20 }  

    phDriveNumCleans OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Lifetime drive cleaning operations."
       ::= { phDriveEntry 21 }

    phDrivePowerStatus OBJECT-TYPE
       SYNTAX INTEGER { poweredOn(1), poweredOff(2) }
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Tape drive power status."
       ::= { phDriveEntry 22 }  
       
    phDriveReadErrors OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Lifetime drive read error count."
       ::= { phDriveEntry 23 }  

    phDriveWriteErrors OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Lifetime drive write error count."
       ::= { phDriveEntry 24 }

    phDriveMbytesRead OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Megabytes (MB) read from this drive."
       ::= { phDriveEntry 25 }  

    phDriveMbytesWritten OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Megabytes (MB)written to this drive."
       ::= { phDriveEntry 26 }       

    phDriveFirmwareVersion OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "tape drive firmware version."
       ::= { phDriveEntry 27 } 	       

    phDriveREDId   OBJECT-TYPE 
       SYNTAX AdicREDIdentifier
       ACCESS read-only 
       STATUS mandatory 
       DESCRIPTION 
          "Runtime Error Detection identifier for this drive."
       ::= { phDriveEntry 28 }

    phDriveOnlineStatus   OBJECT-TYPE 
       SYNTAX AdicOnlineStatus
       ACCESS read-only 
       STATUS mandatory 
       DESCRIPTION 
          "Returns either online(1) or offline(2).  The 
          shutdown(3) state is not applicable to this
          object."
       ::= { phDriveEntry 29 }

    phDriveErrorCodeBytes   OBJECT-TYPE 
       SYNTAX OCTET STRING ( SIZE( 1 ) )
       ACCESS read-only 
       STATUS mandatory 
       DESCRIPTION 
          "String of bytes which contains error
          information about the drive.  The
          meaning of each byte is as follows: 
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          byte 0: drive seven segment display code"
       ::= { phDriveEntry 30 }

    phDriveRasStatus   OBJECT-TYPE 
       SYNTAX AdicStatusGroupState
       ACCESS read-only 
       STATUS mandatory 
       DESCRIPTION 
          "RAS status for this individual drive."
       ::= { phDriveEntry 31 }                   
                       
    phDriveWwPortName   OBJECT-TYPE 
       SYNTAX DisplayString
       ACCESS read-only 
       STATUS mandatory 
       DESCRIPTION 
          "World Wide Port Name (WWPN) of the drive's first FC port."
       ::= { phDriveEntry 32 }

    phDriveIpAddress OBJECT-TYPE
       SYNTAX IpAddress
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "IP address of the of the drive."
       ::= { phDriveEntry 33 }

    phDriveVaryStatus   OBJECT-TYPE 
       SYNTAX AdicVaryStatus
       ACCESS read-only 
       STATUS mandatory 
       DESCRIPTION 
          "Returns either variedOn(1) or variedOff(2), or inTransition(3) 
           in case a vary on or vary off is in progress."
       ::= { phDriveEntry 34 }
       
    --
	-- End Physical Library Drive definitions
	--         
      
	-- ***************************************************************** 
	-- 
	-- Physical Library Drive Statistics Historical Data
	-- 
	-- ***************************************************************** 
    phDriveStatHistoryTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhDriveStatHistoryEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table contains historical data on drive 
            operations.  Each row in the table gives various
            statistical data for a single drive over a one hour
            period.  The table is indexed such that phHourIndex = 0
            is the current hour's data, phHourIndex = 1 is one hour
            ago, phHourIndex = 2 is two hours ago, etc."
        ::= { physicalLibrary 112 }

    phDriveStatHistoryEntry OBJECT-TYPE 
        SYNTAX PhDriveStatHistoryEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, mediaDomainIndex, mediaTypeIndex,
        		phSegmentAisle 	, phSegmentFrame, phSegmentRack, 
        		phSegmentSection, phSegmentCol, phDriveRow, phHourIndex }  
        ::= { phDriveStatHistoryTable 1 } 

        PhDriveStatHistoryEntry ::= 
            SEQUENCE {
           		phHourIndex				INTEGER,
           		phHourlyMBytesRead 		INTEGER,
           		phHourlyMBytesWritten	INTEGER,
           		phHourlyMounts          INTEGER
            }
	--
	-- Begin Drive Hourly Statistics
	--  
 
     phHourIndex OBJECT-TYPE
       SYNTAX INTEGER (0..24)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Index into the historical data.  The integer value
            is the number in the past the data the data was collected.
            For example, phHourIndex = 0 means the current hour's 
            statistics, phHourIndex = 1 means one hour in the past,
            phHourIndex = 2 means two hours in the past."
       ::= { phDriveStatHistoryEntry 1 } 

     phHourlyMBytesRead OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of megabytes (MB) read by this drive during the
            one hour period indicated by phHourIndex."
       ::= { phDriveStatHistoryEntry 2 }

     phHourlyMBytesWritten OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of megabytes (MB) written by this drive during the
            one hour period indicated by phHourIndex."
       ::= { phDriveStatHistoryEntry 3 }

     phHourlyMounts OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of mounts performed by this drive during the
            one hour period indicated by phHourIndex."
       ::= { phDriveStatHistoryEntry 4 }       

                                              
	-- ***************************************************************** 
	-- 
	-- Physical Library Drive Port Group
	--
	-- A group of tables containing variables pertaining to
	-- drive data ports (SCSI, FC, SAS, etc. )
	-- 
	-- ***************************************************************** 
	phDrivePorts    OBJECT IDENTIFIER    ::= { physicalLibrary 116 }

	-- ***************************************************************** 
	-- 
	-- Fibre Channel Port Table
	-- 
	-- ***************************************************************** 
    fcDrivePortTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF FcDrivePortEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table contains objects pertaining to 
            Fibre Channel port settings on native Fibre
            Channel drives."
        ::= { phDrivePorts 10 }

    fcDrivePortEntry OBJECT-TYPE 
        SYNTAX FcDrivePortEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "A row object describing a Fibre Channel port." 
        INDEX { componentId, mediaDomainIndex, mediaTypeIndex,
        		phSegmentAisle 	, phSegmentFrame,	phSegmentRack, 
        		phSegmentSection, phSegmentCol, 	phDriveRow }  
        ::= { fcDrivePortTable 1 } 

        FcDrivePortEntry ::= 
            SEQUENCE {
                fcPortPreferredSpeed	AdicFcPortSpeed,
                fcPortNegotiatedSpeed   AdicFcPortSpeed,
           		fcPortPreferredType	    AdicFcPortType,  
           		fcPortNegotiatedType	AdicFcPortType,
           		fcPortTypeQualifier     INTEGER
            }
	--
	-- Begin Fibre Channel Port Attributes
	--  
 
     fcPortPreferredSpeed OBJECT-TYPE
       SYNTAX AdicFcPortSpeed
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Preferred transmitter speed.  Except for auto(1), 
            the numerical value of this object is equal to the 
            port speed in megabits per second.
            *******************************************
            auto(1) - speed is auto-negotiated with no preferred speed
            megabits1000(1000) - 1000 megabits per second
            megabits2000(2000) - 2000 megabits per second
            megabits2000(4000) - 4000 megabits per second
            megabits2000(8000) - 8000 megabits per second
            megabits2000(16000) - 16000 megabits per second"
       ::= { fcDrivePortEntry 1 }                                              

     fcPortNegotiatedSpeed OBJECT-TYPE
       SYNTAX AdicFcPortSpeed
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Actual transmitter speed as negotiated
            on the FC network. The numerical value of 
            this object is equal to the port speed in 
            megabits per second.  Although auto(1) is
            defined in the AdicFcPortSpeed enumeration,
            the fcPortNegotiatedSpeed should never return
            this value.
            *******************************************
            megabits1000(1000) - 1000 megabits per second
            megabits2000(2000) - 2000 megabits per second
            megabits2000(4000) - 4000 megabits per second
            megabits2000(8000) - 8000 megabits per second
            megabits2000(16000) - 16000 megabits per second"
       ::= { fcDrivePortEntry 2 }

     fcPortPreferredType OBJECT-TYPE
       SYNTAX AdicFcPortType
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Preferred port type, such as N_Port or NL_Port.
            auto(1) means auto-negotiate (no preference)." 
       ::= { fcDrivePortEntry 3 }                                              

     fcPortNegotiatedType OBJECT-TYPE
       SYNTAX AdicFcPortType 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Actual port type as negotiated on the FC network.  
            Should never return auto(1)."
       ::= { fcDrivePortEntry 4 }

     fcPortTypeQualifier OBJECT-TYPE
       SYNTAX INTEGER { public(1), private(2) }
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Public or private (library internal) port indicator."
       ::= { fcDrivePortEntry 5 }
    --
    -- End of Fibre Channel Port Attributes
    --       
    
	-- ***************************************************************** 
	-- 
	-- Physical Library Media Table 
	-- 
	-- ***************************************************************** 
    phMediaTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhMediaEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides media status information."
        ::= { physicalLibrary 120 }

    phMediaEntry OBJECT-TYPE 
        SYNTAX PhMediaEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, phMediaBarCode } 
        ::= { phMediaTable 1 } 

        PhMediaEntry ::= 
            SEQUENCE {
           		phMediaBarCode				AdicBarCode,
           		phMediaDomain				INTEGER,
           		phMediaType					INTEGER,
           		phMediaElementAddress		INTEGER,
           		phMediaMounts				INTEGER,
           		phMediaReadErrors			INTEGER,
           		phMediaWriteErrors			INTEGER,
           		phMediaCapacity				INTEGER,
           		phMediaFreeSpace			INTEGER,      
           		phMediaExported				Boolean,
           		phMediaImportTimestamp		AdicDateAndTime,
           		phMediaExportTimestamp		AdicDateAndTime
            }
	--
	-- Begin Physical Library Drive definitions
	--
    phMediaBarCode  OBJECT-TYPE
       SYNTAX AdicBarCode 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Tape cartridge barcode label."
       ::= { phMediaEntry 1 }

    phMediaDomain OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Tape cartridge domain."
       ::= { phMediaEntry 2 }

    phMediaType OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Tape cartridge type within domain."
       ::= { phMediaEntry 3 }

    phMediaElementAddress OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Element address where this cartridge is physically
            located."
       ::= { phMediaEntry 4 }

    phMediaMounts OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of times this cartridge has been mounted."
       ::= { phMediaEntry 5 }

    phMediaReadErrors OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of errors when reading from this cartridge."
       ::= { phMediaEntry 6 }

    phMediaWriteErrors OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of errors when writing to this cartridge."
       ::= { phMediaEntry 7 }

    phMediaCapacity OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Capacity of this cartridge in megabytes.  Returns
            -1 if capacity is unknown."
       ::= { phMediaEntry 8 }

    phMediaFreeSpace OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Amount of free space on this cartridge in megabytes.  Returns
            -1 if free space is unknown."
       ::= { phMediaEntry 9 }       
       
    phMediaExported OBJECT-TYPE
       SYNTAX Boolean
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Has this cartridge been exported from the library?"
       ::= { phMediaEntry 10 }

    phMediaImportTimestamp OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Timestamp when cartridge was imported.
            Compatible with the SMIv2 DateAndTime
            textual convention.  Encode is as follows:
            
             field  octets  contents                  range
             -----  ------  --------                  -----
               1      1-2   year                      0..65536
               2       3    month                     1..12
               3       4    day                       1..31
               4       5    hour                      0..23
               5       6    minutes                   0..59
               6       7    seconds                   0..60
                            (use 60 for leap-second)
               7       8    deci-seconds              0..9
               8       9    direction from UTC        '+' / '-'
               9      10    hours from UTC            0..11
              10      11    minutes from UTC          0..59

            For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be
            displayed as:

                             1992-5-26,13:30:15.0,-4:0

            Note that if only local time is known, then timezone
            information (fields 8-10) is not present."
       ::= { phMediaEntry 11 }

    phMediaExportTimestamp OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Timestamp when cartridge was exported.
            Compatible with the SMIv2 DateAndTime
            textual convention.  Encode is as follows:
            
             field  octets  contents                  range
             -----  ------  --------                  -----
               1      1-2   year                      0..65536
               2       3    month                     1..12
               3       4    day                       1..31
               4       5    hour                      0..23
               5       6    minutes                   0..59
               6       7    seconds                   0..60
                            (use 60 for leap-second)
               7       8    deci-seconds              0..9
               8       9    direction from UTC        '+' / '-'
               9      10    hours from UTC            0..11
              10      11    minutes from UTC          0..59

            For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be
            displayed as:

                             1992-5-26,13:30:15.0,-4:0

            Note that if only local time is known, then timezone
            information (fields 8-10) is not present."
       ::= { phMediaEntry 12 }
 	--
	-- End Physical Library Media definitions
	--	

	-- ***************************************************************** 
	-- 
	-- Physical Library Transport Element Table 
	-- 
	-- ***************************************************************** 
    phTransportTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhTransportEntry 
        ACCESS not-accessible 
        STATUS optional
        DESCRIPTION 
            "This table provides medium changer configuration and usage information."
        ::= { physicalLibrary 130 }

    phTransportEntry OBJECT-TYPE 
        SYNTAX PhTransportEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This entry object is optional **" 
        INDEX { componentId, phTransportElementAddress } 
        ::= { phTransportTable 1 } 

        PhTransportEntry ::= 
            SEQUENCE {
           		phTransportElementAddress		INTEGER,
				phTransportNumRecoveredGets		INTEGER,
				phTransportNumRecoveredPuts		INTEGER,
				phTransportNumRecoveredScans	INTEGER,
				phTransportNumPuts              INTEGER,
                phTransportREDId                AdicREDIdentifier				
            }
	--
	-- Begin Physical Library Drive definitions
	--
    phTransportElementAddress  OBJECT-TYPE
       SYNTAX INTEGER (0..65535)
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "The medium transport element address."
       ::= { phTransportEntry 1 }

    phTransportNumRecoveredGets  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of recovered get operations for this
            transport element."
       ::= { phTransportEntry 2 }       

    phTransportNumRecoveredPuts  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of recovered put operations for this
            transport element."            
       ::= { phTransportEntry 3 }

    phTransportNumRecoveredScans  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of recovered scan operations for this
            transport element."            
       ::= { phTransportEntry 4 }

    phTransportNumPuts  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Number put operations for this transport
            element.  The count is for the entire
            lifetime of the library."            
       ::= { phTransportEntry 5 }
       
    phTransportREDId   OBJECT-TYPE 
       SYNTAX AdicREDIdentifier
       ACCESS read-only 
       STATUS optional 
       DESCRIPTION 
          "** This object is optional **
          Runtime Error Detection identifier for this 
          tape drive."
       ::= { phTransportEntry 6 }
       
 	--
	-- End Physical Library Transport Element definitions
	--

	-- ***************************************************************** 
	-- 
	-- Physical Library Transport Element Domain Table 
	-- 
	-- ***************************************************************** 
    phTransportDomainTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhTransportDomainEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This table is optional **"
        ::= { physicalLibrary 132 }

    phTransportDomainEntry OBJECT-TYPE 
        SYNTAX PhTransportDomainEntry 
        ACCESS not-accessible 
        STATUS optional
        DESCRIPTION 
            "** This entry object is optional **" 
        INDEX { componentId, phTransportElementAddress, phTransportDomainIndex } 
        ::= { phTransportDomainTable 1 } 

        PhTransportDomainEntry ::= 
            SEQUENCE {
           		phTransportDomainIndex			INTEGER   -- points to entry in domain table
            }
	--
	-- Begin Physical Library Drive definitions
	--
    phTransportDomainIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **"
       ::= { phTransportDomainEntry 1 } 
       
 	--
	-- End Physical Library Transport Element definitions
	--

	-- ***************************************************************** 
	-- 
	-- Physical Library Cleaning Media Table 
	-- 
	-- ***************************************************************** 
    phCleaningMediaTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF PhCleaningMediaEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This table is optional **
            This is a combination of data about slots reserved for 
            automatic cleaning and the cleaning cartridges themselves.
            Since the relationship between slots and cartridges is
            one-to-one, we can combine these data."
        ::= { physicalLibrary 140 }

    phCleaningMediaEntry OBJECT-TYPE 
        SYNTAX PhCleaningMediaEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "** This entry object is optional **" 
        INDEX { componentId, mediaDomainIndex,           
        		phSegmentAisle 	, phSegmentFrame,	phSegmentRack, 
        		phSegmentSection, phSegmentCol, 	phCleaningMediaRow }  
        ::= { phCleaningMediaTable 1 } 

        PhCleaningMediaEntry ::= 
            SEQUENCE {      
            	phCleaningMediaRow					INTEGER,            
            	phCleaningMediaStatus				INTEGER, 
            	phCleaningMediaTypeIndex			INTEGER,            	
            	phCleaningMediaVendorId				DisplayString,
            	phCleaningMediaBarcode				AdicBarCode,
            	phCleaningMediaUseCount				INTEGER,
            	phCleaningMediaMaxUses				INTEGER,  -- this is really (per domain,type,vendor)
            	phCleaningMediaImportTimestamp		AdicDateAndTime
            }
	--
	-- Begin Physical Library Automatic Cleaning Media definitions
	--

    phCleaningMediaRow  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **"
       ::= { phCleaningMediaEntry 1 }      

    phCleaningMediaStatus  OBJECT-TYPE
       SYNTAX INTEGER { allocated(1), unallocated(2) }
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Cleaning storage is allocated by segment; the value
            of phCleaningMediaStatus indicates if the slot is 
            being used to store a cartridge or not.            
            allocated(1) means this slot is home to cartridge.
            unallocated(2) means there is no cartridge associated with this slot."
       ::= { phCleaningMediaEntry 2 }      

    phCleaningMediaTypeIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Exact media type of this cleaning cartridge.
            Value points to a row in the Media Type table with 
            mediaTypeIndex = phCleaningMediaTypeIndex."
       ::= { phCleaningMediaEntry 3 }      

    phCleaningMediaVendorId  OBJECT-TYPE
       SYNTAX DisplayString 
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Vendor of drives that this cleaning cartridge
            is designed to clean.  Value points to a row
            in the Vendor table with 
            vendorIdIndex = phCleaningMediaVendorId."
       ::= { phCleaningMediaEntry 4 }      

    phCleaningMediaBarcode  OBJECT-TYPE
       SYNTAX AdicBarCode
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Barcode (if present)."
       ::= { phCleaningMediaEntry 5 }

    phCleaningMediaUseCount  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Use count.  May be set to any value to accomodate 
            importing cartridges that have already been used."
       ::= { phCleaningMediaEntry 6 }   

    phCleaningMediaMaxUses  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-write
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Maximum number of uses for this cartidge." -- this is really per (domain,type,vendor)
       ::= { phCleaningMediaEntry 7 }           

    phCleaningMediaImportTimestamp  OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "** This object is optional **
            Timestamp when this cartridge was imported.
            Compatible with the SMIv2 DateAndTime
            textual convention.  Encode is as follows:
            
             field  octets  contents                  range
             -----  ------  --------                  -----
               1      1-2   year                      0..65536
               2       3    month                     1..12
               3       4    day                       1..31
               4       5    hour                      0..23
               5       6    minutes                   0..59
               6       7    seconds                   0..60
                            (use 60 for leap-second)
               7       8    deci-seconds              0..9
               8       9    direction from UTC        '+' / '-'
               9      10    hours from UTC            0..11
              10      11    minutes from UTC          0..59

            For example, Tuesday May 26, 1992 at 1:30:15 PM EDT would be
            displayed as:

                             1992-5-26,13:30:15.0,-4:0

            Note that if only local time is known, then timezone
            information (fields 8-10) is not present."
       ::= { phCleaningMediaEntry 8 }

 	--
	-- End Physical Library Automatic Cleaning definitions
	--

-- ***************************************************************** 
-- 
-- MCB Logical Library Group 
-- 
-- ***************************************************************** 
    loGeneralInfoTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoGeneralInfoEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides general information about the Logical Library Manager."
        ::= { logicalLibrary 10 }

    loGeneralInfoEntry OBJECT-TYPE 
        SYNTAX LoGeneralInfoEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId  } 
        ::= { loGeneralInfoTable 1 } 

        LoGeneralInfoEntry ::= 
            SEQUENCE {
            	maxLogicalLibraries			INTEGER,
            	numLogicalLibraries			INTEGER,
            	masterOnlineStatus			INTEGER,
            	numVendorIds				INTEGER 
           }
--
-- Begin logical library general info definitions
--                           
    maxLogicalLibraries  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Maximum number of logical libraries.  This includes
            all media types."
       ::= { loGeneralInfoEntry 1 }

    numLogicalLibraries  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Current number of logical libraries configured. 
            This includes all media types."
       ::= { loGeneralInfoEntry 2 }

    masterOnlineStatus  OBJECT-TYPE
       SYNTAX INTEGER { online(1), offline(2) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Library mode: Online/offline."
       ::= { loGeneralInfoEntry 3 } 

    numVendorIds  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Supported number of library vendor names."
       ::= { loGeneralInfoEntry 4 }            
--
-- End logical library general info definitions
--                           

	-- ***************************************************************** 
	-- 
	-- Auto Partition Table
	-- 
	-- ***************************************************************** 
    autoPartitionTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF AutoPartitionEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides variables pertaining to library auto partitioning."
        ::= { logicalLibrary 12 }

    autoPartitionEntry OBJECT-TYPE 
        SYNTAX AutoPartitionEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Autopartitioning is based on the media domain, media
            type, and drive data port interface type." 
        INDEX { componentId, mediaDomainIndex, mediaTypeIndex, phDriveInterfaceType } 
        ::= { autoPartitionTable 1 } 

        AutoPartitionEntry ::= 
            SEQUENCE {
            	numAutoPartition        INTEGER	, -- how many partitions to create upon auto-partition
            	autoPartitionCommand    INTEGER 
            }

    numAutoPartition  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Number of partitions to create upon 
            automatic partitioning for a given
            media domain, media type and interface
            type."
       ::= { autoPartitionEntry 1 }

    autoPartitionCommand  OBJECT-TYPE
       SYNTAX INTEGER { autoPartition(1) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Perform operation based on the media domain,
            media type, and interface type:
            autoPartition(1) - create the number of partitions
                               indicated by the numAutoPartition
                               object, with the library resouces
                               divided equally among the partitions."

       ::= { autoPartitionEntry 2 }    

--
-- End Auto Partitioning Table definitions
-- 
	-- ***************************************************************** 
	-- 
	-- Logical Library Vendor ID Table 
	-- 
	-- ***************************************************************** 
                             
    vendorIdTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF VendorIdEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides information for possible vendor and product emulations."
        ::= { logicalLibrary 15 }

    vendorIdEntry OBJECT-TYPE 
        SYNTAX VendorIdEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, vendorIdIndex  } 
        ::= { vendorIdTable 1 } 

        VendorIdEntry ::= 
            SEQUENCE {
            	vendorIdIndex		INTEGER,
            	vendorName			DisplayString,
            	numProductIds		INTEGER            	
           }

	--
	-- Begin Vendor ID definitions
	--
    vendorIdIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Vendor identification index."
       ::= { vendorIdEntry 1 }

    vendorName  OBJECT-TYPE
       SYNTAX DisplayString (SIZE(0..64))
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Vendor name."
       ::= { vendorIdEntry 2 }

     numProductIds  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of product ids for the vendor name."
       ::= { vendorIdEntry 3 }       
	--
	-- End Vendor ID definitions
	--

	-- ***************************************************************** 
	-- 
	-- Physical Library Product ID Table 
	-- 
	-- ***************************************************************** 
                             
    productIdTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF ProductIdEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides supported product names and configuration
            constraints."
        ::= { logicalLibrary 17 }

    productIdEntry OBJECT-TYPE 
        SYNTAX ProductIdEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, vendorIdIndex, productIdIndex  } 
        ::= { productIdTable 1 } 

        ProductIdEntry ::= 
            SEQUENCE {
            	productIdIndex		INTEGER,
            	productIdName		DisplayString,
            	productDrivesMin	INTEGER,
            	productDrivesMax	INTEGER,
            	productSlotsMin		INTEGER,
            	productSlotsMax		INTEGER,
            	productIeMin		INTEGER,
            	productIeMax		INTEGER
           }

	--
	-- Begin Product ID definitions
	--
    productIdIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Product identification index."
       ::= { productIdEntry 1 }

    productIdName  OBJECT-TYPE
       SYNTAX DisplayString (SIZE(0..64))
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Product name."
       ::= { productIdEntry 2 }

    productDrivesMin  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Product's minimum number of supported drives."
       ::= { productIdEntry 3 }

    productDrivesMax  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Product's maximum number of supported drives."
       ::= { productIdEntry 4 }       

    productSlotsMin  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Product's minimum number of supported storage slots."
       ::= { productIdEntry 5 }

    productSlotsMax  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Product's maximum number of supported storage slots."
       ::= { productIdEntry 6 }

    productIeMin  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Product's minimum number of supported IE slots."
       ::= { productIdEntry 7 }

    productIeMax  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Product's maximum number of supported IE slots."
       ::= { productIdEntry 8 }
	--
	-- End Product ID definitions
	--                                
             
 	-- ***************************************************************** 
	-- 
	-- Logical Library Table 
	-- 
	-- ***************************************************************** 
                                         
    logicalLibraryTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LogicalLibraryEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides information for logical libraries."
        ::= { logicalLibrary 20 }

    logicalLibraryEntry OBJECT-TYPE 
        SYNTAX LogicalLibraryEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, logicalLibraryIndex } 
        ::= { logicalLibraryTable 1 } 

        LogicalLibraryEntry ::= 
            SEQUENCE {
            	logicalLibraryIndex		INTEGER,
            	command					INTEGER,
            	name					DisplayString,
            	assignedLun				INTEGER,
            	vendorId				DisplayString,
            	productId				DisplayString,
            	mediaDomain				INTEGER,
            	mediaType				INTEGER,
            	numSlots				INTEGER,
            	numIE					INTEGER,
            	numDrives				INTEGER,
            	loStatus				INTEGER,
            	automaticCleaning		AdicEnable,
            	mediaTypeChecking		AdicEnable,
            	serialNumber			DisplayString,
            	loInterfaceType			AdicInterfaceType,
            	loNumLibraries			INTEGER,
            	loLtoTapeTags           INTEGER,
            	ltfsLicensed			AdicEnable
            	
            }
--
-- Begin definitions
--
    logicalLibraryIndex  OBJECT-TYPE
       SYNTAX INTEGER (0..65535)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Index to identify the Logical Library to be managed."
       ::= { logicalLibraryEntry 1 }

    command  OBJECT-TYPE
       SYNTAX INTEGER { createSimple(1), createExpert(2), modify(3), delete(4) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library command request."
       ::= { logicalLibraryEntry 2 }
                 
    name  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library name."
       ::= { logicalLibraryEntry 3 }
 
     assignedLun OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Assigned LUN of this library's 
            (virtual) SCSI media changer. This
            can only be changed through the 
            SANMgr proxy MIB device map table."
       ::= { logicalLibraryEntry 4 }

    vendorId  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library vendor identification for SCSI inquiry string."
       ::= { logicalLibraryEntry 5 }

    productId  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library product identification for SCSI inquiry string."
       ::= { logicalLibraryEntry 6 }

    mediaDomain  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Points to entry in the Physical Library MediaDomainTable."
       ::= { logicalLibraryEntry 7 }

    mediaType  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Points to entry in the Physical Library MediaTypeTable."
       ::= { logicalLibraryEntry 8 }
       
    numSlots  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library configured storage slots."
       ::= { logicalLibraryEntry 9 }
       
    numIE  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library configured IE slots."
       ::= { logicalLibraryEntry 10 }

    numDrives  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library configured drives."
       ::= { logicalLibraryEntry 11 }

    loStatus  OBJECT-TYPE
       SYNTAX INTEGER { online(1), offline(2) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library mode."
       ::= { logicalLibraryEntry 12 }

    automaticCleaning  OBJECT-TYPE
       SYNTAX AdicEnable
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library automatic drive cleaning setting."
       ::= { logicalLibraryEntry 13 }       
 
    mediaTypeChecking  OBJECT-TYPE
       SYNTAX AdicEnable
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library media type checking setting."
       ::= { logicalLibraryEntry 14 }

    serialNumber  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Logical library serial number." 
       ::= { logicalLibraryEntry 15 }

    loInterfaceType  OBJECT-TYPE
       SYNTAX AdicInterfaceType
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library connection interface type."
       ::= { logicalLibraryEntry 16 }
                                          
    loNumLibraries  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS obsolete
       DESCRIPTION
            "Formerly used in auto partition operation.
            Made obsolete by autoPartition table."
       ::= { logicalLibraryEntry 17 }

    loLtoTapeTags OBJECT-TYPE
       SYNTAX INTEGER { prefix(1), suffix(2), disabled(3) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Media identifier support.
            Controls the inclusion of media type characters 
            in the media barcodes whne reporting barcodes to SCSi hosts.
            For example, the LTO media type characters are 
            'L1' for LTO-1 and 'L2' for LTO-2. This object 
            applies to logical libraries of all media domains,
            not just LTO (as the name suggests)."
       ::= { logicalLibraryEntry 18 }

    ltfsLicensed  OBJECT-TYPE
       SYNTAX AdicEnable
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Logical library LTFS support/usage identification."
       ::= { logicalLibraryEntry 19 }

	-- ***************************************************************** 
	-- 
	-- Logical Library Segement Table
	--
	-- This is a list of all the segments in the logical library
	-- 
	-- ***************************************************************** 
    loSegmentTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoSegmentEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This is a list of all the segments in the library."
        ::= { logicalLibrary 25 }

    loSegmentEntry OBJECT-TYPE 
        SYNTAX LoSegmentEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, loSegmentType,	loSegmentAisle, loSegmentFrame,	loSegmentRack, 
        		loSegmentSection, loSegmentCol, loSegmentStartingRow } 
        ::= { loSegmentTable 1 } 

        LoSegmentEntry ::= 
            SEQUENCE {    
            	loSegmentAisle				INTEGER, -- Physical aisle coordinate of segment
            	loSegmentFrame				INTEGER, -- Physical frame coordinate of segment
           		loSegmentRack				INTEGER, -- Physical rack coordinate of segment
				loSegmentSection			INTEGER, -- Physical section coordinate of segment         		
           		loSegmentCol				INTEGER, -- Physical column coordinate of segment 
           		loSegmentStartingRow		INTEGER, -- Physical row value where this segment begins
            	loSegmentSize				INTEGER,
            	loSegmentType				AdicSegmentType,
            	loSegmentMediaDomain		INTEGER,
            	loSegmentBelongsTo			INTEGER,
            	loSegmentCommand			INTEGER,
            	loSegmentStatus				INTEGER,
            	loSegmentStartingAddress	INTEGER -- SCSI element address of 1st element in this segment
            }  
	--
	-- Begin Physical Library Segment definitions
	--
	
    loSegmentAisle  OBJECT-TYPE
       SYNTAX INTEGER (0..1)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Aisle coordinate value for this segment."
       ::= { loSegmentEntry 1 }

    loSegmentFrame  OBJECT-TYPE
       SYNTAX INTEGER (0..64)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Frame coordinate value for this segment."
       ::= { loSegmentEntry 2 }       
       
    loSegmentRack  OBJECT-TYPE
       SYNTAX INTEGER (0..64)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Rack coordinate value for this segment."
       ::= { loSegmentEntry 3 }
 
    loSegmentSection  OBJECT-TYPE
       SYNTAX INTEGER (0..64)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Section coordinate for this segment."
       ::= { loSegmentEntry 4 }

    loSegmentCol  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Column coordinate value for this segment."
       ::= { loSegmentEntry 5 }             
 
     loSegmentStartingRow  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Row coordinate of the first element in this segment.
            This is useful to divide a column into multiple 
            segments.  For instance, a segment which contains
            rows 1 - 10 would have loSegmentStartingRow = 1.  A
            segment which contains rows 11 - 20 in the same 
            column would have loSegmentStartingRow = 11."
       ::= { loSegmentEntry 6 }
       
    loSegmentSize  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of elements in this segment."
       ::= { loSegmentEntry 7 }                        
       
    loSegmentType  OBJECT-TYPE
       SYNTAX AdicSegmentType
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Type segment (storage, I/E, drive)."
       ::= { loSegmentEntry 8 }

    loSegmentMediaDomain  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Media domain for this segment.
            Points to a row in the media domain table."
       ::= { loSegmentEntry 9 }

    loSegmentBelongsTo  OBJECT-TYPE
       SYNTAX INTEGER (0..65535)
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "logicalLibraryIndex to which this segment is 
            allocated.  This object has no meaning for 
            an I/E segment since I/E segments may be shared.
            For I/E segments, the list of logical libaraies
            which share the segment may be found in the 
            loSegmentAssignmentTable."
       ::= { loSegmentEntry 10 }                

    loSegmentCommand  OBJECT-TYPE
       SYNTAX INTEGER { allocate(1), free(2), reserveForCleaning(3) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Operation to perform using objects in varbind list."
       ::= { loSegmentEntry 11 }       

    loSegmentStatus  OBJECT-TYPE
       SYNTAX INTEGER { allocated(1), unallocated(2) }
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Is this segment allocated to a logical library?"
       ::= { loSegmentEntry 12 }
                                     
    loSegmentStartingAddress  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Logical SCSI element address of the first 
            element (row) in this segment.  Element
            addresses are contiguous within a segment
            and unique within a logical library."       
       ::= { loSegmentEntry 13 }  

       
	-- ***************************************************************** 
	-- 
	-- Logical Library Segement BelongsTo Table
	--
	-- This is a list of all logical library to which each segment is 
	-- assigned.
	-- 
	-- ***************************************************************** 
    loSegmentBelongsToTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoSegmentBelongsToEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This is a list of the logical libraries to
            which each segments belongs.  Storage and
            drive segments belong to a maximum of
            one logical library, but I/E segments
            may be shared among several logical libraries."
        ::= { logicalLibrary 27 }

    loSegmentBelongsToEntry OBJECT-TYPE 
        SYNTAX LoSegmentBelongsToEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId 	, loSegmentType, 
        		loSegmentAisle 	, loSegmentFrame,	loSegmentRack, 
        		loSegmentSection, loSegmentCol, loSegmentStartingRow,
        		loSegmentAssignedTo } 
        ::= { loSegmentBelongsToTable 1 } 

        LoSegmentBelongsToEntry ::= 
            SEQUENCE {    
            	loSegmentAssignedTo		INTEGER 
            }  
	--
	-- Begin Physical Library Segment definitions
	--
	
    loSegmentAssignedTo  OBJECT-TYPE
       SYNTAX INTEGER (0..65535)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "logicalLibraryIndex to which this segment belongs. 
            Reporting -1 if not assigned."
       ::= { loSegmentBelongsToEntry 1 }                
              
	-- ***************************************************************** 
	-- 
	-- Logical Library Storage Segement Table
	--
	-- This is a list of all the storage segments in the logical library
	-- 
	-- ***************************************************************** 
    loStorageSegTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoStorageSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a list of all the storage segments in the library, 
            indexed by a flat segment index loStorageSegIndex."
        ::= { logicalLibrary 30 }

    loStorageSegEntry OBJECT-TYPE 
        SYNTAX LoStorageSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, logicalLibraryIndex, 
                loSegmentAisle 	, loSegmentFrame,	loSegmentRack, 
        		loSegmentSection, loSegmentCol, loSegmentStartingRow }
        ::= { loStorageSegTable 1 } 

        LoStorageSegEntry ::= 
            SEQUENCE {
            	loStorageSegSize			INTEGER,   -- Number of storage elements in this segment 
            	loStorageSegStartingAddress	INTEGER
            }  
	--
	-- Begin Physical Library Segment definitions
	--
    loStorageSegSize  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of storage elements in this segment."
       ::= { loStorageSegEntry 1 }       

    loStorageSegStartingAddress  OBJECT-TYPE
       SYNTAX INTEGER (0..65535)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Logical SCSI element address of the first element
            (row) in this storage segment.  Element
            addresses are contiguous within a segment
            and unique within a logical library."
       ::= { loStorageSegEntry 2 }       

	-- ***************************************************************** 
	-- 
	-- Logical Library I/E Segement Table
	--
	-- This is a list of all the storage segments in the logical library
	-- 
	-- ***************************************************************** 
    loIeSegTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoIeSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a list of all I/E segments in the logical library."
        ::= { logicalLibrary 40 }

    loIeSegEntry OBJECT-TYPE 
        SYNTAX LoIeSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, logicalLibraryIndex,
                loSegmentAisle 	, loSegmentFrame,	loSegmentRack, 
        		loSegmentSection, loSegmentCol, loSegmentStartingRow }        

        ::= { loIeSegTable 1 } 

        LoIeSegEntry ::= 
            SEQUENCE {  
            	loIeSegSize				INTEGER,
                loIeSegReserve 			INTEGER,
                loIeSegReservedBy		INTEGER,
                loIeSegStartingAddress	INTEGER            	
            }  
	--
	-- Begin Logical Library I/E Segment definitions
	--

    loIeSegSize  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
       		"Number of I/E elements in this segment."
       ::= { loIeSegEntry 1 }

    loIeSegReserve  OBJECT-TYPE
       SYNTAX INTEGER { reserve(1), release(2) } 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Mechanism to release and reserve this I/E segment."
       ::= { loIeSegEntry 2 }     

    loIeSegReservedBy  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Index of logical library for which this
            I/E segment has been reserved."
       ::= { loIeSegEntry 3 }

    loIeSegStartingAddress  OBJECT-TYPE
       SYNTAX INTEGER (0..65535)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Logical SCSI element address of the first 
            element (row) in this I/E segment.  Element
            addresses are contiguous within a segment
            and unique within a logical library."
       ::= { loIeSegEntry 4 }
       
	-- ***************************************************************** 
	-- 
	-- Physical Library Drive Segement Table
	--
	-- This is a list of all the storage segments in the library
	-- 
	-- ***************************************************************** 
    loDriveSegTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoDriveSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a a list of the drive segments in the library."
        ::= { logicalLibrary 50 }

    loDriveSegEntry OBJECT-TYPE 
        SYNTAX LoDriveSegEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, logicalLibraryIndex,
                loSegmentAisle 	, loSegmentFrame,	loSegmentRack, 
        		loSegmentSection, loSegmentCol, loSegmentStartingRow }        
        ::= { loDriveSegTable 1 } 

        LoDriveSegEntry ::= 
            SEQUENCE {
            	loDriveSegSize				INTEGER,
            	loDriveSegStartingAddress	INTEGER,
            	loDriveSegMediaType			INTEGER,
            	loDriveSegInterfaceType		AdicInterfaceType            	
            }  
	--
	-- Begin Logical Library Segment definitions
	--
    loDriveSegSize  OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of elements in this segment."
       ::= { loDriveSegEntry 1 }

    loDriveSegStartingAddress  OBJECT-TYPE
       SYNTAX INTEGER (0..65535)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Logical SCSI element address of the first 
            element (row) in this drive segment.  Element
            addresses are contiguous within a segment
            and unique within a logical library."
       ::= { loDriveSegEntry 2 }

    loDriveSegMediaType  OBJECT-TYPE
       SYNTAX INTEGER (0..255)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Exact media type of this segment. 
            With loSegmentMediaDomain, points a 
            row in the media type table."
       ::= { loDriveSegEntry 3 }

    loDriveSegInterfaceType  OBJECT-TYPE
       SYNTAX AdicInterfaceType
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Data interface for this segment."
       ::= { loDriveSegEntry 4 }

       
	-- ***************************************************************** 
	-- 
	-- Logical Library Storage Slot Table 
	-- 
	-- ***************************************************************** 
    loStorageSlotTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoStorageSlotEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a a list of all storage slots in the library."
        ::= { logicalLibrary 60 }

    loStorageSlotEntry OBJECT-TYPE 
        SYNTAX LoStorageSlotEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, logicalLibraryIndex, 
                loSegmentAisle 	, 	loSegmentFrame,	loSegmentRack, 
        		loSegmentSection,	loSegmentCol, loStorageRow }
        ::= { loStorageSlotTable 1 } 

        LoStorageSlotEntry ::= 
            SEQUENCE {
           		loStorageRow			INTEGER 
            }
	--
	-- Begin Logical Storage Slot definitions
	--       
     loStorageRow OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Row coordinate value for this storage slot."
       ::= { loStorageSlotEntry 1 } 
	--
	-- End Logical Storage Slot definitions
	--

	-- ***************************************************************** 
	-- 
	-- Logical Library I/E Slot Table 
	-- 
	-- ***************************************************************** 
    loIeSlotTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoIeSlotEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a a list of all IE slots in the library."
        ::= { logicalLibrary 70 }

    loIeSlotEntry OBJECT-TYPE 
        SYNTAX LoIeSlotEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, logicalLibraryIndex, 
                loSegmentAisle,	loSegmentFrame,	loSegmentRack, 
        		loSegmentSection,	loSegmentCol, 		loIeRow }  
        ::= { loIeSlotTable 1 } 

        LoIeSlotEntry ::= 
            SEQUENCE {
           		loIeRow			INTEGER 
            }
	--
	-- Begin Logical I/E Slot definitions
	--       
     loIeRow OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Row coordinate value for this IE slot."
       ::= { loIeSlotEntry 1 } 
	--
	-- End Logical I/E Slot definitions
	--

	-- ***************************************************************** 
	-- 
	-- Logical Library Drive Table 
	-- 
	-- ***************************************************************** 
    loDriveTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoDriveEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides a a list of all drive slots in the library."
        ::= { logicalLibrary 80 }

    loDriveEntry OBJECT-TYPE 
        SYNTAX LoDriveEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, logicalLibraryIndex, 
                loSegmentAisle 	, 	loSegmentFrame,	loSegmentRack, 
        		loSegmentSection,	loSegmentCol, 		loDriveRow }
        ::= { loDriveTable 1 } 

        LoDriveEntry ::= 
            SEQUENCE {
           		loDriveRow				INTEGER             	
            }
	--
	-- Begin Logical Library Drive definitions
	--
 
     loDriveRow OBJECT-TYPE
       SYNTAX INTEGER (0..1024)
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Row coordinate value for where this drive
            element is physically located."
       ::= { loDriveEntry 1 }
       
 	--
	-- End Logical Library Drive definitions
	--

    loStatisticsTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF LoStatisticsEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "This table provides statistics for each logical library."
        ::= { logicalLibrary 90 }

    loStatisticsEntry OBJECT-TYPE 
        SYNTAX LoStatisticsEntry 
        ACCESS not-accessible 
        STATUS optional 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId, logicalLibraryIndex } 
        ::= { loStatisticsTable 1 } 

        LoStatisticsEntry ::= 
            SEQUENCE {
            	loNumRecoveredGets		INTEGER,
            	loNumRecoveredPuts		INTEGER,
            	loNumRecoveredScans		INTEGER,
                loStatsNumPuts          INTEGER,
                loStatsNumPutRetries    INTEGER,
                loStatsNumGetRetries    INTEGER,
                loStatsNumScanRetries   INTEGER
            }
--
-- Begin loStatistics definitions
--
    loNumRecoveredGets  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of recovered get operations for this
            logical library."
       ::= { loStatisticsEntry 1 }

    loNumRecoveredPuts  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of recovered putt operations for this
            logical library."
       ::= { loStatisticsEntry 2 }

    loNumRecoveredScans  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of recovered scan operations for this
            logical library."
       ::= { loStatisticsEntry 3 }

    loStatsNumPuts  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of put operations performed for this
            logical library."
       ::= { loStatisticsEntry 4 }

    loStatsNumPutRetries  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of retried put operations performed for this
            logical library."
       ::= { loStatisticsEntry 5 }

    loStatsNumGetRetries  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of retried get operations performed for this
            logical library."
       ::= { loStatisticsEntry 6 }       

    loStatsNumScanRetries  OBJECT-TYPE
       SYNTAX INTEGER 
       ACCESS read-only
       STATUS optional
       DESCRIPTION
            "Lifetime number of retried scan operations performed for this
            logical library."
       ::= { loStatisticsEntry 7 }
       
--
-- End loStatistics definitions
--

-- ***************************************************************** 
-- 
-- MCB RAS Group 
-- 
-- *****************************************************************  

	-- ***************************************************************** 
	-- 
	-- System Status Table 
	-- 
	-- ***************************************************************** 

    rasSystemStatusTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF RasSystemStatusEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table provides status information for various system
            status groups."
        ::= { ras 10 }

    rasSystemStatusEntry OBJECT-TYPE 
        SYNTAX RasSystemStatusEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Information for a particular system status group.
            The componentId index refers to the MCB through 
            which the management application accesses the RAS 
            manager.  The rasStatusGroupIndex specifies the
            system status group for which the entry contains 
            information." 
        INDEX { componentId, rasStatusGroupIndex  } 
        ::= { rasSystemStatusTable 1 } 

        RasSystemStatusEntry ::= 
            SEQUENCE {
            	rasStatusGroupIndex				AdicStatusGroup,
            	rasStatusGroupStatus 			AdicStatusGroupState,
            	rasStatusGroupPreviousStatus 	AdicStatusGroupState,            	
            	rasStatusGroupTextSummary		DisplayString,
            	rasStatusGroupTotalTickets 		INTEGER,
            	rasStatusGroupOpenTickets 		INTEGER,        
            	rasStatusGroupActionsPending	INTEGER,
            	rasStatusGroupLastChange		AdicDateAndTime
           }
	--
	-- Begin RAS System Status Table definitions
	--
    rasStatusGroupIndex  OBJECT-TYPE
       SYNTAX AdicStatusGroup
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Identifies the system status group for which
            this row object contains information."
       ::= { rasSystemStatusEntry 1 }

    rasStatusGroupStatus  OBJECT-TYPE
       SYNTAX AdicStatusGroupState 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The status (or condition) of this system status group.
            Use of the 'indeterminate' state: 'indeterminate' is 
            primarily for use in the rasStatusGroupPreviousStatus
            object, where there may not be any previous state 
            information."
       ::= { rasSystemStatusEntry 2 }

    rasStatusGroupPreviousStatus  OBJECT-TYPE
       SYNTAX AdicStatusGroupState
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "After a state change, this object gives the 
            previous state of the system status group.
            If there is no previous state information 
            available, such as when resetting the system,
            the previous state is 'indeterminate'."
       ::= { rasSystemStatusEntry 3 }
       
    rasStatusGroupTextSummary  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "A brief message describing the state of this
            system status group.  If the rasStatusGroupStatus
            is other than 'good', this object should return
            the reason why this is so."
       ::= { rasSystemStatusEntry 4 } 

    rasStatusGroupTotalTickets  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The total number of RAS tickets created 
            against this system status group."
       ::= { rasSystemStatusEntry 5 }
       
    rasStatusGroupOpenTickets  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The number of RAS tickets currently open 
            against this system status group."
       ::= { rasSystemStatusEntry 6 }

    rasStatusGroupActionsPending  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The number of actions pending 
            against this system status group."
       ::= { rasSystemStatusEntry 7 }

    rasStatusGroupLastChange  OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Timestamp of the last time the status changed." 
       ::= { rasSystemStatusEntry 8 }  

	-- ***************************************************************** 
	-- 
	-- RAS Ticket Table 
	-- 
	-- ***************************************************************** 

    rasTicketTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF RasTicketEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table contains one row for each ticket in the
            database."
        ::= { ras 20 }

    rasTicketEntry OBJECT-TYPE 
        SYNTAX RasTicketEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Each entry contains information for a 
            single RAS ticket.  The componentId index 
            refers to the MCB through which the management 
            application accesses the RAS manager.  The 
            rasTicketId specifies the ticket instance."
        INDEX { componentId, rasTicketId  } 
        ::= { rasTicketTable 1 } 

        RasTicketEntry ::= 
            SEQUENCE {
            	rasTicketId		Gauge,
            	rasTicketRowStatus	RowStatus,
            	rasTicketState 		AdicRasTicketState,
            	rasTicketQualifier	INTEGER, 
                rasTicketSeverity	INTEGER,  
               	rasTicketDescription	DisplayString, 
            	rasTicketStatusGroup	AdicStatusGroup, 
            	rasTicketGroupStatus	AdicStatusGroupState,
            	rasTicketClosedBy	INTEGER,
            	rasTicketVerifiedBy	INTEGER,
            	rasTicketComments	DisplayString,
            	rasTicketSerialNumber	AdicFruSerialNumber,
            	rasTicketTimeOpened     AdicDateAndTime,
            	rasTicketTimeClosed     AdicDateAndTime,
            	rasTicketCount          INTEGER,
            	rasTicketKeyReport      INTEGER,
            	rasTicketEventCode      DisplayString 
             }                                            
	--
	-- Begin RAS Ticket Table definitions
	--
    rasTicketId  OBJECT-TYPE
       SYNTAX Gauge 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Unique identifier for this ticket. The RAS 
            system defines the ticket ID as an unsigned
            32 bit integer, so it is declared here as a 
            Gauge32."
       ::= { rasTicketEntry 1 }

    rasTicketRowStatus  OBJECT-TYPE
       SYNTAX RowStatus
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Controls creation and deletion of rows
            in this table.  Creation of RAS tickets
            via SNMP is currently not permitted, so
            writing a value of createAndGo(4) or 
            createAndWait(5) does not create a new
            row; it may return error indication."
       ::= { rasTicketEntry 2 }

    rasTicketState  OBJECT-TYPE
       SYNTAX AdicRasTicketState 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Current ticket state."
       ::= { rasTicketEntry 3 }

    rasTicketQualifier  OBJECT-TYPE
       SYNTAX INTEGER { none(1), resolved(2), cannotDuplicate(3), asDesigned(4), manualOverride(5) }
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Additional ticket state explanation."
       ::= { rasTicketEntry 4 }

    rasTicketSeverity  OBJECT-TYPE
       SYNTAX AdicRasTicketSeverity 
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
           "RAS ticket priority."
       ::= { rasTicketEntry 5 }

    rasTicketDescription  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "RAS ticket issue information."
       ::= { rasTicketEntry 6 }

    rasTicketStatusGroup  OBJECT-TYPE
       SYNTAX AdicStatusGroup
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "RAS status group to which this ticket belongs."
       ::= { rasTicketEntry 7 }

    rasTicketGroupStatus  OBJECT-TYPE
       SYNTAX AdicStatusGroupState
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Current RAS group status."
       ::= { rasTicketEntry 8 }
              
    rasTicketClosedBy  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Ticket closure identification: user or system."
       ::= { rasTicketEntry 9 }

    rasTicketVerifiedBy  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Ticket verification identification: user or system."
       ::= { rasTicketEntry 10 }

    rasTicketComments  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "RAs ticket issue details."
       ::= { rasTicketEntry 11 }

    rasTicketSerialNumber  OBJECT-TYPE
       SYNTAX AdicFruSerialNumber
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "RAS ticket FRU serial number."
       ::= { rasTicketEntry 12 }

    rasTicketTimeOpened  OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Date and time when ticket was opened."
       ::= { rasTicketEntry 13 }

    rasTicketTimeClosed  OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Date and time when ticket was closed."
       ::= { rasTicketEntry 14 }

    rasTicketCount  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of times an attempt was made to open
            a duplicate ticket."
       ::= { rasTicketEntry 15 }

    rasTicketKeyReport  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Contains 0 or a valid rasReportId value.  
            Indicates which report is currently responsible 
            for the severity of the ticket."
       ::= { rasTicketEntry 16 }   
          
    rasTicketEventCode OBJECT-TYPE
       SYNTAX DisplayString (SIZE(0..255))
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Reports the event code string that caused the ticket."
       ::= { rasTicketEntry 17 }   
       
       
	-- ***************************************************************** 
	-- 
	-- RAS Report Table 
	-- 
	-- ***************************************************************** 

    rasReportTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF RasReportEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table contains one row for each ticket/report
            combination in the database.  The table 
            is indexed off the RAS Ticket Table, it
            may contain many RAS Report entries for
            a single RAS Ticket."
        ::= { ras 30 }

    rasReportEntry OBJECT-TYPE 
        SYNTAX RasReportEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Each entry contains information for a 
            single RAS Report." 
        INDEX { componentId, rasTicketId, rasReportId  } 
        ::= { rasReportTable 1 } 

        RasReportEntry ::= 
            SEQUENCE {
            	rasReportId					Gauge,
            	rasReportRowStatus			RowStatus,
				rasReportTimestamp			AdicDateAndTime,
				rasReportStatusGroup		AdicStatusGroup,
				rasReportOrcData			OCTET STRING,
    			rasReportGroupStatus  		AdicStatusGroupState,
    			rasReportDescription		DisplayString,
    			rasReportOrcDescription     DisplayString,
    			rasReportRepeatCounter      INTEGER,
                rasReportSerialNumber       AdicFruSerialNumber,
                rasReportHeadReport         INTEGER   			
           }                                            
	--
	-- Begin RAS Ticket Table definitions
	--
    rasReportId  OBJECT-TYPE
       SYNTAX Gauge 
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Identifies the RAS Report for which this
            this row object contains information.  The RAS 
            system defines the report ID as an unsigned
            32 bit integer, so it is declared here as a 
            Guage32."
       ::= { rasReportEntry 1 }

    rasReportRowStatus  OBJECT-TYPE
       SYNTAX RowStatus
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Controls creation and deletion of rows
            in the RAS Report table."
       ::= { rasReportEntry 2 }

    rasReportTimestamp  OBJECT-TYPE
       SYNTAX AdicDateAndTime
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Time when this event was generated."
       ::= { rasReportEntry 3 }

    rasReportStatusGroup  OBJECT-TYPE
       SYNTAX AdicStatusGroup
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "The subsystem that is reporting
            the event."
       ::= { rasReportEntry 4 }

    rasReportOrcData  OBJECT-TYPE
       SYNTAX OCTET STRING ( SIZE( 16 ) )
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Event payload generated by the reporting
            subsystem."
       ::= { rasReportEntry 5 }

    rasReportGroupStatus  OBJECT-TYPE
       SYNTAX AdicStatusGroupState
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Status determination that this report indicates
            against the specific FRU."
       ::= { rasReportEntry 6 }

    rasReportDescription  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "RAS ticket report issue information."
       ::= { rasReportEntry 7 }  
       
    rasReportOrcDescription  OBJECT-TYPE
       SYNTAX DisplayString
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Description of the operation result code."
       ::= { rasReportEntry 8 }

    rasReportRepeatCounter  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "Number of times an identical report has been 
            generated."
       ::= { rasReportEntry 9 }        

    rasReportSerialNumber  OBJECT-TYPE
       SYNTAX AdicFruSerialNumber
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "RAS ticket FRU serial number."
       ::= { rasReportEntry 10 }       
                         
    rasReportHeadReport  OBJECT-TYPE
       SYNTAX INTEGER
       ACCESS read-only
       STATUS mandatory
       DESCRIPTION
            "The head report field allows reports 
            to be sorted according to FRU branch."
       ::= { rasReportEntry 11 }
       
	-- ***************************************************************** 
	-- 
	-- RAS Ticket Filter Table 
	-- 
	-- ***************************************************************** 

    rasTicketFilterTable OBJECT-TYPE 
        SYNTAX SEQUENCE OF RasTicketFilterEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "This table contains filter settings for ticket table
            walking.  Only those rows which match the
            filter criteria will appear in the RAS
            ticket table when traversed using GetNext 
            or GetBulk."
        ::= { ras 60 }

    rasTicketFilterEntry OBJECT-TYPE 
        SYNTAX RasTicketFilterEntry 
        ACCESS not-accessible 
        STATUS mandatory 
        DESCRIPTION 
            "Table entry for the respective table index."
        INDEX { componentId } 
        ::= { rasTicketFilterTable 1 } 

        RasTicketFilterEntry ::= 
            SEQUENCE {
            	rasTicketFilterStatusGroup      AdicStatusGroup,
            	rasTicketFilterState            AdicRasTicketState,
            	rasTicketFilterSeverity         AdicRasTicketSeverity
           }
	--
	-- Begin RAS Ticket Filter Table definitions
	--
    rasTicketFilterStatusGroup  OBJECT-TYPE
       SYNTAX AdicStatusGroup
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Identifies the system status group for which
            tickets will be returned."
       ::= { rasTicketFilterEntry 1 }

    rasTicketFilterState  OBJECT-TYPE
       SYNTAX AdicRasTicketState
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Identifies the ticket state (open, closed, etc.) for which
            tickets will be returned."
       ::= { rasTicketFilterEntry 2 } 

    rasTicketFilterSeverity  OBJECT-TYPE
       SYNTAX AdicRasTicketSeverity
       ACCESS read-write
       STATUS mandatory
       DESCRIPTION
            "Identifies the ticket severity for which
            tickets will be returned.
            =========================================
            high: Tickets/reports with status 'failed' only.
            medium: Tickets/reports with status 'failed' or 'warning'.
            low: All tickets/reports."
       ::= { rasTicketFilterEntry 3 }
       
	--
	-- End RAS Ticket Filter Table definitions
	--
    
    --===================================================================   
    -- 
    -- ADIC Management MIB Trap Definitions   
    --   (Additional ones definbed in ADIC Intelligent Storage MIB)
    -- 
	-- Group traps according to trap "specific" number as follows:
	--
	--   1 -  99 Power and Cooling Traps 
	-- 100 - 199 Physical Library Traps
	-- 200 - 299 Logical Library Traps
	-- 300 - 399 Connectivity Traps
	-- 400 - 499 RAS
	-- 500 - 599 System Level Traps	
	--
    -- Note: Not all TRAPs are reported to an external receiver 
    --       and used internally by the library only.
    
    
    --
	-- 100 - 199 Physical Library Traps
    --   
    
-- TRAP 100 - internal TRAP only     
    physLibraryActivity TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity,
           trapSummaryText
        }
        DESCRIPTION 
            "The physical library activity changed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies library activity
            " 
        ::= 100
      
-- TRAP 101 - external TRAP                      
    physLibraryOnlineStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity,
           trapSummaryText,
           onlineStatus           
        }
        DESCRIPTION 
            "The physical library online/offline mode status changed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies library status change
             onlineStatus - identifies current library mode
            " 
        ::= 101
         
        
-- TRAP 102 - external TRAP     
    physLibraryDoorStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity, 
           trapSummaryText,
           physLibraryDoorStatus                      
        }
        DESCRIPTION 
            "A main library access door changed door access status:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies library status change
             physLibraryStatus - identifies current library door status
            " 
        ::= 102        
                 
-- TRAP 103 - external TRAP                  
    ieStationDoorStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity, 
           trapSummaryText,
           phSegmentAisle, 
           phSegmentFrame,	
           phSegmentRack, 
           phIeStationNumber,
           phIeStationDoorStatus                      
        }
        DESCRIPTION 
            "An I/E station door changed door access status:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies I/E station door status change
             phSegmentAisle - identifies library aisle location
             phSegmentFrame - identifies library frame location	
             phSegmentRack - identifies library rack location 
             phIeStationNumber - identifies I/E station index
             phIeStationDoorStatus - identifies current I/E station door status                                         
            " 
        ::= 103    
              
-- TRAP 104 - internal TRAP only                  
    moveMediaComplete TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber, 
           trapSeverity,
           phStorageElementAddr, -- source element address
           phStorageElementAddr   -- destination element address
        }
        DESCRIPTION 
            "A tape cartridge has been move from one
            location to another:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             phStorageElementAddr - source element address
             phStorageElementAddr - destination element address
            " 
        ::= 104
                
-- TRAP 105 - internal TRAP only    
    tapeDriveAdded TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber, 
           trapSeverity,
           phDriveRow -- Row component of drive's physical location
        }
        DESCRIPTION 
            "A tape drive was added to the library:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             phDriveRow - row component of the drive's physical location
            " 
        ::= 105        

-- TRAP 106 - internal TRAP only    
    tapeDriveRemoved TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber, 
           trapSeverity,
           phDriveRow
        }
        DESCRIPTION 
            "A tape drive was removed from the library.
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             phDriveRow - row component of the drive's physical location
            "
        ::= 106
        
-- TRAP 107 - internal TRAP only            
    mediaMounted TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber, 
           trapSeverity,
           phDriveRow
        }
        DESCRIPTION 
            "A tape cartridge was mounted in a drive:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             phDriveRow - row component of the drive's physical location
            "
        ::= 107
      
-- TRAP 108 - internal TRAP only          
    mediaDismounted TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber, 
           trapSeverity,
           phDriveRow,
           phDriveMbytesRead,    
           phDriveMbytesWritten 
        }
        DESCRIPTION 
            "A tape cartridge was dismounted from a drive:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             phDriveRow - row component of the drive's physical location
             phDriveMbytesRead - Lifetime drive MB read
             phDriveMbytesWritten - Lifetime drive MB written
            " 
        ::= 108

-- TRAP 109 - internal TRAP only    
    ieStationInventoryPerformed TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity, 
           phIeElementAddr,
           phIeElementAddr           
        }
        DESCRIPTION 
            "An I/E station inventory operation has been performed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             phIeElementAddr - identifies starting element address
             phIeElementAddr - identifies ending element address           
            "
        ::= 109

-- TRAP 110 - external TRAP 
   rcuReady TRAP-TYPE
        ENTERPRISE management  
        VARIABLES
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText, 
           componentId
        }
        DESCRIPTION 
            "A robotics controller unit (RCU) transitioned to a Ready state:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies RCU ready state change
             componentId - identifies affectedd RCU component id 
            "
        ::= 110

-- TRAP 111 - external TRAP 
   rcuNotReady TRAP-TYPE
        ENTERPRISE management  
        VARIABLES
        {
           componentId, 
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           componentId
        }
        DESCRIPTION 
            "A robotics controller unit (RCU) transitioned to a Not Ready state:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies RCU ready state change
             componentId - identifies affectedd RCU component id 
            "
        ::= 111

-- TRAP 112 - internal TRAP only    
    driveActivityUpdate TRAP-TYPE
        ENTERPRISE management  
        VARIABLES
        {
           componentId, 
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText, 
           phHourlyMBytesRead, 
           phHourlyMBytesWritten,
           phHourlyMounts 
        }
        DESCRIPTION 
            "Drive activity integrated over a fixed time period.
            Currently, the time period is one hour.  
            NOTE: the drive is identified by the instance OID 
            contained in the phHourlyMBytesRead, phHourlyMBytesWritten, 
            and phHourlyWritten varbinds.
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the drive activity update
             phHourlyMBytesRead - identifies drive's MB read in last hour 
             phHourlyMBytesWritten - identifies drive's MB written in last hour 
             phHourlyMounts - identifies drive's number of mounts in last hour 
            " 
          ::= 112  
          
-- TRAP 113 - internal TRAP only              
    driveBrickFwUpdateSuccess TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber, 
           trapSeverity,
           trapSummaryText,           
           phDriveSerialNumber,
           phDriveFirmwareVersion
        }
        DESCRIPTION 
            "A tape drive firmware update was successful:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the tape drive firmware update success
             phDriveSerialNumber - identifies the drive's serial number 
             phDriveFirmwareversion - identifies the drive's firmware version 
            "            
        ::= 113

-- TRAP 114 - internal TRAP only    
    driveBrickFwUpdateFailure TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber, 
           trapSeverity,
           trapSummaryText,           
           phDriveSerialNumber,
           phDriveFirmwareVersion
        }
        DESCRIPTION 
            "A tape drive firmware update has failed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the tape drive firmware update failure
             phDriveSerialNumber - identifies the drive's serial number 
             phDriveFirmwareversion - identifies the drive's firmware version 
            "            
       ::= 114

-- TRAP 115 - internal TRAP only    
    physLibraryConfigurationChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity,
           trapSummaryText 
        }
        DESCRIPTION 
            "The physical configuration of the library has 
            changed, possibly invalidating the data
            in the management application's model:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the library configuration change
            " 
        ::= 115

-- TRAP 116 - internal TRAP only                             
    physLibraryRESChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId, 
           trapSequenceNumber,           
           trapSeverity, 
           trapSummaryText,
           phStorageElementAddr,
           phStorageElementAddr        
        }
        DESCRIPTION 
            "The physical library element status data has changed.  
            This generally occurs after an inventory operation:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the library element status change
             phStorageElementAddr - identifies starting element address
             phStorageElementAddr - identifies ending element address           
            "
        ::= 116          
             
-- TRAP 117 - internal TRAP only                 
    driveBrickFwUpdateStart TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber, 
           trapSeverity,
           trapSummaryText,           
           phDriveSerialNumber
        }
        DESCRIPTION 
            "A tape drive firmware update has started:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the tape drive firmware update operation
             phDriveSerialNumber - identifies the drive's serial number 
            "                      
        ::= 117        

-- TRAP 118 - internal TRAP only            
    physLibraryLicenseChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity,
           trapSummaryText
        }
        DESCRIPTION 
            "A library license has been added or deleted:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the library license change
            "            
        ::= 118        

-- TRAP 119 - internal TRAP only    
    physLibraryIPv4Change TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity,
           trapSummaryText
        }
        DESCRIPTION 
            "The IPv4 address of the library has changed: 
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the library IPv4 address
            "
        ::= 119        

-- TRAP 120 - internal TRAP only    
    physLibraryRobotChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity,
           trapSummaryText,
           trapInstance,
           trapInstanceValue
        }
        DESCRIPTION 
            "The library robot state has changed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the library robotic state change  
             trapInstance - identifies robot/tower change operation: 
                            ROBOT_DETECTED(0),ROBOT_STARTED(1),ROBOT_REPLACED92),
                            ROBOT_STATUS_CHANGED(3), TOWER_STATUS_CHANGED(4),
             trapInstancevalue - identifies success(0) or failure(1)
            "
        ::= 120        

-- TRAP 121 - internal TRAP only    
    physLibrarySaveRestoreChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,           
           trapSeverity,
           trapSummaryText,
           trapInstance,
           trapInstanceValue
        }
        DESCRIPTION 
            "The library save/restore state has changed, indicating 
            whether the save/restore image requires an update or is 
            in sync with the library configuration:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the library save/restore configuration change  
             trapInstance - identifies save/restore operation
             trapInstancevalue - identifies success(0) or failure(1)
            "           
        ::= 121        

    --
	-- 200 - 299 Logical Library Traps
    --   
    
-- TRAP 200 - internal TRAP only        
    logicalLibraryActivity TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId, 
           trapSequenceNumber,           
           trapSeverity, 
           trapSummaryText,
           logicalLibraryIndex 
        }
        DESCRIPTION 
            "A logical library performed an operation:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the logical library activity  
             logicalLibraryIndex - identifies the logical library reference index
            " 
        ::= 200
                
-- TRAP 201 - internal TRAP only                    
    logicalLibraryCreated TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText, 
           logicalLibraryIndex 
        }
        DESCRIPTION 
            "A new logical library has been created:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the logical library creation  
             logicalLibraryIndex - identifies the logical library reference index
            " 
        ::= 201

-- TRAP 202 - internal TRAP only    
    logicalLibraryModified TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId, 
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           logicalLibraryIndex 
        }
        DESCRIPTION 
            "A logical library has been modified:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the logical library modification  
             logicalLibraryIndex - identifies the logical library reference index
            " 
        ::= 202

-- TRAP 203 - internal TRAP only  
    logicalLibraryDeleted TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId, 
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           logicalLibraryIndex 
        }
        DESCRIPTION 
            "A logical library has been deleted: 
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the logical library deletion  
             logicalLibraryIndex - identifies the logical library reference index
            " 
        ::= 203

-- TRAP 204 - internal TRAP only  
    logicalLibraryOnlineStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId, 
           trapSequenceNumber,
           trapSeverity,   
           trapSummaryText,
           logicalLibraryIndex,
           loStatus
        }
        DESCRIPTION 
            "A logical library mode change occured:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the logical library mode change  
             logicalLibraryIndex - identifies the logical library reference index 
             loStatus - identifies the online/offline mode
            " 
        ::= 204


    --
	-- 300 - 399 Connectivity Traps
    --

    --
	-- 400 - 499 RAS Traps
    --     
    
-- TRAP 400 - external TRAP      
    connectivityGroupStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           rasStatusGroupIndex,
           rasStatusGroupStatus,
           rasTicketId,
           rasReportId           
        }
        DESCRIPTION 
            "The overall status of the Connectivity status group has changed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the RAS group status change  
             rasStatusGroupIndex - identifies the RAS status group reference index  
             rasStatusGroupStatus - identifies the current state of this RAS group
             rasTicketId - identfies the ticket id that cause the RAS group change
             rasReportId - identifies the report id that generated the ticket          
            " 
        ::= 400
                        
-- TRAP 401 - external TRAP 
    controlGroupStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           rasStatusGroupIndex,
           rasStatusGroupStatus,
           rasTicketId,
           rasReportId
        }
        DESCRIPTION 
            "The overall state of the Control status group has changed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the RAS group status change  
             rasStatusGroupIndex - identifies the RAS status group reference index               
             rasStatusGroupStatus - identifies the current state of this RAS group
             rasTicketId - identfies the ticket id that cause the RAS group change
             rasReportId - identifies the report id that generated the ticket          
            " 
        ::= 401
   
-- TRAP 402 - external TRAP         
    mediaGroupStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           rasStatusGroupIndex,
           rasStatusGroupStatus,
           rasTicketId,
           rasReportId           
        }
        DESCRIPTION 
            "The overall state of the Media RAS status group has changed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the RAS group status change  
             rasStatusGroupIndex - identifies the RAS status group reference index               
             rasStatusGroupStatus - identifies the current state of this RAS group
             rasTicketId - identfies the ticket id that cause the RAS group change
             rasReportId - identifies the report id that generated the ticket          
            " 
        ::= 402                     
        
-- TRAP 403 - external TRAP 
    drivesGroupStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           rasStatusGroupIndex,
           rasStatusGroupStatus,
           rasTicketId,
           rasReportId           
        }
        DESCRIPTION 
            "The overall state of the Drives RAS status group has changed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the RAS group status change  
             rasStatusGroupIndex - identifies the RAS status group reference index   
             rasStatusGroupStatus - identifies the current state of this RAS group
             rasTicketId - identfies the ticket id that cause the RAS group change
             rasReportId - identifies the report id that generated the ticket          
            " 
        ::= 403
 
-- TRAP 404 - external TRAP 
    powerAndCoolingGroupStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           rasStatusGroupIndex,
           rasStatusGroupStatus,
           rasTicketId,
           rasReportId
        }
        DESCRIPTION 
            "The overall state of the Power and Cooling RAS status group has changed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the RAS group status change  
             rasStatusGroupIndex - identifies the RAS status group reference index               
             rasStatusGroupStatus - identifies the current state of this RAS group
             rasTicketId - identfies the ticket id that cause the RAS group change
             rasReportId - identifies the report id that generated the ticket          
            " 
        ::= 404

-- TRAP 405 - external TRAP 
    roboticsGroupStatusChange TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           rasStatusGroupIndex,
           rasStatusGroupStatus,
           rasTicketId,
           rasReportId
        }
        DESCRIPTION 
            "The overall state of the Robotics RAS status group has changed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the RAS group status change  
             rasStatusGroupIndex - identifies the RAS status group reference index               
             rasStatusGroupStatus - identifies the current state of this RAS group
             rasTicketId - identfies the ticket id that cause the RAS group change
             rasReportId - identifies the report id that generated the ticket          
            " 
        ::= 405
       
        
-- TRAP 406 - internal TRAP only                  
    rasEventNotification TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           rasStatusGroupIndex,
           rasStatusGroupStatus,
           rasTicketId,
           rasReportId,
           trapIntendedUsage
        }
        DESCRIPTION 
            "A RAS event has occurred, possibly requiring
            action by a user or management application:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the RAS group status change  
             rasStatusGroupIndex - identifies the RAS status group reference index  
             rasStatusGroupStatus - identifies the current state of this RAS group
             rasTicketId - identfies the ticket id that cause the RAS group change
             rasReportId - identifies the report id that generated the ticket    
             trapIntendedUsage - identifies trap processing of public91) or triggerRefresh(2)     
            "             
        ::= 406
     
-- CHP new TRAP 407 - external TRAP                  
    rasTicketNotification TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText,
           rasStatusGroupIndex,
           productName,
           productSerialNumber,
           rasTicketId, 
           rasTicketEventCode,
           rasTicketDescription
        }
        DESCRIPTION 
           "A RAS event has occurred, possibly requiring
            action by a user or management application:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity which in this case maps to ticket severity
             trapSummaryText - identifies occurence of RAS ticket and repair/resolution strategy  
             rasStatusGroupIndex - identifies the RAS status group reference index   
             productName - identifies the physical library name 
             productSerialNumber - identifies physical library serial number
             rasTicketId - identfies the ticket identifier of this ticket
             rasTicketEventCode - identifies the event code associated with the ticket
             rasTicketDescription - identifies ticket information  
            "             
        ::= 407
             

    --
	-- 500 - 599 System Traps
    --     
    
-- TRAP 500 - internal TRAP only  
    logRetrievalComplete TRAP-TYPE 
        ENTERPRISE management  
        VARIABLES 
        {
           componentId,
           trapSequenceNumber,
           trapSeverity, 
           trapSummaryText 
        }
        DESCRIPTION 
            "A log retrieval snapshot has completed:
             componentId - identifies reporting controller 
             trapSequenceNumber - identifies trap sequence number
             trapSeverity - identifies trap severity
             trapSummaryText - identifies the completion of the snapshot operation  
            " 
        ::= 500

	END


                 
     
