-- File Name : ThreeParMIB.mib
-- Date      : Tue Sep 18 10:00:00 PDT 2014
-- Revision  : rev 1.8
--              - added catalogKey and detailedMessage to alertTable and alertNotify
--
-- File Name : ThreeParMIB.mib
-- Date      : Tue Mar 12 11:22:00 PDT 2013
-- Revision  : rev 1.7
--              - added serialNumber to alertTable and alertNotify
--
-- Date      : Thur Aug 02 15:22:00 PDT 2012
-- Revision  : rev 1.6
--              - Renamed this file from 3PAR-MIB.mib to ThreeParMIB.mib
--              - Rebranded company name from 3PAR to HP 3PAR
--
-- Date      : Fri Oct 04 14:45:00 PDT 2010
-- Revision  : rev 1.5
--              - Added new type Debug to Severity
--
-- File Name : 3PAR-MIB.mib
-- Date      : Fri Oct 05 15:00:00 PDT 2007
-- Revision  : rev 1.4
--              - Corrected company name to 3PAR in the ORGANIZATION and CONTACT
--
-- Date      : Mon Dec 13 17:00:00 PDT 2004
-- Revision  : rev 1.3
--		- Added AGENT-CAPABILITIES statement to specify that
--               sysName is read-only
--
-- Date      : Mon Dec 13 16:40:00 PDT 2004
-- Revision  : rev 1.2
--		- Added id, messageCode and state to alertTable and alertNotify
--
-- Date      : Tue June 14 15:45:00 PDT 2004
-- Revision  : rev 1.1
--		- 'inserv' is changed from OBJECT IDENTIFIER to
--		 OBJECT-IDENTITY
--		- Defined ThreeparLongDisplayString for strings
--		 longer than 255
--              - Got rid of size specifications for DisplayString
--              - Removed possibleCause and suggestedAction from
--               alertNotify as they are neither used nor defined
--
-- Date      : Tue Jul 09 17:15:55 PDT 2002
-- Revision  : rev 1.0

ThreeParMIB	DEFINITIONS ::= BEGIN
	IMPORTS
		DisplayString, TEXTUAL-CONVENTION
			FROM SNMPv2-TC
		AGENT-CAPABILITIES
			FROM SNMPv2-CONF
		enterprises, MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
		OBJECT-IDENTITY, Integer32, Unsigned32
			FROM SNMPv2-SMI;

	threepar	MODULE-IDENTITY
		LAST-UPDATED	"201303121122Z"
		ORGANIZATION	"Organization : HP 3PAR"
		CONTACT-INFO	"Contact-info www.hp.com/go/3PAR"
		DESCRIPTION
			"This file specifies management information interface for 
			all HP 3PAR's products. This information is normally used 
			by any management software that utilizes SNMP as management 
			standard.  The SNMP agent inside the device provides the 
			specified information."

                REVISION                "201409181000Z"
                DESCRIPTION
                        "rev 1.8
                                - added catalogKey and detailedMessage to alertTable and alertNotify"

		REVISION                "201303121122Z"
                DESCRIPTION
                        "rev 1.7
                                - added serialNumber to alertTable and alertNotify"

		REVISION                "201208021522Z"
                DESCRIPTION
                        "rev 1.6
                                - Renamed this file from 3PAR-MIB.mib to ThreeParMIB.mib
                                - Rebranded company name from 3PAR to HP 3PAR"

		REVISION		"201010041445Z"
		DESCRIPTION
			"rev 1.5
				- Added a new level to Severity"

		REVISION		"200710051500Z"
		DESCRIPTION
			"rev 1.4         
				- Corrected company name to 3PAR in the ORGANIZATION
				 and CONTACT"

		REVISION		"200412131700Z"
		DESCRIPTION
			"rev 1.3         
				- Added AGENT-CAPABILITIES statement to specify that
				 sysName is read-only"

		REVISION		"200412131640Z"
		DESCRIPTION
			"rev 1.2         
				- Added id, messageCode and state to alertTable and 
				 alertNotify"

		REVISION		"200406141545Z"
		DESCRIPTION
			"rev 1.1         
				- 'inserv' is changed from OBJECT IDENTIFIER to
				 OBJECT-IDENTITY
				- Defined ThreeparLongDisplayString for strings
				 longer than 255
                                - Got rid of size specifications for DisplayString
				- Removed possibleCause and suggestedAction from
				 alertNotify as they are neither used nor defined"

		REVISION		"200204161327Z"
		DESCRIPTION
			"rev 1.0"
		::=  {  enterprises  12925  }

	ThreeparLongDisplayString ::= TEXTUAL-CONVENTION
		STATUS       current
		DESCRIPTION
	            "Use this textual convention for display string that can be
		    longer than 255 characters, since DisplayString is defined 
		    in SNMPv2-TC as having a maximum size of only 255.
		    
		    A size range will have to be specified when using this
		    convention."
		SYNTAX       OCTET STRING

	inserv	OBJECT-IDENTITY
		STATUS      current
		DESCRIPTION "InServ product"
		::=  {  threepar  1  }

	inservAgentCaps	OBJECT-IDENTITY
		STATUS      current
		DESCRIPTION "InServ agent profile"
		::=  {  inserv 4  }

	alertTable	OBJECT-TYPE
		SYNTAX		SEQUENCE  OF  AlertEntry
		MAX-ACCESS	not-accessible
		STATUS		current
		DESCRIPTION
			"Contains critical information in notifications sent to 
			SNMP managers.  This information is translated from alerts 
			generated by the system."
		::=  { inserv  7 }

	alertEntry	OBJECT-TYPE
		SYNTAX		AlertEntry
		MAX-ACCESS	not-accessible
		STATUS		current
		DESCRIPTION
			"Row Description"
		INDEX		{  index  }
		::=  { alertTable 1 }

	AlertEntry  ::=  SEQUENCE {
		index  Integer32,
		severity  INTEGER,
		timeOccurred  DisplayString,
		nodeID  Unsigned32,
		component  DisplayString,
		details  ThreeparLongDisplayString,
		id Unsigned32,
		messageCode Unsigned32,
		state INTEGER,
                serialNumber DisplayString,
                catalogKey DisplayString,
                detailedMessage DisplayString
		}


	index	OBJECT-TYPE	
		SYNTAX			Integer32 (1)
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"Index to access entries in alert table.  However, the table is
			empty most of the time because the entry is deleted after sending
			the trap"
		::=  {  alertEntry  1  }


	severity	OBJECT-TYPE	
		SYNTAX			INTEGER  { fatal ( 0 ) , critical ( 1 ) , major ( 2 ) , minor ( 3 ) , degraded ( 4 ) , info ( 5 ), debug ( 6 ) } 
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"Severity of the alert.  The enumeration is borrowed from 
			Common Information Model (CIM): 0 - fatal: indicates an 
			error occurred, but it's too late to take any actions; 1 - 
			critical: an action is needed immediately and scope of the 
			error is broad; 2 - major: an action is needed, the
			situation is serious; 3 - minor: an action is needed, but 
			the situation is not serious;  4 - degraded/warning: the 
			user decides whether to take an action; 5 - informational: 
			indicates state change or status change, but it's not an 
			error; 6 - debug: information that are logged for later 
			analysis."
		::=  {  alertEntry  2  }


	timeOccurred	OBJECT-TYPE	
		SYNTAX			DisplayString
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"The local time and date when the alert occurred.  The 
			format is 
			'DDD mmm dd hh:mm:ss ZZZ yyyy'.  Where: DDD= day of the week
			(Sun, Mon, ,,,), mmm= month (Jan, Feb, Mar ...), dd= date, 
			hh: hour, mm:
			minute, ss= second, ZZZ: time zone, yyyy: year."
		::=  {  alertEntry  3  }


	nodeID	OBJECT-TYPE	
		SYNTAX			Unsigned32  ( 0 .. 31  ) 
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"The node the alert was posted on.  The node number starts 
			from 0.  The maximum number of node is 32."
		::=  {  alertEntry  4  }


	component	OBJECT-TYPE	
		SYNTAX			DisplayString
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"The component which the event applies to; for example, 
			power supply, SCSI disk, BIOS, cage etc..."
		DEFVAL			{ "1" }
		::=  {  alertEntry  5  }


	details	OBJECT-TYPE	
		SYNTAX			ThreeparLongDisplayString (SIZE(0..511))
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"Additional detailed description of the alert.  The detail 
			may include things like disk number, cage number the alert 
			applies to."
		::=  {  alertEntry  6  }

	id	OBJECT-TYPE	
		SYNTAX			Unsigned32 ( 1 .. 4294967295 )
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"Unique ID that identifies the instance of an alert. This
	 	        is a unique number that is generated each time an alert is
		        generated by the system."
		::=  {  alertEntry  7  }

	messageCode	OBJECT-TYPE	
		SYNTAX			Unsigned32  ( 65537 .. 4294967295 ) 
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"Message code is assigned to a particular event type, and is
			encoded as a 32-bit number in the following way:
			The MSB 8 bits are reserved.
			The next 8 bits represent a particular subsystem or component.
			The LSB 16 bits are the keycode id within the subsystem.
			 
			 For example, Remote Copy Target Down event has a subsystem ID
			of 37 (remote copy subsystem), and a keycode ID of 1, thus the 
			message code for this event = ((37 << 16) | 1) = 0x250001 = 2424833.

			 This is shown as 'Message Code' in the CLI 'showalert' display, 
			and also shows up in the Alerts Details Pane in the GUI."
		::=  {  alertEntry  8  }

	state 	OBJECT-TYPE	
		SYNTAX	INTEGER {
		         undefined (0),
		         new (1),
		         acknowledged (2),
		         fixed (3),
		         removed (4),
		         autofixed (5)
		        }
  		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"This provides information about the state of the alert.
		          new - new alert generated by the system
			  acknowledged - an administrator has acknowledged the alert but may
			                 or may not have fixed it, depending on whether remedial
				         action is necessary
			  fixed - remedial action has been taken to fix the alert condition
			  removed - the alert has been removed
			  autofixed - the system has taken action to automatically resolve 
			              the alert condition."
		::=  {  alertEntry  9  }

	serialNumber	OBJECT-TYPE	
		SYNTAX			DisplayString
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"The serial-number of the HP 3PAR InServ system"
		::=  {  alertEntry  10  }

	catalogKey	OBJECT-TYPE
		SYNTAX			DisplayString
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"The extension of the message code. It's used for the lookup of HPGT information."
		::=  {  alertEntry  11  }

	detailedMessage	OBJECT-TYPE
		SYNTAX			DisplayString
		MAX-ACCESS		read-only
		STATUS			current
		DESCRIPTION
			"The extension of the details. It provides more specific details of error condition."
		::=  {  alertEntry  12  }


	alertNotify	NOTIFICATION-TYPE
		OBJECTS			{ component, details, nodeID, severity, timeOccurred, id, 
		                          messageCode, state, serialNumber, catalogKey, detailedMessage}
		STATUS			current
		DESCRIPTION
			"Alert notification contains details about an event that 
			may affect system operations and performance.  The 
			details include all columns defined in alertTable."
		::=  {  inserv  8  }

        inservAgentCapability AGENT-CAPABILITIES
                PRODUCT-RELEASE    "InServ Release 2.2"
                STATUS             current
                DESCRIPTION        "HP 3PAR agent capability.

		                    Please note that the HP 3PAR agent supports 
				    snmpObsoleteGroup in SNMPv2-MIB instead of snmpGroup."

                SUPPORTS           SNMPv2-MIB
                  INCLUDES         { systemGroup }

                     VARIATION   sysName
                     ACCESS      read-only
                     DESCRIPTION "System name is not configurable"

        ::= { inservAgentCaps 1 } 

END
