--
-- NMS-SYS-MIB.my
-- MIB generated by MG-SOFT Visual MIB Builder Version 6.0  Build 88
-- Wednesday, February 22, 2023 at 11:35:12
--

	NMS-SYS-MIB DEFINITIONS ::= BEGIN
 
		IMPORTS
			nmsModule			
				FROM NMS
			OBJECT-GROUP, NOTIFICATION-GROUP			
				FROM SNMPv2-CONF			
			Integer32, Gauge32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE			
				FROM SNMPv2-SMI;
	
	
		-- xx.2.1
		sysModule MODULE-IDENTITY 
			LAST-UPDATED "202512111410Z"
			ORGANIZATION 
				""
			CONTACT-INFO 
				""
			DESCRIPTION 
				"Define system private MIB nodes for NMS."
			
			REVISION "202511211111Z"
			DESCRIPTION
				"Add fanStatusTable, fanFailure, fanNormal, and fanSpeedStatusChange."
			
			REVISION "202502131138Z"
			DESCRIPTION 
				"Add temperatureTable."
			
			REVISION "202010161142Z"
			DESCRIPTION 
				"init"
			::= { sys 1 }

		
	
--
-- Node definitions
--
        
		-- xx.2
		sys OBJECT IDENTIFIER ::= { nmsModule 2 }
	
		-- xx.2.1.1
		cpuUtilized OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"The percentage of the processor's operating time, calculated over the last minute."
			::= { sysModule 1 }
			
		-- xx.2.1.2
		memUtilized OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"The percentage of real/physical memory currently used or unavailable."
			::= { sysModule 2 }
			
		-- xx.2.1.3
		cpuIdle OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"The percentage of processor time spent idle, calculated over the last minute."
			::= { sysModule 3 }
			
		-- xx.2.1.4
		memTotalReal OBJECT-TYPE
			SYNTAX Integer32
			UNITS "kB"
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"The total amount of real/physical memory installed on this host."
			::= { sysModule 4 }
		
		-- xx.2.1.5
		memAvailReal OBJECT-TYPE
			SYNTAX Integer32
			UNITS "kB"
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"The amount of real/physical memory currently unused or available."
			::= { sysModule 5 }
			
			
		-- xx.2.2
		operations OBJECT IDENTIFIER ::= { sys 2 }

		
		-- xx.2.2.1
		configurationOper OBJECT-TYPE
			SYNTAX INTEGER
				{
				save(1),
				empty(2),
				default(3)
				}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"Device's configuration operations."
			::= { operations 1 }

		
		-- xx.2.2.2
		powerOper OBJECT-TYPE
			SYNTAX INTEGER
				{
				on(1),
				off(2),
				reset(3)
				}
			MAX-ACCESS read-write
			STATUS current
			DESCRIPTION
				"Device's power operations."
			::= { operations 2 }

		
		-- xx.2.3
		powerTable OBJECT-TYPE
			SYNTAX SEQUENCE OF PowerEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"The table of power supply status."
			::= { sys 3 }

		
		-- xx.2.3.1
		powerEntry OBJECT-TYPE
			SYNTAX PowerEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"The entry of power supply status."
			INDEX { powerIndex }
			::= { powerTable 1 }

		
		PowerEntry ::=
			SEQUENCE { 
				powerIndex
					Gauge32,
				powerType
					INTEGER,
				powerState
					INTEGER,
				powerVoltage
					Integer32
			 }

		-- xx.2.3.1.1
		powerIndex OBJECT-TYPE
			SYNTAX Gauge32 (1..100)
			MAX-ACCESS accessible-for-notify
			STATUS current
			DESCRIPTION
				"Power index for multi power supplied."
			::= { powerEntry 1 }

		
		-- xx.2.3.1.2
		powerType OBJECT-TYPE
			SYNTAX INTEGER
				{
				unknown(0),
				ac(1),
				dc(2)
				}
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Power type."
			::= { powerEntry 2 }

		
		-- xx.2.3.1.3
		powerState OBJECT-TYPE
			SYNTAX INTEGER
				{
				on(1),
				off(2)
				}
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"Power state, on/off."
			::= { powerEntry 3 }

		
		-- xx.2.3.1.4
		powerVoltage OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-create
			STATUS current
			DESCRIPTION
				"Power voltage."
			::= { powerEntry 4 }

		
		-- xx.2.4
		temperatureTable OBJECT-TYPE
			SYNTAX SEQUENCE OF TemperatureEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"The temperature sensor state table."
			::= { sys 4 }

		
		-- xx.2.4.1
		temperatureEntry OBJECT-TYPE
			SYNTAX TemperatureEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"The temperature sensor state table."
			INDEX { temperatureIndex }
			::= { temperatureTable 1 }

		
		TemperatureEntry ::=
			SEQUENCE { 
				temperatureIndex
					Integer32,
				temperatureValue
					Integer32
			 }

		
		-- xx.2.4.1.1
		temperatureIndex OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Device temperature sensor index."
			::= { temperatureEntry 1 }

		
		-- xx.2.4.1.2
		temperatureValue OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"The value of the device temperature sensor, in degrees Celsius."
			::= { temperatureEntry 2 }

		
		-- xx.2.5
		fanStatusTable OBJECT-TYPE
			SYNTAX SEQUENCE OF FanStatusEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"Fan status table."
			::= { sys 5 }

		
		-- xx.2.5.1
		fanStatusEntry OBJECT-TYPE
			SYNTAX FanStatusEntry
			MAX-ACCESS not-accessible
			STATUS current
			DESCRIPTION
				"Fan status entry."
			INDEX { fanIndex }
			::= { fanStatusTable 1 }

		
		FanStatusEntry ::=
			SEQUENCE {
				fanIndex
					Integer32,
				fanSpeedStatus
					INTEGER,
				fanStatus
					INTEGER
			}

		
		-- xx.2.5.1.1
		fanIndex OBJECT-TYPE
			SYNTAX Integer32
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Fan index."
			::= { fanStatusEntry 1 }

		
		-- xx.2.5.1.2
		fanSpeedStatus OBJECT-TYPE
			SYNTAX INTEGER
				{
					unknown(0),
					low(1),
					medium(2),
					high(3)
				}
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Fan speed status."
			::= { fanStatusEntry 2 }


		-- xx.2.5.1.3
		fanStatus OBJECT-TYPE
			SYNTAX INTEGER
				{
					normal(1),
					failure(2)
				}
			MAX-ACCESS read-only
			STATUS current
			DESCRIPTION
				"Fan status."
			::= { fanStatusEntry 3 }


		-- xx.2.7
		sysTraps OBJECT IDENTIFIER ::= { sys 7 }

		
		-- xx.2.7.1
		powerChange NOTIFICATION-TYPE
			OBJECTS { powerIndex, powerType, powerState, powerVoltage }
			STATUS current
			DESCRIPTION 
				"Notify power events, like on/off/low/recovery."
			::= { sysTraps 1 }

		
		-- xx.2.7.2
		batteryLow NOTIFICATION-TYPE
			OBJECTS { powerIndex }
			STATUS current
			DESCRIPTION 
				"Notify battery low event."
			::= { sysTraps 2 }

		
		-- xx.2.7.3
		batteryRecover NOTIFICATION-TYPE
			OBJECTS { powerIndex }
			STATUS current
			DESCRIPTION 
				"Notify battery recover event."
			::= { sysTraps 3 }

		
		-- xx.2.7.4
		fanFailure NOTIFICATION-TYPE
			OBJECTS { fanIndex }
			STATUS current
			DESCRIPTION 
				"Notify fan failure event."
			::= { sysTraps 4 }

		
		-- xx.2.7.5
		fanNormal NOTIFICATION-TYPE
			OBJECTS { fanIndex }
			STATUS current
			DESCRIPTION 
				"Notify fan recover event."
			::= { sysTraps 5 }

		
		-- xx.2.7.6
		fanSpeedStatusChange NOTIFICATION-TYPE
			OBJECTS { fanIndex, fanSpeedStatus }
			STATUS current
			DESCRIPTION 
				"Notify fan speed status change event."
			::= { sysTraps 6 }

		
		-- xx.2.8
		sysGroups OBJECT IDENTIFIER ::= { sys 8 }

		
		-- xx.2.8.1
		sysTableGroup OBJECT-GROUP
			OBJECTS { configurationOper, powerOper, powerIndex, powerType, powerState, 
				powerVoltage }
			STATUS current
			DESCRIPTION 
				"Table & scalar nodes group."
			::= { sysGroups 1 }

		
		-- xx.2.8.2
		sysTrapGroup NOTIFICATION-GROUP
			NOTIFICATIONS { powerChange, batteryLow, batteryRecover }
			STATUS current
			DESCRIPTION 
				"Trap nodes group."
			::= { sysGroups 2 }

		
	
	END

--
-- NMS-SYS-MIB.my
--
