VOL-4640: Changes to DMI interface to support Combo PON functionality

Change-Id: Ia80843d350e07ad6afe6b42a9da105f3be82706b
diff --git a/VERSION b/VERSION
index 6085e94..23aa839 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.1
+1.2.2
diff --git a/cpp/dmi/hw.pb.cc b/cpp/dmi/hw.pb.cc
index 8c3af98..df8bd1a 100644
--- a/cpp/dmi/hw.pb.cc
+++ b/cpp/dmi/hw.pb.cc
@@ -19,6 +19,7 @@
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_ContainerComponentAttributes_dmi_2fhw_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_PonIdConfig_dmi_2fhw_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_PsuComponentAttributes_dmi_2fhw_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_TransceiverComponentChangeAttributes_dmi_2fhw_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_TransceiverComponentsAttributes_dmi_2fhw_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Uri_dmi_2fhw_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Uuid_dmi_2fhw_2eproto;
@@ -57,6 +58,10 @@
  public:
   ::google::protobuf::internal::ExplicitlyConstructed<PortComponentChangeAttributes> _instance;
 } _PortComponentChangeAttributes_default_instance_;
+class TransceiverComponentChangeAttributesDefaultTypeInternal {
+ public:
+  ::google::protobuf::internal::ExplicitlyConstructed<TransceiverComponentChangeAttributes> _instance;
+} _TransceiverComponentChangeAttributes_default_instance_;
 class PonIdConfigDefaultTypeInternal {
  public:
   ::google::protobuf::internal::ExplicitlyConstructed<PonIdConfig> _instance;
@@ -89,6 +94,7 @@
  public:
   ::google::protobuf::internal::ExplicitlyConstructed<ModifiableComponent> _instance;
   const ::dmi::PortComponentChangeAttributes* port_attr_;
+  const ::dmi::TransceiverComponentChangeAttributes* trx_attr_;
 } _ModifiableComponent_default_instance_;
 }  // namespace dmi
 static void InitDefaultsUuid_dmi_2fhw_2eproto() {
@@ -194,6 +200,20 @@
     {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 1, InitDefaultsPortComponentChangeAttributes_dmi_2fhw_2eproto}, {
       &scc_info_PonIdConfig_dmi_2fhw_2eproto.base,}};
 
+static void InitDefaultsTransceiverComponentChangeAttributes_dmi_2fhw_2eproto() {
+  GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+  {
+    void* ptr = &::dmi::_TransceiverComponentChangeAttributes_default_instance_;
+    new (ptr) ::dmi::TransceiverComponentChangeAttributes();
+    ::google::protobuf::internal::OnShutdownDestroyMessage(ptr);
+  }
+  ::dmi::TransceiverComponentChangeAttributes::InitAsDefaultInstance();
+}
+
+::google::protobuf::internal::SCCInfo<0> scc_info_TransceiverComponentChangeAttributes_dmi_2fhw_2eproto =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 0, InitDefaultsTransceiverComponentChangeAttributes_dmi_2fhw_2eproto}, {}};
+
 static void InitDefaultsPonIdConfig_dmi_2fhw_2eproto() {
   GOOGLE_PROTOBUF_VERIFY_VERSION;
 
@@ -300,11 +320,12 @@
   ::dmi::ModifiableComponent::InitAsDefaultInstance();
 }
 
-::google::protobuf::internal::SCCInfo<3> scc_info_ModifiableComponent_dmi_2fhw_2eproto =
-    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 3, InitDefaultsModifiableComponent_dmi_2fhw_2eproto}, {
+::google::protobuf::internal::SCCInfo<4> scc_info_ModifiableComponent_dmi_2fhw_2eproto =
+    {{ATOMIC_VAR_INIT(::google::protobuf::internal::SCCInfoBase::kUninitialized), 4, InitDefaultsModifiableComponent_dmi_2fhw_2eproto}, {
       &scc_info_Component_dmi_2fhw_2eproto.base,
       &scc_info_Uri_dmi_2fhw_2eproto.base,
-      &scc_info_PortComponentChangeAttributes_dmi_2fhw_2eproto.base,}};
+      &scc_info_PortComponentChangeAttributes_dmi_2fhw_2eproto.base,
+      &scc_info_TransceiverComponentChangeAttributes_dmi_2fhw_2eproto.base,}};
 
 void InitDefaults_dmi_2fhw_2eproto() {
   ::google::protobuf::internal::InitSCC(&scc_info_Uuid_dmi_2fhw_2eproto.base);
@@ -314,6 +335,7 @@
   ::google::protobuf::internal::InitSCC(&scc_info_ComponentSensorData_dmi_2fhw_2eproto.base);
   ::google::protobuf::internal::InitSCC(&scc_info_PortComponentAttributes_dmi_2fhw_2eproto.base);
   ::google::protobuf::internal::InitSCC(&scc_info_PortComponentChangeAttributes_dmi_2fhw_2eproto.base);
+  ::google::protobuf::internal::InitSCC(&scc_info_TransceiverComponentChangeAttributes_dmi_2fhw_2eproto.base);
   ::google::protobuf::internal::InitSCC(&scc_info_PonIdConfig_dmi_2fhw_2eproto.base);
   ::google::protobuf::internal::InitSCC(&scc_info_ContainerComponentAttributes_dmi_2fhw_2eproto.base);
   ::google::protobuf::internal::InitSCC(&scc_info_PsuComponentAttributes_dmi_2fhw_2eproto.base);
@@ -323,7 +345,7 @@
   ::google::protobuf::internal::InitSCC(&scc_info_ModifiableComponent_dmi_2fhw_2eproto.base);
 }
 
-::google::protobuf::Metadata file_level_metadata_dmi_2fhw_2eproto[14];
+::google::protobuf::Metadata file_level_metadata_dmi_2fhw_2eproto[15];
 const ::google::protobuf::EnumDescriptor* file_level_enum_descriptors_dmi_2fhw_2eproto[15];
 constexpr ::google::protobuf::ServiceDescriptor const** file_level_service_descriptors_dmi_2fhw_2eproto = nullptr;
 
@@ -390,6 +412,12 @@
   ~0u,  // no _weak_field_map_
   PROTOBUF_FIELD_OFFSET(::dmi::PortComponentChangeAttributes, pon_id_config_),
   ~0u,  // no _has_bits_
+  PROTOBUF_FIELD_OFFSET(::dmi::TransceiverComponentChangeAttributes, _internal_metadata_),
+  ~0u,  // no _extensions_
+  ~0u,  // no _oneof_case_
+  ~0u,  // no _weak_field_map_
+  PROTOBUF_FIELD_OFFSET(::dmi::TransceiverComponentChangeAttributes, trans_type_),
+  ~0u,  // no _has_bits_
   PROTOBUF_FIELD_OFFSET(::dmi::PonIdConfig, _internal_metadata_),
   ~0u,  // no _extensions_
   ~0u,  // no _oneof_case_
@@ -472,6 +500,7 @@
   PROTOBUF_FIELD_OFFSET(::dmi::ModifiableComponent, uri_),
   PROTOBUF_FIELD_OFFSET(::dmi::ModifiableComponent, admin_state_),
   offsetof(::dmi::ModifiableComponentDefaultTypeInternal, port_attr_),
+  offsetof(::dmi::ModifiableComponentDefaultTypeInternal, trx_attr_),
   PROTOBUF_FIELD_OFFSET(::dmi::ModifiableComponent, specific_),
 };
 static const ::google::protobuf::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
@@ -482,13 +511,14 @@
   { 29, -1, sizeof(::dmi::ComponentSensorData)},
   { 43, -1, sizeof(::dmi::PortComponentAttributes)},
   { 55, -1, sizeof(::dmi::PortComponentChangeAttributes)},
-  { 61, -1, sizeof(::dmi::PonIdConfig)},
-  { 68, -1, sizeof(::dmi::ContainerComponentAttributes)},
-  { 74, -1, sizeof(::dmi::PsuComponentAttributes)},
-  { 80, -1, sizeof(::dmi::TransceiverComponentsAttributes)},
-  { 92, -1, sizeof(::dmi::Component)},
-  { 122, -1, sizeof(::dmi::Hardware)},
-  { 130, -1, sizeof(::dmi::ModifiableComponent)},
+  { 61, -1, sizeof(::dmi::TransceiverComponentChangeAttributes)},
+  { 67, -1, sizeof(::dmi::PonIdConfig)},
+  { 74, -1, sizeof(::dmi::ContainerComponentAttributes)},
+  { 80, -1, sizeof(::dmi::PsuComponentAttributes)},
+  { 86, -1, sizeof(::dmi::TransceiverComponentsAttributes)},
+  { 98, -1, sizeof(::dmi::Component)},
+  { 128, -1, sizeof(::dmi::Hardware)},
+  { 136, -1, sizeof(::dmi::ModifiableComponent)},
 };
 
 static ::google::protobuf::Message const * const file_default_instances[] = {
@@ -499,6 +529,7 @@
   reinterpret_cast<const ::google::protobuf::Message*>(&::dmi::_ComponentSensorData_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::dmi::_PortComponentAttributes_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::dmi::_PortComponentChangeAttributes_default_instance_),
+  reinterpret_cast<const ::google::protobuf::Message*>(&::dmi::_TransceiverComponentChangeAttributes_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::dmi::_PonIdConfig_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::dmi::_ContainerComponentAttributes_default_instance_),
   reinterpret_cast<const ::google::protobuf::Message*>(&::dmi::_PsuComponentAttributes_default_instance_),
@@ -511,7 +542,7 @@
 ::google::protobuf::internal::AssignDescriptorsTable assign_descriptors_table_dmi_2fhw_2eproto = {
   {}, AddDescriptors_dmi_2fhw_2eproto, "dmi/hw.proto", schemas,
   file_default_instances, TableStruct_dmi_2fhw_2eproto::offsets,
-  file_level_metadata_dmi_2fhw_2eproto, 14, file_level_enum_descriptors_dmi_2fhw_2eproto, file_level_service_descriptors_dmi_2fhw_2eproto,
+  file_level_metadata_dmi_2fhw_2eproto, 15, file_level_enum_descriptors_dmi_2fhw_2eproto, file_level_service_descriptors_dmi_2fhw_2eproto,
 };
 
 const char descriptor_table_protodef_dmi_2fhw_2eproto[] =
@@ -553,126 +584,130 @@
   "PON\020\003\022\n\n\006XGSPON\020\004\022\t\n\005GFAST\020\005\022\n\n\006SERIAL\020\006"
   "\022\010\n\004EPON\020\007\022\010\n\004BITS\020\010\"H\n\035PortComponentCha"
   "ngeAttributes\022\'\n\rpon_id_config\030\001 \001(\0132\020.d"
-  "mi.PonIdConfig\"B\n\013PonIdConfig\022\016\n\006pon_id\030"
-  "\001 \001(\014\022#\n\033pon_id_transmit_periodicity\030\002 \001"
-  "(\r\"6\n\034ContainerComponentAttributes\022\026\n\016ph"
-  "ysical_label\030\001 \001(\t\"\263\001\n\026PsuComponentAttri"
-  "butes\022G\n\021supported_voltage\030\001 \001(\0162,.dmi.P"
-  "suComponentAttributes.SupportedVoltage\"P"
-  "\n\020SupportedVoltage\022\037\n\033SUPPORTED_VOLTAGE_"
-  "UNDEFINED\020\000\022\007\n\003V48\020\001\022\010\n\004V230\020\002\022\010\n\004V115\020\003"
-  "\"\357\004\n\037TransceiverComponentsAttributes\022D\n\013"
-  "form_factor\030\001 \001(\0162/.dmi.TransceiverCompo"
-  "nentsAttributes.FormFactor\022=\n\ntrans_type"
-  "\030\002 \001(\0162).dmi.TransceiverComponentsAttrib"
-  "utes.Type\022\024\n\014max_distance\030\003 \001(\r\022+\n\022max_d"
-  "istance_scale\030\004 \001(\0162\017.dmi.ValueScale\022\025\n\r"
-  "rx_wavelength\030\005 \003(\r\022\025\n\rtx_wavelength\030\006 \003"
-  "(\r\022)\n\020wavelength_scale\030\007 \001(\0162\017.dmi.Value"
-  "Scale\"\300\001\n\nFormFactor\022\027\n\023FORM_FACTOR_UNKN"
-  "OWN\020\000\022\010\n\004QSFP\020\001\022\r\n\tQSFP_PLUS\020\002\022\n\n\006QSFP28"
-  "\020\003\022\007\n\003SFP\020\004\022\014\n\010SFP_PLUS\020\005\022\007\n\003XFP\020\006\022\010\n\004CF"
-  "P4\020\007\022\010\n\004CFP2\020\010\022\010\n\004CPAK\020\t\022\006\n\002X2\020\n\022\t\n\005OTHE"
-  "R\020\013\022\007\n\003CFP\020\014\022\014\n\010CFP2_ACO\020\r\022\014\n\010CFP2_DCO\020\016"
-  "\"h\n\004Type\022\020\n\014TYPE_UNKNOWN\020\000\022\014\n\010ETHERNET\020\001"
-  "\022\010\n\004GPON\020\002\022\t\n\005XGPON\020\003\022\n\n\006XGSPON\020\004\022\010\n\004CPO"
-  "N\020\005\022\013\n\007NG_PON2\020\006\022\010\n\004EPON\020\007\"\350\005\n\tComponent"
-  "\022\014\n\004name\030\001 \001(\t\022!\n\005class\030\002 \001(\0162\022.dmi.Comp"
-  "onentType\022\023\n\013description\030\003 \001(\t\022\016\n\006parent"
-  "\030\004 \001(\t\022\026\n\016parent_rel_pos\030\005 \001(\005\022 \n\010childr"
-  "en\030\006 \003(\0132\016.dmi.Component\022\024\n\014hardware_rev"
-  "\030\007 \001(\t\022\024\n\014firmware_rev\030\010 \001(\t\022\024\n\014software"
-  "_rev\030\t \001(\t\022\022\n\nserial_num\030\n \001(\t\022\020\n\010mfg_na"
-  "me\030\013 \001(\t\022\022\n\nmodel_name\030\014 \001(\t\022\r\n\005alias\030\r "
-  "\001(\t\022\020\n\010asset_id\030\016 \001(\t\022\016\n\006is_fru\030\017 \001(\010\022,\n"
-  "\010mfg_date\030\020 \001(\0132\032.google.protobuf.Timest"
-  "amp\022\025\n\003uri\030\021 \001(\0132\010.dmi.Uri\022\027\n\004uuid\030\022 \001(\013"
-  "2\t.dmi.Uuid\022\"\n\005state\030\023 \001(\0132\023.dmi.Compone"
-  "ntState\022-\n\013sensor_data\030\024 \003(\0132\030.dmi.Compo"
-  "nentSensorData\0221\n\tport_attr\0302 \001(\0132\034.dmi."
-  "PortComponentAttributesH\000\022;\n\016container_a"
-  "ttr\0303 \001(\0132!.dmi.ContainerComponentAttrib"
-  "utesH\000\022/\n\010psu_attr\0304 \001(\0132\033.dmi.PsuCompon"
-  "entAttributesH\000\022@\n\020transceiver_attr\0305 \001("
-  "\0132$.dmi.TransceiverComponentsAttributesH"
-  "\000B\n\n\010specific\"\212\001\n\010Hardware\022/\n\013last_chang"
-  "e\030\001 \001(\0132\032.google.protobuf.Timestamp\022\034\n\004r"
-  "oot\030\002 \001(\0132\016.dmi.Component\022/\n\013last_booted"
-  "\030\003 \001(\0132\032.google.protobuf.Timestamp\"\252\002\n\023M"
-  "odifiableComponent\022\014\n\004name\030\001 \001(\t\022!\n\005clas"
-  "s\030\002 \001(\0162\022.dmi.ComponentType\022\036\n\006parent\030\003 "
-  "\001(\0132\016.dmi.Component\022\026\n\016parent_rel_pos\030\004 "
-  "\001(\005\022\r\n\005alias\030\005 \001(\t\022\020\n\010asset_id\030\006 \001(\t\022\025\n\003"
-  "uri\030\007 \001(\0132\010.dmi.Uri\022-\n\013admin_state\030\010 \001(\016"
-  "2\030.dmi.ComponentAdminState\0227\n\tport_attr\030"
-  "2 \001(\0132\".dmi.PortComponentChangeAttribute"
-  "sH\000B\n\n\010specific*\264\003\n\rComponentType\022\034\n\030COM"
-  "PONENT_TYPE_UNDEFINED\020\000\022\032\n\026COMPONENT_TYP"
-  "E_UNKNOWN\020\001\022\032\n\026COMPONENT_TYPE_CHASSIS\020\002\022"
-  "\034\n\030COMPONENT_TYPE_BACKPLANE\020\003\022\034\n\030COMPONE"
-  "NT_TYPE_CONTAINER\020\004\022\037\n\033COMPONENT_TYPE_PO"
-  "WER_SUPPLY\020\005\022\026\n\022COMPONENT_TYPE_FAN\020\006\022\031\n\025"
-  "COMPONENT_TYPE_SENSOR\020\007\022\031\n\025COMPONENT_TYP"
-  "E_MODULE\020\010\022\027\n\023COMPONENT_TYPE_PORT\020\t\022\026\n\022C"
-  "OMPONENT_TYPE_CPU\020\n\022\032\n\026COMPONENT_TYPE_BA"
-  "TTERY\020\013\022\032\n\026COMPONENT_TYPE_STORAGE\020\014\022\031\n\025C"
-  "OMPONENT_TYPE_MEMORY\020\r\022\036\n\032COMPONENT_TYPE"
-  "_TRANSCEIVER\020\016*\263\001\n\023ComponentAdminState\022\036"
-  "\n\032COMP_ADMIN_STATE_UNDEFINED\020\000\022\034\n\030COMP_A"
-  "DMIN_STATE_UNKNOWN\020\001\022\033\n\027COMP_ADMIN_STATE"
-  "_LOCKED\020\002\022\"\n\036COMP_ADMIN_STATE_SHUTTING_D"
-  "OWN\020\003\022\035\n\031COMP_ADMIN_STATE_UNLOCKED\020\004*\250\001\n"
-  "\022ComponentOperState\022\035\n\031COMP_OPER_STATE_U"
-  "NDEFINED\020\000\022\033\n\027COMP_OPER_STATE_UNKNOWN\020\001\022"
-  "\034\n\030COMP_OPER_STATE_DISABLED\020\002\022\033\n\027COMP_OP"
-  "ER_STATE_ENABLED\020\003\022\033\n\027COMP_OPER_STATE_TE"
-  "STING\020\004*\246\001\n\023ComponentUsageState\022\036\n\032COMP_"
-  "USAGE_STATE_UNDEFINED\020\000\022\034\n\030COMP_USAGE_ST"
-  "ATE_UNKNOWN\020\001\022\031\n\025COMP_USAGE_STATE_IDLE\020\002"
-  "\022\033\n\027COMP_USAGE_STATE_ACTIVE\020\003\022\031\n\025COMP_US"
-  "AGE_STATE_BUSY\020\004*\217\002\n\023ComponentAlarmState"
-  "\022\036\n\032COMP_ALARM_STATE_UNDEFINED\020\000\022\034\n\030COMP"
-  "_ALARM_STATE_UNKNOWN\020\001\022!\n\035COMP_ALARM_STA"
-  "TE_UNDER_REPAIR\020\002\022\035\n\031COMP_ALARM_STATE_CR"
-  "ITICAL\020\003\022\032\n\026COMP_ALARM_STATE_MAJOR\020\004\022\032\n\026"
-  "COMP_ALARM_STATE_MINOR\020\005\022\034\n\030COMP_ALARM_S"
-  "TATE_WARNING\020\006\022\"\n\036COMP_ALARM_STATE_INDET"
-  "ERMINATE\020\007*\274\001\n\025ComponentStandbyState\022 \n\034"
-  "COMP_STANDBY_STATE_UNDEFINED\020\000\022\036\n\032COMP_S"
-  "TANDBY_STATE_UNKNOWN\020\001\022\032\n\026COMP_STANDBY_S"
-  "TATE_HOT\020\002\022\033\n\027COMP_STANDBY_STATE_COLD\020\003\022"
-  "(\n$COMP_STANDBY_STATE_PROVIDING_SERVICE\020"
-  "\004*\211\003\n\rDataValueType\022\030\n\024VALUE_TYPE_UNDEFI"
-  "NED\020\000\022\024\n\020VALUE_TYPE_OTHER\020\001\022\026\n\022VALUE_TYP"
-  "E_UNKNOWN\020\002\022\027\n\023VALUE_TYPE_VOLTS_AC\020\003\022\027\n\023"
-  "VALUE_TYPE_VOLTS_DC\020\004\022\026\n\022VALUE_TYPE_AMPE"
-  "RES\020\005\022\024\n\020VALUE_TYPE_WATTS\020\006\022\024\n\020VALUE_TYP"
-  "E_HERTZ\020\007\022\026\n\022VALUE_TYPE_CELSIUS\020\010\022\031\n\025VAL"
-  "UE_TYPE_PERCENT_RH\020\t\022\022\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\021VALU"
-  "E_TYPE_METERS\020\016\022\024\n\020VALUE_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_ZE"
-  "PTO\020\002\022\024\n\020VALUE_SCALE_ATTO\020\003\022\025\n\021VALUE_SCA"
-  "LE_FEMTO\020\004\022\024\n\020VALUE_SCALE_PICO\020\005\022\024\n\020VALU"
-  "E_SCALE_NANO\020\006\022\025\n\021VALUE_SCALE_MICRO\020\007\022\025\n"
-  "\021VALUE_SCALE_MILLI\020\010\022\025\n\021VALUE_SCALE_UNIT"
-  "S\020\t\022\024\n\020VALUE_SCALE_KILO\020\n\022\024\n\020VALUE_SCALE"
-  "_MEGA\020\013\022\024\n\020VALUE_SCALE_GIGA\020\014\022\024\n\020VALUE_S"
-  "CALE_TERA\020\r\022\024\n\020VALUE_SCALE_PETA\020\016\022\023\n\017VAL"
-  "UE_SCALE_EXA\020\017\022\025\n\021VALUE_SCALE_ZETTA\020\020\022\025\n"
-  "\021VALUE_SCALE_YOTTA\020\021*\202\001\n\014SensorStatus\022\033\n"
-  "\027SENSOR_STATUS_UNDEFINED\020\000\022\024\n\020SENSOR_STA"
-  "TUS_OK\020\001\022\035\n\031SENSOR_STATUS_UNAVAILABLE\020\002\022"
-  " \n\034SENSOR_STATUS_NONOPERATIONAL\020\003B;Z9git"
-  "hub.com/opencord/device-management-inter"
-  "face/v3/go/dmib\006proto3"
+  "mi.PonIdConfig\"P\n$TransceiverComponentCh"
+  "angeAttributes\022(\n\ntrans_type\030\001 \001(\0162\024.dmi"
+  ".TransceiverType\"B\n\013PonIdConfig\022\016\n\006pon_i"
+  "d\030\001 \001(\014\022#\n\033pon_id_transmit_periodicity\030\002"
+  " \001(\r\"6\n\034ContainerComponentAttributes\022\026\n\016"
+  "physical_label\030\001 \001(\t\"\263\001\n\026PsuComponentAtt"
+  "ributes\022G\n\021supported_voltage\030\001 \001(\0162,.dmi"
+  ".PsuComponentAttributes.SupportedVoltage"
+  "\"P\n\020SupportedVoltage\022\037\n\033SUPPORTED_VOLTAG"
+  "E_UNDEFINED\020\000\022\007\n\003V48\020\001\022\010\n\004V230\020\002\022\010\n\004V115"
+  "\020\003\"\360\003\n\037TransceiverComponentsAttributes\022D"
+  "\n\013form_factor\030\001 \001(\0162/.dmi.TransceiverCom"
+  "ponentsAttributes.FormFactor\022(\n\ntrans_ty"
+  "pe\030\002 \001(\0162\024.dmi.TransceiverType\022\024\n\014max_di"
+  "stance\030\003 \001(\r\022+\n\022max_distance_scale\030\004 \001(\016"
+  "2\017.dmi.ValueScale\022\025\n\rrx_wavelength\030\005 \003(\r"
+  "\022\025\n\rtx_wavelength\030\006 \003(\r\022)\n\020wavelength_sc"
+  "ale\030\007 \001(\0162\017.dmi.ValueScale\"\300\001\n\nFormFacto"
+  "r\022\027\n\023FORM_FACTOR_UNKNOWN\020\000\022\010\n\004QSFP\020\001\022\r\n\t"
+  "QSFP_PLUS\020\002\022\n\n\006QSFP28\020\003\022\007\n\003SFP\020\004\022\014\n\010SFP_"
+  "PLUS\020\005\022\007\n\003XFP\020\006\022\010\n\004CFP4\020\007\022\010\n\004CFP2\020\010\022\010\n\004C"
+  "PAK\020\t\022\006\n\002X2\020\n\022\t\n\005OTHER\020\013\022\007\n\003CFP\020\014\022\014\n\010CFP"
+  "2_ACO\020\r\022\014\n\010CFP2_DCO\020\016\"\350\005\n\tComponent\022\014\n\004n"
+  "ame\030\001 \001(\t\022!\n\005class\030\002 \001(\0162\022.dmi.Component"
+  "Type\022\023\n\013description\030\003 \001(\t\022\016\n\006parent\030\004 \001("
+  "\t\022\026\n\016parent_rel_pos\030\005 \001(\005\022 \n\010children\030\006 "
+  "\003(\0132\016.dmi.Component\022\024\n\014hardware_rev\030\007 \001("
+  "\t\022\024\n\014firmware_rev\030\010 \001(\t\022\024\n\014software_rev\030"
+  "\t \001(\t\022\022\n\nserial_num\030\n \001(\t\022\020\n\010mfg_name\030\013 "
+  "\001(\t\022\022\n\nmodel_name\030\014 \001(\t\022\r\n\005alias\030\r \001(\t\022\020"
+  "\n\010asset_id\030\016 \001(\t\022\016\n\006is_fru\030\017 \001(\010\022,\n\010mfg_"
+  "date\030\020 \001(\0132\032.google.protobuf.Timestamp\022\025"
+  "\n\003uri\030\021 \001(\0132\010.dmi.Uri\022\027\n\004uuid\030\022 \001(\0132\t.dm"
+  "i.Uuid\022\"\n\005state\030\023 \001(\0132\023.dmi.ComponentSta"
+  "te\022-\n\013sensor_data\030\024 \003(\0132\030.dmi.ComponentS"
+  "ensorData\0221\n\tport_attr\0302 \001(\0132\034.dmi.PortC"
+  "omponentAttributesH\000\022;\n\016container_attr\0303"
+  " \001(\0132!.dmi.ContainerComponentAttributesH"
+  "\000\022/\n\010psu_attr\0304 \001(\0132\033.dmi.PsuComponentAt"
+  "tributesH\000\022@\n\020transceiver_attr\0305 \001(\0132$.d"
+  "mi.TransceiverComponentsAttributesH\000B\n\n\010"
+  "specific\"\212\001\n\010Hardware\022/\n\013last_change\030\001 \001"
+  "(\0132\032.google.protobuf.Timestamp\022\034\n\004root\030\002"
+  " \001(\0132\016.dmi.Component\022/\n\013last_booted\030\003 \001("
+  "\0132\032.google.protobuf.Timestamp\"\351\002\n\023Modifi"
+  "ableComponent\022\014\n\004name\030\001 \001(\t\022!\n\005class\030\002 \001"
+  "(\0162\022.dmi.ComponentType\022\036\n\006parent\030\003 \001(\0132\016"
+  ".dmi.Component\022\026\n\016parent_rel_pos\030\004 \001(\005\022\r"
+  "\n\005alias\030\005 \001(\t\022\020\n\010asset_id\030\006 \001(\t\022\025\n\003uri\030\007"
+  " \001(\0132\010.dmi.Uri\022-\n\013admin_state\030\010 \001(\0162\030.dm"
+  "i.ComponentAdminState\0227\n\tport_attr\0302 \001(\013"
+  "2\".dmi.PortComponentChangeAttributesH\000\022="
+  "\n\010trx_attr\0303 \001(\0132).dmi.TransceiverCompon"
+  "entChangeAttributesH\000B\n\n\010specific*\264\003\n\rCo"
+  "mponentType\022\034\n\030COMPONENT_TYPE_UNDEFINED\020"
+  "\000\022\032\n\026COMPONENT_TYPE_UNKNOWN\020\001\022\032\n\026COMPONE"
+  "NT_TYPE_CHASSIS\020\002\022\034\n\030COMPONENT_TYPE_BACK"
+  "PLANE\020\003\022\034\n\030COMPONENT_TYPE_CONTAINER\020\004\022\037\n"
+  "\033COMPONENT_TYPE_POWER_SUPPLY\020\005\022\026\n\022COMPON"
+  "ENT_TYPE_FAN\020\006\022\031\n\025COMPONENT_TYPE_SENSOR\020"
+  "\007\022\031\n\025COMPONENT_TYPE_MODULE\020\010\022\027\n\023COMPONEN"
+  "T_TYPE_PORT\020\t\022\026\n\022COMPONENT_TYPE_CPU\020\n\022\032\n"
+  "\026COMPONENT_TYPE_BATTERY\020\013\022\032\n\026COMPONENT_T"
+  "YPE_STORAGE\020\014\022\031\n\025COMPONENT_TYPE_MEMORY\020\r"
+  "\022\036\n\032COMPONENT_TYPE_TRANSCEIVER\020\016*\263\001\n\023Com"
+  "ponentAdminState\022\036\n\032COMP_ADMIN_STATE_UND"
+  "EFINED\020\000\022\034\n\030COMP_ADMIN_STATE_UNKNOWN\020\001\022\033"
+  "\n\027COMP_ADMIN_STATE_LOCKED\020\002\022\"\n\036COMP_ADMI"
+  "N_STATE_SHUTTING_DOWN\020\003\022\035\n\031COMP_ADMIN_ST"
+  "ATE_UNLOCKED\020\004*\250\001\n\022ComponentOperState\022\035\n"
+  "\031COMP_OPER_STATE_UNDEFINED\020\000\022\033\n\027COMP_OPE"
+  "R_STATE_UNKNOWN\020\001\022\034\n\030COMP_OPER_STATE_DIS"
+  "ABLED\020\002\022\033\n\027COMP_OPER_STATE_ENABLED\020\003\022\033\n\027"
+  "COMP_OPER_STATE_TESTING\020\004*\246\001\n\023ComponentU"
+  "sageState\022\036\n\032COMP_USAGE_STATE_UNDEFINED\020"
+  "\000\022\034\n\030COMP_USAGE_STATE_UNKNOWN\020\001\022\031\n\025COMP_"
+  "USAGE_STATE_IDLE\020\002\022\033\n\027COMP_USAGE_STATE_A"
+  "CTIVE\020\003\022\031\n\025COMP_USAGE_STATE_BUSY\020\004*\217\002\n\023C"
+  "omponentAlarmState\022\036\n\032COMP_ALARM_STATE_U"
+  "NDEFINED\020\000\022\034\n\030COMP_ALARM_STATE_UNKNOWN\020\001"
+  "\022!\n\035COMP_ALARM_STATE_UNDER_REPAIR\020\002\022\035\n\031C"
+  "OMP_ALARM_STATE_CRITICAL\020\003\022\032\n\026COMP_ALARM"
+  "_STATE_MAJOR\020\004\022\032\n\026COMP_ALARM_STATE_MINOR"
+  "\020\005\022\034\n\030COMP_ALARM_STATE_WARNING\020\006\022\"\n\036COMP"
+  "_ALARM_STATE_INDETERMINATE\020\007*\274\001\n\025Compone"
+  "ntStandbyState\022 \n\034COMP_STANDBY_STATE_UND"
+  "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"
+  "\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"
+  "\026\n\022VALUE_TYPE_AMPERES\020\005\022\024\n\020VALUE_TYPE_WA"
+  "TTS\020\006\022\024\n\020VALUE_TYPE_HERTZ\020\007\022\026\n\022VALUE_TYP"
+  "E_CELSIUS\020\010\022\031\n\025VALUE_TYPE_PERCENT_RH\020\t\022\022"
+  "\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*\215\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\026\n\021TYPE_NOT_DETECTED\020\377\001B;Z9g"
+  "ithub.com/opencord/device-management-int"
+  "erface/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, 6102,
+  "dmi/hw.proto", &assign_descriptors_table_dmi_2fhw_2eproto, 6264,
 };
 
 void AddDescriptors_dmi_2fhw_2eproto() {
@@ -859,42 +894,9 @@
 const TransceiverComponentsAttributes_FormFactor TransceiverComponentsAttributes::FormFactor_MAX;
 const int TransceiverComponentsAttributes::FormFactor_ARRAYSIZE;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
-const ::google::protobuf::EnumDescriptor* TransceiverComponentsAttributes_Type_descriptor() {
-  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[5];
-}
-bool TransceiverComponentsAttributes_Type_IsValid(int value) {
-  switch (value) {
-    case 0:
-    case 1:
-    case 2:
-    case 3:
-    case 4:
-    case 5:
-    case 6:
-    case 7:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#if !defined(_MSC_VER) || _MSC_VER >= 1900
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::TYPE_UNKNOWN;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::ETHERNET;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::GPON;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::XGPON;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::XGSPON;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::CPON;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::NG_PON2;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::EPON;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::Type_MIN;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::Type_MAX;
-const int TransceiverComponentsAttributes::Type_ARRAYSIZE;
-#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 const ::google::protobuf::EnumDescriptor* ComponentType_descriptor() {
   ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[6];
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[5];
 }
 bool ComponentType_IsValid(int value) {
   switch (value) {
@@ -921,7 +923,7 @@
 
 const ::google::protobuf::EnumDescriptor* ComponentAdminState_descriptor() {
   ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[7];
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[6];
 }
 bool ComponentAdminState_IsValid(int value) {
   switch (value) {
@@ -938,7 +940,7 @@
 
 const ::google::protobuf::EnumDescriptor* ComponentOperState_descriptor() {
   ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[8];
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[7];
 }
 bool ComponentOperState_IsValid(int value) {
   switch (value) {
@@ -955,7 +957,7 @@
 
 const ::google::protobuf::EnumDescriptor* ComponentUsageState_descriptor() {
   ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[9];
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[8];
 }
 bool ComponentUsageState_IsValid(int value) {
   switch (value) {
@@ -972,7 +974,7 @@
 
 const ::google::protobuf::EnumDescriptor* ComponentAlarmState_descriptor() {
   ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[10];
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[9];
 }
 bool ComponentAlarmState_IsValid(int value) {
   switch (value) {
@@ -992,7 +994,7 @@
 
 const ::google::protobuf::EnumDescriptor* ComponentStandbyState_descriptor() {
   ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[11];
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[10];
 }
 bool ComponentStandbyState_IsValid(int value) {
   switch (value) {
@@ -1009,7 +1011,7 @@
 
 const ::google::protobuf::EnumDescriptor* DataValueType_descriptor() {
   ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[12];
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[11];
 }
 bool DataValueType_IsValid(int value) {
   switch (value) {
@@ -1037,7 +1039,7 @@
 
 const ::google::protobuf::EnumDescriptor* ValueScale_descriptor() {
   ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[13];
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[12];
 }
 bool ValueScale_IsValid(int value) {
   switch (value) {
@@ -1067,7 +1069,7 @@
 
 const ::google::protobuf::EnumDescriptor* SensorStatus_descriptor() {
   ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
-  return file_level_enum_descriptors_dmi_2fhw_2eproto[14];
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[13];
 }
 bool SensorStatus_IsValid(int value) {
   switch (value) {
@@ -1081,6 +1083,27 @@
   }
 }
 
+const ::google::protobuf::EnumDescriptor* TransceiverType_descriptor() {
+  ::google::protobuf::internal::AssignDescriptors(&assign_descriptors_table_dmi_2fhw_2eproto);
+  return file_level_enum_descriptors_dmi_2fhw_2eproto[14];
+}
+bool TransceiverType_IsValid(int value) {
+  switch (value) {
+    case 0:
+    case 1:
+    case 2:
+    case 3:
+    case 4:
+    case 5:
+    case 6:
+    case 7:
+    case 255:
+      return true;
+    default:
+      return false;
+  }
+}
+
 
 // ===================================================================
 
@@ -4110,6 +4133,269 @@
 
 // ===================================================================
 
+void TransceiverComponentChangeAttributes::InitAsDefaultInstance() {
+}
+class TransceiverComponentChangeAttributes::HasBitSetters {
+ public:
+};
+
+#if !defined(_MSC_VER) || _MSC_VER >= 1900
+const int TransceiverComponentChangeAttributes::kTransTypeFieldNumber;
+#endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
+
+TransceiverComponentChangeAttributes::TransceiverComponentChangeAttributes()
+  : ::google::protobuf::Message(), _internal_metadata_(nullptr) {
+  SharedCtor();
+  // @@protoc_insertion_point(constructor:dmi.TransceiverComponentChangeAttributes)
+}
+TransceiverComponentChangeAttributes::TransceiverComponentChangeAttributes(const TransceiverComponentChangeAttributes& from)
+  : ::google::protobuf::Message(),
+      _internal_metadata_(nullptr) {
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  trans_type_ = from.trans_type_;
+  // @@protoc_insertion_point(copy_constructor:dmi.TransceiverComponentChangeAttributes)
+}
+
+void TransceiverComponentChangeAttributes::SharedCtor() {
+  trans_type_ = 0;
+}
+
+TransceiverComponentChangeAttributes::~TransceiverComponentChangeAttributes() {
+  // @@protoc_insertion_point(destructor:dmi.TransceiverComponentChangeAttributes)
+  SharedDtor();
+}
+
+void TransceiverComponentChangeAttributes::SharedDtor() {
+}
+
+void TransceiverComponentChangeAttributes::SetCachedSize(int size) const {
+  _cached_size_.Set(size);
+}
+const TransceiverComponentChangeAttributes& TransceiverComponentChangeAttributes::default_instance() {
+  ::google::protobuf::internal::InitSCC(&::scc_info_TransceiverComponentChangeAttributes_dmi_2fhw_2eproto.base);
+  return *internal_default_instance();
+}
+
+
+void TransceiverComponentChangeAttributes::Clear() {
+// @@protoc_insertion_point(message_clear_start:dmi.TransceiverComponentChangeAttributes)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  trans_type_ = 0;
+  _internal_metadata_.Clear();
+}
+
+#if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
+const char* TransceiverComponentChangeAttributes::_InternalParse(const char* begin, const char* end, void* object,
+                  ::google::protobuf::internal::ParseContext* ctx) {
+  auto msg = static_cast<TransceiverComponentChangeAttributes*>(object);
+  ::google::protobuf::int32 size; (void)size;
+  int depth; (void)depth;
+  ::google::protobuf::uint32 tag;
+  ::google::protobuf::internal::ParseFunc parser_till_end; (void)parser_till_end;
+  auto ptr = begin;
+  while (ptr < end) {
+    ptr = ::google::protobuf::io::Parse32(ptr, &tag);
+    GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
+    switch (tag >> 3) {
+      // .dmi.TransceiverType trans_type = 1;
+      case 1: {
+        if (static_cast<::google::protobuf::uint8>(tag) != 8) goto handle_unusual;
+        ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
+        msg->set_trans_type(static_cast<::dmi::TransceiverType>(val));
+        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
+        break;
+      }
+      default: {
+      handle_unusual:
+        if ((tag & 7) == 4 || tag == 0) {
+          ctx->EndGroup(tag);
+          return ptr;
+        }
+        auto res = UnknownFieldParse(tag, {_InternalParse, msg},
+          ptr, end, msg->_internal_metadata_.mutable_unknown_fields(), ctx);
+        ptr = res.first;
+        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr != nullptr);
+        if (res.second) return ptr;
+      }
+    }  // switch
+  }  // while
+  return ptr;
+}
+#else  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
+bool TransceiverComponentChangeAttributes::MergePartialFromCodedStream(
+    ::google::protobuf::io::CodedInputStream* input) {
+#define DO_(EXPRESSION) if (!PROTOBUF_PREDICT_TRUE(EXPRESSION)) goto failure
+  ::google::protobuf::uint32 tag;
+  // @@protoc_insertion_point(parse_start:dmi.TransceiverComponentChangeAttributes)
+  for (;;) {
+    ::std::pair<::google::protobuf::uint32, bool> p = input->ReadTagWithCutoffNoLastTag(127u);
+    tag = p.first;
+    if (!p.second) goto handle_unusual;
+    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
+      // .dmi.TransceiverType trans_type = 1;
+      case 1: {
+        if (static_cast< ::google::protobuf::uint8>(tag) == (8 & 0xFF)) {
+          int value = 0;
+          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
+                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
+                 input, &value)));
+          set_trans_type(static_cast< ::dmi::TransceiverType >(value));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
+      default: {
+      handle_unusual:
+        if (tag == 0) {
+          goto success;
+        }
+        DO_(::google::protobuf::internal::WireFormat::SkipField(
+              input, tag, _internal_metadata_.mutable_unknown_fields()));
+        break;
+      }
+    }
+  }
+success:
+  // @@protoc_insertion_point(parse_success:dmi.TransceiverComponentChangeAttributes)
+  return true;
+failure:
+  // @@protoc_insertion_point(parse_failure:dmi.TransceiverComponentChangeAttributes)
+  return false;
+#undef DO_
+}
+#endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
+
+void TransceiverComponentChangeAttributes::SerializeWithCachedSizes(
+    ::google::protobuf::io::CodedOutputStream* output) const {
+  // @@protoc_insertion_point(serialize_start:dmi.TransceiverComponentChangeAttributes)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .dmi.TransceiverType trans_type = 1;
+  if (this->trans_type() != 0) {
+    ::google::protobuf::internal::WireFormatLite::WriteEnum(
+      1, this->trans_type(), output);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
+        _internal_metadata_.unknown_fields(), output);
+  }
+  // @@protoc_insertion_point(serialize_end:dmi.TransceiverComponentChangeAttributes)
+}
+
+::google::protobuf::uint8* TransceiverComponentChangeAttributes::InternalSerializeWithCachedSizesToArray(
+    ::google::protobuf::uint8* target) const {
+  // @@protoc_insertion_point(serialize_to_array_start:dmi.TransceiverComponentChangeAttributes)
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  // .dmi.TransceiverType trans_type = 1;
+  if (this->trans_type() != 0) {
+    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
+      1, this->trans_type(), target);
+  }
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
+        _internal_metadata_.unknown_fields(), target);
+  }
+  // @@protoc_insertion_point(serialize_to_array_end:dmi.TransceiverComponentChangeAttributes)
+  return target;
+}
+
+size_t TransceiverComponentChangeAttributes::ByteSizeLong() const {
+// @@protoc_insertion_point(message_byte_size_start:dmi.TransceiverComponentChangeAttributes)
+  size_t total_size = 0;
+
+  if (_internal_metadata_.have_unknown_fields()) {
+    total_size +=
+      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
+        _internal_metadata_.unknown_fields());
+  }
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  // Prevent compiler warnings about cached_has_bits being unused
+  (void) cached_has_bits;
+
+  // .dmi.TransceiverType trans_type = 1;
+  if (this->trans_type() != 0) {
+    total_size += 1 +
+      ::google::protobuf::internal::WireFormatLite::EnumSize(this->trans_type());
+  }
+
+  int cached_size = ::google::protobuf::internal::ToCachedSize(total_size);
+  SetCachedSize(cached_size);
+  return total_size;
+}
+
+void TransceiverComponentChangeAttributes::MergeFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_merge_from_start:dmi.TransceiverComponentChangeAttributes)
+  GOOGLE_DCHECK_NE(&from, this);
+  const TransceiverComponentChangeAttributes* source =
+      ::google::protobuf::DynamicCastToGenerated<TransceiverComponentChangeAttributes>(
+          &from);
+  if (source == nullptr) {
+  // @@protoc_insertion_point(generalized_merge_from_cast_fail:dmi.TransceiverComponentChangeAttributes)
+    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
+  } else {
+  // @@protoc_insertion_point(generalized_merge_from_cast_success:dmi.TransceiverComponentChangeAttributes)
+    MergeFrom(*source);
+  }
+}
+
+void TransceiverComponentChangeAttributes::MergeFrom(const TransceiverComponentChangeAttributes& from) {
+// @@protoc_insertion_point(class_specific_merge_from_start:dmi.TransceiverComponentChangeAttributes)
+  GOOGLE_DCHECK_NE(&from, this);
+  _internal_metadata_.MergeFrom(from._internal_metadata_);
+  ::google::protobuf::uint32 cached_has_bits = 0;
+  (void) cached_has_bits;
+
+  if (from.trans_type() != 0) {
+    set_trans_type(from.trans_type());
+  }
+}
+
+void TransceiverComponentChangeAttributes::CopyFrom(const ::google::protobuf::Message& from) {
+// @@protoc_insertion_point(generalized_copy_from_start:dmi.TransceiverComponentChangeAttributes)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+void TransceiverComponentChangeAttributes::CopyFrom(const TransceiverComponentChangeAttributes& from) {
+// @@protoc_insertion_point(class_specific_copy_from_start:dmi.TransceiverComponentChangeAttributes)
+  if (&from == this) return;
+  Clear();
+  MergeFrom(from);
+}
+
+bool TransceiverComponentChangeAttributes::IsInitialized() const {
+  return true;
+}
+
+void TransceiverComponentChangeAttributes::Swap(TransceiverComponentChangeAttributes* other) {
+  if (other == this) return;
+  InternalSwap(other);
+}
+void TransceiverComponentChangeAttributes::InternalSwap(TransceiverComponentChangeAttributes* other) {
+  using std::swap;
+  _internal_metadata_.Swap(&other->_internal_metadata_);
+  swap(trans_type_, other->trans_type_);
+}
+
+::google::protobuf::Metadata TransceiverComponentChangeAttributes::GetMetadata() const {
+  ::google::protobuf::internal::AssignDescriptors(&::assign_descriptors_table_dmi_2fhw_2eproto);
+  return ::file_level_metadata_dmi_2fhw_2eproto[kIndexInFileMessages];
+}
+
+
+// ===================================================================
+
 void PonIdConfig::InitAsDefaultInstance() {
 }
 class PonIdConfig::HasBitSetters {
@@ -5090,11 +5376,11 @@
         GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
         break;
       }
-      // .dmi.TransceiverComponentsAttributes.Type trans_type = 2;
+      // .dmi.TransceiverType trans_type = 2;
       case 2: {
         if (static_cast<::google::protobuf::uint8>(tag) != 16) goto handle_unusual;
         ::google::protobuf::uint64 val = ::google::protobuf::internal::ReadVarint(&ptr);
-        msg->set_trans_type(static_cast<::dmi::TransceiverComponentsAttributes_Type>(val));
+        msg->set_trans_type(static_cast<::dmi::TransceiverType>(val));
         GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
         break;
       }
@@ -5205,14 +5491,14 @@
         break;
       }
 
-      // .dmi.TransceiverComponentsAttributes.Type trans_type = 2;
+      // .dmi.TransceiverType trans_type = 2;
       case 2: {
         if (static_cast< ::google::protobuf::uint8>(tag) == (16 & 0xFF)) {
           int value = 0;
           DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
                    int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
                  input, &value)));
-          set_trans_type(static_cast< ::dmi::TransceiverComponentsAttributes_Type >(value));
+          set_trans_type(static_cast< ::dmi::TransceiverType >(value));
         } else {
           goto handle_unusual;
         }
@@ -5325,7 +5611,7 @@
       1, this->form_factor(), output);
   }
 
-  // .dmi.TransceiverComponentsAttributes.Type trans_type = 2;
+  // .dmi.TransceiverType trans_type = 2;
   if (this->trans_type() != 0) {
     ::google::protobuf::internal::WireFormatLite::WriteEnum(
       2, this->trans_type(), output);
@@ -5389,7 +5675,7 @@
       1, this->form_factor(), target);
   }
 
-  // .dmi.TransceiverComponentsAttributes.Type trans_type = 2;
+  // .dmi.TransceiverType trans_type = 2;
   if (this->trans_type() != 0) {
     target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
       2, this->trans_type(), target);
@@ -5495,7 +5781,7 @@
       ::google::protobuf::internal::WireFormatLite::EnumSize(this->form_factor());
   }
 
-  // .dmi.TransceiverComponentsAttributes.Type trans_type = 2;
+  // .dmi.TransceiverType trans_type = 2;
   if (this->trans_type() != 0) {
     total_size += 1 +
       ::google::protobuf::internal::WireFormatLite::EnumSize(this->trans_type());
@@ -7947,12 +8233,15 @@
       ::dmi::Uri::internal_default_instance());
   ::dmi::_ModifiableComponent_default_instance_.port_attr_ = const_cast< ::dmi::PortComponentChangeAttributes*>(
       ::dmi::PortComponentChangeAttributes::internal_default_instance());
+  ::dmi::_ModifiableComponent_default_instance_.trx_attr_ = const_cast< ::dmi::TransceiverComponentChangeAttributes*>(
+      ::dmi::TransceiverComponentChangeAttributes::internal_default_instance());
 }
 class ModifiableComponent::HasBitSetters {
  public:
   static const ::dmi::Component& parent(const ModifiableComponent* msg);
   static const ::dmi::Uri& uri(const ModifiableComponent* msg);
   static const ::dmi::PortComponentChangeAttributes& port_attr(const ModifiableComponent* msg);
+  static const ::dmi::TransceiverComponentChangeAttributes& trx_attr(const ModifiableComponent* msg);
 };
 
 const ::dmi::Component&
@@ -7967,6 +8256,10 @@
 ModifiableComponent::HasBitSetters::port_attr(const ModifiableComponent* msg) {
   return *msg->specific_.port_attr_;
 }
+const ::dmi::TransceiverComponentChangeAttributes&
+ModifiableComponent::HasBitSetters::trx_attr(const ModifiableComponent* msg) {
+  return *msg->specific_.trx_attr_;
+}
 void ModifiableComponent::set_allocated_port_attr(::dmi::PortComponentChangeAttributes* port_attr) {
   ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
   clear_specific();
@@ -7981,6 +8274,20 @@
   }
   // @@protoc_insertion_point(field_set_allocated:dmi.ModifiableComponent.port_attr)
 }
+void ModifiableComponent::set_allocated_trx_attr(::dmi::TransceiverComponentChangeAttributes* trx_attr) {
+  ::google::protobuf::Arena* message_arena = GetArenaNoVirtual();
+  clear_specific();
+  if (trx_attr) {
+    ::google::protobuf::Arena* submessage_arena = nullptr;
+    if (message_arena != submessage_arena) {
+      trx_attr = ::google::protobuf::internal::GetOwnedMessage(
+          message_arena, trx_attr, submessage_arena);
+    }
+    set_has_trx_attr();
+    specific_.trx_attr_ = trx_attr;
+  }
+  // @@protoc_insertion_point(field_set_allocated:dmi.ModifiableComponent.trx_attr)
+}
 #if !defined(_MSC_VER) || _MSC_VER >= 1900
 const int ModifiableComponent::kNameFieldNumber;
 const int ModifiableComponent::kClassFieldNumber;
@@ -7991,6 +8298,7 @@
 const int ModifiableComponent::kUriFieldNumber;
 const int ModifiableComponent::kAdminStateFieldNumber;
 const int ModifiableComponent::kPortAttrFieldNumber;
+const int ModifiableComponent::kTrxAttrFieldNumber;
 #endif  // !defined(_MSC_VER) || _MSC_VER >= 1900
 
 ModifiableComponent::ModifiableComponent()
@@ -8033,6 +8341,10 @@
       mutable_port_attr()->::dmi::PortComponentChangeAttributes::MergeFrom(from.port_attr());
       break;
     }
+    case kTrxAttr: {
+      mutable_trx_attr()->::dmi::TransceiverComponentChangeAttributes::MergeFrom(from.trx_attr());
+      break;
+    }
     case SPECIFIC_NOT_SET: {
       break;
     }
@@ -8084,6 +8396,10 @@
       delete specific_.port_attr_;
       break;
     }
+    case kTrxAttr: {
+      delete specific_.trx_attr_;
+      break;
+    }
     case SPECIFIC_NOT_SET: {
       break;
     }
@@ -8239,6 +8555,19 @@
             {parser_till_end, object}, ptr - size, ptr));
         break;
       }
+      // .dmi.TransceiverComponentChangeAttributes trx_attr = 51;
+      case 51: {
+        if (static_cast<::google::protobuf::uint8>(tag) != 154) goto handle_unusual;
+        ptr = ::google::protobuf::io::ReadSize(ptr, &size);
+        GOOGLE_PROTOBUF_PARSER_ASSERT(ptr);
+        parser_till_end = ::dmi::TransceiverComponentChangeAttributes::_InternalParse;
+        object = msg->mutable_trx_attr();
+        if (size > end - ptr) goto len_delim_till_end;
+        ptr += size;
+        GOOGLE_PROTOBUF_PARSER_ASSERT(ctx->ParseExactRange(
+            {parser_till_end, object}, ptr - size, ptr));
+        break;
+      }
       default: {
       handle_unusual:
         if ((tag & 7) == 4 || tag == 0) {
@@ -8392,6 +8721,17 @@
         break;
       }
 
+      // .dmi.TransceiverComponentChangeAttributes trx_attr = 51;
+      case 51: {
+        if (static_cast< ::google::protobuf::uint8>(tag) == (410 & 0xFF)) {
+          DO_(::google::protobuf::internal::WireFormatLite::ReadMessage(
+               input, mutable_trx_attr()));
+        } else {
+          goto handle_unusual;
+        }
+        break;
+      }
+
       default: {
       handle_unusual:
         if (tag == 0) {
@@ -8484,6 +8824,12 @@
       50, HasBitSetters::port_attr(this), output);
   }
 
+  // .dmi.TransceiverComponentChangeAttributes trx_attr = 51;
+  if (has_trx_attr()) {
+    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
+      51, HasBitSetters::trx_attr(this), output);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
         _internal_metadata_.unknown_fields(), output);
@@ -8568,6 +8914,13 @@
         50, HasBitSetters::port_attr(this), target);
   }
 
+  // .dmi.TransceiverComponentChangeAttributes trx_attr = 51;
+  if (has_trx_attr()) {
+    target = ::google::protobuf::internal::WireFormatLite::
+      InternalWriteMessageToArray(
+        51, HasBitSetters::trx_attr(this), target);
+  }
+
   if (_internal_metadata_.have_unknown_fields()) {
     target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
         _internal_metadata_.unknown_fields(), target);
@@ -8651,6 +9004,13 @@
           *specific_.port_attr_);
       break;
     }
+    // .dmi.TransceiverComponentChangeAttributes trx_attr = 51;
+    case kTrxAttr: {
+      total_size += 2 +
+        ::google::protobuf::internal::WireFormatLite::MessageSize(
+          *specific_.trx_attr_);
+      break;
+    }
     case SPECIFIC_NOT_SET: {
       break;
     }
@@ -8714,6 +9074,10 @@
       mutable_port_attr()->::dmi::PortComponentChangeAttributes::MergeFrom(from.port_attr());
       break;
     }
+    case kTrxAttr: {
+      mutable_trx_attr()->::dmi::TransceiverComponentChangeAttributes::MergeFrom(from.trx_attr());
+      break;
+    }
     case SPECIFIC_NOT_SET: {
       break;
     }
@@ -8791,6 +9155,9 @@
 template<> PROTOBUF_NOINLINE ::dmi::PortComponentChangeAttributes* Arena::CreateMaybeMessage< ::dmi::PortComponentChangeAttributes >(Arena* arena) {
   return Arena::CreateInternal< ::dmi::PortComponentChangeAttributes >(arena);
 }
+template<> PROTOBUF_NOINLINE ::dmi::TransceiverComponentChangeAttributes* Arena::CreateMaybeMessage< ::dmi::TransceiverComponentChangeAttributes >(Arena* arena) {
+  return Arena::CreateInternal< ::dmi::TransceiverComponentChangeAttributes >(arena);
+}
 template<> PROTOBUF_NOINLINE ::dmi::PonIdConfig* Arena::CreateMaybeMessage< ::dmi::PonIdConfig >(Arena* arena) {
   return Arena::CreateInternal< ::dmi::PonIdConfig >(arena);
 }
diff --git a/cpp/dmi/hw.pb.h b/cpp/dmi/hw.pb.h
index ebe9767..a28a8bb 100644
--- a/cpp/dmi/hw.pb.h
+++ b/cpp/dmi/hw.pb.h
@@ -43,7 +43,7 @@
     PROTOBUF_SECTION_VARIABLE(protodesc_cold);
   static const ::google::protobuf::internal::AuxillaryParseTableField aux[]
     PROTOBUF_SECTION_VARIABLE(protodesc_cold);
-  static const ::google::protobuf::internal::ParseTable schema[14]
+  static const ::google::protobuf::internal::ParseTable schema[15]
     PROTOBUF_SECTION_VARIABLE(protodesc_cold);
   static const ::google::protobuf::internal::FieldMetadata field_metadata[];
   static const ::google::protobuf::internal::SerializationTable serialization_table[];
@@ -84,6 +84,9 @@
 class PsuComponentAttributes;
 class PsuComponentAttributesDefaultTypeInternal;
 extern PsuComponentAttributesDefaultTypeInternal _PsuComponentAttributes_default_instance_;
+class TransceiverComponentChangeAttributes;
+class TransceiverComponentChangeAttributesDefaultTypeInternal;
+extern TransceiverComponentChangeAttributesDefaultTypeInternal _TransceiverComponentChangeAttributes_default_instance_;
 class TransceiverComponentsAttributes;
 class TransceiverComponentsAttributesDefaultTypeInternal;
 extern TransceiverComponentsAttributesDefaultTypeInternal _TransceiverComponentsAttributes_default_instance_;
@@ -107,6 +110,7 @@
 template<> ::dmi::PortComponentAttributes* Arena::CreateMaybeMessage<::dmi::PortComponentAttributes>(Arena*);
 template<> ::dmi::PortComponentChangeAttributes* Arena::CreateMaybeMessage<::dmi::PortComponentChangeAttributes>(Arena*);
 template<> ::dmi::PsuComponentAttributes* Arena::CreateMaybeMessage<::dmi::PsuComponentAttributes>(Arena*);
+template<> ::dmi::TransceiverComponentChangeAttributes* Arena::CreateMaybeMessage<::dmi::TransceiverComponentChangeAttributes>(Arena*);
 template<> ::dmi::TransceiverComponentsAttributes* Arena::CreateMaybeMessage<::dmi::TransceiverComponentsAttributes>(Arena*);
 template<> ::dmi::Uri* Arena::CreateMaybeMessage<::dmi::Uri>(Arena*);
 template<> ::dmi::Uuid* Arena::CreateMaybeMessage<::dmi::Uuid>(Arena*);
@@ -253,33 +257,6 @@
   return ::google::protobuf::internal::ParseNamedEnum<TransceiverComponentsAttributes_FormFactor>(
     TransceiverComponentsAttributes_FormFactor_descriptor(), name, value);
 }
-enum TransceiverComponentsAttributes_Type {
-  TransceiverComponentsAttributes_Type_TYPE_UNKNOWN = 0,
-  TransceiverComponentsAttributes_Type_ETHERNET = 1,
-  TransceiverComponentsAttributes_Type_GPON = 2,
-  TransceiverComponentsAttributes_Type_XGPON = 3,
-  TransceiverComponentsAttributes_Type_XGSPON = 4,
-  TransceiverComponentsAttributes_Type_CPON = 5,
-  TransceiverComponentsAttributes_Type_NG_PON2 = 6,
-  TransceiverComponentsAttributes_Type_EPON = 7,
-  TransceiverComponentsAttributes_Type_TransceiverComponentsAttributes_Type_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
-  TransceiverComponentsAttributes_Type_TransceiverComponentsAttributes_Type_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
-};
-bool TransceiverComponentsAttributes_Type_IsValid(int value);
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes_Type_Type_MIN = TransceiverComponentsAttributes_Type_TYPE_UNKNOWN;
-const TransceiverComponentsAttributes_Type TransceiverComponentsAttributes_Type_Type_MAX = TransceiverComponentsAttributes_Type_EPON;
-const int TransceiverComponentsAttributes_Type_Type_ARRAYSIZE = TransceiverComponentsAttributes_Type_Type_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* TransceiverComponentsAttributes_Type_descriptor();
-inline const ::std::string& TransceiverComponentsAttributes_Type_Name(TransceiverComponentsAttributes_Type value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    TransceiverComponentsAttributes_Type_descriptor(), value);
-}
-inline bool TransceiverComponentsAttributes_Type_Parse(
-    const ::std::string& name, TransceiverComponentsAttributes_Type* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<TransceiverComponentsAttributes_Type>(
-    TransceiverComponentsAttributes_Type_descriptor(), name, value);
-}
 enum ComponentType {
   COMPONENT_TYPE_UNDEFINED = 0,
   COMPONENT_TYPE_UNKNOWN = 1,
@@ -532,6 +509,34 @@
   return ::google::protobuf::internal::ParseNamedEnum<SensorStatus>(
     SensorStatus_descriptor(), name, value);
 }
+enum TransceiverType {
+  TYPE_UNDEFINED = 0,
+  ETHERNET = 1,
+  GPON = 2,
+  XGPON = 3,
+  XGSPON = 4,
+  CPON = 5,
+  NG_PON2 = 6,
+  EPON = 7,
+  TYPE_NOT_DETECTED = 255,
+  TransceiverType_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
+  TransceiverType_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
+};
+bool TransceiverType_IsValid(int value);
+const TransceiverType TransceiverType_MIN = TYPE_UNDEFINED;
+const TransceiverType TransceiverType_MAX = TYPE_NOT_DETECTED;
+const int TransceiverType_ARRAYSIZE = TransceiverType_MAX + 1;
+
+const ::google::protobuf::EnumDescriptor* TransceiverType_descriptor();
+inline const ::std::string& TransceiverType_Name(TransceiverType value) {
+  return ::google::protobuf::internal::NameOfEnum(
+    TransceiverType_descriptor(), value);
+}
+inline bool TransceiverType_Parse(
+    const ::std::string& name, TransceiverType* value) {
+  return ::google::protobuf::internal::ParseNamedEnum<TransceiverType>(
+    TransceiverType_descriptor(), name, value);
+}
 // ===================================================================
 
 class Uuid final :
@@ -1630,6 +1635,118 @@
 };
 // -------------------------------------------------------------------
 
+class TransceiverComponentChangeAttributes final :
+    public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:dmi.TransceiverComponentChangeAttributes) */ {
+ public:
+  TransceiverComponentChangeAttributes();
+  virtual ~TransceiverComponentChangeAttributes();
+
+  TransceiverComponentChangeAttributes(const TransceiverComponentChangeAttributes& from);
+
+  inline TransceiverComponentChangeAttributes& operator=(const TransceiverComponentChangeAttributes& from) {
+    CopyFrom(from);
+    return *this;
+  }
+  #if LANG_CXX11
+  TransceiverComponentChangeAttributes(TransceiverComponentChangeAttributes&& from) noexcept
+    : TransceiverComponentChangeAttributes() {
+    *this = ::std::move(from);
+  }
+
+  inline TransceiverComponentChangeAttributes& operator=(TransceiverComponentChangeAttributes&& from) noexcept {
+    if (GetArenaNoVirtual() == from.GetArenaNoVirtual()) {
+      if (this != &from) InternalSwap(&from);
+    } else {
+      CopyFrom(from);
+    }
+    return *this;
+  }
+  #endif
+  static const ::google::protobuf::Descriptor* descriptor() {
+    return default_instance().GetDescriptor();
+  }
+  static const TransceiverComponentChangeAttributes& default_instance();
+
+  static void InitAsDefaultInstance();  // FOR INTERNAL USE ONLY
+  static inline const TransceiverComponentChangeAttributes* internal_default_instance() {
+    return reinterpret_cast<const TransceiverComponentChangeAttributes*>(
+               &_TransceiverComponentChangeAttributes_default_instance_);
+  }
+  static constexpr int kIndexInFileMessages =
+    7;
+
+  void Swap(TransceiverComponentChangeAttributes* other);
+  friend void swap(TransceiverComponentChangeAttributes& a, TransceiverComponentChangeAttributes& b) {
+    a.Swap(&b);
+  }
+
+  // implements Message ----------------------------------------------
+
+  inline TransceiverComponentChangeAttributes* New() const final {
+    return CreateMaybeMessage<TransceiverComponentChangeAttributes>(nullptr);
+  }
+
+  TransceiverComponentChangeAttributes* New(::google::protobuf::Arena* arena) const final {
+    return CreateMaybeMessage<TransceiverComponentChangeAttributes>(arena);
+  }
+  void CopyFrom(const ::google::protobuf::Message& from) final;
+  void MergeFrom(const ::google::protobuf::Message& from) final;
+  void CopyFrom(const TransceiverComponentChangeAttributes& from);
+  void MergeFrom(const TransceiverComponentChangeAttributes& from);
+  PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final;
+  bool IsInitialized() const final;
+
+  size_t ByteSizeLong() const final;
+  #if GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
+  static const char* _InternalParse(const char* begin, const char* end, void* object, ::google::protobuf::internal::ParseContext* ctx);
+  ::google::protobuf::internal::ParseFunc _ParseFunc() const final { return _InternalParse; }
+  #else
+  bool MergePartialFromCodedStream(
+      ::google::protobuf::io::CodedInputStream* input) final;
+  #endif  // GOOGLE_PROTOBUF_ENABLE_EXPERIMENTAL_PARSER
+  void SerializeWithCachedSizes(
+      ::google::protobuf::io::CodedOutputStream* output) const final;
+  ::google::protobuf::uint8* InternalSerializeWithCachedSizesToArray(
+      ::google::protobuf::uint8* target) const final;
+  int GetCachedSize() const final { return _cached_size_.Get(); }
+
+  private:
+  void SharedCtor();
+  void SharedDtor();
+  void SetCachedSize(int size) const final;
+  void InternalSwap(TransceiverComponentChangeAttributes* other);
+  private:
+  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
+    return nullptr;
+  }
+  inline void* MaybeArenaPtr() const {
+    return nullptr;
+  }
+  public:
+
+  ::google::protobuf::Metadata GetMetadata() const final;
+
+  // nested types ----------------------------------------------------
+
+  // accessors -------------------------------------------------------
+
+  // .dmi.TransceiverType trans_type = 1;
+  void clear_trans_type();
+  static const int kTransTypeFieldNumber = 1;
+  ::dmi::TransceiverType trans_type() const;
+  void set_trans_type(::dmi::TransceiverType value);
+
+  // @@protoc_insertion_point(class_scope:dmi.TransceiverComponentChangeAttributes)
+ private:
+  class HasBitSetters;
+
+  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
+  int trans_type_;
+  mutable ::google::protobuf::internal::CachedSize _cached_size_;
+  friend struct ::TableStruct_dmi_2fhw_2eproto;
+};
+// -------------------------------------------------------------------
+
 class PonIdConfig final :
     public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:dmi.PonIdConfig) */ {
  public:
@@ -1668,7 +1785,7 @@
                &_PonIdConfig_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    7;
+    8;
 
   void Swap(PonIdConfig* other);
   friend void swap(PonIdConfig& a, PonIdConfig& b) {
@@ -1795,7 +1912,7 @@
                &_ContainerComponentAttributes_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    8;
+    9;
 
   void Swap(ContainerComponentAttributes* other);
   friend void swap(ContainerComponentAttributes& a, ContainerComponentAttributes& b) {
@@ -1915,7 +2032,7 @@
                &_PsuComponentAttributes_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    9;
+    10;
 
   void Swap(PsuComponentAttributes* other);
   friend void swap(PsuComponentAttributes& a, PsuComponentAttributes& b) {
@@ -2057,7 +2174,7 @@
                &_TransceiverComponentsAttributes_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    10;
+    11;
 
   void Swap(TransceiverComponentsAttributes* other);
   friend void swap(TransceiverComponentsAttributes& a, TransceiverComponentsAttributes& b) {
@@ -2164,44 +2281,6 @@
     return TransceiverComponentsAttributes_FormFactor_Parse(name, value);
   }
 
-  typedef TransceiverComponentsAttributes_Type Type;
-  static const Type TYPE_UNKNOWN =
-    TransceiverComponentsAttributes_Type_TYPE_UNKNOWN;
-  static const Type ETHERNET =
-    TransceiverComponentsAttributes_Type_ETHERNET;
-  static const Type GPON =
-    TransceiverComponentsAttributes_Type_GPON;
-  static const Type XGPON =
-    TransceiverComponentsAttributes_Type_XGPON;
-  static const Type XGSPON =
-    TransceiverComponentsAttributes_Type_XGSPON;
-  static const Type CPON =
-    TransceiverComponentsAttributes_Type_CPON;
-  static const Type NG_PON2 =
-    TransceiverComponentsAttributes_Type_NG_PON2;
-  static const Type EPON =
-    TransceiverComponentsAttributes_Type_EPON;
-  static inline bool Type_IsValid(int value) {
-    return TransceiverComponentsAttributes_Type_IsValid(value);
-  }
-  static const Type Type_MIN =
-    TransceiverComponentsAttributes_Type_Type_MIN;
-  static const Type Type_MAX =
-    TransceiverComponentsAttributes_Type_Type_MAX;
-  static const int Type_ARRAYSIZE =
-    TransceiverComponentsAttributes_Type_Type_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  Type_descriptor() {
-    return TransceiverComponentsAttributes_Type_descriptor();
-  }
-  static inline const ::std::string& Type_Name(Type value) {
-    return TransceiverComponentsAttributes_Type_Name(value);
-  }
-  static inline bool Type_Parse(const ::std::string& name,
-      Type* value) {
-    return TransceiverComponentsAttributes_Type_Parse(name, value);
-  }
-
   // accessors -------------------------------------------------------
 
   // repeated uint32 rx_wavelength = 5;
@@ -2234,11 +2313,11 @@
   ::dmi::TransceiverComponentsAttributes_FormFactor form_factor() const;
   void set_form_factor(::dmi::TransceiverComponentsAttributes_FormFactor value);
 
-  // .dmi.TransceiverComponentsAttributes.Type trans_type = 2;
+  // .dmi.TransceiverType trans_type = 2;
   void clear_trans_type();
   static const int kTransTypeFieldNumber = 2;
-  ::dmi::TransceiverComponentsAttributes_Type trans_type() const;
-  void set_trans_type(::dmi::TransceiverComponentsAttributes_Type value);
+  ::dmi::TransceiverType trans_type() const;
+  void set_trans_type(::dmi::TransceiverType value);
 
   // uint32 max_distance = 3;
   void clear_max_distance();
@@ -2323,7 +2402,7 @@
                &_Component_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    11;
+    12;
 
   void Swap(Component* other);
   friend void swap(Component& a, Component& b) {
@@ -2734,7 +2813,7 @@
                &_Hardware_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    12;
+    13;
 
   void Swap(Hardware* other);
   friend void swap(Hardware& a, Hardware& b) {
@@ -2865,6 +2944,7 @@
 
   enum SpecificCase {
     kPortAttr = 50,
+    kTrxAttr = 51,
     SPECIFIC_NOT_SET = 0,
   };
 
@@ -2874,7 +2954,7 @@
                &_ModifiableComponent_default_instance_);
   }
   static constexpr int kIndexInFileMessages =
-    13;
+    14;
 
   void Swap(ModifiableComponent* other);
   friend void swap(ModifiableComponent& a, ModifiableComponent& b) {
@@ -3018,12 +3098,22 @@
   ::dmi::PortComponentChangeAttributes* mutable_port_attr();
   void set_allocated_port_attr(::dmi::PortComponentChangeAttributes* port_attr);
 
+  // .dmi.TransceiverComponentChangeAttributes trx_attr = 51;
+  bool has_trx_attr() const;
+  void clear_trx_attr();
+  static const int kTrxAttrFieldNumber = 51;
+  const ::dmi::TransceiverComponentChangeAttributes& trx_attr() const;
+  ::dmi::TransceiverComponentChangeAttributes* release_trx_attr();
+  ::dmi::TransceiverComponentChangeAttributes* mutable_trx_attr();
+  void set_allocated_trx_attr(::dmi::TransceiverComponentChangeAttributes* trx_attr);
+
   void clear_specific();
   SpecificCase specific_case() const;
   // @@protoc_insertion_point(class_scope:dmi.ModifiableComponent)
  private:
   class HasBitSetters;
   void set_has_port_attr();
+  void set_has_trx_attr();
 
   inline bool has_specific() const;
   inline void clear_has_specific();
@@ -3040,6 +3130,7 @@
   union SpecificUnion {
     SpecificUnion() {}
     ::dmi::PortComponentChangeAttributes* port_attr_;
+    ::dmi::TransceiverComponentChangeAttributes* trx_attr_;
   } specific_;
   mutable ::google::protobuf::internal::CachedSize _cached_size_;
   ::google::protobuf::uint32 _oneof_case_[1];
@@ -3856,6 +3947,24 @@
 
 // -------------------------------------------------------------------
 
+// TransceiverComponentChangeAttributes
+
+// .dmi.TransceiverType trans_type = 1;
+inline void TransceiverComponentChangeAttributes::clear_trans_type() {
+  trans_type_ = 0;
+}
+inline ::dmi::TransceiverType TransceiverComponentChangeAttributes::trans_type() const {
+  // @@protoc_insertion_point(field_get:dmi.TransceiverComponentChangeAttributes.trans_type)
+  return static_cast< ::dmi::TransceiverType >(trans_type_);
+}
+inline void TransceiverComponentChangeAttributes::set_trans_type(::dmi::TransceiverType value) {
+  
+  trans_type_ = value;
+  // @@protoc_insertion_point(field_set:dmi.TransceiverComponentChangeAttributes.trans_type)
+}
+
+// -------------------------------------------------------------------
+
 // PonIdConfig
 
 // bytes pon_id = 1;
@@ -4018,15 +4127,15 @@
   // @@protoc_insertion_point(field_set:dmi.TransceiverComponentsAttributes.form_factor)
 }
 
-// .dmi.TransceiverComponentsAttributes.Type trans_type = 2;
+// .dmi.TransceiverType trans_type = 2;
 inline void TransceiverComponentsAttributes::clear_trans_type() {
   trans_type_ = 0;
 }
-inline ::dmi::TransceiverComponentsAttributes_Type TransceiverComponentsAttributes::trans_type() const {
+inline ::dmi::TransceiverType TransceiverComponentsAttributes::trans_type() const {
   // @@protoc_insertion_point(field_get:dmi.TransceiverComponentsAttributes.trans_type)
-  return static_cast< ::dmi::TransceiverComponentsAttributes_Type >(trans_type_);
+  return static_cast< ::dmi::TransceiverType >(trans_type_);
 }
-inline void TransceiverComponentsAttributes::set_trans_type(::dmi::TransceiverComponentsAttributes_Type value) {
+inline void TransceiverComponentsAttributes::set_trans_type(::dmi::TransceiverType value) {
   
   trans_type_ = value;
   // @@protoc_insertion_point(field_set:dmi.TransceiverComponentsAttributes.trans_type)
@@ -5690,6 +5799,47 @@
   return specific_.port_attr_;
 }
 
+// .dmi.TransceiverComponentChangeAttributes trx_attr = 51;
+inline bool ModifiableComponent::has_trx_attr() const {
+  return specific_case() == kTrxAttr;
+}
+inline void ModifiableComponent::set_has_trx_attr() {
+  _oneof_case_[0] = kTrxAttr;
+}
+inline void ModifiableComponent::clear_trx_attr() {
+  if (has_trx_attr()) {
+    delete specific_.trx_attr_;
+    clear_has_specific();
+  }
+}
+inline ::dmi::TransceiverComponentChangeAttributes* ModifiableComponent::release_trx_attr() {
+  // @@protoc_insertion_point(field_release:dmi.ModifiableComponent.trx_attr)
+  if (has_trx_attr()) {
+    clear_has_specific();
+      ::dmi::TransceiverComponentChangeAttributes* temp = specific_.trx_attr_;
+    specific_.trx_attr_ = nullptr;
+    return temp;
+  } else {
+    return nullptr;
+  }
+}
+inline const ::dmi::TransceiverComponentChangeAttributes& ModifiableComponent::trx_attr() const {
+  // @@protoc_insertion_point(field_get:dmi.ModifiableComponent.trx_attr)
+  return has_trx_attr()
+      ? *specific_.trx_attr_
+      : *reinterpret_cast< ::dmi::TransceiverComponentChangeAttributes*>(&::dmi::_TransceiverComponentChangeAttributes_default_instance_);
+}
+inline ::dmi::TransceiverComponentChangeAttributes* ModifiableComponent::mutable_trx_attr() {
+  if (!has_trx_attr()) {
+    clear_specific();
+    set_has_trx_attr();
+    specific_.trx_attr_ = CreateMaybeMessage< ::dmi::TransceiverComponentChangeAttributes >(
+        GetArenaNoVirtual());
+  }
+  // @@protoc_insertion_point(field_mutable:dmi.ModifiableComponent.trx_attr)
+  return specific_.trx_attr_;
+}
+
 inline bool ModifiableComponent::has_specific() const {
   return specific_case() != SPECIFIC_NOT_SET;
 }
@@ -5728,6 +5878,8 @@
 
 // -------------------------------------------------------------------
 
+// -------------------------------------------------------------------
+
 
 // @@protoc_insertion_point(namespace_scope)
 
@@ -5761,11 +5913,6 @@
 inline const EnumDescriptor* GetEnumDescriptor< ::dmi::TransceiverComponentsAttributes_FormFactor>() {
   return ::dmi::TransceiverComponentsAttributes_FormFactor_descriptor();
 }
-template <> struct is_proto_enum< ::dmi::TransceiverComponentsAttributes_Type> : ::std::true_type {};
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::dmi::TransceiverComponentsAttributes_Type>() {
-  return ::dmi::TransceiverComponentsAttributes_Type_descriptor();
-}
 template <> struct is_proto_enum< ::dmi::ComponentType> : ::std::true_type {};
 template <>
 inline const EnumDescriptor* GetEnumDescriptor< ::dmi::ComponentType>() {
@@ -5811,6 +5958,11 @@
 inline const EnumDescriptor* GetEnumDescriptor< ::dmi::SensorStatus>() {
   return ::dmi::SensorStatus_descriptor();
 }
+template <> struct is_proto_enum< ::dmi::TransceiverType> : ::std::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::dmi::TransceiverType>() {
+  return ::dmi::TransceiverType_descriptor();
+}
 
 }  // namespace protobuf
 }  // namespace google
diff --git a/cpp/dmi/hw_management_service.pb.cc b/cpp/dmi/hw_management_service.pb.cc
index eda5b7b..4beefa2 100644
--- a/cpp/dmi/hw_management_service.pb.cc
+++ b/cpp/dmi/hw_management_service.pb.cc
@@ -18,7 +18,7 @@
 
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_Uuid_dmi_2fhw_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_Hardware_dmi_2fhw_2eproto;
-extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<3> scc_info_ModifiableComponent_dmi_2fhw_2eproto;
+extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<4> scc_info_ModifiableComponent_dmi_2fhw_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_2eproto ::google::protobuf::internal::SCCInfo<9> scc_info_Component_dmi_2fhw_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_5fmanagement_5fservice_2eproto ::google::protobuf::internal::SCCInfo<0> scc_info_EntitiesLogLevel_dmi_2fhw_5fmanagement_5fservice_2eproto;
 extern PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_5fmanagement_5fservice_2eproto ::google::protobuf::internal::SCCInfo<2> scc_info_ManagedDeviceInfo_dmi_2fhw_5fmanagement_5fservice_2eproto;
@@ -809,128 +809,129 @@
   "_uuid\030\001 \001(\0132\t.dmi.Uuid\022!\n\016component_uuid"
   "\030\002 \001(\0132\t.dmi.Uuid\022\026\n\016component_name\030\003 \001("
   "\t\022)\n\007changes\030\004 \001(\0132\030.dmi.ModifiableCompo"
-  "nent\"\224\002\n\032HWComponentInfoSetResponse\022\033\n\006s"
+  "nent\"\251\002\n\032HWComponentInfoSetResponse\022\033\n\006s"
   "tatus\030\001 \001(\0162\013.dmi.Status\0226\n\006reason\030\002 \001(\016"
   "2&.dmi.HWComponentInfoSetResponse.Reason"
-  "\022\025\n\rreason_detail\030\003 \001(\t\"\211\001\n\006Reason\022\024\n\020UN"
+  "\022\025\n\rreason_detail\030\003 \001(\t\"\236\001\n\006Reason\022\024\n\020UN"
   "DEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\025\n\021"
   "UNKNOWN_COMPONENT\020\002\022\022\n\016INVALID_PARAMS\020\003\022"
   "\022\n\016INTERNAL_ERROR\020\004\022\026\n\022DEVICE_UNREACHABL"
-  "E\020\005\"\347\002\n\033StartManagingDeviceResponse\022\033\n\006s"
-  "tatus\030\001 \001(\0162\013.dmi.Status\0227\n\006reason\030\002 \001(\016"
-  "2\'.dmi.StartManagingDeviceResponse.Reaso"
-  "n\022\036\n\013device_uuid\030\003 \001(\0132\t.dmi.Uuid\022\025\n\rrea"
-  "son_detail\030\004 \001(\t\"\272\001\n\006Reason\022\024\n\020UNDEFINED"
-  "_REASON\020\000\022\032\n\026DEVICE_ALREADY_MANAGED\020\001\022!\n"
-  "\035OPERATION_ALREADY_IN_PROGRESS\020\002\022\022\n\016INVA"
-  "LID_PARAMS\020\003\022\022\n\016INTERNAL_ERROR\020\004\022\032\n\026AUTH"
-  "ENTICATION_FAILURE\020\005\022\027\n\023INCOMPATIBLE_DEV"
-  "ICE\020\006\")\n\031StopManagingDeviceRequest\022\014\n\004na"
-  "me\030\001 \001(\t\"\274\001\n\032StopManagingDeviceResponse\022"
-  "\033\n\006status\030\001 \001(\0162\013.dmi.Status\0226\n\006reason\030\002"
-  " \001(\0162&.dmi.StopManagingDeviceResponse.Re"
-  "ason\022\025\n\rreason_detail\030\003 \001(\t\"2\n\006Reason\022\024\n"
-  "\020UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\""
-  "[\n\021ManagedDeviceInfo\022&\n\004info\030\001 \001(\0132\030.dmi"
-  ".ModifiableComponent\022\036\n\013device_uuid\030\002 \001("
-  "\0132\t.dmi.Uuid\"\306\001\n\026ManagedDevicesResponse\022"
-  "\033\n\006status\030\001 \001(\0162\013.dmi.Status\0222\n\006reason\030\002"
-  " \001(\0162\".dmi.ManagedDevicesResponse.Reason"
-  "\022\'\n\007devices\030\003 \003(\0132\026.dmi.ManagedDeviceInf"
-  "o\"2\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016INT"
-  "ERNAL_ERROR\020\001\"o\n\031SetLoggingEndpointReque"
-  "st\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\022\030\n\020lo"
-  "gging_endpoint\030\002 \001(\t\022\030\n\020logging_protocol"
-  "\030\003 \001(\t\"\303\002\n\031SetRemoteEndpointResponse\022\033\n\006"
-  "status\030\001 \001(\0162\013.dmi.Status\0225\n\006reason\030\002 \001("
-  "\0162%.dmi.SetRemoteEndpointResponse.Reason"
-  "\022\025\n\rreason_detail\030\003 \001(\t\"\272\001\n\006Reason\022\024\n\020UN"
+  "E\020\005\022\023\n\017SET_UNSUPPORTED\020\006\"\347\002\n\033StartManagi"
+  "ngDeviceResponse\022\033\n\006status\030\001 \001(\0162\013.dmi.S"
+  "tatus\0227\n\006reason\030\002 \001(\0162\'.dmi.StartManagin"
+  "gDeviceResponse.Reason\022\036\n\013device_uuid\030\003 "
+  "\001(\0132\t.dmi.Uuid\022\025\n\rreason_detail\030\004 \001(\t\"\272\001"
+  "\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\032\n\026DEVICE"
+  "_ALREADY_MANAGED\020\001\022!\n\035OPERATION_ALREADY_"
+  "IN_PROGRESS\020\002\022\022\n\016INVALID_PARAMS\020\003\022\022\n\016INT"
+  "ERNAL_ERROR\020\004\022\032\n\026AUTHENTICATION_FAILURE\020"
+  "\005\022\027\n\023INCOMPATIBLE_DEVICE\020\006\")\n\031StopManagi"
+  "ngDeviceRequest\022\014\n\004name\030\001 \001(\t\"\274\001\n\032StopMa"
+  "nagingDeviceResponse\022\033\n\006status\030\001 \001(\0162\013.d"
+  "mi.Status\0226\n\006reason\030\002 \001(\0162&.dmi.StopMana"
+  "gingDeviceResponse.Reason\022\025\n\rreason_deta"
+  "il\030\003 \001(\t\"2\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000"
+  "\022\022\n\016UNKNOWN_DEVICE\020\001\"[\n\021ManagedDeviceInf"
+  "o\022&\n\004info\030\001 \001(\0132\030.dmi.ModifiableComponen"
+  "t\022\036\n\013device_uuid\030\002 \001(\0132\t.dmi.Uuid\"\306\001\n\026Ma"
+  "nagedDevicesResponse\022\033\n\006status\030\001 \001(\0162\013.d"
+  "mi.Status\0222\n\006reason\030\002 \001(\0162\".dmi.ManagedD"
+  "evicesResponse.Reason\022\'\n\007devices\030\003 \003(\0132\026"
+  ".dmi.ManagedDeviceInfo\"2\n\006Reason\022\024\n\020UNDE"
+  "FINED_REASON\020\000\022\022\n\016INTERNAL_ERROR\020\001\"o\n\031Se"
+  "tLoggingEndpointRequest\022\036\n\013device_uuid\030\001"
+  " \001(\0132\t.dmi.Uuid\022\030\n\020logging_endpoint\030\002 \001("
+  "\t\022\030\n\020logging_protocol\030\003 \001(\t\"\303\002\n\031SetRemot"
+  "eEndpointResponse\022\033\n\006status\030\001 \001(\0162\013.dmi."
+  "Status\0225\n\006reason\030\002 \001(\0162%.dmi.SetRemoteEn"
+  "dpointResponse.Reason\022\025\n\rreason_detail\030\003"
+  " \001(\t\"\272\001\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n"
+  "\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\032\n"
+  "\026LOGGING_ENDPOINT_ERROR\020\003\022#\n\037LOGGING_END"
+  "POINT_PROTOCOL_ERROR\020\004\022\031\n\025MSGBUS_ENDPOIN"
+  "T_ERROR\020\005\022\026\n\022DEVICE_UNREACHABLE\020\006\"\234\002\n\032Ge"
+  "tLoggingEndpointResponse\022\033\n\006status\030\001 \001(\016"
+  "2\013.dmi.Status\0226\n\006reason\030\002 \001(\0162&.dmi.GetL"
+  "oggingEndpointResponse.Reason\022\030\n\020logging"
+  "_endpoint\030\003 \001(\t\022\030\n\020logging_protocol\030\004 \001("
+  "\t\022\025\n\rreason_detail\030\005 \001(\t\"^\n\006Reason\022\024\n\020UN"
   "DEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n\016"
-  "INTERNAL_ERROR\020\002\022\032\n\026LOGGING_ENDPOINT_ERR"
-  "OR\020\003\022#\n\037LOGGING_ENDPOINT_PROTOCOL_ERROR\020"
-  "\004\022\031\n\025MSGBUS_ENDPOINT_ERROR\020\005\022\026\n\022DEVICE_U"
-  "NREACHABLE\020\006\"\234\002\n\032GetLoggingEndpointRespo"
-  "nse\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\0226\n\006reas"
-  "on\030\002 \001(\0162&.dmi.GetLoggingEndpointRespons"
-  "e.Reason\022\030\n\020logging_endpoint\030\003 \001(\t\022\030\n\020lo"
-  "gging_protocol\030\004 \001(\t\022\025\n\rreason_detail\030\005 "
-  "\001(\t\"^\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016U"
-  "NKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\026\n\022D"
-  "EVICE_UNREACHABLE\020\003\"3\n\030SetMsgBusEndpoint"
-  "Request\022\027\n\017msgbus_endpoint\030\001 \001(\t\"\353\001\n\031Get"
-  "MsgBusEndpointResponse\022\033\n\006status\030\001 \001(\0162\013"
-  ".dmi.Status\0225\n\006reason\030\002 \001(\0162%.dmi.GetMsg"
-  "BusEndpointResponse.Reason\022\027\n\017msgbus_end"
-  "point\030\003 \001(\t\022\025\n\rreason_detail\030\004 \001(\t\"J\n\006Re"
-  "ason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016INTERNAL_E"
-  "RROR\020\001\022\026\n\022DEVICE_UNREACHABLE\020\002\"E\n\020Entiti"
-  "esLogLevel\022\037\n\010logLevel\030\001 \001(\0162\r.dmi.LogLe"
-  "vel\022\020\n\010entities\030\002 \003(\t\"^\n\022SetLogLevelRequ"
-  "est\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\022(\n\tl"
-  "oglevels\030\002 \003(\0132\025.dmi.EntitiesLogLevel\"\222\002"
-  "\n\023SetLogLevelResponse\022\036\n\013device_uuid\030\001 \001"
-  "(\0132\t.dmi.Uuid\022\033\n\006status\030\002 \001(\0162\013.dmi.Stat"
-  "us\022/\n\006reason\030\003 \001(\0162\037.dmi.SetLogLevelResp"
-  "onse.Reason\022\025\n\rreason_detail\030\004 \001(\t\"v\n\006Re"
-  "ason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN_DE"
-  "VICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\026\n\022UNKNOWN_LO"
-  "G_ENTITY\020\003\022\026\n\022DEVICE_UNREACHABLE\020\004\"F\n\022Ge"
-  "tLogLevelRequest\022\036\n\013device_uuid\030\001 \001(\0132\t."
-  "dmi.Uuid\022\020\n\010entities\030\002 \003(\t\"\274\002\n\023GetLogLev"
-  "elResponse\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uu"
-  "id\022(\n\tlogLevels\030\002 \003(\0132\025.dmi.EntitiesLogL"
-  "evel\022\033\n\006status\030\003 \001(\0162\013.dmi.Status\022/\n\006rea"
-  "son\030\004 \001(\0162\037.dmi.GetLogLevelResponse.Reas"
-  "on\022\025\n\rreason_detail\030\005 \001(\t\"v\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\022UNKNOWN_LOG_ENTITY\020"
-  "\003\022\026\n\022DEVICE_UNREACHABLE\020\004\"<\n\032GetLoggable"
-  "EntitiesRequest\022\036\n\013device_uuid\030\001 \001(\0132\t.d"
-  "mi.Uuid\"(\n\tHeartbeat\022\033\n\023heartbeat_signat"
-  "ure\030\001 \001(\007\"5\n\023RebootDeviceRequest\022\036\n\013devi"
-  "ce_uuid\030\001 \001(\0132\t.dmi.Uuid\"\334\001\n\024RebootDevic"
-  "eResponse\022\033\n\006status\030\003 \001(\0162\013.dmi.Status\0220"
-  "\n\006reason\030\004 \001(\0162 .dmi.RebootDeviceRespons"
-  "e.Reason\022\025\n\rreason_detail\030\005 \001(\t\"^\n\006Reaso"
-  "n\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVIC"
-  "E\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\026\n\022DEVICE_UNREAC"
-  "HABLE\020\0032\256\t\n\031NativeHWManagementService\022S\n"
-  "\023StartManagingDevice\022\030.dmi.ModifiableCom"
-  "ponent\032 .dmi.StartManagingDeviceResponse"
-  "0\001\022U\n\022StopManagingDevice\022\036.dmi.StopManag"
-  "ingDeviceRequest\032\037.dmi.StopManagingDevic"
-  "eResponse\022H\n\021GetManagedDevices\022\026.google."
-  "protobuf.Empty\032\033.dmi.ManagedDevicesRespo"
-  "nse\022W\n\024GetPhysicalInventory\022\035.dmi.Physic"
-  "alInventoryRequest\032\036.dmi.PhysicalInvento"
-  "ryResponse0\001\022W\n\022GetHWComponentInfo\022\036.dmi"
-  ".HWComponentInfoGetRequest\032\037.dmi.HWCompo"
-  "nentInfoGetResponse0\001\022U\n\022SetHWComponentI"
-  "nfo\022\036.dmi.HWComponentInfoSetRequest\032\037.dm"
-  "i.HWComponentInfoSetResponse\022T\n\022SetLoggi"
-  "ngEndpoint\022\036.dmi.SetLoggingEndpointReque"
-  "st\032\036.dmi.SetRemoteEndpointResponse\022F\n\022Ge"
-  "tLoggingEndpoint\022\017.dmi.HardwareID\032\037.dmi."
-  "GetLoggingEndpointResponse\022R\n\021SetMsgBusE"
-  "ndpoint\022\035.dmi.SetMsgBusEndpointRequest\032\036"
-  ".dmi.SetRemoteEndpointResponse\022K\n\021GetMsg"
-  "BusEndpoint\022\026.google.protobuf.Empty\032\036.dm"
-  "i.GetMsgBusEndpointResponse\022P\n\023GetLoggab"
-  "leEntities\022\037.dmi.GetLoggableEntitiesRequ"
-  "est\032\030.dmi.GetLogLevelResponse\022@\n\013SetLogL"
-  "evel\022\027.dmi.SetLogLevelRequest\032\030.dmi.SetL"
-  "ogLevelResponse\022@\n\013GetLogLevel\022\027.dmi.Get"
-  "LogLevelRequest\032\030.dmi.GetLogLevelRespons"
-  "e\0228\n\016HeartbeatCheck\022\026.google.protobuf.Em"
-  "pty\032\016.dmi.Heartbeat\022C\n\014RebootDevice\022\030.dm"
-  "i.RebootDeviceRequest\032\031.dmi.RebootDevice"
-  "ResponseB;Z9github.com/opencord/device-m"
-  "anagement-interface/v3/go/dmib\006proto3"
+  "INTERNAL_ERROR\020\002\022\026\n\022DEVICE_UNREACHABLE\020\003"
+  "\"3\n\030SetMsgBusEndpointRequest\022\027\n\017msgbus_e"
+  "ndpoint\030\001 \001(\t\"\353\001\n\031GetMsgBusEndpointRespo"
+  "nse\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\0225\n\006reas"
+  "on\030\002 \001(\0162%.dmi.GetMsgBusEndpointResponse"
+  ".Reason\022\027\n\017msgbus_endpoint\030\003 \001(\t\022\025\n\rreas"
+  "on_detail\030\004 \001(\t\"J\n\006Reason\022\024\n\020UNDEFINED_R"
+  "EASON\020\000\022\022\n\016INTERNAL_ERROR\020\001\022\026\n\022DEVICE_UN"
+  "REACHABLE\020\002\"E\n\020EntitiesLogLevel\022\037\n\010logLe"
+  "vel\030\001 \001(\0162\r.dmi.LogLevel\022\020\n\010entities\030\002 \003"
+  "(\t\"^\n\022SetLogLevelRequest\022\036\n\013device_uuid\030"
+  "\001 \001(\0132\t.dmi.Uuid\022(\n\tloglevels\030\002 \003(\0132\025.dm"
+  "i.EntitiesLogLevel\"\222\002\n\023SetLogLevelRespon"
+  "se\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\022\033\n\006st"
+  "atus\030\002 \001(\0162\013.dmi.Status\022/\n\006reason\030\003 \001(\0162"
+  "\037.dmi.SetLogLevelResponse.Reason\022\025\n\rreas"
+  "on_detail\030\004 \001(\t\"v\n\006Reason\022\024\n\020UNDEFINED_R"
+  "EASON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_"
+  "ERROR\020\002\022\026\n\022UNKNOWN_LOG_ENTITY\020\003\022\026\n\022DEVIC"
+  "E_UNREACHABLE\020\004\"F\n\022GetLogLevelRequest\022\036\n"
+  "\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\022\020\n\010entitie"
+  "s\030\002 \003(\t\"\274\002\n\023GetLogLevelResponse\022\036\n\013devic"
+  "e_uuid\030\001 \001(\0132\t.dmi.Uuid\022(\n\tlogLevels\030\002 \003"
+  "(\0132\025.dmi.EntitiesLogLevel\022\033\n\006status\030\003 \001("
+  "\0162\013.dmi.Status\022/\n\006reason\030\004 \001(\0162\037.dmi.Get"
+  "LogLevelResponse.Reason\022\025\n\rreason_detail"
+  "\030\005 \001(\t\"v\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022"
+  "\n\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\026"
+  "\n\022UNKNOWN_LOG_ENTITY\020\003\022\026\n\022DEVICE_UNREACH"
+  "ABLE\020\004\"<\n\032GetLoggableEntitiesRequest\022\036\n\013"
+  "device_uuid\030\001 \001(\0132\t.dmi.Uuid\"(\n\tHeartbea"
+  "t\022\033\n\023heartbeat_signature\030\001 \001(\007\"5\n\023Reboot"
+  "DeviceRequest\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi"
+  ".Uuid\"\334\001\n\024RebootDeviceResponse\022\033\n\006status"
+  "\030\003 \001(\0162\013.dmi.Status\0220\n\006reason\030\004 \001(\0162 .dm"
+  "i.RebootDeviceResponse.Reason\022\025\n\rreason_"
+  "detail\030\005 \001(\t\"^\n\006Reason\022\024\n\020UNDEFINED_REAS"
+  "ON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERR"
+  "OR\020\002\022\026\n\022DEVICE_UNREACHABLE\020\0032\256\t\n\031NativeH"
+  "WManagementService\022S\n\023StartManagingDevic"
+  "e\022\030.dmi.ModifiableComponent\032 .dmi.StartM"
+  "anagingDeviceResponse0\001\022U\n\022StopManagingD"
+  "evice\022\036.dmi.StopManagingDeviceRequest\032\037."
+  "dmi.StopManagingDeviceResponse\022H\n\021GetMan"
+  "agedDevices\022\026.google.protobuf.Empty\032\033.dm"
+  "i.ManagedDevicesResponse\022W\n\024GetPhysicalI"
+  "nventory\022\035.dmi.PhysicalInventoryRequest\032"
+  "\036.dmi.PhysicalInventoryResponse0\001\022W\n\022Get"
+  "HWComponentInfo\022\036.dmi.HWComponentInfoGet"
+  "Request\032\037.dmi.HWComponentInfoGetResponse"
+  "0\001\022U\n\022SetHWComponentInfo\022\036.dmi.HWCompone"
+  "ntInfoSetRequest\032\037.dmi.HWComponentInfoSe"
+  "tResponse\022T\n\022SetLoggingEndpoint\022\036.dmi.Se"
+  "tLoggingEndpointRequest\032\036.dmi.SetRemoteE"
+  "ndpointResponse\022F\n\022GetLoggingEndpoint\022\017."
+  "dmi.HardwareID\032\037.dmi.GetLoggingEndpointR"
+  "esponse\022R\n\021SetMsgBusEndpoint\022\035.dmi.SetMs"
+  "gBusEndpointRequest\032\036.dmi.SetRemoteEndpo"
+  "intResponse\022K\n\021GetMsgBusEndpoint\022\026.googl"
+  "e.protobuf.Empty\032\036.dmi.GetMsgBusEndpoint"
+  "Response\022P\n\023GetLoggableEntities\022\037.dmi.Ge"
+  "tLoggableEntitiesRequest\032\030.dmi.GetLogLev"
+  "elResponse\022@\n\013SetLogLevel\022\027.dmi.SetLogLe"
+  "velRequest\032\030.dmi.SetLogLevelResponse\022@\n\013"
+  "GetLogLevel\022\027.dmi.GetLogLevelRequest\032\030.d"
+  "mi.GetLogLevelResponse\0228\n\016HeartbeatCheck"
+  "\022\026.google.protobuf.Empty\032\016.dmi.Heartbeat"
+  "\022C\n\014RebootDevice\022\030.dmi.RebootDeviceReque"
+  "st\032\031.dmi.RebootDeviceResponseB;Z9github."
+  "com/opencord/device-management-interface"
+  "/v3/go/dmib\006proto3"
   ;
 ::google::protobuf::internal::DescriptorTable descriptor_table_dmi_2fhw_5fmanagement_5fservice_2eproto = {
   false, InitDefaults_dmi_2fhw_5fmanagement_5fservice_2eproto, 
   descriptor_table_protodef_dmi_2fhw_5fmanagement_5fservice_2eproto,
-  "dmi/hw_management_service.proto", &assign_descriptors_table_dmi_2fhw_5fmanagement_5fservice_2eproto, 5677,
+  "dmi/hw_management_service.proto", &assign_descriptors_table_dmi_2fhw_5fmanagement_5fservice_2eproto, 5698,
 };
 
 void AddDescriptors_dmi_2fhw_5fmanagement_5fservice_2eproto() {
@@ -1010,6 +1011,7 @@
     case 3:
     case 4:
     case 5:
+    case 6:
       return true;
     default:
       return false;
@@ -1023,6 +1025,7 @@
 const HWComponentInfoSetResponse_Reason HWComponentInfoSetResponse::INVALID_PARAMS;
 const HWComponentInfoSetResponse_Reason HWComponentInfoSetResponse::INTERNAL_ERROR;
 const HWComponentInfoSetResponse_Reason HWComponentInfoSetResponse::DEVICE_UNREACHABLE;
+const HWComponentInfoSetResponse_Reason HWComponentInfoSetResponse::SET_UNSUPPORTED;
 const HWComponentInfoSetResponse_Reason HWComponentInfoSetResponse::Reason_MIN;
 const HWComponentInfoSetResponse_Reason HWComponentInfoSetResponse::Reason_MAX;
 const int HWComponentInfoSetResponse::Reason_ARRAYSIZE;
diff --git a/cpp/dmi/hw_management_service.pb.h b/cpp/dmi/hw_management_service.pb.h
index fe01fa4..c350b06 100644
--- a/cpp/dmi/hw_management_service.pb.h
+++ b/cpp/dmi/hw_management_service.pb.h
@@ -214,12 +214,13 @@
   HWComponentInfoSetResponse_Reason_INVALID_PARAMS = 3,
   HWComponentInfoSetResponse_Reason_INTERNAL_ERROR = 4,
   HWComponentInfoSetResponse_Reason_DEVICE_UNREACHABLE = 5,
+  HWComponentInfoSetResponse_Reason_SET_UNSUPPORTED = 6,
   HWComponentInfoSetResponse_Reason_HWComponentInfoSetResponse_Reason_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
   HWComponentInfoSetResponse_Reason_HWComponentInfoSetResponse_Reason_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
 };
 bool HWComponentInfoSetResponse_Reason_IsValid(int value);
 const HWComponentInfoSetResponse_Reason HWComponentInfoSetResponse_Reason_Reason_MIN = HWComponentInfoSetResponse_Reason_UNDEFINED_REASON;
-const HWComponentInfoSetResponse_Reason HWComponentInfoSetResponse_Reason_Reason_MAX = HWComponentInfoSetResponse_Reason_DEVICE_UNREACHABLE;
+const HWComponentInfoSetResponse_Reason HWComponentInfoSetResponse_Reason_Reason_MAX = HWComponentInfoSetResponse_Reason_SET_UNSUPPORTED;
 const int HWComponentInfoSetResponse_Reason_Reason_ARRAYSIZE = HWComponentInfoSetResponse_Reason_Reason_MAX + 1;
 
 const ::google::protobuf::EnumDescriptor* HWComponentInfoSetResponse_Reason_descriptor();
@@ -1305,6 +1306,8 @@
     HWComponentInfoSetResponse_Reason_INTERNAL_ERROR;
   static const Reason DEVICE_UNREACHABLE =
     HWComponentInfoSetResponse_Reason_DEVICE_UNREACHABLE;
+  static const Reason SET_UNSUPPORTED =
+    HWComponentInfoSetResponse_Reason_SET_UNSUPPORTED;
   static inline bool Reason_IsValid(int value) {
     return HWComponentInfoSetResponse_Reason_IsValid(value);
   }
diff --git a/dmi.pb b/dmi.pb
index f965fe1..50bad52 100644
--- a/dmi.pb
+++ b/dmi.pb
Binary files differ
diff --git a/docs/ManagingDevice.md b/docs/ManagingDevice.md
index b5a1c01..18202b2 100644
--- a/docs/ManagingDevice.md
+++ b/docs/ManagingDevice.md
@@ -83,4 +83,16 @@
 Operators currently do not require runtime configuration of the NNI because it's not an element that is expected to change
 at all once initial deployment is performed.
 
+## Transceiver Technology Configuration
+If the transceiver technology cannot be automatically detected on the OLT, the transceiver technology is set to `TYPE_NOT_DETECTED`
+when the transceiver object is added to the model. In this case the `SetHWComponentInfo` API on the DMI can
+be used to set the transceiver technology. Set `HWComponentInfoSetRequest.ModifiableComponent.TransceiverComponentChangeAttributes.TransceiverType`
+to the relevant transceiver technology.
+
+If the DM does not support setting transceiver technology, it should return the error code `SET_UNSUPPORTED` in `HWComponentInfoSetResponse`
+if the user tries to change/set the technology.
+
+The [Combo and Any PON support](https://docs.google.com/document/d/129YDzShMvYACsrM0dWV60tV79BRPI6SsBpf_nm0Byxc/edit#heading=h.ejk2hfj4lhh7) has
+more details about dynamic detection and configuration of PON technology. Although this document focuses on PON technology configuration aspects,
+it still has some general concepts applicable for any other non-PON transceiver types.
 
diff --git a/go/dmi/hw.pb.go b/go/dmi/hw.pb.go
index 0dad292..55c458f 100644
--- a/go/dmi/hw.pb.go
+++ b/go/dmi/hw.pb.go
@@ -436,6 +436,52 @@
 	return fileDescriptor_d7c33d745c4ab367, []int{8}
 }
 
+type TransceiverType int32
+
+const (
+	TransceiverType_TYPE_UNDEFINED    TransceiverType = 0
+	TransceiverType_ETHERNET          TransceiverType = 1
+	TransceiverType_GPON              TransceiverType = 2
+	TransceiverType_XGPON             TransceiverType = 3
+	TransceiverType_XGSPON            TransceiverType = 4
+	TransceiverType_CPON              TransceiverType = 5
+	TransceiverType_NG_PON2           TransceiverType = 6
+	TransceiverType_EPON              TransceiverType = 7
+	TransceiverType_TYPE_NOT_DETECTED TransceiverType = 255
+)
+
+var TransceiverType_name = map[int32]string{
+	0:   "TYPE_UNDEFINED",
+	1:   "ETHERNET",
+	2:   "GPON",
+	3:   "XGPON",
+	4:   "XGSPON",
+	5:   "CPON",
+	6:   "NG_PON2",
+	7:   "EPON",
+	255: "TYPE_NOT_DETECTED",
+}
+
+var TransceiverType_value = map[string]int32{
+	"TYPE_UNDEFINED":    0,
+	"ETHERNET":          1,
+	"GPON":              2,
+	"XGPON":             3,
+	"XGSPON":            4,
+	"CPON":              5,
+	"NG_PON2":           6,
+	"EPON":              7,
+	"TYPE_NOT_DETECTED": 255,
+}
+
+func (x TransceiverType) String() string {
+	return proto.EnumName(TransceiverType_name, int32(x))
+}
+
+func (TransceiverType) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{9}
+}
+
 type PortComponentAttributes_ConnectorType int32
 
 const (
@@ -596,7 +642,7 @@
 }
 
 func (PsuComponentAttributes_SupportedVoltage) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{9, 0}
+	return fileDescriptor_d7c33d745c4ab367, []int{10, 0}
 }
 
 type TransceiverComponentsAttributes_FormFactor int32
@@ -660,50 +706,7 @@
 }
 
 func (TransceiverComponentsAttributes_FormFactor) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{10, 0}
-}
-
-type TransceiverComponentsAttributes_Type int32
-
-const (
-	TransceiverComponentsAttributes_TYPE_UNKNOWN TransceiverComponentsAttributes_Type = 0
-	TransceiverComponentsAttributes_ETHERNET     TransceiverComponentsAttributes_Type = 1
-	TransceiverComponentsAttributes_GPON         TransceiverComponentsAttributes_Type = 2
-	TransceiverComponentsAttributes_XGPON        TransceiverComponentsAttributes_Type = 3
-	TransceiverComponentsAttributes_XGSPON       TransceiverComponentsAttributes_Type = 4
-	TransceiverComponentsAttributes_CPON         TransceiverComponentsAttributes_Type = 5
-	TransceiverComponentsAttributes_NG_PON2      TransceiverComponentsAttributes_Type = 6
-	TransceiverComponentsAttributes_EPON         TransceiverComponentsAttributes_Type = 7
-)
-
-var TransceiverComponentsAttributes_Type_name = map[int32]string{
-	0: "TYPE_UNKNOWN",
-	1: "ETHERNET",
-	2: "GPON",
-	3: "XGPON",
-	4: "XGSPON",
-	5: "CPON",
-	6: "NG_PON2",
-	7: "EPON",
-}
-
-var TransceiverComponentsAttributes_Type_value = map[string]int32{
-	"TYPE_UNKNOWN": 0,
-	"ETHERNET":     1,
-	"GPON":         2,
-	"XGPON":        3,
-	"XGSPON":       4,
-	"CPON":         5,
-	"NG_PON2":      6,
-	"EPON":         7,
-}
-
-func (x TransceiverComponentsAttributes_Type) String() string {
-	return proto.EnumName(TransceiverComponentsAttributes_Type_name, int32(x))
-}
-
-func (TransceiverComponentsAttributes_Type) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{10, 1}
+	return fileDescriptor_d7c33d745c4ab367, []int{11, 0}
 }
 
 type Uuid struct {
@@ -1135,6 +1138,45 @@
 	return nil
 }
 
+type TransceiverComponentChangeAttributes struct {
+	TransType            TransceiverType `protobuf:"varint,1,opt,name=trans_type,json=transType,proto3,enum=dmi.TransceiverType" json:"trans_type,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
+	XXX_unrecognized     []byte          `json:"-"`
+	XXX_sizecache        int32           `json:"-"`
+}
+
+func (m *TransceiverComponentChangeAttributes) Reset()         { *m = TransceiverComponentChangeAttributes{} }
+func (m *TransceiverComponentChangeAttributes) String() string { return proto.CompactTextString(m) }
+func (*TransceiverComponentChangeAttributes) ProtoMessage()    {}
+func (*TransceiverComponentChangeAttributes) Descriptor() ([]byte, []int) {
+	return fileDescriptor_d7c33d745c4ab367, []int{7}
+}
+
+func (m *TransceiverComponentChangeAttributes) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_TransceiverComponentChangeAttributes.Unmarshal(m, b)
+}
+func (m *TransceiverComponentChangeAttributes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_TransceiverComponentChangeAttributes.Marshal(b, m, deterministic)
+}
+func (m *TransceiverComponentChangeAttributes) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_TransceiverComponentChangeAttributes.Merge(m, src)
+}
+func (m *TransceiverComponentChangeAttributes) XXX_Size() int {
+	return xxx_messageInfo_TransceiverComponentChangeAttributes.Size(m)
+}
+func (m *TransceiverComponentChangeAttributes) XXX_DiscardUnknown() {
+	xxx_messageInfo_TransceiverComponentChangeAttributes.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_TransceiverComponentChangeAttributes proto.InternalMessageInfo
+
+func (m *TransceiverComponentChangeAttributes) GetTransType() TransceiverType {
+	if m != nil {
+		return m.TransType
+	}
+	return TransceiverType_TYPE_UNDEFINED
+}
+
 type PonIdConfig struct {
 	// The pon_id and pon_id_transmit_periodicity attributes are valid only for ports of type GPON, XGPON and XGSPON
 	// For GPON pon_id is a 7 byte value
@@ -1150,7 +1192,7 @@
 func (m *PonIdConfig) String() string { return proto.CompactTextString(m) }
 func (*PonIdConfig) ProtoMessage()    {}
 func (*PonIdConfig) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{7}
+	return fileDescriptor_d7c33d745c4ab367, []int{8}
 }
 
 func (m *PonIdConfig) XXX_Unmarshal(b []byte) error {
@@ -1196,7 +1238,7 @@
 func (m *ContainerComponentAttributes) String() string { return proto.CompactTextString(m) }
 func (*ContainerComponentAttributes) ProtoMessage()    {}
 func (*ContainerComponentAttributes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{8}
+	return fileDescriptor_d7c33d745c4ab367, []int{9}
 }
 
 func (m *ContainerComponentAttributes) XXX_Unmarshal(b []byte) error {
@@ -1235,7 +1277,7 @@
 func (m *PsuComponentAttributes) String() string { return proto.CompactTextString(m) }
 func (*PsuComponentAttributes) ProtoMessage()    {}
 func (*PsuComponentAttributes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{9}
+	return fileDescriptor_d7c33d745c4ab367, []int{10}
 }
 
 func (m *PsuComponentAttributes) XXX_Unmarshal(b []byte) error {
@@ -1265,7 +1307,7 @@
 
 type TransceiverComponentsAttributes struct {
 	FormFactor TransceiverComponentsAttributes_FormFactor `protobuf:"varint,1,opt,name=form_factor,json=formFactor,proto3,enum=dmi.TransceiverComponentsAttributes_FormFactor" json:"form_factor,omitempty"`
-	TransType  TransceiverComponentsAttributes_Type       `protobuf:"varint,2,opt,name=trans_type,json=transType,proto3,enum=dmi.TransceiverComponentsAttributes_Type" json:"trans_type,omitempty"`
+	TransType  TransceiverType                            `protobuf:"varint,2,opt,name=trans_type,json=transType,proto3,enum=dmi.TransceiverType" json:"trans_type,omitempty"`
 	// The maximum reach that can be achieved by this transceiver
 	MaxDistance      uint32     `protobuf:"varint,3,opt,name=max_distance,json=maxDistance,proto3" json:"max_distance,omitempty"`
 	MaxDistanceScale ValueScale `protobuf:"varint,4,opt,name=max_distance_scale,json=maxDistanceScale,proto3,enum=dmi.ValueScale" json:"max_distance_scale,omitempty"`
@@ -1282,7 +1324,7 @@
 func (m *TransceiverComponentsAttributes) String() string { return proto.CompactTextString(m) }
 func (*TransceiverComponentsAttributes) ProtoMessage()    {}
 func (*TransceiverComponentsAttributes) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{10}
+	return fileDescriptor_d7c33d745c4ab367, []int{11}
 }
 
 func (m *TransceiverComponentsAttributes) XXX_Unmarshal(b []byte) error {
@@ -1310,11 +1352,11 @@
 	return TransceiverComponentsAttributes_FORM_FACTOR_UNKNOWN
 }
 
-func (m *TransceiverComponentsAttributes) GetTransType() TransceiverComponentsAttributes_Type {
+func (m *TransceiverComponentsAttributes) GetTransType() TransceiverType {
 	if m != nil {
 		return m.TransType
 	}
-	return TransceiverComponentsAttributes_TYPE_UNKNOWN
+	return TransceiverType_TYPE_UNDEFINED
 }
 
 func (m *TransceiverComponentsAttributes) GetMaxDistance() uint32 {
@@ -1395,7 +1437,7 @@
 func (m *Component) String() string { return proto.CompactTextString(m) }
 func (*Component) ProtoMessage()    {}
 func (*Component) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{11}
+	return fileDescriptor_d7c33d745c4ab367, []int{12}
 }
 
 func (m *Component) XXX_Unmarshal(b []byte) error {
@@ -1646,7 +1688,7 @@
 func (m *Hardware) String() string { return proto.CompactTextString(m) }
 func (*Hardware) ProtoMessage()    {}
 func (*Hardware) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{12}
+	return fileDescriptor_d7c33d745c4ab367, []int{13}
 }
 
 func (m *Hardware) XXX_Unmarshal(b []byte) error {
@@ -1704,6 +1746,7 @@
 	//
 	// Types that are valid to be assigned to Specific:
 	//	*ModifiableComponent_PortAttr
+	//	*ModifiableComponent_TrxAttr
 	Specific             isModifiableComponent_Specific `protobuf_oneof:"specific"`
 	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
 	XXX_unrecognized     []byte                         `json:"-"`
@@ -1714,7 +1757,7 @@
 func (m *ModifiableComponent) String() string { return proto.CompactTextString(m) }
 func (*ModifiableComponent) ProtoMessage()    {}
 func (*ModifiableComponent) Descriptor() ([]byte, []int) {
-	return fileDescriptor_d7c33d745c4ab367, []int{13}
+	return fileDescriptor_d7c33d745c4ab367, []int{14}
 }
 
 func (m *ModifiableComponent) XXX_Unmarshal(b []byte) error {
@@ -1799,8 +1842,14 @@
 	PortAttr *PortComponentChangeAttributes `protobuf:"bytes,50,opt,name=port_attr,json=portAttr,proto3,oneof"`
 }
 
+type ModifiableComponent_TrxAttr struct {
+	TrxAttr *TransceiverComponentChangeAttributes `protobuf:"bytes,51,opt,name=trx_attr,json=trxAttr,proto3,oneof"`
+}
+
 func (*ModifiableComponent_PortAttr) isModifiableComponent_Specific() {}
 
+func (*ModifiableComponent_TrxAttr) isModifiableComponent_Specific() {}
+
 func (m *ModifiableComponent) GetSpecific() isModifiableComponent_Specific {
 	if m != nil {
 		return m.Specific
@@ -1815,10 +1864,18 @@
 	return nil
 }
 
+func (m *ModifiableComponent) GetTrxAttr() *TransceiverComponentChangeAttributes {
+	if x, ok := m.GetSpecific().(*ModifiableComponent_TrxAttr); ok {
+		return x.TrxAttr
+	}
+	return nil
+}
+
 // XXX_OneofWrappers is for the internal use of the proto package.
 func (*ModifiableComponent) XXX_OneofWrappers() []interface{} {
 	return []interface{}{
 		(*ModifiableComponent_PortAttr)(nil),
+		(*ModifiableComponent_TrxAttr)(nil),
 	}
 }
 
@@ -1832,12 +1889,12 @@
 	proto.RegisterEnum("dmi.DataValueType", DataValueType_name, DataValueType_value)
 	proto.RegisterEnum("dmi.ValueScale", ValueScale_name, ValueScale_value)
 	proto.RegisterEnum("dmi.SensorStatus", SensorStatus_name, SensorStatus_value)
+	proto.RegisterEnum("dmi.TransceiverType", TransceiverType_name, TransceiverType_value)
 	proto.RegisterEnum("dmi.PortComponentAttributes_ConnectorType", PortComponentAttributes_ConnectorType_name, PortComponentAttributes_ConnectorType_value)
 	proto.RegisterEnum("dmi.PortComponentAttributes_Speed", PortComponentAttributes_Speed_name, PortComponentAttributes_Speed_value)
 	proto.RegisterEnum("dmi.PortComponentAttributes_Protocol", PortComponentAttributes_Protocol_name, PortComponentAttributes_Protocol_value)
 	proto.RegisterEnum("dmi.PsuComponentAttributes_SupportedVoltage", PsuComponentAttributes_SupportedVoltage_name, PsuComponentAttributes_SupportedVoltage_value)
 	proto.RegisterEnum("dmi.TransceiverComponentsAttributes_FormFactor", TransceiverComponentsAttributes_FormFactor_name, TransceiverComponentsAttributes_FormFactor_value)
-	proto.RegisterEnum("dmi.TransceiverComponentsAttributes_Type", TransceiverComponentsAttributes_Type_name, TransceiverComponentsAttributes_Type_value)
 	proto.RegisterType((*Uuid)(nil), "dmi.Uuid")
 	proto.RegisterType((*HardwareID)(nil), "dmi.HardwareID")
 	proto.RegisterType((*Uri)(nil), "dmi.Uri")
@@ -1845,6 +1902,7 @@
 	proto.RegisterType((*ComponentSensorData)(nil), "dmi.ComponentSensorData")
 	proto.RegisterType((*PortComponentAttributes)(nil), "dmi.PortComponentAttributes")
 	proto.RegisterType((*PortComponentChangeAttributes)(nil), "dmi.PortComponentChangeAttributes")
+	proto.RegisterType((*TransceiverComponentChangeAttributes)(nil), "dmi.TransceiverComponentChangeAttributes")
 	proto.RegisterType((*PonIdConfig)(nil), "dmi.PonIdConfig")
 	proto.RegisterType((*ContainerComponentAttributes)(nil), "dmi.ContainerComponentAttributes")
 	proto.RegisterType((*PsuComponentAttributes)(nil), "dmi.PsuComponentAttributes")
@@ -1857,178 +1915,181 @@
 func init() { proto.RegisterFile("dmi/hw.proto", fileDescriptor_d7c33d745c4ab367) }
 
 var fileDescriptor_d7c33d745c4ab367 = []byte{
-	// 2760 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0x4f, 0x8f, 0xdb, 0xc6,
-	0x15, 0xb7, 0xfe, 0x4b, 0x4f, 0xd2, 0xee, 0x78, 0xfc, 0x4f, 0x59, 0xdb, 0x89, 0xa3, 0x26, 0x81,
-	0xb3, 0x6d, 0x76, 0xd7, 0xf2, 0xba, 0x70, 0x1a, 0x04, 0x05, 0x97, 0xa2, 0x56, 0x8c, 0x25, 0x92,
-	0x19, 0x52, 0x6b, 0x6f, 0x2e, 0x04, 0x57, 0xe2, 0x6a, 0x09, 0x48, 0xa4, 0x40, 0x52, 0x1b, 0x1b,
-	0xe8, 0xa9, 0xe8, 0xa5, 0xa7, 0x7e, 0x89, 0xa2, 0xc8, 0xa9, 0x97, 0xf6, 0xd8, 0x43, 0x7b, 0xe8,
-	0x17, 0xe8, 0xad, 0x9f, 0xa1, 0x5f, 0xa0, 0xc7, 0x62, 0x66, 0x48, 0x89, 0xa2, 0x68, 0xc7, 0x01,
-	0x7a, 0x1b, 0xbe, 0xdf, 0xef, 0xbd, 0x79, 0xf3, 0xe6, 0xcd, 0x9b, 0x37, 0x84, 0xc6, 0x64, 0xee,
-	0x1c, 0x5e, 0x7d, 0x7f, 0xb0, 0xf0, 0xbd, 0xd0, 0xc3, 0x85, 0xc9, 0xdc, 0xd9, 0xfb, 0x68, 0xea,
-	0x79, 0xd3, 0x99, 0x7d, 0xc8, 0x44, 0x17, 0xcb, 0xcb, 0xc3, 0xd0, 0x99, 0xdb, 0x41, 0x68, 0xcd,
-	0x17, 0x9c, 0xd5, 0xde, 0x83, 0xe2, 0x68, 0xe9, 0x4c, 0x30, 0x86, 0xe2, 0x72, 0xe9, 0x4c, 0x5a,
-	0xb9, 0x47, 0xb9, 0xc7, 0x35, 0xc2, 0xc6, 0xed, 0x9f, 0x03, 0xf4, 0x2d, 0x7f, 0xf2, 0xbd, 0xe5,
-	0xdb, 0x72, 0x17, 0x3f, 0x4c, 0x30, 0xea, 0x9d, 0xda, 0xc1, 0x64, 0xee, 0x1c, 0x50, 0xd5, 0x88,
-	0x7c, 0x0f, 0x0a, 0x23, 0xdf, 0xc1, 0x08, 0x0a, 0x4b, 0xdf, 0x89, 0xcc, 0xd0, 0x61, 0xfb, 0x77,
-	0x05, 0xd8, 0x11, 0xbd, 0xf9, 0xc2, 0x73, 0x6d, 0x37, 0xd4, 0x43, 0x2b, 0xb4, 0x71, 0x1f, 0x70,
-	0x40, 0x07, 0xe6, 0xcc, 0x0a, 0x42, 0x73, 0x7c, 0x65, 0xb9, 0x53, 0x3b, 0x36, 0xbc, 0x77, 0xc0,
-	0x5d, 0x3e, 0x88, 0x5d, 0x3e, 0x30, 0x62, 0x97, 0x09, 0x62, 0x5a, 0x03, 0x2b, 0x08, 0x45, 0xae,
-	0x83, 0xbf, 0x84, 0xba, 0x35, 0x99, 0x3b, 0xae, 0xc9, 0x90, 0x56, 0xfe, 0x51, 0xee, 0xf1, 0x4e,
-	0xa7, 0xc5, 0x7c, 0x5b, 0xcd, 0x29, 0x50, 0x02, 0x9b, 0x98, 0x80, 0xb5, 0x1a, 0xe3, 0x5f, 0x02,
-	0x78, 0x0b, 0xdb, 0x8f, 0x34, 0x0b, 0x4c, 0xf3, 0xde, 0xa6, 0xa6, 0xba, 0xb0, 0x7d, 0xae, 0x58,
-	0xf3, 0xe2, 0x21, 0x9d, 0x72, 0x19, 0x58, 0x53, 0x3b, 0x52, 0x2c, 0x66, 0x4d, 0x39, 0xa2, 0x84,
-	0x68, 0xca, 0xe5, 0x6a, 0xcc, 0xbc, 0x9d, 0x59, 0xfe, 0x3c, 0x52, 0x2d, 0x65, 0x7a, 0x4b, 0x09,
-	0xb1, 0xb7, 0xab, 0x31, 0xfe, 0x35, 0x34, 0x83, 0xd0, 0x72, 0x27, 0x17, 0x6f, 0x22, 0xe5, 0x32,
-	0x53, 0xde, 0xdb, 0x54, 0xd6, 0x39, 0x85, 0xab, 0x37, 0x82, 0xc4, 0x57, 0xfb, 0x3f, 0x79, 0xb8,
-	0xb5, 0xe6, 0xd9, 0x6e, 0xe0, 0xf9, 0x5d, 0x2b, 0xb4, 0xf0, 0x6d, 0x28, 0x5d, 0x5b, 0xb3, 0xa5,
-	0xcd, 0xc2, 0x5f, 0x22, 0xfc, 0x03, 0x7f, 0x06, 0xc5, 0xf0, 0xcd, 0x22, 0x0e, 0x28, 0x66, 0xb3,
-	0x50, 0xfa, 0x19, 0x45, 0x8d, 0x37, 0x0b, 0x9b, 0x30, 0x1c, 0x7f, 0x0a, 0xa5, 0x60, 0x6c, 0xcd,
-	0xe2, 0xf8, 0xed, 0x32, 0x22, 0x23, 0xe9, 0x54, 0x4c, 0x38, 0x8a, 0x1f, 0x40, 0x6d, 0xe1, 0xdb,
-	0x63, 0x27, 0x70, 0x3c, 0x97, 0x45, 0xac, 0x44, 0xd6, 0x02, 0xfc, 0x39, 0x94, 0xe9, 0x9a, 0x96,
-	0x41, 0x14, 0x91, 0x9b, 0xcc, 0x0a, 0xf7, 0x51, 0x67, 0x00, 0x89, 0x08, 0xf8, 0x67, 0xd0, 0x5c,
-	0xba, 0x4e, 0x18, 0x98, 0x13, 0x27, 0x58, 0xcc, 0xac, 0x37, 0x2c, 0x0c, 0x35, 0xd2, 0x60, 0xc2,
-	0x2e, 0x97, 0xe1, 0xe7, 0x50, 0x5b, 0xa5, 0x79, 0xab, 0xf2, 0xa3, 0x59, 0xb5, 0x26, 0xe3, 0x7d,
-	0xb8, 0xc9, 0xd6, 0x6f, 0x2e, 0x17, 0x13, 0x9a, 0x9f, 0x3e, 0x8d, 0x74, 0xf5, 0x51, 0xee, 0x71,
-	0x93, 0xec, 0x32, 0x60, 0xc4, 0xe4, 0x84, 0xee, 0xc8, 0x7d, 0xa8, 0x4d, 0xac, 0xd0, 0x32, 0x59,
-	0x9c, 0x6a, 0xcc, 0x8d, 0x2a, 0x15, 0xd0, 0xe8, 0xb4, 0xff, 0x51, 0x86, 0x7b, 0x9a, 0xe7, 0x87,
-	0xeb, 0x6d, 0x0d, 0x43, 0xdf, 0xb9, 0x58, 0x86, 0x76, 0x80, 0xbf, 0x85, 0x9d, 0xb1, 0xe7, 0xba,
-	0xf6, 0x38, 0xf4, 0x7c, 0xae, 0x9d, 0x63, 0xcb, 0xde, 0x67, 0xcb, 0x7e, 0x8b, 0xd6, 0x81, 0x18,
-	0xab, 0xb0, 0xe8, 0x37, 0xc7, 0xc9, 0x4f, 0xfc, 0x1c, 0x4a, 0xc1, 0xc2, 0xb6, 0x27, 0xd1, 0x7e,
-	0xb5, 0xdf, 0x69, 0x49, 0xa7, 0x4c, 0xc2, 0x15, 0xb0, 0x00, 0x55, 0x16, 0x92, 0xb1, 0x37, 0x8b,
-	0xf6, 0xf0, 0xd3, 0x77, 0x2a, 0x6b, 0x11, 0x99, 0xac, 0xd4, 0xf0, 0xa7, 0xb0, 0xb3, 0xb8, 0x7a,
-	0x13, 0x38, 0x63, 0x6b, 0x66, 0xce, 0xac, 0x0b, 0x7b, 0xc6, 0x76, 0xb8, 0x46, 0x9a, 0xb1, 0x74,
-	0x40, 0x85, 0x74, 0xeb, 0xe6, 0xd6, 0x62, 0xe1, 0xb8, 0xd3, 0x88, 0x55, 0xe2, 0x5b, 0x17, 0x09,
-	0x39, 0xe9, 0x18, 0x9a, 0x0b, 0xcf, 0x35, 0x9d, 0x89, 0x39, 0xf6, 0xdc, 0x4b, 0x67, 0xca, 0xf6,
-	0xb7, 0xde, 0x41, 0x91, 0x4f, 0xae, 0x3c, 0x11, 0x99, 0x9c, 0xd4, 0x17, 0xeb, 0x0f, 0xfc, 0x14,
-	0xee, 0xb0, 0xd5, 0x98, 0xd6, 0x32, 0xf4, 0x5c, 0x7b, 0xea, 0x85, 0x8e, 0x15, 0xd2, 0x54, 0xa3,
-	0x9b, 0x5f, 0x25, 0xb7, 0x19, 0x28, 0x6c, 0x62, 0xed, 0x05, 0x34, 0x37, 0x62, 0x8a, 0x1f, 0x40,
-	0x4b, 0x54, 0x15, 0x45, 0x12, 0x0d, 0x95, 0x98, 0xc6, 0xb9, 0x26, 0x99, 0x23, 0xa5, 0x2b, 0xf5,
-	0x64, 0x45, 0xea, 0xa2, 0x1b, 0xb8, 0x0a, 0x45, 0xf2, 0xcd, 0xf1, 0x33, 0x94, 0xc3, 0x0d, 0xa8,
-	0xf6, 0xe4, 0x13, 0x89, 0x98, 0x03, 0x11, 0xe5, 0xf1, 0x2e, 0xd4, 0xf9, 0x97, 0x2e, 0x9a, 0x9a,
-	0x88, 0x0a, 0xb8, 0x09, 0x35, 0x2e, 0x18, 0x6a, 0x2a, 0x2a, 0xe2, 0x1a, 0x94, 0x88, 0xde, 0x79,
-	0xda, 0x41, 0xa5, 0xf6, 0x9f, 0x73, 0x50, 0x62, 0xc1, 0xc7, 0xb7, 0x60, 0x57, 0xd7, 0x24, 0xa9,
-	0xbb, 0x31, 0x43, 0x1d, 0x2a, 0xdd, 0x73, 0x45, 0x18, 0xca, 0x22, 0xca, 0x51, 0x2b, 0xa7, 0xf2,
-	0xa9, 0x70, 0x22, 0x1b, 0xe6, 0x13, 0x94, 0xc7, 0x3b, 0x00, 0xab, 0xcf, 0x23, 0x54, 0x48, 0x7e,
-	0x77, 0x9e, 0xa1, 0x62, 0xf2, 0xfb, 0xf8, 0x08, 0x95, 0xa8, 0x57, 0x6b, 0xfe, 0x11, 0x2a, 0x27,
-	0x05, 0xc7, 0x47, 0x47, 0xa8, 0x82, 0x11, 0x34, 0x86, 0x52, 0x6c, 0xe1, 0xe8, 0x08, 0x55, 0x93,
-	0x92, 0x27, 0x9d, 0x67, 0x47, 0xa8, 0xd6, 0xfe, 0x0d, 0x54, 0xe3, 0xfd, 0xc6, 0x77, 0x01, 0x6b,
-	0x44, 0x35, 0x54, 0x51, 0x1d, 0x6c, 0x78, 0xdd, 0x80, 0xaa, 0x64, 0xf4, 0x25, 0xa2, 0x48, 0x06,
-	0xca, 0xd1, 0x28, 0x9d, 0x6a, 0xaa, 0x82, 0xf2, 0x74, 0xdd, 0xaf, 0xd8, 0xb0, 0x80, 0x01, 0xca,
-	0xaf, 0x4e, 0x75, 0x3a, 0x66, 0xe1, 0x38, 0xed, 0x09, 0xba, 0x81, 0x4a, 0x54, 0xac, 0x4b, 0x44,
-	0x16, 0x06, 0xa8, 0x4c, 0xf5, 0x24, 0x4a, 0xa8, 0xd0, 0xd1, 0x89, 0x6c, 0xe8, 0xa8, 0xda, 0x1e,
-	0xc1, 0xc3, 0x8d, 0x2c, 0xe4, 0x35, 0x3f, 0x71, 0x90, 0xb6, 0x92, 0x25, 0xf7, 0x1e, 0xc9, 0xd2,
-	0x1e, 0x43, 0x3d, 0x81, 0xe1, 0x3b, 0x50, 0xe6, 0x46, 0x98, 0x76, 0x83, 0x94, 0x18, 0x17, 0x7f,
-	0x0d, 0xf7, 0x23, 0xdb, 0xa1, 0x6f, 0xb9, 0xc1, 0xdc, 0x09, 0xcd, 0x85, 0xed, 0x3b, 0xde, 0xc4,
-	0x19, 0x3b, 0xe1, 0x1b, 0x76, 0xce, 0x9a, 0xa4, 0xc5, 0xb8, 0x46, 0x44, 0xd0, 0xd6, 0x78, 0x5b,
-	0x82, 0x07, 0xa2, 0xe7, 0x86, 0x96, 0xe3, 0xda, 0x7e, 0x56, 0x0d, 0xd8, 0x3e, 0x33, 0xb9, 0x8c,
-	0x33, 0xd3, 0xfe, 0x67, 0x0e, 0xee, 0x6a, 0xc1, 0x32, 0xcb, 0xc2, 0x39, 0xdc, 0x0c, 0x96, 0x8b,
-	0x85, 0xe7, 0x87, 0xf6, 0xc4, 0xbc, 0xf6, 0x66, 0xa1, 0x35, 0x8d, 0x0b, 0xc9, 0x2f, 0x78, 0x00,
-	0x32, 0xf5, 0x0e, 0xf4, 0x58, 0xe9, 0x8c, 0xeb, 0x10, 0x14, 0xa4, 0x24, 0x6d, 0x0d, 0x50, 0x9a,
-	0x85, 0x3f, 0x82, 0xfb, 0xfa, 0x48, 0xd3, 0x54, 0x62, 0x48, 0x5d, 0xf3, 0x4c, 0x1d, 0x18, 0xc2,
-	0xe9, 0xe6, 0xf9, 0xa8, 0x40, 0xe1, 0xec, 0xf8, 0x39, 0x4f, 0x81, 0xb3, 0xce, 0xd3, 0x23, 0x94,
-	0x67, 0xa3, 0x27, 0x4f, 0x9e, 0xa1, 0x42, 0xfb, 0x5f, 0x25, 0xf8, 0x88, 0x85, 0x69, 0x6c, 0x3b,
-	0xd7, 0x89, 0x88, 0x04, 0x89, 0x05, 0x69, 0x50, 0xbf, 0xf4, 0xfc, 0xb9, 0x79, 0x69, 0xd1, 0x13,
-	0x19, 0x2d, 0xe5, 0x90, 0x2d, 0xe5, 0x47, 0x54, 0x0f, 0x7a, 0x9e, 0x3f, 0xef, 0x31, 0x35, 0x02,
-	0x97, 0xab, 0x31, 0xee, 0x03, 0xb0, 0xcd, 0x33, 0x13, 0x57, 0xd9, 0xe7, 0xef, 0x65, 0x90, 0xd5,
-	0xd8, 0x1a, 0x53, 0x66, 0xa5, 0xe1, 0x63, 0x68, 0xcc, 0xad, 0xd7, 0xf4, 0xd2, 0x09, 0x2d, 0x77,
-	0xcc, 0x6f, 0xbb, 0x26, 0xa9, 0xcf, 0xad, 0xd7, 0xdd, 0x48, 0x84, 0xbf, 0x06, 0x9c, 0xa4, 0x98,
-	0xfc, 0x5a, 0x2c, 0x66, 0x5f, 0x8b, 0x28, 0xa1, 0xc9, 0x24, 0xb4, 0x3a, 0xfa, 0xaf, 0xcd, 0xef,
-	0xad, 0x6b, 0x7b, 0x66, 0xbb, 0xd3, 0xf0, 0xaa, 0x55, 0x7a, 0x54, 0x78, 0xdc, 0x24, 0x0d, 0xff,
-	0xf5, 0xcb, 0x95, 0x8c, 0x92, 0xc2, 0x0d, 0x52, 0x99, 0x93, 0xc2, 0x24, 0xe9, 0x57, 0x80, 0xd6,
-	0x8c, 0xc8, 0x8d, 0x4a, 0xb6, 0x1b, 0xbb, 0x6b, 0x22, 0x13, 0xb4, 0xff, 0x9e, 0x03, 0x58, 0x07,
-	0x13, 0xdf, 0x83, 0x5b, 0x3d, 0x95, 0x0c, 0xcd, 0x9e, 0xc0, 0x6a, 0xe2, 0x48, 0x79, 0xa1, 0xa8,
-	0x2f, 0x15, 0x5e, 0x0c, 0xbf, 0xd5, 0x7b, 0x1a, 0xaf, 0x53, 0x74, 0x64, 0x6a, 0x83, 0x91, 0x8e,
-	0xf2, 0xf4, 0x4c, 0xd3, 0xcf, 0xce, 0x73, 0x54, 0xa0, 0x19, 0x41, 0x39, 0x45, 0x5a, 0x22, 0x56,
-	0x94, 0x12, 0x15, 0xbf, 0xea, 0x69, 0xfc, 0xcc, 0x8b, 0x3d, 0xed, 0x98, 0x9f, 0x79, 0xb1, 0xa7,
-	0x75, 0x50, 0x95, 0x8d, 0x34, 0xe1, 0x05, 0xaa, 0xe1, 0x32, 0xe4, 0x5f, 0x75, 0x10, 0xd0, 0x82,
-	0xa1, 0xd2, 0xfa, 0x82, 0xea, 0x54, 0x53, 0xec, 0x69, 0xa8, 0x41, 0x0d, 0x52, 0xbe, 0x29, 0x88,
-	0x2a, 0x6a, 0xae, 0xbe, 0xba, 0xa2, 0x8a, 0x76, 0xda, 0x57, 0x50, 0x64, 0x5b, 0x86, 0xa0, 0x11,
-	0xd5, 0xf0, 0xd8, 0xe9, 0x9f, 0x58, 0xa9, 0x98, 0x2b, 0xaa, 0x82, 0x4a, 0xb4, 0x30, 0x2b, 0xa7,
-	0xa6, 0xa6, 0x2a, 0x9d, 0x64, 0xa5, 0x6a, 0xff, 0xbb, 0x02, 0xb5, 0x55, 0xf6, 0xd0, 0x06, 0xda,
-	0xb5, 0xe6, 0x76, 0xdc, 0x40, 0xd3, 0x31, 0x7e, 0x0c, 0xa5, 0xf1, 0xcc, 0x0a, 0x82, 0x8d, 0x36,
-	0x6a, 0xa5, 0xc2, 0x92, 0x8c, 0x13, 0xf0, 0x23, 0xa8, 0x4f, 0xec, 0x60, 0xec, 0x3b, 0x0b, 0x76,
-	0x6f, 0x15, 0x98, 0x91, 0xa4, 0x08, 0xdf, 0x85, 0xf2, 0xc2, 0xf2, 0x6d, 0x37, 0x8c, 0x6e, 0xd7,
-	0xe8, 0x0b, 0x7f, 0x02, 0x3b, 0x7c, 0x64, 0xfa, 0xf6, 0xcc, 0x5c, 0x78, 0xbc, 0x89, 0x2a, 0x91,
-	0x06, 0x97, 0x12, 0x7b, 0xa6, 0x79, 0x01, 0xde, 0x87, 0xea, 0xf8, 0xca, 0x99, 0x4d, 0x7c, 0xdb,
-	0x65, 0x49, 0x53, 0xef, 0xec, 0x6c, 0x3a, 0x43, 0x56, 0x38, 0x4d, 0xf6, 0xab, 0xa8, 0xed, 0x37,
-	0x7d, 0xfb, 0x9a, 0x25, 0x4f, 0x8d, 0xd4, 0x63, 0x19, 0xb1, 0xaf, 0x29, 0xe5, 0xd2, 0xf1, 0xe7,
-	0x2b, 0x4a, 0x95, 0x53, 0x62, 0x59, 0x44, 0x09, 0xbc, 0xcb, 0x70, 0x45, 0xe1, 0x1d, 0x52, 0x3d,
-	0x96, 0x51, 0xca, 0x43, 0x80, 0xc0, 0xf6, 0x1d, 0x6b, 0x66, 0xba, 0xcb, 0x79, 0x0b, 0x18, 0xa1,
-	0xc6, 0x25, 0xca, 0x72, 0x8e, 0x3f, 0x80, 0xea, 0xfc, 0x72, 0x6a, 0xb2, 0xa8, 0xd6, 0x19, 0x58,
-	0x99, 0x5f, 0x4e, 0x15, 0x1a, 0xd8, 0x87, 0x00, 0x73, 0x6f, 0x62, 0xcf, 0x38, 0xd8, 0xe0, 0x9a,
-	0x4c, 0xc2, 0xe0, 0xdb, 0x50, 0xb2, 0x66, 0x8e, 0x15, 0xb4, 0x9a, 0x0c, 0xe1, 0x1f, 0xd4, 0x9e,
-	0x15, 0x04, 0x76, 0x48, 0x6b, 0xfd, 0x0e, 0xb7, 0xc7, 0xbe, 0xe5, 0x09, 0xbd, 0x04, 0x9c, 0xc0,
-	0xbc, 0xf4, 0x97, 0xad, 0x5d, 0xd6, 0x31, 0x94, 0x9c, 0xa0, 0xe7, 0x2f, 0xf1, 0x33, 0xee, 0x01,
-	0x6d, 0xf9, 0x5a, 0xe8, 0x47, 0xfb, 0x48, 0xea, 0x5d, 0x97, 0x76, 0x86, 0x7b, 0xfc, 0x0d, 0x74,
-	0x93, 0x69, 0x54, 0xf9, 0x43, 0xc9, 0x77, 0xd8, 0x6b, 0x68, 0xf5, 0x8a, 0xc2, 0x99, 0xaf, 0x28,
-	0xfc, 0x39, 0x94, 0x78, 0x7b, 0x7f, 0x8b, 0xe1, 0xb7, 0xb6, 0xda, 0xfb, 0x90, 0xf6, 0xd4, 0xf1,
-	0x63, 0x22, 0x60, 0x2d, 0x32, 0xf5, 0xcf, 0x6a, 0xdd, 0x66, 0xbb, 0x9a, 0x7a, 0x4c, 0xac, 0xfb,
-	0x7c, 0x02, 0xc1, 0xba, 0xe7, 0xff, 0x0a, 0x6a, 0xb4, 0xba, 0x9b, 0x56, 0x18, 0xfa, 0xad, 0x0e,
-	0x9b, 0xe9, 0xc1, 0xbb, 0xba, 0xbe, 0xfe, 0x0d, 0x52, 0xa5, 0x0a, 0x54, 0x82, 0xbf, 0x61, 0xed,
-	0x2b, 0xbf, 0xda, 0xb8, 0x85, 0xa7, 0xcc, 0xc2, 0xc7, 0xd1, 0xd4, 0x6f, 0xbf, 0xf5, 0xfa, 0x37,
-	0x58, 0xdf, 0xca, 0x71, 0x66, 0xeb, 0x39, 0x54, 0x17, 0xc1, 0x92, 0x5b, 0x39, 0x66, 0x56, 0xee,
-	0xbf, 0xe3, 0xee, 0xea, 0xdf, 0x20, 0x95, 0x45, 0xb0, 0x64, 0x9a, 0xdf, 0x02, 0x0a, 0xd7, 0x45,
-	0x9c, 0x5b, 0x78, 0xc6, 0x2c, 0x7c, 0xf2, 0x3e, 0x15, 0xbe, 0x7f, 0x83, 0xec, 0x26, 0xf4, 0x29,
-	0x70, 0x02, 0x50, 0x0d, 0x16, 0xf6, 0xd8, 0xb9, 0x74, 0xc6, 0xed, 0x1f, 0x72, 0x50, 0x8d, 0xdf,
-	0xbe, 0xf8, 0x2b, 0xa8, 0x27, 0x1e, 0xaa, 0xef, 0xf1, 0x4e, 0x85, 0xd9, 0xea, 0x89, 0x8a, 0xdb,
-	0x50, 0xf4, 0x3d, 0x2f, 0x64, 0x25, 0x60, 0xfb, 0xd4, 0x31, 0x6c, 0x35, 0xc1, 0x85, 0xe7, 0x85,
-	0xf6, 0x84, 0x9d, 0xfe, 0xf7, 0x98, 0xe0, 0x84, 0xb1, 0xdb, 0xff, 0xcd, 0xc3, 0xad, 0xa1, 0x37,
-	0x71, 0x2e, 0x1d, 0xeb, 0x62, 0x66, 0xff, 0xbf, 0x0a, 0xd2, 0x67, 0xab, 0x72, 0x53, 0xc8, 0x74,
-	0xfc, 0xed, 0xe5, 0xa7, 0x98, 0x51, 0x7e, 0x56, 0x07, 0xb2, 0xf4, 0xb6, 0x03, 0x59, 0xde, 0x3c,
-	0x90, 0xd1, 0x11, 0xaa, 0x64, 0x1d, 0xa1, 0xd4, 0x9b, 0xbf, 0xfa, 0x13, 0xde, 0xfc, 0xc2, 0x76,
-	0xe2, 0x67, 0xbc, 0x95, 0xd2, 0x8d, 0x66, 0x32, 0xfd, 0x93, 0x59, 0xb2, 0xff, 0xd7, 0x02, 0x7d,
-	0x43, 0x24, 0xa2, 0xc7, 0xdf, 0x10, 0x43, 0x4d, 0x55, 0x24, 0xc5, 0xd8, 0x7e, 0x43, 0xec, 0xc1,
-	0xdd, 0x2d, 0x94, 0xdf, 0x4e, 0xb9, 0x0c, 0x4c, 0xec, 0x0b, 0xba, 0x2e, 0xd3, 0x5b, 0x75, 0xdb,
-	0xea, 0x89, 0x20, 0xbe, 0xd0, 0x06, 0x82, 0x22, 0xa1, 0x42, 0x06, 0x2a, 0xaa, 0x8a, 0x21, 0xc8,
-	0x8a, 0x44, 0x50, 0x91, 0x36, 0x6e, 0x29, 0x54, 0x53, 0x5f, 0xd2, 0xe7, 0xca, 0x48, 0xd3, 0x06,
-	0xe7, 0xa8, 0x44, 0x1b, 0xfb, 0x14, 0xa1, 0x27, 0x28, 0xa8, 0x8c, 0x3f, 0x80, 0x3b, 0x29, 0xb9,
-	0x2e, 0x29, 0xba, 0x4a, 0x50, 0x25, 0x03, 0x1a, 0xaa, 0xdd, 0xd1, 0x40, 0x42, 0x55, 0xda, 0x32,
-	0x6c, 0x4d, 0x47, 0x0c, 0x54, 0xcb, 0x98, 0x46, 0xd4, 0x46, 0x08, 0x32, 0xd6, 0x7d, 0x22, 0x18,
-	0x86, 0x44, 0xce, 0x51, 0x3d, 0x03, 0xd3, 0x0d, 0x95, 0x08, 0xa7, 0x12, 0x6a, 0x64, 0xf9, 0x20,
-	0x0d, 0x55, 0x72, 0x8e, 0x9a, 0xf8, 0x43, 0xd8, 0x4b, 0x41, 0x06, 0x11, 0x14, 0x5d, 0x94, 0xe4,
-	0x33, 0x89, 0xa0, 0x9d, 0xfd, 0xbf, 0xe4, 0x12, 0xbf, 0x42, 0xd6, 0x99, 0x12, 0xeb, 0x99, 0x42,
-	0x77, 0x28, 0x2b, 0xa6, 0x6e, 0x08, 0xc6, 0xe6, 0xf6, 0x45, 0x81, 0x4e, 0xe1, 0xf1, 0x06, 0xde,
-	0x87, 0x7b, 0x5b, 0xe8, 0x40, 0x15, 0x5f, 0x48, 0x5d, 0x94, 0xc7, 0x6d, 0xf8, 0x70, 0x0b, 0xd4,
-	0xfb, 0x23, 0xc3, 0x90, 0x95, 0x53, 0xb3, 0x4b, 0x0d, 0x14, 0xf0, 0x43, 0xf8, 0x20, 0xc3, 0x7c,
-	0x64, 0xa2, 0xb8, 0xff, 0x43, 0x0e, 0xf0, 0xf6, 0x9f, 0xa9, 0x95, 0x96, 0xaa, 0xd1, 0x4d, 0xdd,
-	0xf2, 0x39, 0xf6, 0x6a, 0x03, 0x8e, 0x5d, 0x8e, 0x17, 0x94, 0x00, 0xbb, 0xb2, 0x2e, 0x9c, 0x0c,
-	0x98, 0xcf, 0x19, 0xaa, 0x92, 0xc2, 0xc1, 0x42, 0x16, 0x68, 0x48, 0x3a, 0x5d, 0x0e, 0x2a, 0xee,
-	0xff, 0x29, 0x19, 0xe0, 0xf5, 0xbf, 0xb0, 0x55, 0x80, 0x47, 0x3a, 0x7d, 0x3d, 0xbc, 0x3d, 0xc0,
-	0x9b, 0x78, 0xec, 0x6d, 0xb4, 0xe3, 0x1b, 0xa8, 0xdc, 0x1d, 0x48, 0x09, 0x57, 0x93, 0x90, 0x20,
-	0x1a, 0xf2, 0x19, 0x3d, 0x1f, 0x59, 0x7a, 0x27, 0x23, 0xfd, 0x1c, 0x15, 0xf7, 0xff, 0x90, 0xfc,
-	0x29, 0xb6, 0xfe, 0xf3, 0xb6, 0xce, 0x84, 0x81, 0x40, 0x86, 0xef, 0xca, 0x84, 0x0d, 0x3c, 0x76,
-	0xf4, 0x63, 0x78, 0x98, 0xa9, 0x4d, 0x4c, 0x22, 0x69, 0x82, 0x4c, 0x50, 0x7e, 0xbd, 0xd7, 0x09,
-	0x8a, 0x48, 0x64, 0x43, 0x16, 0x85, 0x01, 0x2a, 0xc4, 0x89, 0xbf, 0x01, 0x0f, 0x85, 0x6f, 0x54,
-	0x7a, 0xa0, 0x33, 0x31, 0x59, 0x51, 0x09, 0x2a, 0x65, 0xfa, 0xf5, 0x52, 0x20, 0x0a, 0xdd, 0x96,
-	0xf2, 0x3a, 0x09, 0x13, 0xa8, 0xac, 0x74, 0x25, 0x43, 0x22, 0x43, 0x59, 0x11, 0x0c, 0x09, 0x55,
-	0xf6, 0xff, 0x96, 0x83, 0x3b, 0x99, 0xbf, 0x13, 0xf1, 0x23, 0x78, 0xc0, 0xb4, 0x75, 0x43, 0x50,
-	0xba, 0x27, 0xe7, 0x19, 0x51, 0x89, 0xa3, 0x96, 0x66, 0xa4, 0x4a, 0x5c, 0x0a, 0xef, 0xab, 0x46,
-	0x62, 0x07, 0x37, 0x31, 0x51, 0x1d, 0xd0, 0x64, 0x7b, 0x0c, 0x9f, 0x64, 0x80, 0x1a, 0x51, 0xcf,
-	0xe4, 0x2e, 0x3d, 0x40, 0xba, 0x44, 0xce, 0x64, 0x51, 0x42, 0xc5, 0xfd, 0xdf, 0x17, 0xa0, 0xb9,
-	0xf1, 0x9f, 0x12, 0xb7, 0xe0, 0xf6, 0x99, 0x30, 0x18, 0x49, 0xdb, 0xd5, 0xf8, 0x36, 0xa0, 0x04,
-	0xc2, 0x1f, 0x19, 0x39, 0x5a, 0xa7, 0x36, 0xf8, 0xdc, 0xf9, 0x3c, 0x2d, 0x6c, 0x09, 0x39, 0x7d,
-	0x01, 0xeb, 0xa6, 0x20, 0xa2, 0x42, 0x26, 0xd0, 0x15, 0x51, 0x31, 0x65, 0x49, 0x18, 0x6a, 0x12,
-	0x91, 0xe8, 0x03, 0x68, 0x73, 0xde, 0x97, 0x82, 0x61, 0xe8, 0xa8, 0x9c, 0x92, 0xf6, 0x25, 0x62,
-	0x7c, 0x87, 0x2a, 0x29, 0x1b, 0xa2, 0x34, 0xd0, 0xe5, 0x91, 0x8e, 0xaa, 0x34, 0xa7, 0x13, 0x72,
-	0x4d, 0x22, 0x22, 0xad, 0x75, 0xa4, 0x8f, 0x6a, 0x18, 0xc3, 0x4e, 0x02, 0x22, 0xda, 0x10, 0x41,
-	0x4a, 0x26, 0x0e, 0x87, 0xbc, 0xb8, 0x26, 0x64, 0x06, 0x19, 0x19, 0x7d, 0x93, 0x09, 0x50, 0x23,
-	0x35, 0x6d, 0x64, 0x1e, 0x35, 0xf1, 0x1d, 0xb8, 0x99, 0x90, 0x0f, 0x69, 0xe6, 0xe8, 0x68, 0x27,
-	0xe5, 0xfb, 0xc9, 0xb9, 0x21, 0xe9, 0x68, 0x77, 0xff, 0x8f, 0x05, 0x80, 0xf5, 0x63, 0x73, 0xed,
-	0xb2, 0x2e, 0x0a, 0x83, 0xcd, 0x9d, 0x58, 0x99, 0xe5, 0xd0, 0xb9, 0x2a, 0x1a, 0x2a, 0xca, 0xa5,
-	0xc5, 0xdf, 0x49, 0x9a, 0xa1, 0xa2, 0xfc, 0x7a, 0x36, 0x2e, 0x16, 0x0c, 0x43, 0x45, 0x85, 0x34,
-	0xb9, 0x27, 0x0d, 0x0d, 0x15, 0x15, 0xd3, 0x64, 0x4d, 0x16, 0xd5, 0xe4, 0x16, 0x70, 0xa9, 0x22,
-	0x28, 0x2a, 0x2a, 0xa7, 0x4d, 0x0c, 0x65, 0x91, 0xa8, 0xa8, 0xb2, 0x2d, 0x1e, 0x0c, 0x64, 0x54,
-	0x4d, 0x8b, 0x47, 0x8a, 0x6c, 0xe8, 0xa8, 0x96, 0x36, 0xfd, 0x42, 0x1e, 0xa8, 0x08, 0xd2, 0xd2,
-	0xa1, 0x74, 0x2a, 0xa0, 0x7a, 0x5a, 0x7a, 0x2a, 0x9f, 0x0a, 0xa8, 0x91, 0x96, 0x1a, 0x12, 0x11,
-	0x50, 0x73, 0x6b, 0x21, 0x92, 0x21, 0xa0, 0x1d, 0x7c, 0x0b, 0x76, 0x93, 0x52, 0xe9, 0x95, 0x80,
-	0x76, 0xb7, 0xe3, 0x66, 0x18, 0x02, 0x42, 0xdb, 0x51, 0xa6, 0xe2, 0x9b, 0xfb, 0xbf, 0xcd, 0x41,
-	0x23, 0xf9, 0xaf, 0x9d, 0x1e, 0x45, 0x7e, 0xd3, 0xb3, 0x73, 0x36, 0xd2, 0xd3, 0x87, 0x66, 0x13,
-	0x54, 0x5f, 0xa0, 0x1c, 0x2d, 0x67, 0x69, 0x15, 0xe1, 0x4c, 0x90, 0x07, 0xf4, 0xb6, 0x40, 0x79,
-	0x5a, 0x3a, 0x36, 0x61, 0x45, 0x55, 0xe8, 0xc5, 0x21, 0x18, 0xb2, 0xaa, 0xd0, 0x82, 0x77, 0xf2,
-	0xd5, 0x77, 0x5f, 0x4e, 0x9d, 0xf0, 0x6a, 0x79, 0x71, 0x30, 0xf6, 0xe6, 0x87, 0xde, 0xc2, 0x76,
-	0xc7, 0x9e, 0x3f, 0x39, 0x9c, 0xd8, 0xd7, 0xce, 0xd8, 0xfe, 0x62, 0x6e, 0xb9, 0xd6, 0xd4, 0x9e,
-	0xdb, 0x6e, 0xf8, 0x85, 0xe3, 0x86, 0xb6, 0x7f, 0x69, 0x8d, 0xed, 0xc3, 0xeb, 0xa7, 0x87, 0x53,
-	0xef, 0x70, 0x32, 0x77, 0x2e, 0xca, 0xac, 0x43, 0x7e, 0xfa, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff,
-	0x3b, 0x2e, 0xf2, 0xc9, 0x00, 0x1b, 0x00, 0x00,
+	// 2812 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x58, 0xcd, 0x72, 0xe3, 0xc6,
+	0xf1, 0x5f, 0x7e, 0x93, 0x4d, 0x52, 0x9a, 0x9d, 0xfd, 0xa2, 0xf7, 0xc3, 0x5e, 0xf3, 0xbf, 0x76,
+	0xad, 0xf5, 0x8f, 0x25, 0x2d, 0xa5, 0x4d, 0xad, 0xe3, 0x72, 0xa5, 0x20, 0x10, 0x94, 0xe0, 0x25,
+	0x01, 0x78, 0x00, 0x6a, 0x57, 0xce, 0x01, 0x05, 0x91, 0x10, 0x85, 0x2a, 0x12, 0x60, 0x01, 0xa0,
+	0xbc, 0x5b, 0x95, 0x53, 0x2a, 0x97, 0x1c, 0x52, 0x79, 0x89, 0x54, 0xca, 0xa7, 0x5c, 0x92, 0x63,
+	0x0e, 0xce, 0x21, 0x4f, 0x90, 0x53, 0x9e, 0x21, 0x0f, 0x91, 0xd4, 0xcc, 0x00, 0x24, 0x08, 0x42,
+	0xeb, 0x75, 0x55, 0x6e, 0x33, 0xfd, 0xfb, 0x75, 0x4f, 0xa3, 0xbb, 0xa7, 0x67, 0x06, 0xd0, 0x18,
+	0xcf, 0x9c, 0xbd, 0xcb, 0xef, 0x76, 0xe7, 0xbe, 0x17, 0x7a, 0xb8, 0x30, 0x9e, 0x39, 0xf7, 0x3f,
+	0x9a, 0x78, 0xde, 0x64, 0x6a, 0xef, 0x31, 0xd1, 0xf9, 0xe2, 0x62, 0x2f, 0x74, 0x66, 0x76, 0x10,
+	0x5a, 0xb3, 0x39, 0x67, 0xb5, 0xef, 0x43, 0x71, 0xb8, 0x70, 0xc6, 0x18, 0x43, 0x71, 0xb1, 0x70,
+	0xc6, 0xad, 0xdc, 0xe3, 0xdc, 0xd3, 0x1a, 0x61, 0xe3, 0xf6, 0xff, 0x03, 0x9c, 0x58, 0xfe, 0xf8,
+	0x3b, 0xcb, 0xb7, 0xe5, 0x2e, 0x7e, 0x94, 0x60, 0xd4, 0x3b, 0xb5, 0xdd, 0xf1, 0xcc, 0xd9, 0xa5,
+	0xaa, 0x11, 0xf9, 0x1e, 0x14, 0x86, 0xbe, 0x83, 0x11, 0x14, 0x16, 0xbe, 0x13, 0x99, 0xa1, 0xc3,
+	0xf6, 0x6f, 0x0b, 0xb0, 0x25, 0x7a, 0xb3, 0xb9, 0xe7, 0xda, 0x6e, 0xa8, 0x87, 0x56, 0x68, 0xe3,
+	0x13, 0xc0, 0x01, 0x1d, 0x98, 0x53, 0x2b, 0x08, 0xcd, 0xd1, 0xa5, 0xe5, 0x4e, 0xec, 0xd8, 0xf0,
+	0xfd, 0x5d, 0xee, 0xf2, 0x6e, 0xec, 0xf2, 0xae, 0x11, 0xbb, 0x4c, 0x10, 0xd3, 0xea, 0x5b, 0x41,
+	0x28, 0x72, 0x1d, 0xfc, 0x05, 0xd4, 0xad, 0xf1, 0xcc, 0x71, 0x4d, 0x86, 0xb4, 0xf2, 0x8f, 0x73,
+	0x4f, 0xb7, 0x3a, 0x2d, 0xe6, 0xdb, 0x72, 0x4d, 0x81, 0x12, 0xd8, 0xc2, 0x04, 0xac, 0xe5, 0x18,
+	0xff, 0x1c, 0xc0, 0x9b, 0xdb, 0x7e, 0xa4, 0x59, 0x60, 0x9a, 0xf7, 0xd6, 0x35, 0xd5, 0xb9, 0xed,
+	0x73, 0xc5, 0x9a, 0x17, 0x0f, 0xe9, 0x92, 0x8b, 0xc0, 0x9a, 0xd8, 0x91, 0x62, 0x31, 0x6b, 0xc9,
+	0x21, 0x25, 0x44, 0x4b, 0x2e, 0x96, 0x63, 0xe6, 0xed, 0xd4, 0xf2, 0x67, 0x91, 0x6a, 0x29, 0xd3,
+	0x5b, 0x4a, 0x88, 0xbd, 0x5d, 0x8e, 0xf1, 0x2f, 0xa1, 0x19, 0x84, 0x96, 0x3b, 0x3e, 0x7f, 0x1b,
+	0x29, 0x97, 0x99, 0xf2, 0xfd, 0x75, 0x65, 0x9d, 0x53, 0xb8, 0x7a, 0x23, 0x48, 0xcc, 0xda, 0xff,
+	0xce, 0xc3, 0xad, 0x15, 0xcf, 0x76, 0x03, 0xcf, 0xef, 0x5a, 0xa1, 0x85, 0x6f, 0x43, 0xe9, 0xca,
+	0x9a, 0x2e, 0x6c, 0x16, 0xfe, 0x12, 0xe1, 0x13, 0xfc, 0x29, 0x14, 0xc3, 0xb7, 0xf3, 0x38, 0xa0,
+	0x98, 0xad, 0x42, 0xe9, 0xa7, 0x14, 0x35, 0xde, 0xce, 0x6d, 0xc2, 0x70, 0xfc, 0x09, 0x94, 0x82,
+	0x91, 0x35, 0x8d, 0xe3, 0xb7, 0xcd, 0x88, 0x8c, 0xa4, 0x53, 0x31, 0xe1, 0x28, 0x7e, 0x08, 0xb5,
+	0xb9, 0x6f, 0x8f, 0x9c, 0xc0, 0xf1, 0x5c, 0x16, 0xb1, 0x12, 0x59, 0x09, 0xf0, 0x67, 0x50, 0xa6,
+	0xdf, 0xb4, 0x08, 0xa2, 0x88, 0xdc, 0x64, 0x56, 0xb8, 0x8f, 0x3a, 0x03, 0x48, 0x44, 0xc0, 0xff,
+	0x07, 0xcd, 0x85, 0xeb, 0x84, 0x81, 0x39, 0x76, 0x82, 0xf9, 0xd4, 0x7a, 0xcb, 0xc2, 0x50, 0x23,
+	0x0d, 0x26, 0xec, 0x72, 0x19, 0x7e, 0x01, 0xb5, 0x65, 0x99, 0xb7, 0x2a, 0x3f, 0x5a, 0x55, 0x2b,
+	0x32, 0xde, 0x81, 0x9b, 0xec, 0xfb, 0xcd, 0xc5, 0x7c, 0x4c, 0xeb, 0xd3, 0xa7, 0x91, 0xae, 0x3e,
+	0xce, 0x3d, 0x6d, 0x92, 0x6d, 0x06, 0x0c, 0x99, 0x9c, 0xd0, 0x8c, 0x3c, 0x80, 0xda, 0xd8, 0x0a,
+	0x2d, 0x93, 0xc5, 0xa9, 0xc6, 0xdc, 0xa8, 0x52, 0x01, 0x8d, 0x4e, 0xfb, 0xef, 0x65, 0xb8, 0xa7,
+	0x79, 0x7e, 0xb8, 0x4a, 0x6b, 0x18, 0xfa, 0xce, 0xf9, 0x22, 0xb4, 0x03, 0xfc, 0x0d, 0x6c, 0x8d,
+	0x3c, 0xd7, 0xb5, 0x47, 0xa1, 0xe7, 0x73, 0xed, 0x1c, 0xfb, 0xec, 0x1d, 0xf6, 0xd9, 0xd7, 0x68,
+	0xed, 0x8a, 0xb1, 0x0a, 0x8b, 0x7e, 0x73, 0x94, 0x9c, 0xe2, 0x17, 0x50, 0x0a, 0xe6, 0xb6, 0x3d,
+	0x8e, 0xf2, 0xd5, 0x7e, 0xa7, 0x25, 0x9d, 0x32, 0x09, 0x57, 0xc0, 0x02, 0x54, 0x59, 0x48, 0x46,
+	0xde, 0x34, 0xca, 0xe1, 0x27, 0xef, 0x54, 0xd6, 0x22, 0x32, 0x59, 0xaa, 0xe1, 0x4f, 0x60, 0x6b,
+	0x7e, 0xf9, 0x36, 0x70, 0x46, 0xd6, 0xd4, 0x9c, 0x5a, 0xe7, 0xf6, 0x94, 0x65, 0xb8, 0x46, 0x9a,
+	0xb1, 0xb4, 0x4f, 0x85, 0x34, 0x75, 0x33, 0x6b, 0x3e, 0x77, 0xdc, 0x49, 0xc4, 0x2a, 0xf1, 0xd4,
+	0x45, 0x42, 0x4e, 0x3a, 0x84, 0xe6, 0xdc, 0x73, 0x4d, 0x67, 0x6c, 0x8e, 0x3c, 0xf7, 0xc2, 0x99,
+	0xb0, 0xfc, 0xd6, 0x3b, 0x28, 0xf2, 0xc9, 0x95, 0xc7, 0x22, 0x93, 0x93, 0xfa, 0x7c, 0x35, 0xc1,
+	0x07, 0x70, 0x87, 0x7d, 0x8d, 0x69, 0x2d, 0x42, 0xcf, 0xb5, 0x27, 0x5e, 0xe8, 0x58, 0x21, 0x2d,
+	0x35, 0x9a, 0xfc, 0x2a, 0xb9, 0xcd, 0x40, 0x61, 0x1d, 0x6b, 0xcf, 0xa1, 0xb9, 0x16, 0x53, 0xfc,
+	0x10, 0x5a, 0xa2, 0xaa, 0x28, 0x92, 0x68, 0xa8, 0xc4, 0x34, 0xce, 0x34, 0xc9, 0x1c, 0x2a, 0x5d,
+	0xa9, 0x27, 0x2b, 0x52, 0x17, 0xdd, 0xc0, 0x55, 0x28, 0x92, 0xaf, 0x0f, 0x9f, 0xa3, 0x1c, 0x6e,
+	0x40, 0xb5, 0x27, 0x1f, 0x49, 0xc4, 0xec, 0x8b, 0x28, 0x8f, 0xb7, 0xa1, 0xce, 0x67, 0xba, 0x68,
+	0x6a, 0x22, 0x2a, 0xe0, 0x26, 0xd4, 0xb8, 0x60, 0xa0, 0xa9, 0xa8, 0x88, 0x6b, 0x50, 0x22, 0x7a,
+	0xe7, 0xa0, 0x83, 0x4a, 0xed, 0x3f, 0xe7, 0xa0, 0xc4, 0x82, 0x8f, 0x6f, 0xc1, 0xb6, 0xae, 0x49,
+	0x52, 0x77, 0x6d, 0x85, 0x3a, 0x54, 0xba, 0x67, 0x8a, 0x30, 0x90, 0x45, 0x94, 0xa3, 0x56, 0x8e,
+	0xe5, 0x63, 0xe1, 0x48, 0x36, 0xcc, 0x67, 0x28, 0x8f, 0xb7, 0x00, 0x96, 0xd3, 0x7d, 0x54, 0x48,
+	0xce, 0x3b, 0xcf, 0x51, 0x31, 0x39, 0x3f, 0xdc, 0x47, 0x25, 0xea, 0xd5, 0x8a, 0xbf, 0x8f, 0xca,
+	0x49, 0xc1, 0xe1, 0xfe, 0x3e, 0xaa, 0x60, 0x04, 0x8d, 0x81, 0x14, 0x5b, 0xd8, 0xdf, 0x47, 0xd5,
+	0xa4, 0xe4, 0x59, 0xe7, 0xf9, 0x3e, 0xaa, 0xb5, 0x7f, 0x0d, 0xd5, 0x38, 0xdf, 0xf8, 0x2e, 0x60,
+	0x8d, 0xa8, 0x86, 0x2a, 0xaa, 0xfd, 0x35, 0xaf, 0x1b, 0x50, 0x95, 0x8c, 0x13, 0x89, 0x28, 0x92,
+	0x81, 0x72, 0x34, 0x4a, 0xc7, 0x9a, 0xaa, 0xa0, 0x3c, 0xfd, 0xee, 0xd7, 0x6c, 0x58, 0xc0, 0x00,
+	0xe5, 0xd7, 0xc7, 0x3a, 0x1d, 0xb3, 0x70, 0x1c, 0xf7, 0x04, 0xdd, 0x40, 0x25, 0x2a, 0xd6, 0x25,
+	0x22, 0x0b, 0x7d, 0x54, 0xa6, 0x7a, 0x12, 0x25, 0x54, 0xe8, 0xe8, 0x48, 0x36, 0x74, 0x54, 0x6d,
+	0x0f, 0xe1, 0xd1, 0x5a, 0x15, 0xf2, 0x9e, 0x9f, 0xd8, 0x48, 0x1b, 0xc5, 0x92, 0x7b, 0x8f, 0x62,
+	0x69, 0xff, 0x0a, 0x9e, 0x18, 0xbe, 0xe5, 0x06, 0x23, 0xdb, 0xb9, 0xb2, 0xfd, 0xeb, 0xad, 0x1f,
+	0x00, 0x84, 0x94, 0x97, 0xdc, 0xa2, 0xb7, 0x99, 0xe9, 0x84, 0x3a, 0xdb, 0x8c, 0x35, 0xc6, 0x63,
+	0xfb, 0x7e, 0x04, 0xf5, 0xc4, 0xc2, 0xf8, 0x0e, 0x94, 0xb9, 0x87, 0x4c, 0xbf, 0x41, 0x4a, 0xcc,
+	0x11, 0xfc, 0x15, 0x3c, 0x88, 0x1c, 0x67, 0x9a, 0x33, 0x27, 0x34, 0xe7, 0xb6, 0xef, 0x78, 0x63,
+	0x67, 0xe4, 0x84, 0x6f, 0xd9, 0x26, 0x6e, 0x92, 0x16, 0xe3, 0x1a, 0x11, 0x41, 0x5b, 0xe1, 0x6d,
+	0x09, 0x1e, 0x8a, 0x9e, 0x1b, 0x5a, 0x8e, 0x9b, 0xf0, 0x3f, 0xe1, 0xf9, 0xe6, 0x86, 0xcc, 0x65,
+	0x6c, 0xc8, 0xf6, 0x3f, 0x72, 0x70, 0x57, 0x0b, 0x16, 0x59, 0x16, 0xce, 0xe0, 0x66, 0xb0, 0x98,
+	0xcf, 0x3d, 0x3f, 0xb4, 0xc7, 0xe6, 0x95, 0x37, 0x0d, 0xad, 0x49, 0x1c, 0x82, 0x9f, 0xf1, 0xe8,
+	0x66, 0xea, 0xed, 0xea, 0xb1, 0xd2, 0x29, 0xd7, 0x21, 0x28, 0x48, 0x49, 0xda, 0x1a, 0xa0, 0x34,
+	0x0b, 0x7f, 0x04, 0x0f, 0xf4, 0xa1, 0xa6, 0xa9, 0xc4, 0x90, 0xba, 0xe6, 0xa9, 0xda, 0x37, 0x84,
+	0xe3, 0xf5, 0xcd, 0x57, 0x81, 0xc2, 0xe9, 0xe1, 0x0b, 0x5e, 0x5f, 0xa7, 0x9d, 0x83, 0x7d, 0x94,
+	0x67, 0xa3, 0x67, 0xcf, 0x9e, 0xa3, 0x42, 0xfb, 0x9f, 0x45, 0xf8, 0x28, 0x2b, 0xa3, 0x41, 0xe2,
+	0x83, 0x34, 0xa8, 0x5f, 0x78, 0xfe, 0xcc, 0xbc, 0xb0, 0xe8, 0x76, 0x8f, 0x3e, 0x65, 0x2f, 0x9d,
+	0xcd, 0x2c, 0xd5, 0xdd, 0x9e, 0xe7, 0xcf, 0x7a, 0x4c, 0x8d, 0xc0, 0xc5, 0x72, 0x9c, 0x2a, 0x8f,
+	0xfc, 0x7b, 0x95, 0x07, 0xfe, 0x18, 0x1a, 0x33, 0xeb, 0x0d, 0x3d, 0xbc, 0x42, 0xcb, 0x1d, 0xf1,
+	0x53, 0xb3, 0x49, 0xea, 0x33, 0xeb, 0x4d, 0x37, 0x12, 0xe1, 0xaf, 0x00, 0x27, 0x29, 0x26, 0x3f,
+	0x5e, 0x8b, 0xd9, 0xc7, 0x2b, 0x4a, 0x68, 0x32, 0x09, 0xed, 0xb2, 0xfe, 0x1b, 0xf3, 0x3b, 0xeb,
+	0xca, 0x9e, 0xda, 0xee, 0x24, 0xbc, 0x6c, 0x95, 0x1e, 0x17, 0x9e, 0x36, 0x49, 0xc3, 0x7f, 0xf3,
+	0x6a, 0x29, 0xa3, 0xa4, 0x70, 0x8d, 0x54, 0xe6, 0xa4, 0x30, 0x49, 0xfa, 0x05, 0xa0, 0x15, 0x23,
+	0x72, 0xa3, 0x92, 0xed, 0xc6, 0xf6, 0x8a, 0xc8, 0x04, 0xed, 0x1f, 0x72, 0x00, 0xab, 0xb8, 0xe1,
+	0x7b, 0x70, 0xab, 0xa7, 0x92, 0x81, 0xd9, 0x13, 0x58, 0x6f, 0x1d, 0x2a, 0x2f, 0x15, 0xf5, 0x95,
+	0xc2, 0x9b, 0xea, 0x37, 0x7a, 0x4f, 0xe3, 0xfd, 0x8e, 0x8e, 0x4c, 0xad, 0x3f, 0xd4, 0x51, 0x9e,
+	0xf6, 0x06, 0x3a, 0xed, 0xbc, 0x40, 0x05, 0x9a, 0x7c, 0xca, 0x29, 0xd2, 0x56, 0xb3, 0xa4, 0x94,
+	0xa8, 0xf8, 0x75, 0x4f, 0xe3, 0xbd, 0x43, 0xec, 0x69, 0x87, 0xbc, 0x77, 0x88, 0x3d, 0xad, 0x83,
+	0xaa, 0x6c, 0xa4, 0x09, 0x2f, 0x51, 0x0d, 0x97, 0x21, 0xff, 0xba, 0x83, 0x80, 0x36, 0x1e, 0x95,
+	0xf6, 0x29, 0x54, 0xa7, 0x9a, 0x62, 0x4f, 0x43, 0x0d, 0x6a, 0x90, 0xf2, 0x4d, 0x41, 0x54, 0x51,
+	0x73, 0x39, 0xeb, 0x8a, 0x2a, 0xda, 0x6a, 0xff, 0xab, 0x02, 0xb5, 0x65, 0x3d, 0xd0, 0xeb, 0xb1,
+	0x6b, 0xcd, 0xec, 0xf8, 0x7a, 0x4c, 0xc7, 0xf8, 0x29, 0x94, 0x46, 0x53, 0x2b, 0x08, 0xd6, 0x2e,
+	0x49, 0x4b, 0x15, 0x96, 0x7a, 0x4e, 0xc0, 0x8f, 0xa1, 0x3e, 0xb6, 0x83, 0x91, 0xef, 0xcc, 0xd9,
+	0xa9, 0x54, 0x60, 0x46, 0x92, 0x22, 0x7c, 0x17, 0xca, 0x73, 0xcb, 0xb7, 0xdd, 0x30, 0x3a, 0x3b,
+	0xa3, 0x19, 0x7e, 0x02, 0x5b, 0x7c, 0x64, 0xfa, 0xf6, 0xd4, 0x9c, 0x7b, 0xfc, 0x8a, 0x54, 0x22,
+	0x0d, 0x2e, 0x25, 0xf6, 0x54, 0xf3, 0x02, 0xbc, 0x03, 0xd5, 0xd1, 0xa5, 0x33, 0x1d, 0xfb, 0xb6,
+	0xcb, 0x52, 0x59, 0xef, 0x6c, 0xad, 0x3b, 0x43, 0x96, 0x38, 0x2d, 0xc1, 0xcb, 0xe8, 0x52, 0x6f,
+	0xfa, 0xf6, 0x15, 0x4b, 0x69, 0x8d, 0xd4, 0x63, 0x19, 0xb1, 0xaf, 0x28, 0xe5, 0xc2, 0xf1, 0x67,
+	0x4b, 0x4a, 0x95, 0x53, 0x62, 0x59, 0x44, 0x09, 0xbc, 0x8b, 0x70, 0x49, 0xe1, 0xf7, 0x9f, 0x7a,
+	0x2c, 0xa3, 0x94, 0x47, 0x00, 0x81, 0xed, 0x3b, 0xd6, 0xd4, 0x74, 0x17, 0xb3, 0x16, 0x30, 0x42,
+	0x8d, 0x4b, 0x94, 0xc5, 0x0c, 0x7f, 0x00, 0xd5, 0xd9, 0xc5, 0xc4, 0x64, 0x51, 0xad, 0x33, 0xb0,
+	0x32, 0xbb, 0x98, 0x28, 0x34, 0xb0, 0x8f, 0x00, 0x66, 0xde, 0xd8, 0x9e, 0x72, 0xb0, 0xc1, 0x35,
+	0x99, 0x84, 0xc1, 0xb7, 0xa1, 0x64, 0x4d, 0x1d, 0x2b, 0x68, 0x35, 0x19, 0xc2, 0x27, 0xd4, 0x9e,
+	0x15, 0x04, 0x76, 0x48, 0x9b, 0xed, 0x16, 0xb7, 0xc7, 0xe6, 0xf2, 0x98, 0x76, 0x61, 0x27, 0x30,
+	0x2f, 0xfc, 0x45, 0x6b, 0x9b, 0xdd, 0x07, 0x4a, 0x4e, 0xd0, 0xf3, 0x17, 0xf8, 0x39, 0xf7, 0x80,
+	0x5e, 0xe8, 0x5a, 0xe8, 0x47, 0x6f, 0x89, 0xd4, 0xbb, 0x2e, 0xbd, 0xf7, 0xdd, 0xe7, 0x2f, 0x9c,
+	0x9b, 0x4c, 0xa3, 0xca, 0x9f, 0x41, 0xbe, 0xc3, 0xde, 0x3a, 0xcb, 0x37, 0x12, 0xce, 0x7c, 0x23,
+	0xe1, 0xcf, 0xa0, 0xc4, 0x2f, 0xef, 0xb7, 0x18, 0x7e, 0x6b, 0xe3, 0xf2, 0x1e, 0xd2, 0x1b, 0x73,
+	0xfc, 0x54, 0x08, 0xd8, 0x05, 0x98, 0xfa, 0x67, 0xb5, 0x6e, 0xb3, 0xac, 0xa6, 0x9e, 0x0a, 0xab,
+	0x5b, 0x3c, 0x81, 0x60, 0x75, 0xa3, 0xff, 0x12, 0x6a, 0xb4, 0xbd, 0x9a, 0x56, 0x18, 0xfa, 0xad,
+	0x0e, 0x5b, 0xe9, 0xe1, 0xbb, 0xee, 0x74, 0x27, 0x37, 0x48, 0x95, 0x2a, 0x50, 0x09, 0xfe, 0x9a,
+	0x5d, 0x4e, 0xf9, 0xd9, 0xc2, 0x2d, 0x1c, 0x30, 0x0b, 0x1f, 0x47, 0x4b, 0x5f, 0x7f, 0xec, 0x9c,
+	0xdc, 0x60, 0xb7, 0x52, 0x8e, 0x33, 0x5b, 0x2f, 0xa0, 0x3a, 0x0f, 0x16, 0xdc, 0xca, 0x21, 0xb3,
+	0xf2, 0xe0, 0x1d, 0x87, 0xc7, 0xc9, 0x0d, 0x52, 0x99, 0x07, 0x0b, 0xa6, 0xf9, 0x0d, 0xa0, 0x70,
+	0xd5, 0x45, 0xb9, 0x85, 0xe7, 0xcc, 0xc2, 0x93, 0xf7, 0xe9, 0xd9, 0x27, 0x37, 0xc8, 0x76, 0x42,
+	0x9f, 0x02, 0x47, 0x00, 0xd5, 0x60, 0x6e, 0x8f, 0x9c, 0x0b, 0x67, 0xd4, 0xfe, 0x3e, 0x07, 0xd5,
+	0xf8, 0x65, 0x8b, 0xbf, 0x84, 0x7a, 0xe2, 0x19, 0xfa, 0x1e, 0xaf, 0x50, 0x98, 0x2e, 0x1f, 0xa0,
+	0xb8, 0x0d, 0x45, 0xdf, 0xf3, 0x42, 0xd6, 0x02, 0x36, 0x77, 0x1d, 0xc3, 0x96, 0x0b, 0x9c, 0x7b,
+	0x5e, 0x68, 0x8f, 0xd9, 0xee, 0x7f, 0x8f, 0x05, 0x8e, 0x18, 0xbb, 0xfd, 0x43, 0x01, 0x6e, 0x0d,
+	0xbc, 0xb1, 0x73, 0xe1, 0x58, 0xe7, 0x53, 0xfb, 0x7f, 0xd5, 0x90, 0x3e, 0x5d, 0xb6, 0x9b, 0x42,
+	0xa6, 0xe3, 0xd7, 0xb7, 0x9f, 0x62, 0x46, 0xfb, 0x59, 0x6e, 0xc8, 0xd2, 0x75, 0x1b, 0xb2, 0xbc,
+	0xbe, 0x21, 0xa3, 0x2d, 0x54, 0xc9, 0xda, 0x42, 0xa9, 0x17, 0x7d, 0xf5, 0x27, 0xbc, 0xe8, 0x85,
+	0xcd, 0xc2, 0xcf, 0x78, 0x09, 0xa5, 0x2f, 0x7a, 0x6b, 0xe5, 0xdf, 0x83, 0x6a, 0xe8, 0xbf, 0x49,
+	0x16, 0xfe, 0x67, 0xd7, 0x16, 0x5c, 0x86, 0xa1, 0x4a, 0xe8, 0xbf, 0x49, 0x57, 0xdb, 0xce, 0x5f,
+	0x0b, 0xf4, 0xa5, 0x91, 0xc8, 0x02, 0x7f, 0x69, 0x0c, 0x34, 0x55, 0x91, 0x14, 0x63, 0xf3, 0xa5,
+	0x71, 0x1f, 0xee, 0x6e, 0xa0, 0xfc, 0xc0, 0xcc, 0x65, 0x60, 0xe2, 0x89, 0xa0, 0xeb, 0x32, 0x3d,
+	0x33, 0x37, 0xad, 0x1e, 0x09, 0xe2, 0x4b, 0xad, 0x2f, 0x28, 0x12, 0x2a, 0x64, 0xa0, 0xa2, 0xaa,
+	0x18, 0x82, 0xac, 0x48, 0x04, 0x15, 0xe9, 0x0d, 0x2c, 0x85, 0x6a, 0xea, 0x2b, 0xfa, 0xa8, 0x19,
+	0x6a, 0x5a, 0xff, 0x0c, 0x95, 0xe8, 0xf5, 0x3f, 0x45, 0xe8, 0x09, 0x0a, 0x2a, 0xe3, 0x0f, 0xe0,
+	0x4e, 0x4a, 0xae, 0x4b, 0x8a, 0xae, 0x12, 0x54, 0xc9, 0x80, 0x06, 0x6a, 0x77, 0xd8, 0x97, 0x50,
+	0x95, 0x5e, 0x08, 0x36, 0x96, 0x23, 0x06, 0xaa, 0x65, 0x2c, 0x23, 0x6a, 0x43, 0x04, 0x19, 0xdf,
+	0x7d, 0x24, 0x18, 0x86, 0x44, 0xce, 0x50, 0x3d, 0x03, 0xd3, 0x0d, 0x95, 0x08, 0xc7, 0x12, 0x6a,
+	0x64, 0xf9, 0x20, 0x0d, 0x54, 0x72, 0x86, 0x9a, 0xf8, 0x43, 0xb8, 0x9f, 0x82, 0x0c, 0x22, 0x28,
+	0xba, 0x28, 0xc9, 0xa7, 0x12, 0x41, 0x5b, 0x3b, 0x7f, 0xc9, 0x25, 0x7e, 0x98, 0xac, 0x2a, 0x2e,
+	0xd6, 0x33, 0x85, 0xee, 0x40, 0x56, 0x4c, 0xdd, 0x10, 0x8c, 0xf5, 0xf4, 0x45, 0x81, 0x4e, 0xe1,
+	0x71, 0x02, 0x1f, 0xc0, 0xbd, 0x0d, 0xb4, 0xaf, 0x8a, 0x2f, 0xa5, 0x2e, 0xca, 0xe3, 0x36, 0x7c,
+	0xb8, 0x01, 0xea, 0x27, 0x43, 0xc3, 0x90, 0x95, 0x63, 0xb3, 0x4b, 0x0d, 0x14, 0xf0, 0x23, 0xf8,
+	0x20, 0xc3, 0x7c, 0x64, 0xa2, 0xb8, 0xf3, 0x7d, 0x0e, 0xf0, 0xe6, 0xff, 0xab, 0xa5, 0x96, 0xaa,
+	0xd1, 0xa4, 0x6e, 0xf8, 0x1c, 0x7b, 0xb5, 0x06, 0xc7, 0x2e, 0xc7, 0x1f, 0x94, 0x00, 0xbb, 0xb2,
+	0x2e, 0x1c, 0xf5, 0x99, 0xcf, 0x19, 0xaa, 0x92, 0xc2, 0xc1, 0x42, 0x16, 0x68, 0x48, 0x3a, 0xfd,
+	0x1c, 0x54, 0xdc, 0xf9, 0x53, 0x32, 0xc0, 0xab, 0x3f, 0x66, 0xcb, 0x00, 0x0f, 0x75, 0xfa, 0x0c,
+	0xb8, 0x3e, 0xc0, 0xeb, 0x78, 0xec, 0x6d, 0x94, 0xf1, 0x35, 0x54, 0xee, 0xf6, 0xa5, 0x84, 0xab,
+	0x49, 0x48, 0x10, 0x0d, 0xf9, 0x94, 0xee, 0x8f, 0x2c, 0xbd, 0xa3, 0xa1, 0x7e, 0x86, 0x8a, 0x3b,
+	0x7f, 0x48, 0xfe, 0x3a, 0x5b, 0xfd, 0x9f, 0x5b, 0x55, 0x42, 0x5f, 0x20, 0x83, 0x77, 0x55, 0xc2,
+	0x1a, 0x1e, 0x3b, 0xfa, 0x31, 0x3c, 0xca, 0xd4, 0x26, 0x26, 0x91, 0x34, 0x41, 0x26, 0x28, 0xbf,
+	0xca, 0x75, 0x82, 0x22, 0x12, 0xd9, 0x90, 0x45, 0xa1, 0x8f, 0x0a, 0x71, 0xe1, 0xaf, 0xc1, 0x03,
+	0xe1, 0x6b, 0x95, 0x6e, 0xe8, 0x4c, 0x4c, 0x56, 0x54, 0x82, 0x4a, 0x99, 0x7e, 0xbd, 0x12, 0x88,
+	0x42, 0xd3, 0x52, 0x5e, 0x15, 0x61, 0x02, 0x95, 0x95, 0xae, 0x64, 0x48, 0x64, 0x20, 0x2b, 0x82,
+	0x21, 0xa1, 0xca, 0xce, 0xdf, 0x72, 0x70, 0x27, 0xf3, 0xa7, 0x23, 0x7e, 0x0c, 0x0f, 0x99, 0xb6,
+	0x6e, 0x08, 0x4a, 0xf7, 0xe8, 0x2c, 0x23, 0x2a, 0x71, 0xd4, 0xd2, 0x8c, 0x54, 0x8b, 0x4b, 0xe1,
+	0x27, 0xaa, 0x91, 0xc8, 0xe0, 0x3a, 0x26, 0xaa, 0x7d, 0x5a, 0x6c, 0x4f, 0xe1, 0x49, 0x06, 0xa8,
+	0x11, 0xf5, 0x54, 0xee, 0xd2, 0x0d, 0xa4, 0x4b, 0xe4, 0x54, 0x16, 0x25, 0x54, 0xdc, 0xf9, 0x5d,
+	0x01, 0x9a, 0x6b, 0x7f, 0x33, 0x71, 0x0b, 0x6e, 0x9f, 0x0a, 0xfd, 0xa1, 0xb4, 0xd9, 0x8d, 0x6f,
+	0x03, 0x4a, 0x20, 0xfc, 0x09, 0x91, 0xa3, 0x7d, 0x6a, 0x8d, 0xcf, 0x9d, 0xcf, 0xd3, 0xc6, 0x96,
+	0x90, 0xd3, 0xa7, 0xac, 0x6e, 0x0a, 0x22, 0x2a, 0x64, 0x02, 0x5d, 0x11, 0x15, 0x53, 0x96, 0x84,
+	0x81, 0x26, 0x11, 0x89, 0x3e, 0x6f, 0xd6, 0xd7, 0x7d, 0x25, 0x18, 0x86, 0x8e, 0xca, 0x29, 0xe9,
+	0x89, 0x44, 0x8c, 0x6f, 0x51, 0x25, 0x65, 0x43, 0x94, 0xfa, 0xba, 0x3c, 0xd4, 0x51, 0x95, 0xd6,
+	0x74, 0x42, 0xae, 0x49, 0x44, 0xa4, 0xbd, 0x8e, 0x9c, 0xa0, 0x1a, 0xc6, 0xb0, 0x95, 0x80, 0x88,
+	0x36, 0x40, 0x90, 0x92, 0x89, 0x83, 0x01, 0x6f, 0xae, 0x09, 0x99, 0x41, 0x86, 0xc6, 0x89, 0xc9,
+	0x04, 0xa8, 0x91, 0x5a, 0x36, 0x32, 0x8f, 0x9a, 0xf8, 0x0e, 0xdc, 0x4c, 0xc8, 0x07, 0xb4, 0x72,
+	0x74, 0xb4, 0x95, 0xf2, 0xfd, 0xe8, 0xcc, 0x90, 0x74, 0xb4, 0xbd, 0xf3, 0xc7, 0x02, 0xc0, 0xea,
+	0x29, 0xb9, 0x72, 0x59, 0x17, 0x85, 0xfe, 0x7a, 0x26, 0x96, 0x66, 0x39, 0x74, 0xa6, 0x8a, 0x86,
+	0x8a, 0x72, 0x69, 0xf1, 0xb7, 0x92, 0x66, 0xa8, 0x28, 0xbf, 0x5a, 0x8d, 0x8b, 0x05, 0xc3, 0x50,
+	0x51, 0x21, 0x4d, 0xee, 0x49, 0x03, 0x43, 0x45, 0xc5, 0x34, 0x59, 0x93, 0x45, 0x35, 0x99, 0x02,
+	0x2e, 0x55, 0x04, 0x45, 0x45, 0xe5, 0xb4, 0x89, 0x81, 0x2c, 0x12, 0x15, 0x55, 0x36, 0xc5, 0xfd,
+	0xbe, 0x8c, 0xaa, 0x69, 0xf1, 0x50, 0x91, 0x0d, 0x1d, 0xd5, 0xd2, 0xa6, 0x5f, 0xca, 0x7d, 0x15,
+	0x41, 0x5a, 0x3a, 0x90, 0x8e, 0x05, 0x54, 0x4f, 0x4b, 0x8f, 0xe5, 0x63, 0x01, 0x35, 0xd2, 0x52,
+	0x43, 0x22, 0x02, 0x6a, 0x6e, 0x7c, 0x88, 0x64, 0x08, 0x68, 0x0b, 0xdf, 0x82, 0xed, 0xa4, 0x54,
+	0x7a, 0x2d, 0xa0, 0xed, 0xcd, 0xb8, 0x19, 0x86, 0x80, 0xd0, 0x66, 0x94, 0xa9, 0xf8, 0xe6, 0xce,
+	0x6f, 0x72, 0xd0, 0x48, 0xfe, 0x91, 0xa7, 0x5b, 0x91, 0x9f, 0xf4, 0x6c, 0x9f, 0x0d, 0xf5, 0xf4,
+	0xa6, 0x59, 0x07, 0xd5, 0x97, 0x28, 0x47, 0xdb, 0x59, 0x5a, 0x45, 0x38, 0x15, 0xe4, 0x3e, 0x3d,
+	0x2d, 0x50, 0x9e, 0xb6, 0x8e, 0x75, 0x58, 0x51, 0x15, 0x7a, 0x70, 0x08, 0x86, 0xac, 0x2a, 0xb4,
+	0xe1, 0xed, 0xfc, 0x3e, 0x07, 0xdb, 0xa9, 0xbf, 0x2b, 0xb4, 0x68, 0x37, 0xf6, 0xec, 0x4f, 0xfc,
+	0x27, 0xc9, 0x7e, 0x16, 0xa8, 0x0a, 0x2a, 0xe1, 0x3a, 0x54, 0x94, 0x63, 0x53, 0x53, 0x95, 0xce,
+	0xda, 0x3f, 0xc9, 0xbb, 0x70, 0x93, 0xad, 0xa1, 0xa8, 0x86, 0x49, 0x1b, 0xa1, 0x68, 0x48, 0x5d,
+	0xf4, 0x9f, 0xdc, 0xd1, 0x97, 0xdf, 0x7e, 0x31, 0x71, 0xc2, 0xcb, 0xc5, 0xf9, 0xee, 0xc8, 0x9b,
+	0xed, 0x79, 0x73, 0xdb, 0x1d, 0x79, 0xfe, 0x78, 0x6f, 0x6c, 0x5f, 0x39, 0x23, 0xfb, 0xf3, 0x99,
+	0xe5, 0x5a, 0x13, 0x7b, 0x66, 0xbb, 0xe1, 0xe7, 0x8e, 0x1b, 0xda, 0xfe, 0x85, 0x35, 0xb2, 0xf7,
+	0xae, 0x0e, 0xf6, 0x26, 0xde, 0xde, 0x78, 0xe6, 0x9c, 0x97, 0xd9, 0xcd, 0xff, 0xe0, 0xbf, 0x01,
+	0x00, 0x00, 0xff, 0xff, 0x0b, 0xcd, 0x0a, 0xae, 0xb6, 0x1b, 0x00, 0x00,
 }
diff --git a/go/dmi/hw_management_service.pb.go b/go/dmi/hw_management_service.pb.go
index bd81132..50bd972 100644
--- a/go/dmi/hw_management_service.pb.go
+++ b/go/dmi/hw_management_service.pb.go
@@ -99,6 +99,7 @@
 	HWComponentInfoSetResponse_INVALID_PARAMS     HWComponentInfoSetResponse_Reason = 3
 	HWComponentInfoSetResponse_INTERNAL_ERROR     HWComponentInfoSetResponse_Reason = 4
 	HWComponentInfoSetResponse_DEVICE_UNREACHABLE HWComponentInfoSetResponse_Reason = 5
+	HWComponentInfoSetResponse_SET_UNSUPPORTED    HWComponentInfoSetResponse_Reason = 6
 )
 
 var HWComponentInfoSetResponse_Reason_name = map[int32]string{
@@ -108,6 +109,7 @@
 	3: "INVALID_PARAMS",
 	4: "INTERNAL_ERROR",
 	5: "DEVICE_UNREACHABLE",
+	6: "SET_UNSUPPORTED",
 }
 
 var HWComponentInfoSetResponse_Reason_value = map[string]int32{
@@ -117,6 +119,7 @@
 	"INVALID_PARAMS":     3,
 	"INTERNAL_ERROR":     4,
 	"DEVICE_UNREACHABLE": 5,
+	"SET_UNSUPPORTED":    6,
 }
 
 func (x HWComponentInfoSetResponse_Reason) String() string {
@@ -1798,106 +1801,107 @@
 func init() { proto.RegisterFile("dmi/hw_management_service.proto", fileDescriptor_eae902e73066286d) }
 
 var fileDescriptor_eae902e73066286d = []byte{
-	// 1571 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xcd, 0x6e, 0xdb, 0xc6,
-	0x16, 0xbe, 0x94, 0x6c, 0x27, 0x3a, 0x4e, 0x1c, 0x79, 0x9c, 0x38, 0x12, 0x83, 0xd8, 0xbe, 0x0c,
-	0x72, 0xe3, 0xdc, 0x9b, 0x48, 0x86, 0xb2, 0xb8, 0xb9, 0xff, 0x97, 0x96, 0x68, 0x8a, 0x8d, 0x44,
-	0x09, 0x43, 0x29, 0x46, 0x8a, 0xa2, 0x02, 0x2d, 0x8d, 0x65, 0xa2, 0x22, 0xa9, 0x8a, 0x94, 0x03,
-	0x3f, 0x42, 0x97, 0x5d, 0x76, 0x51, 0xa0, 0x4f, 0x50, 0xa0, 0x5d, 0x06, 0x7d, 0x83, 0x6e, 0xbb,
-	0x2a, 0x0a, 0x14, 0x7d, 0x84, 0x6e, 0xbb, 0x2a, 0x34, 0x43, 0xea, 0x87, 0x22, 0x65, 0x49, 0x4e,
-	0xd0, 0xec, 0xc4, 0x99, 0x33, 0x1f, 0x0f, 0xcf, 0xf7, 0xcd, 0x99, 0x33, 0x47, 0xb0, 0xdb, 0x32,
-	0x8d, 0xec, 0xd9, 0xeb, 0x86, 0xa9, 0x5b, 0x7a, 0x9b, 0x98, 0xc4, 0x72, 0x1b, 0x0e, 0xe9, 0x9d,
-	0x1b, 0x4d, 0x92, 0xe9, 0xf6, 0x6c, 0xd7, 0x46, 0xf1, 0x96, 0x69, 0xf0, 0x9b, 0x03, 0xab, 0xa6,
-	0x6d, 0x9a, 0xb6, 0xe5, 0xb0, 0x71, 0xfe, 0x06, 0x5b, 0xe8, 0x3d, 0xdd, 0x6b, 0xdb, 0x76, 0xbb,
-	0x43, 0xb2, 0xf4, 0xe9, 0xa4, 0x7f, 0x9a, 0x25, 0x66, 0xd7, 0xbd, 0x60, 0x93, 0xc2, 0x11, 0xa4,
-	0xaa, 0x67, 0x17, 0x8e, 0xd1, 0xd4, 0x3b, 0x8a, 0x75, 0x4e, 0x2c, 0xd7, 0xee, 0x5d, 0x60, 0xf2,
-	0x69, 0x9f, 0x38, 0x2e, 0xfa, 0x2b, 0xac, 0xb7, 0xc8, 0xe0, 0x75, 0x8d, 0x7e, 0xdf, 0x68, 0xa5,
-	0xb8, 0x3d, 0x6e, 0x7f, 0x3d, 0x97, 0xc8, 0xb4, 0x4c, 0x23, 0x53, 0xef, 0x1b, 0x2d, 0x0c, 0x6c,
-	0x76, 0xf0, 0x5b, 0xf8, 0x26, 0x06, 0xe9, 0x10, 0x20, 0xa7, 0x6b, 0x5b, 0x0e, 0x41, 0x0f, 0x60,
-	0xcd, 0x71, 0x75, 0xb7, 0xef, 0x50, 0x90, 0x8d, 0xdc, 0x3a, 0x05, 0xd1, 0xe8, 0x10, 0xf6, 0xa6,
-	0xd0, 0x7f, 0x60, 0xad, 0x47, 0x74, 0xc7, 0xb6, 0x52, 0x31, 0x6a, 0xf4, 0x90, 0x1a, 0x45, 0x82,
-	0x66, 0x30, 0x35, 0xc6, 0xde, 0x22, 0xf4, 0x37, 0x48, 0x18, 0xbe, 0x4d, 0x2a, 0x4e, 0x7d, 0xbd,
-	0x49, 0x11, 0x8a, 0x7a, 0xaf, 0xf5, 0x5a, 0xef, 0x11, 0x3c, 0x9a, 0x47, 0x0f, 0xe0, 0x26, 0x5b,
-	0xd6, 0x68, 0x11, 0x57, 0x37, 0x3a, 0xa9, 0x95, 0x3d, 0x6e, 0x3f, 0x81, 0x6f, 0xb0, 0xc1, 0x02,
-	0x1d, 0x13, 0x3e, 0x86, 0x35, 0xf6, 0x0e, 0x74, 0x1b, 0x92, 0x75, 0xb5, 0x20, 0x1d, 0x29, 0xaa,
-	0x54, 0x68, 0x60, 0x49, 0xd4, 0x2a, 0x6a, 0xf2, 0x4f, 0x08, 0xc1, 0x46, 0x5d, 0x7d, 0xa1, 0x56,
-	0x8e, 0xd5, 0x46, 0x41, 0x7a, 0xa9, 0xe4, 0xa5, 0x24, 0x37, 0x18, 0x53, 0xd4, 0x9a, 0x84, 0x55,
-	0xb1, 0xd4, 0x90, 0x30, 0xae, 0xe0, 0x64, 0x0c, 0x6d, 0x03, 0x62, 0xf3, 0x8d, 0xba, 0x8a, 0x25,
-	0x31, 0x5f, 0x14, 0x0f, 0x4b, 0x52, 0x32, 0x2e, 0x7c, 0xc5, 0x41, 0xba, 0x78, 0x9c, 0xb7, 0xcd,
-	0xae, 0x6d, 0x11, 0xcb, 0x55, 0xac, 0x53, 0x5b, 0x26, 0xee, 0x12, 0xd1, 0x47, 0x07, 0xb0, 0xd1,
-	0xf4, 0x61, 0x98, 0x79, 0x2c, 0x68, 0x7e, 0x73, 0x68, 0x40, 0x57, 0x3c, 0x1c, 0x5f, 0x61, 0xe9,
-	0x26, 0xa1, 0x21, 0x4b, 0x8c, 0x99, 0xa9, 0xba, 0x49, 0x84, 0xef, 0x63, 0xc0, 0x87, 0xb9, 0xb8,
-	0x08, 0xaf, 0xff, 0x0d, 0xf0, 0xfa, 0x17, 0xc6, 0x4a, 0x24, 0x6a, 0x90, 0xd8, 0x27, 0x90, 0x18,
-	0x3a, 0xe5, 0x11, 0xbb, 0x41, 0x21, 0x86, 0x00, 0x78, 0x64, 0x30, 0x1f, 0xb3, 0xfd, 0x25, 0x98,
-	0xbd, 0x03, 0x9b, 0xfe, 0x58, 0xbe, 0x52, 0xae, 0x56, 0x54, 0x49, 0xad, 0x25, 0x63, 0x21, 0x84,
-	0xc7, 0x23, 0x08, 0x5f, 0x11, 0x7e, 0x98, 0x26, 0x5c, 0x7b, 0xbf, 0x08, 0x47, 0x39, 0xb8, 0xd6,
-	0x3c, 0xd3, 0xad, 0x36, 0x71, 0x68, 0xe0, 0xd6, 0x73, 0x29, 0x8a, 0x58, 0xb6, 0x5b, 0xc6, 0xa9,
-	0xa1, 0x9f, 0x74, 0xc8, 0x28, 0xe8, 0xbe, 0xa1, 0xf0, 0xed, 0xb4, 0x48, 0xb4, 0x77, 0x22, 0x12,
-	0x2d, 0x5a, 0x24, 0x53, 0xb4, 0xc7, 0x43, 0x68, 0xff, 0x8c, 0x7b, 0xcb, 0xbc, 0xbf, 0x14, 0x4b,
-	0x4a, 0xa1, 0x51, 0x15, 0xb1, 0x58, 0xd6, 0x92, 0xf1, 0x10, 0x2d, 0xac, 0x44, 0x68, 0x61, 0x55,
-	0xf8, 0x3c, 0x0e, 0xf7, 0x34, 0x57, 0xef, 0xb9, 0xe5, 0x41, 0x76, 0x37, 0xac, 0x76, 0x81, 0xb2,
-	0xbb, 0x58, 0xd4, 0xfe, 0x17, 0x88, 0xda, 0x23, 0xdf, 0x28, 0x0a, 0x36, 0x18, 0xb6, 0x80, 0xe6,
-	0xe2, 0xb3, 0x34, 0x37, 0xd7, 0xce, 0x7a, 0x73, 0x59, 0x88, 0x79, 0xd8, 0xf6, 0xe2, 0x21, 0x96,
-	0xb0, 0x24, 0x16, 0x5e, 0x35, 0xca, 0xa2, 0x2a, 0xca, 0x52, 0x21, 0xc9, 0xa1, 0x3f, 0xc3, 0xfd,
-	0x4a, 0x55, 0xc2, 0x62, 0x4d, 0xa9, 0xa8, 0xc3, 0x69, 0x45, 0x6d, 0x54, 0x71, 0x45, 0xc6, 0x92,
-	0xa6, 0x2d, 0x10, 0x76, 0x1e, 0xb6, 0xc5, 0x7a, 0xad, 0x28, 0xa9, 0x35, 0x25, 0xcf, 0xf0, 0x8e,
-	0x44, 0xa5, 0x54, 0xc7, 0x52, 0x72, 0x15, 0xdd, 0x85, 0x2d, 0x45, 0x1d, 0x70, 0x29, 0xd6, 0x94,
-	0xc3, 0x92, 0xe4, 0x53, 0xbd, 0x26, 0x64, 0x21, 0xad, 0xb9, 0x76, 0x37, 0x18, 0x3a, 0xb6, 0x3d,
-	0x11, 0xac, 0xd0, 0x6d, 0xc3, 0xd1, 0xaf, 0xa6, 0xbf, 0x85, 0x1f, 0x39, 0xe0, 0xc3, 0x56, 0x5c,
-	0x5d, 0xf9, 0xd1, 0xa8, 0x4b, 0x29, 0x3f, 0xb7, 0xb8, 0xf0, 0x05, 0x13, 0x36, 0xa9, 0x07, 0xa4,
-	0xc5, 0x1c, 0x18, 0xec, 0x40, 0xf4, 0x04, 0x56, 0x0c, 0xeb, 0xd4, 0xf6, 0xb2, 0x53, 0x74, 0x72,
-	0xa0, 0x56, 0x41, 0x79, 0xc5, 0x66, 0x55, 0x10, 0x3f, 0x73, 0xb0, 0x3d, 0xf1, 0x3e, 0x67, 0xb1,
-	0x38, 0xfe, 0x33, 0x10, 0x47, 0x81, 0xf9, 0x16, 0x8a, 0x18, 0x8c, 0xe1, 0x01, 0x5c, 0x63, 0x9e,
-	0x38, 0xa9, 0xf8, 0x5e, 0x7c, 0x7f, 0x3d, 0xb7, 0x3d, 0xbd, 0x78, 0xf0, 0xf9, 0xd8, 0x37, 0x9b,
-	0x27, 0xa0, 0x01, 0x4d, 0x72, 0xc2, 0x97, 0x1c, 0xa4, 0x35, 0xe2, 0x96, 0xec, 0xf6, 0x80, 0x55,
-	0xc9, 0x6a, 0x75, 0x6d, 0xc3, 0x5a, 0x2a, 0xfd, 0x3f, 0x86, 0x64, 0x87, 0xa1, 0x34, 0x88, 0x07,
-	0x43, 0xbf, 0x3a, 0x81, 0x6f, 0x75, 0x26, 0xd1, 0xc7, 0x4d, 0x69, 0xc5, 0xd7, 0xb4, 0x7d, 0x85,
-	0xf8, 0xa6, 0x55, 0x6f, 0x58, 0xf8, 0x25, 0x46, 0xfd, 0xc3, 0xc4, 0xb4, 0x5d, 0x32, 0x72, 0xef,
-	0xea, 0x35, 0x5c, 0x24, 0xe8, 0x52, 0x5a, 0x7e, 0xc3, 0xbd, 0xa5, 0xba, 0x8c, 0x87, 0xed, 0x52,
-	0x45, 0x96, 0x15, 0x55, 0x6e, 0x48, 0x6a, 0xa1, 0x5a, 0x51, 0xd4, 0xda, 0xf0, 0x08, 0x7f, 0x00,
-	0xbb, 0x53, 0x73, 0x55, 0x5c, 0xa9, 0x55, 0xf2, 0x95, 0x51, 0x92, 0x49, 0xc3, 0x9d, 0xb2, 0x26,
-	0x1f, 0xd6, 0xb5, 0xe0, 0xfa, 0xd5, 0x88, 0xb4, 0xbf, 0x26, 0xfc, 0x14, 0x03, 0x5e, 0x0e, 0xd1,
-	0xc0, 0xd5, 0x33, 0x46, 0x34, 0x6a, 0x30, 0xca, 0x61, 0xea, 0x89, 0xcf, 0xaf, 0x9e, 0x95, 0x50,
-	0xf5, 0x4c, 0x73, 0xb7, 0xfa, 0x07, 0x94, 0xd4, 0x79, 0x48, 0x69, 0xc4, 0x2d, 0x3b, 0xed, 0xc3,
-	0xbe, 0x13, 0xdc, 0x60, 0x8f, 0xe0, 0x96, 0xe9, 0xb4, 0x4f, 0xfa, 0xce, 0xe8, 0xab, 0x59, 0x2e,
-	0xdf, 0x60, 0xc3, 0xbe, 0xbd, 0xf0, 0x45, 0x0c, 0xd2, 0xf2, 0x34, 0xca, 0xd5, 0xf7, 0x41, 0x24,
-	0x68, 0x90, 0xa1, 0x10, 0x57, 0xe3, 0x61, 0xae, 0xce, 0x77, 0x26, 0x7f, 0xb0, 0x78, 0xae, 0x8a,
-	0x08, 0x70, 0x4c, 0x78, 0x05, 0x49, 0xc9, 0x72, 0x0d, 0xd7, 0x20, 0x4e, 0xc9, 0x6e, 0x97, 0xc8,
-	0x39, 0xe9, 0xa0, 0xc7, 0x70, 0xbd, 0xe3, 0xfd, 0xf6, 0x62, 0xc2, 0x2e, 0x5e, 0xbe, 0x01, 0x1e,
-	0x4e, 0x23, 0x1e, 0xae, 0x13, 0x6f, 0x79, 0x2a, 0xb6, 0x17, 0xdf, 0x4f, 0xe0, 0xe1, 0xb3, 0xd0,
-	0x07, 0xc4, 0xb2, 0x23, 0x5b, 0xb4, 0x44, 0x5a, 0x7c, 0x06, 0x89, 0xce, 0xe0, 0xaa, 0x7b, 0x4e,
-	0x3a, 0x0c, 0x7e, 0x3d, 0x77, 0x87, 0x5a, 0x06, 0x5d, 0xc6, 0x23, 0x3b, 0xe1, 0xbb, 0x18, 0x6c,
-	0x4d, 0xbc, 0xd7, 0xe3, 0x79, 0x91, 0x17, 0x8f, 0x34, 0x11, 0x8b, 0xd6, 0xc4, 0xdf, 0x87, 0x9a,
-	0x88, 0x53, 0xa3, 0x5d, 0x3f, 0x37, 0x06, 0x5f, 0x7d, 0x69, 0x56, 0x0c, 0x23, 0xf9, 0xfc, 0xed,
-	0xed, 0x2c, 0xdf, 0xae, 0x54, 0x19, 0x24, 0xbf, 0x9a, 0x52, 0x7b, 0x35, 0xe3, 0x4e, 0xf3, 0x11,
-	0x20, 0xf9, 0x6a, 0xac, 0xcd, 0xd2, 0xc4, 0xaf, 0x31, 0xd8, 0x92, 0xaf, 0x48, 0x0e, 0x53, 0x45,
-	0x69, 0x4e, 0x55, 0x30, 0xbb, 0x31, 0x46, 0xe3, 0xf3, 0x30, 0xba, 0x32, 0xc6, 0xa8, 0xbc, 0x04,
-	0xa3, 0xab, 0xef, 0x11, 0xa3, 0xc5, 0xe1, 0x09, 0x35, 0x28, 0xe9, 0xfc, 0x20, 0x2d, 0xd3, 0x14,
-	0xfa, 0x37, 0x24, 0x8a, 0x44, 0xef, 0xb9, 0x27, 0x44, 0x77, 0x51, 0x16, 0xb6, 0xce, 0xfc, 0x87,
-	0x86, 0x63, 0xb4, 0x2d, 0xdd, 0xed, 0xf7, 0x58, 0x39, 0x7d, 0x0d, 0xa3, 0xe1, 0x94, 0xe6, 0xcf,
-	0x08, 0x22, 0x6c, 0x61, 0x72, 0x62, 0xdb, 0xee, 0x64, 0x1d, 0xbe, 0x88, 0x03, 0xbf, 0x71, 0x70,
-	0x7b, 0x12, 0x63, 0x2a, 0x89, 0xcf, 0xa0, 0xf7, 0x79, 0x80, 0xde, 0x3d, 0x6a, 0x14, 0x86, 0xb7,
-	0x14, 0xbf, 0xef, 0xf8, 0x2c, 0xcc, 0x7d, 0x9d, 0x80, 0xb4, 0xaa, 0xbb, 0xc6, 0x39, 0x29, 0x1e,
-	0x97, 0x87, 0x2d, 0x44, 0x8d, 0x75, 0x10, 0x91, 0x06, 0x5b, 0x21, 0xf7, 0x44, 0x14, 0x59, 0xd1,
-	0xf3, 0x7b, 0x97, 0xdd, 0x2d, 0x0f, 0x38, 0x54, 0x07, 0x34, 0x7d, 0x71, 0x41, 0x3b, 0x91, 0x37,
-	0x1a, 0xca, 0x28, 0xbf, 0x7b, 0xc9, 0x8d, 0x07, 0x15, 0x61, 0x73, 0x70, 0x74, 0x4e, 0x94, 0xf2,
-	0x68, 0x3b, 0xc3, 0xfa, 0x9a, 0x19, 0xbf, 0xaf, 0x99, 0x91, 0xcc, 0xae, 0x7b, 0xc1, 0xdf, 0x9b,
-	0x51, 0xf7, 0xa3, 0x63, 0xb8, 0x2d, 0x13, 0x77, 0xaa, 0xa7, 0x88, 0xee, 0x47, 0xf5, 0x1a, 0x99,
-	0x87, 0x3b, 0xb3, 0x5b, 0x91, 0x07, 0x1c, 0x3a, 0xa6, 0x69, 0x30, 0xd0, 0xaf, 0xf0, 0xbe, 0x3c,
-	0xb2, 0xc7, 0xe7, 0x7d, 0x79, 0x74, 0x2b, 0xcc, 0x0b, 0xe9, 0x9c, 0xc0, 0xda, 0x25, 0xc0, 0xe3,
-	0x4d, 0x99, 0x9a, 0x7f, 0xd8, 0x4e, 0x94, 0x7b, 0x3b, 0x63, 0x47, 0x52, 0xc8, 0x1d, 0x85, 0xdf,
-	0x99, 0x5d, 0xce, 0xa3, 0x23, 0xff, 0x30, 0x98, 0x40, 0xbd, 0x35, 0xd1, 0x86, 0x55, 0x0a, 0xfc,
-	0xee, 0x25, 0x05, 0x2b, 0xc2, 0xb0, 0x39, 0x55, 0xc6, 0x79, 0x1c, 0x45, 0x95, 0x77, 0x97, 0xfa,
-	0xf6, 0x82, 0x89, 0x68, 0x12, 0x33, 0x4a, 0x44, 0x3b, 0xb3, 0xeb, 0x35, 0x54, 0xf5, 0x8f, 0xa5,
-	0x89, 0x1c, 0x89, 0x26, 0x3e, 0x2c, 0x24, 0x7b, 0xf2, 0xa9, 0xa8, 0x13, 0x02, 0xfd, 0x1f, 0xd6,
-	0xc7, 0x4a, 0x01, 0x74, 0x77, 0xba, 0x38, 0x18, 0x47, 0xd0, 0xc2, 0x11, 0xe4, 0x29, 0x04, 0x39,
-	0x0a, 0x21, 0xcc, 0x87, 0xe7, 0xb0, 0x31, 0xcc, 0xd7, 0xf9, 0x33, 0xd2, 0xfc, 0x24, 0x32, 0x3e,
-	0xac, 0x01, 0x3b, 0x4a, 0xee, 0x79, 0xb8, 0x31, 0x9e, 0x17, 0xbd, 0x34, 0x12, 0x92, 0xbe, 0xf9,
-	0x74, 0x64, 0x12, 0x3d, 0xfc, 0xd7, 0x87, 0xff, 0x68, 0x1b, 0xee, 0x59, 0xff, 0x24, 0xd3, 0xb4,
-	0xcd, 0xac, 0xdd, 0x25, 0x56, 0xd3, 0xee, 0xb5, 0xb2, 0x2c, 0x9f, 0x3f, 0x1d, 0xfd, 0x0b, 0xf2,
-	0xd4, 0xb0, 0x5c, 0xd2, 0x3b, 0xd5, 0x9b, 0x24, 0x7b, 0xfe, 0x2c, 0xdb, 0xb6, 0xb3, 0x2d, 0xd3,
-	0x38, 0x59, 0xa3, 0x1e, 0x3e, 0xfb, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x80, 0x19, 0x9e, 0xf1, 0x35,
-	0x19, 0x00, 0x00,
+	// 1585 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4d, 0x6f, 0xdb, 0x46,
+	0x13, 0x7e, 0x29, 0xd9, 0x4e, 0x34, 0x4e, 0x6c, 0x79, 0x9d, 0x38, 0x12, 0x83, 0xd8, 0x7e, 0x19,
+	0xa4, 0x71, 0xda, 0x44, 0x32, 0x94, 0x43, 0xd3, 0xef, 0xd2, 0x12, 0x2d, 0xb1, 0x91, 0x28, 0x61,
+	0x29, 0xc5, 0x48, 0x51, 0x54, 0xa0, 0xa5, 0xb5, 0x4c, 0x54, 0x24, 0x55, 0x91, 0x72, 0xe0, 0x9f,
+	0xd1, 0x63, 0x0f, 0x2d, 0xfa, 0x0b, 0x0a, 0xf4, 0x1a, 0xf4, 0xde, 0x43, 0xaf, 0x3d, 0x15, 0x05,
+	0x8a, 0xfe, 0x84, 0x5e, 0x7b, 0x2a, 0xb4, 0x4b, 0xea, 0x83, 0x22, 0x65, 0x49, 0x4e, 0xd0, 0xdc,
+	0xc4, 0xdd, 0xd9, 0x67, 0x67, 0xe7, 0x99, 0x9d, 0x99, 0x1d, 0xc1, 0x4e, 0xd3, 0xd0, 0xd3, 0xa7,
+	0x2f, 0xea, 0x86, 0x66, 0x6a, 0x2d, 0x62, 0x10, 0xd3, 0xa9, 0xdb, 0xa4, 0x7b, 0xa6, 0x37, 0x48,
+	0xaa, 0xd3, 0xb5, 0x1c, 0x0b, 0x45, 0x9b, 0x86, 0xce, 0x6f, 0xf4, 0xa5, 0x1a, 0x96, 0x61, 0x58,
+	0xa6, 0xcd, 0xc6, 0xf9, 0x6b, 0x6c, 0xa1, 0xfb, 0x75, 0xbb, 0x65, 0x59, 0xad, 0x36, 0x49, 0xd3,
+	0xaf, 0xe3, 0xde, 0x49, 0x9a, 0x18, 0x1d, 0xe7, 0x9c, 0x4d, 0x0a, 0x87, 0x90, 0xa8, 0x9c, 0x9e,
+	0xdb, 0x7a, 0x43, 0x6b, 0xcb, 0xe6, 0x19, 0x31, 0x1d, 0xab, 0x7b, 0x8e, 0xc9, 0xd7, 0x3d, 0x62,
+	0x3b, 0xe8, 0x6d, 0x58, 0x6d, 0x92, 0xfe, 0x76, 0xf5, 0x5e, 0x4f, 0x6f, 0x26, 0xb8, 0x5d, 0x6e,
+	0x6f, 0x35, 0x13, 0x4b, 0x35, 0x0d, 0x3d, 0x55, 0xeb, 0xe9, 0x4d, 0x0c, 0x6c, 0xb6, 0xff, 0x5b,
+	0xf8, 0x29, 0x02, 0xc9, 0x00, 0x20, 0xbb, 0x63, 0x99, 0x36, 0x41, 0x77, 0x61, 0xc5, 0x76, 0x34,
+	0xa7, 0x67, 0x53, 0x90, 0xb5, 0xcc, 0x2a, 0x05, 0x51, 0xe9, 0x10, 0x76, 0xa7, 0xd0, 0x47, 0xb0,
+	0xd2, 0x25, 0x9a, 0x6d, 0x99, 0x89, 0x08, 0x15, 0xba, 0x47, 0x85, 0x42, 0x41, 0x53, 0x98, 0x0a,
+	0x63, 0x77, 0x11, 0x7a, 0x07, 0x62, 0xba, 0x27, 0x93, 0x88, 0x52, 0x5d, 0xaf, 0x53, 0x84, 0x82,
+	0xd6, 0x6d, 0xbe, 0xd0, 0xba, 0x04, 0x0f, 0xe7, 0xd1, 0x5d, 0xb8, 0xce, 0x96, 0xd5, 0x9b, 0xc4,
+	0xd1, 0xf4, 0x76, 0x62, 0x69, 0x97, 0xdb, 0x8b, 0xe1, 0x6b, 0x6c, 0x30, 0x47, 0xc7, 0x84, 0x2f,
+	0x61, 0x85, 0xed, 0x81, 0x6e, 0x40, 0xbc, 0xa6, 0xe4, 0xa4, 0x43, 0x59, 0x91, 0x72, 0x75, 0x2c,
+	0x89, 0x6a, 0x59, 0x89, 0xff, 0x0f, 0x21, 0x58, 0xab, 0x29, 0x4f, 0x95, 0xf2, 0x91, 0x52, 0xcf,
+	0x49, 0xcf, 0xe4, 0xac, 0x14, 0xe7, 0xfa, 0x63, 0xb2, 0x52, 0x95, 0xb0, 0x22, 0x16, 0xeb, 0x12,
+	0xc6, 0x65, 0x1c, 0x8f, 0xa0, 0x2d, 0x40, 0x6c, 0xbe, 0x5e, 0x53, 0xb0, 0x24, 0x66, 0x0b, 0xe2,
+	0x41, 0x51, 0x8a, 0x47, 0x85, 0x1f, 0x38, 0x48, 0x16, 0x8e, 0xb2, 0x96, 0xd1, 0xb1, 0x4c, 0x62,
+	0x3a, 0xb2, 0x79, 0x62, 0xe5, 0x89, 0xb3, 0x80, 0xf5, 0xd1, 0x3e, 0xac, 0x35, 0x3c, 0x18, 0x26,
+	0x1e, 0xf1, 0x8b, 0x5f, 0x1f, 0x08, 0xd0, 0x15, 0xf7, 0x46, 0x57, 0x98, 0x9a, 0x41, 0xa8, 0xc9,
+	0x62, 0x23, 0x62, 0x8a, 0x66, 0x10, 0xe1, 0xd7, 0x08, 0xf0, 0x41, 0x2a, 0xce, 0xc3, 0xeb, 0xc7,
+	0x3e, 0x5e, 0xdf, 0x62, 0xac, 0x84, 0xa2, 0xfa, 0x89, 0x7d, 0x08, 0xb1, 0x81, 0x52, 0x2e, 0xb1,
+	0x6b, 0x14, 0x62, 0x00, 0x80, 0x87, 0x02, 0xb3, 0x31, 0xdb, 0x5b, 0x80, 0xd9, 0x9b, 0xb0, 0xe1,
+	0x8d, 0x65, 0xcb, 0xa5, 0x4a, 0x59, 0x91, 0x94, 0x6a, 0x3c, 0x12, 0x40, 0x78, 0x34, 0x84, 0xf0,
+	0x25, 0xe1, 0xb7, 0x49, 0xc2, 0xd5, 0x37, 0x8b, 0x70, 0x94, 0x81, 0x2b, 0x8d, 0x53, 0xcd, 0x6c,
+	0x11, 0x9b, 0x1a, 0x6e, 0x35, 0x93, 0xa0, 0x88, 0x25, 0xab, 0xa9, 0x9f, 0xe8, 0xda, 0x71, 0x9b,
+	0x0c, 0x8d, 0xee, 0x09, 0x0a, 0xbf, 0x4c, 0x3a, 0x89, 0xfa, 0x5a, 0x9c, 0x44, 0x0d, 0x77, 0x92,
+	0x09, 0xda, 0xa3, 0x01, 0xb4, 0x7f, 0xcf, 0xbd, 0x62, 0xde, 0x9f, 0x89, 0x45, 0x39, 0x57, 0xaf,
+	0x88, 0x58, 0x2c, 0xa9, 0xf1, 0x68, 0x80, 0x2f, 0x2c, 0x85, 0xf8, 0xc2, 0x32, 0xda, 0x84, 0x75,
+	0x55, 0xaa, 0xd6, 0x6b, 0x8a, 0x5a, 0xab, 0x54, 0xca, 0xb8, 0x2a, 0xe5, 0xe2, 0x2b, 0xc2, 0x37,
+	0x51, 0xb8, 0xad, 0x3a, 0x5a, 0xd7, 0x29, 0xf5, 0x43, 0xbe, 0x6e, 0xb6, 0x72, 0x94, 0xf2, 0xf9,
+	0x4c, 0xf9, 0x89, 0xcf, 0x94, 0xf7, 0x3d, 0xa1, 0x30, 0x58, 0xbf, 0x2d, 0x7d, 0x8e, 0x18, 0x9d,
+	0xe6, 0x88, 0x33, 0x5d, 0xb7, 0x97, 0x17, 0xd9, 0x9d, 0x87, 0x2d, 0xd7, 0x48, 0x62, 0x11, 0x4b,
+	0x62, 0xee, 0x79, 0xbd, 0x24, 0x2a, 0x62, 0x5e, 0xca, 0xc5, 0x39, 0xf4, 0x7f, 0xb8, 0x53, 0xae,
+	0x48, 0x58, 0xac, 0xca, 0x65, 0x65, 0x30, 0x2d, 0x2b, 0xf5, 0x0a, 0x2e, 0xe7, 0xb1, 0xa4, 0xaa,
+	0x73, 0x70, 0xc1, 0xc3, 0x96, 0x58, 0xab, 0x16, 0x24, 0xa5, 0x2a, 0x67, 0x19, 0xde, 0xa1, 0x28,
+	0x17, 0x6b, 0xb8, 0xcf, 0xc7, 0x2d, 0xd8, 0x94, 0x95, 0x3e, 0xc1, 0x62, 0x55, 0x3e, 0x28, 0x4a,
+	0x1e, 0xff, 0x2b, 0x42, 0x1a, 0x92, 0xaa, 0x63, 0x75, 0xfc, 0xa6, 0x63, 0x77, 0x16, 0xc1, 0x12,
+	0xbd, 0x4b, 0x1c, 0x3d, 0x35, 0xfd, 0x2d, 0xfc, 0xce, 0x01, 0x1f, 0xb4, 0xe2, 0xf2, 0xd7, 0x21,
+	0x1c, 0x75, 0xa1, 0xeb, 0x90, 0x99, 0xff, 0x36, 0x08, 0x06, 0x6c, 0x50, 0x0d, 0x48, 0x93, 0x29,
+	0xd0, 0xbf, 0x96, 0xe8, 0x21, 0x2c, 0xe9, 0xe6, 0x89, 0xe5, 0x86, 0xac, 0xf0, 0x88, 0x41, 0xa5,
+	0xfc, 0xee, 0x15, 0x99, 0x56, 0x56, 0xfc, 0xc9, 0xc1, 0xd6, 0xd8, 0x7e, 0xf6, 0x7c, 0x76, 0x7c,
+	0xdf, 0x67, 0x47, 0x81, 0xe9, 0x16, 0x88, 0xe8, 0xb7, 0xe1, 0x3e, 0x5c, 0x61, 0x9a, 0xd8, 0x89,
+	0xe8, 0x6e, 0x74, 0x6f, 0x35, 0xb3, 0x35, 0xb9, 0xb8, 0x7f, 0x7c, 0xec, 0x89, 0xcd, 0x62, 0x50,
+	0x9f, 0x4f, 0x72, 0xc2, 0x77, 0x1c, 0x24, 0x55, 0xe2, 0x14, 0xad, 0x56, 0x9f, 0x55, 0xc9, 0x6c,
+	0x76, 0x2c, 0xdd, 0x5c, 0x28, 0x27, 0x3c, 0x80, 0x78, 0x9b, 0xa1, 0xd4, 0x89, 0x0b, 0x43, 0x4f,
+	0x1d, 0xc3, 0xeb, 0xed, 0x71, 0xf4, 0x51, 0x51, 0x5a, 0x06, 0x36, 0x2c, 0xcf, 0x43, 0x3c, 0xd1,
+	0x8a, 0x3b, 0x2c, 0xfc, 0x15, 0xa1, 0xfa, 0x61, 0x62, 0x58, 0x0e, 0x19, 0xaa, 0x77, 0xf9, 0xc2,
+	0x2e, 0x14, 0x74, 0x21, 0x5f, 0x7e, 0xc9, 0xbd, 0xa2, 0x62, 0x8d, 0x87, 0xad, 0x62, 0x39, 0x9f,
+	0x97, 0x95, 0x7c, 0x5d, 0x52, 0x72, 0x95, 0xb2, 0xac, 0x54, 0x07, 0x79, 0xfd, 0x2e, 0xec, 0x4c,
+	0xcc, 0x55, 0x70, 0xb9, 0x5a, 0xce, 0x96, 0x87, 0x41, 0x26, 0x09, 0x37, 0x4b, 0x6a, 0xfe, 0xa0,
+	0xa6, 0xfa, 0xd7, 0x2f, 0x87, 0xe4, 0x82, 0x15, 0xe1, 0x8f, 0x08, 0xf0, 0xf9, 0x00, 0x1f, 0xb8,
+	0x7c, 0xc4, 0x08, 0x47, 0xf5, 0x5b, 0x39, 0xc8, 0x7b, 0xa2, 0xb3, 0x7b, 0xcf, 0x52, 0xa0, 0xf7,
+	0x4c, 0x72, 0xb7, 0xfc, 0x1f, 0xd4, 0xd9, 0x59, 0x48, 0xa8, 0xc4, 0x29, 0xd9, 0xad, 0x83, 0x9e,
+	0xed, 0xbf, 0x60, 0xf7, 0x61, 0xdd, 0xb0, 0x5b, 0xc7, 0x3d, 0x7b, 0x78, 0x6a, 0x16, 0xcb, 0xd7,
+	0xd8, 0xb0, 0x27, 0x2f, 0x7c, 0x1b, 0x81, 0x64, 0x7e, 0x12, 0xe5, 0xf2, 0xf7, 0x20, 0x14, 0xd4,
+	0xcf, 0x50, 0x80, 0xaa, 0xd1, 0x20, 0x55, 0x67, 0xcb, 0xc9, 0x9f, 0xcd, 0x1f, 0xab, 0x42, 0x0c,
+	0x1c, 0x11, 0x9e, 0x43, 0x5c, 0x32, 0x1d, 0xdd, 0xd1, 0x89, 0x5d, 0xb4, 0x5a, 0x45, 0x72, 0x46,
+	0xda, 0xe8, 0x01, 0x5c, 0x6d, 0xbb, 0xbf, 0x5d, 0x9b, 0xb0, 0xd7, 0x98, 0x27, 0x80, 0x07, 0xd3,
+	0x88, 0x87, 0xab, 0xc4, 0x5d, 0x9e, 0x88, 0xec, 0x46, 0xf7, 0x62, 0x78, 0xf0, 0x2d, 0xf4, 0x00,
+	0xb1, 0xe8, 0xc8, 0x16, 0x2d, 0x10, 0x16, 0x1f, 0x43, 0xac, 0xdd, 0x7f, 0xff, 0x9e, 0x91, 0x36,
+	0x83, 0x5f, 0xcd, 0xdc, 0xa4, 0x92, 0x7e, 0x95, 0xf1, 0x50, 0x4e, 0xf8, 0x39, 0x02, 0x9b, 0x63,
+	0xfb, 0xba, 0x3c, 0xcf, 0xb3, 0xf1, 0xd0, 0x27, 0x22, 0xe1, 0x3e, 0xf1, 0xee, 0xc0, 0x27, 0xa2,
+	0x54, 0x68, 0xc7, 0x8b, 0x8d, 0xfe, 0xad, 0x2f, 0x8c, 0x8a, 0x41, 0x24, 0x9f, 0xbd, 0xba, 0x9b,
+	0xe5, 0xc9, 0x15, 0xcb, 0xfd, 0xe0, 0x57, 0x95, 0xab, 0xcf, 0xa7, 0x3c, 0x74, 0xbe, 0x00, 0x94,
+	0xbf, 0x1c, 0x6b, 0xd3, 0x7c, 0xe2, 0xef, 0x08, 0x6c, 0xe6, 0x2f, 0x49, 0x0e, 0xf3, 0x8a, 0xe2,
+	0x8c, 0x5e, 0xc1, 0xe4, 0x46, 0x18, 0x8d, 0xce, 0xc2, 0xe8, 0xd2, 0x08, 0xa3, 0xf9, 0x05, 0x18,
+	0x5d, 0x7e, 0x83, 0x18, 0x2d, 0x0c, 0x32, 0x54, 0xbf, 0xa4, 0xf3, 0x8c, 0xb4, 0x48, 0xa7, 0xe8,
+	0x43, 0x88, 0x15, 0x88, 0xd6, 0x75, 0x8e, 0x89, 0xe6, 0xa0, 0x34, 0x6c, 0x9e, 0x7a, 0x1f, 0x75,
+	0x5b, 0x6f, 0x99, 0x9a, 0xd3, 0xeb, 0xb2, 0x72, 0xfa, 0x0a, 0x46, 0x83, 0x29, 0xd5, 0x9b, 0x11,
+	0x44, 0xd8, 0xc4, 0xe4, 0xd8, 0xb2, 0x9c, 0xf1, 0x3a, 0x7c, 0x1e, 0x05, 0xfe, 0xe1, 0xe0, 0xc6,
+	0x38, 0xc6, 0x44, 0x10, 0x9f, 0x42, 0xef, 0x13, 0x1f, 0xbd, 0xbb, 0x54, 0x28, 0x08, 0x6f, 0x21,
+	0x7e, 0x5f, 0x73, 0x2e, 0xcc, 0xfc, 0x18, 0x83, 0xa4, 0xa2, 0x39, 0xfa, 0x19, 0x29, 0x1c, 0x95,
+	0x06, 0x7d, 0x45, 0x95, 0xb5, 0x15, 0x91, 0x0a, 0x9b, 0x01, 0xef, 0x44, 0x14, 0x5a, 0xd1, 0xf3,
+	0xbb, 0x17, 0xbd, 0x2d, 0xf7, 0x39, 0x54, 0x03, 0x34, 0xf9, 0x70, 0x41, 0xdb, 0xa1, 0x2f, 0x1a,
+	0xca, 0x28, 0xbf, 0x73, 0xc1, 0x8b, 0x07, 0x15, 0x60, 0xa3, 0x9f, 0x3a, 0xc7, 0x4a, 0x79, 0xb4,
+	0x95, 0x62, 0xcd, 0xce, 0x94, 0xd7, 0xec, 0x4c, 0x49, 0x46, 0xc7, 0x39, 0xe7, 0x6f, 0x4f, 0xa9,
+	0xfb, 0xd1, 0x11, 0xdc, 0xc8, 0x13, 0x67, 0xa2, 0xd1, 0x88, 0xee, 0x84, 0x35, 0x20, 0x99, 0x86,
+	0xdb, 0xd3, 0xfb, 0x93, 0xfb, 0x1c, 0x3a, 0xa2, 0x61, 0xd0, 0xd7, 0xc4, 0x70, 0x4f, 0x1e, 0xda,
+	0xf8, 0x73, 0x4f, 0x1e, 0xde, 0x1f, 0x73, 0x4d, 0x3a, 0x23, 0xb0, 0x7a, 0x01, 0xf0, 0x68, 0xa7,
+	0xa6, 0xea, 0x25, 0xdb, 0xb1, 0x72, 0x6f, 0x7b, 0x24, 0x25, 0x05, 0xbc, 0x51, 0xf8, 0xed, 0xe9,
+	0xe5, 0x3c, 0x3a, 0xf4, 0x92, 0xc1, 0x18, 0xea, 0xfa, 0x58, 0x6f, 0x56, 0xce, 0xf1, 0x3b, 0x17,
+	0x14, 0xac, 0x08, 0xc3, 0xc6, 0x44, 0x19, 0xe7, 0x72, 0x14, 0x56, 0xde, 0x5d, 0xa8, 0xdb, 0x53,
+	0xe6, 0x44, 0xe3, 0x98, 0x61, 0x4e, 0xb4, 0x3d, 0xbd, 0x5e, 0x43, 0x15, 0x2f, 0x2d, 0x8d, 0xc5,
+	0x48, 0x34, 0x76, 0xb0, 0x80, 0xe8, 0xc9, 0x27, 0xc2, 0x32, 0x04, 0xfa, 0x14, 0x56, 0x47, 0x4a,
+	0x01, 0x74, 0x6b, 0xb2, 0x38, 0x18, 0x45, 0x50, 0x83, 0x11, 0xf2, 0x13, 0x08, 0xf9, 0x30, 0x84,
+	0x20, 0x1d, 0x9e, 0xc0, 0xda, 0x20, 0x5e, 0x67, 0x4f, 0x49, 0xe3, 0xab, 0x50, 0xfb, 0xb0, 0xae,
+	0xec, 0x30, 0xb8, 0x67, 0xe1, 0xda, 0x68, 0x5c, 0x74, 0xc3, 0x48, 0x40, 0xf8, 0xe6, 0x93, 0xa1,
+	0x41, 0xf4, 0xe0, 0x83, 0xcf, 0xdf, 0x6b, 0xe9, 0xce, 0x69, 0xef, 0x38, 0xd5, 0xb0, 0x8c, 0xb4,
+	0xd5, 0x21, 0x66, 0xc3, 0xea, 0x36, 0xd3, 0x2c, 0x9e, 0x3f, 0x1a, 0xfe, 0x35, 0xf2, 0x48, 0x37,
+	0x1d, 0xd2, 0x3d, 0xd1, 0x1a, 0x24, 0x7d, 0xf6, 0x38, 0xdd, 0xb2, 0xd2, 0x4d, 0x43, 0x3f, 0x5e,
+	0xa1, 0x1a, 0x3e, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0x4a, 0x85, 0x2d, 0x68, 0x4a, 0x19, 0x00,
+	0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/protos/dmi/hw.proto b/protos/dmi/hw.proto
index eb6feb2..37c2cfe 100644
--- a/protos/dmi/hw.proto
+++ b/protos/dmi/hw.proto
@@ -137,6 +137,20 @@
     SENSOR_STATUS_NONOPERATIONAL = 3;

 }

 

+enum TransceiverType {

+    TYPE_UNDEFINED = 0;

+    ETHERNET = 1;

+    GPON = 2;

+    XGPON = 3;

+    XGSPON = 4;

+    CPON = 5;

+    NG_PON2 = 6;

+    EPON = 7;

+    // Add more here

+

+    TYPE_NOT_DETECTED = 255;

+}

+

 message ComponentSensorData {

     int32 value = 1;

     DataValueType type = 2;

@@ -198,6 +212,10 @@
     PonIdConfig pon_id_config = 1;

 }

 

+message TransceiverComponentChangeAttributes {

+    TransceiverType trans_type = 1;

+}

+

 message PonIdConfig {

     // The pon_id and pon_id_transmit_periodicity attributes are valid only for ports of type GPON, XGPON and XGSPON

     // For GPON pon_id is a 7 byte value

@@ -239,18 +257,8 @@
         CFP2_DCO = 14;

     }

 

-    enum Type {

-        TYPE_UNKNOWN = 0;

-        ETHERNET = 1;

-        GPON = 2;

-        XGPON = 3;

-        XGSPON = 4;

-        CPON = 5;

-        NG_PON2 = 6;

-        EPON = 7;

-    }

     FormFactor form_factor = 1;

-    Type trans_type = 2;

+    TransceiverType trans_type = 2;

     // The maximum reach that can be achieved by this transceiver

     uint32 max_distance = 3;

     ValueScale max_distance_scale = 4;

@@ -320,5 +328,6 @@
     // The attribute 'specific' can be populated for specific class of components

     oneof specific {

         PortComponentChangeAttributes port_attr = 50;

+        TransceiverComponentChangeAttributes trx_attr = 51;

     }

 }

diff --git a/protos/dmi/hw_management_service.proto b/protos/dmi/hw_management_service.proto
index 7b24925..e98a0be 100644
--- a/protos/dmi/hw_management_service.proto
+++ b/protos/dmi/hw_management_service.proto
@@ -64,6 +64,7 @@
         INVALID_PARAMS = 3;

         INTERNAL_ERROR = 4;

         DEVICE_UNREACHABLE = 5;

+        SET_UNSUPPORTED = 6;

     }

     Status status = 1;

     Reason reason = 2;

diff --git a/python/dmi/commons_pb2.py b/python/dmi/commons_pb2.py
index 65deceb..46008a9 100644
--- a/python/dmi/commons_pb2.py
+++ b/python/dmi/commons_pb2.py
@@ -4,6 +4,7 @@
 """Generated protocol buffer code."""
 from google.protobuf.internal import enum_type_wrapper
 from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
 from google.protobuf import symbol_database as _symbol_database
@@ -14,86 +15,11 @@
 
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='dmi/commons.proto',
-  package='dmi',
-  syntax='proto3',
-  serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x11\x64mi/commons.proto\x12\x03\x64mi*?\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\r\n\tOK_STATUS\x10\x01\x12\x10\n\x0c\x45RROR_STATUS\x10\x02*?\n\x08LogLevel\x12\t\n\x05TRACE\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\x01\x12\x08\n\x04INFO\x10\x02\x12\x08\n\x04WARN\x10\x03\x12\t\n\x05\x45RROR\x10\x04\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x11\x64mi/commons.proto\x12\x03\x64mi*?\n\x06Status\x12\x14\n\x10UNDEFINED_STATUS\x10\x00\x12\r\n\tOK_STATUS\x10\x01\x12\x10\n\x0c\x45RROR_STATUS\x10\x02*?\n\x08LogLevel\x12\t\n\x05TRACE\x10\x00\x12\t\n\x05\x44\x45\x42UG\x10\x01\x12\x08\n\x04INFO\x10\x02\x12\x08\n\x04WARN\x10\x03\x12\t\n\x05\x45RROR\x10\x04\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
 
-_STATUS = _descriptor.EnumDescriptor(
-  name='Status',
-  full_name='dmi.Status',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_STATUS', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='OK_STATUS', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='ERROR_STATUS', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=26,
-  serialized_end=89,
-)
-_sym_db.RegisterEnumDescriptor(_STATUS)
-
+_STATUS = DESCRIPTOR.enum_types_by_name['Status']
 Status = enum_type_wrapper.EnumTypeWrapper(_STATUS)
-_LOGLEVEL = _descriptor.EnumDescriptor(
-  name='LogLevel',
-  full_name='dmi.LogLevel',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='TRACE', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEBUG', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INFO', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='WARN', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='ERROR', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=91,
-  serialized_end=154,
-)
-_sym_db.RegisterEnumDescriptor(_LOGLEVEL)
-
+_LOGLEVEL = DESCRIPTOR.enum_types_by_name['LogLevel']
 LogLevel = enum_type_wrapper.EnumTypeWrapper(_LOGLEVEL)
 UNDEFINED_STATUS = 0
 OK_STATUS = 1
@@ -105,10 +31,12 @@
 ERROR = 4
 
 
-DESCRIPTOR.enum_types_by_name['Status'] = _STATUS
-DESCRIPTOR.enum_types_by_name['LogLevel'] = _LOGLEVEL
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-
-DESCRIPTOR._options = None
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z9github.com/opencord/device-management-interface/v3/go/dmi'
+  _STATUS._serialized_start=26
+  _STATUS._serialized_end=89
+  _LOGLEVEL._serialized_start=91
+  _LOGLEVEL._serialized_end=154
 # @@protoc_insertion_point(module_scope)
diff --git a/python/dmi/hw_events_mgmt_service_pb2.py b/python/dmi/hw_events_mgmt_service_pb2.py
index 0ac0030..3e83d00 100644
--- a/python/dmi/hw_events_mgmt_service_pb2.py
+++ b/python/dmi/hw_events_mgmt_service_pb2.py
@@ -4,6 +4,7 @@
 """Generated protocol buffer code."""
 from google.protobuf.internal import enum_type_wrapper
 from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
 from google.protobuf import symbol_database as _symbol_database
@@ -18,256 +19,9 @@
 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='dmi/hw_events_mgmt_service.proto',
-  package='dmi',
-  syntax='proto3',
-  serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n dmi/hw_events_mgmt_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"N\n\tValueType\x12\x11\n\x07int_val\x18\x01 \x01(\x03H\x00\x12\x12\n\x08uint_val\x18\x02 \x01(\x04H\x00\x12\x13\n\tfloat_val\x18\x03 \x01(\x02H\x00\x42\x05\n\x03val\"G\n\nWaterMarks\x12\x1c\n\x04high\x18\x01 \x01(\x0b\x32\x0e.dmi.ValueType\x12\x1b\n\x03low\x18\x02 \x01(\x0b\x32\x0e.dmi.ValueType\"]\n\nThresholds\x12 \n\x05upper\x18\x01 \x01(\x0b\x32\x0f.dmi.WaterMarksH\x00\x12 \n\x05lower\x18\x02 \x01(\x0b\x32\x0f.dmi.WaterMarksH\x00\x42\x0b\n\tthreshold\"c\n\x14ThresholdInformation\x12&\n\x0eobserved_value\x18\x01 \x01(\x0b\x32\x0e.dmi.ValueType\x12#\n\nthresholds\x18\x02 \x01(\x0b\x32\x0f.dmi.Thresholds\"g\n\x08\x45ventCfg\x12\x1f\n\x08\x65vent_id\x18\x01 \x01(\x0e\x32\r.dmi.EventIds\x12\x15\n\ris_configured\x18\x02 \x01(\x08\x12#\n\nthresholds\x18\x03 \x01(\x0b\x32\x0f.dmi.Thresholds\")\n\tEventsCfg\x12\x1c\n\x05items\x18\x01 \x03(\x0b\x32\r.dmi.EventCfg\"\xf8\x01\n\x12ListEventsResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12.\n\x06reason\x18\x02 \x01(\x0e\x32\x1e.dmi.ListEventsResponse.Reason\x12\x1e\n\x06\x65vents\x18\x03 \x01(\x0b\x32\x0e.dmi.EventsCfg\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"\x88\x01\n\x1a\x45ventsConfigurationRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x07\x63hanges\x18\x02 \x01(\x0b\x32\x0e.dmi.EventsCfgH\x00\x12\x1a\n\x10reset_to_default\x18\x03 \x01(\x08H\x00\x42\x0b\n\toperation\"\xfe\x01\n\x1b\x45ventsConfigurationResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x37\n\x06reason\x18\x02 \x01(\x0e\x32\'.dmi.EventsConfigurationResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"r\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x12\n\x0eINVALID_CONFIG\x10\x03\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x04\"j\n\rEventMetaData\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\"\xc8\x01\n\x05\x45vent\x12*\n\x0e\x65vent_metadata\x18\x01 \x01(\x0b\x32\x12.dmi.EventMetaData\x12\x1f\n\x08\x65vent_id\x18\x02 \x01(\x0e\x32\r.dmi.EventIds\x12-\n\traised_ts\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\x0ethreshold_info\x18\x04 \x01(\x0b\x32\x19.dmi.ThresholdInformation\x12\x10\n\x08\x61\x64\x64_info\x18\x05 \x01(\t*\xc5\x0f\n\x08\x45ventIds\x12\x18\n\x14\x45VENT_NAME_UNDEFINED\x10\x00\x12\x1e\n\x1a\x45VENT_TRANSCEIVER_PLUG_OUT\x10\x64\x12\x1d\n\x19\x45VENT_TRANSCEIVER_PLUG_IN\x10\x65\x12-\n)EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD\x10\x66\x12-\n)EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD\x10g\x12\x31\n-EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD\x10h\x12\x31\n-EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD\x10i\x12-\n)EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD\x10j\x12-\n)EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD\x10k\x12.\n*EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD\x10l\x12.\n*EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD\x10m\x12.\n*EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD\x10n\x12.\n*EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD\x10o\x12\x1d\n\x19\x45VENT_TRANSCEIVER_FAILURE\x10p\x12\x37\n3EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED\x10q\x12\x37\n3EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED\x10r\x12;\n7EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED\x10s\x12;\n7EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED\x10t\x12\x37\n3EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED\x10u\x12\x37\n3EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED\x10v\x12\x38\n4EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED\x10w\x12\x38\n4EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED\x10x\x12\x38\n4EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED\x10y\x12\x38\n4EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED\x10z\x12\'\n#EVENT_TRANSCEIVER_FAILURE_RECOVERED\x10{\x12\x17\n\x12\x45VENT_PSU_PLUG_OUT\x10\xc8\x01\x12\x16\n\x11\x45VENT_PSU_PLUG_IN\x10\xc9\x01\x12\x16\n\x11\x45VENT_PSU_FAILURE\x10\xca\x01\x12 \n\x1b\x45VENT_PSU_FAILURE_RECOVERED\x10\xcb\x01\x12\x16\n\x11\x45VENT_FAN_FAILURE\x10\xac\x02\x12\x17\n\x12\x45VENT_FAN_PLUG_OUT\x10\xad\x02\x12\x16\n\x11\x45VENT_FAN_PLUG_IN\x10\xae\x02\x12 \n\x1b\x45VENT_FAN_FAILURE_RECOVERED\x10\xaf\x02\x12)\n$EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL\x10\x90\x03\x12&\n!EVENT_CPU_TEMPERATURE_ABOVE_FATAL\x10\x91\x03\x12\x33\n.EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED\x10\x92\x03\x12\x30\n+EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED\x10\x93\x03\x12\x1a\n\x15\x45VENT_HW_DEVICE_RESET\x10\xf4\x03\x12/\n*EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL\x10\xf5\x03\x12,\n\'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL\x10\xf6\x03\x12\x39\n4EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED\x10\xf7\x03\x12\x36\n1EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED\x10\xf8\x03\x12\x1b\n\x16\x45VENT_HW_DEVICE_REBOOT\x10\xf9\x03\x12\'\n\"EVENT_HW_TEMPERATURE_SENSOR_FAILED\x10\xfa\x03\x12,\n\'EVENT_HW_ALL_TEMPERATURE_SENSORS_FAILED\x10\xfb\x03\x32\xed\x01\n\x1dNativeEventsManagementService\x12\x36\n\nListEvents\x12\x0f.dmi.HardwareID\x1a\x17.dmi.ListEventsResponse\x12^\n\x19UpdateEventsConfiguration\x12\x1f.dmi.EventsConfigurationRequest\x1a .dmi.EventsConfigurationResponse\x12\x34\n\x0cStreamEvents\x12\x16.google.protobuf.Empty\x1a\n.dmi.Event0\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
-  ,
-  dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,dmi_dot_hw__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n dmi/hw_events_mgmt_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"N\n\tValueType\x12\x11\n\x07int_val\x18\x01 \x01(\x03H\x00\x12\x12\n\x08uint_val\x18\x02 \x01(\x04H\x00\x12\x13\n\tfloat_val\x18\x03 \x01(\x02H\x00\x42\x05\n\x03val\"G\n\nWaterMarks\x12\x1c\n\x04high\x18\x01 \x01(\x0b\x32\x0e.dmi.ValueType\x12\x1b\n\x03low\x18\x02 \x01(\x0b\x32\x0e.dmi.ValueType\"]\n\nThresholds\x12 \n\x05upper\x18\x01 \x01(\x0b\x32\x0f.dmi.WaterMarksH\x00\x12 \n\x05lower\x18\x02 \x01(\x0b\x32\x0f.dmi.WaterMarksH\x00\x42\x0b\n\tthreshold\"c\n\x14ThresholdInformation\x12&\n\x0eobserved_value\x18\x01 \x01(\x0b\x32\x0e.dmi.ValueType\x12#\n\nthresholds\x18\x02 \x01(\x0b\x32\x0f.dmi.Thresholds\"g\n\x08\x45ventCfg\x12\x1f\n\x08\x65vent_id\x18\x01 \x01(\x0e\x32\r.dmi.EventIds\x12\x15\n\ris_configured\x18\x02 \x01(\x08\x12#\n\nthresholds\x18\x03 \x01(\x0b\x32\x0f.dmi.Thresholds\")\n\tEventsCfg\x12\x1c\n\x05items\x18\x01 \x03(\x0b\x32\r.dmi.EventCfg\"\xf8\x01\n\x12ListEventsResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12.\n\x06reason\x18\x02 \x01(\x0e\x32\x1e.dmi.ListEventsResponse.Reason\x12\x1e\n\x06\x65vents\x18\x03 \x01(\x0b\x32\x0e.dmi.EventsCfg\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"\x88\x01\n\x1a\x45ventsConfigurationRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x07\x63hanges\x18\x02 \x01(\x0b\x32\x0e.dmi.EventsCfgH\x00\x12\x1a\n\x10reset_to_default\x18\x03 \x01(\x08H\x00\x42\x0b\n\toperation\"\xfe\x01\n\x1b\x45ventsConfigurationResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x37\n\x06reason\x18\x02 \x01(\x0e\x32\'.dmi.EventsConfigurationResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"r\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x12\n\x0eINVALID_CONFIG\x10\x03\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x04\"j\n\rEventMetaData\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\"\xc8\x01\n\x05\x45vent\x12*\n\x0e\x65vent_metadata\x18\x01 \x01(\x0b\x32\x12.dmi.EventMetaData\x12\x1f\n\x08\x65vent_id\x18\x02 \x01(\x0e\x32\r.dmi.EventIds\x12-\n\traised_ts\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\x0ethreshold_info\x18\x04 \x01(\x0b\x32\x19.dmi.ThresholdInformation\x12\x10\n\x08\x61\x64\x64_info\x18\x05 \x01(\t*\xc5\x0f\n\x08\x45ventIds\x12\x18\n\x14\x45VENT_NAME_UNDEFINED\x10\x00\x12\x1e\n\x1a\x45VENT_TRANSCEIVER_PLUG_OUT\x10\x64\x12\x1d\n\x19\x45VENT_TRANSCEIVER_PLUG_IN\x10\x65\x12-\n)EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD\x10\x66\x12-\n)EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD\x10g\x12\x31\n-EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD\x10h\x12\x31\n-EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD\x10i\x12-\n)EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD\x10j\x12-\n)EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD\x10k\x12.\n*EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD\x10l\x12.\n*EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD\x10m\x12.\n*EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD\x10n\x12.\n*EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD\x10o\x12\x1d\n\x19\x45VENT_TRANSCEIVER_FAILURE\x10p\x12\x37\n3EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED\x10q\x12\x37\n3EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED\x10r\x12;\n7EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED\x10s\x12;\n7EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED\x10t\x12\x37\n3EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED\x10u\x12\x37\n3EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED\x10v\x12\x38\n4EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED\x10w\x12\x38\n4EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED\x10x\x12\x38\n4EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED\x10y\x12\x38\n4EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED\x10z\x12\'\n#EVENT_TRANSCEIVER_FAILURE_RECOVERED\x10{\x12\x17\n\x12\x45VENT_PSU_PLUG_OUT\x10\xc8\x01\x12\x16\n\x11\x45VENT_PSU_PLUG_IN\x10\xc9\x01\x12\x16\n\x11\x45VENT_PSU_FAILURE\x10\xca\x01\x12 \n\x1b\x45VENT_PSU_FAILURE_RECOVERED\x10\xcb\x01\x12\x16\n\x11\x45VENT_FAN_FAILURE\x10\xac\x02\x12\x17\n\x12\x45VENT_FAN_PLUG_OUT\x10\xad\x02\x12\x16\n\x11\x45VENT_FAN_PLUG_IN\x10\xae\x02\x12 \n\x1b\x45VENT_FAN_FAILURE_RECOVERED\x10\xaf\x02\x12)\n$EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL\x10\x90\x03\x12&\n!EVENT_CPU_TEMPERATURE_ABOVE_FATAL\x10\x91\x03\x12\x33\n.EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED\x10\x92\x03\x12\x30\n+EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED\x10\x93\x03\x12\x1a\n\x15\x45VENT_HW_DEVICE_RESET\x10\xf4\x03\x12/\n*EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL\x10\xf5\x03\x12,\n\'EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL\x10\xf6\x03\x12\x39\n4EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED\x10\xf7\x03\x12\x36\n1EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED\x10\xf8\x03\x12\x1b\n\x16\x45VENT_HW_DEVICE_REBOOT\x10\xf9\x03\x12\'\n\"EVENT_HW_TEMPERATURE_SENSOR_FAILED\x10\xfa\x03\x12,\n\'EVENT_HW_ALL_TEMPERATURE_SENSORS_FAILED\x10\xfb\x03\x32\xed\x01\n\x1dNativeEventsManagementService\x12\x36\n\nListEvents\x12\x0f.dmi.HardwareID\x1a\x17.dmi.ListEventsResponse\x12^\n\x19UpdateEventsConfiguration\x12\x1f.dmi.EventsConfigurationRequest\x1a .dmi.EventsConfigurationResponse\x12\x34\n\x0cStreamEvents\x12\x16.google.protobuf.Empty\x1a\n.dmi.Event0\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
 
-_EVENTIDS = _descriptor.EnumDescriptor(
-  name='EventIds',
-  full_name='dmi.EventIds',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_NAME_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_PLUG_OUT', index=1, number=100,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_PLUG_IN', index=2, number=101,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD', index=3, number=102,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD', index=4, number=103,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD', index=5, number=104,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD', index=6, number=105,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD', index=7, number=106,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD', index=8, number=107,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD', index=9, number=108,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD', index=10, number=109,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD', index=11, number=110,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD', index=12, number=111,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_FAILURE', index=13, number=112,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_VOLTAGE_ABOVE_THRESHOLD_RECOVERED', index=14, number=113,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RECOVERED', index=15, number=114,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRESHOLD_RECOVERED', index=16, number=115,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_RECOVERED', index=17, number=116,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_CURRENT_ABOVE_THRESHOLD_RECOVERED', index=18, number=117,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVERED', index=19, number=118,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD_RECOVERED', index=20, number=119,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_RX_POWER_BELOW_THRESHOLD_RECOVERED', index=21, number=120,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_RECOVERED', index=22, number=121,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_TX_POWER_BELOW_THRESHOLD_RECOVERED', index=23, number=122,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_TRANSCEIVER_FAILURE_RECOVERED', index=24, number=123,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_PSU_PLUG_OUT', index=25, number=200,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_PSU_PLUG_IN', index=26, number=201,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_PSU_FAILURE', index=27, number=202,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_PSU_FAILURE_RECOVERED', index=28, number=203,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_FAN_FAILURE', index=29, number=300,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_FAN_PLUG_OUT', index=30, number=301,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_FAN_PLUG_IN', index=31, number=302,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_FAN_FAILURE_RECOVERED', index=32, number=303,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL', index=33, number=400,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_CPU_TEMPERATURE_ABOVE_FATAL', index=34, number=401,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_CPU_TEMPERATURE_ABOVE_CRITICAL_RECOVERED', index=35, number=402,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_CPU_TEMPERATURE_ABOVE_FATAL_RECOVERED', index=36, number=403,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_HW_DEVICE_RESET', index=37, number=500,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL', index=38, number=501,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL', index=39, number=502,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_RECOVERED', index=40, number=503,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL_RECOVERED', index=41, number=504,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_HW_DEVICE_REBOOT', index=42, number=505,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_HW_TEMPERATURE_SENSOR_FAILED', index=43, number=506,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EVENT_HW_ALL_TEMPERATURE_SENSORS_FAILED', index=44, number=507,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1592,
-  serialized_end=3581,
-)
-_sym_db.RegisterEnumDescriptor(_EVENTIDS)
-
+_EVENTIDS = DESCRIPTOR.enum_types_by_name['EventIds']
 EventIds = enum_type_wrapper.EnumTypeWrapper(_EVENTIDS)
 EVENT_NAME_UNDEFINED = 0
 EVENT_TRANSCEIVER_PLUG_OUT = 100
@@ -316,649 +70,19 @@
 EVENT_HW_ALL_TEMPERATURE_SENSORS_FAILED = 507
 
 
-_LISTEVENTSRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.ListEventsResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=788,
-  serialized_end=882,
-)
-_sym_db.RegisterEnumDescriptor(_LISTEVENTSRESPONSE_REASON)
-
-_EVENTSCONFIGURATIONRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.EventsConfigurationResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INVALID_CONFIG', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1164,
-  serialized_end=1278,
-)
-_sym_db.RegisterEnumDescriptor(_EVENTSCONFIGURATIONRESPONSE_REASON)
-
-
-_VALUETYPE = _descriptor.Descriptor(
-  name='ValueType',
-  full_name='dmi.ValueType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='int_val', full_name='dmi.ValueType.int_val', index=0,
-      number=1, type=3, cpp_type=2, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='uint_val', full_name='dmi.ValueType.uint_val', index=1,
-      number=2, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='float_val', full_name='dmi.ValueType.float_val', index=2,
-      number=3, type=2, cpp_type=6, label=1,
-      has_default_value=False, default_value=float(0),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-    _descriptor.OneofDescriptor(
-      name='val', full_name='dmi.ValueType.val',
-      index=0, containing_type=None,
-      create_key=_descriptor._internal_create_key,
-    fields=[]),
-  ],
-  serialized_start=136,
-  serialized_end=214,
-)
-
-
-_WATERMARKS = _descriptor.Descriptor(
-  name='WaterMarks',
-  full_name='dmi.WaterMarks',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='high', full_name='dmi.WaterMarks.high', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='low', full_name='dmi.WaterMarks.low', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=216,
-  serialized_end=287,
-)
-
-
-_THRESHOLDS = _descriptor.Descriptor(
-  name='Thresholds',
-  full_name='dmi.Thresholds',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='upper', full_name='dmi.Thresholds.upper', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='lower', full_name='dmi.Thresholds.lower', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-    _descriptor.OneofDescriptor(
-      name='threshold', full_name='dmi.Thresholds.threshold',
-      index=0, containing_type=None,
-      create_key=_descriptor._internal_create_key,
-    fields=[]),
-  ],
-  serialized_start=289,
-  serialized_end=382,
-)
-
-
-_THRESHOLDINFORMATION = _descriptor.Descriptor(
-  name='ThresholdInformation',
-  full_name='dmi.ThresholdInformation',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='observed_value', full_name='dmi.ThresholdInformation.observed_value', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='thresholds', full_name='dmi.ThresholdInformation.thresholds', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=384,
-  serialized_end=483,
-)
-
-
-_EVENTCFG = _descriptor.Descriptor(
-  name='EventCfg',
-  full_name='dmi.EventCfg',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event_id', full_name='dmi.EventCfg.event_id', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='is_configured', full_name='dmi.EventCfg.is_configured', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='thresholds', full_name='dmi.EventCfg.thresholds', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=485,
-  serialized_end=588,
-)
-
-
-_EVENTSCFG = _descriptor.Descriptor(
-  name='EventsCfg',
-  full_name='dmi.EventsCfg',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='items', full_name='dmi.EventsCfg.items', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=590,
-  serialized_end=631,
-)
-
-
-_LISTEVENTSRESPONSE = _descriptor.Descriptor(
-  name='ListEventsResponse',
-  full_name='dmi.ListEventsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.ListEventsResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.ListEventsResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='events', full_name='dmi.ListEventsResponse.events', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.ListEventsResponse.reason_detail', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _LISTEVENTSRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=634,
-  serialized_end=882,
-)
-
-
-_EVENTSCONFIGURATIONREQUEST = _descriptor.Descriptor(
-  name='EventsConfigurationRequest',
-  full_name='dmi.EventsConfigurationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.EventsConfigurationRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='changes', full_name='dmi.EventsConfigurationRequest.changes', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reset_to_default', full_name='dmi.EventsConfigurationRequest.reset_to_default', index=2,
-      number=3, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-    _descriptor.OneofDescriptor(
-      name='operation', full_name='dmi.EventsConfigurationRequest.operation',
-      index=0, containing_type=None,
-      create_key=_descriptor._internal_create_key,
-    fields=[]),
-  ],
-  serialized_start=885,
-  serialized_end=1021,
-)
-
-
-_EVENTSCONFIGURATIONRESPONSE = _descriptor.Descriptor(
-  name='EventsConfigurationResponse',
-  full_name='dmi.EventsConfigurationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.EventsConfigurationResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.EventsConfigurationResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.EventsConfigurationResponse.reason_detail', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _EVENTSCONFIGURATIONRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1024,
-  serialized_end=1278,
-)
-
-
-_EVENTMETADATA = _descriptor.Descriptor(
-  name='EventMetaData',
-  full_name='dmi.EventMetaData',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.EventMetaData.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='component_uuid', full_name='dmi.EventMetaData.component_uuid', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='component_name', full_name='dmi.EventMetaData.component_name', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1280,
-  serialized_end=1386,
-)
-
-
-_EVENT = _descriptor.Descriptor(
-  name='Event',
-  full_name='dmi.Event',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='event_metadata', full_name='dmi.Event.event_metadata', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='event_id', full_name='dmi.Event.event_id', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='raised_ts', full_name='dmi.Event.raised_ts', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='threshold_info', full_name='dmi.Event.threshold_info', index=3,
-      number=4, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='add_info', full_name='dmi.Event.add_info', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1389,
-  serialized_end=1589,
-)
-
-_VALUETYPE.oneofs_by_name['val'].fields.append(
-  _VALUETYPE.fields_by_name['int_val'])
-_VALUETYPE.fields_by_name['int_val'].containing_oneof = _VALUETYPE.oneofs_by_name['val']
-_VALUETYPE.oneofs_by_name['val'].fields.append(
-  _VALUETYPE.fields_by_name['uint_val'])
-_VALUETYPE.fields_by_name['uint_val'].containing_oneof = _VALUETYPE.oneofs_by_name['val']
-_VALUETYPE.oneofs_by_name['val'].fields.append(
-  _VALUETYPE.fields_by_name['float_val'])
-_VALUETYPE.fields_by_name['float_val'].containing_oneof = _VALUETYPE.oneofs_by_name['val']
-_WATERMARKS.fields_by_name['high'].message_type = _VALUETYPE
-_WATERMARKS.fields_by_name['low'].message_type = _VALUETYPE
-_THRESHOLDS.fields_by_name['upper'].message_type = _WATERMARKS
-_THRESHOLDS.fields_by_name['lower'].message_type = _WATERMARKS
-_THRESHOLDS.oneofs_by_name['threshold'].fields.append(
-  _THRESHOLDS.fields_by_name['upper'])
-_THRESHOLDS.fields_by_name['upper'].containing_oneof = _THRESHOLDS.oneofs_by_name['threshold']
-_THRESHOLDS.oneofs_by_name['threshold'].fields.append(
-  _THRESHOLDS.fields_by_name['lower'])
-_THRESHOLDS.fields_by_name['lower'].containing_oneof = _THRESHOLDS.oneofs_by_name['threshold']
-_THRESHOLDINFORMATION.fields_by_name['observed_value'].message_type = _VALUETYPE
-_THRESHOLDINFORMATION.fields_by_name['thresholds'].message_type = _THRESHOLDS
-_EVENTCFG.fields_by_name['event_id'].enum_type = _EVENTIDS
-_EVENTCFG.fields_by_name['thresholds'].message_type = _THRESHOLDS
-_EVENTSCFG.fields_by_name['items'].message_type = _EVENTCFG
-_LISTEVENTSRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_LISTEVENTSRESPONSE.fields_by_name['reason'].enum_type = _LISTEVENTSRESPONSE_REASON
-_LISTEVENTSRESPONSE.fields_by_name['events'].message_type = _EVENTSCFG
-_LISTEVENTSRESPONSE_REASON.containing_type = _LISTEVENTSRESPONSE
-_EVENTSCONFIGURATIONREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_EVENTSCONFIGURATIONREQUEST.fields_by_name['changes'].message_type = _EVENTSCFG
-_EVENTSCONFIGURATIONREQUEST.oneofs_by_name['operation'].fields.append(
-  _EVENTSCONFIGURATIONREQUEST.fields_by_name['changes'])
-_EVENTSCONFIGURATIONREQUEST.fields_by_name['changes'].containing_oneof = _EVENTSCONFIGURATIONREQUEST.oneofs_by_name['operation']
-_EVENTSCONFIGURATIONREQUEST.oneofs_by_name['operation'].fields.append(
-  _EVENTSCONFIGURATIONREQUEST.fields_by_name['reset_to_default'])
-_EVENTSCONFIGURATIONREQUEST.fields_by_name['reset_to_default'].containing_oneof = _EVENTSCONFIGURATIONREQUEST.oneofs_by_name['operation']
-_EVENTSCONFIGURATIONRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_EVENTSCONFIGURATIONRESPONSE.fields_by_name['reason'].enum_type = _EVENTSCONFIGURATIONRESPONSE_REASON
-_EVENTSCONFIGURATIONRESPONSE_REASON.containing_type = _EVENTSCONFIGURATIONRESPONSE
-_EVENTMETADATA.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_EVENTMETADATA.fields_by_name['component_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_EVENT.fields_by_name['event_metadata'].message_type = _EVENTMETADATA
-_EVENT.fields_by_name['event_id'].enum_type = _EVENTIDS
-_EVENT.fields_by_name['raised_ts'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_EVENT.fields_by_name['threshold_info'].message_type = _THRESHOLDINFORMATION
-DESCRIPTOR.message_types_by_name['ValueType'] = _VALUETYPE
-DESCRIPTOR.message_types_by_name['WaterMarks'] = _WATERMARKS
-DESCRIPTOR.message_types_by_name['Thresholds'] = _THRESHOLDS
-DESCRIPTOR.message_types_by_name['ThresholdInformation'] = _THRESHOLDINFORMATION
-DESCRIPTOR.message_types_by_name['EventCfg'] = _EVENTCFG
-DESCRIPTOR.message_types_by_name['EventsCfg'] = _EVENTSCFG
-DESCRIPTOR.message_types_by_name['ListEventsResponse'] = _LISTEVENTSRESPONSE
-DESCRIPTOR.message_types_by_name['EventsConfigurationRequest'] = _EVENTSCONFIGURATIONREQUEST
-DESCRIPTOR.message_types_by_name['EventsConfigurationResponse'] = _EVENTSCONFIGURATIONRESPONSE
-DESCRIPTOR.message_types_by_name['EventMetaData'] = _EVENTMETADATA
-DESCRIPTOR.message_types_by_name['Event'] = _EVENT
-DESCRIPTOR.enum_types_by_name['EventIds'] = _EVENTIDS
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_VALUETYPE = DESCRIPTOR.message_types_by_name['ValueType']
+_WATERMARKS = DESCRIPTOR.message_types_by_name['WaterMarks']
+_THRESHOLDS = DESCRIPTOR.message_types_by_name['Thresholds']
+_THRESHOLDINFORMATION = DESCRIPTOR.message_types_by_name['ThresholdInformation']
+_EVENTCFG = DESCRIPTOR.message_types_by_name['EventCfg']
+_EVENTSCFG = DESCRIPTOR.message_types_by_name['EventsCfg']
+_LISTEVENTSRESPONSE = DESCRIPTOR.message_types_by_name['ListEventsResponse']
+_EVENTSCONFIGURATIONREQUEST = DESCRIPTOR.message_types_by_name['EventsConfigurationRequest']
+_EVENTSCONFIGURATIONRESPONSE = DESCRIPTOR.message_types_by_name['EventsConfigurationResponse']
+_EVENTMETADATA = DESCRIPTOR.message_types_by_name['EventMetaData']
+_EVENT = DESCRIPTOR.message_types_by_name['Event']
+_LISTEVENTSRESPONSE_REASON = _LISTEVENTSRESPONSE.enum_types_by_name['Reason']
+_EVENTSCONFIGURATIONRESPONSE_REASON = _EVENTSCONFIGURATIONRESPONSE.enum_types_by_name['Reason']
 ValueType = _reflection.GeneratedProtocolMessageType('ValueType', (_message.Message,), {
   'DESCRIPTOR' : _VALUETYPE,
   '__module__' : 'dmi.hw_events_mgmt_service_pb2'
@@ -1036,52 +160,39 @@
   })
 _sym_db.RegisterMessage(Event)
 
+_NATIVEEVENTSMANAGEMENTSERVICE = DESCRIPTOR.services_by_name['NativeEventsManagementService']
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-DESCRIPTOR._options = None
-
-_NATIVEEVENTSMANAGEMENTSERVICE = _descriptor.ServiceDescriptor(
-  name='NativeEventsManagementService',
-  full_name='dmi.NativeEventsManagementService',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=3584,
-  serialized_end=3821,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='ListEvents',
-    full_name='dmi.NativeEventsManagementService.ListEvents',
-    index=0,
-    containing_service=None,
-    input_type=dmi_dot_hw__pb2._HARDWAREID,
-    output_type=_LISTEVENTSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateEventsConfiguration',
-    full_name='dmi.NativeEventsManagementService.UpdateEventsConfiguration',
-    index=1,
-    containing_service=None,
-    input_type=_EVENTSCONFIGURATIONREQUEST,
-    output_type=_EVENTSCONFIGURATIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='StreamEvents',
-    full_name='dmi.NativeEventsManagementService.StreamEvents',
-    index=2,
-    containing_service=None,
-    input_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    output_type=_EVENT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_NATIVEEVENTSMANAGEMENTSERVICE)
-
-DESCRIPTOR.services_by_name['NativeEventsManagementService'] = _NATIVEEVENTSMANAGEMENTSERVICE
-
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z9github.com/opencord/device-management-interface/v3/go/dmi'
+  _EVENTIDS._serialized_start=1592
+  _EVENTIDS._serialized_end=3581
+  _VALUETYPE._serialized_start=136
+  _VALUETYPE._serialized_end=214
+  _WATERMARKS._serialized_start=216
+  _WATERMARKS._serialized_end=287
+  _THRESHOLDS._serialized_start=289
+  _THRESHOLDS._serialized_end=382
+  _THRESHOLDINFORMATION._serialized_start=384
+  _THRESHOLDINFORMATION._serialized_end=483
+  _EVENTCFG._serialized_start=485
+  _EVENTCFG._serialized_end=588
+  _EVENTSCFG._serialized_start=590
+  _EVENTSCFG._serialized_end=631
+  _LISTEVENTSRESPONSE._serialized_start=634
+  _LISTEVENTSRESPONSE._serialized_end=882
+  _LISTEVENTSRESPONSE_REASON._serialized_start=788
+  _LISTEVENTSRESPONSE_REASON._serialized_end=882
+  _EVENTSCONFIGURATIONREQUEST._serialized_start=885
+  _EVENTSCONFIGURATIONREQUEST._serialized_end=1021
+  _EVENTSCONFIGURATIONRESPONSE._serialized_start=1024
+  _EVENTSCONFIGURATIONRESPONSE._serialized_end=1278
+  _EVENTSCONFIGURATIONRESPONSE_REASON._serialized_start=1164
+  _EVENTSCONFIGURATIONRESPONSE_REASON._serialized_end=1278
+  _EVENTMETADATA._serialized_start=1280
+  _EVENTMETADATA._serialized_end=1386
+  _EVENT._serialized_start=1389
+  _EVENT._serialized_end=1589
+  _NATIVEEVENTSMANAGEMENTSERVICE._serialized_start=3584
+  _NATIVEEVENTSMANAGEMENTSERVICE._serialized_end=3821
 # @@protoc_insertion_point(module_scope)
diff --git a/python/dmi/hw_management_service_pb2.py b/python/dmi/hw_management_service_pb2.py
index 1bf0e85..3b6cbed 100644
--- a/python/dmi/hw_management_service_pb2.py
+++ b/python/dmi/hw_management_service_pb2.py
@@ -3,6 +3,7 @@
 # source: dmi/hw_management_service.proto
 """Generated protocol buffer code."""
 from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
 from google.protobuf import symbol_database as _symbol_database
@@ -16,1673 +17,47 @@
 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='dmi/hw_management_service.proto',
-  package='dmi',
-  syntax='proto3',
-  serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x1f\x64mi/hw_management_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\x1a\x1bgoogle/protobuf/empty.proto\":\n\x18PhysicalInventoryRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x88\x02\n\x19PhysicalInventoryResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x35\n\x06reason\x18\x02 \x01(\x0e\x32%.dmi.PhysicalInventoryResponse.Reason\x12 \n\tinventory\x18\x03 \x01(\x0b\x32\r.dmi.Hardware\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"v\n\x19HWComponentInfoGetRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\"\xa2\x02\n\x1aHWComponentInfoGetResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x36\n\x06reason\x18\x02 \x01(\x0e\x32&.dmi.HWComponentInfoGetResponse.Reason\x12!\n\tcomponent\x18\x03 \x01(\x0b\x32\x0e.dmi.Component\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"u\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x15\n\x11UNKNOWN_COMPONENT\x10\x02\x12\x12\n\x0eINTERNAL_ERROR\x10\x03\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x04\"\xa1\x01\n\x19HWComponentInfoSetRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\x12)\n\x07\x63hanges\x18\x04 \x01(\x0b\x32\x18.dmi.ModifiableComponent\"\x94\x02\n\x1aHWComponentInfoSetResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x36\n\x06reason\x18\x02 \x01(\x0e\x32&.dmi.HWComponentInfoSetResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"\x89\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x15\n\x11UNKNOWN_COMPONENT\x10\x02\x12\x12\n\x0eINVALID_PARAMS\x10\x03\x12\x12\n\x0eINTERNAL_ERROR\x10\x04\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x05\"\xe7\x02\n\x1bStartManagingDeviceResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x37\n\x06reason\x18\x02 \x01(\x0e\x32\'.dmi.StartManagingDeviceResponse.Reason\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x03 \x01(\x0b\x32\t.dmi.Uuid\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"\xba\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x1a\n\x16\x44\x45VICE_ALREADY_MANAGED\x10\x01\x12!\n\x1dOPERATION_ALREADY_IN_PROGRESS\x10\x02\x12\x12\n\x0eINVALID_PARAMS\x10\x03\x12\x12\n\x0eINTERNAL_ERROR\x10\x04\x12\x1a\n\x16\x41UTHENTICATION_FAILURE\x10\x05\x12\x17\n\x13INCOMPATIBLE_DEVICE\x10\x06\")\n\x19StopManagingDeviceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xbc\x01\n\x1aStopManagingDeviceResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x36\n\x06reason\x18\x02 \x01(\x0e\x32&.dmi.StopManagingDeviceResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"2\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\"[\n\x11ManagedDeviceInfo\x12&\n\x04info\x18\x01 \x01(\x0b\x32\x18.dmi.ModifiableComponent\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\"\xc6\x01\n\x16ManagedDevicesResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x32\n\x06reason\x18\x02 \x01(\x0e\x32\".dmi.ManagedDevicesResponse.Reason\x12\'\n\x07\x64\x65vices\x18\x03 \x03(\x0b\x32\x16.dmi.ManagedDeviceInfo\"2\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eINTERNAL_ERROR\x10\x01\"o\n\x19SetLoggingEndpointRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12\x18\n\x10logging_endpoint\x18\x02 \x01(\t\x12\x18\n\x10logging_protocol\x18\x03 \x01(\t\"\xc3\x02\n\x19SetRemoteEndpointResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x35\n\x06reason\x18\x02 \x01(\x0e\x32%.dmi.SetRemoteEndpointResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"\xba\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x1a\n\x16LOGGING_ENDPOINT_ERROR\x10\x03\x12#\n\x1fLOGGING_ENDPOINT_PROTOCOL_ERROR\x10\x04\x12\x19\n\x15MSGBUS_ENDPOINT_ERROR\x10\x05\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x06\"\x9c\x02\n\x1aGetLoggingEndpointResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x36\n\x06reason\x18\x02 \x01(\x0e\x32&.dmi.GetLoggingEndpointResponse.Reason\x12\x18\n\x10logging_endpoint\x18\x03 \x01(\t\x12\x18\n\x10logging_protocol\x18\x04 \x01(\t\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"3\n\x18SetMsgBusEndpointRequest\x12\x17\n\x0fmsgbus_endpoint\x18\x01 \x01(\t\"\xeb\x01\n\x19GetMsgBusEndpointResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x35\n\x06reason\x18\x02 \x01(\x0e\x32%.dmi.GetMsgBusEndpointResponse.Reason\x12\x17\n\x0fmsgbus_endpoint\x18\x03 \x01(\t\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"J\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eINTERNAL_ERROR\x10\x01\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x02\"E\n\x10\x45ntitiesLogLevel\x12\x1f\n\x08logLevel\x18\x01 \x01(\x0e\x32\r.dmi.LogLevel\x12\x10\n\x08\x65ntities\x18\x02 \x03(\t\"^\n\x12SetLogLevelRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12(\n\tloglevels\x18\x02 \x03(\x0b\x32\x15.dmi.EntitiesLogLevel\"\x92\x02\n\x13SetLogLevelResponse\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12\x1b\n\x06status\x18\x02 \x01(\x0e\x32\x0b.dmi.Status\x12/\n\x06reason\x18\x03 \x01(\x0e\x32\x1f.dmi.SetLogLevelResponse.Reason\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"v\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12UNKNOWN_LOG_ENTITY\x10\x03\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x04\"F\n\x12GetLogLevelRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12\x10\n\x08\x65ntities\x18\x02 \x03(\t\"\xbc\x02\n\x13GetLogLevelResponse\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12(\n\tlogLevels\x18\x02 \x03(\x0b\x32\x15.dmi.EntitiesLogLevel\x12\x1b\n\x06status\x18\x03 \x01(\x0e\x32\x0b.dmi.Status\x12/\n\x06reason\x18\x04 \x01(\x0e\x32\x1f.dmi.GetLogLevelResponse.Reason\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"v\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12UNKNOWN_LOG_ENTITY\x10\x03\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x04\"<\n\x1aGetLoggableEntitiesRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"(\n\tHeartbeat\x12\x1b\n\x13heartbeat_signature\x18\x01 \x01(\x07\"5\n\x13RebootDeviceRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\xdc\x01\n\x14RebootDeviceResponse\x12\x1b\n\x06status\x18\x03 \x01(\x0e\x32\x0b.dmi.Status\x12\x30\n\x06reason\x18\x04 \x01(\x0e\x32 .dmi.RebootDeviceResponse.Reason\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\x32\xae\t\n\x19NativeHWManagementService\x12S\n\x13StartManagingDevice\x12\x18.dmi.ModifiableComponent\x1a .dmi.StartManagingDeviceResponse0\x01\x12U\n\x12StopManagingDevice\x12\x1e.dmi.StopManagingDeviceRequest\x1a\x1f.dmi.StopManagingDeviceResponse\x12H\n\x11GetManagedDevices\x12\x16.google.protobuf.Empty\x1a\x1b.dmi.ManagedDevicesResponse\x12W\n\x14GetPhysicalInventory\x12\x1d.dmi.PhysicalInventoryRequest\x1a\x1e.dmi.PhysicalInventoryResponse0\x01\x12W\n\x12GetHWComponentInfo\x12\x1e.dmi.HWComponentInfoGetRequest\x1a\x1f.dmi.HWComponentInfoGetResponse0\x01\x12U\n\x12SetHWComponentInfo\x12\x1e.dmi.HWComponentInfoSetRequest\x1a\x1f.dmi.HWComponentInfoSetResponse\x12T\n\x12SetLoggingEndpoint\x12\x1e.dmi.SetLoggingEndpointRequest\x1a\x1e.dmi.SetRemoteEndpointResponse\x12\x46\n\x12GetLoggingEndpoint\x12\x0f.dmi.HardwareID\x1a\x1f.dmi.GetLoggingEndpointResponse\x12R\n\x11SetMsgBusEndpoint\x12\x1d.dmi.SetMsgBusEndpointRequest\x1a\x1e.dmi.SetRemoteEndpointResponse\x12K\n\x11GetMsgBusEndpoint\x12\x16.google.protobuf.Empty\x1a\x1e.dmi.GetMsgBusEndpointResponse\x12P\n\x13GetLoggableEntities\x12\x1f.dmi.GetLoggableEntitiesRequest\x1a\x18.dmi.GetLogLevelResponse\x12@\n\x0bSetLogLevel\x12\x17.dmi.SetLogLevelRequest\x1a\x18.dmi.SetLogLevelResponse\x12@\n\x0bGetLogLevel\x12\x17.dmi.GetLogLevelRequest\x1a\x18.dmi.GetLogLevelResponse\x12\x38\n\x0eHeartbeatCheck\x12\x16.google.protobuf.Empty\x1a\x0e.dmi.Heartbeat\x12\x43\n\x0cRebootDevice\x12\x18.dmi.RebootDeviceRequest\x1a\x19.dmi.RebootDeviceResponseB;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
-  ,
-  dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,dmi_dot_hw__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x64mi/hw_management_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\x1a\x1bgoogle/protobuf/empty.proto\":\n\x18PhysicalInventoryRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x88\x02\n\x19PhysicalInventoryResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x35\n\x06reason\x18\x02 \x01(\x0e\x32%.dmi.PhysicalInventoryResponse.Reason\x12 \n\tinventory\x18\x03 \x01(\x0b\x32\r.dmi.Hardware\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"v\n\x19HWComponentInfoGetRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\"\xa2\x02\n\x1aHWComponentInfoGetResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x36\n\x06reason\x18\x02 \x01(\x0e\x32&.dmi.HWComponentInfoGetResponse.Reason\x12!\n\tcomponent\x18\x03 \x01(\x0b\x32\x0e.dmi.Component\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"u\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x15\n\x11UNKNOWN_COMPONENT\x10\x02\x12\x12\n\x0eINTERNAL_ERROR\x10\x03\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x04\"\xa1\x01\n\x19HWComponentInfoSetRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\x12)\n\x07\x63hanges\x18\x04 \x01(\x0b\x32\x18.dmi.ModifiableComponent\"\xa9\x02\n\x1aHWComponentInfoSetResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x36\n\x06reason\x18\x02 \x01(\x0e\x32&.dmi.HWComponentInfoSetResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"\x9e\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x15\n\x11UNKNOWN_COMPONENT\x10\x02\x12\x12\n\x0eINVALID_PARAMS\x10\x03\x12\x12\n\x0eINTERNAL_ERROR\x10\x04\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x05\x12\x13\n\x0fSET_UNSUPPORTED\x10\x06\"\xe7\x02\n\x1bStartManagingDeviceResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x37\n\x06reason\x18\x02 \x01(\x0e\x32\'.dmi.StartManagingDeviceResponse.Reason\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x03 \x01(\x0b\x32\t.dmi.Uuid\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"\xba\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x1a\n\x16\x44\x45VICE_ALREADY_MANAGED\x10\x01\x12!\n\x1dOPERATION_ALREADY_IN_PROGRESS\x10\x02\x12\x12\n\x0eINVALID_PARAMS\x10\x03\x12\x12\n\x0eINTERNAL_ERROR\x10\x04\x12\x1a\n\x16\x41UTHENTICATION_FAILURE\x10\x05\x12\x17\n\x13INCOMPATIBLE_DEVICE\x10\x06\")\n\x19StopManagingDeviceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"\xbc\x01\n\x1aStopManagingDeviceResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x36\n\x06reason\x18\x02 \x01(\x0e\x32&.dmi.StopManagingDeviceResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"2\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\"[\n\x11ManagedDeviceInfo\x12&\n\x04info\x18\x01 \x01(\x0b\x32\x18.dmi.ModifiableComponent\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\"\xc6\x01\n\x16ManagedDevicesResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x32\n\x06reason\x18\x02 \x01(\x0e\x32\".dmi.ManagedDevicesResponse.Reason\x12\'\n\x07\x64\x65vices\x18\x03 \x03(\x0b\x32\x16.dmi.ManagedDeviceInfo\"2\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eINTERNAL_ERROR\x10\x01\"o\n\x19SetLoggingEndpointRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12\x18\n\x10logging_endpoint\x18\x02 \x01(\t\x12\x18\n\x10logging_protocol\x18\x03 \x01(\t\"\xc3\x02\n\x19SetRemoteEndpointResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x35\n\x06reason\x18\x02 \x01(\x0e\x32%.dmi.SetRemoteEndpointResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"\xba\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x1a\n\x16LOGGING_ENDPOINT_ERROR\x10\x03\x12#\n\x1fLOGGING_ENDPOINT_PROTOCOL_ERROR\x10\x04\x12\x19\n\x15MSGBUS_ENDPOINT_ERROR\x10\x05\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x06\"\x9c\x02\n\x1aGetLoggingEndpointResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x36\n\x06reason\x18\x02 \x01(\x0e\x32&.dmi.GetLoggingEndpointResponse.Reason\x12\x18\n\x10logging_endpoint\x18\x03 \x01(\t\x12\x18\n\x10logging_protocol\x18\x04 \x01(\t\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"3\n\x18SetMsgBusEndpointRequest\x12\x17\n\x0fmsgbus_endpoint\x18\x01 \x01(\t\"\xeb\x01\n\x19GetMsgBusEndpointResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x35\n\x06reason\x18\x02 \x01(\x0e\x32%.dmi.GetMsgBusEndpointResponse.Reason\x12\x17\n\x0fmsgbus_endpoint\x18\x03 \x01(\t\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"J\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eINTERNAL_ERROR\x10\x01\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x02\"E\n\x10\x45ntitiesLogLevel\x12\x1f\n\x08logLevel\x18\x01 \x01(\x0e\x32\r.dmi.LogLevel\x12\x10\n\x08\x65ntities\x18\x02 \x03(\t\"^\n\x12SetLogLevelRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12(\n\tloglevels\x18\x02 \x03(\x0b\x32\x15.dmi.EntitiesLogLevel\"\x92\x02\n\x13SetLogLevelResponse\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12\x1b\n\x06status\x18\x02 \x01(\x0e\x32\x0b.dmi.Status\x12/\n\x06reason\x18\x03 \x01(\x0e\x32\x1f.dmi.SetLogLevelResponse.Reason\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"v\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12UNKNOWN_LOG_ENTITY\x10\x03\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x04\"F\n\x12GetLogLevelRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12\x10\n\x08\x65ntities\x18\x02 \x03(\t\"\xbc\x02\n\x13GetLogLevelResponse\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12(\n\tlogLevels\x18\x02 \x03(\x0b\x32\x15.dmi.EntitiesLogLevel\x12\x1b\n\x06status\x18\x03 \x01(\x0e\x32\x0b.dmi.Status\x12/\n\x06reason\x18\x04 \x01(\x0e\x32\x1f.dmi.GetLogLevelResponse.Reason\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"v\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12UNKNOWN_LOG_ENTITY\x10\x03\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x04\"<\n\x1aGetLoggableEntitiesRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"(\n\tHeartbeat\x12\x1b\n\x13heartbeat_signature\x18\x01 \x01(\x07\"5\n\x13RebootDeviceRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\xdc\x01\n\x14RebootDeviceResponse\x12\x1b\n\x06status\x18\x03 \x01(\x0e\x32\x0b.dmi.Status\x12\x30\n\x06reason\x18\x04 \x01(\x0e\x32 .dmi.RebootDeviceResponse.Reason\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\x32\xae\t\n\x19NativeHWManagementService\x12S\n\x13StartManagingDevice\x12\x18.dmi.ModifiableComponent\x1a .dmi.StartManagingDeviceResponse0\x01\x12U\n\x12StopManagingDevice\x12\x1e.dmi.StopManagingDeviceRequest\x1a\x1f.dmi.StopManagingDeviceResponse\x12H\n\x11GetManagedDevices\x12\x16.google.protobuf.Empty\x1a\x1b.dmi.ManagedDevicesResponse\x12W\n\x14GetPhysicalInventory\x12\x1d.dmi.PhysicalInventoryRequest\x1a\x1e.dmi.PhysicalInventoryResponse0\x01\x12W\n\x12GetHWComponentInfo\x12\x1e.dmi.HWComponentInfoGetRequest\x1a\x1f.dmi.HWComponentInfoGetResponse0\x01\x12U\n\x12SetHWComponentInfo\x12\x1e.dmi.HWComponentInfoSetRequest\x1a\x1f.dmi.HWComponentInfoSetResponse\x12T\n\x12SetLoggingEndpoint\x12\x1e.dmi.SetLoggingEndpointRequest\x1a\x1e.dmi.SetRemoteEndpointResponse\x12\x46\n\x12GetLoggingEndpoint\x12\x0f.dmi.HardwareID\x1a\x1f.dmi.GetLoggingEndpointResponse\x12R\n\x11SetMsgBusEndpoint\x12\x1d.dmi.SetMsgBusEndpointRequest\x1a\x1e.dmi.SetRemoteEndpointResponse\x12K\n\x11GetMsgBusEndpoint\x12\x16.google.protobuf.Empty\x1a\x1e.dmi.GetMsgBusEndpointResponse\x12P\n\x13GetLoggableEntities\x12\x1f.dmi.GetLoggableEntitiesRequest\x1a\x18.dmi.GetLogLevelResponse\x12@\n\x0bSetLogLevel\x12\x17.dmi.SetLogLevelRequest\x1a\x18.dmi.SetLogLevelResponse\x12@\n\x0bGetLogLevel\x12\x17.dmi.GetLogLevelRequest\x1a\x18.dmi.GetLogLevelResponse\x12\x38\n\x0eHeartbeatCheck\x12\x16.google.protobuf.Empty\x1a\x0e.dmi.Heartbeat\x12\x43\n\x0cRebootDevice\x12\x18.dmi.RebootDeviceRequest\x1a\x19.dmi.RebootDeviceResponseB;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
 
 
 
-_PHYSICALINVENTORYRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.PhysicalInventoryResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=333,
-  serialized_end=427,
-)
-_sym_db.RegisterEnumDescriptor(_PHYSICALINVENTORYRESPONSE_REASON)
-
-_HWCOMPONENTINFOGETRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.HWComponentInfoGetResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_COMPONENT', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=723,
-  serialized_end=840,
-)
-_sym_db.RegisterEnumDescriptor(_HWCOMPONENTINFOGETRESPONSE_REASON)
-
-_HWCOMPONENTINFOSETRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.HWComponentInfoSetResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_COMPONENT', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INVALID_PARAMS', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1146,
-  serialized_end=1283,
-)
-_sym_db.RegisterEnumDescriptor(_HWCOMPONENTINFOSETRESPONSE_REASON)
-
-_STARTMANAGINGDEVICERESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.StartManagingDeviceResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_ALREADY_MANAGED', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='OPERATION_ALREADY_IN_PROGRESS', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INVALID_PARAMS', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='AUTHENTICATION_FAILURE', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INCOMPATIBLE_DEVICE', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1459,
-  serialized_end=1645,
-)
-_sym_db.RegisterEnumDescriptor(_STARTMANAGINGDEVICERESPONSE_REASON)
-
-_STOPMANAGINGDEVICERESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.StopManagingDeviceResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=333,
-  serialized_end=383,
-)
-_sym_db.RegisterEnumDescriptor(_STOPMANAGINGDEVICERESPONSE_REASON)
-
-_MANAGEDDEVICESRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.ManagedDevicesResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=2123,
-  serialized_end=2173,
-)
-_sym_db.RegisterEnumDescriptor(_MANAGEDDEVICESRESPONSE_REASON)
-
-_SETREMOTEENDPOINTRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.SetRemoteEndpointResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='LOGGING_ENDPOINT_ERROR', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='LOGGING_ENDPOINT_PROTOCOL_ERROR', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='MSGBUS_ENDPOINT_ERROR', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=2426,
-  serialized_end=2612,
-)
-_sym_db.RegisterEnumDescriptor(_SETREMOTEENDPOINTRESPONSE_REASON)
-
-_GETLOGGINGENDPOINTRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.GetLoggingEndpointResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=333,
-  serialized_end=427,
-)
-_sym_db.RegisterEnumDescriptor(_GETLOGGINGENDPOINTRESPONSE_REASON)
-
-_GETMSGBUSENDPOINTRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.GetMsgBusEndpointResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=3116,
-  serialized_end=3190,
-)
-_sym_db.RegisterEnumDescriptor(_GETMSGBUSENDPOINTRESPONSE_REASON)
-
-_SETLOGLEVELRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.SetLogLevelResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_LOG_ENTITY', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=3516,
-  serialized_end=3634,
-)
-_sym_db.RegisterEnumDescriptor(_SETLOGLEVELRESPONSE_REASON)
-
-_GETLOGLEVELRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.GetLogLevelResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_LOG_ENTITY', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=3516,
-  serialized_end=3634,
-)
-_sym_db.RegisterEnumDescriptor(_GETLOGLEVELRESPONSE_REASON)
-
-_REBOOTDEVICERESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.RebootDeviceResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=333,
-  serialized_end=427,
-)
-_sym_db.RegisterEnumDescriptor(_REBOOTDEVICERESPONSE_REASON)
-
-
-_PHYSICALINVENTORYREQUEST = _descriptor.Descriptor(
-  name='PhysicalInventoryRequest',
-  full_name='dmi.PhysicalInventoryRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.PhysicalInventoryRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=102,
-  serialized_end=160,
-)
-
-
-_PHYSICALINVENTORYRESPONSE = _descriptor.Descriptor(
-  name='PhysicalInventoryResponse',
-  full_name='dmi.PhysicalInventoryResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.PhysicalInventoryResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.PhysicalInventoryResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='inventory', full_name='dmi.PhysicalInventoryResponse.inventory', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.PhysicalInventoryResponse.reason_detail', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _PHYSICALINVENTORYRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=163,
-  serialized_end=427,
-)
-
-
-_HWCOMPONENTINFOGETREQUEST = _descriptor.Descriptor(
-  name='HWComponentInfoGetRequest',
-  full_name='dmi.HWComponentInfoGetRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.HWComponentInfoGetRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='component_uuid', full_name='dmi.HWComponentInfoGetRequest.component_uuid', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='component_name', full_name='dmi.HWComponentInfoGetRequest.component_name', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=429,
-  serialized_end=547,
-)
-
-
-_HWCOMPONENTINFOGETRESPONSE = _descriptor.Descriptor(
-  name='HWComponentInfoGetResponse',
-  full_name='dmi.HWComponentInfoGetResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.HWComponentInfoGetResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.HWComponentInfoGetResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='component', full_name='dmi.HWComponentInfoGetResponse.component', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.HWComponentInfoGetResponse.reason_detail', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _HWCOMPONENTINFOGETRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=550,
-  serialized_end=840,
-)
-
-
-_HWCOMPONENTINFOSETREQUEST = _descriptor.Descriptor(
-  name='HWComponentInfoSetRequest',
-  full_name='dmi.HWComponentInfoSetRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.HWComponentInfoSetRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='component_uuid', full_name='dmi.HWComponentInfoSetRequest.component_uuid', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='component_name', full_name='dmi.HWComponentInfoSetRequest.component_name', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='changes', full_name='dmi.HWComponentInfoSetRequest.changes', index=3,
-      number=4, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=843,
-  serialized_end=1004,
-)
-
-
-_HWCOMPONENTINFOSETRESPONSE = _descriptor.Descriptor(
-  name='HWComponentInfoSetResponse',
-  full_name='dmi.HWComponentInfoSetResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.HWComponentInfoSetResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.HWComponentInfoSetResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.HWComponentInfoSetResponse.reason_detail', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _HWCOMPONENTINFOSETRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1007,
-  serialized_end=1283,
-)
-
-
-_STARTMANAGINGDEVICERESPONSE = _descriptor.Descriptor(
-  name='StartManagingDeviceResponse',
-  full_name='dmi.StartManagingDeviceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.StartManagingDeviceResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.StartManagingDeviceResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.StartManagingDeviceResponse.device_uuid', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.StartManagingDeviceResponse.reason_detail', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _STARTMANAGINGDEVICERESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1286,
-  serialized_end=1645,
-)
-
-
-_STOPMANAGINGDEVICEREQUEST = _descriptor.Descriptor(
-  name='StopManagingDeviceRequest',
-  full_name='dmi.StopManagingDeviceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='dmi.StopManagingDeviceRequest.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1647,
-  serialized_end=1688,
-)
-
-
-_STOPMANAGINGDEVICERESPONSE = _descriptor.Descriptor(
-  name='StopManagingDeviceResponse',
-  full_name='dmi.StopManagingDeviceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.StopManagingDeviceResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.StopManagingDeviceResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.StopManagingDeviceResponse.reason_detail', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _STOPMANAGINGDEVICERESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1691,
-  serialized_end=1879,
-)
-
-
-_MANAGEDDEVICEINFO = _descriptor.Descriptor(
-  name='ManagedDeviceInfo',
-  full_name='dmi.ManagedDeviceInfo',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='info', full_name='dmi.ManagedDeviceInfo.info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.ManagedDeviceInfo.device_uuid', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1881,
-  serialized_end=1972,
-)
-
-
-_MANAGEDDEVICESRESPONSE = _descriptor.Descriptor(
-  name='ManagedDevicesResponse',
-  full_name='dmi.ManagedDevicesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.ManagedDevicesResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.ManagedDevicesResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='devices', full_name='dmi.ManagedDevicesResponse.devices', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _MANAGEDDEVICESRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1975,
-  serialized_end=2173,
-)
-
-
-_SETLOGGINGENDPOINTREQUEST = _descriptor.Descriptor(
-  name='SetLoggingEndpointRequest',
-  full_name='dmi.SetLoggingEndpointRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.SetLoggingEndpointRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='logging_endpoint', full_name='dmi.SetLoggingEndpointRequest.logging_endpoint', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='logging_protocol', full_name='dmi.SetLoggingEndpointRequest.logging_protocol', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2175,
-  serialized_end=2286,
-)
-
-
-_SETREMOTEENDPOINTRESPONSE = _descriptor.Descriptor(
-  name='SetRemoteEndpointResponse',
-  full_name='dmi.SetRemoteEndpointResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.SetRemoteEndpointResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.SetRemoteEndpointResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.SetRemoteEndpointResponse.reason_detail', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _SETREMOTEENDPOINTRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2289,
-  serialized_end=2612,
-)
-
-
-_GETLOGGINGENDPOINTRESPONSE = _descriptor.Descriptor(
-  name='GetLoggingEndpointResponse',
-  full_name='dmi.GetLoggingEndpointResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.GetLoggingEndpointResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.GetLoggingEndpointResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='logging_endpoint', full_name='dmi.GetLoggingEndpointResponse.logging_endpoint', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='logging_protocol', full_name='dmi.GetLoggingEndpointResponse.logging_protocol', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.GetLoggingEndpointResponse.reason_detail', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _GETLOGGINGENDPOINTRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2615,
-  serialized_end=2899,
-)
-
-
-_SETMSGBUSENDPOINTREQUEST = _descriptor.Descriptor(
-  name='SetMsgBusEndpointRequest',
-  full_name='dmi.SetMsgBusEndpointRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='msgbus_endpoint', full_name='dmi.SetMsgBusEndpointRequest.msgbus_endpoint', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2901,
-  serialized_end=2952,
-)
-
-
-_GETMSGBUSENDPOINTRESPONSE = _descriptor.Descriptor(
-  name='GetMsgBusEndpointResponse',
-  full_name='dmi.GetMsgBusEndpointResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.GetMsgBusEndpointResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.GetMsgBusEndpointResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='msgbus_endpoint', full_name='dmi.GetMsgBusEndpointResponse.msgbus_endpoint', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.GetMsgBusEndpointResponse.reason_detail', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _GETMSGBUSENDPOINTRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2955,
-  serialized_end=3190,
-)
-
-
-_ENTITIESLOGLEVEL = _descriptor.Descriptor(
-  name='EntitiesLogLevel',
-  full_name='dmi.EntitiesLogLevel',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='logLevel', full_name='dmi.EntitiesLogLevel.logLevel', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='entities', full_name='dmi.EntitiesLogLevel.entities', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3192,
-  serialized_end=3261,
-)
-
-
-_SETLOGLEVELREQUEST = _descriptor.Descriptor(
-  name='SetLogLevelRequest',
-  full_name='dmi.SetLogLevelRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.SetLogLevelRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='loglevels', full_name='dmi.SetLogLevelRequest.loglevels', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3263,
-  serialized_end=3357,
-)
-
-
-_SETLOGLEVELRESPONSE = _descriptor.Descriptor(
-  name='SetLogLevelResponse',
-  full_name='dmi.SetLogLevelResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.SetLogLevelResponse.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.SetLogLevelResponse.status', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.SetLogLevelResponse.reason', index=2,
-      number=3, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.SetLogLevelResponse.reason_detail', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _SETLOGLEVELRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3360,
-  serialized_end=3634,
-)
-
-
-_GETLOGLEVELREQUEST = _descriptor.Descriptor(
-  name='GetLogLevelRequest',
-  full_name='dmi.GetLogLevelRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.GetLogLevelRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='entities', full_name='dmi.GetLogLevelRequest.entities', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3636,
-  serialized_end=3706,
-)
-
-
-_GETLOGLEVELRESPONSE = _descriptor.Descriptor(
-  name='GetLogLevelResponse',
-  full_name='dmi.GetLogLevelResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.GetLogLevelResponse.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='logLevels', full_name='dmi.GetLogLevelResponse.logLevels', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.GetLogLevelResponse.status', index=2,
-      number=3, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.GetLogLevelResponse.reason', index=3,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.GetLogLevelResponse.reason_detail', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _GETLOGLEVELRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3709,
-  serialized_end=4025,
-)
-
-
-_GETLOGGABLEENTITIESREQUEST = _descriptor.Descriptor(
-  name='GetLoggableEntitiesRequest',
-  full_name='dmi.GetLoggableEntitiesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.GetLoggableEntitiesRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4027,
-  serialized_end=4087,
-)
-
-
-_HEARTBEAT = _descriptor.Descriptor(
-  name='Heartbeat',
-  full_name='dmi.Heartbeat',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='heartbeat_signature', full_name='dmi.Heartbeat.heartbeat_signature', index=0,
-      number=1, type=7, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4089,
-  serialized_end=4129,
-)
-
-
-_REBOOTDEVICEREQUEST = _descriptor.Descriptor(
-  name='RebootDeviceRequest',
-  full_name='dmi.RebootDeviceRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.RebootDeviceRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4131,
-  serialized_end=4184,
-)
-
-
-_REBOOTDEVICERESPONSE = _descriptor.Descriptor(
-  name='RebootDeviceResponse',
-  full_name='dmi.RebootDeviceResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.RebootDeviceResponse.status', index=0,
-      number=3, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.RebootDeviceResponse.reason', index=1,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.RebootDeviceResponse.reason_detail', index=2,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _REBOOTDEVICERESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=4187,
-  serialized_end=4407,
-)
-
-_PHYSICALINVENTORYREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_PHYSICALINVENTORYRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_PHYSICALINVENTORYRESPONSE.fields_by_name['reason'].enum_type = _PHYSICALINVENTORYRESPONSE_REASON
-_PHYSICALINVENTORYRESPONSE.fields_by_name['inventory'].message_type = dmi_dot_hw__pb2._HARDWARE
-_PHYSICALINVENTORYRESPONSE_REASON.containing_type = _PHYSICALINVENTORYRESPONSE
-_HWCOMPONENTINFOGETREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_HWCOMPONENTINFOGETREQUEST.fields_by_name['component_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_HWCOMPONENTINFOGETRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_HWCOMPONENTINFOGETRESPONSE.fields_by_name['reason'].enum_type = _HWCOMPONENTINFOGETRESPONSE_REASON
-_HWCOMPONENTINFOGETRESPONSE.fields_by_name['component'].message_type = dmi_dot_hw__pb2._COMPONENT
-_HWCOMPONENTINFOGETRESPONSE_REASON.containing_type = _HWCOMPONENTINFOGETRESPONSE
-_HWCOMPONENTINFOSETREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_HWCOMPONENTINFOSETREQUEST.fields_by_name['component_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_HWCOMPONENTINFOSETREQUEST.fields_by_name['changes'].message_type = dmi_dot_hw__pb2._MODIFIABLECOMPONENT
-_HWCOMPONENTINFOSETRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_HWCOMPONENTINFOSETRESPONSE.fields_by_name['reason'].enum_type = _HWCOMPONENTINFOSETRESPONSE_REASON
-_HWCOMPONENTINFOSETRESPONSE_REASON.containing_type = _HWCOMPONENTINFOSETRESPONSE
-_STARTMANAGINGDEVICERESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_STARTMANAGINGDEVICERESPONSE.fields_by_name['reason'].enum_type = _STARTMANAGINGDEVICERESPONSE_REASON
-_STARTMANAGINGDEVICERESPONSE.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_STARTMANAGINGDEVICERESPONSE_REASON.containing_type = _STARTMANAGINGDEVICERESPONSE
-_STOPMANAGINGDEVICERESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_STOPMANAGINGDEVICERESPONSE.fields_by_name['reason'].enum_type = _STOPMANAGINGDEVICERESPONSE_REASON
-_STOPMANAGINGDEVICERESPONSE_REASON.containing_type = _STOPMANAGINGDEVICERESPONSE
-_MANAGEDDEVICEINFO.fields_by_name['info'].message_type = dmi_dot_hw__pb2._MODIFIABLECOMPONENT
-_MANAGEDDEVICEINFO.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_MANAGEDDEVICESRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_MANAGEDDEVICESRESPONSE.fields_by_name['reason'].enum_type = _MANAGEDDEVICESRESPONSE_REASON
-_MANAGEDDEVICESRESPONSE.fields_by_name['devices'].message_type = _MANAGEDDEVICEINFO
-_MANAGEDDEVICESRESPONSE_REASON.containing_type = _MANAGEDDEVICESRESPONSE
-_SETLOGGINGENDPOINTREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_SETREMOTEENDPOINTRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_SETREMOTEENDPOINTRESPONSE.fields_by_name['reason'].enum_type = _SETREMOTEENDPOINTRESPONSE_REASON
-_SETREMOTEENDPOINTRESPONSE_REASON.containing_type = _SETREMOTEENDPOINTRESPONSE
-_GETLOGGINGENDPOINTRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_GETLOGGINGENDPOINTRESPONSE.fields_by_name['reason'].enum_type = _GETLOGGINGENDPOINTRESPONSE_REASON
-_GETLOGGINGENDPOINTRESPONSE_REASON.containing_type = _GETLOGGINGENDPOINTRESPONSE
-_GETMSGBUSENDPOINTRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_GETMSGBUSENDPOINTRESPONSE.fields_by_name['reason'].enum_type = _GETMSGBUSENDPOINTRESPONSE_REASON
-_GETMSGBUSENDPOINTRESPONSE_REASON.containing_type = _GETMSGBUSENDPOINTRESPONSE
-_ENTITIESLOGLEVEL.fields_by_name['logLevel'].enum_type = dmi_dot_commons__pb2._LOGLEVEL
-_SETLOGLEVELREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_SETLOGLEVELREQUEST.fields_by_name['loglevels'].message_type = _ENTITIESLOGLEVEL
-_SETLOGLEVELRESPONSE.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_SETLOGLEVELRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_SETLOGLEVELRESPONSE.fields_by_name['reason'].enum_type = _SETLOGLEVELRESPONSE_REASON
-_SETLOGLEVELRESPONSE_REASON.containing_type = _SETLOGLEVELRESPONSE
-_GETLOGLEVELREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_GETLOGLEVELRESPONSE.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_GETLOGLEVELRESPONSE.fields_by_name['logLevels'].message_type = _ENTITIESLOGLEVEL
-_GETLOGLEVELRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_GETLOGLEVELRESPONSE.fields_by_name['reason'].enum_type = _GETLOGLEVELRESPONSE_REASON
-_GETLOGLEVELRESPONSE_REASON.containing_type = _GETLOGLEVELRESPONSE
-_GETLOGGABLEENTITIESREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_REBOOTDEVICEREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_REBOOTDEVICERESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_REBOOTDEVICERESPONSE.fields_by_name['reason'].enum_type = _REBOOTDEVICERESPONSE_REASON
-_REBOOTDEVICERESPONSE_REASON.containing_type = _REBOOTDEVICERESPONSE
-DESCRIPTOR.message_types_by_name['PhysicalInventoryRequest'] = _PHYSICALINVENTORYREQUEST
-DESCRIPTOR.message_types_by_name['PhysicalInventoryResponse'] = _PHYSICALINVENTORYRESPONSE
-DESCRIPTOR.message_types_by_name['HWComponentInfoGetRequest'] = _HWCOMPONENTINFOGETREQUEST
-DESCRIPTOR.message_types_by_name['HWComponentInfoGetResponse'] = _HWCOMPONENTINFOGETRESPONSE
-DESCRIPTOR.message_types_by_name['HWComponentInfoSetRequest'] = _HWCOMPONENTINFOSETREQUEST
-DESCRIPTOR.message_types_by_name['HWComponentInfoSetResponse'] = _HWCOMPONENTINFOSETRESPONSE
-DESCRIPTOR.message_types_by_name['StartManagingDeviceResponse'] = _STARTMANAGINGDEVICERESPONSE
-DESCRIPTOR.message_types_by_name['StopManagingDeviceRequest'] = _STOPMANAGINGDEVICEREQUEST
-DESCRIPTOR.message_types_by_name['StopManagingDeviceResponse'] = _STOPMANAGINGDEVICERESPONSE
-DESCRIPTOR.message_types_by_name['ManagedDeviceInfo'] = _MANAGEDDEVICEINFO
-DESCRIPTOR.message_types_by_name['ManagedDevicesResponse'] = _MANAGEDDEVICESRESPONSE
-DESCRIPTOR.message_types_by_name['SetLoggingEndpointRequest'] = _SETLOGGINGENDPOINTREQUEST
-DESCRIPTOR.message_types_by_name['SetRemoteEndpointResponse'] = _SETREMOTEENDPOINTRESPONSE
-DESCRIPTOR.message_types_by_name['GetLoggingEndpointResponse'] = _GETLOGGINGENDPOINTRESPONSE
-DESCRIPTOR.message_types_by_name['SetMsgBusEndpointRequest'] = _SETMSGBUSENDPOINTREQUEST
-DESCRIPTOR.message_types_by_name['GetMsgBusEndpointResponse'] = _GETMSGBUSENDPOINTRESPONSE
-DESCRIPTOR.message_types_by_name['EntitiesLogLevel'] = _ENTITIESLOGLEVEL
-DESCRIPTOR.message_types_by_name['SetLogLevelRequest'] = _SETLOGLEVELREQUEST
-DESCRIPTOR.message_types_by_name['SetLogLevelResponse'] = _SETLOGLEVELRESPONSE
-DESCRIPTOR.message_types_by_name['GetLogLevelRequest'] = _GETLOGLEVELREQUEST
-DESCRIPTOR.message_types_by_name['GetLogLevelResponse'] = _GETLOGLEVELRESPONSE
-DESCRIPTOR.message_types_by_name['GetLoggableEntitiesRequest'] = _GETLOGGABLEENTITIESREQUEST
-DESCRIPTOR.message_types_by_name['Heartbeat'] = _HEARTBEAT
-DESCRIPTOR.message_types_by_name['RebootDeviceRequest'] = _REBOOTDEVICEREQUEST
-DESCRIPTOR.message_types_by_name['RebootDeviceResponse'] = _REBOOTDEVICERESPONSE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_PHYSICALINVENTORYREQUEST = DESCRIPTOR.message_types_by_name['PhysicalInventoryRequest']
+_PHYSICALINVENTORYRESPONSE = DESCRIPTOR.message_types_by_name['PhysicalInventoryResponse']
+_HWCOMPONENTINFOGETREQUEST = DESCRIPTOR.message_types_by_name['HWComponentInfoGetRequest']
+_HWCOMPONENTINFOGETRESPONSE = DESCRIPTOR.message_types_by_name['HWComponentInfoGetResponse']
+_HWCOMPONENTINFOSETREQUEST = DESCRIPTOR.message_types_by_name['HWComponentInfoSetRequest']
+_HWCOMPONENTINFOSETRESPONSE = DESCRIPTOR.message_types_by_name['HWComponentInfoSetResponse']
+_STARTMANAGINGDEVICERESPONSE = DESCRIPTOR.message_types_by_name['StartManagingDeviceResponse']
+_STOPMANAGINGDEVICEREQUEST = DESCRIPTOR.message_types_by_name['StopManagingDeviceRequest']
+_STOPMANAGINGDEVICERESPONSE = DESCRIPTOR.message_types_by_name['StopManagingDeviceResponse']
+_MANAGEDDEVICEINFO = DESCRIPTOR.message_types_by_name['ManagedDeviceInfo']
+_MANAGEDDEVICESRESPONSE = DESCRIPTOR.message_types_by_name['ManagedDevicesResponse']
+_SETLOGGINGENDPOINTREQUEST = DESCRIPTOR.message_types_by_name['SetLoggingEndpointRequest']
+_SETREMOTEENDPOINTRESPONSE = DESCRIPTOR.message_types_by_name['SetRemoteEndpointResponse']
+_GETLOGGINGENDPOINTRESPONSE = DESCRIPTOR.message_types_by_name['GetLoggingEndpointResponse']
+_SETMSGBUSENDPOINTREQUEST = DESCRIPTOR.message_types_by_name['SetMsgBusEndpointRequest']
+_GETMSGBUSENDPOINTRESPONSE = DESCRIPTOR.message_types_by_name['GetMsgBusEndpointResponse']
+_ENTITIESLOGLEVEL = DESCRIPTOR.message_types_by_name['EntitiesLogLevel']
+_SETLOGLEVELREQUEST = DESCRIPTOR.message_types_by_name['SetLogLevelRequest']
+_SETLOGLEVELRESPONSE = DESCRIPTOR.message_types_by_name['SetLogLevelResponse']
+_GETLOGLEVELREQUEST = DESCRIPTOR.message_types_by_name['GetLogLevelRequest']
+_GETLOGLEVELRESPONSE = DESCRIPTOR.message_types_by_name['GetLogLevelResponse']
+_GETLOGGABLEENTITIESREQUEST = DESCRIPTOR.message_types_by_name['GetLoggableEntitiesRequest']
+_HEARTBEAT = DESCRIPTOR.message_types_by_name['Heartbeat']
+_REBOOTDEVICEREQUEST = DESCRIPTOR.message_types_by_name['RebootDeviceRequest']
+_REBOOTDEVICERESPONSE = DESCRIPTOR.message_types_by_name['RebootDeviceResponse']
+_PHYSICALINVENTORYRESPONSE_REASON = _PHYSICALINVENTORYRESPONSE.enum_types_by_name['Reason']
+_HWCOMPONENTINFOGETRESPONSE_REASON = _HWCOMPONENTINFOGETRESPONSE.enum_types_by_name['Reason']
+_HWCOMPONENTINFOSETRESPONSE_REASON = _HWCOMPONENTINFOSETRESPONSE.enum_types_by_name['Reason']
+_STARTMANAGINGDEVICERESPONSE_REASON = _STARTMANAGINGDEVICERESPONSE.enum_types_by_name['Reason']
+_STOPMANAGINGDEVICERESPONSE_REASON = _STOPMANAGINGDEVICERESPONSE.enum_types_by_name['Reason']
+_MANAGEDDEVICESRESPONSE_REASON = _MANAGEDDEVICESRESPONSE.enum_types_by_name['Reason']
+_SETREMOTEENDPOINTRESPONSE_REASON = _SETREMOTEENDPOINTRESPONSE.enum_types_by_name['Reason']
+_GETLOGGINGENDPOINTRESPONSE_REASON = _GETLOGGINGENDPOINTRESPONSE.enum_types_by_name['Reason']
+_GETMSGBUSENDPOINTRESPONSE_REASON = _GETMSGBUSENDPOINTRESPONSE.enum_types_by_name['Reason']
+_SETLOGLEVELRESPONSE_REASON = _SETLOGLEVELRESPONSE.enum_types_by_name['Reason']
+_GETLOGLEVELRESPONSE_REASON = _GETLOGLEVELRESPONSE.enum_types_by_name['Reason']
+_REBOOTDEVICERESPONSE_REASON = _REBOOTDEVICERESPONSE.enum_types_by_name['Reason']
 PhysicalInventoryRequest = _reflection.GeneratedProtocolMessageType('PhysicalInventoryRequest', (_message.Message,), {
   'DESCRIPTOR' : _PHYSICALINVENTORYREQUEST,
   '__module__' : 'dmi.hw_management_service_pb2'
@@ -1858,172 +233,85 @@
   })
 _sym_db.RegisterMessage(RebootDeviceResponse)
 
+_NATIVEHWMANAGEMENTSERVICE = DESCRIPTOR.services_by_name['NativeHWManagementService']
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-DESCRIPTOR._options = None
-
-_NATIVEHWMANAGEMENTSERVICE = _descriptor.ServiceDescriptor(
-  name='NativeHWManagementService',
-  full_name='dmi.NativeHWManagementService',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=4410,
-  serialized_end=5608,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='StartManagingDevice',
-    full_name='dmi.NativeHWManagementService.StartManagingDevice',
-    index=0,
-    containing_service=None,
-    input_type=dmi_dot_hw__pb2._MODIFIABLECOMPONENT,
-    output_type=_STARTMANAGINGDEVICERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='StopManagingDevice',
-    full_name='dmi.NativeHWManagementService.StopManagingDevice',
-    index=1,
-    containing_service=None,
-    input_type=_STOPMANAGINGDEVICEREQUEST,
-    output_type=_STOPMANAGINGDEVICERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetManagedDevices',
-    full_name='dmi.NativeHWManagementService.GetManagedDevices',
-    index=2,
-    containing_service=None,
-    input_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    output_type=_MANAGEDDEVICESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetPhysicalInventory',
-    full_name='dmi.NativeHWManagementService.GetPhysicalInventory',
-    index=3,
-    containing_service=None,
-    input_type=_PHYSICALINVENTORYREQUEST,
-    output_type=_PHYSICALINVENTORYRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetHWComponentInfo',
-    full_name='dmi.NativeHWManagementService.GetHWComponentInfo',
-    index=4,
-    containing_service=None,
-    input_type=_HWCOMPONENTINFOGETREQUEST,
-    output_type=_HWCOMPONENTINFOGETRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetHWComponentInfo',
-    full_name='dmi.NativeHWManagementService.SetHWComponentInfo',
-    index=5,
-    containing_service=None,
-    input_type=_HWCOMPONENTINFOSETREQUEST,
-    output_type=_HWCOMPONENTINFOSETRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetLoggingEndpoint',
-    full_name='dmi.NativeHWManagementService.SetLoggingEndpoint',
-    index=6,
-    containing_service=None,
-    input_type=_SETLOGGINGENDPOINTREQUEST,
-    output_type=_SETREMOTEENDPOINTRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetLoggingEndpoint',
-    full_name='dmi.NativeHWManagementService.GetLoggingEndpoint',
-    index=7,
-    containing_service=None,
-    input_type=dmi_dot_hw__pb2._HARDWAREID,
-    output_type=_GETLOGGINGENDPOINTRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetMsgBusEndpoint',
-    full_name='dmi.NativeHWManagementService.SetMsgBusEndpoint',
-    index=8,
-    containing_service=None,
-    input_type=_SETMSGBUSENDPOINTREQUEST,
-    output_type=_SETREMOTEENDPOINTRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetMsgBusEndpoint',
-    full_name='dmi.NativeHWManagementService.GetMsgBusEndpoint',
-    index=9,
-    containing_service=None,
-    input_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    output_type=_GETMSGBUSENDPOINTRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetLoggableEntities',
-    full_name='dmi.NativeHWManagementService.GetLoggableEntities',
-    index=10,
-    containing_service=None,
-    input_type=_GETLOGGABLEENTITIESREQUEST,
-    output_type=_GETLOGLEVELRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SetLogLevel',
-    full_name='dmi.NativeHWManagementService.SetLogLevel',
-    index=11,
-    containing_service=None,
-    input_type=_SETLOGLEVELREQUEST,
-    output_type=_SETLOGLEVELRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetLogLevel',
-    full_name='dmi.NativeHWManagementService.GetLogLevel',
-    index=12,
-    containing_service=None,
-    input_type=_GETLOGLEVELREQUEST,
-    output_type=_GETLOGLEVELRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='HeartbeatCheck',
-    full_name='dmi.NativeHWManagementService.HeartbeatCheck',
-    index=13,
-    containing_service=None,
-    input_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    output_type=_HEARTBEAT,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RebootDevice',
-    full_name='dmi.NativeHWManagementService.RebootDevice',
-    index=14,
-    containing_service=None,
-    input_type=_REBOOTDEVICEREQUEST,
-    output_type=_REBOOTDEVICERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_NATIVEHWMANAGEMENTSERVICE)
-
-DESCRIPTOR.services_by_name['NativeHWManagementService'] = _NATIVEHWMANAGEMENTSERVICE
-
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z9github.com/opencord/device-management-interface/v3/go/dmi'
+  _PHYSICALINVENTORYREQUEST._serialized_start=102
+  _PHYSICALINVENTORYREQUEST._serialized_end=160
+  _PHYSICALINVENTORYRESPONSE._serialized_start=163
+  _PHYSICALINVENTORYRESPONSE._serialized_end=427
+  _PHYSICALINVENTORYRESPONSE_REASON._serialized_start=333
+  _PHYSICALINVENTORYRESPONSE_REASON._serialized_end=427
+  _HWCOMPONENTINFOGETREQUEST._serialized_start=429
+  _HWCOMPONENTINFOGETREQUEST._serialized_end=547
+  _HWCOMPONENTINFOGETRESPONSE._serialized_start=550
+  _HWCOMPONENTINFOGETRESPONSE._serialized_end=840
+  _HWCOMPONENTINFOGETRESPONSE_REASON._serialized_start=723
+  _HWCOMPONENTINFOGETRESPONSE_REASON._serialized_end=840
+  _HWCOMPONENTINFOSETREQUEST._serialized_start=843
+  _HWCOMPONENTINFOSETREQUEST._serialized_end=1004
+  _HWCOMPONENTINFOSETRESPONSE._serialized_start=1007
+  _HWCOMPONENTINFOSETRESPONSE._serialized_end=1304
+  _HWCOMPONENTINFOSETRESPONSE_REASON._serialized_start=1146
+  _HWCOMPONENTINFOSETRESPONSE_REASON._serialized_end=1304
+  _STARTMANAGINGDEVICERESPONSE._serialized_start=1307
+  _STARTMANAGINGDEVICERESPONSE._serialized_end=1666
+  _STARTMANAGINGDEVICERESPONSE_REASON._serialized_start=1480
+  _STARTMANAGINGDEVICERESPONSE_REASON._serialized_end=1666
+  _STOPMANAGINGDEVICEREQUEST._serialized_start=1668
+  _STOPMANAGINGDEVICEREQUEST._serialized_end=1709
+  _STOPMANAGINGDEVICERESPONSE._serialized_start=1712
+  _STOPMANAGINGDEVICERESPONSE._serialized_end=1900
+  _STOPMANAGINGDEVICERESPONSE_REASON._serialized_start=333
+  _STOPMANAGINGDEVICERESPONSE_REASON._serialized_end=383
+  _MANAGEDDEVICEINFO._serialized_start=1902
+  _MANAGEDDEVICEINFO._serialized_end=1993
+  _MANAGEDDEVICESRESPONSE._serialized_start=1996
+  _MANAGEDDEVICESRESPONSE._serialized_end=2194
+  _MANAGEDDEVICESRESPONSE_REASON._serialized_start=2144
+  _MANAGEDDEVICESRESPONSE_REASON._serialized_end=2194
+  _SETLOGGINGENDPOINTREQUEST._serialized_start=2196
+  _SETLOGGINGENDPOINTREQUEST._serialized_end=2307
+  _SETREMOTEENDPOINTRESPONSE._serialized_start=2310
+  _SETREMOTEENDPOINTRESPONSE._serialized_end=2633
+  _SETREMOTEENDPOINTRESPONSE_REASON._serialized_start=2447
+  _SETREMOTEENDPOINTRESPONSE_REASON._serialized_end=2633
+  _GETLOGGINGENDPOINTRESPONSE._serialized_start=2636
+  _GETLOGGINGENDPOINTRESPONSE._serialized_end=2920
+  _GETLOGGINGENDPOINTRESPONSE_REASON._serialized_start=333
+  _GETLOGGINGENDPOINTRESPONSE_REASON._serialized_end=427
+  _SETMSGBUSENDPOINTREQUEST._serialized_start=2922
+  _SETMSGBUSENDPOINTREQUEST._serialized_end=2973
+  _GETMSGBUSENDPOINTRESPONSE._serialized_start=2976
+  _GETMSGBUSENDPOINTRESPONSE._serialized_end=3211
+  _GETMSGBUSENDPOINTRESPONSE_REASON._serialized_start=3137
+  _GETMSGBUSENDPOINTRESPONSE_REASON._serialized_end=3211
+  _ENTITIESLOGLEVEL._serialized_start=3213
+  _ENTITIESLOGLEVEL._serialized_end=3282
+  _SETLOGLEVELREQUEST._serialized_start=3284
+  _SETLOGLEVELREQUEST._serialized_end=3378
+  _SETLOGLEVELRESPONSE._serialized_start=3381
+  _SETLOGLEVELRESPONSE._serialized_end=3655
+  _SETLOGLEVELRESPONSE_REASON._serialized_start=3537
+  _SETLOGLEVELRESPONSE_REASON._serialized_end=3655
+  _GETLOGLEVELREQUEST._serialized_start=3657
+  _GETLOGLEVELREQUEST._serialized_end=3727
+  _GETLOGLEVELRESPONSE._serialized_start=3730
+  _GETLOGLEVELRESPONSE._serialized_end=4046
+  _GETLOGLEVELRESPONSE_REASON._serialized_start=3537
+  _GETLOGLEVELRESPONSE_REASON._serialized_end=3655
+  _GETLOGGABLEENTITIESREQUEST._serialized_start=4048
+  _GETLOGGABLEENTITIESREQUEST._serialized_end=4108
+  _HEARTBEAT._serialized_start=4110
+  _HEARTBEAT._serialized_end=4150
+  _REBOOTDEVICEREQUEST._serialized_start=4152
+  _REBOOTDEVICEREQUEST._serialized_end=4205
+  _REBOOTDEVICERESPONSE._serialized_start=4208
+  _REBOOTDEVICERESPONSE._serialized_end=4428
+  _REBOOTDEVICERESPONSE_REASON._serialized_start=333
+  _REBOOTDEVICERESPONSE_REASON._serialized_end=427
+  _NATIVEHWMANAGEMENTSERVICE._serialized_start=4431
+  _NATIVEHWMANAGEMENTSERVICE._serialized_end=5629
 # @@protoc_insertion_point(module_scope)
diff --git a/python/dmi/hw_metrics_mgmt_service_pb2.py b/python/dmi/hw_metrics_mgmt_service_pb2.py
index e4dfac7..933c588 100644
--- a/python/dmi/hw_metrics_mgmt_service_pb2.py
+++ b/python/dmi/hw_metrics_mgmt_service_pb2.py
@@ -4,6 +4,7 @@
 """Generated protocol buffer code."""
 from google.protobuf.internal import enum_type_wrapper
 from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
 from google.protobuf import symbol_database as _symbol_database
@@ -17,151 +18,9 @@
 from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='dmi/hw_metrics_mgmt_service.proto',
-  package='dmi',
-  syntax='proto3',
-  serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n!dmi/hw_metrics_mgmt_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\x1a\x1bgoogle/protobuf/empty.proto\"a\n\x0cMetricConfig\x12#\n\tmetric_id\x18\x01 \x01(\x0e\x32\x10.dmi.MetricNames\x12\x15\n\ris_configured\x18\x02 \x01(\x08\x12\x15\n\rpoll_interval\x18\x03 \x01(\r\"3\n\rMetricsConfig\x12\"\n\x07metrics\x18\x01 \x03(\x0b\x32\x11.dmi.MetricConfig\"\xff\x01\n\x13ListMetricsResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12/\n\x06reason\x18\x02 \x01(\x0e\x32\x1f.dmi.ListMetricsResponse.Reason\x12#\n\x07metrics\x18\x03 \x01(\x0b\x32\x12.dmi.MetricsConfig\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"\x8d\x01\n\x1bMetricsConfigurationRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12%\n\x07\x63hanges\x18\x02 \x01(\x0b\x32\x12.dmi.MetricsConfigH\x00\x12\x1a\n\x10reset_to_default\x18\x03 \x01(\x08H\x00\x42\x0b\n\toperation\"\xa0\x02\n\x1cMetricsConfigurationResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x38\n\x06reason\x18\x02 \x01(\x0e\x32(.dmi.MetricsConfigurationResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"\x91\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x1d\n\x19POLL_INTERVAL_UNSUPPORTED\x10\x03\x12\x12\n\x0eINVALID_METRIC\x10\x04\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x05\"k\n\x0eMetricMetaData\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\"\x84\x01\n\x06Metric\x12#\n\tmetric_id\x18\x01 \x01(\x0e\x32\x10.dmi.MetricNames\x12,\n\x0fmetric_metadata\x18\x02 \x01(\x0b\x32\x13.dmi.MetricMetaData\x12\'\n\x05value\x18\x03 \x01(\x0b\x32\x18.dmi.ComponentSensorData\"_\n\x10GetMetricRequest\x12&\n\tmeta_data\x18\x01 \x01(\x0b\x32\x13.dmi.MetricMetaData\x12#\n\tmetric_id\x18\x02 \x01(\x0e\x32\x10.dmi.MetricNames\"\x9f\x02\n\x11GetMetricResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12-\n\x06reason\x18\x02 \x01(\x0e\x32\x1d.dmi.GetMetricResponse.Reason\x12\x1b\n\x06metric\x18\x03 \x01(\x0b\x32\x0b.dmi.Metric\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"\x89\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x15\n\x11UNKNOWN_COMPONENT\x10\x02\x12\x12\n\x0eINTERNAL_ERROR\x10\x03\x12\x12\n\x0eINVALID_METRIC\x10\x04\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x05*\xd9\x05\n\x0bMetricNames\x12\x19\n\x15METRIC_NAME_UNDEFINED\x10\x00\x12\x14\n\x10METRIC_FAN_SPEED\x10\x01\x12\x13\n\x0fMETRIC_CPU_TEMP\x10\x64\x12\x1f\n\x1bMETRIC_CPU_USAGE_PERCENTAGE\x10\x65\x12\x1c\n\x17METRIC_TRANSCEIVER_TEMP\x10\xc8\x01\x12\x1f\n\x1aMETRIC_TRANSCEIVER_VOLTAGE\x10\xc9\x01\x12\x1c\n\x17METRIC_TRANSCEIVER_BIAS\x10\xca\x01\x12 \n\x1bMETRIC_TRANSCEIVER_RX_POWER\x10\xcb\x01\x12 \n\x1bMETRIC_TRANSCEIVER_TX_POWER\x10\xcc\x01\x12\"\n\x1dMETRIC_TRANSCEIVER_WAVELENGTH\x10\xcd\x01\x12\x15\n\x10METRIC_DISK_TEMP\x10\xac\x02\x12\x19\n\x14METRIC_DISK_CAPACITY\x10\xad\x02\x12\x16\n\x11METRIC_DISK_USAGE\x10\xae\x02\x12!\n\x1cMETRIC_DISK_USAGE_PERCENTAGE\x10\xaf\x02\x12&\n!METRIC_DISK_READ_WRITE_PERCENTAGE\x10\xb0\x02\x12(\n#METRIC_DISK_FAULTY_CELLS_PERCENTAGE\x10\xb1\x02\x12\x14\n\x0fMETRIC_RAM_TEMP\x10\x90\x03\x12\x18\n\x13METRIC_RAM_CAPACITY\x10\x91\x03\x12\x15\n\x10METRIC_RAM_USAGE\x10\x92\x03\x12 \n\x1bMETRIC_RAM_USAGE_PERCENTAGE\x10\x93\x03\x12\x15\n\x10METRIC_POWER_MAX\x10\xf4\x03\x12\x17\n\x12METRIC_POWER_USAGE\x10\xf5\x03\x12\"\n\x1dMETRIC_POWER_USAGE_PERCENTAGE\x10\xf6\x03\x12\"\n\x1dMETRIC_INNER_SURROUNDING_TEMP\x10\xd8\x04\x32\xb1\x02\n\x1eNativeMetricsManagementService\x12\x38\n\x0bListMetrics\x12\x0f.dmi.HardwareID\x1a\x18.dmi.ListMetricsResponse\x12\x61\n\x1aUpdateMetricsConfiguration\x12 .dmi.MetricsConfigurationRequest\x1a!.dmi.MetricsConfigurationResponse\x12:\n\tGetMetric\x12\x15.dmi.GetMetricRequest\x1a\x16.dmi.GetMetricResponse\x12\x36\n\rStreamMetrics\x12\x16.google.protobuf.Empty\x1a\x0b.dmi.Metric0\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
-  ,
-  dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,dmi_dot_hw__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!dmi/hw_metrics_mgmt_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\x1a\x1bgoogle/protobuf/empty.proto\"a\n\x0cMetricConfig\x12#\n\tmetric_id\x18\x01 \x01(\x0e\x32\x10.dmi.MetricNames\x12\x15\n\ris_configured\x18\x02 \x01(\x08\x12\x15\n\rpoll_interval\x18\x03 \x01(\r\"3\n\rMetricsConfig\x12\"\n\x07metrics\x18\x01 \x03(\x0b\x32\x11.dmi.MetricConfig\"\xff\x01\n\x13ListMetricsResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12/\n\x06reason\x18\x02 \x01(\x0e\x32\x1f.dmi.ListMetricsResponse.Reason\x12#\n\x07metrics\x18\x03 \x01(\x0b\x32\x12.dmi.MetricsConfig\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"\x8d\x01\n\x1bMetricsConfigurationRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12%\n\x07\x63hanges\x18\x02 \x01(\x0b\x32\x12.dmi.MetricsConfigH\x00\x12\x1a\n\x10reset_to_default\x18\x03 \x01(\x08H\x00\x42\x0b\n\toperation\"\xa0\x02\n\x1cMetricsConfigurationResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x38\n\x06reason\x18\x02 \x01(\x0e\x32(.dmi.MetricsConfigurationResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"\x91\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x1d\n\x19POLL_INTERVAL_UNSUPPORTED\x10\x03\x12\x12\n\x0eINVALID_METRIC\x10\x04\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x05\"k\n\x0eMetricMetaData\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\"\x84\x01\n\x06Metric\x12#\n\tmetric_id\x18\x01 \x01(\x0e\x32\x10.dmi.MetricNames\x12,\n\x0fmetric_metadata\x18\x02 \x01(\x0b\x32\x13.dmi.MetricMetaData\x12\'\n\x05value\x18\x03 \x01(\x0b\x32\x18.dmi.ComponentSensorData\"_\n\x10GetMetricRequest\x12&\n\tmeta_data\x18\x01 \x01(\x0b\x32\x13.dmi.MetricMetaData\x12#\n\tmetric_id\x18\x02 \x01(\x0e\x32\x10.dmi.MetricNames\"\x9f\x02\n\x11GetMetricResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12-\n\x06reason\x18\x02 \x01(\x0e\x32\x1d.dmi.GetMetricResponse.Reason\x12\x1b\n\x06metric\x18\x03 \x01(\x0b\x32\x0b.dmi.Metric\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"\x89\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x15\n\x11UNKNOWN_COMPONENT\x10\x02\x12\x12\n\x0eINTERNAL_ERROR\x10\x03\x12\x12\n\x0eINVALID_METRIC\x10\x04\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x05*\xd9\x05\n\x0bMetricNames\x12\x19\n\x15METRIC_NAME_UNDEFINED\x10\x00\x12\x14\n\x10METRIC_FAN_SPEED\x10\x01\x12\x13\n\x0fMETRIC_CPU_TEMP\x10\x64\x12\x1f\n\x1bMETRIC_CPU_USAGE_PERCENTAGE\x10\x65\x12\x1c\n\x17METRIC_TRANSCEIVER_TEMP\x10\xc8\x01\x12\x1f\n\x1aMETRIC_TRANSCEIVER_VOLTAGE\x10\xc9\x01\x12\x1c\n\x17METRIC_TRANSCEIVER_BIAS\x10\xca\x01\x12 \n\x1bMETRIC_TRANSCEIVER_RX_POWER\x10\xcb\x01\x12 \n\x1bMETRIC_TRANSCEIVER_TX_POWER\x10\xcc\x01\x12\"\n\x1dMETRIC_TRANSCEIVER_WAVELENGTH\x10\xcd\x01\x12\x15\n\x10METRIC_DISK_TEMP\x10\xac\x02\x12\x19\n\x14METRIC_DISK_CAPACITY\x10\xad\x02\x12\x16\n\x11METRIC_DISK_USAGE\x10\xae\x02\x12!\n\x1cMETRIC_DISK_USAGE_PERCENTAGE\x10\xaf\x02\x12&\n!METRIC_DISK_READ_WRITE_PERCENTAGE\x10\xb0\x02\x12(\n#METRIC_DISK_FAULTY_CELLS_PERCENTAGE\x10\xb1\x02\x12\x14\n\x0fMETRIC_RAM_TEMP\x10\x90\x03\x12\x18\n\x13METRIC_RAM_CAPACITY\x10\x91\x03\x12\x15\n\x10METRIC_RAM_USAGE\x10\x92\x03\x12 \n\x1bMETRIC_RAM_USAGE_PERCENTAGE\x10\x93\x03\x12\x15\n\x10METRIC_POWER_MAX\x10\xf4\x03\x12\x17\n\x12METRIC_POWER_USAGE\x10\xf5\x03\x12\"\n\x1dMETRIC_POWER_USAGE_PERCENTAGE\x10\xf6\x03\x12\"\n\x1dMETRIC_INNER_SURROUNDING_TEMP\x10\xd8\x04\x32\xb1\x02\n\x1eNativeMetricsManagementService\x12\x38\n\x0bListMetrics\x12\x0f.dmi.HardwareID\x1a\x18.dmi.ListMetricsResponse\x12\x61\n\x1aUpdateMetricsConfiguration\x12 .dmi.MetricsConfigurationRequest\x1a!.dmi.MetricsConfigurationResponse\x12:\n\tGetMetric\x12\x15.dmi.GetMetricRequest\x1a\x16.dmi.GetMetricResponse\x12\x36\n\rStreamMetrics\x12\x16.google.protobuf.Empty\x1a\x0b.dmi.Metric0\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
 
-_METRICNAMES = _descriptor.EnumDescriptor(
-  name='MetricNames',
-  full_name='dmi.MetricNames',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_NAME_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_FAN_SPEED', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_CPU_TEMP', index=2, number=100,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_CPU_USAGE_PERCENTAGE', index=3, number=101,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_TRANSCEIVER_TEMP', index=4, number=200,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_TRANSCEIVER_VOLTAGE', index=5, number=201,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_TRANSCEIVER_BIAS', index=6, number=202,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_TRANSCEIVER_RX_POWER', index=7, number=203,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_TRANSCEIVER_TX_POWER', index=8, number=204,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_TRANSCEIVER_WAVELENGTH', index=9, number=205,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_DISK_TEMP', index=10, number=300,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_DISK_CAPACITY', index=11, number=301,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_DISK_USAGE', index=12, number=302,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_DISK_USAGE_PERCENTAGE', index=13, number=303,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_DISK_READ_WRITE_PERCENTAGE', index=14, number=304,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_DISK_FAULTY_CELLS_PERCENTAGE', index=15, number=305,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_RAM_TEMP', index=16, number=400,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_RAM_CAPACITY', index=17, number=401,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_RAM_USAGE', index=18, number=402,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_RAM_USAGE_PERCENTAGE', index=19, number=403,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_POWER_MAX', index=20, number=500,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_POWER_USAGE', index=21, number=501,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_POWER_USAGE_PERCENTAGE', index=22, number=502,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='METRIC_INNER_SURROUNDING_TEMP', index=23, number=600,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1581,
-  serialized_end=2310,
-)
-_sym_db.RegisterEnumDescriptor(_METRICNAMES)
-
+_METRICNAMES = DESCRIPTOR.enum_types_by_name['MetricNames']
 MetricNames = enum_type_wrapper.EnumTypeWrapper(_METRICNAMES)
 METRIC_NAME_UNDEFINED = 0
 METRIC_FAN_SPEED = 1
@@ -189,586 +48,18 @@
 METRIC_INNER_SURROUNDING_TEMP = 600
 
 
-_LISTMETRICSRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.ListMetricsResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=418,
-  serialized_end=512,
-)
-_sym_db.RegisterEnumDescriptor(_LISTMETRICSRESPONSE_REASON)
-
-_METRICSCONFIGURATIONRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.MetricsConfigurationResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='POLL_INTERVAL_UNSUPPORTED', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INVALID_METRIC', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=802,
-  serialized_end=947,
-)
-_sym_db.RegisterEnumDescriptor(_METRICSCONFIGURATIONRESPONSE_REASON)
-
-_GETMETRICRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.GetMetricResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_COMPONENT', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INVALID_METRIC', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1441,
-  serialized_end=1578,
-)
-_sym_db.RegisterEnumDescriptor(_GETMETRICRESPONSE_REASON)
-
-
-_METRICCONFIG = _descriptor.Descriptor(
-  name='MetricConfig',
-  full_name='dmi.MetricConfig',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='metric_id', full_name='dmi.MetricConfig.metric_id', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='is_configured', full_name='dmi.MetricConfig.is_configured', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='poll_interval', full_name='dmi.MetricConfig.poll_interval', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=104,
-  serialized_end=201,
-)
-
-
-_METRICSCONFIG = _descriptor.Descriptor(
-  name='MetricsConfig',
-  full_name='dmi.MetricsConfig',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='metrics', full_name='dmi.MetricsConfig.metrics', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=203,
-  serialized_end=254,
-)
-
-
-_LISTMETRICSRESPONSE = _descriptor.Descriptor(
-  name='ListMetricsResponse',
-  full_name='dmi.ListMetricsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.ListMetricsResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.ListMetricsResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='metrics', full_name='dmi.ListMetricsResponse.metrics', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.ListMetricsResponse.reason_detail', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _LISTMETRICSRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=257,
-  serialized_end=512,
-)
-
-
-_METRICSCONFIGURATIONREQUEST = _descriptor.Descriptor(
-  name='MetricsConfigurationRequest',
-  full_name='dmi.MetricsConfigurationRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.MetricsConfigurationRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='changes', full_name='dmi.MetricsConfigurationRequest.changes', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reset_to_default', full_name='dmi.MetricsConfigurationRequest.reset_to_default', index=2,
-      number=3, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-    _descriptor.OneofDescriptor(
-      name='operation', full_name='dmi.MetricsConfigurationRequest.operation',
-      index=0, containing_type=None,
-      create_key=_descriptor._internal_create_key,
-    fields=[]),
-  ],
-  serialized_start=515,
-  serialized_end=656,
-)
-
-
-_METRICSCONFIGURATIONRESPONSE = _descriptor.Descriptor(
-  name='MetricsConfigurationResponse',
-  full_name='dmi.MetricsConfigurationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.MetricsConfigurationResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.MetricsConfigurationResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.MetricsConfigurationResponse.reason_detail', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _METRICSCONFIGURATIONRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=659,
-  serialized_end=947,
-)
-
-
-_METRICMETADATA = _descriptor.Descriptor(
-  name='MetricMetaData',
-  full_name='dmi.MetricMetaData',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.MetricMetaData.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='component_uuid', full_name='dmi.MetricMetaData.component_uuid', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='component_name', full_name='dmi.MetricMetaData.component_name', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=949,
-  serialized_end=1056,
-)
-
-
-_METRIC = _descriptor.Descriptor(
-  name='Metric',
-  full_name='dmi.Metric',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='metric_id', full_name='dmi.Metric.metric_id', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='metric_metadata', full_name='dmi.Metric.metric_metadata', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='value', full_name='dmi.Metric.value', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1059,
-  serialized_end=1191,
-)
-
-
-_GETMETRICREQUEST = _descriptor.Descriptor(
-  name='GetMetricRequest',
-  full_name='dmi.GetMetricRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='meta_data', full_name='dmi.GetMetricRequest.meta_data', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='metric_id', full_name='dmi.GetMetricRequest.metric_id', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1193,
-  serialized_end=1288,
-)
-
-
-_GETMETRICRESPONSE = _descriptor.Descriptor(
-  name='GetMetricResponse',
-  full_name='dmi.GetMetricResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.GetMetricResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.GetMetricResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='metric', full_name='dmi.GetMetricResponse.metric', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.GetMetricResponse.reason_detail', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _GETMETRICRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1291,
-  serialized_end=1578,
-)
-
-_METRICCONFIG.fields_by_name['metric_id'].enum_type = _METRICNAMES
-_METRICSCONFIG.fields_by_name['metrics'].message_type = _METRICCONFIG
-_LISTMETRICSRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_LISTMETRICSRESPONSE.fields_by_name['reason'].enum_type = _LISTMETRICSRESPONSE_REASON
-_LISTMETRICSRESPONSE.fields_by_name['metrics'].message_type = _METRICSCONFIG
-_LISTMETRICSRESPONSE_REASON.containing_type = _LISTMETRICSRESPONSE
-_METRICSCONFIGURATIONREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_METRICSCONFIGURATIONREQUEST.fields_by_name['changes'].message_type = _METRICSCONFIG
-_METRICSCONFIGURATIONREQUEST.oneofs_by_name['operation'].fields.append(
-  _METRICSCONFIGURATIONREQUEST.fields_by_name['changes'])
-_METRICSCONFIGURATIONREQUEST.fields_by_name['changes'].containing_oneof = _METRICSCONFIGURATIONREQUEST.oneofs_by_name['operation']
-_METRICSCONFIGURATIONREQUEST.oneofs_by_name['operation'].fields.append(
-  _METRICSCONFIGURATIONREQUEST.fields_by_name['reset_to_default'])
-_METRICSCONFIGURATIONREQUEST.fields_by_name['reset_to_default'].containing_oneof = _METRICSCONFIGURATIONREQUEST.oneofs_by_name['operation']
-_METRICSCONFIGURATIONRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_METRICSCONFIGURATIONRESPONSE.fields_by_name['reason'].enum_type = _METRICSCONFIGURATIONRESPONSE_REASON
-_METRICSCONFIGURATIONRESPONSE_REASON.containing_type = _METRICSCONFIGURATIONRESPONSE
-_METRICMETADATA.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_METRICMETADATA.fields_by_name['component_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_METRIC.fields_by_name['metric_id'].enum_type = _METRICNAMES
-_METRIC.fields_by_name['metric_metadata'].message_type = _METRICMETADATA
-_METRIC.fields_by_name['value'].message_type = dmi_dot_hw__pb2._COMPONENTSENSORDATA
-_GETMETRICREQUEST.fields_by_name['meta_data'].message_type = _METRICMETADATA
-_GETMETRICREQUEST.fields_by_name['metric_id'].enum_type = _METRICNAMES
-_GETMETRICRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_GETMETRICRESPONSE.fields_by_name['reason'].enum_type = _GETMETRICRESPONSE_REASON
-_GETMETRICRESPONSE.fields_by_name['metric'].message_type = _METRIC
-_GETMETRICRESPONSE_REASON.containing_type = _GETMETRICRESPONSE
-DESCRIPTOR.message_types_by_name['MetricConfig'] = _METRICCONFIG
-DESCRIPTOR.message_types_by_name['MetricsConfig'] = _METRICSCONFIG
-DESCRIPTOR.message_types_by_name['ListMetricsResponse'] = _LISTMETRICSRESPONSE
-DESCRIPTOR.message_types_by_name['MetricsConfigurationRequest'] = _METRICSCONFIGURATIONREQUEST
-DESCRIPTOR.message_types_by_name['MetricsConfigurationResponse'] = _METRICSCONFIGURATIONRESPONSE
-DESCRIPTOR.message_types_by_name['MetricMetaData'] = _METRICMETADATA
-DESCRIPTOR.message_types_by_name['Metric'] = _METRIC
-DESCRIPTOR.message_types_by_name['GetMetricRequest'] = _GETMETRICREQUEST
-DESCRIPTOR.message_types_by_name['GetMetricResponse'] = _GETMETRICRESPONSE
-DESCRIPTOR.enum_types_by_name['MetricNames'] = _METRICNAMES
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_METRICCONFIG = DESCRIPTOR.message_types_by_name['MetricConfig']
+_METRICSCONFIG = DESCRIPTOR.message_types_by_name['MetricsConfig']
+_LISTMETRICSRESPONSE = DESCRIPTOR.message_types_by_name['ListMetricsResponse']
+_METRICSCONFIGURATIONREQUEST = DESCRIPTOR.message_types_by_name['MetricsConfigurationRequest']
+_METRICSCONFIGURATIONRESPONSE = DESCRIPTOR.message_types_by_name['MetricsConfigurationResponse']
+_METRICMETADATA = DESCRIPTOR.message_types_by_name['MetricMetaData']
+_METRIC = DESCRIPTOR.message_types_by_name['Metric']
+_GETMETRICREQUEST = DESCRIPTOR.message_types_by_name['GetMetricRequest']
+_GETMETRICRESPONSE = DESCRIPTOR.message_types_by_name['GetMetricResponse']
+_LISTMETRICSRESPONSE_REASON = _LISTMETRICSRESPONSE.enum_types_by_name['Reason']
+_METRICSCONFIGURATIONRESPONSE_REASON = _METRICSCONFIGURATIONRESPONSE.enum_types_by_name['Reason']
+_GETMETRICRESPONSE_REASON = _GETMETRICRESPONSE.enum_types_by_name['Reason']
 MetricConfig = _reflection.GeneratedProtocolMessageType('MetricConfig', (_message.Message,), {
   'DESCRIPTOR' : _METRICCONFIG,
   '__module__' : 'dmi.hw_metrics_mgmt_service_pb2'
@@ -832,62 +123,37 @@
   })
 _sym_db.RegisterMessage(GetMetricResponse)
 
+_NATIVEMETRICSMANAGEMENTSERVICE = DESCRIPTOR.services_by_name['NativeMetricsManagementService']
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-DESCRIPTOR._options = None
-
-_NATIVEMETRICSMANAGEMENTSERVICE = _descriptor.ServiceDescriptor(
-  name='NativeMetricsManagementService',
-  full_name='dmi.NativeMetricsManagementService',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=2313,
-  serialized_end=2618,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='ListMetrics',
-    full_name='dmi.NativeMetricsManagementService.ListMetrics',
-    index=0,
-    containing_service=None,
-    input_type=dmi_dot_hw__pb2._HARDWAREID,
-    output_type=_LISTMETRICSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateMetricsConfiguration',
-    full_name='dmi.NativeMetricsManagementService.UpdateMetricsConfiguration',
-    index=1,
-    containing_service=None,
-    input_type=_METRICSCONFIGURATIONREQUEST,
-    output_type=_METRICSCONFIGURATIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetMetric',
-    full_name='dmi.NativeMetricsManagementService.GetMetric',
-    index=2,
-    containing_service=None,
-    input_type=_GETMETRICREQUEST,
-    output_type=_GETMETRICRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='StreamMetrics',
-    full_name='dmi.NativeMetricsManagementService.StreamMetrics',
-    index=3,
-    containing_service=None,
-    input_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    output_type=_METRIC,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_NATIVEMETRICSMANAGEMENTSERVICE)
-
-DESCRIPTOR.services_by_name['NativeMetricsManagementService'] = _NATIVEMETRICSMANAGEMENTSERVICE
-
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z9github.com/opencord/device-management-interface/v3/go/dmi'
+  _METRICNAMES._serialized_start=1581
+  _METRICNAMES._serialized_end=2310
+  _METRICCONFIG._serialized_start=104
+  _METRICCONFIG._serialized_end=201
+  _METRICSCONFIG._serialized_start=203
+  _METRICSCONFIG._serialized_end=254
+  _LISTMETRICSRESPONSE._serialized_start=257
+  _LISTMETRICSRESPONSE._serialized_end=512
+  _LISTMETRICSRESPONSE_REASON._serialized_start=418
+  _LISTMETRICSRESPONSE_REASON._serialized_end=512
+  _METRICSCONFIGURATIONREQUEST._serialized_start=515
+  _METRICSCONFIGURATIONREQUEST._serialized_end=656
+  _METRICSCONFIGURATIONRESPONSE._serialized_start=659
+  _METRICSCONFIGURATIONRESPONSE._serialized_end=947
+  _METRICSCONFIGURATIONRESPONSE_REASON._serialized_start=802
+  _METRICSCONFIGURATIONRESPONSE_REASON._serialized_end=947
+  _METRICMETADATA._serialized_start=949
+  _METRICMETADATA._serialized_end=1056
+  _METRIC._serialized_start=1059
+  _METRIC._serialized_end=1191
+  _GETMETRICREQUEST._serialized_start=1193
+  _GETMETRICREQUEST._serialized_end=1288
+  _GETMETRICRESPONSE._serialized_start=1291
+  _GETMETRICRESPONSE._serialized_end=1578
+  _GETMETRICRESPONSE_REASON._serialized_start=1441
+  _GETMETRICRESPONSE_REASON._serialized_end=1578
+  _NATIVEMETRICSMANAGEMENTSERVICE._serialized_start=2313
+  _NATIVEMETRICSMANAGEMENTSERVICE._serialized_end=2618
 # @@protoc_insertion_point(module_scope)
diff --git a/python/dmi/hw_pb2.py b/python/dmi/hw_pb2.py
index 09e0731..237bb23 100644
--- a/python/dmi/hw_pb2.py
+++ b/python/dmi/hw_pb2.py
@@ -4,6 +4,7 @@
 """Generated protocol buffer code."""
 from google.protobuf.internal import enum_type_wrapper
 from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
 from google.protobuf import symbol_database as _symbol_database
@@ -15,565 +16,28 @@
 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='dmi/hw.proto',
-  package='dmi',
-  syntax='proto3',
-  serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x0c\x64mi/hw.proto\x12\x03\x64mi\x1a\x1fgoogle/protobuf/timestamp.proto\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"%\n\nHardwareID\x12\x17\n\x04uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x12\n\x03Uri\x12\x0b\n\x03uri\x18\x01 \x01(\t\"\xb5\x02\n\x0e\x43omponentState\x12\x36\n\x12state_last_changed\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\x0b\x61\x64min_state\x18\x02 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12+\n\noper_state\x18\x03 \x01(\x0e\x32\x17.dmi.ComponentOperState\x12-\n\x0busage_state\x18\x04 \x01(\x0e\x32\x18.dmi.ComponentUsageState\x12-\n\x0b\x61larm_state\x18\x05 \x01(\x0e\x32\x18.dmi.ComponentAlarmState\x12\x31\n\rstandby_state\x18\x06 \x01(\x0e\x32\x1a.dmi.ComponentStandbyState\"\x90\x02\n\x13\x43omponentSensorData\x12\r\n\x05value\x18\x01 \x01(\x05\x12 \n\x04type\x18\x02 \x01(\x0e\x32\x12.dmi.DataValueType\x12\x1e\n\x05scale\x18\x03 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x11\n\tprecision\x18\x04 \x01(\x05\x12!\n\x06status\x18\x05 \x01(\x0e\x32\x11.dmi.SensorStatus\x12\x15\n\runits_display\x18\x06 \x01(\t\x12-\n\ttimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11value_update_rate\x18\x08 \x01(\r\x12\x11\n\tdata_type\x18\t \x01(\t\"\xe1\x05\n\x17PortComponentAttributes\x12\x42\n\x0e\x63onnector_type\x18\x01 \x01(\x0e\x32*.dmi.PortComponentAttributes.ConnectorType\x12\x31\n\x05speed\x18\x02 \x01(\x0e\x32\".dmi.PortComponentAttributes.Speed\x12\x37\n\x08protocol\x18\x03 \x01(\x0e\x32%.dmi.PortComponentAttributes.Protocol\x12\x16\n\x0ephysical_label\x18\x04 \x01(\t\x12\x15\n\rmapping_label\x18\x05 \x01(\t\x12\'\n\rpon_id_config\x18\x06 \x01(\x0b\x32\x10.dmi.PonIdConfig\x12\x1d\n\x15speed_autonegotiation\x18\x07 \x01(\x08\"p\n\rConnectorType\x12\x1c\n\x18\x43ONNECTOR_TYPE_UNDEFINED\x10\x00\x12\x08\n\x04RJ45\x10\x01\x12\x0c\n\x08\x46IBER_LC\x10\x02\x12\x0f\n\x0b\x46IBER_SC_PC\x10\x03\x12\r\n\tFIBER_MPO\x10\x04\x12\t\n\x05RS232\x10\x05\"\xae\x01\n\x05Speed\x12\x13\n\x0fSPEED_UNDEFINED\x10\x00\x12\x0b\n\x07\x44YNAMIC\x10\x01\x12\r\n\tGIGABIT_1\x10\x02\x12\x0e\n\nGIGABIT_10\x10\x03\x12\x0e\n\nGIGABIT_25\x10\x04\x12\x0e\n\nGIGABIT_40\x10\x05\x12\x0f\n\x0bGIGABIT_100\x10\x06\x12\x0f\n\x0bGIGABIT_400\x10\x07\x12\x10\n\x0cMEGABIT_2500\x10\x08\x12\x10\n\x0cMEGABIT_1250\x10\t\"|\n\x08Protocol\x12\x16\n\x12PROTOCOL_UNDEFINED\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\t\n\x05GFAST\x10\x05\x12\n\n\x06SERIAL\x10\x06\x12\x08\n\x04\x45PON\x10\x07\x12\x08\n\x04\x42ITS\x10\x08\"H\n\x1dPortComponentChangeAttributes\x12\'\n\rpon_id_config\x18\x01 \x01(\x0b\x32\x10.dmi.PonIdConfig\"B\n\x0bPonIdConfig\x12\x0e\n\x06pon_id\x18\x01 \x01(\x0c\x12#\n\x1bpon_id_transmit_periodicity\x18\x02 \x01(\r\"6\n\x1c\x43ontainerComponentAttributes\x12\x16\n\x0ephysical_label\x18\x01 \x01(\t\"\xb3\x01\n\x16PsuComponentAttributes\x12G\n\x11supported_voltage\x18\x01 \x01(\x0e\x32,.dmi.PsuComponentAttributes.SupportedVoltage\"P\n\x10SupportedVoltage\x12\x1f\n\x1bSUPPORTED_VOLTAGE_UNDEFINED\x10\x00\x12\x07\n\x03V48\x10\x01\x12\x08\n\x04V230\x10\x02\x12\x08\n\x04V115\x10\x03\"\xef\x04\n\x1fTransceiverComponentsAttributes\x12\x44\n\x0b\x66orm_factor\x18\x01 \x01(\x0e\x32/.dmi.TransceiverComponentsAttributes.FormFactor\x12=\n\ntrans_type\x18\x02 \x01(\x0e\x32).dmi.TransceiverComponentsAttributes.Type\x12\x14\n\x0cmax_distance\x18\x03 \x01(\r\x12+\n\x12max_distance_scale\x18\x04 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x15\n\rrx_wavelength\x18\x05 \x03(\r\x12\x15\n\rtx_wavelength\x18\x06 \x03(\r\x12)\n\x10wavelength_scale\x18\x07 \x01(\x0e\x32\x0f.dmi.ValueScale\"\xc0\x01\n\nFormFactor\x12\x17\n\x13\x46ORM_FACTOR_UNKNOWN\x10\x00\x12\x08\n\x04QSFP\x10\x01\x12\r\n\tQSFP_PLUS\x10\x02\x12\n\n\x06QSFP28\x10\x03\x12\x07\n\x03SFP\x10\x04\x12\x0c\n\x08SFP_PLUS\x10\x05\x12\x07\n\x03XFP\x10\x06\x12\x08\n\x04\x43\x46P4\x10\x07\x12\x08\n\x04\x43\x46P2\x10\x08\x12\x08\n\x04\x43PAK\x10\t\x12\x06\n\x02X2\x10\n\x12\t\n\x05OTHER\x10\x0b\x12\x07\n\x03\x43\x46P\x10\x0c\x12\x0c\n\x08\x43\x46P2_ACO\x10\r\x12\x0c\n\x08\x43\x46P2_DCO\x10\x0e\"h\n\x04Type\x12\x10\n\x0cTYPE_UNKNOWN\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\x08\n\x04\x43PON\x10\x05\x12\x0b\n\x07NG_PON2\x10\x06\x12\x08\n\x04\x45PON\x10\x07\"\xe8\x05\n\tComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06parent\x18\x04 \x01(\t\x12\x16\n\x0eparent_rel_pos\x18\x05 \x01(\x05\x12 \n\x08\x63hildren\x18\x06 \x03(\x0b\x32\x0e.dmi.Component\x12\x14\n\x0chardware_rev\x18\x07 \x01(\t\x12\x14\n\x0c\x66irmware_rev\x18\x08 \x01(\t\x12\x14\n\x0csoftware_rev\x18\t \x01(\t\x12\x12\n\nserial_num\x18\n \x01(\t\x12\x10\n\x08mfg_name\x18\x0b \x01(\t\x12\x12\n\nmodel_name\x18\x0c \x01(\t\x12\r\n\x05\x61lias\x18\r \x01(\t\x12\x10\n\x08\x61sset_id\x18\x0e \x01(\t\x12\x0e\n\x06is_fru\x18\x0f \x01(\x08\x12,\n\x08mfg_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\x03uri\x18\x11 \x01(\x0b\x32\x08.dmi.Uri\x12\x17\n\x04uuid\x18\x12 \x01(\x0b\x32\t.dmi.Uuid\x12\"\n\x05state\x18\x13 \x01(\x0b\x32\x13.dmi.ComponentState\x12-\n\x0bsensor_data\x18\x14 \x03(\x0b\x32\x18.dmi.ComponentSensorData\x12\x31\n\tport_attr\x18\x32 \x01(\x0b\x32\x1c.dmi.PortComponentAttributesH\x00\x12;\n\x0e\x63ontainer_attr\x18\x33 \x01(\x0b\x32!.dmi.ContainerComponentAttributesH\x00\x12/\n\x08psu_attr\x18\x34 \x01(\x0b\x32\x1b.dmi.PsuComponentAttributesH\x00\x12@\n\x10transceiver_attr\x18\x35 \x01(\x0b\x32$.dmi.TransceiverComponentsAttributesH\x00\x42\n\n\x08specific\"\x8a\x01\n\x08Hardware\x12/\n\x0blast_change\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x04root\x18\x02 \x01(\x0b\x32\x0e.dmi.Component\x12/\n\x0blast_booted\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x02\n\x13ModifiableComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x1e\n\x06parent\x18\x03 \x01(\x0b\x32\x0e.dmi.Component\x12\x16\n\x0eparent_rel_pos\x18\x04 \x01(\x05\x12\r\n\x05\x61lias\x18\x05 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x06 \x01(\t\x12\x15\n\x03uri\x18\x07 \x01(\x0b\x32\x08.dmi.Uri\x12-\n\x0b\x61\x64min_state\x18\x08 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12\x37\n\tport_attr\x18\x32 \x01(\x0b\x32\".dmi.PortComponentChangeAttributesH\x00\x42\n\n\x08specific*\xb4\x03\n\rComponentType\x12\x1c\n\x18\x43OMPONENT_TYPE_UNDEFINED\x10\x00\x12\x1a\n\x16\x43OMPONENT_TYPE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMPONENT_TYPE_CHASSIS\x10\x02\x12\x1c\n\x18\x43OMPONENT_TYPE_BACKPLANE\x10\x03\x12\x1c\n\x18\x43OMPONENT_TYPE_CONTAINER\x10\x04\x12\x1f\n\x1b\x43OMPONENT_TYPE_POWER_SUPPLY\x10\x05\x12\x16\n\x12\x43OMPONENT_TYPE_FAN\x10\x06\x12\x19\n\x15\x43OMPONENT_TYPE_SENSOR\x10\x07\x12\x19\n\x15\x43OMPONENT_TYPE_MODULE\x10\x08\x12\x17\n\x13\x43OMPONENT_TYPE_PORT\x10\t\x12\x16\n\x12\x43OMPONENT_TYPE_CPU\x10\n\x12\x1a\n\x16\x43OMPONENT_TYPE_BATTERY\x10\x0b\x12\x1a\n\x16\x43OMPONENT_TYPE_STORAGE\x10\x0c\x12\x19\n\x15\x43OMPONENT_TYPE_MEMORY\x10\r\x12\x1e\n\x1a\x43OMPONENT_TYPE_TRANSCEIVER\x10\x0e*\xb3\x01\n\x13\x43omponentAdminState\x12\x1e\n\x1a\x43OMP_ADMIN_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ADMIN_STATE_UNKNOWN\x10\x01\x12\x1b\n\x17\x43OMP_ADMIN_STATE_LOCKED\x10\x02\x12\"\n\x1e\x43OMP_ADMIN_STATE_SHUTTING_DOWN\x10\x03\x12\x1d\n\x19\x43OMP_ADMIN_STATE_UNLOCKED\x10\x04*\xa8\x01\n\x12\x43omponentOperState\x12\x1d\n\x19\x43OMP_OPER_STATE_UNDEFINED\x10\x00\x12\x1b\n\x17\x43OMP_OPER_STATE_UNKNOWN\x10\x01\x12\x1c\n\x18\x43OMP_OPER_STATE_DISABLED\x10\x02\x12\x1b\n\x17\x43OMP_OPER_STATE_ENABLED\x10\x03\x12\x1b\n\x17\x43OMP_OPER_STATE_TESTING\x10\x04*\xa6\x01\n\x13\x43omponentUsageState\x12\x1e\n\x1a\x43OMP_USAGE_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_USAGE_STATE_UNKNOWN\x10\x01\x12\x19\n\x15\x43OMP_USAGE_STATE_IDLE\x10\x02\x12\x1b\n\x17\x43OMP_USAGE_STATE_ACTIVE\x10\x03\x12\x19\n\x15\x43OMP_USAGE_STATE_BUSY\x10\x04*\x8f\x02\n\x13\x43omponentAlarmState\x12\x1e\n\x1a\x43OMP_ALARM_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ALARM_STATE_UNKNOWN\x10\x01\x12!\n\x1d\x43OMP_ALARM_STATE_UNDER_REPAIR\x10\x02\x12\x1d\n\x19\x43OMP_ALARM_STATE_CRITICAL\x10\x03\x12\x1a\n\x16\x43OMP_ALARM_STATE_MAJOR\x10\x04\x12\x1a\n\x16\x43OMP_ALARM_STATE_MINOR\x10\x05\x12\x1c\n\x18\x43OMP_ALARM_STATE_WARNING\x10\x06\x12\"\n\x1e\x43OMP_ALARM_STATE_INDETERMINATE\x10\x07*\xbc\x01\n\x15\x43omponentStandbyState\x12 \n\x1c\x43OMP_STANDBY_STATE_UNDEFINED\x10\x00\x12\x1e\n\x1a\x43OMP_STANDBY_STATE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMP_STANDBY_STATE_HOT\x10\x02\x12\x1b\n\x17\x43OMP_STANDBY_STATE_COLD\x10\x03\x12(\n$COMP_STANDBY_STATE_PROVIDING_SERVICE\x10\x04*\x89\x03\n\rDataValueType\x12\x18\n\x14VALUE_TYPE_UNDEFINED\x10\x00\x12\x14\n\x10VALUE_TYPE_OTHER\x10\x01\x12\x16\n\x12VALUE_TYPE_UNKNOWN\x10\x02\x12\x17\n\x13VALUE_TYPE_VOLTS_AC\x10\x03\x12\x17\n\x13VALUE_TYPE_VOLTS_DC\x10\x04\x12\x16\n\x12VALUE_TYPE_AMPERES\x10\x05\x12\x14\n\x10VALUE_TYPE_WATTS\x10\x06\x12\x14\n\x10VALUE_TYPE_HERTZ\x10\x07\x12\x16\n\x12VALUE_TYPE_CELSIUS\x10\x08\x12\x19\n\x15VALUE_TYPE_PERCENT_RH\x10\t\x12\x12\n\x0eVALUE_TYPE_RPM\x10\n\x12\x12\n\x0eVALUE_TYPE_CMM\x10\x0b\x12\x1a\n\x16VALUE_TYPE_TRUTH_VALUE\x10\x0c\x12\x16\n\x12VALUE_TYPE_PERCENT\x10\r\x12\x15\n\x11VALUE_TYPE_METERS\x10\x0e\x12\x14\n\x10VALUE_TYPE_BYTES\x10\x0f*\xa4\x03\n\nValueScale\x12\x19\n\x15VALUE_SCALE_UNDEFINED\x10\x00\x12\x15\n\x11VALUE_SCALE_YOCTO\x10\x01\x12\x15\n\x11VALUE_SCALE_ZEPTO\x10\x02\x12\x14\n\x10VALUE_SCALE_ATTO\x10\x03\x12\x15\n\x11VALUE_SCALE_FEMTO\x10\x04\x12\x14\n\x10VALUE_SCALE_PICO\x10\x05\x12\x14\n\x10VALUE_SCALE_NANO\x10\x06\x12\x15\n\x11VALUE_SCALE_MICRO\x10\x07\x12\x15\n\x11VALUE_SCALE_MILLI\x10\x08\x12\x15\n\x11VALUE_SCALE_UNITS\x10\t\x12\x14\n\x10VALUE_SCALE_KILO\x10\n\x12\x14\n\x10VALUE_SCALE_MEGA\x10\x0b\x12\x14\n\x10VALUE_SCALE_GIGA\x10\x0c\x12\x14\n\x10VALUE_SCALE_TERA\x10\r\x12\x14\n\x10VALUE_SCALE_PETA\x10\x0e\x12\x13\n\x0fVALUE_SCALE_EXA\x10\x0f\x12\x15\n\x11VALUE_SCALE_ZETTA\x10\x10\x12\x15\n\x11VALUE_SCALE_YOTTA\x10\x11*\x82\x01\n\x0cSensorStatus\x12\x1b\n\x17SENSOR_STATUS_UNDEFINED\x10\x00\x12\x14\n\x10SENSOR_STATUS_OK\x10\x01\x12\x1d\n\x19SENSOR_STATUS_UNAVAILABLE\x10\x02\x12 \n\x1cSENSOR_STATUS_NONOPERATIONAL\x10\x03\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
-  ,
-  dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0c\x64mi/hw.proto\x12\x03\x64mi\x1a\x1fgoogle/protobuf/timestamp.proto\"\x14\n\x04Uuid\x12\x0c\n\x04uuid\x18\x01 \x01(\t\"%\n\nHardwareID\x12\x17\n\x04uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x12\n\x03Uri\x12\x0b\n\x03uri\x18\x01 \x01(\t\"\xb5\x02\n\x0e\x43omponentState\x12\x36\n\x12state_last_changed\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12-\n\x0b\x61\x64min_state\x18\x02 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12+\n\noper_state\x18\x03 \x01(\x0e\x32\x17.dmi.ComponentOperState\x12-\n\x0busage_state\x18\x04 \x01(\x0e\x32\x18.dmi.ComponentUsageState\x12-\n\x0b\x61larm_state\x18\x05 \x01(\x0e\x32\x18.dmi.ComponentAlarmState\x12\x31\n\rstandby_state\x18\x06 \x01(\x0e\x32\x1a.dmi.ComponentStandbyState\"\x90\x02\n\x13\x43omponentSensorData\x12\r\n\x05value\x18\x01 \x01(\x05\x12 \n\x04type\x18\x02 \x01(\x0e\x32\x12.dmi.DataValueType\x12\x1e\n\x05scale\x18\x03 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x11\n\tprecision\x18\x04 \x01(\x05\x12!\n\x06status\x18\x05 \x01(\x0e\x32\x11.dmi.SensorStatus\x12\x15\n\runits_display\x18\x06 \x01(\t\x12-\n\ttimestamp\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11value_update_rate\x18\x08 \x01(\r\x12\x11\n\tdata_type\x18\t \x01(\t\"\xe1\x05\n\x17PortComponentAttributes\x12\x42\n\x0e\x63onnector_type\x18\x01 \x01(\x0e\x32*.dmi.PortComponentAttributes.ConnectorType\x12\x31\n\x05speed\x18\x02 \x01(\x0e\x32\".dmi.PortComponentAttributes.Speed\x12\x37\n\x08protocol\x18\x03 \x01(\x0e\x32%.dmi.PortComponentAttributes.Protocol\x12\x16\n\x0ephysical_label\x18\x04 \x01(\t\x12\x15\n\rmapping_label\x18\x05 \x01(\t\x12\'\n\rpon_id_config\x18\x06 \x01(\x0b\x32\x10.dmi.PonIdConfig\x12\x1d\n\x15speed_autonegotiation\x18\x07 \x01(\x08\"p\n\rConnectorType\x12\x1c\n\x18\x43ONNECTOR_TYPE_UNDEFINED\x10\x00\x12\x08\n\x04RJ45\x10\x01\x12\x0c\n\x08\x46IBER_LC\x10\x02\x12\x0f\n\x0b\x46IBER_SC_PC\x10\x03\x12\r\n\tFIBER_MPO\x10\x04\x12\t\n\x05RS232\x10\x05\"\xae\x01\n\x05Speed\x12\x13\n\x0fSPEED_UNDEFINED\x10\x00\x12\x0b\n\x07\x44YNAMIC\x10\x01\x12\r\n\tGIGABIT_1\x10\x02\x12\x0e\n\nGIGABIT_10\x10\x03\x12\x0e\n\nGIGABIT_25\x10\x04\x12\x0e\n\nGIGABIT_40\x10\x05\x12\x0f\n\x0bGIGABIT_100\x10\x06\x12\x0f\n\x0bGIGABIT_400\x10\x07\x12\x10\n\x0cMEGABIT_2500\x10\x08\x12\x10\n\x0cMEGABIT_1250\x10\t\"|\n\x08Protocol\x12\x16\n\x12PROTOCOL_UNDEFINED\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\t\n\x05GFAST\x10\x05\x12\n\n\x06SERIAL\x10\x06\x12\x08\n\x04\x45PON\x10\x07\x12\x08\n\x04\x42ITS\x10\x08\"H\n\x1dPortComponentChangeAttributes\x12\'\n\rpon_id_config\x18\x01 \x01(\x0b\x32\x10.dmi.PonIdConfig\"P\n$TransceiverComponentChangeAttributes\x12(\n\ntrans_type\x18\x01 \x01(\x0e\x32\x14.dmi.TransceiverType\"B\n\x0bPonIdConfig\x12\x0e\n\x06pon_id\x18\x01 \x01(\x0c\x12#\n\x1bpon_id_transmit_periodicity\x18\x02 \x01(\r\"6\n\x1c\x43ontainerComponentAttributes\x12\x16\n\x0ephysical_label\x18\x01 \x01(\t\"\xb3\x01\n\x16PsuComponentAttributes\x12G\n\x11supported_voltage\x18\x01 \x01(\x0e\x32,.dmi.PsuComponentAttributes.SupportedVoltage\"P\n\x10SupportedVoltage\x12\x1f\n\x1bSUPPORTED_VOLTAGE_UNDEFINED\x10\x00\x12\x07\n\x03V48\x10\x01\x12\x08\n\x04V230\x10\x02\x12\x08\n\x04V115\x10\x03\"\xf0\x03\n\x1fTransceiverComponentsAttributes\x12\x44\n\x0b\x66orm_factor\x18\x01 \x01(\x0e\x32/.dmi.TransceiverComponentsAttributes.FormFactor\x12(\n\ntrans_type\x18\x02 \x01(\x0e\x32\x14.dmi.TransceiverType\x12\x14\n\x0cmax_distance\x18\x03 \x01(\r\x12+\n\x12max_distance_scale\x18\x04 \x01(\x0e\x32\x0f.dmi.ValueScale\x12\x15\n\rrx_wavelength\x18\x05 \x03(\r\x12\x15\n\rtx_wavelength\x18\x06 \x03(\r\x12)\n\x10wavelength_scale\x18\x07 \x01(\x0e\x32\x0f.dmi.ValueScale\"\xc0\x01\n\nFormFactor\x12\x17\n\x13\x46ORM_FACTOR_UNKNOWN\x10\x00\x12\x08\n\x04QSFP\x10\x01\x12\r\n\tQSFP_PLUS\x10\x02\x12\n\n\x06QSFP28\x10\x03\x12\x07\n\x03SFP\x10\x04\x12\x0c\n\x08SFP_PLUS\x10\x05\x12\x07\n\x03XFP\x10\x06\x12\x08\n\x04\x43\x46P4\x10\x07\x12\x08\n\x04\x43\x46P2\x10\x08\x12\x08\n\x04\x43PAK\x10\t\x12\x06\n\x02X2\x10\n\x12\t\n\x05OTHER\x10\x0b\x12\x07\n\x03\x43\x46P\x10\x0c\x12\x0c\n\x08\x43\x46P2_ACO\x10\r\x12\x0c\n\x08\x43\x46P2_DCO\x10\x0e\"\xe8\x05\n\tComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12\x0e\n\x06parent\x18\x04 \x01(\t\x12\x16\n\x0eparent_rel_pos\x18\x05 \x01(\x05\x12 \n\x08\x63hildren\x18\x06 \x03(\x0b\x32\x0e.dmi.Component\x12\x14\n\x0chardware_rev\x18\x07 \x01(\t\x12\x14\n\x0c\x66irmware_rev\x18\x08 \x01(\t\x12\x14\n\x0csoftware_rev\x18\t \x01(\t\x12\x12\n\nserial_num\x18\n \x01(\t\x12\x10\n\x08mfg_name\x18\x0b \x01(\t\x12\x12\n\nmodel_name\x18\x0c \x01(\t\x12\r\n\x05\x61lias\x18\r \x01(\t\x12\x10\n\x08\x61sset_id\x18\x0e \x01(\t\x12\x0e\n\x06is_fru\x18\x0f \x01(\x08\x12,\n\x08mfg_date\x18\x10 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\x03uri\x18\x11 \x01(\x0b\x32\x08.dmi.Uri\x12\x17\n\x04uuid\x18\x12 \x01(\x0b\x32\t.dmi.Uuid\x12\"\n\x05state\x18\x13 \x01(\x0b\x32\x13.dmi.ComponentState\x12-\n\x0bsensor_data\x18\x14 \x03(\x0b\x32\x18.dmi.ComponentSensorData\x12\x31\n\tport_attr\x18\x32 \x01(\x0b\x32\x1c.dmi.PortComponentAttributesH\x00\x12;\n\x0e\x63ontainer_attr\x18\x33 \x01(\x0b\x32!.dmi.ContainerComponentAttributesH\x00\x12/\n\x08psu_attr\x18\x34 \x01(\x0b\x32\x1b.dmi.PsuComponentAttributesH\x00\x12@\n\x10transceiver_attr\x18\x35 \x01(\x0b\x32$.dmi.TransceiverComponentsAttributesH\x00\x42\n\n\x08specific\"\x8a\x01\n\x08Hardware\x12/\n\x0blast_change\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x1c\n\x04root\x18\x02 \x01(\x0b\x32\x0e.dmi.Component\x12/\n\x0blast_booted\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xe9\x02\n\x13ModifiableComponent\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x63lass\x18\x02 \x01(\x0e\x32\x12.dmi.ComponentType\x12\x1e\n\x06parent\x18\x03 \x01(\x0b\x32\x0e.dmi.Component\x12\x16\n\x0eparent_rel_pos\x18\x04 \x01(\x05\x12\r\n\x05\x61lias\x18\x05 \x01(\t\x12\x10\n\x08\x61sset_id\x18\x06 \x01(\t\x12\x15\n\x03uri\x18\x07 \x01(\x0b\x32\x08.dmi.Uri\x12-\n\x0b\x61\x64min_state\x18\x08 \x01(\x0e\x32\x18.dmi.ComponentAdminState\x12\x37\n\tport_attr\x18\x32 \x01(\x0b\x32\".dmi.PortComponentChangeAttributesH\x00\x12=\n\x08trx_attr\x18\x33 \x01(\x0b\x32).dmi.TransceiverComponentChangeAttributesH\x00\x42\n\n\x08specific*\xb4\x03\n\rComponentType\x12\x1c\n\x18\x43OMPONENT_TYPE_UNDEFINED\x10\x00\x12\x1a\n\x16\x43OMPONENT_TYPE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMPONENT_TYPE_CHASSIS\x10\x02\x12\x1c\n\x18\x43OMPONENT_TYPE_BACKPLANE\x10\x03\x12\x1c\n\x18\x43OMPONENT_TYPE_CONTAINER\x10\x04\x12\x1f\n\x1b\x43OMPONENT_TYPE_POWER_SUPPLY\x10\x05\x12\x16\n\x12\x43OMPONENT_TYPE_FAN\x10\x06\x12\x19\n\x15\x43OMPONENT_TYPE_SENSOR\x10\x07\x12\x19\n\x15\x43OMPONENT_TYPE_MODULE\x10\x08\x12\x17\n\x13\x43OMPONENT_TYPE_PORT\x10\t\x12\x16\n\x12\x43OMPONENT_TYPE_CPU\x10\n\x12\x1a\n\x16\x43OMPONENT_TYPE_BATTERY\x10\x0b\x12\x1a\n\x16\x43OMPONENT_TYPE_STORAGE\x10\x0c\x12\x19\n\x15\x43OMPONENT_TYPE_MEMORY\x10\r\x12\x1e\n\x1a\x43OMPONENT_TYPE_TRANSCEIVER\x10\x0e*\xb3\x01\n\x13\x43omponentAdminState\x12\x1e\n\x1a\x43OMP_ADMIN_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ADMIN_STATE_UNKNOWN\x10\x01\x12\x1b\n\x17\x43OMP_ADMIN_STATE_LOCKED\x10\x02\x12\"\n\x1e\x43OMP_ADMIN_STATE_SHUTTING_DOWN\x10\x03\x12\x1d\n\x19\x43OMP_ADMIN_STATE_UNLOCKED\x10\x04*\xa8\x01\n\x12\x43omponentOperState\x12\x1d\n\x19\x43OMP_OPER_STATE_UNDEFINED\x10\x00\x12\x1b\n\x17\x43OMP_OPER_STATE_UNKNOWN\x10\x01\x12\x1c\n\x18\x43OMP_OPER_STATE_DISABLED\x10\x02\x12\x1b\n\x17\x43OMP_OPER_STATE_ENABLED\x10\x03\x12\x1b\n\x17\x43OMP_OPER_STATE_TESTING\x10\x04*\xa6\x01\n\x13\x43omponentUsageState\x12\x1e\n\x1a\x43OMP_USAGE_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_USAGE_STATE_UNKNOWN\x10\x01\x12\x19\n\x15\x43OMP_USAGE_STATE_IDLE\x10\x02\x12\x1b\n\x17\x43OMP_USAGE_STATE_ACTIVE\x10\x03\x12\x19\n\x15\x43OMP_USAGE_STATE_BUSY\x10\x04*\x8f\x02\n\x13\x43omponentAlarmState\x12\x1e\n\x1a\x43OMP_ALARM_STATE_UNDEFINED\x10\x00\x12\x1c\n\x18\x43OMP_ALARM_STATE_UNKNOWN\x10\x01\x12!\n\x1d\x43OMP_ALARM_STATE_UNDER_REPAIR\x10\x02\x12\x1d\n\x19\x43OMP_ALARM_STATE_CRITICAL\x10\x03\x12\x1a\n\x16\x43OMP_ALARM_STATE_MAJOR\x10\x04\x12\x1a\n\x16\x43OMP_ALARM_STATE_MINOR\x10\x05\x12\x1c\n\x18\x43OMP_ALARM_STATE_WARNING\x10\x06\x12\"\n\x1e\x43OMP_ALARM_STATE_INDETERMINATE\x10\x07*\xbc\x01\n\x15\x43omponentStandbyState\x12 \n\x1c\x43OMP_STANDBY_STATE_UNDEFINED\x10\x00\x12\x1e\n\x1a\x43OMP_STANDBY_STATE_UNKNOWN\x10\x01\x12\x1a\n\x16\x43OMP_STANDBY_STATE_HOT\x10\x02\x12\x1b\n\x17\x43OMP_STANDBY_STATE_COLD\x10\x03\x12(\n$COMP_STANDBY_STATE_PROVIDING_SERVICE\x10\x04*\x89\x03\n\rDataValueType\x12\x18\n\x14VALUE_TYPE_UNDEFINED\x10\x00\x12\x14\n\x10VALUE_TYPE_OTHER\x10\x01\x12\x16\n\x12VALUE_TYPE_UNKNOWN\x10\x02\x12\x17\n\x13VALUE_TYPE_VOLTS_AC\x10\x03\x12\x17\n\x13VALUE_TYPE_VOLTS_DC\x10\x04\x12\x16\n\x12VALUE_TYPE_AMPERES\x10\x05\x12\x14\n\x10VALUE_TYPE_WATTS\x10\x06\x12\x14\n\x10VALUE_TYPE_HERTZ\x10\x07\x12\x16\n\x12VALUE_TYPE_CELSIUS\x10\x08\x12\x19\n\x15VALUE_TYPE_PERCENT_RH\x10\t\x12\x12\n\x0eVALUE_TYPE_RPM\x10\n\x12\x12\n\x0eVALUE_TYPE_CMM\x10\x0b\x12\x1a\n\x16VALUE_TYPE_TRUTH_VALUE\x10\x0c\x12\x16\n\x12VALUE_TYPE_PERCENT\x10\r\x12\x15\n\x11VALUE_TYPE_METERS\x10\x0e\x12\x14\n\x10VALUE_TYPE_BYTES\x10\x0f*\xa4\x03\n\nValueScale\x12\x19\n\x15VALUE_SCALE_UNDEFINED\x10\x00\x12\x15\n\x11VALUE_SCALE_YOCTO\x10\x01\x12\x15\n\x11VALUE_SCALE_ZEPTO\x10\x02\x12\x14\n\x10VALUE_SCALE_ATTO\x10\x03\x12\x15\n\x11VALUE_SCALE_FEMTO\x10\x04\x12\x14\n\x10VALUE_SCALE_PICO\x10\x05\x12\x14\n\x10VALUE_SCALE_NANO\x10\x06\x12\x15\n\x11VALUE_SCALE_MICRO\x10\x07\x12\x15\n\x11VALUE_SCALE_MILLI\x10\x08\x12\x15\n\x11VALUE_SCALE_UNITS\x10\t\x12\x14\n\x10VALUE_SCALE_KILO\x10\n\x12\x14\n\x10VALUE_SCALE_MEGA\x10\x0b\x12\x14\n\x10VALUE_SCALE_GIGA\x10\x0c\x12\x14\n\x10VALUE_SCALE_TERA\x10\r\x12\x14\n\x10VALUE_SCALE_PETA\x10\x0e\x12\x13\n\x0fVALUE_SCALE_EXA\x10\x0f\x12\x15\n\x11VALUE_SCALE_ZETTA\x10\x10\x12\x15\n\x11VALUE_SCALE_YOTTA\x10\x11*\x82\x01\n\x0cSensorStatus\x12\x1b\n\x17SENSOR_STATUS_UNDEFINED\x10\x00\x12\x14\n\x10SENSOR_STATUS_OK\x10\x01\x12\x1d\n\x19SENSOR_STATUS_UNAVAILABLE\x10\x02\x12 \n\x1cSENSOR_STATUS_NONOPERATIONAL\x10\x03*\x8d\x01\n\x0fTransceiverType\x12\x12\n\x0eTYPE_UNDEFINED\x10\x00\x12\x0c\n\x08\x45THERNET\x10\x01\x12\x08\n\x04GPON\x10\x02\x12\t\n\x05XGPON\x10\x03\x12\n\n\x06XGSPON\x10\x04\x12\x08\n\x04\x43PON\x10\x05\x12\x0b\n\x07NG_PON2\x10\x06\x12\x08\n\x04\x45PON\x10\x07\x12\x16\n\x11TYPE_NOT_DETECTED\x10\xff\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
 
-_COMPONENTTYPE = _descriptor.EnumDescriptor(
-  name='ComponentType',
-  full_name='dmi.ComponentType',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_UNKNOWN', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_CHASSIS', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_BACKPLANE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_CONTAINER', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_POWER_SUPPLY', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_FAN', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_SENSOR', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_MODULE', index=8, number=8,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_PORT', index=9, number=9,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_CPU', index=10, number=10,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_BATTERY', index=11, number=11,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_STORAGE', index=12, number=12,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_MEMORY', index=13, number=13,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMPONENT_TYPE_TRANSCEIVER', index=14, number=14,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=3658,
-  serialized_end=4094,
-)
-_sym_db.RegisterEnumDescriptor(_COMPONENTTYPE)
-
+_COMPONENTTYPE = DESCRIPTOR.enum_types_by_name['ComponentType']
 ComponentType = enum_type_wrapper.EnumTypeWrapper(_COMPONENTTYPE)
-_COMPONENTADMINSTATE = _descriptor.EnumDescriptor(
-  name='ComponentAdminState',
-  full_name='dmi.ComponentAdminState',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ADMIN_STATE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ADMIN_STATE_UNKNOWN', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ADMIN_STATE_LOCKED', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ADMIN_STATE_SHUTTING_DOWN', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ADMIN_STATE_UNLOCKED', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4097,
-  serialized_end=4276,
-)
-_sym_db.RegisterEnumDescriptor(_COMPONENTADMINSTATE)
-
+_COMPONENTADMINSTATE = DESCRIPTOR.enum_types_by_name['ComponentAdminState']
 ComponentAdminState = enum_type_wrapper.EnumTypeWrapper(_COMPONENTADMINSTATE)
-_COMPONENTOPERSTATE = _descriptor.EnumDescriptor(
-  name='ComponentOperState',
-  full_name='dmi.ComponentOperState',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='COMP_OPER_STATE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_OPER_STATE_UNKNOWN', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_OPER_STATE_DISABLED', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_OPER_STATE_ENABLED', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_OPER_STATE_TESTING', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4279,
-  serialized_end=4447,
-)
-_sym_db.RegisterEnumDescriptor(_COMPONENTOPERSTATE)
-
+_COMPONENTOPERSTATE = DESCRIPTOR.enum_types_by_name['ComponentOperState']
 ComponentOperState = enum_type_wrapper.EnumTypeWrapper(_COMPONENTOPERSTATE)
-_COMPONENTUSAGESTATE = _descriptor.EnumDescriptor(
-  name='ComponentUsageState',
-  full_name='dmi.ComponentUsageState',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='COMP_USAGE_STATE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_USAGE_STATE_UNKNOWN', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_USAGE_STATE_IDLE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_USAGE_STATE_ACTIVE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_USAGE_STATE_BUSY', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4450,
-  serialized_end=4616,
-)
-_sym_db.RegisterEnumDescriptor(_COMPONENTUSAGESTATE)
-
+_COMPONENTUSAGESTATE = DESCRIPTOR.enum_types_by_name['ComponentUsageState']
 ComponentUsageState = enum_type_wrapper.EnumTypeWrapper(_COMPONENTUSAGESTATE)
-_COMPONENTALARMSTATE = _descriptor.EnumDescriptor(
-  name='ComponentAlarmState',
-  full_name='dmi.ComponentAlarmState',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ALARM_STATE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ALARM_STATE_UNKNOWN', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ALARM_STATE_UNDER_REPAIR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ALARM_STATE_CRITICAL', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ALARM_STATE_MAJOR', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ALARM_STATE_MINOR', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ALARM_STATE_WARNING', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_ALARM_STATE_INDETERMINATE', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4619,
-  serialized_end=4890,
-)
-_sym_db.RegisterEnumDescriptor(_COMPONENTALARMSTATE)
-
+_COMPONENTALARMSTATE = DESCRIPTOR.enum_types_by_name['ComponentAlarmState']
 ComponentAlarmState = enum_type_wrapper.EnumTypeWrapper(_COMPONENTALARMSTATE)
-_COMPONENTSTANDBYSTATE = _descriptor.EnumDescriptor(
-  name='ComponentStandbyState',
-  full_name='dmi.ComponentStandbyState',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='COMP_STANDBY_STATE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_STANDBY_STATE_UNKNOWN', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_STANDBY_STATE_HOT', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_STANDBY_STATE_COLD', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMP_STANDBY_STATE_PROVIDING_SERVICE', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=4893,
-  serialized_end=5081,
-)
-_sym_db.RegisterEnumDescriptor(_COMPONENTSTANDBYSTATE)
-
+_COMPONENTSTANDBYSTATE = DESCRIPTOR.enum_types_by_name['ComponentStandbyState']
 ComponentStandbyState = enum_type_wrapper.EnumTypeWrapper(_COMPONENTSTANDBYSTATE)
-_DATAVALUETYPE = _descriptor.EnumDescriptor(
-  name='DataValueType',
-  full_name='dmi.DataValueType',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_OTHER', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_UNKNOWN', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_VOLTS_AC', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_VOLTS_DC', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_AMPERES', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_WATTS', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_HERTZ', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_CELSIUS', index=8, number=8,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_PERCENT_RH', index=9, number=9,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_RPM', index=10, number=10,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_CMM', index=11, number=11,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_TRUTH_VALUE', index=12, number=12,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_PERCENT', index=13, number=13,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_METERS', index=14, number=14,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_TYPE_BYTES', index=15, number=15,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=5084,
-  serialized_end=5477,
-)
-_sym_db.RegisterEnumDescriptor(_DATAVALUETYPE)
-
+_DATAVALUETYPE = DESCRIPTOR.enum_types_by_name['DataValueType']
 DataValueType = enum_type_wrapper.EnumTypeWrapper(_DATAVALUETYPE)
-_VALUESCALE = _descriptor.EnumDescriptor(
-  name='ValueScale',
-  full_name='dmi.ValueScale',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_YOCTO', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_ZEPTO', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_ATTO', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_FEMTO', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_PICO', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_NANO', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_MICRO', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_MILLI', index=8, number=8,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_UNITS', index=9, number=9,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_KILO', index=10, number=10,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_MEGA', index=11, number=11,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_GIGA', index=12, number=12,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_TERA', index=13, number=13,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_PETA', index=14, number=14,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_EXA', index=15, number=15,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_ZETTA', index=16, number=16,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='VALUE_SCALE_YOTTA', index=17, number=17,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=5480,
-  serialized_end=5900,
-)
-_sym_db.RegisterEnumDescriptor(_VALUESCALE)
-
+_VALUESCALE = DESCRIPTOR.enum_types_by_name['ValueScale']
 ValueScale = enum_type_wrapper.EnumTypeWrapper(_VALUESCALE)
-_SENSORSTATUS = _descriptor.EnumDescriptor(
-  name='SensorStatus',
-  full_name='dmi.SensorStatus',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='SENSOR_STATUS_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SENSOR_STATUS_OK', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SENSOR_STATUS_UNAVAILABLE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SENSOR_STATUS_NONOPERATIONAL', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=5903,
-  serialized_end=6033,
-)
-_sym_db.RegisterEnumDescriptor(_SENSORSTATUS)
-
+_SENSORSTATUS = DESCRIPTOR.enum_types_by_name['SensorStatus']
 SensorStatus = enum_type_wrapper.EnumTypeWrapper(_SENSORSTATUS)
+_TRANSCEIVERTYPE = DESCRIPTOR.enum_types_by_name['TransceiverType']
+TransceiverType = enum_type_wrapper.EnumTypeWrapper(_TRANSCEIVERTYPE)
 COMPONENT_TYPE_UNDEFINED = 0
 COMPONENT_TYPE_UNKNOWN = 1
 COMPONENT_TYPE_CHASSIS = 2
@@ -655,1321 +119,37 @@
 SENSOR_STATUS_OK = 1
 SENSOR_STATUS_UNAVAILABLE = 2
 SENSOR_STATUS_NONOPERATIONAL = 3
+TYPE_UNDEFINED = 0
+ETHERNET = 1
+GPON = 2
+XGPON = 3
+XGSPON = 4
+CPON = 5
+NG_PON2 = 6
+EPON = 7
+TYPE_NOT_DETECTED = 255
 
 
-_PORTCOMPONENTATTRIBUTES_CONNECTORTYPE = _descriptor.EnumDescriptor(
-  name='ConnectorType',
-  full_name='dmi.PortComponentAttributes.ConnectorType',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='CONNECTOR_TYPE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='RJ45', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='FIBER_LC', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='FIBER_SC_PC', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='FIBER_MPO', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='RS232', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1045,
-  serialized_end=1157,
-)
-_sym_db.RegisterEnumDescriptor(_PORTCOMPONENTATTRIBUTES_CONNECTORTYPE)
-
-_PORTCOMPONENTATTRIBUTES_SPEED = _descriptor.EnumDescriptor(
-  name='Speed',
-  full_name='dmi.PortComponentAttributes.Speed',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='SPEED_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DYNAMIC', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='GIGABIT_1', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='GIGABIT_10', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='GIGABIT_25', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='GIGABIT_40', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='GIGABIT_100', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='GIGABIT_400', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='MEGABIT_2500', index=8, number=8,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='MEGABIT_1250', index=9, number=9,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1160,
-  serialized_end=1334,
-)
-_sym_db.RegisterEnumDescriptor(_PORTCOMPONENTATTRIBUTES_SPEED)
-
-_PORTCOMPONENTATTRIBUTES_PROTOCOL = _descriptor.EnumDescriptor(
-  name='Protocol',
-  full_name='dmi.PortComponentAttributes.Protocol',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='PROTOCOL_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='ETHERNET', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='GPON', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='XGPON', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='XGSPON', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='GFAST', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SERIAL', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EPON', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='BITS', index=8, number=8,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1336,
-  serialized_end=1460,
-)
-_sym_db.RegisterEnumDescriptor(_PORTCOMPONENTATTRIBUTES_PROTOCOL)
-
-_PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE = _descriptor.EnumDescriptor(
-  name='SupportedVoltage',
-  full_name='dmi.PsuComponentAttributes.SupportedVoltage',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='SUPPORTED_VOLTAGE_UNDEFINED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='V48', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='V230', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='V115', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1760,
-  serialized_end=1840,
-)
-_sym_db.RegisterEnumDescriptor(_PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE)
-
-_TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR = _descriptor.EnumDescriptor(
-  name='FormFactor',
-  full_name='dmi.TransceiverComponentsAttributes.FormFactor',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='FORM_FACTOR_UNKNOWN', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='QSFP', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='QSFP_PLUS', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='QSFP28', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SFP', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='SFP_PLUS', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='XFP', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CFP4', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CFP2', index=8, number=8,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CPAK', index=9, number=9,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='X2', index=10, number=10,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='OTHER', index=11, number=11,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CFP', index=12, number=12,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CFP2_ACO', index=13, number=13,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CFP2_DCO', index=14, number=14,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=2168,
-  serialized_end=2360,
-)
-_sym_db.RegisterEnumDescriptor(_TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR)
-
-_TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE = _descriptor.EnumDescriptor(
-  name='Type',
-  full_name='dmi.TransceiverComponentsAttributes.Type',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='TYPE_UNKNOWN', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='ETHERNET', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='GPON', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='XGPON', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='XGSPON', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='CPON', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='NG_PON2', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EPON', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=2362,
-  serialized_end=2466,
-)
-_sym_db.RegisterEnumDescriptor(_TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE)
-
-
-_UUID = _descriptor.Descriptor(
-  name='Uuid',
-  full_name='dmi.Uuid',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='uuid', full_name='dmi.Uuid.uuid', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=54,
-  serialized_end=74,
-)
-
-
-_HARDWAREID = _descriptor.Descriptor(
-  name='HardwareID',
-  full_name='dmi.HardwareID',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='uuid', full_name='dmi.HardwareID.uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=76,
-  serialized_end=113,
-)
-
-
-_URI = _descriptor.Descriptor(
-  name='Uri',
-  full_name='dmi.Uri',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='uri', full_name='dmi.Uri.uri', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=115,
-  serialized_end=133,
-)
-
-
-_COMPONENTSTATE = _descriptor.Descriptor(
-  name='ComponentState',
-  full_name='dmi.ComponentState',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='state_last_changed', full_name='dmi.ComponentState.state_last_changed', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='admin_state', full_name='dmi.ComponentState.admin_state', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='oper_state', full_name='dmi.ComponentState.oper_state', index=2,
-      number=3, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='usage_state', full_name='dmi.ComponentState.usage_state', index=3,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='alarm_state', full_name='dmi.ComponentState.alarm_state', index=4,
-      number=5, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='standby_state', full_name='dmi.ComponentState.standby_state', index=5,
-      number=6, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=136,
-  serialized_end=445,
-)
-
-
-_COMPONENTSENSORDATA = _descriptor.Descriptor(
-  name='ComponentSensorData',
-  full_name='dmi.ComponentSensorData',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='value', full_name='dmi.ComponentSensorData.value', index=0,
-      number=1, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='type', full_name='dmi.ComponentSensorData.type', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='scale', full_name='dmi.ComponentSensorData.scale', index=2,
-      number=3, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='precision', full_name='dmi.ComponentSensorData.precision', index=3,
-      number=4, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.ComponentSensorData.status', index=4,
-      number=5, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='units_display', full_name='dmi.ComponentSensorData.units_display', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='timestamp', full_name='dmi.ComponentSensorData.timestamp', index=6,
-      number=7, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='value_update_rate', full_name='dmi.ComponentSensorData.value_update_rate', index=7,
-      number=8, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='data_type', full_name='dmi.ComponentSensorData.data_type', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=448,
-  serialized_end=720,
-)
-
-
-_PORTCOMPONENTATTRIBUTES = _descriptor.Descriptor(
-  name='PortComponentAttributes',
-  full_name='dmi.PortComponentAttributes',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='connector_type', full_name='dmi.PortComponentAttributes.connector_type', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='speed', full_name='dmi.PortComponentAttributes.speed', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='protocol', full_name='dmi.PortComponentAttributes.protocol', index=2,
-      number=3, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='physical_label', full_name='dmi.PortComponentAttributes.physical_label', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='mapping_label', full_name='dmi.PortComponentAttributes.mapping_label', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='pon_id_config', full_name='dmi.PortComponentAttributes.pon_id_config', index=5,
-      number=6, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='speed_autonegotiation', full_name='dmi.PortComponentAttributes.speed_autonegotiation', index=6,
-      number=7, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _PORTCOMPONENTATTRIBUTES_CONNECTORTYPE,
-    _PORTCOMPONENTATTRIBUTES_SPEED,
-    _PORTCOMPONENTATTRIBUTES_PROTOCOL,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=723,
-  serialized_end=1460,
-)
-
-
-_PORTCOMPONENTCHANGEATTRIBUTES = _descriptor.Descriptor(
-  name='PortComponentChangeAttributes',
-  full_name='dmi.PortComponentChangeAttributes',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='pon_id_config', full_name='dmi.PortComponentChangeAttributes.pon_id_config', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1462,
-  serialized_end=1534,
-)
-
-
-_PONIDCONFIG = _descriptor.Descriptor(
-  name='PonIdConfig',
-  full_name='dmi.PonIdConfig',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='pon_id', full_name='dmi.PonIdConfig.pon_id', index=0,
-      number=1, type=12, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"",
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='pon_id_transmit_periodicity', full_name='dmi.PonIdConfig.pon_id_transmit_periodicity', index=1,
-      number=2, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1536,
-  serialized_end=1602,
-)
-
-
-_CONTAINERCOMPONENTATTRIBUTES = _descriptor.Descriptor(
-  name='ContainerComponentAttributes',
-  full_name='dmi.ContainerComponentAttributes',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='physical_label', full_name='dmi.ContainerComponentAttributes.physical_label', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1604,
-  serialized_end=1658,
-)
-
-
-_PSUCOMPONENTATTRIBUTES = _descriptor.Descriptor(
-  name='PsuComponentAttributes',
-  full_name='dmi.PsuComponentAttributes',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='supported_voltage', full_name='dmi.PsuComponentAttributes.supported_voltage', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1661,
-  serialized_end=1840,
-)
-
-
-_TRANSCEIVERCOMPONENTSATTRIBUTES = _descriptor.Descriptor(
-  name='TransceiverComponentsAttributes',
-  full_name='dmi.TransceiverComponentsAttributes',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='form_factor', full_name='dmi.TransceiverComponentsAttributes.form_factor', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='trans_type', full_name='dmi.TransceiverComponentsAttributes.trans_type', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='max_distance', full_name='dmi.TransceiverComponentsAttributes.max_distance', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='max_distance_scale', full_name='dmi.TransceiverComponentsAttributes.max_distance_scale', index=3,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='rx_wavelength', full_name='dmi.TransceiverComponentsAttributes.rx_wavelength', index=4,
-      number=5, type=13, cpp_type=3, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='tx_wavelength', full_name='dmi.TransceiverComponentsAttributes.tx_wavelength', index=5,
-      number=6, type=13, cpp_type=3, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='wavelength_scale', full_name='dmi.TransceiverComponentsAttributes.wavelength_scale', index=6,
-      number=7, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR,
-    _TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1843,
-  serialized_end=2466,
-)
-
-
-_COMPONENT = _descriptor.Descriptor(
-  name='Component',
-  full_name='dmi.Component',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='dmi.Component.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='class', full_name='dmi.Component.class', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='dmi.Component.description', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='parent', full_name='dmi.Component.parent', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='parent_rel_pos', full_name='dmi.Component.parent_rel_pos', index=4,
-      number=5, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='children', full_name='dmi.Component.children', index=5,
-      number=6, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='hardware_rev', full_name='dmi.Component.hardware_rev', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='firmware_rev', full_name='dmi.Component.firmware_rev', index=7,
-      number=8, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='software_rev', full_name='dmi.Component.software_rev', index=8,
-      number=9, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='serial_num', full_name='dmi.Component.serial_num', index=9,
-      number=10, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='mfg_name', full_name='dmi.Component.mfg_name', index=10,
-      number=11, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='model_name', full_name='dmi.Component.model_name', index=11,
-      number=12, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='alias', full_name='dmi.Component.alias', index=12,
-      number=13, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='asset_id', full_name='dmi.Component.asset_id', index=13,
-      number=14, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='is_fru', full_name='dmi.Component.is_fru', index=14,
-      number=15, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='mfg_date', full_name='dmi.Component.mfg_date', index=15,
-      number=16, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='uri', full_name='dmi.Component.uri', index=16,
-      number=17, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='uuid', full_name='dmi.Component.uuid', index=17,
-      number=18, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='state', full_name='dmi.Component.state', index=18,
-      number=19, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sensor_data', full_name='dmi.Component.sensor_data', index=19,
-      number=20, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_attr', full_name='dmi.Component.port_attr', index=20,
-      number=50, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='container_attr', full_name='dmi.Component.container_attr', index=21,
-      number=51, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='psu_attr', full_name='dmi.Component.psu_attr', index=22,
-      number=52, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='transceiver_attr', full_name='dmi.Component.transceiver_attr', index=23,
-      number=53, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-    _descriptor.OneofDescriptor(
-      name='specific', full_name='dmi.Component.specific',
-      index=0, containing_type=None,
-      create_key=_descriptor._internal_create_key,
-    fields=[]),
-  ],
-  serialized_start=2469,
-  serialized_end=3213,
-)
-
-
-_HARDWARE = _descriptor.Descriptor(
-  name='Hardware',
-  full_name='dmi.Hardware',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='last_change', full_name='dmi.Hardware.last_change', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='root', full_name='dmi.Hardware.root', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='last_booted', full_name='dmi.Hardware.last_booted', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3216,
-  serialized_end=3354,
-)
-
-
-_MODIFIABLECOMPONENT = _descriptor.Descriptor(
-  name='ModifiableComponent',
-  full_name='dmi.ModifiableComponent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='dmi.ModifiableComponent.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='class', full_name='dmi.ModifiableComponent.class', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='parent', full_name='dmi.ModifiableComponent.parent', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='parent_rel_pos', full_name='dmi.ModifiableComponent.parent_rel_pos', index=3,
-      number=4, type=5, cpp_type=1, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='alias', full_name='dmi.ModifiableComponent.alias', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='asset_id', full_name='dmi.ModifiableComponent.asset_id', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='uri', full_name='dmi.ModifiableComponent.uri', index=6,
-      number=7, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='admin_state', full_name='dmi.ModifiableComponent.admin_state', index=7,
-      number=8, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='port_attr', full_name='dmi.ModifiableComponent.port_attr', index=8,
-      number=50, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-    _descriptor.OneofDescriptor(
-      name='specific', full_name='dmi.ModifiableComponent.specific',
-      index=0, containing_type=None,
-      create_key=_descriptor._internal_create_key,
-    fields=[]),
-  ],
-  serialized_start=3357,
-  serialized_end=3655,
-)
-
-_HARDWAREID.fields_by_name['uuid'].message_type = _UUID
-_COMPONENTSTATE.fields_by_name['state_last_changed'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_COMPONENTSTATE.fields_by_name['admin_state'].enum_type = _COMPONENTADMINSTATE
-_COMPONENTSTATE.fields_by_name['oper_state'].enum_type = _COMPONENTOPERSTATE
-_COMPONENTSTATE.fields_by_name['usage_state'].enum_type = _COMPONENTUSAGESTATE
-_COMPONENTSTATE.fields_by_name['alarm_state'].enum_type = _COMPONENTALARMSTATE
-_COMPONENTSTATE.fields_by_name['standby_state'].enum_type = _COMPONENTSTANDBYSTATE
-_COMPONENTSENSORDATA.fields_by_name['type'].enum_type = _DATAVALUETYPE
-_COMPONENTSENSORDATA.fields_by_name['scale'].enum_type = _VALUESCALE
-_COMPONENTSENSORDATA.fields_by_name['status'].enum_type = _SENSORSTATUS
-_COMPONENTSENSORDATA.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_PORTCOMPONENTATTRIBUTES.fields_by_name['connector_type'].enum_type = _PORTCOMPONENTATTRIBUTES_CONNECTORTYPE
-_PORTCOMPONENTATTRIBUTES.fields_by_name['speed'].enum_type = _PORTCOMPONENTATTRIBUTES_SPEED
-_PORTCOMPONENTATTRIBUTES.fields_by_name['protocol'].enum_type = _PORTCOMPONENTATTRIBUTES_PROTOCOL
-_PORTCOMPONENTATTRIBUTES.fields_by_name['pon_id_config'].message_type = _PONIDCONFIG
-_PORTCOMPONENTATTRIBUTES_CONNECTORTYPE.containing_type = _PORTCOMPONENTATTRIBUTES
-_PORTCOMPONENTATTRIBUTES_SPEED.containing_type = _PORTCOMPONENTATTRIBUTES
-_PORTCOMPONENTATTRIBUTES_PROTOCOL.containing_type = _PORTCOMPONENTATTRIBUTES
-_PORTCOMPONENTCHANGEATTRIBUTES.fields_by_name['pon_id_config'].message_type = _PONIDCONFIG
-_PSUCOMPONENTATTRIBUTES.fields_by_name['supported_voltage'].enum_type = _PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE
-_PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE.containing_type = _PSUCOMPONENTATTRIBUTES
-_TRANSCEIVERCOMPONENTSATTRIBUTES.fields_by_name['form_factor'].enum_type = _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR
-_TRANSCEIVERCOMPONENTSATTRIBUTES.fields_by_name['trans_type'].enum_type = _TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE
-_TRANSCEIVERCOMPONENTSATTRIBUTES.fields_by_name['max_distance_scale'].enum_type = _VALUESCALE
-_TRANSCEIVERCOMPONENTSATTRIBUTES.fields_by_name['wavelength_scale'].enum_type = _VALUESCALE
-_TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR.containing_type = _TRANSCEIVERCOMPONENTSATTRIBUTES
-_TRANSCEIVERCOMPONENTSATTRIBUTES_TYPE.containing_type = _TRANSCEIVERCOMPONENTSATTRIBUTES
-_COMPONENT.fields_by_name['class'].enum_type = _COMPONENTTYPE
-_COMPONENT.fields_by_name['children'].message_type = _COMPONENT
-_COMPONENT.fields_by_name['mfg_date'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_COMPONENT.fields_by_name['uri'].message_type = _URI
-_COMPONENT.fields_by_name['uuid'].message_type = _UUID
-_COMPONENT.fields_by_name['state'].message_type = _COMPONENTSTATE
-_COMPONENT.fields_by_name['sensor_data'].message_type = _COMPONENTSENSORDATA
-_COMPONENT.fields_by_name['port_attr'].message_type = _PORTCOMPONENTATTRIBUTES
-_COMPONENT.fields_by_name['container_attr'].message_type = _CONTAINERCOMPONENTATTRIBUTES
-_COMPONENT.fields_by_name['psu_attr'].message_type = _PSUCOMPONENTATTRIBUTES
-_COMPONENT.fields_by_name['transceiver_attr'].message_type = _TRANSCEIVERCOMPONENTSATTRIBUTES
-_COMPONENT.oneofs_by_name['specific'].fields.append(
-  _COMPONENT.fields_by_name['port_attr'])
-_COMPONENT.fields_by_name['port_attr'].containing_oneof = _COMPONENT.oneofs_by_name['specific']
-_COMPONENT.oneofs_by_name['specific'].fields.append(
-  _COMPONENT.fields_by_name['container_attr'])
-_COMPONENT.fields_by_name['container_attr'].containing_oneof = _COMPONENT.oneofs_by_name['specific']
-_COMPONENT.oneofs_by_name['specific'].fields.append(
-  _COMPONENT.fields_by_name['psu_attr'])
-_COMPONENT.fields_by_name['psu_attr'].containing_oneof = _COMPONENT.oneofs_by_name['specific']
-_COMPONENT.oneofs_by_name['specific'].fields.append(
-  _COMPONENT.fields_by_name['transceiver_attr'])
-_COMPONENT.fields_by_name['transceiver_attr'].containing_oneof = _COMPONENT.oneofs_by_name['specific']
-_HARDWARE.fields_by_name['last_change'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_HARDWARE.fields_by_name['root'].message_type = _COMPONENT
-_HARDWARE.fields_by_name['last_booted'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
-_MODIFIABLECOMPONENT.fields_by_name['class'].enum_type = _COMPONENTTYPE
-_MODIFIABLECOMPONENT.fields_by_name['parent'].message_type = _COMPONENT
-_MODIFIABLECOMPONENT.fields_by_name['uri'].message_type = _URI
-_MODIFIABLECOMPONENT.fields_by_name['admin_state'].enum_type = _COMPONENTADMINSTATE
-_MODIFIABLECOMPONENT.fields_by_name['port_attr'].message_type = _PORTCOMPONENTCHANGEATTRIBUTES
-_MODIFIABLECOMPONENT.oneofs_by_name['specific'].fields.append(
-  _MODIFIABLECOMPONENT.fields_by_name['port_attr'])
-_MODIFIABLECOMPONENT.fields_by_name['port_attr'].containing_oneof = _MODIFIABLECOMPONENT.oneofs_by_name['specific']
-DESCRIPTOR.message_types_by_name['Uuid'] = _UUID
-DESCRIPTOR.message_types_by_name['HardwareID'] = _HARDWAREID
-DESCRIPTOR.message_types_by_name['Uri'] = _URI
-DESCRIPTOR.message_types_by_name['ComponentState'] = _COMPONENTSTATE
-DESCRIPTOR.message_types_by_name['ComponentSensorData'] = _COMPONENTSENSORDATA
-DESCRIPTOR.message_types_by_name['PortComponentAttributes'] = _PORTCOMPONENTATTRIBUTES
-DESCRIPTOR.message_types_by_name['PortComponentChangeAttributes'] = _PORTCOMPONENTCHANGEATTRIBUTES
-DESCRIPTOR.message_types_by_name['PonIdConfig'] = _PONIDCONFIG
-DESCRIPTOR.message_types_by_name['ContainerComponentAttributes'] = _CONTAINERCOMPONENTATTRIBUTES
-DESCRIPTOR.message_types_by_name['PsuComponentAttributes'] = _PSUCOMPONENTATTRIBUTES
-DESCRIPTOR.message_types_by_name['TransceiverComponentsAttributes'] = _TRANSCEIVERCOMPONENTSATTRIBUTES
-DESCRIPTOR.message_types_by_name['Component'] = _COMPONENT
-DESCRIPTOR.message_types_by_name['Hardware'] = _HARDWARE
-DESCRIPTOR.message_types_by_name['ModifiableComponent'] = _MODIFIABLECOMPONENT
-DESCRIPTOR.enum_types_by_name['ComponentType'] = _COMPONENTTYPE
-DESCRIPTOR.enum_types_by_name['ComponentAdminState'] = _COMPONENTADMINSTATE
-DESCRIPTOR.enum_types_by_name['ComponentOperState'] = _COMPONENTOPERSTATE
-DESCRIPTOR.enum_types_by_name['ComponentUsageState'] = _COMPONENTUSAGESTATE
-DESCRIPTOR.enum_types_by_name['ComponentAlarmState'] = _COMPONENTALARMSTATE
-DESCRIPTOR.enum_types_by_name['ComponentStandbyState'] = _COMPONENTSTANDBYSTATE
-DESCRIPTOR.enum_types_by_name['DataValueType'] = _DATAVALUETYPE
-DESCRIPTOR.enum_types_by_name['ValueScale'] = _VALUESCALE
-DESCRIPTOR.enum_types_by_name['SensorStatus'] = _SENSORSTATUS
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_UUID = DESCRIPTOR.message_types_by_name['Uuid']
+_HARDWAREID = DESCRIPTOR.message_types_by_name['HardwareID']
+_URI = DESCRIPTOR.message_types_by_name['Uri']
+_COMPONENTSTATE = DESCRIPTOR.message_types_by_name['ComponentState']
+_COMPONENTSENSORDATA = DESCRIPTOR.message_types_by_name['ComponentSensorData']
+_PORTCOMPONENTATTRIBUTES = DESCRIPTOR.message_types_by_name['PortComponentAttributes']
+_PORTCOMPONENTCHANGEATTRIBUTES = DESCRIPTOR.message_types_by_name['PortComponentChangeAttributes']
+_TRANSCEIVERCOMPONENTCHANGEATTRIBUTES = DESCRIPTOR.message_types_by_name['TransceiverComponentChangeAttributes']
+_PONIDCONFIG = DESCRIPTOR.message_types_by_name['PonIdConfig']
+_CONTAINERCOMPONENTATTRIBUTES = DESCRIPTOR.message_types_by_name['ContainerComponentAttributes']
+_PSUCOMPONENTATTRIBUTES = DESCRIPTOR.message_types_by_name['PsuComponentAttributes']
+_TRANSCEIVERCOMPONENTSATTRIBUTES = DESCRIPTOR.message_types_by_name['TransceiverComponentsAttributes']
+_COMPONENT = DESCRIPTOR.message_types_by_name['Component']
+_HARDWARE = DESCRIPTOR.message_types_by_name['Hardware']
+_MODIFIABLECOMPONENT = DESCRIPTOR.message_types_by_name['ModifiableComponent']
+_PORTCOMPONENTATTRIBUTES_CONNECTORTYPE = _PORTCOMPONENTATTRIBUTES.enum_types_by_name['ConnectorType']
+_PORTCOMPONENTATTRIBUTES_SPEED = _PORTCOMPONENTATTRIBUTES.enum_types_by_name['Speed']
+_PORTCOMPONENTATTRIBUTES_PROTOCOL = _PORTCOMPONENTATTRIBUTES.enum_types_by_name['Protocol']
+_PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE = _PSUCOMPONENTATTRIBUTES.enum_types_by_name['SupportedVoltage']
+_TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR = _TRANSCEIVERCOMPONENTSATTRIBUTES.enum_types_by_name['FormFactor']
 Uuid = _reflection.GeneratedProtocolMessageType('Uuid', (_message.Message,), {
   'DESCRIPTOR' : _UUID,
   '__module__' : 'dmi.hw_pb2'
@@ -2019,6 +199,13 @@
   })
 _sym_db.RegisterMessage(PortComponentChangeAttributes)
 
+TransceiverComponentChangeAttributes = _reflection.GeneratedProtocolMessageType('TransceiverComponentChangeAttributes', (_message.Message,), {
+  'DESCRIPTOR' : _TRANSCEIVERCOMPONENTCHANGEATTRIBUTES,
+  '__module__' : 'dmi.hw_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.TransceiverComponentChangeAttributes)
+  })
+_sym_db.RegisterMessage(TransceiverComponentChangeAttributes)
+
 PonIdConfig = _reflection.GeneratedProtocolMessageType('PonIdConfig', (_message.Message,), {
   'DESCRIPTOR' : _PONIDCONFIG,
   '__module__' : 'dmi.hw_pb2'
@@ -2068,6 +255,68 @@
   })
 _sym_db.RegisterMessage(ModifiableComponent)
 
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-DESCRIPTOR._options = None
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z9github.com/opencord/device-management-interface/v3/go/dmi'
+  _COMPONENTTYPE._serialized_start=3676
+  _COMPONENTTYPE._serialized_end=4112
+  _COMPONENTADMINSTATE._serialized_start=4115
+  _COMPONENTADMINSTATE._serialized_end=4294
+  _COMPONENTOPERSTATE._serialized_start=4297
+  _COMPONENTOPERSTATE._serialized_end=4465
+  _COMPONENTUSAGESTATE._serialized_start=4468
+  _COMPONENTUSAGESTATE._serialized_end=4634
+  _COMPONENTALARMSTATE._serialized_start=4637
+  _COMPONENTALARMSTATE._serialized_end=4908
+  _COMPONENTSTANDBYSTATE._serialized_start=4911
+  _COMPONENTSTANDBYSTATE._serialized_end=5099
+  _DATAVALUETYPE._serialized_start=5102
+  _DATAVALUETYPE._serialized_end=5495
+  _VALUESCALE._serialized_start=5498
+  _VALUESCALE._serialized_end=5918
+  _SENSORSTATUS._serialized_start=5921
+  _SENSORSTATUS._serialized_end=6051
+  _TRANSCEIVERTYPE._serialized_start=6054
+  _TRANSCEIVERTYPE._serialized_end=6195
+  _UUID._serialized_start=54
+  _UUID._serialized_end=74
+  _HARDWAREID._serialized_start=76
+  _HARDWAREID._serialized_end=113
+  _URI._serialized_start=115
+  _URI._serialized_end=133
+  _COMPONENTSTATE._serialized_start=136
+  _COMPONENTSTATE._serialized_end=445
+  _COMPONENTSENSORDATA._serialized_start=448
+  _COMPONENTSENSORDATA._serialized_end=720
+  _PORTCOMPONENTATTRIBUTES._serialized_start=723
+  _PORTCOMPONENTATTRIBUTES._serialized_end=1460
+  _PORTCOMPONENTATTRIBUTES_CONNECTORTYPE._serialized_start=1045
+  _PORTCOMPONENTATTRIBUTES_CONNECTORTYPE._serialized_end=1157
+  _PORTCOMPONENTATTRIBUTES_SPEED._serialized_start=1160
+  _PORTCOMPONENTATTRIBUTES_SPEED._serialized_end=1334
+  _PORTCOMPONENTATTRIBUTES_PROTOCOL._serialized_start=1336
+  _PORTCOMPONENTATTRIBUTES_PROTOCOL._serialized_end=1460
+  _PORTCOMPONENTCHANGEATTRIBUTES._serialized_start=1462
+  _PORTCOMPONENTCHANGEATTRIBUTES._serialized_end=1534
+  _TRANSCEIVERCOMPONENTCHANGEATTRIBUTES._serialized_start=1536
+  _TRANSCEIVERCOMPONENTCHANGEATTRIBUTES._serialized_end=1616
+  _PONIDCONFIG._serialized_start=1618
+  _PONIDCONFIG._serialized_end=1684
+  _CONTAINERCOMPONENTATTRIBUTES._serialized_start=1686
+  _CONTAINERCOMPONENTATTRIBUTES._serialized_end=1740
+  _PSUCOMPONENTATTRIBUTES._serialized_start=1743
+  _PSUCOMPONENTATTRIBUTES._serialized_end=1922
+  _PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE._serialized_start=1842
+  _PSUCOMPONENTATTRIBUTES_SUPPORTEDVOLTAGE._serialized_end=1922
+  _TRANSCEIVERCOMPONENTSATTRIBUTES._serialized_start=1925
+  _TRANSCEIVERCOMPONENTSATTRIBUTES._serialized_end=2421
+  _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR._serialized_start=2229
+  _TRANSCEIVERCOMPONENTSATTRIBUTES_FORMFACTOR._serialized_end=2421
+  _COMPONENT._serialized_start=2424
+  _COMPONENT._serialized_end=3168
+  _HARDWARE._serialized_start=3171
+  _HARDWARE._serialized_end=3309
+  _MODIFIABLECOMPONENT._serialized_start=3312
+  _MODIFIABLECOMPONENT._serialized_end=3673
 # @@protoc_insertion_point(module_scope)
diff --git a/python/dmi/sw_image_pb2.py b/python/dmi/sw_image_pb2.py
index 9b6f31f..28d6ef9 100644
--- a/python/dmi/sw_image_pb2.py
+++ b/python/dmi/sw_image_pb2.py
@@ -3,6 +3,7 @@
 # source: dmi/sw_image.proto
 """Generated protocol buffer code."""
 from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
 from google.protobuf import symbol_database as _symbol_database
@@ -14,303 +15,15 @@
 from dmi import commons_pb2 as dmi_dot_commons__pb2
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='dmi/sw_image.proto',
-  package='dmi',
-  syntax='proto3',
-  serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x12\x64mi/sw_image.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\"3\n\x0cImageVersion\x12\x12\n\nimage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"x\n\x10ImageInformation\x12 \n\x05image\x18\x01 \x01(\x0b\x32\x11.dmi.ImageVersion\x12\x1c\n\x14image_install_script\x18\x02 \x01(\t\x12\x11\n\timage_url\x18\x03 \x01(\t\x12\x11\n\tsha256sum\x18\x05 \x01(\t\"\xe2\x04\n\x0bImageStatus\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\'\n\x06reason\x18\x02 \x01(\x0e\x32\x17.dmi.ImageStatus.Reason\x12*\n\x05state\x18\x03 \x01(\x0e\x32\x1b.dmi.ImageStatus.ImageState\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"\xd0\x01\n\nImageState\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x11\n\rCOPYING_IMAGE\x10\x01\x12\x14\n\x10INSTALLING_IMAGE\x10\x02\x12\x14\n\x10\x43OMMITTING_IMAGE\x10\x03\x12\x14\n\x10REBOOTING_DEVICE\x10\x04\x12\x14\n\x10UPGRADE_COMPLETE\x10\x05\x12\x12\n\x0eUPGRADE_FAILED\x10\x06\x12\x17\n\x13\x41\x43TIVATION_COMPLETE\x10\x07\x12\x15\n\x11\x41\x43TIVATION_FAILED\x10\x08\"\xe1\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x14\n\x10\x45RROR_IN_REQUEST\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x19\n\x15\x44\x45VICE_IN_WRONG_STATE\x10\x03\x12\x11\n\rINVALID_IMAGE\x10\x04\x12\x18\n\x14WRONG_IMAGE_CHECKSUM\x10\x05\x12!\n\x1dOPERATION_ALREADY_IN_PROGRESS\x10\x06\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x07\x12\x18\n\x14\x44\x45VICE_NOT_REACHABLE\x10\x08\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
-  ,
-  dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12\x64mi/sw_image.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\"3\n\x0cImageVersion\x12\x12\n\nimage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"x\n\x10ImageInformation\x12 \n\x05image\x18\x01 \x01(\x0b\x32\x11.dmi.ImageVersion\x12\x1c\n\x14image_install_script\x18\x02 \x01(\t\x12\x11\n\timage_url\x18\x03 \x01(\t\x12\x11\n\tsha256sum\x18\x05 \x01(\t\"\xe2\x04\n\x0bImageStatus\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\'\n\x06reason\x18\x02 \x01(\x0e\x32\x17.dmi.ImageStatus.Reason\x12*\n\x05state\x18\x03 \x01(\x0e\x32\x1b.dmi.ImageStatus.ImageState\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"\xd0\x01\n\nImageState\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x11\n\rCOPYING_IMAGE\x10\x01\x12\x14\n\x10INSTALLING_IMAGE\x10\x02\x12\x14\n\x10\x43OMMITTING_IMAGE\x10\x03\x12\x14\n\x10REBOOTING_DEVICE\x10\x04\x12\x14\n\x10UPGRADE_COMPLETE\x10\x05\x12\x12\n\x0eUPGRADE_FAILED\x10\x06\x12\x17\n\x13\x41\x43TIVATION_COMPLETE\x10\x07\x12\x15\n\x11\x41\x43TIVATION_FAILED\x10\x08\"\xe1\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x14\n\x10\x45RROR_IN_REQUEST\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x19\n\x15\x44\x45VICE_IN_WRONG_STATE\x10\x03\x12\x11\n\rINVALID_IMAGE\x10\x04\x12\x18\n\x14WRONG_IMAGE_CHECKSUM\x10\x05\x12!\n\x1dOPERATION_ALREADY_IN_PROGRESS\x10\x06\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x07\x12\x18\n\x14\x44\x45VICE_NOT_REACHABLE\x10\x08\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
 
 
 
-_IMAGESTATUS_IMAGESTATE = _descriptor.EnumDescriptor(
-  name='ImageState',
-  full_name='dmi.ImageStatus.ImageState',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_STATE', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COPYING_IMAGE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INSTALLING_IMAGE', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='COMMITTING_IMAGE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='REBOOTING_DEVICE', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UPGRADE_COMPLETE', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UPGRADE_FAILED', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='ACTIVATION_COMPLETE', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='ACTIVATION_FAILED', index=8, number=8,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=396,
-  serialized_end=604,
-)
-_sym_db.RegisterEnumDescriptor(_IMAGESTATUS_IMAGESTATE)
-
-_IMAGESTATUS_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.ImageStatus.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='ERROR_IN_REQUEST', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_IN_WRONG_STATE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INVALID_IMAGE', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='WRONG_IMAGE_CHECKSUM', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='OPERATION_ALREADY_IN_PROGRESS', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=7, number=7,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_NOT_REACHABLE', index=8, number=8,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=607,
-  serialized_end=832,
-)
-_sym_db.RegisterEnumDescriptor(_IMAGESTATUS_REASON)
-
-
-_IMAGEVERSION = _descriptor.Descriptor(
-  name='ImageVersion',
-  full_name='dmi.ImageVersion',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='image_name', full_name='dmi.ImageVersion.image_name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='version', full_name='dmi.ImageVersion.version', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=46,
-  serialized_end=97,
-)
-
-
-_IMAGEINFORMATION = _descriptor.Descriptor(
-  name='ImageInformation',
-  full_name='dmi.ImageInformation',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='image', full_name='dmi.ImageInformation.image', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='image_install_script', full_name='dmi.ImageInformation.image_install_script', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='image_url', full_name='dmi.ImageInformation.image_url', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='sha256sum', full_name='dmi.ImageInformation.sha256sum', index=3,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=99,
-  serialized_end=219,
-)
-
-
-_IMAGESTATUS = _descriptor.Descriptor(
-  name='ImageStatus',
-  full_name='dmi.ImageStatus',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.ImageStatus.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.ImageStatus.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='state', full_name='dmi.ImageStatus.state', index=2,
-      number=3, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='dmi.ImageStatus.description', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.ImageStatus.reason_detail', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _IMAGESTATUS_IMAGESTATE,
-    _IMAGESTATUS_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=222,
-  serialized_end=832,
-)
-
-_IMAGEINFORMATION.fields_by_name['image'].message_type = _IMAGEVERSION
-_IMAGESTATUS.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_IMAGESTATUS.fields_by_name['reason'].enum_type = _IMAGESTATUS_REASON
-_IMAGESTATUS.fields_by_name['state'].enum_type = _IMAGESTATUS_IMAGESTATE
-_IMAGESTATUS_IMAGESTATE.containing_type = _IMAGESTATUS
-_IMAGESTATUS_REASON.containing_type = _IMAGESTATUS
-DESCRIPTOR.message_types_by_name['ImageVersion'] = _IMAGEVERSION
-DESCRIPTOR.message_types_by_name['ImageInformation'] = _IMAGEINFORMATION
-DESCRIPTOR.message_types_by_name['ImageStatus'] = _IMAGESTATUS
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_IMAGEVERSION = DESCRIPTOR.message_types_by_name['ImageVersion']
+_IMAGEINFORMATION = DESCRIPTOR.message_types_by_name['ImageInformation']
+_IMAGESTATUS = DESCRIPTOR.message_types_by_name['ImageStatus']
+_IMAGESTATUS_IMAGESTATE = _IMAGESTATUS.enum_types_by_name['ImageState']
+_IMAGESTATUS_REASON = _IMAGESTATUS.enum_types_by_name['Reason']
 ImageVersion = _reflection.GeneratedProtocolMessageType('ImageVersion', (_message.Message,), {
   'DESCRIPTOR' : _IMAGEVERSION,
   '__module__' : 'dmi.sw_image_pb2'
@@ -332,6 +45,18 @@
   })
 _sym_db.RegisterMessage(ImageStatus)
 
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-DESCRIPTOR._options = None
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z9github.com/opencord/device-management-interface/v3/go/dmi'
+  _IMAGEVERSION._serialized_start=46
+  _IMAGEVERSION._serialized_end=97
+  _IMAGEINFORMATION._serialized_start=99
+  _IMAGEINFORMATION._serialized_end=219
+  _IMAGESTATUS._serialized_start=222
+  _IMAGESTATUS._serialized_end=832
+  _IMAGESTATUS_IMAGESTATE._serialized_start=396
+  _IMAGESTATUS_IMAGESTATE._serialized_end=604
+  _IMAGESTATUS_REASON._serialized_start=607
+  _IMAGESTATUS_REASON._serialized_end=832
 # @@protoc_insertion_point(module_scope)
diff --git a/python/dmi/sw_management_service_pb2.py b/python/dmi/sw_management_service_pb2.py
index ff2d746..e06c03b 100644
--- a/python/dmi/sw_management_service_pb2.py
+++ b/python/dmi/sw_management_service_pb2.py
@@ -3,6 +3,7 @@
 # source: dmi/sw_management_service.proto
 """Generated protocol buffer code."""
 from google.protobuf import descriptor as _descriptor
+from google.protobuf import descriptor_pool as _descriptor_pool
 from google.protobuf import message as _message
 from google.protobuf import reflection as _reflection
 from google.protobuf import symbol_database as _symbol_database
@@ -16,474 +17,20 @@
 from dmi import sw_image_pb2 as dmi_dot_sw__image__pb2
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='dmi/sw_management_service.proto',
-  package='dmi',
-  syntax='proto3',
-  serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x1f\x64mi/sw_management_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\x1a\x12\x64mi/sw_image.proto\"u\n\x1aSoftwareVersionInformation\x12*\n\x0f\x61\x63tive_versions\x18\x01 \x03(\x0b\x32\x11.dmi.ImageVersion\x12+\n\x10standby_versions\x18\x02 \x03(\x0b\x32\x11.dmi.ImageVersion\"\xad\x02\n%GetSoftwareVersionInformationResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x41\n\x06reason\x18\x02 \x01(\x0e\x32\x31.dmi.GetSoftwareVersionInformationResponse.Reason\x12-\n\x04info\x18\x03 \x01(\x0b\x32\x1f.dmi.SoftwareVersionInformation\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"a\n\x14\x44ownloadImageRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12)\n\nimage_info\x18\x02 \x01(\x0b\x32\x15.dmi.ImageInformation\"C\n\rConfigRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12\x12\n\nconfig_url\x18\x02 \x01(\t\"\xa3\x02\n\x0e\x43onfigResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12*\n\x06reason\x18\x02 \x01(\x0e\x32\x1a.dmi.ConfigResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"\xb0\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x19\n\x15\x45RROR_FETCHING_CONFIG\x10\x03\x12\x12\n\x0eINVALID_CONFIG\x10\x04\x12!\n\x1dOPERATION_ALREADY_IN_PROGRESS\x10\x05\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x06\":\n\x18StartupConfigInfoRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x8b\x02\n\x19StartupConfigInfoResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x35\n\x06reason\x18\x02 \x01(\x0e\x32%.dmi.StartupConfigInfoResponse.Reason\x12\x12\n\nconfig_url\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\x32\xce\x03\n\x1fNativeSoftwareManagementService\x12Q\n\x12GetSoftwareVersion\x12\x0f.dmi.HardwareID\x1a*.dmi.GetSoftwareVersionInformationResponse\x12>\n\rDownloadImage\x12\x19.dmi.DownloadImageRequest\x1a\x10.dmi.ImageStatus0\x01\x12\x34\n\rActivateImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x12;\n\x14RevertToStandbyImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x12G\n\x1aUpdateStartupConfiguration\x12\x12.dmi.ConfigRequest\x1a\x13.dmi.ConfigResponse0\x01\x12\\\n\x1bGetStartupConfigurationInfo\x12\x1d.dmi.StartupConfigInfoRequest\x1a\x1e.dmi.StartupConfigInfoResponseB;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
-  ,
-  dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,dmi_dot_hw__pb2.DESCRIPTOR,dmi_dot_sw__image__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1f\x64mi/sw_management_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\x1a\x12\x64mi/sw_image.proto\"u\n\x1aSoftwareVersionInformation\x12*\n\x0f\x61\x63tive_versions\x18\x01 \x03(\x0b\x32\x11.dmi.ImageVersion\x12+\n\x10standby_versions\x18\x02 \x03(\x0b\x32\x11.dmi.ImageVersion\"\xad\x02\n%GetSoftwareVersionInformationResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x41\n\x06reason\x18\x02 \x01(\x0e\x32\x31.dmi.GetSoftwareVersionInformationResponse.Reason\x12-\n\x04info\x18\x03 \x01(\x0b\x32\x1f.dmi.SoftwareVersionInformation\x12\x15\n\rreason_detail\x18\x04 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\"a\n\x14\x44ownloadImageRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12)\n\nimage_info\x18\x02 \x01(\x0b\x32\x15.dmi.ImageInformation\"C\n\rConfigRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12\x12\n\nconfig_url\x18\x02 \x01(\t\"\xa3\x02\n\x0e\x43onfigResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12*\n\x06reason\x18\x02 \x01(\x0e\x32\x1a.dmi.ConfigResponse.Reason\x12\x15\n\rreason_detail\x18\x03 \x01(\t\"\xb0\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x19\n\x15\x45RROR_FETCHING_CONFIG\x10\x03\x12\x12\n\x0eINVALID_CONFIG\x10\x04\x12!\n\x1dOPERATION_ALREADY_IN_PROGRESS\x10\x05\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x06\":\n\x18StartupConfigInfoRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"\x8b\x02\n\x19StartupConfigInfoResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x35\n\x06reason\x18\x02 \x01(\x0e\x32%.dmi.StartupConfigInfoResponse.Reason\x12\x12\n\nconfig_url\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x15\n\rreason_detail\x18\x05 \x01(\t\"^\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x12\n\x0eUNKNOWN_DEVICE\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x16\n\x12\x44\x45VICE_UNREACHABLE\x10\x03\x32\xce\x03\n\x1fNativeSoftwareManagementService\x12Q\n\x12GetSoftwareVersion\x12\x0f.dmi.HardwareID\x1a*.dmi.GetSoftwareVersionInformationResponse\x12>\n\rDownloadImage\x12\x19.dmi.DownloadImageRequest\x1a\x10.dmi.ImageStatus0\x01\x12\x34\n\rActivateImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x12;\n\x14RevertToStandbyImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x12G\n\x1aUpdateStartupConfiguration\x12\x12.dmi.ConfigRequest\x1a\x13.dmi.ConfigResponse0\x01\x12\\\n\x1bGetStartupConfigurationInfo\x12\x1d.dmi.StartupConfigInfoRequest\x1a\x1e.dmi.StartupConfigInfoResponseB;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3')
 
 
 
-_GETSOFTWAREVERSIONINFORMATIONRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.GetSoftwareVersionInformationResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=420,
-  serialized_end=514,
-)
-_sym_db.RegisterEnumDescriptor(_GETSOFTWAREVERSIONINFORMATIONRESPONSE_REASON)
-
-_CONFIGRESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.ConfigResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='ERROR_FETCHING_CONFIG', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INVALID_CONFIG', index=4, number=4,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='OPERATION_ALREADY_IN_PROGRESS', index=5, number=5,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=6, number=6,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=800,
-  serialized_end=976,
-)
-_sym_db.RegisterEnumDescriptor(_CONFIGRESPONSE_REASON)
-
-_STARTUPCONFIGINFORESPONSE_REASON = _descriptor.EnumDescriptor(
-  name='Reason',
-  full_name='dmi.StartupConfigInfoResponse.Reason',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='UNDEFINED_REASON', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='UNKNOWN_DEVICE', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='INTERNAL_ERROR', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='DEVICE_UNREACHABLE', index=3, number=3,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=420,
-  serialized_end=514,
-)
-_sym_db.RegisterEnumDescriptor(_STARTUPCONFIGINFORESPONSE_REASON)
-
-
-_SOFTWAREVERSIONINFORMATION = _descriptor.Descriptor(
-  name='SoftwareVersionInformation',
-  full_name='dmi.SoftwareVersionInformation',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='active_versions', full_name='dmi.SoftwareVersionInformation.active_versions', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='standby_versions', full_name='dmi.SoftwareVersionInformation.standby_versions', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=93,
-  serialized_end=210,
-)
-
-
-_GETSOFTWAREVERSIONINFORMATIONRESPONSE = _descriptor.Descriptor(
-  name='GetSoftwareVersionInformationResponse',
-  full_name='dmi.GetSoftwareVersionInformationResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.GetSoftwareVersionInformationResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.GetSoftwareVersionInformationResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='info', full_name='dmi.GetSoftwareVersionInformationResponse.info', index=2,
-      number=3, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.GetSoftwareVersionInformationResponse.reason_detail', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _GETSOFTWAREVERSIONINFORMATIONRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=213,
-  serialized_end=514,
-)
-
-
-_DOWNLOADIMAGEREQUEST = _descriptor.Descriptor(
-  name='DownloadImageRequest',
-  full_name='dmi.DownloadImageRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.DownloadImageRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='image_info', full_name='dmi.DownloadImageRequest.image_info', index=1,
-      number=2, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=516,
-  serialized_end=613,
-)
-
-
-_CONFIGREQUEST = _descriptor.Descriptor(
-  name='ConfigRequest',
-  full_name='dmi.ConfigRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.ConfigRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='config_url', full_name='dmi.ConfigRequest.config_url', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=615,
-  serialized_end=682,
-)
-
-
-_CONFIGRESPONSE = _descriptor.Descriptor(
-  name='ConfigResponse',
-  full_name='dmi.ConfigResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.ConfigResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.ConfigResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.ConfigResponse.reason_detail', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _CONFIGRESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=685,
-  serialized_end=976,
-)
-
-
-_STARTUPCONFIGINFOREQUEST = _descriptor.Descriptor(
-  name='StartupConfigInfoRequest',
-  full_name='dmi.StartupConfigInfoRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='device_uuid', full_name='dmi.StartupConfigInfoRequest.device_uuid', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=978,
-  serialized_end=1036,
-)
-
-
-_STARTUPCONFIGINFORESPONSE = _descriptor.Descriptor(
-  name='StartupConfigInfoResponse',
-  full_name='dmi.StartupConfigInfoResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='status', full_name='dmi.StartupConfigInfoResponse.status', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason', full_name='dmi.StartupConfigInfoResponse.reason', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='config_url', full_name='dmi.StartupConfigInfoResponse.config_url', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='version', full_name='dmi.StartupConfigInfoResponse.version', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='reason_detail', full_name='dmi.StartupConfigInfoResponse.reason_detail', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _STARTUPCONFIGINFORESPONSE_REASON,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1039,
-  serialized_end=1306,
-)
-
-_SOFTWAREVERSIONINFORMATION.fields_by_name['active_versions'].message_type = dmi_dot_sw__image__pb2._IMAGEVERSION
-_SOFTWAREVERSIONINFORMATION.fields_by_name['standby_versions'].message_type = dmi_dot_sw__image__pb2._IMAGEVERSION
-_GETSOFTWAREVERSIONINFORMATIONRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_GETSOFTWAREVERSIONINFORMATIONRESPONSE.fields_by_name['reason'].enum_type = _GETSOFTWAREVERSIONINFORMATIONRESPONSE_REASON
-_GETSOFTWAREVERSIONINFORMATIONRESPONSE.fields_by_name['info'].message_type = _SOFTWAREVERSIONINFORMATION
-_GETSOFTWAREVERSIONINFORMATIONRESPONSE_REASON.containing_type = _GETSOFTWAREVERSIONINFORMATIONRESPONSE
-_DOWNLOADIMAGEREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_DOWNLOADIMAGEREQUEST.fields_by_name['image_info'].message_type = dmi_dot_sw__image__pb2._IMAGEINFORMATION
-_CONFIGREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_CONFIGRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_CONFIGRESPONSE.fields_by_name['reason'].enum_type = _CONFIGRESPONSE_REASON
-_CONFIGRESPONSE_REASON.containing_type = _CONFIGRESPONSE
-_STARTUPCONFIGINFOREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
-_STARTUPCONFIGINFORESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
-_STARTUPCONFIGINFORESPONSE.fields_by_name['reason'].enum_type = _STARTUPCONFIGINFORESPONSE_REASON
-_STARTUPCONFIGINFORESPONSE_REASON.containing_type = _STARTUPCONFIGINFORESPONSE
-DESCRIPTOR.message_types_by_name['SoftwareVersionInformation'] = _SOFTWAREVERSIONINFORMATION
-DESCRIPTOR.message_types_by_name['GetSoftwareVersionInformationResponse'] = _GETSOFTWAREVERSIONINFORMATIONRESPONSE
-DESCRIPTOR.message_types_by_name['DownloadImageRequest'] = _DOWNLOADIMAGEREQUEST
-DESCRIPTOR.message_types_by_name['ConfigRequest'] = _CONFIGREQUEST
-DESCRIPTOR.message_types_by_name['ConfigResponse'] = _CONFIGRESPONSE
-DESCRIPTOR.message_types_by_name['StartupConfigInfoRequest'] = _STARTUPCONFIGINFOREQUEST
-DESCRIPTOR.message_types_by_name['StartupConfigInfoResponse'] = _STARTUPCONFIGINFORESPONSE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
+_SOFTWAREVERSIONINFORMATION = DESCRIPTOR.message_types_by_name['SoftwareVersionInformation']
+_GETSOFTWAREVERSIONINFORMATIONRESPONSE = DESCRIPTOR.message_types_by_name['GetSoftwareVersionInformationResponse']
+_DOWNLOADIMAGEREQUEST = DESCRIPTOR.message_types_by_name['DownloadImageRequest']
+_CONFIGREQUEST = DESCRIPTOR.message_types_by_name['ConfigRequest']
+_CONFIGRESPONSE = DESCRIPTOR.message_types_by_name['ConfigResponse']
+_STARTUPCONFIGINFOREQUEST = DESCRIPTOR.message_types_by_name['StartupConfigInfoRequest']
+_STARTUPCONFIGINFORESPONSE = DESCRIPTOR.message_types_by_name['StartupConfigInfoResponse']
+_GETSOFTWAREVERSIONINFORMATIONRESPONSE_REASON = _GETSOFTWAREVERSIONINFORMATIONRESPONSE.enum_types_by_name['Reason']
+_CONFIGRESPONSE_REASON = _CONFIGRESPONSE.enum_types_by_name['Reason']
+_STARTUPCONFIGINFORESPONSE_REASON = _STARTUPCONFIGINFORESPONSE.enum_types_by_name['Reason']
 SoftwareVersionInformation = _reflection.GeneratedProtocolMessageType('SoftwareVersionInformation', (_message.Message,), {
   'DESCRIPTOR' : _SOFTWAREVERSIONINFORMATION,
   '__module__' : 'dmi.sw_management_service_pb2'
@@ -533,82 +80,31 @@
   })
 _sym_db.RegisterMessage(StartupConfigInfoResponse)
 
+_NATIVESOFTWAREMANAGEMENTSERVICE = DESCRIPTOR.services_by_name['NativeSoftwareManagementService']
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-DESCRIPTOR._options = None
-
-_NATIVESOFTWAREMANAGEMENTSERVICE = _descriptor.ServiceDescriptor(
-  name='NativeSoftwareManagementService',
-  full_name='dmi.NativeSoftwareManagementService',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=1309,
-  serialized_end=1771,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='GetSoftwareVersion',
-    full_name='dmi.NativeSoftwareManagementService.GetSoftwareVersion',
-    index=0,
-    containing_service=None,
-    input_type=dmi_dot_hw__pb2._HARDWAREID,
-    output_type=_GETSOFTWAREVERSIONINFORMATIONRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='DownloadImage',
-    full_name='dmi.NativeSoftwareManagementService.DownloadImage',
-    index=1,
-    containing_service=None,
-    input_type=_DOWNLOADIMAGEREQUEST,
-    output_type=dmi_dot_sw__image__pb2._IMAGESTATUS,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ActivateImage',
-    full_name='dmi.NativeSoftwareManagementService.ActivateImage',
-    index=2,
-    containing_service=None,
-    input_type=dmi_dot_hw__pb2._HARDWAREID,
-    output_type=dmi_dot_sw__image__pb2._IMAGESTATUS,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='RevertToStandbyImage',
-    full_name='dmi.NativeSoftwareManagementService.RevertToStandbyImage',
-    index=3,
-    containing_service=None,
-    input_type=dmi_dot_hw__pb2._HARDWAREID,
-    output_type=dmi_dot_sw__image__pb2._IMAGESTATUS,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateStartupConfiguration',
-    full_name='dmi.NativeSoftwareManagementService.UpdateStartupConfiguration',
-    index=4,
-    containing_service=None,
-    input_type=_CONFIGREQUEST,
-    output_type=_CONFIGRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetStartupConfigurationInfo',
-    full_name='dmi.NativeSoftwareManagementService.GetStartupConfigurationInfo',
-    index=5,
-    containing_service=None,
-    input_type=_STARTUPCONFIGINFOREQUEST,
-    output_type=_STARTUPCONFIGINFORESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_NATIVESOFTWAREMANAGEMENTSERVICE)
-
-DESCRIPTOR.services_by_name['NativeSoftwareManagementService'] = _NATIVESOFTWAREMANAGEMENTSERVICE
-
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z9github.com/opencord/device-management-interface/v3/go/dmi'
+  _SOFTWAREVERSIONINFORMATION._serialized_start=93
+  _SOFTWAREVERSIONINFORMATION._serialized_end=210
+  _GETSOFTWAREVERSIONINFORMATIONRESPONSE._serialized_start=213
+  _GETSOFTWAREVERSIONINFORMATIONRESPONSE._serialized_end=514
+  _GETSOFTWAREVERSIONINFORMATIONRESPONSE_REASON._serialized_start=420
+  _GETSOFTWAREVERSIONINFORMATIONRESPONSE_REASON._serialized_end=514
+  _DOWNLOADIMAGEREQUEST._serialized_start=516
+  _DOWNLOADIMAGEREQUEST._serialized_end=613
+  _CONFIGREQUEST._serialized_start=615
+  _CONFIGREQUEST._serialized_end=682
+  _CONFIGRESPONSE._serialized_start=685
+  _CONFIGRESPONSE._serialized_end=976
+  _CONFIGRESPONSE_REASON._serialized_start=800
+  _CONFIGRESPONSE_REASON._serialized_end=976
+  _STARTUPCONFIGINFOREQUEST._serialized_start=978
+  _STARTUPCONFIGINFOREQUEST._serialized_end=1036
+  _STARTUPCONFIGINFORESPONSE._serialized_start=1039
+  _STARTUPCONFIGINFORESPONSE._serialized_end=1306
+  _STARTUPCONFIGINFORESPONSE_REASON._serialized_start=420
+  _STARTUPCONFIGINFORESPONSE_REASON._serialized_end=514
+  _NATIVESOFTWAREMANAGEMENTSERVICE._serialized_start=1309
+  _NATIVESOFTWAREMANAGEMENTSERVICE._serialized_end=1771
 # @@protoc_insertion_point(module_scope)