VOL-4782: Changes for Transceiver Threshold events

Change-Id: Iee89d9a362932d06eda1541ed88f2b82ba80d33e
diff --git a/cpp/dmi/hw.pb.cc b/cpp/dmi/hw.pb.cc
index 4e9b2a1..c63704b 100644
--- a/cpp/dmi/hw.pb.cc
+++ b/cpp/dmi/hw.pb.cc
@@ -673,7 +673,7 @@
   "EFINED\020\000\022\036\n\032COMP_STANDBY_STATE_UNKNOWN\020\001"
   "\022\032\n\026COMP_STANDBY_STATE_HOT\020\002\022\033\n\027COMP_STA"
   "NDBY_STATE_COLD\020\003\022(\n$COMP_STANDBY_STATE_"
-  "PROVIDING_SERVICE\020\004*\211\003\n\rDataValueType\022\030\n"
+  "PROVIDING_SERVICE\020\004*\235\003\n\rDataValueType\022\030\n"
   "\024VALUE_TYPE_UNDEFINED\020\000\022\024\n\020VALUE_TYPE_OT"
   "HER\020\001\022\026\n\022VALUE_TYPE_UNKNOWN\020\002\022\027\n\023VALUE_T"
   "YPE_VOLTS_AC\020\003\022\027\n\023VALUE_TYPE_VOLTS_DC\020\004\022"
@@ -683,32 +683,32 @@
   "\n\016VALUE_TYPE_RPM\020\n\022\022\n\016VALUE_TYPE_CMM\020\013\022\032"
   "\n\026VALUE_TYPE_TRUTH_VALUE\020\014\022\026\n\022VALUE_TYPE"
   "_PERCENT\020\r\022\025\n\021VALUE_TYPE_METERS\020\016\022\024\n\020VAL"
-  "UE_TYPE_BYTES\020\017*\244\003\n\nValueScale\022\031\n\025VALUE_"
-  "SCALE_UNDEFINED\020\000\022\025\n\021VALUE_SCALE_YOCTO\020\001"
-  "\022\025\n\021VALUE_SCALE_ZEPTO\020\002\022\024\n\020VALUE_SCALE_A"
-  "TTO\020\003\022\025\n\021VALUE_SCALE_FEMTO\020\004\022\024\n\020VALUE_SC"
-  "ALE_PICO\020\005\022\024\n\020VALUE_SCALE_NANO\020\006\022\025\n\021VALU"
-  "E_SCALE_MICRO\020\007\022\025\n\021VALUE_SCALE_MILLI\020\010\022\025"
-  "\n\021VALUE_SCALE_UNITS\020\t\022\024\n\020VALUE_SCALE_KIL"
-  "O\020\n\022\024\n\020VALUE_SCALE_MEGA\020\013\022\024\n\020VALUE_SCALE"
-  "_GIGA\020\014\022\024\n\020VALUE_SCALE_TERA\020\r\022\024\n\020VALUE_S"
-  "CALE_PETA\020\016\022\023\n\017VALUE_SCALE_EXA\020\017\022\025\n\021VALU"
-  "E_SCALE_ZETTA\020\020\022\025\n\021VALUE_SCALE_YOTTA\020\021*\202"
-  "\001\n\014SensorStatus\022\033\n\027SENSOR_STATUS_UNDEFIN"
-  "ED\020\000\022\024\n\020SENSOR_STATUS_OK\020\001\022\035\n\031SENSOR_STA"
-  "TUS_UNAVAILABLE\020\002\022 \n\034SENSOR_STATUS_NONOP"
-  "ERATIONAL\020\003*\244\001\n\017TransceiverType\022\022\n\016TYPE_"
-  "UNDEFINED\020\000\022\014\n\010ETHERNET\020\001\022\010\n\004GPON\020\002\022\t\n\005X"
-  "GPON\020\003\022\n\n\006XGSPON\020\004\022\010\n\004CPON\020\005\022\013\n\007NG_PON2\020"
-  "\006\022\010\n\004EPON\020\007\022\025\n\021COMBO_GPON_XGSPON\020\010\022\026\n\021TY"
-  "PE_NOT_DETECTED\020\377\001B;Z9github.com/opencor"
-  "d/device-management-interface/v3/go/dmib"
-  "\006proto3"
+  "UE_TYPE_BYTES\020\017\022\022\n\016VALUE_TYPE_DBM\020\020*\244\003\n\n"
+  "ValueScale\022\031\n\025VALUE_SCALE_UNDEFINED\020\000\022\025\n"
+  "\021VALUE_SCALE_YOCTO\020\001\022\025\n\021VALUE_SCALE_ZEPT"
+  "O\020\002\022\024\n\020VALUE_SCALE_ATTO\020\003\022\025\n\021VALUE_SCALE"
+  "_FEMTO\020\004\022\024\n\020VALUE_SCALE_PICO\020\005\022\024\n\020VALUE_"
+  "SCALE_NANO\020\006\022\025\n\021VALUE_SCALE_MICRO\020\007\022\025\n\021V"
+  "ALUE_SCALE_MILLI\020\010\022\025\n\021VALUE_SCALE_UNITS\020"
+  "\t\022\024\n\020VALUE_SCALE_KILO\020\n\022\024\n\020VALUE_SCALE_M"
+  "EGA\020\013\022\024\n\020VALUE_SCALE_GIGA\020\014\022\024\n\020VALUE_SCA"
+  "LE_TERA\020\r\022\024\n\020VALUE_SCALE_PETA\020\016\022\023\n\017VALUE"
+  "_SCALE_EXA\020\017\022\025\n\021VALUE_SCALE_ZETTA\020\020\022\025\n\021V"
+  "ALUE_SCALE_YOTTA\020\021*\202\001\n\014SensorStatus\022\033\n\027S"
+  "ENSOR_STATUS_UNDEFINED\020\000\022\024\n\020SENSOR_STATU"
+  "S_OK\020\001\022\035\n\031SENSOR_STATUS_UNAVAILABLE\020\002\022 \n"
+  "\034SENSOR_STATUS_NONOPERATIONAL\020\003*\244\001\n\017Tran"
+  "sceiverType\022\022\n\016TYPE_UNDEFINED\020\000\022\014\n\010ETHER"
+  "NET\020\001\022\010\n\004GPON\020\002\022\t\n\005XGPON\020\003\022\n\n\006XGSPON\020\004\022\010"
+  "\n\004CPON\020\005\022\013\n\007NG_PON2\020\006\022\010\n\004EPON\020\007\022\025\n\021COMBO"
+  "_GPON_XGSPON\020\010\022\026\n\021TYPE_NOT_DETECTED\020\377\001B;"
+  "Z9github.com/opencord/device-management-"
+  "interface/v3/go/dmib\006proto3"
   ;
 ::google::protobuf::internal::DescriptorTable descriptor_table_dmi_2fhw_2eproto = {
   false, InitDefaults_dmi_2fhw_2eproto, 
   descriptor_table_protodef_dmi_2fhw_2eproto,
-  "dmi/hw.proto", &assign_descriptors_table_dmi_2fhw_2eproto, 6287,
+  "dmi/hw.proto", &assign_descriptors_table_dmi_2fhw_2eproto, 6307,
 };
 
 void AddDescriptors_dmi_2fhw_2eproto() {
@@ -1032,6 +1032,7 @@
     case 13:
     case 14:
     case 15:
+    case 16:
       return true;
     default:
       return false;
diff --git a/cpp/dmi/hw.pb.h b/cpp/dmi/hw.pb.h
index 83fd143..c2fd5fa 100644
--- a/cpp/dmi/hw.pb.h
+++ b/cpp/dmi/hw.pb.h
@@ -431,12 +431,13 @@
   VALUE_TYPE_PERCENT = 13,
   VALUE_TYPE_METERS = 14,
   VALUE_TYPE_BYTES = 15,
+  VALUE_TYPE_DBM = 16,
   DataValueType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
   DataValueType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
 };
 bool DataValueType_IsValid(int value);
 const DataValueType DataValueType_MIN = VALUE_TYPE_UNDEFINED;
-const DataValueType DataValueType_MAX = VALUE_TYPE_BYTES;
+const DataValueType DataValueType_MAX = VALUE_TYPE_DBM;
 const int DataValueType_ARRAYSIZE = DataValueType_MAX + 1;
 
 const ::google::protobuf::EnumDescriptor* DataValueType_descriptor();
diff --git a/cpp/dmi/hw_events_mgmt_service.pb.cc b/cpp/dmi/hw_events_mgmt_service.pb.cc
index 87c2a16..ec75e95 100644
--- a/cpp/dmi/hw_events_mgmt_service.pb.cc
+++ b/cpp/dmi/hw_events_mgmt_service.pb.cc
@@ -272,6 +272,7 @@
   offsetof(::dmi::ValueTypeDefaultTypeInternal, int_val_),
   offsetof(::dmi::ValueTypeDefaultTypeInternal, uint_val_),
   offsetof(::dmi::ValueTypeDefaultTypeInternal, float_val_),
+  PROTOBUF_FIELD_OFFSET(::dmi::ValueType, typeofval_),
   PROTOBUF_FIELD_OFFSET(::dmi::ValueType, val_),
   ~0u,  // no _has_bits_
   PROTOBUF_FIELD_OFFSET(::dmi::WaterMarks, _internal_metadata_),
@@ -357,16 +358,16 @@
 };
 static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
   { 0, -1, sizeof(::dmi::ValueType)},
-  { 9, -1, sizeof(::dmi::WaterMarks)},
-  { 16, -1, sizeof(::dmi::Thresholds)},
-  { 24, -1, sizeof(::dmi::ThresholdInformation)},
-  { 31, -1, sizeof(::dmi::EventCfg)},
-  { 39, -1, sizeof(::dmi::EventsCfg)},
-  { 45, -1, sizeof(::dmi::ListEventsResponse)},
-  { 54, -1, sizeof(::dmi::EventsConfigurationRequest)},
-  { 64, -1, sizeof(::dmi::EventsConfigurationResponse)},
-  { 72, -1, sizeof(::dmi::EventMetaData)},
-  { 80, -1, sizeof(::dmi::Event)},
+  { 10, -1, sizeof(::dmi::WaterMarks)},
+  { 17, -1, sizeof(::dmi::Thresholds)},
+  { 25, -1, sizeof(::dmi::ThresholdInformation)},
+  { 32, -1, sizeof(::dmi::EventCfg)},
+  { 40, -1, sizeof(::dmi::EventsCfg)},
+  { 46, -1, sizeof(::dmi::ListEventsResponse)},
+  { 55, -1, sizeof(::dmi::EventsConfigurationRequest)},
+  { 65, -1, sizeof(::dmi::EventsConfigurationResponse)},
+  { 73, -1, sizeof(::dmi::EventMetaData)},
+  { 81, -1, sizeof(::dmi::Event)},
 };
 
 static ::google::protobuf::Message const * const file_default_instances[] = {
@@ -393,108 +394,109 @@
   "\n dmi/hw_events_mgmt_service.proto\022\003dmi\032"
   "\021dmi/commons.proto\032\014dmi/hw.proto\032\037google"
   "/protobuf/timestamp.proto\032\033google/protob"
-  "uf/empty.proto\"N\n\tValueType\022\021\n\007int_val\030\001"
+  "uf/empty.proto\"u\n\tValueType\022\021\n\007int_val\030\001"
   " \001(\003H\000\022\022\n\010uint_val\030\002 \001(\004H\000\022\023\n\tfloat_val\030"
-  "\003 \001(\002H\000B\005\n\003val\"G\n\nWaterMarks\022\034\n\004high\030\001 \001"
-  "(\0132\016.dmi.ValueType\022\033\n\003low\030\002 \001(\0132\016.dmi.Va"
-  "lueType\"]\n\nThresholds\022 \n\005upper\030\001 \001(\0132\017.d"
-  "mi.WaterMarksH\000\022 \n\005lower\030\002 \001(\0132\017.dmi.Wat"
-  "erMarksH\000B\013\n\tthreshold\"c\n\024ThresholdInfor"
-  "mation\022&\n\016observed_value\030\001 \001(\0132\016.dmi.Val"
-  "ueType\022#\n\nthresholds\030\002 \001(\0132\017.dmi.Thresho"
-  "lds\"g\n\010EventCfg\022\037\n\010event_id\030\001 \001(\0162\r.dmi."
-  "EventIds\022\025\n\ris_configured\030\002 \001(\010\022#\n\nthres"
-  "holds\030\003 \001(\0132\017.dmi.Thresholds\")\n\tEventsCf"
-  "g\022\034\n\005items\030\001 \003(\0132\r.dmi.EventCfg\"\370\001\n\022List"
-  "EventsResponse\022\033\n\006status\030\001 \001(\0162\013.dmi.Sta"
-  "tus\022.\n\006reason\030\002 \001(\0162\036.dmi.ListEventsResp"
-  "onse.Reason\022\036\n\006events\030\003 \001(\0132\016.dmi.Events"
-  "Cfg\022\025\n\rreason_detail\030\004 \001(\t\"^\n\006Reason\022\024\n\020"
-  "UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022"
-  "\n\016INTERNAL_ERROR\020\002\022\026\n\022DEVICE_UNREACHABLE"
-  "\020\003\"\253\001\n\032EventsConfigurationRequest\022\036\n\013dev"
-  "ice_uuid\030\001 \001(\0132\t.dmi.Uuid\022!\n\007changes\030\002 \001"
-  "(\0132\016.dmi.EventsCfgH\000\022\032\n\020reset_to_default"
-  "\030\003 \001(\010H\000\022!\n\016component_uuid\030\004 \001(\0132\t.dmi.U"
-  "uidB\013\n\toperation\"\376\001\n\033EventsConfiguration"
-  "Response\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\0227\n"
-  "\006reason\030\002 \001(\0162\'.dmi.EventsConfigurationR"
-  "esponse.Reason\022\025\n\rreason_detail\030\003 \001(\t\"r\n"
-  "\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN"
-  "_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\022\n\016INVALID"
-  "_CONFIG\020\003\022\026\n\022DEVICE_UNREACHABLE\020\004\"j\n\rEve"
-  "ntMetaData\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uu"
-  "id\022!\n\016component_uuid\030\002 \001(\0132\t.dmi.Uuid\022\026\n"
-  "\016component_name\030\003 \001(\t\"\310\001\n\005Event\022*\n\016event"
-  "_metadata\030\001 \001(\0132\022.dmi.EventMetaData\022\037\n\010e"
-  "vent_id\030\002 \001(\0162\r.dmi.EventIds\022-\n\traised_t"
-  "s\030\003 \001(\0132\032.google.protobuf.Timestamp\0221\n\016t"
-  "hreshold_info\030\004 \001(\0132\031.dmi.ThresholdInfor"
-  "mation\022\020\n\010add_info\030\005 \001(\t*\202\020\n\010EventIds\022\030\n"
-  "\024EVENT_NAME_UNDEFINED\020\000\022\036\n\032EVENT_TRANSCE"
-  "IVER_PLUG_OUT\020d\022\035\n\031EVENT_TRANSCEIVER_PLU"
-  "G_IN\020e\022-\n)EVENT_TRANSCEIVER_VOLTAGE_ABOV"
-  "E_THRESHOLD\020f\022-\n)EVENT_TRANSCEIVER_VOLTA"
-  "GE_BELOW_THRESHOLD\020g\0221\n-EVENT_TRANSCEIVE"
-  "R_TEMPERATURE_ABOVE_THRESHOLD\020h\0221\n-EVENT"
-  "_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD"
-  "\020i\022-\n)EVENT_TRANSCEIVER_CURRENT_ABOVE_TH"
-  "RESHOLD\020j\022-\n)EVENT_TRANSCEIVER_CURRENT_B"
-  "ELOW_THRESHOLD\020k\022.\n*EVENT_TRANSCEIVER_RX"
-  "_POWER_ABOVE_THRESHOLD\020l\022.\n*EVENT_TRANSC"
-  "EIVER_RX_POWER_BELOW_THRESHOLD\020m\022.\n*EVEN"
-  "T_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD\020n"
-  "\022.\n*EVENT_TRANSCEIVER_TX_POWER_BELOW_THR"
-  "ESHOLD\020o\022\035\n\031EVENT_TRANSCEIVER_FAILURE\020p\022"
-  "7\n3EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRES"
-  "HOLD_RECOVERED\020q\0227\n3EVENT_TRANSCEIVER_VO"
-  "LTAGE_BELOW_THRESHOLD_RECOVERED\020r\022;\n7EVE"
-  "NT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHO"
-  "LD_RECOVERED\020s\022;\n7EVENT_TRANSCEIVER_TEMP"
-  "ERATURE_BELOW_THRESHOLD_RECOVERED\020t\0227\n3E"
-  "VENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD"
-  "_RECOVERED\020u\0227\n3EVENT_TRANSCEIVER_CURREN"
-  "T_BELOW_THRESHOLD_RECOVERED\020v\0228\n4EVENT_T"
-  "RANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECO"
-  "VERED\020w\0228\n4EVENT_TRANSCEIVER_RX_POWER_BE"
-  "LOW_THRESHOLD_RECOVERED\020x\0228\n4EVENT_TRANS"
-  "CEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERE"
-  "D\020y\0228\n4EVENT_TRANSCEIVER_TX_POWER_BELOW_"
-  "THRESHOLD_RECOVERED\020z\022\'\n#EVENT_TRANSCEIV"
-  "ER_FAILURE_RECOVERED\020{\022\027\n\022EVENT_PSU_PLUG"
-  "_OUT\020\310\001\022\026\n\021EVENT_PSU_PLUG_IN\020\311\001\022\026\n\021EVENT"
-  "_PSU_FAILURE\020\312\001\022 \n\033EVENT_PSU_FAILURE_REC"
-  "OVERED\020\313\001\022\026\n\021EVENT_FAN_FAILURE\020\254\002\022\027\n\022EVE"
-  "NT_FAN_PLUG_OUT\020\255\002\022\026\n\021EVENT_FAN_PLUG_IN\020"
-  "\256\002\022 \n\033EVENT_FAN_FAILURE_RECOVERED\020\257\002\022)\n$"
-  "EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL\020\220\003\022"
-  "&\n!EVENT_CPU_TEMPERATURE_ABOVE_FATAL\020\221\003\022"
-  "3\n.EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_"
-  "RECOVERED\020\222\003\0220\n+EVENT_CPU_TEMPERATURE_AB"
-  "OVE_FATAL_RECOVERED\020\223\003\022\032\n\025EVENT_HW_DEVIC"
-  "E_RESET\020\364\003\022/\n*EVENT_HW_DEVICE_TEMPERATUR"
-  "E_ABOVE_CRITICAL\020\365\003\022,\n\'EVENT_HW_DEVICE_T"
-  "EMPERATURE_ABOVE_FATAL\020\366\003\0229\n4EVENT_HW_DE"
-  "VICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERE"
-  "D\020\367\003\0226\n1EVENT_HW_DEVICE_TEMPERATURE_ABOV"
-  "E_FATAL_RECOVERED\020\370\003\022\033\n\026EVENT_HW_DEVICE_"
-  "REBOOT\020\371\003\022\'\n\"EVENT_HW_TEMPERATURE_SENSOR"
-  "_FAILED\020\372\003\022,\n\'EVENT_HW_ALL_TEMPERATURE_S"
-  "ENSORS_FAILED\020\373\003\022\035\n\030EVENT_LINE_CARD_PLUG"
-  "_OUT\020\330\004\022\034\n\027EVENT_LINE_CARD_PLUG_IN\020\331\0042\355\001"
-  "\n\035NativeEventsManagementService\0226\n\nListE"
-  "vents\022\017.dmi.HardwareID\032\027.dmi.ListEventsR"
-  "esponse\022^\n\031UpdateEventsConfiguration\022\037.d"
-  "mi.EventsConfigurationRequest\032 .dmi.Even"
-  "tsConfigurationResponse\0224\n\014StreamEvents\022"
-  "\026.google.protobuf.Empty\032\n.dmi.Event0\001B;Z"
-  "9github.com/opencord/device-management-i"
-  "nterface/v3/go/dmib\006proto3"
+  "\003 \001(\002H\000\022%\n\ttypeOfVal\030\004 \001(\0162\022.dmi.DataVal"
+  "ueTypeB\005\n\003val\"G\n\nWaterMarks\022\034\n\004high\030\001 \001("
+  "\0132\016.dmi.ValueType\022\033\n\003low\030\002 \001(\0132\016.dmi.Val"
+  "ueType\"]\n\nThresholds\022 \n\005upper\030\001 \001(\0132\017.dm"
+  "i.WaterMarksH\000\022 \n\005lower\030\002 \001(\0132\017.dmi.Wate"
+  "rMarksH\000B\013\n\tthreshold\"c\n\024ThresholdInform"
+  "ation\022&\n\016observed_value\030\001 \001(\0132\016.dmi.Valu"
+  "eType\022#\n\nthresholds\030\002 \001(\0132\017.dmi.Threshol"
+  "ds\"g\n\010EventCfg\022\037\n\010event_id\030\001 \001(\0162\r.dmi.E"
+  "ventIds\022\025\n\ris_configured\030\002 \001(\010\022#\n\nthresh"
+  "olds\030\003 \001(\0132\017.dmi.Thresholds\")\n\tEventsCfg"
+  "\022\034\n\005items\030\001 \003(\0132\r.dmi.EventCfg\"\370\001\n\022ListE"
+  "ventsResponse\022\033\n\006status\030\001 \001(\0162\013.dmi.Stat"
+  "us\022.\n\006reason\030\002 \001(\0162\036.dmi.ListEventsRespo"
+  "nse.Reason\022\036\n\006events\030\003 \001(\0132\016.dmi.EventsC"
+  "fg\022\025\n\rreason_detail\030\004 \001(\t\"^\n\006Reason\022\024\n\020U"
+  "NDEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n"
+  "\016INTERNAL_ERROR\020\002\022\026\n\022DEVICE_UNREACHABLE\020"
+  "\003\"\253\001\n\032EventsConfigurationRequest\022\036\n\013devi"
+  "ce_uuid\030\001 \001(\0132\t.dmi.Uuid\022!\n\007changes\030\002 \001("
+  "\0132\016.dmi.EventsCfgH\000\022\032\n\020reset_to_default\030"
+  "\003 \001(\010H\000\022!\n\016component_uuid\030\004 \001(\0132\t.dmi.Uu"
+  "idB\013\n\toperation\"\376\001\n\033EventsConfigurationR"
+  "esponse\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\0227\n\006"
+  "reason\030\002 \001(\0162\'.dmi.EventsConfigurationRe"
+  "sponse.Reason\022\025\n\rreason_detail\030\003 \001(\t\"r\n\006"
+  "Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN_"
+  "DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\022\n\016INVALID_"
+  "CONFIG\020\003\022\026\n\022DEVICE_UNREACHABLE\020\004\"j\n\rEven"
+  "tMetaData\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uui"
+  "d\022!\n\016component_uuid\030\002 \001(\0132\t.dmi.Uuid\022\026\n\016"
+  "component_name\030\003 \001(\t\"\310\001\n\005Event\022*\n\016event_"
+  "metadata\030\001 \001(\0132\022.dmi.EventMetaData\022\037\n\010ev"
+  "ent_id\030\002 \001(\0162\r.dmi.EventIds\022-\n\traised_ts"
+  "\030\003 \001(\0132\032.google.protobuf.Timestamp\0221\n\016th"
+  "reshold_info\030\004 \001(\0132\031.dmi.ThresholdInform"
+  "ation\022\020\n\010add_info\030\005 \001(\t*\202\020\n\010EventIds\022\030\n\024"
+  "EVENT_NAME_UNDEFINED\020\000\022\036\n\032EVENT_TRANSCEI"
+  "VER_PLUG_OUT\020d\022\035\n\031EVENT_TRANSCEIVER_PLUG"
+  "_IN\020e\022-\n)EVENT_TRANSCEIVER_VOLTAGE_ABOVE"
+  "_THRESHOLD\020f\022-\n)EVENT_TRANSCEIVER_VOLTAG"
+  "E_BELOW_THRESHOLD\020g\0221\n-EVENT_TRANSCEIVER"
+  "_TEMPERATURE_ABOVE_THRESHOLD\020h\0221\n-EVENT_"
+  "TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD\020"
+  "i\022-\n)EVENT_TRANSCEIVER_CURRENT_ABOVE_THR"
+  "ESHOLD\020j\022-\n)EVENT_TRANSCEIVER_CURRENT_BE"
+  "LOW_THRESHOLD\020k\022.\n*EVENT_TRANSCEIVER_RX_"
+  "POWER_ABOVE_THRESHOLD\020l\022.\n*EVENT_TRANSCE"
+  "IVER_RX_POWER_BELOW_THRESHOLD\020m\022.\n*EVENT"
+  "_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD\020n\022"
+  ".\n*EVENT_TRANSCEIVER_TX_POWER_BELOW_THRE"
+  "SHOLD\020o\022\035\n\031EVENT_TRANSCEIVER_FAILURE\020p\0227"
+  "\n3EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESH"
+  "OLD_RECOVERED\020q\0227\n3EVENT_TRANSCEIVER_VOL"
+  "TAGE_BELOW_THRESHOLD_RECOVERED\020r\022;\n7EVEN"
+  "T_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOL"
+  "D_RECOVERED\020s\022;\n7EVENT_TRANSCEIVER_TEMPE"
+  "RATURE_BELOW_THRESHOLD_RECOVERED\020t\0227\n3EV"
+  "ENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_"
+  "RECOVERED\020u\0227\n3EVENT_TRANSCEIVER_CURRENT"
+  "_BELOW_THRESHOLD_RECOVERED\020v\0228\n4EVENT_TR"
+  "ANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOV"
+  "ERED\020w\0228\n4EVENT_TRANSCEIVER_RX_POWER_BEL"
+  "OW_THRESHOLD_RECOVERED\020x\0228\n4EVENT_TRANSC"
+  "EIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED"
+  "\020y\0228\n4EVENT_TRANSCEIVER_TX_POWER_BELOW_T"
+  "HRESHOLD_RECOVERED\020z\022\'\n#EVENT_TRANSCEIVE"
+  "R_FAILURE_RECOVERED\020{\022\027\n\022EVENT_PSU_PLUG_"
+  "OUT\020\310\001\022\026\n\021EVENT_PSU_PLUG_IN\020\311\001\022\026\n\021EVENT_"
+  "PSU_FAILURE\020\312\001\022 \n\033EVENT_PSU_FAILURE_RECO"
+  "VERED\020\313\001\022\026\n\021EVENT_FAN_FAILURE\020\254\002\022\027\n\022EVEN"
+  "T_FAN_PLUG_OUT\020\255\002\022\026\n\021EVENT_FAN_PLUG_IN\020\256"
+  "\002\022 \n\033EVENT_FAN_FAILURE_RECOVERED\020\257\002\022)\n$E"
+  "VENT_CPU_TEMPERATURE_ABOVE_CRITICAL\020\220\003\022&"
+  "\n!EVENT_CPU_TEMPERATURE_ABOVE_FATAL\020\221\003\0223"
+  "\n.EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_R"
+  "ECOVERED\020\222\003\0220\n+EVENT_CPU_TEMPERATURE_ABO"
+  "VE_FATAL_RECOVERED\020\223\003\022\032\n\025EVENT_HW_DEVICE"
+  "_RESET\020\364\003\022/\n*EVENT_HW_DEVICE_TEMPERATURE"
+  "_ABOVE_CRITICAL\020\365\003\022,\n\'EVENT_HW_DEVICE_TE"
+  "MPERATURE_ABOVE_FATAL\020\366\003\0229\n4EVENT_HW_DEV"
+  "ICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED"
+  "\020\367\003\0226\n1EVENT_HW_DEVICE_TEMPERATURE_ABOVE"
+  "_FATAL_RECOVERED\020\370\003\022\033\n\026EVENT_HW_DEVICE_R"
+  "EBOOT\020\371\003\022\'\n\"EVENT_HW_TEMPERATURE_SENSOR_"
+  "FAILED\020\372\003\022,\n\'EVENT_HW_ALL_TEMPERATURE_SE"
+  "NSORS_FAILED\020\373\003\022\035\n\030EVENT_LINE_CARD_PLUG_"
+  "OUT\020\330\004\022\034\n\027EVENT_LINE_CARD_PLUG_IN\020\331\0042\355\001\n"
+  "\035NativeEventsManagementService\0226\n\nListEv"
+  "ents\022\017.dmi.HardwareID\032\027.dmi.ListEventsRe"
+  "sponse\022^\n\031UpdateEventsConfiguration\022\037.dm"
+  "i.EventsConfigurationRequest\032 .dmi.Event"
+  "sConfigurationResponse\0224\n\014StreamEvents\022\026"
+  ".google.protobuf.Empty\032\n.dmi.Event0\001B;Z9"
+  "github.com/opencord/device-management-in"
+  "terface/v3/go/dmib\006proto3"
   ;
 ::google::protobuf::internal::DescriptorTable descriptor_table_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto = {
   false, InitDefaults_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto, 
   descriptor_table_protodef_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto,
-  "dmi/hw_events_mgmt_service.proto", &assign_descriptors_table_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto, 3986,
+  "dmi/hw_events_mgmt_service.proto", &assign_descriptors_table_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto, 4025,
 };
 
 void AddDescriptors_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto() {
@@ -638,6 +640,7 @@
 const int ValueType::kIntValFieldNumber;
 const int ValueType::kUintValFieldNumber;
 const int ValueType::kFloatValFieldNumber;
+const int ValueType::kTypeOfValFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 ValueType::ValueType()
@@ -649,6 +652,7 @@
   : ::google::protobuf::Message(),
       _internal_metadata_(nullptr) {
   _internal_metadata_.MergeFrom(from._internal_metadata_);
+  typeofval_ = from.typeofval_;
   clear_has_val();
   switch (from.val_case()) {
     case kIntVal: {
@@ -671,6 +675,7 @@
 }
 
 void ValueType::SharedCtor() {
+  typeofval_ = 0;
   clear_has_val();
 }
 
@@ -723,6 +728,7 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
+  typeofval_ = 0;
   clear_val();
   _internal_metadata_.Clear();
 }
@@ -761,6 +767,14 @@
         ptr += sizeof(float);
         break;
       }
+      // .dmi.DataValueType typeOfVal = 4;
+      case 4: {
+        if (static_cast<::google::protobuf::uint8>(tag) != 32) goto handle_unusual;
+        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
+        msg->set_typeofval(static_cast<::dmi::DataValueType>(val));
+        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
+        break;
+      }
       default: {
       handle_unusual:
         if ((tag & 7) == 4 || tag == 0) {
@@ -830,6 +844,20 @@
         break;
       }
 
+      // .dmi.DataValueType typeOfVal = 4;
+      case 4: {
+        if (static_cast< ::google::protobuf::uint8>(tag) == (32 & 0xFF)) {
+          int value = 0;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          set_typeofval(static_cast< ::dmi::DataValueType >(value));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
       default: {
       handle_unusual:
         if (tag == 0) {
@@ -872,6 +900,12 @@
     ::google::protobuf::internal::WireFormatLite::WriteFloat(3, this->float_val(), output);
   }
 
+  // .dmi.DataValueType typeOfVal = 4;
+  if (this->typeofval() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      4, this->typeofval(), output);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         _internal_metadata_.unknown_fields(), output);
@@ -900,6 +934,12 @@
     target = ::google::protobuf::internal::WireFormatLite::WriteFloatToArray(3, this->float_val(), target);
   }
 
+  // .dmi.DataValueType typeOfVal = 4;
+  if (this->typeofval() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      4, this->typeofval(), target);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields(), target);
@@ -921,6 +961,12 @@
   // Prevent compiler warnings about cached_has_bits being unused
   (void) cached_has_bits;
 
+  // .dmi.DataValueType typeOfVal = 4;
+  if (this->typeofval() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->typeofval());
+  }
+
   switch (val_case()) {
     // int64 int_val = 1;
     case kIntVal: {
@@ -972,6 +1018,9 @@
   ::google::protobuf::uint32 cached_has_bits = 0;
   (void) cached_has_bits;
 
+  if (from.typeofval() != 0) {
+    set_typeofval(from.typeofval());
+  }
   switch (from.val_case()) {
     case kIntVal: {
       set_int_val(from.int_val());
@@ -1016,6 +1065,7 @@
 void ValueType::InternalSwap(ValueType* other) {
   using std::swap;
   _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(typeofval_, other->typeofval_);
   swap(val_, other->val_);
   swap(_oneof_case_[0], other->_oneof_case_[0]);
 }
diff --git a/cpp/dmi/hw_events_mgmt_service.pb.h b/cpp/dmi/hw_events_mgmt_service.pb.h
index 9939a73..62c840a 100644
--- a/cpp/dmi/hw_events_mgmt_service.pb.h
+++ b/cpp/dmi/hw_events_mgmt_service.pb.h
@@ -322,6 +322,12 @@
 
   // accessors -------------------------------------------------------
 
+  // .dmi.DataValueType typeOfVal = 4;
+  void clear_typeofval();
+  static const int kTypeOfValFieldNumber = 4;
+  ::dmi::DataValueType typeofval() const;
+  void set_typeofval(::dmi::DataValueType value);
+
   // int64 int_val = 1;
   private:
   bool has_int_val() const;
@@ -362,6 +368,7 @@
   inline void clear_has_val();
 
   ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  int typeofval_;
   union ValUnion {
     ValUnion() {}
     ::google::protobuf::int64 int_val_;
@@ -1911,6 +1918,20 @@
   // @@protoc_insertion_point(field_set:dmi.ValueType.float_val)
 }
 
+// .dmi.DataValueType typeOfVal = 4;
+inline void ValueType::clear_typeofval() {
+  typeofval_ = 0;
+}
+inline ::dmi::DataValueType ValueType::typeofval() const {
+  // @@protoc_insertion_point(field_get:dmi.ValueType.typeOfVal)
+  return static_cast< ::dmi::DataValueType >(typeofval_);
+}
+inline void ValueType::set_typeofval(::dmi::DataValueType value) {
+  
+  typeofval_ = value;
+  // @@protoc_insertion_point(field_set:dmi.ValueType.typeOfVal)
+}
+
 inline bool ValueType::has_val() const {
   return val_case() != VAL_NOT_SET;
 }