
VERTIV-ONEVIEW-MIB DEFINITIONS ::= BEGIN

IMPORTS

SnmpAdminString FROM SNMP-FRAMEWORK-MIB
MODULE-IDENTITY, OBJECT-TYPE, enterprises, Integer32,
Gauge32 FROM SNMPv2-SMI;

vertiv MODULE-IDENTITY
	LAST-UPDATED "201806210000Z"
	ORGANIZATION "Vertiv"
	CONTACT-INFO "support@geistglobal.com"
	DESCRIPTION
		"The MIB for the Vertiv Oneview aggregator"

	REVISION "201806210000Z"
	DESCRIPTION
		"Initial version of the MIB"
	::= { enterprises 21239 }

oneview OBJECT IDENTIFIER ::= { vertiv 43 }

--###########################################################################################--
--hostTable--
--###########################################################################################--

hostTable OBJECT-TYPE
	SYNTAX SEQUENCE OF HostEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Info about aggregated host devices"
	::= { oneview 1 }

hostEntry OBJECT-TYPE
	SYNTAX HostEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Entry in the hostTable: each entry represent a host device that being
		aggregated."
	INDEX { hostIndex }
	::= { hostTable 1 }

HostEntry ::= SEQUENCE {
	hostIndex				Integer32,
	hostId				OCTET STRING,
	hostState				INTEGER,
	hostType				INTEGER,
	hostGroupIndex				Integer32,
	hostGroupName				SnmpAdminString,
	hostPortWeb				Integer32,
	hostPortSnmp				Integer32
}

hostIndex OBJECT-TYPE
	SYNTAX Integer32(1..100)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Table entry index value"
	::= { hostEntry 1 }

hostId OBJECT-TYPE
	SYNTAX OCTET STRING
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Unique identifier for host"
	::= { hostEntry 2 }

hostState OBJECT-TYPE
	SYNTAX INTEGER {
			idle(1),
			discovered(2),
			partiallyUnavailable(3),
			unresponsive(4),
			unknown(5)
			}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Host state:
		1 = idle
		2 = discovered
		3 = host is responsive, but malfunctioning
		4 = host is unresponsive
		5 = state could not be determined"
	::= { hostEntry 3 }

hostType OBJECT-TYPE
	SYNTAX INTEGER {
			pdu(1),
			environmental(2),
			ups(3),
			cooling(4),
			unknown(5)
			}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Host type:
		1 = Power Distribution Unit (PDU)
		2 = Environmental Monitor
		3 = Uninterruptible Power Supply (UPS)
		4 = Cooling
		5 = type could not be determined"
	::= { hostEntry 4 }

hostGroupIndex OBJECT-TYPE
	SYNTAX Integer32(1..100)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Index in groupTable for the group this host belongs to"
	::= { hostEntry 5 }

hostGroupName OBJECT-TYPE
	SYNTAX SnmpAdminString(SIZE (1..25))
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Name of the group this host belongs to"
	::= { hostEntry 6 }

hostPortWeb OBJECT-TYPE
	SYNTAX Integer32(1..32767)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Port for web access to the host"
	::= { hostEntry 7 }

hostPortSnmp OBJECT-TYPE
	SYNTAX Integer32(1..32767)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Port for SNMP access to the host"
	::= { hostEntry 8 }

--###########################################################################################--
--groups--
--###########################################################################################--

groups OBJECT IDENTIFIER ::= { oneview 2 }

--###########################################################################################--
--groupTable--
--###########################################################################################--

groupTable OBJECT-TYPE
	SYNTAX SEQUENCE OF GroupEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Aggregated group data"
	::= { groups 1 }

groupEntry OBJECT-TYPE
	SYNTAX GroupEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Entry in the groupTable: each entry represents a group"
	INDEX { groupIndex }
	::= { groupTable 1 }

GroupEntry ::= SEQUENCE {
	groupIndex				Integer32,
	groupName				SnmpAdminString,
	groupLabel				SnmpAdminString,
	groupState				INTEGER
}

groupIndex OBJECT-TYPE
	SYNTAX Integer32(1..100)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"Group index that uniquely identifies the group. This index is shared
		by the rest of the tables in this group."
	::= { groupEntry 1 }

groupName OBJECT-TYPE
	SYNTAX SnmpAdminString(SIZE (1..25))
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Automatically-assigned group name"
	::= { groupEntry 2 }

groupLabel OBJECT-TYPE
	SYNTAX SnmpAdminString(SIZE (0..25))
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"User-assigned name for the group"
	::= { groupEntry 3 }

groupState OBJECT-TYPE
	SYNTAX INTEGER {
			idle(1),
			discovered(2),
			partiallyUnavailable(3),
			unresponsive(4),
			unknown(5)
			}
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Group state:
		1 = idle
		2 = discovered
		3 = group hosts are malfunctioning
		4 = group hosts are unresponsive
		5 = state could not be determined"
	::= { groupEntry 4 }

--###########################################################################################--
--groupPduTotalTable--
--###########################################################################################--

groupPduTotalTable OBJECT-TYPE
	SYNTAX SEQUENCE OF GroupPduTotalEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Table that contains aggregated total PDU data for groups"
	::= { groups 2 }

groupPduTotalEntry OBJECT-TYPE
	SYNTAX GroupPduTotalEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Entry in the groupPduTotalTable: each entry contains the aggregated
		PDU totals for a particular group. A group must contain PDU hosts for
		there to be a entry in this table."
	INDEX { groupIndex }
	::= { groupPduTotalTable 1 }

GroupPduTotalEntry ::= SEQUENCE {
	groupPduTotalName				SnmpAdminString,
	groupPduTotalPowerMin				Gauge32,
	groupPduTotalPowerMax				Gauge32,
	groupPduTotalPowerAvg				Gauge32,
	groupPduTotalPowerSum				Gauge32,
	groupPduTotalEnergySum				Gauge32
}

groupPduTotalName OBJECT-TYPE
	SYNTAX SnmpAdminString(SIZE (1..25))
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total group name"
	::= { groupPduTotalEntry 1 }

groupPduTotalPowerMin OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Lowest power value in the group"
	::= { groupPduTotalEntry 2 }

groupPduTotalPowerMax OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Highest power value in the group"
	::= { groupPduTotalEntry 3 }

groupPduTotalPowerAvg OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Average power value for the group"
	::= { groupPduTotalEntry 4 }

groupPduTotalPowerSum OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total power used by the group"
	::= { groupPduTotalEntry 5 }

groupPduTotalEnergySum OBJECT-TYPE
	SYNTAX Gauge32(0..9999000)
	UNITS "watt-hours"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total accumulated energy used by the group"
	::= { groupPduTotalEntry 6 }

--###########################################################################################--
--groupPduPhaseTable--
--###########################################################################################--

groupPduPhaseTable OBJECT-TYPE
	SYNTAX SEQUENCE OF GroupPduPhaseEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Table that contains aggregated phase PDU data for groups"
	::= { groups 3 }

groupPduPhaseEntry OBJECT-TYPE
	SYNTAX GroupPduPhaseEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Entry in the groupPduPhaseTable: each entry contains the aggregated
		group values for a particular PDU phase. A group must contain PDU
		hosts for there to be a entries in this table. There will be one entry
		for each phase in the group."
	INDEX { groupIndex, groupPduPhaseIndex }
	::= { groupPduPhaseTable 1 }

GroupPduPhaseEntry ::= SEQUENCE {
	groupPduPhaseIndex				Integer32,
	groupPduPhaseName				SnmpAdminString,
	groupPduPhasePowerMin				Gauge32,
	groupPduPhasePowerMax				Gauge32,
	groupPduPhasePowerAvg				Gauge32,
	groupPduPhasePowerSum				Gauge32,
	groupPduPhaseEnergySum				Gauge32
}

groupPduPhaseIndex OBJECT-TYPE
	SYNTAX Integer32(1..3)
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION
		"PDU phase index"
	::= { groupPduPhaseEntry 1 }

groupPduPhaseName OBJECT-TYPE
	SYNTAX SnmpAdminString(SIZE (1..25))
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"PDU phase name"
	::= { groupPduPhaseEntry 2 }

groupPduPhasePowerMin OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Lowest phase power for the group"
	::= { groupPduPhaseEntry 3 }

groupPduPhasePowerMax OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Highest phase power for the group"
	::= { groupPduPhaseEntry 4 }

groupPduPhasePowerAvg OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Average phase power for the group"
	::= { groupPduPhaseEntry 5 }

groupPduPhasePowerSum OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total power used on this phase"
	::= { groupPduPhaseEntry 6 }

groupPduPhaseEnergySum OBJECT-TYPE
	SYNTAX Gauge32(0..9999000)
	UNITS "watt-hours"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Total accumulated energy for this phase"
	::= { groupPduPhaseEntry 7 }

--###########################################################################################--
--groupUpsTable--
--###########################################################################################--

groupUpsTable OBJECT-TYPE
	SYNTAX SEQUENCE OF GroupUpsEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Table with aggregated UPS data for groups"
	::= { groups 4 }

groupUpsEntry OBJECT-TYPE
	SYNTAX GroupUpsEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Entry in the groupUpsTable: each entry contains the aggregated UPS
		values for a particular group. A group must contain UPS hosts for
		there to be a entry in this table."
	INDEX { groupIndex }
	::= { groupUpsTable 1 }

GroupUpsEntry ::= SEQUENCE {
	groupUpsName				SnmpAdminString,
	groupUpsPowerMax				Gauge32,
	groupUpsPowerAvg				Gauge32,
	groupUpsBattAutonomyMin				Gauge32,
	groupUpsBattAutonomyAvg				Gauge32,
	groupUpsBattChargeMin				Gauge32,
	groupUpsBattChargeAvg				Gauge32
}

groupUpsName OBJECT-TYPE
	SYNTAX SnmpAdminString(SIZE (1..25))
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"UPS group name"
	::= { groupUpsEntry 1 }

groupUpsPowerMax OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Highest UPS power value"
	::= { groupUpsEntry 2 }

groupUpsPowerAvg OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "watts"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Average UPS power value"
	::= { groupUpsEntry 3 }

groupUpsBattAutonomyMin OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "minutes"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Lowest UPS battery autonomy value in the group"
	::= { groupUpsEntry 4 }

groupUpsBattAutonomyAvg OBJECT-TYPE
	SYNTAX Gauge32(0..9999)
	UNITS "minutes"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Average UPS battery autonomy value in the group"
	::= { groupUpsEntry 5 }

groupUpsBattChargeMin OBJECT-TYPE
	SYNTAX Gauge32(0..100)
	UNITS "%"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Lowest UPS battery charge of the group"
	::= { groupUpsEntry 6 }

groupUpsBattChargeAvg OBJECT-TYPE
	SYNTAX Gauge32(0..100)
	UNITS "%"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Average UPS battery charge for the group"
	::= { groupUpsEntry 7 }

--###########################################################################################--
--groupEnvTable--
--###########################################################################################--

groupEnvTable OBJECT-TYPE
	SYNTAX SEQUENCE OF GroupEnvEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Table with aggregated environmental data for groups"
	::= { groups 5 }

groupEnvEntry OBJECT-TYPE
	SYNTAX GroupEnvEntry
	MAX-ACCESS  not-accessible
	STATUS current
	DESCRIPTION
		"Entry in the groupEnvTable: each entry contains the aggregated
		environmental values for a particular group. A group must contain
		hosts with environmental sensors for there to be a entry in this
		table."
	INDEX { groupIndex }
	::= { groupEnvTable 1 }

GroupEnvEntry ::= SEQUENCE {
	groupEnvName				SnmpAdminString,
	groupEnvTempMin				Integer32,
	groupEnvTempMax				Integer32,
	groupEnvTempAvg				Integer32,
	groupEnvHumidityMin				Integer32,
	groupEnvHumidityMax				Integer32,
	groupEnvHumidityAvg				Integer32
}

groupEnvName OBJECT-TYPE
	SYNTAX SnmpAdminString(SIZE (1..25))
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Group environment name"
	::= { groupEnvEntry 1 }

groupEnvTempMin OBJECT-TYPE
	SYNTAX Integer32(-400..2540)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Lowest temperature reading in group"
	::= { groupEnvEntry 2 }

groupEnvTempMax OBJECT-TYPE
	SYNTAX Integer32(-400..2540)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Highest temperature reading in group"
	::= { groupEnvEntry 3 }

groupEnvTempAvg OBJECT-TYPE
	SYNTAX Integer32(-400..2540)
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Average temperature reading for the group"
	::= { groupEnvEntry 4 }

groupEnvHumidityMin OBJECT-TYPE
	SYNTAX Integer32(0..100)
	UNITS "%"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Lowest humidity in the group"
	::= { groupEnvEntry 5 }

groupEnvHumidityMax OBJECT-TYPE
	SYNTAX Integer32(0..100)
	UNITS "%"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Highest humidity in the group"
	::= { groupEnvEntry 6 }

groupEnvHumidityAvg OBJECT-TYPE
	SYNTAX Integer32(0..100)
	UNITS "%"
	MAX-ACCESS read-only
	STATUS current
	DESCRIPTION
		"Average humidity for the group"
	::= { groupEnvEntry 7 }

END
