SYNLINK-MIB DEFINITIONS ::= BEGIN

IMPORTS
  MODULE-IDENTITY, OBJECT-TYPE, 
  enterprises, Integer32, NOTIFICATION-TYPE, IpAddress
                                                    FROM SNMPv2-SMI
  DisplayString, TruthValue, TEXTUAL-CONVENTION 
                                                    FROM SNMPv2-TC
  OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP                                     
                                                    FROM SNMPv2-CONF;

  --inetAddressType, InetAddress, InetPortNumber      
    --                                                FROM INET-ADDRESS-MIB
 -- sysContact, sysName, sysLocation                  
  --                                                  FROM RFC1213-MIB;

synlink MODULE-IDENTITY
  LAST-UPDATED "202311010000Z"      -- November 1, 2023
  ORGANIZATION "Synaccess Networks Inc"
  CONTACT-INFO "
    Author:   Engineering Dept.
              Synaccess Networks
    postal:   8147 E Evans Rd Ste 3,
              Scottsdale, AZ 85260
    email:    support@synaccess-net.com
              "
  DESCRIPTION "MIB File for SynLink PDUs SNMP functionality"
  REVISION "202003300000Z"
  DESCRIPTION "Init"
  ::= { synaccess 4 }  

  synaccess OBJECT IDENTIFIER ::= { enterprises 21728 }

  device       OBJECT IDENTIFIER ::= { synlink 1 }
  inlets       OBJECT IDENTIFIER ::= { synlink 2 }
  banks        OBJECT IDENTIFIER ::= { synlink 4 }
  outlets      OBJECT IDENTIFIER ::= { synlink 5 }
  groups       OBJECT IDENTIFIER ::= { synlink 6 }
  sensors      OBJECT IDENTIFIER ::= { synlink 7 }
  logs         OBJECT IDENTIFIER ::= { synlink 8 }
  events       OBJECT IDENTIFIER ::= { synlink 9 }
  conformance  OBJECT IDENTIFIER ::= { synlink 10 }

  RelayEnumeration ::= TEXTUAL-CONVENTION
    STATUS  current
    DESCRIPTION
           "Relay States"
    SYNTAX INTEGER { open(0),
                     closed(1)
                   }

  synLinkModel OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(0..12))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "The model number of SynLink PDU"
    ::= { device 1 }
  
  enclosureSerialNumber OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(0..12))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Serial number of SynLink PDU Controller and Enclosure"
    ::= { device 2 }

  controllerSerialNumber OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(0..12))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Serial number of SynLink PDU Controller and Enclosure"
    ::= { device 3 }
  
  inletConfiguration OBJECT-TYPE
    SYNTAX       DisplayString(SIZE(0..20))
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Either 'standard', 'dualcircuit', or 'ats'"
    ::= { device 4 }
  
  numOutlets OBJECT-TYPE
    SYNTAX       Integer32 (0..3)
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Number of outlets on PDU"
    ::= { device 5 }
  
  numBanks OBJECT-TYPE
    SYNTAX     Integer32 (0..3)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Number of banks currently connected"
    ::= { device 6 }
  
  phase OBJECT-TYPE
    SYNTAX     Integer32 (0..3)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "1 for single phase. 2 for 3 phase delta. 3 for 3 phase wye."
    ::= { device 7 }
  
  numInlets OBJECT-TYPE
    SYNTAX     Integer32 (0..3)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Number of Inlets. Either 1 or 2. ATS Dual inlets count as a single inlet."
    ::= { device 8 }
  
  outletPwrMeasurementsSupported OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Describes if individual outlet current measurements is supported"
    ::= { device 9 }
  
  outletSwitchingSupported OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Describes if individual outlet switching is supported"
    ::= { device 10 }

  deviceName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "User defined name for device"
    ::= { device 11 }
   
  deviceIpAddress OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "IP Address for device."
    ::= { device 12 }
  
   --

inletTable OBJECT-TYPE 
  SYNTAX     SEQUENCE OF InletSchema
  MAX-ACCESS not-accessible
  STATUS     current
  DESCRIPTION 
    "Table of all inlets entries. Inlet Entry includes information about plug type, power capacity number of poles and more."
::= { inlets 1 }

inletEntry OBJECT-TYPE
  SYNTAX      InletSchema
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "Inlet Object for an individual inlet instance."
  INDEX       { inletIndex }
  ::= { inletTable 1 }


  inletIndex OBJECT-TYPE
    SYNTAX        Integer32(1..256)
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Which number inlet it is."
    ::= { inletEntry 1 }

  inletType OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "Describes which type of setup the inlet is part of. Single for one input plug. Double for two simultaneously used input plugs. ATS (Auto Transfer Switch) for 2 inputs with primary and secondary redundancy."
    ::= { inletEntry 2 }
  
  inletPlug OBJECT-TYPE
    SYNTAX       DisplayString
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "The type of Inlet Plug Connector."
    ::={ inletEntry 3 }

  inletName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
      "User defined name for Inlet"
    ::={ inletEntry 4 }

  inletEnergyAccumulation OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "kWH value to show energy consumption for inlet plug"
    ::={ inletEntry 5 }

  inletPowerFactor OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Power factor value for inlet plug"
    ::={ inletEntry 6 }

  inletPhase OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "Possibilities are: Single Phase, 3 Phase Delta, or 3 Phase Wye"
    ::={ inletEntry 7 }
  
  inletUuid OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Unique identifier for Inlet"
    ::= { inletEntry 8 }

  -- 3 phase attributes start --

  inlet3PhaseBalance OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Percentage of imbalance in 3 phase inlet. Calculated with largest difference of any 2 lines, divided by average current. All times 100."
    ::={ inletEntry 9 }

  inletLine1CurrentRms OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Line 1 of 3 phase inlet Current RMS in Amperes"
    ::={ inletEntry 10 }

  inletLine2CurrentRms OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Line 2 of 3 phase inlet Current RMS in Amperes"
    ::={ inletEntry 11 }

  inletLine3CurrentRms OBJECT-TYPE
    SYNTAX       Integer32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Line 3 of 3 phase inlet Current RMS in Amperes"
    ::={ inletEntry 12 }

  -- 3 phase attributes end --
  
  -- 1 phase attributes start --

  inletLineConfiguration OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
      "Applies only to single phase. Options are L-L, L-N, or L-L\N"
    ::={ inletEntry 13 }

  inletActivePower     OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Inlet Active Power in watts"
    ::={ inletEntry 14 }

  inletApparentPower   OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Inlet Apparent Power in Volt-amperes (VA)"
    ::={ inletEntry 15 }

  inletReactivePower   OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Inlet Reactive Power in Volt-Amps-Reactive (VAR)"
    ::={ inletEntry 16 }

  inletCurrentRms      OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Inlet current draw in amps"
    ::={ inletEntry 17 }

  inletLineFrequency   OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Inlet line frequency in hertz"
    ::={ inletEntry 18 }

  inletVoltageRms      OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
      "Inlet voltage RMS in volts"
    ::={ inletEntry 19 }

  -- ats attributes start --

  atsActiveInlet OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "If inputType is 'ats' then this value will be true if it is the currently used inlet. False if the inlet is not in use."
    ::={ inletEntry 20 }

  atsInletId OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "Should be A (primary) or B (secondary) for two ATS inputs"
    ::={ inletEntry 21 }

  atsInletReady OBJECT-TYPE       
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
      "Whether the Inlet is ready to be used as a power source"
    ::={ inletEntry 22 }

  -- ats attributes end --
  
  -- 1 phase attributes end --

InletSchema ::= SEQUENCE {
  inletIndex              Integer32,
  inletType               DisplayString,
  inletPlug               DisplayString,
  inletName               DisplayString,
  inletEnergyAccumulation Integer32,
  inletPowerFactor        Integer32,
  inletPhase              DisplayString,
  inletUuid               DisplayString,
  inlet3PhaseBalance      Integer32,
  inletLine1CurrentRms    Integer32,
  inletLine2CurrentRms    Integer32,
  inletLine3CurrentRms    Integer32,
  inletLineConfiguration  DisplayString,
  inletActivePower        Integer32,
  inletApparentPower      Integer32,
  inletReactivePower      Integer32,
  inletCurrentRms         Integer32,
  inletLineFrequency      Integer32,
  inletVoltageRms         Integer32,
  atsActiveInlet          TruthValue,
  atsInletId              DisplayString,
  atsInletReady           TruthValue
}

--


bankTable OBJECT-TYPE 
  SYNTAX     SEQUENCE OF BankSchema
  MAX-ACCESS not-accessible
  STATUS     current
  DESCRIPTION 
    "Table of bank instances."
::= { banks 1 }

bankEntry OBJECT-TYPE
  SYNTAX      BankSchema
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "Bank object for a particular outlet bank."
  INDEX       { bankIndex }
  ::= { bankTable 1 }


  bankIndex OBJECT-TYPE
    SYNTAX        Integer32(1..256)
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Which number bank it is."
    ::= { bankEntry 1 }
  
  bankUuid OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Unique Identifier for Bank"
    ::= { bankEntry 2 }
  
  bankOutletSwitchingSupported OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Describes if bank outlets have relays for switching"
    ::= { bankEntry 3 }
  
  bankOutletMeteringSupported OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Describes if bank outlets can measure individual outlet current in amps"
    ::= { bankEntry 4 }
  
  bankCurrentRms OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Current RMS of all outlets on bank in Amperes."
    ::= { bankEntry 5 }
  
  bankVoltage OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Voltage of bank."
    ::= { bankEntry 6 }
  
  bankLineFrequency OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Line Frequency of bank."
    ::= { bankEntry 7 }
  
  bankPowerFactor OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Bank Power factor"
    ::= { bankEntry 8 }
  
  bankLines OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Specific Lines or line configuration which this bank is utilizing"
    ::= { bankEntry 9 }
  
  bankActivePower OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Active Power of bank."
    ::= { bankEntry 10 }
  
  bankReactivePower OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Reactive Power of bank."
    ::= { bankEntry 11 }
  
  bankApparentPower OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Apparent Power of bank."
    ::= { bankEntry 12 }
  
  bankName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "User defined bank name."
    ::= { bankEntry 13 }
  
  bankBreakerSupported OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "True if bank has an associated over current protector."
    ::= { bankEntry 14 }
  
  bankBreakerState OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "True if breaker is working and not considered 'tripped'"
    ::= { bankEntry 15 }
  
BankSchema ::= SEQUENCE {
  bankIndex                    Integer32,
  bankUuid                     DisplayString,
  bankOutletSwitchingSupported TruthValue,
  bankOutletMeteringSupported  TruthValue,
  bankCurrentRms               Integer32,
  bankVoltage                  Integer32,
  bankLineFrequency            Integer32,
  bankPowerFactor              Integer32,
  bankLines                    DisplayString,
  bankActivePower              Integer32,
  bankReactivePower            Integer32,
  bankApparentPower            Integer32,
  bankName                     DisplayString,
  bankBreakerSupported         TruthValue,
  bankBreakerState             TruthValue

}

outletTable OBJECT-TYPE 
  SYNTAX     SEQUENCE OF OutletSchema
  MAX-ACCESS not-accessible
  STATUS     current
  DESCRIPTION 
    "Table of outlet instances."
::= { outlets 1 }

outletEntry OBJECT-TYPE
  SYNTAX      OutletSchema
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "Outlet object for a particular input line."
  INDEX       { outletIndex }
  ::= { outletTable 1 }

outletIndex OBJECT-TYPE
  SYNTAX        Integer32(1..256)
  MAX-ACCESS    not-accessible
  STATUS        current
  DESCRIPTION
      "Which number outlet it is."
  ::= { outletEntry 1 }

outletUuid OBJECT-TYPE
  SYNTAX  DisplayString
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "Unique identifier for outlet"
  ::= { outletEntry 2 }

outletName OBJECT-TYPE
  SYNTAX  DisplayString
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION
    "User defined name for outlet."
  ::= { outletEntry 3 }

-- outletPwrOnState OBJECT-TYPE
--   SYNTAX  DisplayString
--   MAX-ACCESS read-only
--   STATUS current
--   DESCRIPTION
--     "Can either be on, off, prev (previous). When PDU boots, outlet will be at this state."
--   ::= { outletEntry 4 }

-- outletBankIndex OBJECT-TYPE
--   SYNTAX  Integer32
--   MAX-ACCESS read-only
--   STATUS current
--   DESCRIPTION
--     "Which number outlet within bank."
--   ::= { outletEntry 5 }

outletCurrentRms OBJECT-TYPE
  SYNTAX  Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "Current RMS in Amperes for individual outlet if supported."
  ::= { outletEntry 6 }

outletState OBJECT-TYPE
  SYNTAX  RelayEnumeration
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION
    "State of relay. '0' means outlet is off (relay is open). '1' means outlet is on (relay is closed). Set '2' to power cycle outlet."
  ::= { outletEntry 7 }

outletConnector OBJECT-TYPE
  SYNTAX  DisplayString
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION
    "Type of Outlet Receptacle."
  ::= { outletEntry 8 }

-- outletSetState OBJECT-TYPE
--   SYNTAX  Integer32
--   MAX-ACCESS read-write
--   STATUS current
--   DESCRIPTION
--     "'0' for off, '1' to switch on, '3' to power cycle"
--   ::= { outletEntry 10 }

-- outletMaxCurrent OBJECT-TYPE
--   SYNTAX  Integer32
--   MAX-ACCESS read-only
--   STATUS current
--   DESCRIPTION
--     "Maximum current allowed for outlet."
--   ::= { outletEntry 9 }

-- outletReboot OBJECT-TYPE
--   SYNTAX  TruthValue
--   MAX-ACCESS read-write
--   STATUS current
--   DESCRIPTION
--     "TODO"
--   ::= { outletEntry 11 }


OutletSchema ::= SEQUENCE {
  outletIndex                    Integer32,
  outletUuid                     DisplayString,
  outletName                     DisplayString,
  -- outletPwrOnState               DisplayString,
  -- outletBankIndex                Integer32,
  outletCurrentRms               Integer32,
  outletState                    RelayEnumeration,
  outletConnector                DisplayString
  --outletSetState                 Integer32
  --outletMaxCurrent               Integer32,
  --outletReboot                   TruthValue
}

--

groupTable OBJECT-TYPE 
  SYNTAX     SEQUENCE OF GroupEntry
  MAX-ACCESS not-accessible
  STATUS     current
  DESCRIPTION 
    "Table of all outlet groups entries. "
::= { groups 1 }

groupEntry OBJECT-TYPE
  SYNTAX      GroupEntry
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "Group Object for a group of outlets."
  INDEX       { groupIndex }
  ::= { groupTable 1 }


  groupIndex OBJECT-TYPE
    SYNTAX        Integer32(1..256)
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Which number group it is."
    ::= { groupEntry 1 }

  groupName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
      "User defined name for group"
    ::= { groupEntry 2 }

  groupUuid OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION 
      "Unique identifier for group"
    ::= { groupEntry 3 }

  groupSetState OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
      "Set all outlets within state to given state. On for on, off for off."
    ::= { groupEntry 4 }

  groupReboot OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
      "Reboot all outlets within a group"
    ::= { groupEntry 5 }

  groupCurrentRms OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION 
      "Current RMS sum of all outlet current measurements. Available only of outlet metering supported."
    ::= { groupEntry 6 }

GroupEntry ::= SEQUENCE {
  groupIndex           Integer32,
  groupName            DisplayString,
  groupUuid            DisplayString,
  groupSetState        TruthValue,
  groupReboot          TruthValue,
  groupCurrentRms      Integer32 
}

--


sensorTable OBJECT-TYPE 
  SYNTAX     SEQUENCE OF SensorSchema
  MAX-ACCESS not-accessible
  STATUS     current
  DESCRIPTION 
    "Table of Sensor entries."
::= { sensors 1 }

sensorEntry OBJECT-TYPE
  SYNTAX      SensorSchema
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "Sensor instance."
  INDEX       { sensorIndex }
  ::= { sensorTable 1 }

  sensorIndex OBJECT-TYPE
    SYNTAX        Integer32(1..256)
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
      "Number of sensor"
    ::= { sensorEntry 1 }

  sensorType OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Type of sensor. hum_temp for humidity & temp sensor"
    ::= { sensorEntry 2 }

  sensorTemp OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Temperature if supported in celsius. sensorTempOffset is added to raw value to generate output of this OID."
    ::= { sensorEntry 3 }

  sensorHumidity OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Humidity if supported in percentage humidity. sensorHumidityOffset is added to raw value to generate output of this OID."
    ::= { sensorEntry 4 }

  sensorTempOffset OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "Offset for temperature. Signed value."
    ::= { sensorEntry 5 }

  sensorHumidityOffset OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "Offset for humidity. Signed Value"
    ::= { sensorEntry 6 }

  sensorName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
      "User defined name for sensor"
    ::= { sensorEntry 7 }

SensorSchema ::= SEQUENCE {
  sensorIndex           Integer32,
  sensorType            DisplayString,
  sensorTemp            Integer32,
  sensorHumidity        Integer32,
  sensorTempOffset      Integer32,
  sensorHumidityOffset  Integer32,
  sensorName            DisplayString
}
--


powerLogTable OBJECT-TYPE 
  SYNTAX     SEQUENCE OF PowerLogSchema
  MAX-ACCESS not-accessible
  STATUS     current
  DESCRIPTION 
    "Table of all logging metric related to power"
::= { logs 1 }

powerLogEntry OBJECT-TYPE
  SYNTAX      PowerLogSchema
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "Instance of logging metric"
  INDEX       { pwrLogIndex }
  ::= { powerLogTable 1 }


  pwrLogIndex OBJECT-TYPE
    SYNTAX        Integer32(1..256)
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "ID for log entry"
    ::= { powerLogEntry 1 }

  pwrLogType OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Type of logging metric. Can be "
    ::= { powerLogEntry 2 }

  pwrLogValue OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Various types. Current values."
    ::= { powerLogEntry 3 }
  
PowerLogSchema ::= SEQUENCE {
  pwrLogIndex           Integer32,
  pwrLogType            DisplayString, -- change to custom enum
  pwrLogValue           Integer32
}
--

environmentLogTable OBJECT-TYPE 
  SYNTAX     SEQUENCE OF EnvironmentLogSchema
  MAX-ACCESS not-accessible
  STATUS     current
  DESCRIPTION 
    "Table of all logging metric related to temperature and humidity"
::= { logs 2 }

environmentLogEntry OBJECT-TYPE
  SYNTAX      EnvironmentLogSchema
  MAX-ACCESS  not-accessible
  STATUS      current
  DESCRIPTION
    "Instance of logging metric"
  INDEX       { envLogIndex }
  ::= { environmentLogTable 1 }


  envLogIndex OBJECT-TYPE
    SYNTAX        Integer32(1..256)
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "ID for log entry"
    ::= { environmentLogEntry 1 }

  envLogType OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Type of logging metric. Can be temp or humidity"
    ::= { environmentLogEntry 2 }

  envLogValue OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Either temp in celsius or humidity in percentage"
    ::= { environmentLogEntry 3 }
  
EnvironmentLogSchema ::= SEQUENCE {
  envLogIndex           Integer32,
  envLogType            DisplayString, -- change to custom enum
  envLogValue           Integer32
}


eventTriggers OBJECT IDENTIFIER ::= { events 2 }

eventTriggerTable OBJECT-TYPE
  SYNTAX SEQUENCE OF EventTriggerSchema
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
    "Table of all Event Triggers"
  ::= { eventTriggers 1 }

eventTriggerEntry OBJECT-TYPE
  SYNTAX EventTriggerSchema
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION
   "Instance of Event Trigger"
  INDEX { eventTriggerIndex }
  ::= { eventTriggerTable 1 }

  eventTriggerIndex OBJECT-TYPE
    SYNTAX        Integer32(1..256)
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "ID for event trigger entry"
    ::= { eventTriggerEntry 1 }

  eventType OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Type of event. Can be any of traps. (Show Table)"
    ::= { eventTriggerEntry 2 }

  eventCode OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Unique code for event"
    ::= { eventTriggerEntry 3 }

  eventName OBJECT-TYPE
    SYNTAX        DisplayString
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Used defined name for event trigger."
    ::= { eventTriggerEntry 4 }
  
  eventTriggerAttr1 OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "First Attribute. See Event Table for details on specified Attr."
    ::= { eventTriggerEntry 5 }

  eventTriggerAttr2 OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Second Attribute. See Event Table for details on specified Attr."
    ::= { eventTriggerEntry 6 }

  eventTriggerAttr3 OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Third Attribute. See Event Table for details on specified Attr."
    ::= { eventTriggerEntry 7 }
  
  eventIsTriggered OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Describes whether or not the trigger has met it's threshold"
    ::={ eventTriggerEntry 8 }

  eventTriggeredTime OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
      "Time in seconds that this event has been triggered"
    ::={ eventTriggerEntry 9 }

EventTriggerSchema ::= SEQUENCE {
  eventTriggerIndex  Integer32,
  eventType          DisplayString, -- create table
  eventCode          Integer32,
  eventName          DisplayString,
  eventTriggerAttr1  DisplayString,
  eventTriggerAttr2  DisplayString,
  eventTriggerAttr3  DisplayString,
  eventIsTriggered   TruthValue,
  eventTriggeredTime Integer32
}

eventTraps OBJECT IDENTIFIER ::= { events 0 }


  autopingTimeout NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 1 }

  line1CurrentMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletLine1CurrentRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "Line 1 Max current trigger"
    ::={ eventTraps 2 }

  line2CurrentMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletLine2CurrentRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "Line 2 Max current trigger"
    ::={ eventTraps 3 }

  line3CurrentMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletLine3CurrentRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "Line 3 Max current trigger"
    ::={ eventTraps 4 }

  line1CurrentMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletLine1CurrentRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "Line 1 Max current trigger"
    ::={ eventTraps 5 }

  line2CurrentMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletLine2CurrentRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "Line 1 Max current trigger"
    ::={ eventTraps 6 }
    
  line3CurrentMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletLine3CurrentRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "Line 1 Max current trigger"
    ::={ eventTraps 7 }

  inletCurrentMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletCurrentRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "Inlet Max Current Threshold Trigger. Applies to single phase PDUs Only"
  ::={ eventTraps 8 }

  inletCurrentMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletCurrentRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "Inlet Max Current Threshold Trigger. Applies to single phase PDUs Only"
  ::={ eventTraps 9 }

  inletVoltageMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletVoltageRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 10 }

  inletVoltageMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletVoltageRms,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 11 }

  inletLineFrequencyMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletLineFrequency,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 12 }

  inletLineFrequencyMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletLineFrequency,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 13 }

  inletPowerFactorMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletPowerFactor,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 14 }

  inletActiveEnergyMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletEnergyAccumulation,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 15 }

  inletActivePowerMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletActivePower,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 16 }

  inletActivePowerMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletActivePower,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 17 }


  inletApparentPowerMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletApparentPower,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 18 }

  inletApparentPowerMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletApparentPower,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 19 }


  inletReactivePowerMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletReactivePower,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 20 }

  inletReactivePowerMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inletReactivePower,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 21 }

  inlet3phaseImbalance NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      inlet3PhaseBalance,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 22 }


  bankBreakerTrip NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankCurrentRms,
      bankName,
      bankLines,
      bankUuid,
      bankBreakerState,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 23 }

  bankCurrentMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankCurrentRms,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 24 }

  bankCurrentMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankCurrentRms,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 25 }

  bankVoltageMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankVoltage,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 26 }

  bankVoltageMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankVoltage,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 27 }

  bankLineFrequencyMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankLineFrequency,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 28 }

  bankLineFrequencyMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankLineFrequency,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 29 }

  bankPowerfactorMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankPowerFactor,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 30 }

  --bankActiveEnergyMaxThreshold NOTIFICATION-TYPE
  --  OBJECTS {
  --    deviceName,
  --    deviceIpAddress,
  --    bankActiveEnergy,
  --    bankName,
  --    bankLines,
  --    bankUuid,
  --    eventType,
  --    eventCode,
  --    eventName,
  --    eventTriggerAttr1,
  --    eventTriggerAttr2,
  --    eventTriggerAttr3
  --  }
  --  STATUS current
  --  DESCRIPTION
  --    "event description"
  --  ::= { eventTraps 31 }

  bankActivePowerMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankActivePower,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 32 }

  bankActivePowerMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankActivePower,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 33 }

  bankApparentPowerMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankApparentPower,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 34 }

  bankApparentPowerMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankApparentPower,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 35 }

  bankReactivePowerMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankReactivePower,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 36 }

  bankReactivePowerMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      bankReactivePower,
      bankName,
      bankLines,
      bankUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 37 }

  outletCurrentMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      outletCurrentRms,
      outletName,
      outletState,
      outletConnector,
      outletUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 38 }

  outletCurrentMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      outletCurrentRms,
      outletName,
      outletState,
      outletConnector,
      outletUuid,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 39 }

  --groupCurrentMaxThreshold NOTIFICATION-TYPE
  --  OBJECTS {
  --    deviceName,
  --    deviceIpAddress,
  --    groupCurrentRms
  --  }
  --  STATUS current
  --  DESCRIPTION
  --    "event description"
  --  ::= { eventTraps 40 }

  --groupCurrentMinThreshold NOTIFICATION-TYPE
  --  OBJECTS {
  --    deviceName,
  --    deviceIpAddress,
  --    groupCurrentRms
  --  }
  --  STATUS current
  --  DESCRIPTION
  --    "event description"
  --  ::= { eventTraps 41 }


  temperatureMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      sensorTemp,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 42 }

  temperatureMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      sensorTemp,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 43 }

  humidityMaxThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      sensorHumidity,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 44 }

  humidityMinThreshold NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      sensorHumidity,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1,
      eventTriggerAttr2,
      eventTriggerAttr3
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 45 }

  scheduledTime NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 46 }

 scheduledInterval NOTIFICATION-TYPE
   OBJECTS {
      deviceName,
      deviceIpAddress,
      eventType,
      eventCode,
      eventName,
      eventTriggerAttr1
   }
   STATUS current
   DESCRIPTION
     "event description"
   ::= { eventTraps 47 }

  atsInletSwitchedToSecondary NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      atsActiveInlet,
      atsInletId,
      atsInletReady,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 48 }

  atsInletSwitchedToPrimary NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      atsActiveInlet,
      atsInletId,
      atsInletReady,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 49 }

  atsInletSecondaryPowerLoss NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      atsActiveInlet,
      atsInletId,
      atsInletReady,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 50 }

  atsInletSecondaryPowerRestored NOTIFICATION-TYPE
    OBJECTS {
      deviceName,
      deviceIpAddress,
      atsActiveInlet,
      atsInletId,
      atsInletReady,
      inletName,
      inletPlug,
      inletType,
      inletLineConfiguration,
      eventType,
      eventCode,
      eventName
    }
    STATUS current
    DESCRIPTION
      "event description"
    ::= { eventTraps 51 }





synLinkGroups OBJECT IDENTIFIER ::= { conformance 1 }

synLinkDeviceGroup OBJECT-GROUP
  OBJECTS {
    synLinkModel,
    enclosureSerialNumber,
    controllerSerialNumber,
    inletConfiguration,
    numOutlets,
    numBanks,
    phase,
    numInlets,
    outletPwrMeasurementsSupported,
    outletSwitchingSupported,
    deviceName,
    deviceIpAddress
  }
  STATUS   current
  DESCRIPTION
    "Device Objects Group"
  ::= { synLinkGroups 1 }

synLinkInletGroup OBJECT-GROUP
  OBJECTS {
    inletType,
    inletPlug,
    inletName,
    inletEnergyAccumulation,
    inletPowerFactor,
    inletPhase,
    inletUuid,
    inlet3PhaseBalance,
    inletLine1CurrentRms,
    inletLine2CurrentRms,
    inletLine3CurrentRms,
    inletLineConfiguration,
    inletActivePower,
    inletApparentPower,
    inletReactivePower,
    inletCurrentRms,
    inletLineFrequency,
    inletVoltageRms,
    atsActiveInlet,
    atsInletId,
    atsInletReady
  }
  STATUS current
  DESCRIPTION
    "Inlet Objects Group"
  ::= { synLinkGroups 2 }

synLinkBankGroup OBJECT-GROUP
  OBJECTS {
    bankUuid,
    bankOutletSwitchingSupported,
    bankOutletMeteringSupported,
    bankCurrentRms,
    bankVoltage,
    bankLineFrequency,
    bankPowerFactor,
    bankLines,
    bankActivePower,
    bankReactivePower,
    bankApparentPower,
    bankName,
    bankBreakerSupported,
    bankBreakerState
  }
  STATUS current
  DESCRIPTION
    "Bank Objects Group"
  ::= { synLinkGroups 4 }

synLinkOutletGroup OBJECT-GROUP
  OBJECTS {
    outletUuid,
    outletName,
    --outletPwrOnState,
    --outletBankIndex,
    outletCurrentRms,
    outletState,
    outletConnector
    --outletMaxCurrent,
    --outletSetState
    --outletReboot
  }
  STATUS current
  DESCRIPTION
    "Outlet Objects Group"
  ::= { synLinkGroups 5 }

synLinkGroupGroup OBJECT-GROUP
  OBJECTS {
    groupName,
    groupUuid,
    groupSetState,
    groupReboot,
    groupCurrentRms
  }
  STATUS current
  DESCRIPTION
    "Outlet Group Objects Group"
  ::= { synLinkGroups 6 }

synLinkSensorGroup OBJECT-GROUP
  OBJECTS {
    sensorType,
    sensorTemp,
    sensorHumidity,
    sensorTempOffset,
    sensorHumidityOffset,
    sensorName
  }
  STATUS current
  DESCRIPTION
    "Sensor Objects Group"
  ::= { synLinkGroups 7 }

synLinkLogGroup OBJECT-GROUP
  OBJECTS {
    pwrLogType,
    pwrLogValue,
    envLogType,
    envLogValue
  }
  STATUS current
  DESCRIPTION
    "Log Objects Group"
  ::= { synLinkGroups 8 }

synLinkEventGroup OBJECT-GROUP
  OBJECTS {
    eventType,
    eventCode,
    eventName,
    eventTriggerAttr1,
    eventTriggerAttr2,
    eventTriggerAttr3,
    eventIsTriggered,
    eventTriggeredTime
  }
  STATUS current
  DESCRIPTION
    "Event Triggers Objects Group"
  ::= { synLinkGroups 9 }

synLinkTrapGroup NOTIFICATION-GROUP
  NOTIFICATIONS {
    autopingTimeout,
    line1CurrentMaxThreshold,
    line2CurrentMaxThreshold,
    line3CurrentMaxThreshold,
    line1CurrentMinThreshold,
    line2CurrentMinThreshold,
    line3CurrentMinThreshold,
    inletCurrentMaxThreshold,
    inletCurrentMinThreshold,
    inletVoltageMaxThreshold,
    inletVoltageMinThreshold,
    inletLineFrequencyMaxThreshold,
    inletLineFrequencyMinThreshold,
    inletPowerFactorMinThreshold,
    inletActiveEnergyMaxThreshold,
    inletActivePowerMaxThreshold,
    inletActivePowerMinThreshold,
    inletApparentPowerMaxThreshold,
    inletApparentPowerMinThreshold,
    inletReactivePowerMaxThreshold,
    inletReactivePowerMinThreshold,
    inlet3phaseImbalance,
    bankBreakerTrip,
    bankCurrentMaxThreshold,
    bankCurrentMinThreshold,
    bankVoltageMaxThreshold,
    bankVoltageMinThreshold,
    bankLineFrequencyMaxThreshold,
    bankLineFrequencyMinThreshold,
    bankPowerfactorMinThreshold,
    --bankActiveEnergyMaxThreshold,
    bankActivePowerMaxThreshold,
    bankActivePowerMinThreshold,
    bankApparentPowerMaxThreshold,
    bankApparentPowerMinThreshold,
    bankReactivePowerMaxThreshold,
    bankReactivePowerMinThreshold,
    outletCurrentMaxThreshold,
    outletCurrentMinThreshold,
    --groupCurrentMaxThreshold,
    --groupCurrentMinThreshold,
    temperatureMaxThreshold,
    temperatureMinThreshold,
    --humidity1MaxThreshold,
    --humidity1MinThreshold,
    scheduledTime,
    scheduledInterval,
    atsInletSwitchedToSecondary,
    atsInletSwitchedToPrimary,
    atsInletSecondaryPowerLoss,
    atsInletSecondaryPowerRestored
  }
  STATUS current
  DESCRIPTION
    "Event Trap Objects Groups"
  ::= { synLinkGroups 10 }

synLinkCompliances OBJECT IDENTIFIER ::= { conformance 2 }

synLinkCompliance MODULE-COMPLIANCE
  STATUS current
  DESCRIPTION
    "Requirements for SYNLINK-MIB"
  MODULE

  GROUP synLinkDeviceGroup 
  DESCRIPTION
    "SynLink Device Objects Group"

  GROUP synLinkInletGroup 
  DESCRIPTION
    "SynLink Inlet Objects Group"

  -- GROUP synLinkLineGroup 
  -- DESCRIPTION
  --   "SynLink Line Objects Group"

  GROUP synLinkBankGroup 
  DESCRIPTION
    "SynLink Bank Objects Group"

  GROUP synLinkOutletGroup 
  DESCRIPTION
    "SynLink Outlet Objects Group"

  GROUP synLinkGroupGroup 
  DESCRIPTION
    "SynLink Outlet's Group Objects Group"

  GROUP synLinkSensorGroup 
  DESCRIPTION
    "SynLink Sensor Objects Group"

  GROUP synLinkLogGroup 
  DESCRIPTION
    "SynLink Log Objects Group"
  
  GROUP synLinkEventGroup
  DESCRIPTION
    "SynLink Event Triggers Group"

  GROUP synLinkTrapGroup
  DESCRIPTION
    "SynLink Traps Group"

  ::= { synLinkCompliances 1 }

END

