-- Structure of Management Information
-- The following MIB OIDs are supported:
-- SNMPv2-MIB::sysName.0
-- SNMPv2-MIB::sysObjectID.0
-- SNMPv2-MIB::sysUpTime.0
-- SNMPv2-MIB::sysContact.0
-- SNMPv2-MIB::sysDescr.0
-- SNMPv2-MIB::sysLocation.0

-- IF-MIB::ifDescr
-- IP-MIB::ipAdEntIfIndex
-- IF-MIB::ifPhysAddress
-- IP-MIB::ipAdEntAddr
-- IP-MIB::ipAdEntNetMask

   SYNSYS-MIB DEFINITIONS ::= BEGIN
   
   IMPORTS
      MODULE-IDENTITY, NOTIFICATION-TYPE,
      OBJECT-IDENTITY,	
      OBJECT-TYPE, Integer32,
      enterprises, IpAddress
         FROM SNMPv2-SMI
      DisplayString
         FROM SNMPv2-TC;

   synSys MODULE-IDENTITY
      LAST-UPDATED "202003200000Z"
      ORGANIZATION "Synaccess Networks Inc"
      CONTACT-INFO
         "Synaccess Networks, Inc.
	  BY Shawn H.
      	  Engineering Dept.
          Postal: 
          14425 N 79th St Ste C
          scottsdale, AZ 85260   
          USA"
      DESCRIPTION
        "Top-level infrastructure of PDU project enterprise MIB tree"

     REVISION "202003200000Z"
	 DESCRIPTION
	 "V4 Revised AC current from Integer to floating 2.2f"
    
     REVISION "201505100000Z"     
         DESCRIPTION
         "Added Eneger (Power) OIDs.  Changed AC Current Draw data type from Byte to DisplayStrings"
    
--     DESCRIPTION
--         "Added AC Current and temperature objects."

--      REVISION "200408020000Z" 
--       "V3  Initial version of this MIB module. The Structure of Management                
--        Information for the synaccess Networks enterprise."
--	"202003200000Z"

   ::= { synaccess 3}	  
      
      synaccess  OBJECT IDENTIFIER ::= { enterprises 21728} 



-- System Tables

	systemDescr OBJECT IDENTIFIER ::= { synSys 1 }
-- 
     
 
  systemModel	OBJECT-TYPE
      SYNTAX      DisplayString(SIZE(0..12))
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "The model number of the system."
      ::= { systemDescr 1 }
      
	systemName OBJECT-TYPE
        SYNTAX      DisplayString(SIZE(0..16))
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "The system site name or location name. "
      ::= { systemDescr 2 }

powerOutletNum OBJECT-TYPE
      SYNTAX Integer32 (1..64)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Number of AC outlets are equipped on the system."
      ::= { systemDescr 3 }

serialPortNum OBJECT-TYPE
      SYNTAX Integer32 (1..64)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Number of user serial console ports are equipped 
	on the system. This number does not include the 
	system Master Serial Port."
      ::= { systemDescr 4 }

systemUpTime OBJECT-TYPE
      SYNTAX Integer32       
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "systemUpTime in seconds. Read only."
      ::= { systemDescr 5 }

swVersion OBJECT-TYPE
      SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Firmware version for this device. Read only."
      ::= { systemDescr 6 }  

acCurrentSensorNumber OBJECT-TYPE
      SYNTAX Integer32 (1..32)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Number of AC current sensors are equipped in the unit.
       Energy monitoring module's current sensors are not applicable for this object."
      ::= { systemDescr 7 }

temperatureProbe OBJECT-TYPE
      SYNTAX Integer32 (1..64)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Number of temperature probe ports are equipped 
	on the system. Note: Sensor probes may or may 
	not be plugged-in to the ports"
      ::= { systemDescr 8 }

acMPIModNumber OBJECT-TYPE
      SYNTAX Integer32 (1..32)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Number of MPI(Measured Per Inlet) energy monitoring modules are equipped in the unit.
       An energy monitoring module provides status for voltage, amp, 
       wattage, KWH and so on."
      ::= { systemDescr 9 }


-- outlet tables
	outletOpTables OBJECT IDENTIFIER ::= { synSys 2 }
--

outletTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF OutletEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "A table of outlet operation status."
         ::= { outletOpTables 1 }
 
outletEntry OBJECT-TYPE
         SYNTAX      OutletEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "Row definition for the system description table."
         INDEX       {outletIndex}
         ::= { outletTable 1 } 

     OutletEntry::= SEQUENCE {
         outletIndex          Integer32,
         --outletID            Integer32,
         outletName            DisplayString, 
         outletStatus          INTEGER,
         outletAction	       INTEGER, 
         outletCurrentDraw     DisplayString 
      }



outletIndex    OBJECT-TYPE
         SYNTAX      Integer32 (0..15)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
             "Index for the outlet table."
         ::= { outletEntry 1 }

outletName OBJECT-TYPE
      SYNTAX DisplayString(SIZE(0..10))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Outlet label. Read  operation." 
      ::= { outletEntry 2 }

outletStatus OBJECT-TYPE
       SYNTAX INTEGER {
                        on(1),
                        off(2)
                    }
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Outlet status. 1-On. 2-0ff."
         
      ::= { outletEntry 3 }

outletAction OBJECT-TYPE
      SYNTAX INTEGER {
                        none(0),
                        on(1),
                        off(2),
                        reboot(3)
                    }
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
      "Turn on/off or reboot an outlet."
      ::= { outletEntry 4 }


outletCurrentDraw OBJECT-TYPE
       SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "TRMS AC current draw from an outlet in Amps. This obj is applicable to MPO-system with AC current sensor for each outlet.MPO-Measured Per Outlet."
         
      ::= { outletEntry 5 }


------Environment Tables
     enviroTable OBJECT IDENTIFIER ::= { synSys 3 }
------

currentAlarmThreshold OBJECT-TYPE
      SYNTAX Integer32 (1..35)
      MAX-ACCESS read-write
      STATUS current
      DESCRIPTION
      "Maximum AC Current Draw value recorded, in unit of Amps."
      ::= { enviroTable 1}

currentDrawStatus1 OBJECT-TYPE
      SYNTAX DisplayString(SIZE(0..7))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Total AC current draw in amps for the first 
	AC power bank sensor. This object is valid 
	only if the current sensor module is installed.
      This object is applicable to MPI (Measured Per Inlet) system.
      AC power draw is monitored on each power cord or bank.  "
      ::= { enviroTable 2 }

currentDrawStatus2 OBJECT-TYPE
      SYNTAX DisplayString(SIZE(0..7))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Total AC current draw in amps for the second AC 
	power bank sensor. This object is valid only if 
	the current sensor module is installed. 
 	This object is applicable to MPI (Measured Per Inlet) system.
	AC power draw is monitored on each power cord or bank.  "
      ::= { enviroTable 3 }



currentDrawMax1 OBJECT-TYPE      
      SYNTAX DisplayString(SIZE(0..7))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Max. AC current being detected for the entire system or the first power bank if applicable,  in unit of Amps."
      ::= { enviroTable 4}

currentDrawMax2 OBJECT-TYPE      
      SYNTAX DisplayString(SIZE(0..7))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Max. AC current being detected for the 2nd power bank if applicable,  in unit of Amps."      
      ::= { enviroTable 5}

temperatureUpThreshold OBJECT-TYPE      
      SYNTAX Integer32 (-60..100)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Environment temperature upper threshold in C."      
      ::= { enviroTable 6}

temperatureLowThreshold OBJECT-TYPE      
      SYNTAX Integer32 (-60..100)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Environment temperature low threshold in C."      
      ::= { enviroTable 7}


temperatureReading OBJECT-TYPE      
      SYNTAX Integer32 (-60..100)
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Temperature reading in C. If value is -65, 
	the temperature sensor is not installed. "      
      ::= { enviroTable 8}




     trapSetting OBJECT IDENTIFIER ::= { synSys 4 }

trapEnable OBJECT-TYPE
	SYNTAX INTEGER { yes(1), no(0)}
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION		"Indicates if this trap entry is enabled or not."
	::= { trapSetting 1 }


trapRcvIP OBJECT-TYPE
	SYNTAX IpAddress 
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Defines TRAP receiver IP address."
	::= { trapSetting 2 }

trapCommunity OBJECT-TYPE
	SYNTAX DisplayString (SIZE (0..7))
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Trap community to be used by agent to send trap."
	::= { trapSetting 3 }

     energyStatus OBJECT IDENTIFIER ::= { synSys 5 }

mpiCurrent OBJECT-TYPE
       SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "TRMS currente value measured at AC power inlet.  
	This obj is applicable to a MPI-system. MPI-Measured Per Inlet."
         
      ::= { energyStatus 1 }

mpiVolt OBJECT-TYPE
       SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "TRMS voltage value measured at AC power inlet. 
	This obj is applicable to a MPI-system. MPI-Measured Per Inlet."
         
      ::= { energyStatus 2 }


mpiActivePower OBJECT-TYPE
       SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Active Power value.
	This obj is applicable to a MPI-system. MPI-Measured Per Inlet."
         
      ::= { energyStatus 3 }

mpiApparentPower OBJECT-TYPE
       SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Apparent Power value. 
	This obj is applicable to a MPI-system. MPI-Measured Per Inlet."         
      ::= { energyStatus 4 }

mpiPowerFactor OBJECT-TYPE
       SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "PF (Power Factor) value. 
	This obj is applicable to a MPI-system. MPI-Measured Per Inlet."
         
         
      ::= { energyStatus 5 }


mpiAcFrequency OBJECT-TYPE
       SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "AC Frequency value.  
	This obj is applicable to a MPI-system. MPI-Measured Per Inlet."
      ::= { energyStatus 6 }

mpiAcKwh OBJECT-TYPE
       SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "Energy KWH readout value.  
	This obj is applicable to a MPI-system. MPI-Measured Per Inlet."
      ::= { energyStatus 7 }

mpiAcKwhStartEPOCH OBJECT-TYPE
       SYNTAX DisplayString(SIZE(0..16))
      MAX-ACCESS read-only
      STATUS current
      DESCRIPTION
      "EPOCH value when KWH metering was started.  
	This obj is applicable to a MPI-system. MPI-Measured Per Inlet."
      ::= { energyStatus 8 }


-- TRAP Event-----
trapEvent OBJECT IDENTIFIER ::= { synSys 100 }

    event OBJECT IDENTIFIER ::= { trapEvent 0 }
    
    outletStatusEvent NOTIFICATION-TYPE
        OBJECTS {
            systemName,
            outletName,
            outletStatus
        }
        STATUS      current
        DESCRIPTION
            "Outlet status change event. "
        ::= { event 1 }
   
    
    outletGroupStatusEvent NOTIFICATION-TYPE
        OBJECTS {
            systemName,
            outletStatus
        }
        STATUS      current
        DESCRIPTION
            "Outlet Group status change event."
        ::= { event 2 }

    autoPingRebootEvent NOTIFICATION-TYPE
        OBJECTS {
            systemName,
            outletName
        }
        STATUS      current
        DESCRIPTION
            "AutoPing and Reboot event."
        ::= { event 3 }

    temperatureAlarmEvent NOTIFICATION-TYPE
        OBJECTS {
            systemName
        }
        STATUS      current
        DESCRIPTION
            "Environment temperature high or 
		 low threshold crossing alarm event."
        ::= { event 4 }

    temperatureControlledOutletEvent NOTIFICATION-TYPE
        OBJECTS {
            systemName,
            outletName
        }
        STATUS      current
        DESCRIPTION
            "Environment temperature upper and lOWer 
		 SET POINTS triggered outlet(s) change event."
        ::= { event 5 }

    systemPowerUpEvent NOTIFICATION-TYPE
        OBJECTS {
            systemName
        }
        STATUS      current
        DESCRIPTION
            "System powers up event."
        ::= { event 6 }

    kwhOverLimitEvent NOTIFICATION-TYPE
        OBJECTS {
            systemName,
            outletName,
            mpiAcKwh,
            mpiAcKwhStartEPOCH   
        }
        STATUS      current
        DESCRIPTION
            "Energy usage over preset limit. 
             Current KWH reading and KWH accumulation starting EPOCH time."
        ::= { event 7 }

-- ***********
END




