diff --git a/VERSION b/VERSION
index 930e300..a551051 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.14.1
+0.15.0
diff --git a/cpp/dmi/hw_events_mgmt_service.grpc.pb.cc b/cpp/dmi/hw_events_mgmt_service.grpc.pb.cc
index 450a295..7168f79 100644
--- a/cpp/dmi/hw_events_mgmt_service.grpc.pb.cc
+++ b/cpp/dmi/hw_events_mgmt_service.grpc.pb.cc
@@ -24,6 +24,7 @@
 static const char* NativeEventsManagementService_method_names[] = {
   "/dmi.NativeEventsManagementService/ListEvents",
   "/dmi.NativeEventsManagementService/UpdateEventsConfiguration",
+  "/dmi.NativeEventsManagementService/StreamEvents",
 };
 
 std::unique_ptr< NativeEventsManagementService::Stub> NativeEventsManagementService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
@@ -35,6 +36,7 @@
 NativeEventsManagementService::Stub::Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel)
   : channel_(channel), rpcmethod_ListEvents_(NativeEventsManagementService_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
   , rpcmethod_UpdateEventsConfiguration_(NativeEventsManagementService_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_StreamEvents_(NativeEventsManagementService_method_names[2], ::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
   {}
 
 ::grpc::Status NativeEventsManagementService::Stub::ListEvents(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::dmi::ListEventsResponse* response) {
@@ -93,6 +95,22 @@
   return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::dmi::EventsConfigurationResponse>::Create(channel_.get(), cq, rpcmethod_UpdateEventsConfiguration_, context, request, false);
 }
 
+::grpc::ClientReader< ::dmi::Event>* NativeEventsManagementService::Stub::StreamEventsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
+  return ::grpc_impl::internal::ClientReaderFactory< ::dmi::Event>::Create(channel_.get(), rpcmethod_StreamEvents_, context, request);
+}
+
+void NativeEventsManagementService::Stub::experimental_async::StreamEvents(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::experimental::ClientReadReactor< ::dmi::Event>* reactor) {
+  ::grpc_impl::internal::ClientCallbackReaderFactory< ::dmi::Event>::Create(stub_->channel_.get(), stub_->rpcmethod_StreamEvents_, context, request, reactor);
+}
+
+::grpc::ClientAsyncReader< ::dmi::Event>* NativeEventsManagementService::Stub::AsyncStreamEventsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
+  return ::grpc_impl::internal::ClientAsyncReaderFactory< ::dmi::Event>::Create(channel_.get(), cq, rpcmethod_StreamEvents_, context, request, true, tag);
+}
+
+::grpc::ClientAsyncReader< ::dmi::Event>* NativeEventsManagementService::Stub::PrepareAsyncStreamEventsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc_impl::internal::ClientAsyncReaderFactory< ::dmi::Event>::Create(channel_.get(), cq, rpcmethod_StreamEvents_, context, request, false, nullptr);
+}
+
 NativeEventsManagementService::Service::Service() {
   AddMethod(new ::grpc::internal::RpcServiceMethod(
       NativeEventsManagementService_method_names[0],
@@ -114,6 +132,16 @@
              ::dmi::EventsConfigurationResponse* resp) {
                return service->UpdateEventsConfiguration(ctx, req, resp);
              }, this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      NativeEventsManagementService_method_names[2],
+      ::grpc::internal::RpcMethod::SERVER_STREAMING,
+      new ::grpc::internal::ServerStreamingHandler< NativeEventsManagementService::Service, ::google::protobuf::Empty, ::dmi::Event>(
+          [](NativeEventsManagementService::Service* service,
+             ::grpc_impl::ServerContext* ctx,
+             const ::google::protobuf::Empty* req,
+             ::grpc_impl::ServerWriter<::dmi::Event>* writer) {
+               return service->StreamEvents(ctx, req, writer);
+             }, this)));
 }
 
 NativeEventsManagementService::Service::~Service() {
@@ -133,6 +161,13 @@
   return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
 }
 
+::grpc::Status NativeEventsManagementService::Service::StreamEvents(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::dmi::Event>* writer) {
+  (void) context;
+  (void) request;
+  (void) writer;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
 
 }  // namespace dmi
 
diff --git a/cpp/dmi/hw_events_mgmt_service.grpc.pb.h b/cpp/dmi/hw_events_mgmt_service.grpc.pb.h
index b6877d1..d247295 100644
--- a/cpp/dmi/hw_events_mgmt_service.grpc.pb.h
+++ b/cpp/dmi/hw_events_mgmt_service.grpc.pb.h
@@ -54,6 +54,16 @@
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::EventsConfigurationResponse>> PrepareAsyncUpdateEventsConfiguration(::grpc::ClientContext* context, const ::dmi::EventsConfigurationRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::EventsConfigurationResponse>>(PrepareAsyncUpdateEventsConfigurationRaw(context, request, cq));
     }
+    // Initiate the server streaming of the events
+    std::unique_ptr< ::grpc::ClientReaderInterface< ::dmi::Event>> StreamEvents(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
+      return std::unique_ptr< ::grpc::ClientReaderInterface< ::dmi::Event>>(StreamEventsRaw(context, request));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Event>> AsyncStreamEvents(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Event>>(AsyncStreamEventsRaw(context, request, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Event>> PrepareAsyncStreamEvents(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Event>>(PrepareAsyncStreamEventsRaw(context, request, cq));
+    }
     class experimental_async_interface {
      public:
       virtual ~experimental_async_interface() {}
@@ -85,6 +95,12 @@
       #else
       virtual void UpdateEventsConfiguration(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::dmi::EventsConfigurationResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
       #endif
+      // Initiate the server streaming of the events
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      virtual void StreamEvents(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::ClientReadReactor< ::dmi::Event>* reactor) = 0;
+      #else
+      virtual void StreamEvents(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::experimental::ClientReadReactor< ::dmi::Event>* reactor) = 0;
+      #endif
     };
     #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
     typedef class experimental_async_interface async_interface;
@@ -98,6 +114,9 @@
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::dmi::ListEventsResponse>* PrepareAsyncListEventsRaw(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::dmi::EventsConfigurationResponse>* AsyncUpdateEventsConfigurationRaw(::grpc::ClientContext* context, const ::dmi::EventsConfigurationRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::dmi::EventsConfigurationResponse>* PrepareAsyncUpdateEventsConfigurationRaw(::grpc::ClientContext* context, const ::dmi::EventsConfigurationRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientReaderInterface< ::dmi::Event>* StreamEventsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) = 0;
+    virtual ::grpc::ClientAsyncReaderInterface< ::dmi::Event>* AsyncStreamEventsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
+    virtual ::grpc::ClientAsyncReaderInterface< ::dmi::Event>* PrepareAsyncStreamEventsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   };
   class Stub final : public StubInterface {
    public:
@@ -116,6 +135,15 @@
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::EventsConfigurationResponse>> PrepareAsyncUpdateEventsConfiguration(::grpc::ClientContext* context, const ::dmi::EventsConfigurationRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::EventsConfigurationResponse>>(PrepareAsyncUpdateEventsConfigurationRaw(context, request, cq));
     }
+    std::unique_ptr< ::grpc::ClientReader< ::dmi::Event>> StreamEvents(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
+      return std::unique_ptr< ::grpc::ClientReader< ::dmi::Event>>(StreamEventsRaw(context, request));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Event>> AsyncStreamEvents(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Event>>(AsyncStreamEventsRaw(context, request, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Event>> PrepareAsyncStreamEvents(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Event>>(PrepareAsyncStreamEventsRaw(context, request, cq));
+    }
     class experimental_async final :
       public StubInterface::experimental_async_interface {
      public:
@@ -143,6 +171,11 @@
       #else
       void UpdateEventsConfiguration(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::dmi::EventsConfigurationResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;
       #endif
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      void StreamEvents(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::ClientReadReactor< ::dmi::Event>* reactor) override;
+      #else
+      void StreamEvents(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::experimental::ClientReadReactor< ::dmi::Event>* reactor) override;
+      #endif
      private:
       friend class Stub;
       explicit experimental_async(Stub* stub): stub_(stub) { }
@@ -158,8 +191,12 @@
     ::grpc::ClientAsyncResponseReader< ::dmi::ListEventsResponse>* PrepareAsyncListEventsRaw(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::dmi::EventsConfigurationResponse>* AsyncUpdateEventsConfigurationRaw(::grpc::ClientContext* context, const ::dmi::EventsConfigurationRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::dmi::EventsConfigurationResponse>* PrepareAsyncUpdateEventsConfigurationRaw(::grpc::ClientContext* context, const ::dmi::EventsConfigurationRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientReader< ::dmi::Event>* StreamEventsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) override;
+    ::grpc::ClientAsyncReader< ::dmi::Event>* AsyncStreamEventsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) override;
+    ::grpc::ClientAsyncReader< ::dmi::Event>* PrepareAsyncStreamEventsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) override;
     const ::grpc::internal::RpcMethod rpcmethod_ListEvents_;
     const ::grpc::internal::RpcMethod rpcmethod_UpdateEventsConfiguration_;
+    const ::grpc::internal::RpcMethod rpcmethod_StreamEvents_;
   };
   static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
 
@@ -173,6 +210,8 @@
     // The default behavior of the device is to report all the supported events
     // This configuration is persisted across reboots of the device or the device manager
     virtual ::grpc::Status UpdateEventsConfiguration(::grpc::ServerContext* context, const ::dmi::EventsConfigurationRequest* request, ::dmi::EventsConfigurationResponse* response);
+    // Initiate the server streaming of the events
+    virtual ::grpc::Status StreamEvents(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::dmi::Event>* writer);
   };
   template <class BaseClass>
   class WithAsyncMethod_ListEvents : public BaseClass {
@@ -214,7 +253,27 @@
       ::grpc::Service::RequestAsyncUnary(1, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
-  typedef WithAsyncMethod_ListEvents<WithAsyncMethod_UpdateEventsConfiguration<Service > > AsyncService;
+  template <class BaseClass>
+  class WithAsyncMethod_StreamEvents : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_StreamEvents() {
+      ::grpc::Service::MarkMethodAsync(2);
+    }
+    ~WithAsyncMethod_StreamEvents() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamEvents(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Event>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestStreamEvents(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncWriter< ::dmi::Event>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncServerStreaming(2, context, request, writer, new_call_cq, notification_cq, tag);
+    }
+  };
+  typedef WithAsyncMethod_ListEvents<WithAsyncMethod_UpdateEventsConfiguration<WithAsyncMethod_StreamEvents<Service > > > AsyncService;
   template <class BaseClass>
   class ExperimentalWithCallbackMethod_ListEvents : public BaseClass {
    private:
@@ -309,11 +368,49 @@
     #endif
       { return nullptr; }
   };
+  template <class BaseClass>
+  class ExperimentalWithCallbackMethod_StreamEvents : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithCallbackMethod_StreamEvents() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodCallback(2,
+          new ::grpc_impl::internal::CallbackServerStreamingHandler< ::google::protobuf::Empty, ::dmi::Event>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::google::protobuf::Empty* request) { return this->StreamEvents(context, request); }));
+    }
+    ~ExperimentalWithCallbackMethod_StreamEvents() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamEvents(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Event>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerWriteReactor< ::dmi::Event>* StreamEvents(
+      ::grpc::CallbackServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/)
+    #else
+    virtual ::grpc::experimental::ServerWriteReactor< ::dmi::Event>* StreamEvents(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/)
+    #endif
+      { return nullptr; }
+  };
   #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
-  typedef ExperimentalWithCallbackMethod_ListEvents<ExperimentalWithCallbackMethod_UpdateEventsConfiguration<Service > > CallbackService;
+  typedef ExperimentalWithCallbackMethod_ListEvents<ExperimentalWithCallbackMethod_UpdateEventsConfiguration<ExperimentalWithCallbackMethod_StreamEvents<Service > > > CallbackService;
   #endif
 
-  typedef ExperimentalWithCallbackMethod_ListEvents<ExperimentalWithCallbackMethod_UpdateEventsConfiguration<Service > > ExperimentalCallbackService;
+  typedef ExperimentalWithCallbackMethod_ListEvents<ExperimentalWithCallbackMethod_UpdateEventsConfiguration<ExperimentalWithCallbackMethod_StreamEvents<Service > > > ExperimentalCallbackService;
   template <class BaseClass>
   class WithGenericMethod_ListEvents : public BaseClass {
    private:
@@ -349,6 +446,23 @@
     }
   };
   template <class BaseClass>
+  class WithGenericMethod_StreamEvents : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_StreamEvents() {
+      ::grpc::Service::MarkMethodGeneric(2);
+    }
+    ~WithGenericMethod_StreamEvents() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamEvents(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Event>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
   class WithRawMethod_ListEvents : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
@@ -389,6 +503,26 @@
     }
   };
   template <class BaseClass>
+  class WithRawMethod_StreamEvents : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_StreamEvents() {
+      ::grpc::Service::MarkMethodRaw(2);
+    }
+    ~WithRawMethod_StreamEvents() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamEvents(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Event>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestStreamEvents(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncServerStreaming(2, context, request, writer, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
   class ExperimentalWithRawCallbackMethod_ListEvents : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
@@ -465,6 +599,44 @@
       { return nullptr; }
   };
   template <class BaseClass>
+  class ExperimentalWithRawCallbackMethod_StreamEvents : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithRawCallbackMethod_StreamEvents() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodRawCallback(2,
+          new ::grpc_impl::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const::grpc::ByteBuffer* request) { return this->StreamEvents(context, request); }));
+    }
+    ~ExperimentalWithRawCallbackMethod_StreamEvents() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamEvents(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Event>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* StreamEvents(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)
+    #else
+    virtual ::grpc::experimental::ServerWriteReactor< ::grpc::ByteBuffer>* StreamEvents(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)
+    #endif
+      { return nullptr; }
+  };
+  template <class BaseClass>
   class WithStreamedUnaryMethod_ListEvents : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
@@ -519,8 +691,35 @@
     virtual ::grpc::Status StreamedUpdateEventsConfiguration(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::dmi::EventsConfigurationRequest,::dmi::EventsConfigurationResponse>* server_unary_streamer) = 0;
   };
   typedef WithStreamedUnaryMethod_ListEvents<WithStreamedUnaryMethod_UpdateEventsConfiguration<Service > > StreamedUnaryService;
-  typedef Service SplitStreamedService;
-  typedef WithStreamedUnaryMethod_ListEvents<WithStreamedUnaryMethod_UpdateEventsConfiguration<Service > > StreamedService;
+  template <class BaseClass>
+  class WithSplitStreamingMethod_StreamEvents : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithSplitStreamingMethod_StreamEvents() {
+      ::grpc::Service::MarkMethodStreamed(2,
+        new ::grpc::internal::SplitServerStreamingHandler<
+          ::google::protobuf::Empty, ::dmi::Event>(
+            [this](::grpc_impl::ServerContext* context,
+                   ::grpc_impl::ServerSplitStreamer<
+                     ::google::protobuf::Empty, ::dmi::Event>* streamer) {
+                       return this->StreamedStreamEvents(context,
+                         streamer);
+                  }));
+    }
+    ~WithSplitStreamingMethod_StreamEvents() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status StreamEvents(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Event>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with split streamed
+    virtual ::grpc::Status StreamedStreamEvents(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::google::protobuf::Empty,::dmi::Event>* server_split_streamer) = 0;
+  };
+  typedef WithSplitStreamingMethod_StreamEvents<Service > SplitStreamedService;
+  typedef WithStreamedUnaryMethod_ListEvents<WithStreamedUnaryMethod_UpdateEventsConfiguration<WithSplitStreamingMethod_StreamEvents<Service > > > StreamedService;
 };
 
 }  // namespace dmi
diff --git a/cpp/dmi/hw_events_mgmt_service.pb.cc b/cpp/dmi/hw_events_mgmt_service.pb.cc
index 4f856f0..28a38bc 100644
--- a/cpp/dmi/hw_events_mgmt_service.pb.cc
+++ b/cpp/dmi/hw_events_mgmt_service.pb.cc
@@ -391,112 +391,115 @@
 const char descriptor_table_protodef_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto[] =
   "\n dmi/hw_events_mgmt_service.proto\022\003dmi\032"
   "\021dmi/commons.proto\032\014dmi/hw.proto\032\037google"
-  "/protobuf/timestamp.proto\"N\n\tValueType\022\021"
-  "\n\007int_val\030\001 \001(\003H\000\022\022\n\010uint_val\030\002 \001(\004H\000\022\023\n"
-  "\tfloat_val\030\003 \001(\002H\000B\005\n\003val\"G\n\nWaterMarks\022"
-  "\034\n\004high\030\001 \001(\0132\016.dmi.ValueType\022\033\n\003low\030\002 \001"
-  "(\0132\016.dmi.ValueType\"]\n\nThresholds\022 \n\005uppe"
-  "r\030\001 \001(\0132\017.dmi.WaterMarksH\000\022 \n\005lower\030\002 \001("
-  "\0132\017.dmi.WaterMarksH\000B\013\n\tthreshold\"c\n\024Thr"
-  "esholdInformation\022&\n\016observed_value\030\001 \001("
-  "\0132\016.dmi.ValueType\022#\n\nthresholds\030\002 \001(\0132\017."
-  "dmi.Thresholds\"g\n\010EventCfg\022\037\n\010event_id\030\001"
-  " \001(\0162\r.dmi.EventIds\022\025\n\ris_configured\030\002 \001"
-  "(\010\022#\n\nthresholds\030\003 \001(\0132\017.dmi.Thresholds\""
-  ")\n\tEventsCfg\022\034\n\005items\030\001 \003(\0132\r.dmi.EventC"
-  "fg\"\370\001\n\022ListEventsResponse\022\033\n\006status\030\001 \001("
-  "\0162\013.dmi.Status\022.\n\006reason\030\002 \001(\0162\036.dmi.Lis"
-  "tEventsResponse.Reason\022\036\n\006events\030\003 \001(\0132\016"
-  ".dmi.EventsCfg\022\025\n\rreason_detail\030\004 \001(\t\"^\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\022DEVICE_"
-  "UNREACHABLE\020\003\"\210\001\n\032EventsConfigurationReq"
-  "uest\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\022!\n\007"
-  "changes\030\002 \001(\0132\016.dmi.EventsCfgH\000\022\032\n\020reset"
-  "_to_default\030\003 \001(\010H\000B\013\n\toperation\"\376\001\n\033Eve"
-  "ntsConfigurationResponse\022\033\n\006status\030\001 \001(\016"
-  "2\013.dmi.Status\0227\n\006reason\030\002 \001(\0162\'.dmi.Even"
-  "tsConfigurationResponse.Reason\022\025\n\rreason"
-  "_detail\030\003 \001(\t\"r\n\006Reason\022\024\n\020UNDEFINED_REA"
-  "SON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ER"
-  "ROR\020\002\022\022\n\016INVALID_CONFIG\020\003\022\026\n\022DEVICE_UNRE"
-  "ACHABLE\020\004\"j\n\rEventMetaData\022\036\n\013device_uui"
-  "d\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\"\310\001"
-  "\n\005Event\022*\n\016event_metadata\030\001 \001(\0132\022.dmi.Ev"
-  "entMetaData\022\037\n\010event_id\030\002 \001(\0162\r.dmi.Even"
-  "tIds\022-\n\traised_ts\030\003 \001(\0132\032.google.protobu"
-  "f.Timestamp\0221\n\016threshold_info\030\004 \001(\0132\031.dm"
-  "i.ThresholdInformation\022\020\n\010add_info\030\005 \001(\t"
-  "*\321\016\n\010EventIds\022\030\n\024EVENT_NAME_UNDEFINED\020\000\022"
-  "\036\n\032EVENT_TRANSCEIVER_PLUG_OUT\020d\022\035\n\031EVENT"
-  "_TRANSCEIVER_PLUG_IN\020e\022-\n)EVENT_TRANSCEI"
-  "VER_VOLTAGE_ABOVE_THRESHOLD\020f\022-\n)EVENT_T"
-  "RANSCEIVER_VOLTAGE_BELOW_THRESHOLD\020g\0221\n-"
-  "EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_THRE"
-  "SHOLD\020h\0221\n-EVENT_TRANSCEIVER_TEMPERATURE"
-  "_BELOW_THRESHOLD\020i\022-\n)EVENT_TRANSCEIVER_"
-  "CURRENT_ABOVE_THRESHOLD\020j\022-\n)EVENT_TRANS"
-  "CEIVER_CURRENT_BELOW_THRESHOLD\020k\022.\n*EVEN"
-  "T_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD\020l"
-  "\022.\n*EVENT_TRANSCEIVER_RX_POWER_BELOW_THR"
-  "ESHOLD\020m\022.\n*EVENT_TRANSCEIVER_TX_POWER_A"
-  "BOVE_THRESHOLD\020n\022.\n*EVENT_TRANSCEIVER_TX"
-  "_POWER_BELOW_THRESHOLD\020o\022\035\n\031EVENT_TRANSC"
-  "EIVER_FAILURE\020p\0227\n3EVENT_TRANSCEIVER_VOL"
-  "TAGE_ABOVE_THRESHOLD_RECOVERED\020q\0227\n3EVEN"
-  "T_TRANSCEIVER_VOLTAGE_BELOW_THRESHOLD_RE"
-  "COVERED\020r\022;\n7EVENT_TRANSCEIVER_TEMPERATU"
-  "RE_ABOVE_THRESHOLD_RECOVERED\020s\022;\n7EVENT_"
-  "TRANSCEIVER_TEMPERATURE_BELOW_THRESHOLD_"
-  "RECOVERED\020t\0227\n3EVENT_TRANSCEIVER_CURRENT"
-  "_ABOVE_THRESHOLD_RECOVERED\020u\0227\n3EVENT_TR"
-  "ANSCEIVER_CURRENT_BELOW_THRESHOLD_RECOVE"
-  "RED\020v\0228\n4EVENT_TRANSCEIVER_RX_POWER_ABOV"
-  "E_THRESHOLD_RECOVERED\020w\0228\n4EVENT_TRANSCE"
-  "IVER_RX_POWER_BELOW_THRESHOLD_RECOVERED\020"
-  "x\0228\n4EVENT_TRANSCEIVER_TX_POWER_ABOVE_TH"
-  "RESHOLD_RECOVERED\020y\0228\n4EVENT_TRANSCEIVER"
-  "_TX_POWER_BELOW_THRESHOLD_RECOVERED\020z\022\'\n"
-  "#EVENT_TRANSCEIVER_FAILURE_RECOVERED\020{\022\027"
-  "\n\022EVENT_PSU_PLUG_OUT\020\310\001\022\026\n\021EVENT_PSU_PLU"
-  "G_IN\020\311\001\022\026\n\021EVENT_PSU_FAILURE\020\312\001\022 \n\033EVENT"
-  "_PSU_FAILURE_RECOVERED\020\313\001\022\026\n\021EVENT_FAN_F"
-  "AILURE\020\254\002\022\027\n\022EVENT_FAN_PLUG_OUT\020\255\002\022\026\n\021EV"
-  "ENT_FAN_PLUG_IN\020\256\002\022 \n\033EVENT_FAN_FAILURE_"
-  "RECOVERED\020\257\002\022)\n$EVENT_CPU_TEMPERATURE_AB"
-  "OVE_CRITICAL\020\220\003\022&\n!EVENT_CPU_TEMPERATURE"
-  "_ABOVE_FATAL\020\221\003\0223\n.EVENT_CPU_TEMPERATURE"
-  "_ABOVE_CRITICAL_RECOVERED\020\222\003\0220\n+EVENT_CP"
-  "U_TEMPERATURE_ABOVE_FATAL_RECOVERED\020\223\003\022\032"
-  "\n\025EVENT_HW_DEVICE_RESET\020\364\003\022/\n*EVENT_HW_D"
-  "EVICE_TEMPERATURE_ABOVE_CRITICAL\020\365\003\022,\n\'E"
-  "VENT_HW_DEVICE_TEMPERATURE_ABOVE_FATAL\020\366"
-  "\003\0229\n4EVENT_HW_DEVICE_TEMPERATURE_ABOVE_C"
-  "RITICAL_RECOVERED\020\367\003\0226\n1EVENT_HW_DEVICE_"
-  "TEMPERATURE_ABOVE_FATAL_RECOVERED\020\370\0032\267\001\n"
-  "\035NativeEventsManagementService\0226\n\nListEv"
-  "ents\022\017.dmi.HardwareID\032\027.dmi.ListEventsRe"
-  "sponse\022^\n\031UpdateEventsConfiguration\022\037.dm"
-  "i.EventsConfigurationRequest\032 .dmi.Event"
-  "sConfigurationResponseB;Z9github.com/ope"
-  "ncord/device-management-interface/v3/go/"
-  "dmib\006proto3"
+  "/protobuf/timestamp.proto\032\033google/protob"
+  "uf/empty.proto\"N\n\tValueType\022\021\n\007int_val\030\001"
+  " \001(\003H\000\022\022\n\010uint_val\030\002 \001(\004H\000\022\023\n\tfloat_val\030"
+  "\003 \001(\002H\000B\005\n\003val\"G\n\nWaterMarks\022\034\n\004high\030\001 \001"
+  "(\0132\016.dmi.ValueType\022\033\n\003low\030\002 \001(\0132\016.dmi.Va"
+  "lueType\"]\n\nThresholds\022 \n\005upper\030\001 \001(\0132\017.d"
+  "mi.WaterMarksH\000\022 \n\005lower\030\002 \001(\0132\017.dmi.Wat"
+  "erMarksH\000B\013\n\tthreshold\"c\n\024ThresholdInfor"
+  "mation\022&\n\016observed_value\030\001 \001(\0132\016.dmi.Val"
+  "ueType\022#\n\nthresholds\030\002 \001(\0132\017.dmi.Thresho"
+  "lds\"g\n\010EventCfg\022\037\n\010event_id\030\001 \001(\0162\r.dmi."
+  "EventIds\022\025\n\ris_configured\030\002 \001(\010\022#\n\nthres"
+  "holds\030\003 \001(\0132\017.dmi.Thresholds\")\n\tEventsCf"
+  "g\022\034\n\005items\030\001 \003(\0132\r.dmi.EventCfg\"\370\001\n\022List"
+  "EventsResponse\022\033\n\006status\030\001 \001(\0162\013.dmi.Sta"
+  "tus\022.\n\006reason\030\002 \001(\0162\036.dmi.ListEventsResp"
+  "onse.Reason\022\036\n\006events\030\003 \001(\0132\016.dmi.Events"
+  "Cfg\022\025\n\rreason_detail\030\004 \001(\t\"^\n\006Reason\022\024\n\020"
+  "UNDEFINED_REASON\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022"
+  "\n\016INTERNAL_ERROR\020\002\022\026\n\022DEVICE_UNREACHABLE"
+  "\020\003\"\210\001\n\032EventsConfigurationRequest\022\036\n\013dev"
+  "ice_uuid\030\001 \001(\0132\t.dmi.Uuid\022!\n\007changes\030\002 \001"
+  "(\0132\016.dmi.EventsCfgH\000\022\032\n\020reset_to_default"
+  "\030\003 \001(\010H\000B\013\n\toperation\"\376\001\n\033EventsConfigur"
+  "ationResponse\022\033\n\006status\030\001 \001(\0162\013.dmi.Stat"
+  "us\0227\n\006reason\030\002 \001(\0162\'.dmi.EventsConfigura"
+  "tionResponse.Reason\022\025\n\rreason_detail\030\003 \001"
+  "(\t\"r\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UN"
+  "KNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\022\n\016IN"
+  "VALID_CONFIG\020\003\022\026\n\022DEVICE_UNREACHABLE\020\004\"j"
+  "\n\rEventMetaData\022\036\n\013device_uuid\030\001 \001(\0132\t.d"
+  "mi.Uuid\022!\n\016component_uuid\030\002 \001(\0132\t.dmi.Uu"
+  "id\022\026\n\016component_name\030\003 \001(\t\"\310\001\n\005Event\022*\n\016"
+  "event_metadata\030\001 \001(\0132\022.dmi.EventMetaData"
+  "\022\037\n\010event_id\030\002 \001(\0162\r.dmi.EventIds\022-\n\trai"
+  "sed_ts\030\003 \001(\0132\032.google.protobuf.Timestamp"
+  "\0221\n\016threshold_info\030\004 \001(\0132\031.dmi.Threshold"
+  "Information\022\020\n\010add_info\030\005 \001(\t*\321\016\n\010EventI"
+  "ds\022\030\n\024EVENT_NAME_UNDEFINED\020\000\022\036\n\032EVENT_TR"
+  "ANSCEIVER_PLUG_OUT\020d\022\035\n\031EVENT_TRANSCEIVE"
+  "R_PLUG_IN\020e\022-\n)EVENT_TRANSCEIVER_VOLTAGE"
+  "_ABOVE_THRESHOLD\020f\022-\n)EVENT_TRANSCEIVER_"
+  "VOLTAGE_BELOW_THRESHOLD\020g\0221\n-EVENT_TRANS"
+  "CEIVER_TEMPERATURE_ABOVE_THRESHOLD\020h\0221\n-"
+  "EVENT_TRANSCEIVER_TEMPERATURE_BELOW_THRE"
+  "SHOLD\020i\022-\n)EVENT_TRANSCEIVER_CURRENT_ABO"
+  "VE_THRESHOLD\020j\022-\n)EVENT_TRANSCEIVER_CURR"
+  "ENT_BELOW_THRESHOLD\020k\022.\n*EVENT_TRANSCEIV"
+  "ER_RX_POWER_ABOVE_THRESHOLD\020l\022.\n*EVENT_T"
+  "RANSCEIVER_RX_POWER_BELOW_THRESHOLD\020m\022.\n"
+  "*EVENT_TRANSCEIVER_TX_POWER_ABOVE_THRESH"
+  "OLD\020n\022.\n*EVENT_TRANSCEIVER_TX_POWER_BELO"
+  "W_THRESHOLD\020o\022\035\n\031EVENT_TRANSCEIVER_FAILU"
+  "RE\020p\0227\n3EVENT_TRANSCEIVER_VOLTAGE_ABOVE_"
+  "THRESHOLD_RECOVERED\020q\0227\n3EVENT_TRANSCEIV"
+  "ER_VOLTAGE_BELOW_THRESHOLD_RECOVERED\020r\022;"
+  "\n7EVENT_TRANSCEIVER_TEMPERATURE_ABOVE_TH"
+  "RESHOLD_RECOVERED\020s\022;\n7EVENT_TRANSCEIVER"
+  "_TEMPERATURE_BELOW_THRESHOLD_RECOVERED\020t"
+  "\0227\n3EVENT_TRANSCEIVER_CURRENT_ABOVE_THRE"
+  "SHOLD_RECOVERED\020u\0227\n3EVENT_TRANSCEIVER_C"
+  "URRENT_BELOW_THRESHOLD_RECOVERED\020v\0228\n4EV"
+  "ENT_TRANSCEIVER_RX_POWER_ABOVE_THRESHOLD"
+  "_RECOVERED\020w\0228\n4EVENT_TRANSCEIVER_RX_POW"
+  "ER_BELOW_THRESHOLD_RECOVERED\020x\0228\n4EVENT_"
+  "TRANSCEIVER_TX_POWER_ABOVE_THRESHOLD_REC"
+  "OVERED\020y\0228\n4EVENT_TRANSCEIVER_TX_POWER_B"
+  "ELOW_THRESHOLD_RECOVERED\020z\022\'\n#EVENT_TRAN"
+  "SCEIVER_FAILURE_RECOVERED\020{\022\027\n\022EVENT_PSU"
+  "_PLUG_OUT\020\310\001\022\026\n\021EVENT_PSU_PLUG_IN\020\311\001\022\026\n\021"
+  "EVENT_PSU_FAILURE\020\312\001\022 \n\033EVENT_PSU_FAILUR"
+  "E_RECOVERED\020\313\001\022\026\n\021EVENT_FAN_FAILURE\020\254\002\022\027"
+  "\n\022EVENT_FAN_PLUG_OUT\020\255\002\022\026\n\021EVENT_FAN_PLU"
+  "G_IN\020\256\002\022 \n\033EVENT_FAN_FAILURE_RECOVERED\020\257"
+  "\002\022)\n$EVENT_CPU_TEMPERATURE_ABOVE_CRITICA"
+  "L\020\220\003\022&\n!EVENT_CPU_TEMPERATURE_ABOVE_FATA"
+  "L\020\221\003\0223\n.EVENT_CPU_TEMPERATURE_ABOVE_CRIT"
+  "ICAL_RECOVERED\020\222\003\0220\n+EVENT_CPU_TEMPERATU"
+  "RE_ABOVE_FATAL_RECOVERED\020\223\003\022\032\n\025EVENT_HW_"
+  "DEVICE_RESET\020\364\003\022/\n*EVENT_HW_DEVICE_TEMPE"
+  "RATURE_ABOVE_CRITICAL\020\365\003\022,\n\'EVENT_HW_DEV"
+  "ICE_TEMPERATURE_ABOVE_FATAL\020\366\003\0229\n4EVENT_"
+  "HW_DEVICE_TEMPERATURE_ABOVE_CRITICAL_REC"
+  "OVERED\020\367\003\0226\n1EVENT_HW_DEVICE_TEMPERATURE"
+  "_ABOVE_FATAL_RECOVERED\020\370\0032\355\001\n\035NativeEven"
+  "tsManagementService\0226\n\nListEvents\022\017.dmi."
+  "HardwareID\032\027.dmi.ListEventsResponse\022^\n\031U"
+  "pdateEventsConfiguration\022\037.dmi.EventsCon"
+  "figurationRequest\032 .dmi.EventsConfigurat"
+  "ionResponse\0224\n\014StreamEvents\022\026.google.pro"
+  "tobuf.Empty\032\n.dmi.Event0\001B;Z9github.com/"
+  "opencord/device-management-interface/v3/"
+  "go/dmib\006proto3"
   ;
 ::google::protobuf::internal::DescriptorTable descriptor_table_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto = {
   false, InitDefaults_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto, 
   descriptor_table_protodef_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto,
-  "dmi/hw_events_mgmt_service.proto", &assign_descriptors_table_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto, 3691,
+  "dmi/hw_events_mgmt_service.proto", &assign_descriptors_table_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto, 3774,
 };
 
 void AddDescriptors_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto() {
-  static constexpr ::google::protobuf::internal::InitFunc deps[3] =
+  static constexpr ::google::protobuf::internal::InitFunc deps[4] =
   {
     ::AddDescriptors_dmi_2fcommons_2eproto,
     ::AddDescriptors_dmi_2fhw_2eproto,
     ::AddDescriptors_google_2fprotobuf_2ftimestamp_2eproto,
+    ::AddDescriptors_google_2fprotobuf_2fempty_2eproto,
   };
- ::google::protobuf::internal::AddDescriptors(&descriptor_table_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto, deps, 3);
+ ::google::protobuf::internal::AddDescriptors(&descriptor_table_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto, deps, 4);
 }
 
 // Force running AddDescriptors() at dynamic initialization time.
diff --git a/cpp/dmi/hw_events_mgmt_service.pb.h b/cpp/dmi/hw_events_mgmt_service.pb.h
index 472a6a9..4f6cf5a 100644
--- a/cpp/dmi/hw_events_mgmt_service.pb.h
+++ b/cpp/dmi/hw_events_mgmt_service.pb.h
@@ -35,6 +35,7 @@
 #include "dmi/commons.pb.h"
 #include "dmi/hw.pb.h"
 #include <google/protobuf/timestamp.pb.h>
+#include <google/protobuf/empty.pb.h>
 // @@protoc_insertion_point(includes)
 #include <google/protobuf/port_def.inc>
 #define PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_5fevents_5fmgmt_5fservice_2eproto
diff --git a/cpp/dmi/hw_metrics_mgmt_service.grpc.pb.cc b/cpp/dmi/hw_metrics_mgmt_service.grpc.pb.cc
index 1c674c4..a35f91e 100644
--- a/cpp/dmi/hw_metrics_mgmt_service.grpc.pb.cc
+++ b/cpp/dmi/hw_metrics_mgmt_service.grpc.pb.cc
@@ -25,6 +25,7 @@
   "/dmi.NativeMetricsManagementService/ListMetrics",
   "/dmi.NativeMetricsManagementService/UpdateMetricsConfiguration",
   "/dmi.NativeMetricsManagementService/GetMetric",
+  "/dmi.NativeMetricsManagementService/StreamMetrics",
 };
 
 std::unique_ptr< NativeMetricsManagementService::Stub> NativeMetricsManagementService::NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options) {
@@ -37,6 +38,7 @@
   : channel_(channel), rpcmethod_ListMetrics_(NativeMetricsManagementService_method_names[0], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
   , rpcmethod_UpdateMetricsConfiguration_(NativeMetricsManagementService_method_names[1], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
   , rpcmethod_GetMetric_(NativeMetricsManagementService_method_names[2], ::grpc::internal::RpcMethod::NORMAL_RPC, channel)
+  , rpcmethod_StreamMetrics_(NativeMetricsManagementService_method_names[3], ::grpc::internal::RpcMethod::SERVER_STREAMING, channel)
   {}
 
 ::grpc::Status NativeMetricsManagementService::Stub::ListMetrics(::grpc::ClientContext* context, const ::dmi::HardwareID& request, ::dmi::ListMetricsResponse* response) {
@@ -123,6 +125,22 @@
   return ::grpc_impl::internal::ClientAsyncResponseReaderFactory< ::dmi::GetMetricResponse>::Create(channel_.get(), cq, rpcmethod_GetMetric_, context, request, false);
 }
 
+::grpc::ClientReader< ::dmi::Metric>* NativeMetricsManagementService::Stub::StreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
+  return ::grpc_impl::internal::ClientReaderFactory< ::dmi::Metric>::Create(channel_.get(), rpcmethod_StreamMetrics_, context, request);
+}
+
+void NativeMetricsManagementService::Stub::experimental_async::StreamMetrics(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::experimental::ClientReadReactor< ::dmi::Metric>* reactor) {
+  ::grpc_impl::internal::ClientCallbackReaderFactory< ::dmi::Metric>::Create(stub_->channel_.get(), stub_->rpcmethod_StreamMetrics_, context, request, reactor);
+}
+
+::grpc::ClientAsyncReader< ::dmi::Metric>* NativeMetricsManagementService::Stub::AsyncStreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
+  return ::grpc_impl::internal::ClientAsyncReaderFactory< ::dmi::Metric>::Create(channel_.get(), cq, rpcmethod_StreamMetrics_, context, request, true, tag);
+}
+
+::grpc::ClientAsyncReader< ::dmi::Metric>* NativeMetricsManagementService::Stub::PrepareAsyncStreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
+  return ::grpc_impl::internal::ClientAsyncReaderFactory< ::dmi::Metric>::Create(channel_.get(), cq, rpcmethod_StreamMetrics_, context, request, false, nullptr);
+}
+
 NativeMetricsManagementService::Service::Service() {
   AddMethod(new ::grpc::internal::RpcServiceMethod(
       NativeMetricsManagementService_method_names[0],
@@ -154,6 +172,16 @@
              ::dmi::GetMetricResponse* resp) {
                return service->GetMetric(ctx, req, resp);
              }, this)));
+  AddMethod(new ::grpc::internal::RpcServiceMethod(
+      NativeMetricsManagementService_method_names[3],
+      ::grpc::internal::RpcMethod::SERVER_STREAMING,
+      new ::grpc::internal::ServerStreamingHandler< NativeMetricsManagementService::Service, ::google::protobuf::Empty, ::dmi::Metric>(
+          [](NativeMetricsManagementService::Service* service,
+             ::grpc_impl::ServerContext* ctx,
+             const ::google::protobuf::Empty* req,
+             ::grpc_impl::ServerWriter<::dmi::Metric>* writer) {
+               return service->StreamMetrics(ctx, req, writer);
+             }, this)));
 }
 
 NativeMetricsManagementService::Service::~Service() {
@@ -180,6 +208,13 @@
   return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
 }
 
+::grpc::Status NativeMetricsManagementService::Service::StreamMetrics(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::dmi::Metric>* writer) {
+  (void) context;
+  (void) request;
+  (void) writer;
+  return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+}
+
 
 }  // namespace dmi
 
diff --git a/cpp/dmi/hw_metrics_mgmt_service.grpc.pb.h b/cpp/dmi/hw_metrics_mgmt_service.grpc.pb.h
index 560b350..a96cbd7 100644
--- a/cpp/dmi/hw_metrics_mgmt_service.grpc.pb.h
+++ b/cpp/dmi/hw_metrics_mgmt_service.grpc.pb.h
@@ -66,6 +66,16 @@
     std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::GetMetricResponse>> PrepareAsyncGetMetric(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReaderInterface< ::dmi::GetMetricResponse>>(PrepareAsyncGetMetricRaw(context, request, cq));
     }
+    // Initiate the server streaming of the metrics
+    std::unique_ptr< ::grpc::ClientReaderInterface< ::dmi::Metric>> StreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
+      return std::unique_ptr< ::grpc::ClientReaderInterface< ::dmi::Metric>>(StreamMetricsRaw(context, request));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Metric>> AsyncStreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Metric>>(AsyncStreamMetricsRaw(context, request, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Metric>> PrepareAsyncStreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncReaderInterface< ::dmi::Metric>>(PrepareAsyncStreamMetricsRaw(context, request, cq));
+    }
     class experimental_async_interface {
      public:
       virtual ~experimental_async_interface() {}
@@ -114,6 +124,12 @@
       #else
       virtual void GetMetric(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::dmi::GetMetricResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) = 0;
       #endif
+      // Initiate the server streaming of the metrics
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      virtual void StreamMetrics(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::ClientReadReactor< ::dmi::Metric>* reactor) = 0;
+      #else
+      virtual void StreamMetrics(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::experimental::ClientReadReactor< ::dmi::Metric>* reactor) = 0;
+      #endif
     };
     #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
     typedef class experimental_async_interface async_interface;
@@ -129,6 +145,9 @@
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::dmi::MetricsConfigurationResponse>* PrepareAsyncUpdateMetricsConfigurationRaw(::grpc::ClientContext* context, const ::dmi::MetricsConfigurationRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::dmi::GetMetricResponse>* AsyncGetMetricRaw(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) = 0;
     virtual ::grpc::ClientAsyncResponseReaderInterface< ::dmi::GetMetricResponse>* PrepareAsyncGetMetricRaw(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) = 0;
+    virtual ::grpc::ClientReaderInterface< ::dmi::Metric>* StreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) = 0;
+    virtual ::grpc::ClientAsyncReaderInterface< ::dmi::Metric>* AsyncStreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) = 0;
+    virtual ::grpc::ClientAsyncReaderInterface< ::dmi::Metric>* PrepareAsyncStreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) = 0;
   };
   class Stub final : public StubInterface {
    public:
@@ -154,6 +173,15 @@
     std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::GetMetricResponse>> PrepareAsyncGetMetric(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) {
       return std::unique_ptr< ::grpc::ClientAsyncResponseReader< ::dmi::GetMetricResponse>>(PrepareAsyncGetMetricRaw(context, request, cq));
     }
+    std::unique_ptr< ::grpc::ClientReader< ::dmi::Metric>> StreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) {
+      return std::unique_ptr< ::grpc::ClientReader< ::dmi::Metric>>(StreamMetricsRaw(context, request));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Metric>> AsyncStreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) {
+      return std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Metric>>(AsyncStreamMetricsRaw(context, request, cq, tag));
+    }
+    std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Metric>> PrepareAsyncStreamMetrics(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) {
+      return std::unique_ptr< ::grpc::ClientAsyncReader< ::dmi::Metric>>(PrepareAsyncStreamMetricsRaw(context, request, cq));
+    }
     class experimental_async final :
       public StubInterface::experimental_async_interface {
      public:
@@ -193,6 +221,11 @@
       #else
       void GetMetric(::grpc::ClientContext* context, const ::grpc::ByteBuffer* request, ::dmi::GetMetricResponse* response, ::grpc::experimental::ClientUnaryReactor* reactor) override;
       #endif
+      #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      void StreamMetrics(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::ClientReadReactor< ::dmi::Metric>* reactor) override;
+      #else
+      void StreamMetrics(::grpc::ClientContext* context, ::google::protobuf::Empty* request, ::grpc::experimental::ClientReadReactor< ::dmi::Metric>* reactor) override;
+      #endif
      private:
       friend class Stub;
       explicit experimental_async(Stub* stub): stub_(stub) { }
@@ -210,9 +243,13 @@
     ::grpc::ClientAsyncResponseReader< ::dmi::MetricsConfigurationResponse>* PrepareAsyncUpdateMetricsConfigurationRaw(::grpc::ClientContext* context, const ::dmi::MetricsConfigurationRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::dmi::GetMetricResponse>* AsyncGetMetricRaw(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) override;
     ::grpc::ClientAsyncResponseReader< ::dmi::GetMetricResponse>* PrepareAsyncGetMetricRaw(::grpc::ClientContext* context, const ::dmi::GetMetricRequest& request, ::grpc::CompletionQueue* cq) override;
+    ::grpc::ClientReader< ::dmi::Metric>* StreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request) override;
+    ::grpc::ClientAsyncReader< ::dmi::Metric>* AsyncStreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq, void* tag) override;
+    ::grpc::ClientAsyncReader< ::dmi::Metric>* PrepareAsyncStreamMetricsRaw(::grpc::ClientContext* context, const ::google::protobuf::Empty& request, ::grpc::CompletionQueue* cq) override;
     const ::grpc::internal::RpcMethod rpcmethod_ListMetrics_;
     const ::grpc::internal::RpcMethod rpcmethod_UpdateMetricsConfiguration_;
     const ::grpc::internal::RpcMethod rpcmethod_GetMetric_;
+    const ::grpc::internal::RpcMethod rpcmethod_StreamMetrics_;
   };
   static std::unique_ptr<Stub> NewStub(const std::shared_ptr< ::grpc::ChannelInterface>& channel, const ::grpc::StubOptions& options = ::grpc::StubOptions());
 
@@ -232,6 +269,8 @@
     virtual ::grpc::Status UpdateMetricsConfiguration(::grpc::ServerContext* context, const ::dmi::MetricsConfigurationRequest* request, ::dmi::MetricsConfigurationResponse* response);
     // Get the instantenous value of a metric
     virtual ::grpc::Status GetMetric(::grpc::ServerContext* context, const ::dmi::GetMetricRequest* request, ::dmi::GetMetricResponse* response);
+    // Initiate the server streaming of the metrics
+    virtual ::grpc::Status StreamMetrics(::grpc::ServerContext* context, const ::google::protobuf::Empty* request, ::grpc::ServerWriter< ::dmi::Metric>* writer);
   };
   template <class BaseClass>
   class WithAsyncMethod_ListMetrics : public BaseClass {
@@ -293,7 +332,27 @@
       ::grpc::Service::RequestAsyncUnary(2, context, request, response, new_call_cq, notification_cq, tag);
     }
   };
-  typedef WithAsyncMethod_ListMetrics<WithAsyncMethod_UpdateMetricsConfiguration<WithAsyncMethod_GetMetric<Service > > > AsyncService;
+  template <class BaseClass>
+  class WithAsyncMethod_StreamMetrics : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithAsyncMethod_StreamMetrics() {
+      ::grpc::Service::MarkMethodAsync(3);
+    }
+    ~WithAsyncMethod_StreamMetrics() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamMetrics(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Metric>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestStreamMetrics(::grpc::ServerContext* context, ::google::protobuf::Empty* request, ::grpc::ServerAsyncWriter< ::dmi::Metric>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncServerStreaming(3, context, request, writer, new_call_cq, notification_cq, tag);
+    }
+  };
+  typedef WithAsyncMethod_ListMetrics<WithAsyncMethod_UpdateMetricsConfiguration<WithAsyncMethod_GetMetric<WithAsyncMethod_StreamMetrics<Service > > > > AsyncService;
   template <class BaseClass>
   class ExperimentalWithCallbackMethod_ListMetrics : public BaseClass {
    private:
@@ -435,11 +494,49 @@
     #endif
       { return nullptr; }
   };
+  template <class BaseClass>
+  class ExperimentalWithCallbackMethod_StreamMetrics : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithCallbackMethod_StreamMetrics() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodCallback(3,
+          new ::grpc_impl::internal::CallbackServerStreamingHandler< ::google::protobuf::Empty, ::dmi::Metric>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const ::google::protobuf::Empty* request) { return this->StreamMetrics(context, request); }));
+    }
+    ~ExperimentalWithCallbackMethod_StreamMetrics() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamMetrics(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Metric>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerWriteReactor< ::dmi::Metric>* StreamMetrics(
+      ::grpc::CallbackServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/)
+    #else
+    virtual ::grpc::experimental::ServerWriteReactor< ::dmi::Metric>* StreamMetrics(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/)
+    #endif
+      { return nullptr; }
+  };
   #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
-  typedef ExperimentalWithCallbackMethod_ListMetrics<ExperimentalWithCallbackMethod_UpdateMetricsConfiguration<ExperimentalWithCallbackMethod_GetMetric<Service > > > CallbackService;
+  typedef ExperimentalWithCallbackMethod_ListMetrics<ExperimentalWithCallbackMethod_UpdateMetricsConfiguration<ExperimentalWithCallbackMethod_GetMetric<ExperimentalWithCallbackMethod_StreamMetrics<Service > > > > CallbackService;
   #endif
 
-  typedef ExperimentalWithCallbackMethod_ListMetrics<ExperimentalWithCallbackMethod_UpdateMetricsConfiguration<ExperimentalWithCallbackMethod_GetMetric<Service > > > ExperimentalCallbackService;
+  typedef ExperimentalWithCallbackMethod_ListMetrics<ExperimentalWithCallbackMethod_UpdateMetricsConfiguration<ExperimentalWithCallbackMethod_GetMetric<ExperimentalWithCallbackMethod_StreamMetrics<Service > > > > ExperimentalCallbackService;
   template <class BaseClass>
   class WithGenericMethod_ListMetrics : public BaseClass {
    private:
@@ -492,6 +589,23 @@
     }
   };
   template <class BaseClass>
+  class WithGenericMethod_StreamMetrics : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithGenericMethod_StreamMetrics() {
+      ::grpc::Service::MarkMethodGeneric(3);
+    }
+    ~WithGenericMethod_StreamMetrics() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamMetrics(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Metric>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+  };
+  template <class BaseClass>
   class WithRawMethod_ListMetrics : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
@@ -552,6 +666,26 @@
     }
   };
   template <class BaseClass>
+  class WithRawMethod_StreamMetrics : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithRawMethod_StreamMetrics() {
+      ::grpc::Service::MarkMethodRaw(3);
+    }
+    ~WithRawMethod_StreamMetrics() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamMetrics(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Metric>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    void RequestStreamMetrics(::grpc::ServerContext* context, ::grpc::ByteBuffer* request, ::grpc::ServerAsyncWriter< ::grpc::ByteBuffer>* writer, ::grpc::CompletionQueue* new_call_cq, ::grpc::ServerCompletionQueue* notification_cq, void *tag) {
+      ::grpc::Service::RequestAsyncServerStreaming(3, context, request, writer, new_call_cq, notification_cq, tag);
+    }
+  };
+  template <class BaseClass>
   class ExperimentalWithRawCallbackMethod_ListMetrics : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
@@ -666,6 +800,44 @@
       { return nullptr; }
   };
   template <class BaseClass>
+  class ExperimentalWithRawCallbackMethod_StreamMetrics : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    ExperimentalWithRawCallbackMethod_StreamMetrics() {
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+      ::grpc::Service::
+    #else
+      ::grpc::Service::experimental().
+    #endif
+        MarkMethodRawCallback(3,
+          new ::grpc_impl::internal::CallbackServerStreamingHandler< ::grpc::ByteBuffer, ::grpc::ByteBuffer>(
+            [this](
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+                   ::grpc::CallbackServerContext*
+    #else
+                   ::grpc::experimental::CallbackServerContext*
+    #endif
+                     context, const::grpc::ByteBuffer* request) { return this->StreamMetrics(context, request); }));
+    }
+    ~ExperimentalWithRawCallbackMethod_StreamMetrics() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable synchronous version of this method
+    ::grpc::Status StreamMetrics(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Metric>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    #ifdef GRPC_CALLBACK_API_NONEXPERIMENTAL
+    virtual ::grpc::ServerWriteReactor< ::grpc::ByteBuffer>* StreamMetrics(
+      ::grpc::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)
+    #else
+    virtual ::grpc::experimental::ServerWriteReactor< ::grpc::ByteBuffer>* StreamMetrics(
+      ::grpc::experimental::CallbackServerContext* /*context*/, const ::grpc::ByteBuffer* /*request*/)
+    #endif
+      { return nullptr; }
+  };
+  template <class BaseClass>
   class WithStreamedUnaryMethod_ListMetrics : public BaseClass {
    private:
     void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
@@ -747,8 +919,35 @@
     virtual ::grpc::Status StreamedGetMetric(::grpc::ServerContext* context, ::grpc::ServerUnaryStreamer< ::dmi::GetMetricRequest,::dmi::GetMetricResponse>* server_unary_streamer) = 0;
   };
   typedef WithStreamedUnaryMethod_ListMetrics<WithStreamedUnaryMethod_UpdateMetricsConfiguration<WithStreamedUnaryMethod_GetMetric<Service > > > StreamedUnaryService;
-  typedef Service SplitStreamedService;
-  typedef WithStreamedUnaryMethod_ListMetrics<WithStreamedUnaryMethod_UpdateMetricsConfiguration<WithStreamedUnaryMethod_GetMetric<Service > > > StreamedService;
+  template <class BaseClass>
+  class WithSplitStreamingMethod_StreamMetrics : public BaseClass {
+   private:
+    void BaseClassMustBeDerivedFromService(const Service* /*service*/) {}
+   public:
+    WithSplitStreamingMethod_StreamMetrics() {
+      ::grpc::Service::MarkMethodStreamed(3,
+        new ::grpc::internal::SplitServerStreamingHandler<
+          ::google::protobuf::Empty, ::dmi::Metric>(
+            [this](::grpc_impl::ServerContext* context,
+                   ::grpc_impl::ServerSplitStreamer<
+                     ::google::protobuf::Empty, ::dmi::Metric>* streamer) {
+                       return this->StreamedStreamMetrics(context,
+                         streamer);
+                  }));
+    }
+    ~WithSplitStreamingMethod_StreamMetrics() override {
+      BaseClassMustBeDerivedFromService(this);
+    }
+    // disable regular version of this method
+    ::grpc::Status StreamMetrics(::grpc::ServerContext* /*context*/, const ::google::protobuf::Empty* /*request*/, ::grpc::ServerWriter< ::dmi::Metric>* /*writer*/) override {
+      abort();
+      return ::grpc::Status(::grpc::StatusCode::UNIMPLEMENTED, "");
+    }
+    // replace default version of method with split streamed
+    virtual ::grpc::Status StreamedStreamMetrics(::grpc::ServerContext* context, ::grpc::ServerSplitStreamer< ::google::protobuf::Empty,::dmi::Metric>* server_split_streamer) = 0;
+  };
+  typedef WithSplitStreamingMethod_StreamMetrics<Service > SplitStreamedService;
+  typedef WithStreamedUnaryMethod_ListMetrics<WithStreamedUnaryMethod_UpdateMetricsConfiguration<WithStreamedUnaryMethod_GetMetric<WithSplitStreamingMethod_StreamMetrics<Service > > > > StreamedService;
 };
 
 }  // namespace dmi
diff --git a/cpp/dmi/hw_metrics_mgmt_service.pb.cc b/cpp/dmi/hw_metrics_mgmt_service.pb.cc
index 389e53d..14a0306 100644
--- a/cpp/dmi/hw_metrics_mgmt_service.pb.cc
+++ b/cpp/dmi/hw_metrics_mgmt_service.pb.cc
@@ -319,85 +319,88 @@
 
 const char descriptor_table_protodef_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto[] =
   "\n!dmi/hw_metrics_mgmt_service.proto\022\003dmi"
-  "\032\021dmi/commons.proto\032\014dmi/hw.proto\"a\n\014Met"
-  "ricConfig\022#\n\tmetric_id\030\001 \001(\0162\020.dmi.Metri"
-  "cNames\022\025\n\ris_configured\030\002 \001(\010\022\025\n\rpoll_in"
-  "terval\030\003 \001(\r\"3\n\rMetricsConfig\022\"\n\007metrics"
-  "\030\001 \003(\0132\021.dmi.MetricConfig\"\377\001\n\023ListMetric"
-  "sResponse\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\022/"
-  "\n\006reason\030\002 \001(\0162\037.dmi.ListMetricsResponse"
-  ".Reason\022#\n\007metrics\030\003 \001(\0132\022.dmi.MetricsCo"
-  "nfig\022\025\n\rreason_detail\030\004 \001(\t\"^\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\022DEVICE_UNREACHABL"
-  "E\020\003\"\215\001\n\033MetricsConfigurationRequest\022\036\n\013d"
-  "evice_uuid\030\001 \001(\0132\t.dmi.Uuid\022%\n\007changes\030\002"
-  " \001(\0132\022.dmi.MetricsConfigH\000\022\032\n\020reset_to_d"
-  "efault\030\003 \001(\010H\000B\013\n\toperation\"\240\002\n\034MetricsC"
-  "onfigurationResponse\022\033\n\006status\030\001 \001(\0162\013.d"
-  "mi.Status\0228\n\006reason\030\002 \001(\0162(.dmi.MetricsC"
-  "onfigurationResponse.Reason\022\025\n\rreason_de"
-  "tail\030\003 \001(\t\"\221\001\n\006Reason\022\024\n\020UNDEFINED_REASO"
-  "N\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\022\n\016INTERNAL_ERRO"
-  "R\020\002\022\035\n\031POLL_INTERVAL_UNSUPPORTED\020\003\022\022\n\016IN"
-  "VALID_METRIC\020\004\022\026\n\022DEVICE_UNREACHABLE\020\005\"k"
-  "\n\016MetricMetaData\022\036\n\013device_uuid\030\001 \001(\0132\t."
-  "dmi.Uuid\022!\n\016component_uuid\030\002 \001(\0132\t.dmi.U"
-  "uid\022\026\n\016component_name\030\003 \001(\t\"\204\001\n\006Metric\022#"
-  "\n\tmetric_id\030\001 \001(\0162\020.dmi.MetricNames\022,\n\017m"
-  "etric_metadata\030\002 \001(\0132\023.dmi.MetricMetaDat"
-  "a\022\'\n\005value\030\003 \001(\0132\030.dmi.ComponentSensorDa"
-  "ta\"_\n\020GetMetricRequest\022&\n\tmeta_data\030\001 \001("
-  "\0132\023.dmi.MetricMetaData\022#\n\tmetric_id\030\002 \001("
-  "\0162\020.dmi.MetricNames\"\237\002\n\021GetMetricRespons"
-  "e\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\022-\n\006reason"
-  "\030\002 \001(\0162\035.dmi.GetMetricResponse.Reason\022\033\n"
-  "\006metric\030\003 \001(\0132\013.dmi.Metric\022\025\n\rreason_det"
-  "ail\030\004 \001(\t\"\211\001\n\006Reason\022\024\n\020UNDEFINED_REASON"
-  "\020\000\022\022\n\016UNKNOWN_DEVICE\020\001\022\025\n\021UNKNOWN_COMPON"
-  "ENT\020\002\022\022\n\016INTERNAL_ERROR\020\003\022\022\n\016INVALID_MET"
-  "RIC\020\004\022\026\n\022DEVICE_UNREACHABLE\020\005*\331\005\n\013Metric"
-  "Names\022\031\n\025METRIC_NAME_UNDEFINED\020\000\022\024\n\020METR"
-  "IC_FAN_SPEED\020\001\022\023\n\017METRIC_CPU_TEMP\020d\022\037\n\033M"
-  "ETRIC_CPU_USAGE_PERCENTAGE\020e\022\034\n\027METRIC_T"
-  "RANSCEIVER_TEMP\020\310\001\022\037\n\032METRIC_TRANSCEIVER"
-  "_VOLTAGE\020\311\001\022\034\n\027METRIC_TRANSCEIVER_BIAS\020\312"
-  "\001\022 \n\033METRIC_TRANSCEIVER_RX_POWER\020\313\001\022 \n\033M"
-  "ETRIC_TRANSCEIVER_TX_POWER\020\314\001\022\"\n\035METRIC_"
-  "TRANSCEIVER_WAVELENGTH\020\315\001\022\025\n\020METRIC_DISK"
-  "_TEMP\020\254\002\022\031\n\024METRIC_DISK_CAPACITY\020\255\002\022\026\n\021M"
-  "ETRIC_DISK_USAGE\020\256\002\022!\n\034METRIC_DISK_USAGE"
-  "_PERCENTAGE\020\257\002\022&\n!METRIC_DISK_READ_WRITE"
-  "_PERCENTAGE\020\260\002\022(\n#METRIC_DISK_FAULTY_CEL"
-  "LS_PERCENTAGE\020\261\002\022\024\n\017METRIC_RAM_TEMP\020\220\003\022\030"
-  "\n\023METRIC_RAM_CAPACITY\020\221\003\022\025\n\020METRIC_RAM_U"
-  "SAGE\020\222\003\022 \n\033METRIC_RAM_USAGE_PERCENTAGE\020\223"
-  "\003\022\025\n\020METRIC_POWER_MAX\020\364\003\022\027\n\022METRIC_POWER"
-  "_USAGE\020\365\003\022\"\n\035METRIC_POWER_USAGE_PERCENTA"
-  "GE\020\366\003\022\"\n\035METRIC_INNER_SURROUNDING_TEMP\020\330"
-  "\0042\371\001\n\036NativeMetricsManagementService\0228\n\013"
-  "ListMetrics\022\017.dmi.HardwareID\032\030.dmi.ListM"
-  "etricsResponse\022a\n\032UpdateMetricsConfigura"
-  "tion\022 .dmi.MetricsConfigurationRequest\032!"
-  ".dmi.MetricsConfigurationResponse\022:\n\tGet"
-  "Metric\022\025.dmi.GetMetricRequest\032\026.dmi.GetM"
-  "etricResponseB;Z9github.com/opencord/dev"
-  "ice-management-interface/v3/go/dmib\006prot"
-  "o3"
+  "\032\021dmi/commons.proto\032\014dmi/hw.proto\032\033googl"
+  "e/protobuf/empty.proto\"a\n\014MetricConfig\022#"
+  "\n\tmetric_id\030\001 \001(\0162\020.dmi.MetricNames\022\025\n\ri"
+  "s_configured\030\002 \001(\010\022\025\n\rpoll_interval\030\003 \001("
+  "\r\"3\n\rMetricsConfig\022\"\n\007metrics\030\001 \003(\0132\021.dm"
+  "i.MetricConfig\"\377\001\n\023ListMetricsResponse\022\033"
+  "\n\006status\030\001 \001(\0162\013.dmi.Status\022/\n\006reason\030\002 "
+  "\001(\0162\037.dmi.ListMetricsResponse.Reason\022#\n\007"
+  "metrics\030\003 \001(\0132\022.dmi.MetricsConfig\022\025\n\rrea"
+  "son_detail\030\004 \001(\t\"^\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\022DEVICE_UNREACHABLE\020\003\"\215\001\n\033Met"
+  "ricsConfigurationRequest\022\036\n\013device_uuid\030"
+  "\001 \001(\0132\t.dmi.Uuid\022%\n\007changes\030\002 \001(\0132\022.dmi."
+  "MetricsConfigH\000\022\032\n\020reset_to_default\030\003 \001("
+  "\010H\000B\013\n\toperation\"\240\002\n\034MetricsConfiguratio"
+  "nResponse\022\033\n\006status\030\001 \001(\0162\013.dmi.Status\0228"
+  "\n\006reason\030\002 \001(\0162(.dmi.MetricsConfiguratio"
+  "nResponse.Reason\022\025\n\rreason_detail\030\003 \001(\t\""
+  "\221\001\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKN"
+  "OWN_DEVICE\020\001\022\022\n\016INTERNAL_ERROR\020\002\022\035\n\031POLL"
+  "_INTERVAL_UNSUPPORTED\020\003\022\022\n\016INVALID_METRI"
+  "C\020\004\022\026\n\022DEVICE_UNREACHABLE\020\005\"k\n\016MetricMet"
+  "aData\022\036\n\013device_uuid\030\001 \001(\0132\t.dmi.Uuid\022!\n"
+  "\016component_uuid\030\002 \001(\0132\t.dmi.Uuid\022\026\n\016comp"
+  "onent_name\030\003 \001(\t\"\204\001\n\006Metric\022#\n\tmetric_id"
+  "\030\001 \001(\0162\020.dmi.MetricNames\022,\n\017metric_metad"
+  "ata\030\002 \001(\0132\023.dmi.MetricMetaData\022\'\n\005value\030"
+  "\003 \001(\0132\030.dmi.ComponentSensorData\"_\n\020GetMe"
+  "tricRequest\022&\n\tmeta_data\030\001 \001(\0132\023.dmi.Met"
+  "ricMetaData\022#\n\tmetric_id\030\002 \001(\0162\020.dmi.Met"
+  "ricNames\"\237\002\n\021GetMetricResponse\022\033\n\006status"
+  "\030\001 \001(\0162\013.dmi.Status\022-\n\006reason\030\002 \001(\0162\035.dm"
+  "i.GetMetricResponse.Reason\022\033\n\006metric\030\003 \001"
+  "(\0132\013.dmi.Metric\022\025\n\rreason_detail\030\004 \001(\t\"\211"
+  "\001\n\006Reason\022\024\n\020UNDEFINED_REASON\020\000\022\022\n\016UNKNO"
+  "WN_DEVICE\020\001\022\025\n\021UNKNOWN_COMPONENT\020\002\022\022\n\016IN"
+  "TERNAL_ERROR\020\003\022\022\n\016INVALID_METRIC\020\004\022\026\n\022DE"
+  "VICE_UNREACHABLE\020\005*\331\005\n\013MetricNames\022\031\n\025ME"
+  "TRIC_NAME_UNDEFINED\020\000\022\024\n\020METRIC_FAN_SPEE"
+  "D\020\001\022\023\n\017METRIC_CPU_TEMP\020d\022\037\n\033METRIC_CPU_U"
+  "SAGE_PERCENTAGE\020e\022\034\n\027METRIC_TRANSCEIVER_"
+  "TEMP\020\310\001\022\037\n\032METRIC_TRANSCEIVER_VOLTAGE\020\311\001"
+  "\022\034\n\027METRIC_TRANSCEIVER_BIAS\020\312\001\022 \n\033METRIC"
+  "_TRANSCEIVER_RX_POWER\020\313\001\022 \n\033METRIC_TRANS"
+  "CEIVER_TX_POWER\020\314\001\022\"\n\035METRIC_TRANSCEIVER"
+  "_WAVELENGTH\020\315\001\022\025\n\020METRIC_DISK_TEMP\020\254\002\022\031\n"
+  "\024METRIC_DISK_CAPACITY\020\255\002\022\026\n\021METRIC_DISK_"
+  "USAGE\020\256\002\022!\n\034METRIC_DISK_USAGE_PERCENTAGE"
+  "\020\257\002\022&\n!METRIC_DISK_READ_WRITE_PERCENTAGE"
+  "\020\260\002\022(\n#METRIC_DISK_FAULTY_CELLS_PERCENTA"
+  "GE\020\261\002\022\024\n\017METRIC_RAM_TEMP\020\220\003\022\030\n\023METRIC_RA"
+  "M_CAPACITY\020\221\003\022\025\n\020METRIC_RAM_USAGE\020\222\003\022 \n\033"
+  "METRIC_RAM_USAGE_PERCENTAGE\020\223\003\022\025\n\020METRIC"
+  "_POWER_MAX\020\364\003\022\027\n\022METRIC_POWER_USAGE\020\365\003\022\""
+  "\n\035METRIC_POWER_USAGE_PERCENTAGE\020\366\003\022\"\n\035ME"
+  "TRIC_INNER_SURROUNDING_TEMP\020\330\0042\261\002\n\036Nativ"
+  "eMetricsManagementService\0228\n\013ListMetrics"
+  "\022\017.dmi.HardwareID\032\030.dmi.ListMetricsRespo"
+  "nse\022a\n\032UpdateMetricsConfiguration\022 .dmi."
+  "MetricsConfigurationRequest\032!.dmi.Metric"
+  "sConfigurationResponse\022:\n\tGetMetric\022\025.dm"
+  "i.GetMetricRequest\032\026.dmi.GetMetricRespon"
+  "se\0226\n\rStreamMetrics\022\026.google.protobuf.Em"
+  "pty\032\013.dmi.Metric0\001B;Z9github.com/opencor"
+  "d/device-management-interface/v3/go/dmib"
+  "\006proto3"
   ;
 ::google::protobuf::internal::DescriptorTable descriptor_table_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto = {
   false, InitDefaults_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto, 
   descriptor_table_protodef_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto,
-  "dmi/hw_metrics_mgmt_service.proto", &assign_descriptors_table_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto, 2602,
+  "dmi/hw_metrics_mgmt_service.proto", &assign_descriptors_table_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto, 2687,
 };
 
 void AddDescriptors_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto() {
-  static constexpr ::google::protobuf::internal::InitFunc deps[2] =
+  static constexpr ::google::protobuf::internal::InitFunc deps[3] =
   {
     ::AddDescriptors_dmi_2fcommons_2eproto,
     ::AddDescriptors_dmi_2fhw_2eproto,
+    ::AddDescriptors_google_2fprotobuf_2fempty_2eproto,
   };
- ::google::protobuf::internal::AddDescriptors(&descriptor_table_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto, deps, 2);
+ ::google::protobuf::internal::AddDescriptors(&descriptor_table_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto, deps, 3);
 }
 
 // Force running AddDescriptors() at dynamic initialization time.
diff --git a/cpp/dmi/hw_metrics_mgmt_service.pb.h b/cpp/dmi/hw_metrics_mgmt_service.pb.h
index 5967faa..ab393ae 100644
--- a/cpp/dmi/hw_metrics_mgmt_service.pb.h
+++ b/cpp/dmi/hw_metrics_mgmt_service.pb.h
@@ -34,6 +34,7 @@
 #include <google/protobuf/unknown_field_set.h>
 #include "dmi/commons.pb.h"
 #include "dmi/hw.pb.h"
+#include <google/protobuf/empty.pb.h>
 // @@protoc_insertion_point(includes)
 #include <google/protobuf/port_def.inc>
 #define PROTOBUF_INTERNAL_EXPORT_dmi_2fhw_5fmetrics_5fmgmt_5fservice_2eproto
diff --git a/dmi.pb b/dmi.pb
index e61d910..147fe01 100644
--- a/dmi.pb
+++ b/dmi.pb
Binary files differ
diff --git a/go/dmi/hw_events_mgmt_service.pb.go b/go/dmi/hw_events_mgmt_service.pb.go
index ba213a6..6110b97 100644
--- a/go/dmi/hw_events_mgmt_service.pb.go
+++ b/go/dmi/hw_events_mgmt_service.pb.go
@@ -7,6 +7,7 @@
 	context "context"
 	fmt "fmt"
 	proto "github.com/golang/protobuf/proto"
+	empty "github.com/golang/protobuf/ptypes/empty"
 	timestamp "github.com/golang/protobuf/ptypes/timestamp"
 	grpc "google.golang.org/grpc"
 	codes "google.golang.org/grpc/codes"
@@ -959,98 +960,100 @@
 func init() { proto.RegisterFile("dmi/hw_events_mgmt_service.proto", fileDescriptor_8962d785556e9979) }
 
 var fileDescriptor_8962d785556e9979 = []byte{
-	// 1448 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x73, 0xdb, 0xd4,
-	0x17, 0x8f, 0xad, 0x3c, 0x9c, 0x93, 0xc6, 0x7f, 0xf5, 0x4e, 0xff, 0x6d, 0xe2, 0x4e, 0x5b, 0xe3,
-	0x40, 0x93, 0x06, 0x62, 0xb7, 0x09, 0xb4, 0x74, 0xba, 0x00, 0xc5, 0x56, 0x6a, 0x0d, 0x8e, 0x9c,
-	0xb9, 0x91, 0x1d, 0x86, 0x45, 0x35, 0x37, 0xd6, 0xb5, 0x2d, 0x6a, 0x49, 0xae, 0x74, 0x95, 0x50,
-	0x98, 0x61, 0xc1, 0x92, 0x15, 0xaf, 0x25, 0xc3, 0x27, 0xa0, 0xb0, 0xe4, 0x2b, 0xf0, 0x58, 0xf1,
-	0x5d, 0x78, 0x2d, 0x19, 0x5d, 0xc9, 0xb6, 0xe2, 0x47, 0x9c, 0xce, 0xb0, 0xb3, 0xce, 0xf9, 0xfd,
-	0xce, 0xf9, 0x5d, 0x9d, 0x73, 0x8f, 0x8e, 0x21, 0x6b, 0x58, 0x66, 0xa1, 0x7d, 0xaa, 0xd3, 0x13,
-	0x6a, 0x33, 0x4f, 0xb7, 0x5a, 0x16, 0xd3, 0x3d, 0xea, 0x9e, 0x98, 0x0d, 0x9a, 0xef, 0xba, 0x0e,
-	0x73, 0x90, 0x60, 0x58, 0x66, 0xe6, 0x72, 0x00, 0x6b, 0x38, 0x96, 0xe5, 0xd8, 0x5e, 0x68, 0xcf,
-	0x5c, 0x0a, 0x99, 0xd1, 0xd3, 0xad, 0x96, 0xe3, 0xb4, 0x3a, 0xb4, 0xc0, 0x9f, 0x8e, 0xfd, 0x66,
-	0x81, 0x99, 0x16, 0xf5, 0x18, 0xb1, 0xba, 0x21, 0x20, 0x67, 0xc2, 0x62, 0x9d, 0x74, 0x7c, 0xaa,
-	0x3d, 0xef, 0x52, 0xb4, 0x0a, 0x0b, 0xa6, 0xcd, 0xf4, 0x13, 0xd2, 0x59, 0x49, 0x64, 0x13, 0x1b,
-	0x42, 0x79, 0x06, 0xcf, 0x9b, 0x36, 0xab, 0x93, 0x0e, 0xba, 0x0e, 0x29, 0xbf, 0xe7, 0x4b, 0x66,
-	0x13, 0x1b, 0xb3, 0xe5, 0x19, 0xbc, 0xe0, 0x47, 0xce, 0x1b, 0xb0, 0xd8, 0xec, 0x38, 0x24, 0xf4,
-	0x0a, 0xd9, 0xc4, 0x46, 0xb2, 0x3c, 0x83, 0x53, 0xdc, 0x54, 0x27, 0x9d, 0xdd, 0x39, 0x10, 0x4e,
-	0x48, 0x27, 0x87, 0x01, 0x8e, 0x08, 0xa3, 0xee, 0x3e, 0x71, 0x9f, 0x7a, 0x28, 0x07, 0xb3, 0x6d,
-	0xb3, 0xd5, 0xe6, 0x89, 0x96, 0xb6, 0xd3, 0x79, 0xc3, 0x32, 0xf3, 0x7d, 0x25, 0x98, 0xfb, 0x50,
-	0x16, 0x84, 0x8e, 0x73, 0xca, 0xf3, 0x8d, 0x42, 0x02, 0x57, 0xee, 0x29, 0x80, 0xd6, 0x76, 0xa9,
-	0xd7, 0x76, 0x3a, 0x86, 0x87, 0xd6, 0x61, 0xce, 0xef, 0x76, 0xa9, 0x1b, 0x05, 0xfd, 0x1f, 0x67,
-	0x0c, 0x72, 0x96, 0x67, 0x70, 0xe8, 0x0f, 0x80, 0x1d, 0xe7, 0x94, 0xba, 0x51, 0xe8, 0x71, 0x40,
-	0xee, 0xdf, 0x5d, 0x82, 0x45, 0xd6, 0x8b, 0x9f, 0xfb, 0x14, 0xae, 0xf4, 0x93, 0x29, 0x76, 0xd3,
-	0x71, 0x2d, 0xc2, 0x4c, 0xc7, 0x46, 0x6f, 0x41, 0xda, 0x39, 0x0e, 0xaa, 0x43, 0x8d, 0xe0, 0x0d,
-	0xf8, 0x74, 0xc2, 0xa1, 0x96, 0x7b, 0x28, 0x6e, 0x42, 0x05, 0x80, 0x7e, 0x6c, 0xef, 0x8c, 0x92,
-	0xc1, 0x91, 0x70, 0x0c, 0x92, 0xfb, 0x3c, 0x01, 0x29, 0x39, 0x68, 0x88, 0x62, 0xb3, 0x85, 0x36,
-	0x20, 0xc5, 0x9b, 0x43, 0x37, 0x0d, 0x9e, 0x2e, 0xbd, 0xbd, 0xcc, 0xb9, 0x1c, 0xa0, 0x18, 0x1e,
-	0x5e, 0xa0, 0xe1, 0x2f, 0xb4, 0x06, 0xcb, 0xa6, 0xa7, 0x37, 0x1c, 0xbb, 0x69, 0xb6, 0x7c, 0x97,
-	0x1a, 0x3c, 0x55, 0x0a, 0x5f, 0x32, 0xbd, 0x62, 0xdf, 0x36, 0x24, 0x46, 0x98, 0x2e, 0xe6, 0x2e,
-	0x2c, 0xf2, 0x54, 0x5e, 0x20, 0x66, 0x0d, 0xe6, 0x4c, 0x46, 0x2d, 0x6f, 0x25, 0x91, 0x15, 0x36,
-	0x96, 0xe2, 0x4a, 0x8a, 0xcd, 0x16, 0x0e, 0x7d, 0xb9, 0xef, 0x92, 0x80, 0x2a, 0xa6, 0xc7, 0x42,
-	0x1a, 0xa6, 0x5e, 0xd7, 0xb1, 0x3d, 0x8a, 0xd6, 0x60, 0xde, 0x63, 0x84, 0xf9, 0x5e, 0x74, 0x8c,
-	0x25, 0x4e, 0x3e, 0xe4, 0x26, 0x1c, 0xb9, 0xd0, 0x7d, 0x98, 0x77, 0x29, 0xf1, 0x1c, 0x9b, 0x8b,
-	0x4f, 0x6f, 0xdf, 0xe4, 0xa0, 0xd1, 0x68, 0x79, 0xcc, 0x51, 0x38, 0x42, 0xa3, 0xdb, 0x30, 0x1f,
-	0x5e, 0xa1, 0xe8, 0x48, 0xe9, 0x81, 0xb2, 0x40, 0x38, 0x8e, 0xbc, 0xc1, 0x3b, 0x0a, 0x19, 0xba,
-	0x41, 0x19, 0x31, 0x3b, 0x2b, 0xb3, 0xd9, 0xc4, 0xc6, 0x22, 0xbe, 0x14, 0x1a, 0x4b, 0xdc, 0x96,
-	0x7b, 0x02, 0xf3, 0x61, 0x78, 0x74, 0x05, 0xc4, 0x9a, 0x5a, 0x92, 0xf7, 0x14, 0x55, 0x2e, 0xe9,
-	0x58, 0x96, 0x0e, 0xab, 0xaa, 0x38, 0x83, 0x10, 0xa4, 0x6b, 0xea, 0x7b, 0x6a, 0xf5, 0x48, 0xd5,
-	0x4b, 0x72, 0x5d, 0x29, 0xca, 0x62, 0x22, 0xb0, 0x29, 0xaa, 0x26, 0x63, 0x55, 0xaa, 0xe8, 0x32,
-	0xc6, 0x55, 0x2c, 0x26, 0xd1, 0x55, 0x40, 0xa1, 0x5f, 0xaf, 0xa9, 0x58, 0x96, 0x8a, 0x65, 0x69,
-	0xb7, 0x22, 0x8b, 0x42, 0xee, 0x45, 0x02, 0x32, 0x91, 0xb4, 0xa8, 0x30, 0xbc, 0xbf, 0x30, 0x7d,
-	0xe6, 0x53, 0x8f, 0xa1, 0x4d, 0x58, 0x32, 0x68, 0x30, 0x01, 0x74, 0xdf, 0x8f, 0x8a, 0xbe, 0xb4,
-	0xbd, 0xc8, 0x0f, 0x54, 0xf3, 0x4d, 0x03, 0x43, 0xe8, 0x0d, 0x7e, 0xa3, 0x4d, 0x58, 0x68, 0xb4,
-	0x89, 0xdd, 0xa2, 0xde, 0x99, 0xdb, 0xd3, 0x3f, 0x78, 0x70, 0x7b, 0x23, 0x00, 0xda, 0x04, 0xd1,
-	0xa5, 0x1e, 0x65, 0x3a, 0x73, 0x74, 0x83, 0x36, 0x89, 0xdf, 0x61, 0xfc, 0x6d, 0xa5, 0xca, 0x33,
-	0x38, 0xcd, 0x3d, 0x9a, 0x53, 0x0a, 0xed, 0xc1, 0x7d, 0x70, 0xba, 0x34, 0xd4, 0x95, 0xfb, 0x36,
-	0x09, 0xd7, 0xc7, 0xea, 0x7d, 0x99, 0xca, 0xbe, 0x33, 0x54, 0xd9, 0xf5, 0xb8, 0xd0, 0x71, 0x61,
-	0x87, 0x4b, 0x3c, 0x52, 0x3a, 0x61, 0x4c, 0xe9, 0xdc, 0xff, 0xa8, 0x74, 0xdc, 0x56, 0x97, 0x2a,
-	0x4a, 0x49, 0x2f, 0x56, 0xd5, 0x3d, 0xe5, 0xb1, 0x28, 0x4c, 0x28, 0xe7, 0x6c, 0xee, 0x9b, 0x04,
-	0x2c, 0xf3, 0x73, 0xec, 0x53, 0x46, 0x4a, 0x84, 0x91, 0x97, 0xaa, 0xe0, 0x5d, 0x48, 0x37, 0x1c,
-	0xab, 0xeb, 0xd8, 0xc1, 0x1d, 0xe7, 0xf0, 0xe4, 0x30, 0x7c, 0xb9, 0x0f, 0xe0, 0x8c, 0xd7, 0xe2,
-	0x0c, 0x9b, 0x58, 0x34, 0x7a, 0x13, 0x03, 0x98, 0x4a, 0x2c, 0x9a, 0xfb, 0x2c, 0x09, 0x73, 0x5c,
-	0x16, 0x7a, 0x08, 0xe9, 0x70, 0x84, 0x58, 0x94, 0x11, 0x83, 0x30, 0x12, 0x29, 0x42, 0x83, 0x12,
-	0xf4, 0xa4, 0xe3, 0x65, 0xda, 0x7b, 0x0c, 0x80, 0x67, 0xa6, 0x4f, 0xf2, 0xdc, 0xe9, 0xf3, 0x00,
-	0x16, 0x5d, 0x62, 0x7a, 0xd4, 0xd0, 0xfb, 0x97, 0x30, 0x93, 0x0f, 0xbf, 0x4a, 0xf9, 0xde, 0x57,
-	0x29, 0xaf, 0xf5, 0xbe, 0x4a, 0x38, 0x15, 0x82, 0x35, 0x0f, 0xbd, 0x0b, 0xe9, 0xfe, 0xb8, 0xd1,
-	0x4d, 0xbb, 0xe9, 0xf0, 0x3b, 0xb9, 0xb4, 0xbd, 0x7a, 0x76, 0x2a, 0xc5, 0x06, 0x31, 0x5e, 0x66,
-	0x71, 0x2b, 0x5a, 0x85, 0x14, 0x31, 0x22, 0xee, 0x1c, 0x7f, 0x15, 0x0b, 0xc4, 0xe0, 0xae, 0xcd,
-	0xdf, 0xd3, 0xd1, 0x28, 0x55, 0x0c, 0x0f, 0xad, 0xc0, 0x15, 0xb9, 0x2e, 0xab, 0x9a, 0xae, 0x4a,
-	0xfb, 0x41, 0x11, 0xa3, 0xee, 0x10, 0x67, 0xd0, 0x4d, 0xc8, 0x84, 0x1e, 0x0d, 0x4b, 0xea, 0x61,
-	0x51, 0x56, 0xea, 0x32, 0xd6, 0x0f, 0x2a, 0xb5, 0xc7, 0x7a, 0xb5, 0xa6, 0x89, 0x06, 0xba, 0x01,
-	0xab, 0x13, 0xfc, 0x8a, 0x2a, 0x52, 0xb4, 0x05, 0x77, 0x46, 0xdd, 0xf5, 0x6a, 0x45, 0x93, 0x1e,
-	0xcb, 0xba, 0xb4, 0x5b, 0xad, 0xcb, 0xba, 0x56, 0xc6, 0xf2, 0x61, 0xb9, 0x5a, 0x29, 0x89, 0xcd,
-	0xf3, 0xe1, 0xbb, 0x72, 0xa5, 0x7a, 0x14, 0x83, 0xb7, 0xd0, 0x3d, 0xd8, 0x1a, 0x85, 0x6b, 0xf2,
-	0xfe, 0x81, 0x8c, 0x25, 0xad, 0x86, 0x47, 0x33, 0xb4, 0xa7, 0x53, 0x86, 0xb3, 0x98, 0xe3, 0x45,
-	0x15, 0x6b, 0x18, 0x07, 0xb6, 0xe1, 0x0c, 0x1f, 0x9e, 0x0f, 0x1f, 0x8e, 0xfe, 0x14, 0xe5, 0x61,
-	0x73, 0x14, 0x8e, 0xdf, 0xd7, 0x0f, 0xaa, 0x47, 0x32, 0x1e, 0x09, 0xdf, 0x99, 0x82, 0x1f, 0x8e,
-	0x6f, 0x8d, 0xc7, 0x6b, 0x93, 0xe2, 0xdb, 0x53, 0xf0, 0xc3, 0xf1, 0x9d, 0xf1, 0x0d, 0xb0, 0x27,
-	0x29, 0x95, 0x1a, 0x96, 0xc5, 0x2e, 0x7a, 0x00, 0x3b, 0x17, 0x6e, 0x00, 0x1d, 0xcb, 0xc5, 0x6a,
-	0x5d, 0xc6, 0x72, 0x49, 0x7c, 0x76, 0x3e, 0x71, 0x48, 0x46, 0x8c, 0xe8, 0xa2, 0x47, 0xf0, 0xe0,
-	0xa5, 0x9a, 0x22, 0x46, 0xf6, 0xa6, 0x93, 0x27, 0x67, 0x66, 0xe3, 0x25, 0x4f, 0x68, 0x94, 0x18,
-	0xd1, 0x3f, 0x9f, 0x38, 0x39, 0xe3, 0x09, 0x7a, 0x1b, 0xde, 0xbc, 0x78, 0xf3, 0xc4, 0x98, 0xa7,
-	0x53, 0x98, 0x93, 0x73, 0x7e, 0x34, 0x9e, 0xa9, 0x4d, 0xcf, 0xf9, 0x7c, 0x0a, 0x73, 0x72, 0xce,
-	0x8f, 0xd1, 0x3a, 0xac, 0x4d, 0x6c, 0xb2, 0x18, 0xf0, 0x13, 0x74, 0x0d, 0x50, 0x08, 0x3c, 0x38,
-	0xac, 0x0d, 0xc6, 0xd4, 0xcf, 0x09, 0x74, 0x15, 0x2e, 0x0f, 0x39, 0x14, 0x55, 0xfc, 0x65, 0xc8,
-	0xde, 0x6b, 0xdb, 0x5f, 0x13, 0x28, 0x0b, 0xd7, 0x47, 0xec, 0xb1, 0x4c, 0xbf, 0xc5, 0x98, 0x7b,
-	0x92, 0xda, 0x67, 0x7e, 0x9f, 0x1c, 0x48, 0x08, 0xec, 0x7d, 0x09, 0x2f, 0x92, 0x67, 0x09, 0x3d,
-	0x09, 0x3f, 0x24, 0x07, 0xa9, 0x62, 0x81, 0x62, 0xa9, 0x7e, 0x4c, 0xa2, 0x3b, 0xf0, 0x6a, 0x88,
-	0x28, 0x1e, 0xd4, 0xc6, 0xb4, 0x72, 0x11, 0x2b, 0x9a, 0x52, 0x94, 0x2a, 0xe2, 0x17, 0x02, 0xba,
-	0x0d, 0xaf, 0x9c, 0x07, 0xdd, 0x93, 0x34, 0xa9, 0x22, 0x7e, 0x29, 0xa0, 0x1d, 0xc8, 0x5f, 0x24,
-	0x64, 0x4c, 0xc7, 0x57, 0x02, 0xba, 0x0b, 0xaf, 0x4f, 0x0d, 0x1e, 0x63, 0x7c, 0x2d, 0xa0, 0x0c,
-	0xfc, 0x3f, 0x64, 0x94, 0x8f, 0xa2, 0xb5, 0x42, 0xc7, 0xf2, 0xa1, 0xac, 0x89, 0x7f, 0x08, 0xa8,
-	0xd0, 0x9b, 0x34, 0x03, 0xdf, 0x39, 0x67, 0xfb, 0x53, 0x40, 0x6f, 0xc0, 0xfa, 0x74, 0x42, 0x78,
-	0xc2, 0xbf, 0x04, 0xf4, 0xb0, 0xd7, 0x6d, 0x17, 0x09, 0x1f, 0x53, 0xfd, 0xb7, 0x80, 0xee, 0xc3,
-	0xbd, 0x0b, 0x26, 0x8a, 0xf1, 0xfe, 0x11, 0xb6, 0x7f, 0x4a, 0xc0, 0x0d, 0x95, 0x30, 0xf3, 0x84,
-	0x86, 0xdb, 0xdb, 0x3e, 0xb1, 0x49, 0x8b, 0x5a, 0xd4, 0x66, 0x87, 0xe1, 0x3f, 0x57, 0x74, 0x1f,
-	0x60, 0xb0, 0xb2, 0xa3, 0xf0, 0xef, 0x45, 0x99, 0xb8, 0xc6, 0x29, 0x71, 0xa9, 0x52, 0xca, 0x5c,
-	0x9b, 0xb0, 0xd4, 0xa3, 0x27, 0xb0, 0x5a, 0xeb, 0x1a, 0x84, 0xd1, 0x31, 0x6b, 0x21, 0xba, 0x35,
-	0x79, 0x61, 0xe4, 0x7b, 0x73, 0x26, 0x3b, 0x6d, 0xa3, 0xdc, 0x7d, 0xf4, 0xc1, 0xc3, 0x96, 0xc9,
-	0xda, 0xfe, 0x71, 0xbe, 0xe1, 0x58, 0x05, 0xa7, 0x4b, 0xed, 0x86, 0xe3, 0x1a, 0x85, 0x70, 0x1b,
-	0xdb, 0xb2, 0xfa, 0xe7, 0xd8, 0x32, 0x6d, 0x46, 0xdd, 0x26, 0x69, 0xd0, 0xc2, 0xc9, 0x4e, 0xa1,
-	0xe5, 0x14, 0x0c, 0xcb, 0x3c, 0x9e, 0xe7, 0x5b, 0xcc, 0xce, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff,
-	0x36, 0x83, 0x3b, 0x4c, 0xb3, 0x0f, 0x00, 0x00,
+	// 1480 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0xcb, 0x72, 0xdb, 0x46,
+	0x16, 0x15, 0x09, 0x3d, 0xa8, 0x2b, 0x89, 0x03, 0x77, 0x79, 0x6c, 0x89, 0x2a, 0xdb, 0x1c, 0x6a,
+	0xc6, 0x92, 0x35, 0x23, 0x52, 0x96, 0x3c, 0x76, 0x5c, 0x5e, 0x24, 0x14, 0x09, 0x99, 0xa8, 0x50,
+	0xa0, 0xaa, 0x09, 0x52, 0xa9, 0x2c, 0x8c, 0x6a, 0x11, 0x4d, 0x12, 0x31, 0x01, 0xd0, 0x40, 0x43,
+	0x8a, 0x93, 0xaa, 0x2c, 0xb2, 0xcc, 0x2a, 0xaf, 0x65, 0x2a, 0x5f, 0x10, 0x27, 0xbf, 0x91, 0xc7,
+	0x2a, 0x1f, 0x92, 0x5d, 0x5e, 0xcb, 0x14, 0x1a, 0x20, 0x09, 0xf1, 0x21, 0xca, 0x55, 0xd9, 0x91,
+	0xf7, 0x9c, 0x73, 0xef, 0x69, 0xdc, 0xdb, 0x8d, 0x06, 0xa4, 0x75, 0xd3, 0xc8, 0xb5, 0xcf, 0x35,
+	0x7a, 0x46, 0x2d, 0xe6, 0x6a, 0x66, 0xcb, 0x64, 0x9a, 0x4b, 0x9d, 0x33, 0xa3, 0x41, 0xb3, 0x5d,
+	0xc7, 0x66, 0x36, 0x12, 0x74, 0xd3, 0x48, 0x5d, 0xf3, 0x69, 0x0d, 0xdb, 0x34, 0x6d, 0xcb, 0x0d,
+	0xe2, 0xa9, 0xe5, 0x40, 0x19, 0xfe, 0xbb, 0xd3, 0xb2, 0xed, 0x56, 0x87, 0xe6, 0xf8, 0xbf, 0x53,
+	0xaf, 0x99, 0x63, 0x86, 0x49, 0x5d, 0x46, 0xcc, 0x6e, 0x48, 0x58, 0x1f, 0x26, 0x50, 0xb3, 0xcb,
+	0x5e, 0x06, 0x60, 0xc6, 0x80, 0xc5, 0x3a, 0xe9, 0x78, 0x54, 0x7d, 0xd9, 0xa5, 0x68, 0x0d, 0x16,
+	0x0c, 0x8b, 0x69, 0x67, 0xa4, 0xb3, 0x1a, 0x4b, 0xc7, 0xb6, 0x84, 0xd2, 0x0c, 0x9e, 0x37, 0x2c,
+	0x56, 0x27, 0x1d, 0xb4, 0x0e, 0x09, 0xaf, 0x87, 0xc5, 0xd3, 0xb1, 0xad, 0xd9, 0xd2, 0x0c, 0x5e,
+	0xf0, 0x42, 0xf0, 0x16, 0x2c, 0x36, 0x3b, 0x36, 0x09, 0x50, 0x21, 0x1d, 0xdb, 0x8a, 0x97, 0x66,
+	0x70, 0x82, 0x87, 0xea, 0xa4, 0x73, 0x30, 0x07, 0xc2, 0x19, 0xe9, 0x64, 0x30, 0xc0, 0x09, 0x61,
+	0xd4, 0x39, 0x22, 0xce, 0x73, 0x17, 0x65, 0x60, 0xb6, 0x6d, 0xb4, 0xda, 0xbc, 0xd0, 0xd2, 0x5e,
+	0x32, 0xab, 0x9b, 0x46, 0xb6, 0xef, 0x04, 0x73, 0x0c, 0xa5, 0x41, 0xe8, 0xd8, 0xe7, 0xbc, 0xde,
+	0x28, 0xc5, 0x87, 0x32, 0xcf, 0x01, 0xd4, 0xb6, 0x43, 0xdd, 0xb6, 0xdd, 0xd1, 0x5d, 0xb4, 0x09,
+	0x73, 0x5e, 0xb7, 0x4b, 0x9d, 0x30, 0xe9, 0x3f, 0xb8, 0x62, 0x50, 0xb3, 0x34, 0x83, 0x03, 0xdc,
+	0x27, 0x76, 0xec, 0x73, 0xea, 0x84, 0xa9, 0xc7, 0x11, 0x39, 0x7e, 0xb0, 0x04, 0x8b, 0xac, 0x97,
+	0x3f, 0xf3, 0x11, 0x5c, 0xef, 0x17, 0x93, 0xad, 0xa6, 0xed, 0x98, 0x84, 0x19, 0xb6, 0x85, 0xfe,
+	0x0f, 0x49, 0xfb, 0xd4, 0x6f, 0x1d, 0xd5, 0xfd, 0x27, 0xe0, 0xd1, 0x09, 0x8b, 0x5a, 0xe9, 0xb1,
+	0x78, 0x08, 0xe5, 0x00, 0xfa, 0xb9, 0xdd, 0x0b, 0x4e, 0x06, 0x4b, 0xc2, 0x11, 0x4a, 0xe6, 0x93,
+	0x18, 0x24, 0x24, 0x7f, 0x5a, 0x0a, 0xcd, 0x16, 0xda, 0x82, 0x04, 0x9f, 0x1c, 0xcd, 0xd0, 0x79,
+	0xb9, 0xe4, 0xde, 0x0a, 0xd7, 0x72, 0x82, 0xac, 0xbb, 0x78, 0x81, 0x06, 0xbf, 0xd0, 0x06, 0xac,
+	0x18, 0xae, 0xd6, 0xb0, 0xad, 0xa6, 0xd1, 0xf2, 0x1c, 0xaa, 0xf3, 0x52, 0x09, 0xbc, 0x6c, 0xb8,
+	0x85, 0x7e, 0x6c, 0xc8, 0x8c, 0x30, 0xdd, 0xcc, 0x2e, 0x2c, 0xf2, 0x52, 0xae, 0x6f, 0x66, 0x03,
+	0xe6, 0x0c, 0x46, 0x4d, 0x77, 0x35, 0x96, 0x16, 0xb6, 0x96, 0xa2, 0x4e, 0x0a, 0xcd, 0x16, 0x0e,
+	0xb0, 0xcc, 0xd7, 0x71, 0x40, 0x65, 0xc3, 0x65, 0x81, 0x0c, 0x53, 0xb7, 0x6b, 0x5b, 0x2e, 0x45,
+	0x1b, 0x30, 0xef, 0x32, 0xc2, 0x3c, 0x37, 0x5c, 0xc6, 0x12, 0x17, 0x57, 0x79, 0x08, 0x87, 0x10,
+	0x7a, 0x08, 0xf3, 0x0e, 0x25, 0xae, 0x6d, 0x71, 0xf3, 0xc9, 0xbd, 0xdb, 0x9c, 0x34, 0x9a, 0x2d,
+	0x8b, 0x39, 0x0b, 0x87, 0x6c, 0x74, 0x17, 0xe6, 0x83, 0xfd, 0x15, 0x2e, 0x29, 0x39, 0x70, 0xe6,
+	0x1b, 0xc7, 0x21, 0xea, 0x3f, 0xa3, 0x40, 0xa1, 0xe9, 0x94, 0x11, 0xa3, 0xb3, 0x3a, 0x9b, 0x8e,
+	0x6d, 0x2d, 0xe2, 0xe5, 0x20, 0x58, 0xe4, 0xb1, 0xcc, 0x33, 0x98, 0x0f, 0xd2, 0xa3, 0xeb, 0x20,
+	0xd6, 0x94, 0xa2, 0x74, 0x28, 0x2b, 0x52, 0x51, 0xc3, 0x52, 0xbe, 0x5a, 0x51, 0xc4, 0x19, 0x84,
+	0x20, 0x59, 0x53, 0xde, 0x56, 0x2a, 0x27, 0x8a, 0x56, 0x94, 0xea, 0x72, 0x41, 0x12, 0x63, 0x7e,
+	0x4c, 0x56, 0x54, 0x09, 0x2b, 0xf9, 0xb2, 0x26, 0x61, 0x5c, 0xc1, 0x62, 0x1c, 0xdd, 0x00, 0x14,
+	0xe0, 0x5a, 0x4d, 0xc1, 0x52, 0xbe, 0x50, 0xca, 0x1f, 0x94, 0x25, 0x51, 0xc8, 0xbc, 0x8a, 0x41,
+	0x2a, 0xb4, 0x16, 0x36, 0x86, 0xcf, 0x17, 0xa6, 0x2f, 0x3c, 0xea, 0x32, 0xb4, 0x0d, 0x4b, 0x3a,
+	0xf5, 0x8f, 0x07, 0xcd, 0xf3, 0xc2, 0xa6, 0x2f, 0xed, 0x2d, 0xf2, 0x05, 0xd5, 0x3c, 0x43, 0xc7,
+	0x10, 0xa0, 0xfe, 0x6f, 0xb4, 0x0d, 0x0b, 0x8d, 0x36, 0xb1, 0x5a, 0xd4, 0xbd, 0xb0, 0x7b, 0xfa,
+	0x0b, 0xf7, 0x77, 0x6f, 0x48, 0x40, 0xdb, 0x20, 0x3a, 0xd4, 0xa5, 0x4c, 0x63, 0xb6, 0xa6, 0xd3,
+	0x26, 0xf1, 0x3a, 0x8c, 0x3f, 0xad, 0x44, 0x69, 0x06, 0x27, 0x39, 0xa2, 0xda, 0xc5, 0x20, 0xee,
+	0xef, 0x07, 0xbb, 0x4b, 0x03, 0x5f, 0x99, 0xaf, 0xe2, 0xb0, 0x3e, 0xd6, 0xef, 0xeb, 0x74, 0xf6,
+	0xcd, 0xa1, 0xce, 0x6e, 0x46, 0x8d, 0x8e, 0x4b, 0x3b, 0xdc, 0xe2, 0x91, 0xd6, 0x09, 0x63, 0x5a,
+	0xe7, 0xfc, 0x4d, 0xad, 0xe3, 0xb1, 0x7a, 0xbe, 0x2c, 0x17, 0xb5, 0x42, 0x45, 0x39, 0x94, 0x9f,
+	0x8a, 0xc2, 0x84, 0x76, 0xce, 0x66, 0xbe, 0x8c, 0xc1, 0x0a, 0x5f, 0xc7, 0x11, 0x65, 0xa4, 0x48,
+	0x18, 0x79, 0xad, 0x0e, 0xee, 0x42, 0xb2, 0x61, 0x9b, 0x5d, 0xdb, 0xf2, 0xf7, 0x38, 0xa7, 0xc7,
+	0x87, 0xe9, 0x2b, 0x7d, 0x02, 0x57, 0xfc, 0x27, 0xaa, 0xb0, 0x88, 0x49, 0xc3, 0x27, 0x31, 0xa0,
+	0x29, 0xc4, 0xa4, 0x99, 0x8f, 0xe3, 0x30, 0xc7, 0x6d, 0xa1, 0xc7, 0x90, 0x0c, 0x8e, 0x10, 0x93,
+	0x32, 0xa2, 0x13, 0x46, 0x42, 0x47, 0x68, 0xd0, 0x82, 0x9e, 0x75, 0xbc, 0x42, 0x7b, 0x7f, 0x7d,
+	0xe2, 0x85, 0xd3, 0x27, 0x7e, 0xe9, 0xe9, 0xf3, 0x08, 0x16, 0x1d, 0x62, 0xb8, 0x54, 0xd7, 0xfa,
+	0x9b, 0x30, 0x95, 0x0d, 0xde, 0x48, 0xd9, 0xde, 0x1b, 0x29, 0xab, 0xf6, 0x5e, 0x59, 0x38, 0x11,
+	0x90, 0x55, 0x17, 0xbd, 0x05, 0xc9, 0xfe, 0x71, 0xa3, 0x19, 0x56, 0xd3, 0xe6, 0x7b, 0x72, 0x69,
+	0x6f, 0xed, 0xe2, 0xa9, 0x14, 0x39, 0x88, 0xf1, 0x0a, 0x8b, 0x46, 0xd1, 0x1a, 0x24, 0x88, 0x1e,
+	0x6a, 0xe7, 0xf8, 0xa3, 0x58, 0x20, 0x3a, 0x87, 0xb6, 0x7f, 0x4e, 0x86, 0x47, 0xa9, 0xac, 0xbb,
+	0x68, 0x15, 0xae, 0x4b, 0x75, 0x49, 0x51, 0x35, 0x25, 0x7f, 0xe4, 0x37, 0x31, 0x9c, 0x0e, 0x71,
+	0x06, 0xdd, 0x86, 0x54, 0x80, 0xa8, 0x38, 0xaf, 0x54, 0x0b, 0x92, 0x5c, 0x97, 0xb0, 0x76, 0x5c,
+	0xae, 0x3d, 0xd5, 0x2a, 0x35, 0x55, 0xd4, 0xd1, 0x2d, 0x58, 0x9b, 0x80, 0xcb, 0x8a, 0x48, 0xd1,
+	0x0e, 0xdc, 0x1b, 0x85, 0xeb, 0x95, 0xb2, 0x9a, 0x7f, 0x2a, 0x69, 0xf9, 0x83, 0x4a, 0x5d, 0xd2,
+	0xd4, 0x12, 0x96, 0xaa, 0xa5, 0x4a, 0xb9, 0x28, 0x36, 0x2f, 0xa7, 0x1f, 0x48, 0xe5, 0xca, 0x49,
+	0x84, 0xde, 0x42, 0xf7, 0x61, 0x67, 0x94, 0xae, 0x4a, 0x47, 0xc7, 0x12, 0xce, 0xab, 0x35, 0x3c,
+	0x5a, 0xa1, 0x3d, 0x5d, 0x32, 0x5c, 0xc5, 0x18, 0x6f, 0xaa, 0x50, 0xc3, 0xd8, 0x8f, 0x0d, 0x57,
+	0x78, 0xef, 0x72, 0xfa, 0x70, 0xf6, 0xe7, 0x28, 0x0b, 0xdb, 0xa3, 0x74, 0xfc, 0x8e, 0x76, 0x5c,
+	0x39, 0x91, 0xf0, 0x48, 0xfa, 0xce, 0x14, 0xfe, 0x70, 0x7e, 0x73, 0x3c, 0x5f, 0x9d, 0x94, 0xdf,
+	0x9a, 0xc2, 0x1f, 0xce, 0x6f, 0x8f, 0x1f, 0x80, 0xc3, 0xbc, 0x5c, 0xae, 0x61, 0x49, 0xec, 0xa2,
+	0x47, 0xb0, 0x7f, 0xe5, 0x01, 0xd0, 0xb0, 0x54, 0xa8, 0xd4, 0x25, 0x2c, 0x15, 0xc5, 0x17, 0x97,
+	0x0b, 0x87, 0x6c, 0x44, 0x84, 0x0e, 0x7a, 0x02, 0x8f, 0x5e, 0x6b, 0x28, 0x22, 0x62, 0x77, 0xba,
+	0x78, 0x72, 0x65, 0x36, 0xde, 0xf2, 0x84, 0x41, 0x89, 0x08, 0xbd, 0xcb, 0x85, 0x93, 0x2b, 0x9e,
+	0xa1, 0x37, 0xe0, 0xc1, 0xd5, 0x87, 0x27, 0xa2, 0x3c, 0x9f, 0xa2, 0x9c, 0x5c, 0xf3, 0xfd, 0xf1,
+	0x4a, 0x75, 0x7a, 0xcd, 0x97, 0x53, 0x94, 0x93, 0x6b, 0x7e, 0x80, 0x36, 0x61, 0x63, 0xe2, 0x90,
+	0x45, 0x88, 0x1f, 0xa2, 0x9b, 0x80, 0x02, 0xe2, 0x71, 0xb5, 0x36, 0x38, 0xa6, 0xbe, 0x8f, 0xa1,
+	0x1b, 0x70, 0x6d, 0x08, 0x90, 0x15, 0xf1, 0x87, 0xa1, 0x78, 0x6f, 0x6c, 0x7f, 0x8c, 0xa1, 0x34,
+	0xac, 0x8f, 0xc4, 0x23, 0x95, 0x7e, 0x8a, 0x28, 0x0f, 0xf3, 0x4a, 0x5f, 0xf9, 0x4d, 0x7c, 0x60,
+	0xc1, 0x8f, 0xf7, 0x2d, 0xbc, 0x8a, 0x5f, 0x14, 0xf4, 0x2c, 0x7c, 0x1b, 0x1f, 0x94, 0x8a, 0x24,
+	0x8a, 0x94, 0xfa, 0x2e, 0x8e, 0xee, 0xc1, 0xbf, 0x03, 0x46, 0xe1, 0xb8, 0x36, 0x66, 0x94, 0x0b,
+	0x58, 0x56, 0xe5, 0x42, 0xbe, 0x2c, 0x7e, 0x2a, 0xa0, 0xbb, 0xf0, 0xaf, 0xcb, 0xa8, 0x87, 0x79,
+	0x35, 0x5f, 0x16, 0x3f, 0x13, 0xd0, 0x3e, 0x64, 0xaf, 0x92, 0x32, 0xe2, 0xe3, 0x73, 0x01, 0xed,
+	0xc2, 0x7f, 0xa7, 0x26, 0x8f, 0x28, 0xbe, 0x10, 0x50, 0x0a, 0xfe, 0x19, 0x28, 0x4a, 0x27, 0xe1,
+	0xb5, 0x42, 0xc3, 0x52, 0x55, 0x52, 0xc5, 0x5f, 0x05, 0x94, 0xeb, 0x9d, 0x34, 0x03, 0xec, 0x92,
+	0xb5, 0xfd, 0x26, 0xa0, 0xff, 0xc1, 0xe6, 0x74, 0x41, 0xb0, 0xc2, 0xdf, 0x05, 0xf4, 0xb8, 0x37,
+	0x6d, 0x57, 0x49, 0x1f, 0x71, 0xfd, 0x87, 0x80, 0x1e, 0xc2, 0xfd, 0x2b, 0x16, 0x8a, 0xe8, 0xfe,
+	0x14, 0xf6, 0x7e, 0x89, 0xc1, 0x2d, 0x85, 0x30, 0xe3, 0x8c, 0x06, 0xb7, 0xb7, 0x23, 0x62, 0x91,
+	0x16, 0x35, 0xa9, 0xc5, 0xaa, 0xc1, 0x67, 0x2d, 0x7a, 0x08, 0x30, 0xb8, 0xb2, 0xa3, 0xe0, 0xf3,
+	0xa2, 0x44, 0x1c, 0xfd, 0x9c, 0x38, 0x54, 0x2e, 0xa6, 0x6e, 0x4e, 0xb8, 0xd4, 0xa3, 0x67, 0xb0,
+	0x56, 0xeb, 0xea, 0x84, 0xd1, 0x31, 0xd7, 0x42, 0x74, 0x67, 0xf2, 0x85, 0x91, 0xdf, 0x9b, 0x53,
+	0xe9, 0x69, 0x37, 0x4a, 0xf4, 0x00, 0x96, 0xab, 0xcc, 0xa1, 0xc4, 0x0c, 0x9d, 0xdd, 0x18, 0xb9,
+	0xa0, 0x48, 0xfe, 0x27, 0x73, 0x0a, 0x06, 0x99, 0x76, 0x63, 0x07, 0x4f, 0xde, 0x7d, 0xdc, 0x32,
+	0x58, 0xdb, 0x3b, 0xcd, 0x36, 0x6c, 0x33, 0x67, 0x77, 0xa9, 0xd5, 0xb0, 0x1d, 0x3d, 0x17, 0xdc,
+	0xe1, 0x76, 0xcc, 0xfe, 0xea, 0x77, 0x0c, 0x8b, 0x51, 0xa7, 0x49, 0x1a, 0x34, 0x77, 0xb6, 0x9f,
+	0x6b, 0xd9, 0x39, 0xdd, 0x34, 0x4e, 0xe7, 0x79, 0xea, 0xfd, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff,
+	0x6c, 0x0c, 0x39, 0xe6, 0x06, 0x10, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1071,6 +1074,8 @@
 	// The default behavior of the device is to report all the supported events
 	// This configuration is persisted across reboots of the device or the device manager
 	UpdateEventsConfiguration(ctx context.Context, in *EventsConfigurationRequest, opts ...grpc.CallOption) (*EventsConfigurationResponse, error)
+	// Initiate the server streaming of the events
+	StreamEvents(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (NativeEventsManagementService_StreamEventsClient, error)
 }
 
 type nativeEventsManagementServiceClient struct {
@@ -1099,6 +1104,38 @@
 	return out, nil
 }
 
+func (c *nativeEventsManagementServiceClient) StreamEvents(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (NativeEventsManagementService_StreamEventsClient, error) {
+	stream, err := c.cc.NewStream(ctx, &_NativeEventsManagementService_serviceDesc.Streams[0], "/dmi.NativeEventsManagementService/StreamEvents", opts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &nativeEventsManagementServiceStreamEventsClient{stream}
+	if err := x.ClientStream.SendMsg(in); err != nil {
+		return nil, err
+	}
+	if err := x.ClientStream.CloseSend(); err != nil {
+		return nil, err
+	}
+	return x, nil
+}
+
+type NativeEventsManagementService_StreamEventsClient interface {
+	Recv() (*Event, error)
+	grpc.ClientStream
+}
+
+type nativeEventsManagementServiceStreamEventsClient struct {
+	grpc.ClientStream
+}
+
+func (x *nativeEventsManagementServiceStreamEventsClient) Recv() (*Event, error) {
+	m := new(Event)
+	if err := x.ClientStream.RecvMsg(m); err != nil {
+		return nil, err
+	}
+	return m, nil
+}
+
 // NativeEventsManagementServiceServer is the server API for NativeEventsManagementService service.
 type NativeEventsManagementServiceServer interface {
 	// List the supported events for the passed device
@@ -1107,6 +1144,8 @@
 	// The default behavior of the device is to report all the supported events
 	// This configuration is persisted across reboots of the device or the device manager
 	UpdateEventsConfiguration(context.Context, *EventsConfigurationRequest) (*EventsConfigurationResponse, error)
+	// Initiate the server streaming of the events
+	StreamEvents(*empty.Empty, NativeEventsManagementService_StreamEventsServer) error
 }
 
 // UnimplementedNativeEventsManagementServiceServer can be embedded to have forward compatible implementations.
@@ -1119,6 +1158,9 @@
 func (*UnimplementedNativeEventsManagementServiceServer) UpdateEventsConfiguration(ctx context.Context, req *EventsConfigurationRequest) (*EventsConfigurationResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method UpdateEventsConfiguration not implemented")
 }
+func (*UnimplementedNativeEventsManagementServiceServer) StreamEvents(req *empty.Empty, srv NativeEventsManagementService_StreamEventsServer) error {
+	return status.Errorf(codes.Unimplemented, "method StreamEvents not implemented")
+}
 
 func RegisterNativeEventsManagementServiceServer(s *grpc.Server, srv NativeEventsManagementServiceServer) {
 	s.RegisterService(&_NativeEventsManagementService_serviceDesc, srv)
@@ -1160,6 +1202,27 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _NativeEventsManagementService_StreamEvents_Handler(srv interface{}, stream grpc.ServerStream) error {
+	m := new(empty.Empty)
+	if err := stream.RecvMsg(m); err != nil {
+		return err
+	}
+	return srv.(NativeEventsManagementServiceServer).StreamEvents(m, &nativeEventsManagementServiceStreamEventsServer{stream})
+}
+
+type NativeEventsManagementService_StreamEventsServer interface {
+	Send(*Event) error
+	grpc.ServerStream
+}
+
+type nativeEventsManagementServiceStreamEventsServer struct {
+	grpc.ServerStream
+}
+
+func (x *nativeEventsManagementServiceStreamEventsServer) Send(m *Event) error {
+	return x.ServerStream.SendMsg(m)
+}
+
 var _NativeEventsManagementService_serviceDesc = grpc.ServiceDesc{
 	ServiceName: "dmi.NativeEventsManagementService",
 	HandlerType: (*NativeEventsManagementServiceServer)(nil),
@@ -1173,6 +1236,12 @@
 			Handler:    _NativeEventsManagementService_UpdateEventsConfiguration_Handler,
 		},
 	},
-	Streams:  []grpc.StreamDesc{},
+	Streams: []grpc.StreamDesc{
+		{
+			StreamName:    "StreamEvents",
+			Handler:       _NativeEventsManagementService_StreamEvents_Handler,
+			ServerStreams: true,
+		},
+	},
 	Metadata: "dmi/hw_events_mgmt_service.proto",
 }
diff --git a/go/dmi/hw_metrics_mgmt_service.pb.go b/go/dmi/hw_metrics_mgmt_service.pb.go
index e3d211f..93426b0 100644
--- a/go/dmi/hw_metrics_mgmt_service.pb.go
+++ b/go/dmi/hw_metrics_mgmt_service.pb.go
@@ -7,6 +7,7 @@
 	context "context"
 	fmt "fmt"
 	proto "github.com/golang/protobuf/proto"
+	empty "github.com/golang/protobuf/ptypes/empty"
 	grpc "google.golang.org/grpc"
 	codes "google.golang.org/grpc/codes"
 	status "google.golang.org/grpc/status"
@@ -587,7 +588,7 @@
 	return ""
 }
 
-// The Metrics are conveyed to external systems by submitting them on a kafka bus.
+// The Metrics are conveyed to external systems either by submitting them on a message bus or using gRPC server streaming.
 // The topic to which are Metrics are submitted would be configured as startup
 // configuration of the components
 type Metric struct {
@@ -774,82 +775,85 @@
 func init() { proto.RegisterFile("dmi/hw_metrics_mgmt_service.proto", fileDescriptor_6b6c2f1384c11ff5) }
 
 var fileDescriptor_6b6c2f1384c11ff5 = []byte{
-	// 1198 bytes of a gzipped FileDescriptorProto
+	// 1242 bytes of a gzipped FileDescriptorProto
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4d, 0x6f, 0xdb, 0x46,
-	0x13, 0x36, 0xa9, 0xc4, 0x89, 0x57, 0xb6, 0x42, 0xaf, 0xf3, 0xa1, 0x38, 0xc9, 0x1b, 0x59, 0xc1,
-	0x5b, 0x08, 0x69, 0x23, 0x07, 0x0e, 0x8a, 0x7e, 0xe5, 0x50, 0x9a, 0xdc, 0xd8, 0x44, 0x28, 0x4a,
-	0x58, 0x91, 0x72, 0xd2, 0x43, 0x17, 0x1b, 0x71, 0x23, 0x13, 0x10, 0x49, 0x95, 0xa4, 0x9c, 0x9f,
-	0x50, 0xf4, 0xd6, 0xb4, 0xe8, 0x4f, 0x68, 0x4f, 0xfd, 0xfe, 0x01, 0xbd, 0x15, 0xe8, 0xe7, 0xbd,
-	0xfd, 0x1f, 0x6d, 0x81, 0xde, 0x0a, 0xee, 0x52, 0xca, 0x5a, 0x96, 0x9b, 0xba, 0xe8, 0x4d, 0x7a,
-	0xe6, 0x99, 0x99, 0x67, 0x66, 0x96, 0xb3, 0x0b, 0x36, 0xfc, 0x30, 0xd8, 0xdc, 0x7f, 0x42, 0x42,
-	0x96, 0x25, 0x41, 0x3f, 0x25, 0xe1, 0x20, 0xcc, 0x48, 0xca, 0x92, 0x83, 0xa0, 0xcf, 0x9a, 0xa3,
-	0x24, 0xce, 0x62, 0x58, 0xf2, 0xc3, 0x60, 0x7d, 0x35, 0xe7, 0xf5, 0xe3, 0x30, 0x8c, 0xa3, 0x54,
-	0xe0, 0xeb, 0xcb, 0xc2, 0x55, 0xfc, 0xab, 0xbf, 0xab, 0x80, 0xe5, 0x16, 0x0f, 0x62, 0xc4, 0xd1,
-	0xe3, 0x60, 0x00, 0x6f, 0x81, 0x25, 0x11, 0x94, 0x04, 0x7e, 0x55, 0xa9, 0x29, 0x8d, 0xca, 0x96,
-	0xd6, 0xf4, 0xc3, 0xa0, 0x29, 0x58, 0x0e, 0x0d, 0x59, 0x8a, 0xcf, 0x0a, 0x8a, 0xe5, 0xc3, 0x1b,
-	0x60, 0x25, 0x48, 0x49, 0x9f, 0xfb, 0x8e, 0x13, 0xe6, 0x57, 0xd5, 0x9a, 0xd2, 0x38, 0x8b, 0x97,
-	0x83, 0xd4, 0x98, 0x62, 0x39, 0x69, 0x14, 0x0f, 0x87, 0x24, 0x88, 0x32, 0x96, 0x1c, 0xd0, 0x61,
-	0xb5, 0x54, 0x53, 0x1a, 0x2b, 0x78, 0x39, 0x07, 0xad, 0x02, 0xab, 0xdf, 0x05, 0x2b, 0x22, 0x45,
-	0xe1, 0x09, 0x5f, 0x04, 0x67, 0x8a, 0xf2, 0xaa, 0x4a, 0xad, 0xd4, 0x28, 0x6f, 0xad, 0x4a, 0x3a,
-	0x04, 0x07, 0x4f, 0x18, 0xf5, 0x4f, 0x54, 0xb0, 0x66, 0x07, 0x69, 0x56, 0x84, 0xc0, 0x2c, 0x1d,
-	0xc5, 0x51, 0xca, 0xe0, 0x0d, 0xb0, 0x98, 0x66, 0x34, 0x1b, 0xa7, 0x45, 0x2d, 0x65, 0x1e, 0xa3,
-	0xcb, 0x21, 0x5c, 0x98, 0xe0, 0x2b, 0x60, 0x31, 0x61, 0x34, 0x8d, 0x23, 0xae, 0xbe, 0xb2, 0x75,
-	0x9d, 0x93, 0xe6, 0x84, 0x6b, 0x62, 0x4e, 0xc3, 0x05, 0x1d, 0xbe, 0xf4, 0x4c, 0x62, 0x5e, 0x52,
-	0x79, 0x0b, 0x4a, 0x12, 0xd3, 0x19, 0x8d, 0x79, 0x1b, 0x84, 0x1f, 0xf1, 0x59, 0x46, 0x83, 0x61,
-	0xf5, 0x54, 0x4d, 0x69, 0x2c, 0xe1, 0x65, 0x01, 0x9a, 0x1c, 0xab, 0xbf, 0x0d, 0x16, 0x45, 0x12,
-	0x78, 0x1e, 0x68, 0x9e, 0x63, 0xa2, 0x7b, 0x96, 0x83, 0x4c, 0x82, 0x91, 0xde, 0x6d, 0x3b, 0xda,
-	0x02, 0x84, 0xa0, 0xe2, 0x39, 0xf7, 0x9d, 0xf6, 0x9e, 0x43, 0x4c, 0xd4, 0xb3, 0x0c, 0xa4, 0x29,
-	0x39, 0x66, 0x39, 0x2e, 0xc2, 0x8e, 0x6e, 0x13, 0x84, 0x71, 0x1b, 0x6b, 0x2a, 0xbc, 0x08, 0xa0,
-	0xb0, 0x13, 0xcf, 0xc1, 0x48, 0x37, 0x76, 0xf5, 0x6d, 0x1b, 0x69, 0xa5, 0xfa, 0xd7, 0x0a, 0xb8,
-	0x72, 0x48, 0xdf, 0x38, 0xa1, 0x59, 0x10, 0x47, 0x98, 0xbd, 0x33, 0x66, 0x69, 0x06, 0x6f, 0x82,
-	0xb2, 0xcf, 0xf2, 0x63, 0x44, 0xc6, 0xe3, 0xe2, 0x04, 0x94, 0xb7, 0x96, 0x78, 0x59, 0xde, 0x38,
-	0xf0, 0x31, 0x10, 0xd6, 0xfc, 0x37, 0x6c, 0x82, 0x33, 0xfd, 0x7d, 0x1a, 0x0d, 0x58, 0xca, 0x1b,
-	0x37, 0xb7, 0xfc, 0xdd, 0x05, 0x3c, 0x21, 0xc1, 0x9b, 0x40, 0x4b, 0x58, 0xca, 0x32, 0x92, 0xc5,
-	0xc4, 0x67, 0x8f, 0xe9, 0x78, 0x98, 0xf1, 0xbe, 0x9d, 0xdd, 0x5d, 0xc0, 0x15, 0x6e, 0x71, 0x63,
-	0x53, 0xe0, 0xdb, 0x65, 0xb0, 0x14, 0x8f, 0x98, 0xd0, 0x56, 0xff, 0x46, 0x05, 0x57, 0xe7, 0x8b,
-	0x3e, 0xc9, 0x98, 0xdf, 0x9c, 0x19, 0x73, 0xe3, 0xa8, 0xda, 0x99, 0xb8, 0xb3, 0xf3, 0x3e, 0x32,
-	0xc1, 0xd2, 0x9c, 0x09, 0x3e, 0x55, 0xfe, 0xa3, 0x11, 0x5e, 0x03, 0x97, 0x3b, 0x6d, 0xdb, 0x26,
-	0xdc, 0xd0, 0xd3, 0x6d, 0xe2, 0x39, 0x5d, 0xaf, 0xd3, 0x69, 0x63, 0x17, 0x99, 0x5a, 0x49, 0xb8,
-	0xf4, 0x74, 0xdb, 0x32, 0x49, 0x0b, 0xb9, 0xd8, 0x32, 0xb4, 0x53, 0xc7, 0x4c, 0xfd, 0x74, 0xfd,
-	0x23, 0x05, 0x54, 0x44, 0xa1, 0x2d, 0x96, 0x51, 0x93, 0x66, 0xf4, 0x44, 0x83, 0xbe, 0x0d, 0x2a,
-	0xfd, 0x38, 0x1c, 0xc5, 0x11, 0x8b, 0x32, 0x41, 0x57, 0x67, 0xe9, 0x2b, 0x53, 0x02, 0xf7, 0xf8,
-	0xbf, 0xec, 0x11, 0xd1, 0x90, 0x15, 0xad, 0x7a, 0x46, 0xcb, 0x37, 0x49, 0xfd, 0x63, 0x05, 0x2c,
-	0x0a, 0x5d, 0x27, 0x5d, 0x3c, 0x77, 0xc1, 0xb9, 0x82, 0x1e, 0xb2, 0x8c, 0xfa, 0x34, 0xa3, 0x85,
-	0xa6, 0x35, 0xc9, 0x69, 0x52, 0x2c, 0xae, 0x84, 0xd3, 0xff, 0x39, 0x15, 0x36, 0xc1, 0xe9, 0x03,
-	0x3a, 0x1c, 0xb3, 0xe2, 0xb3, 0xad, 0x72, 0x1f, 0x63, 0x22, 0xad, 0xcb, 0xa2, 0x34, 0x4e, 0xb8,
-	0xa3, 0xa0, 0xd5, 0x53, 0xa0, 0xed, 0xb0, 0x62, 0x1b, 0x4c, 0xbe, 0x94, 0xdb, 0x5c, 0x30, 0x25,
-	0x3c, 0xb7, 0x72, 0x7c, 0xee, 0x5c, 0xb3, 0x68, 0xf9, 0xa1, 0x12, 0xd5, 0xe7, 0x95, 0x58, 0xff,
-	0x56, 0x05, 0xab, 0x52, 0xd6, 0x93, 0x1c, 0xf5, 0x97, 0x67, 0x8e, 0xfa, 0x35, 0x4e, 0x3a, 0x12,
-	0xec, 0xe8, 0xf9, 0x5e, 0x14, 0xd9, 0x8b, 0xbe, 0x94, 0x25, 0x75, 0xb8, 0x30, 0xfd, 0xb3, 0x35,
-	0xf6, 0xde, 0xbf, 0xf9, 0x08, 0x2e, 0x80, 0xd5, 0x09, 0x66, 0xb4, 0x5b, 0x9d, 0xb6, 0x83, 0x1c,
-	0x57, 0x53, 0xe7, 0x7c, 0x1b, 0x27, 0x3a, 0xfc, 0x37, 0x7f, 0x3d, 0x0d, 0xca, 0x52, 0x87, 0xe1,
-	0x65, 0x70, 0x41, 0xf8, 0x10, 0x47, 0x6f, 0xe5, 0xe4, 0x42, 0x9c, 0xb6, 0x90, 0x6b, 0x2d, 0x4c,
-	0xf7, 0x74, 0x87, 0x74, 0x3b, 0x08, 0x99, 0x9a, 0x02, 0xd7, 0xc0, 0xb9, 0x02, 0x35, 0x3a, 0x1e,
-	0x71, 0x51, 0xab, 0xa3, 0xf9, 0xf0, 0x3a, 0xb8, 0x22, 0x81, 0x5e, 0x57, 0xdf, 0x41, 0xa4, 0x83,
-	0xb0, 0x81, 0x1c, 0x57, 0xdf, 0x41, 0x1a, 0x83, 0x57, 0xc1, 0xa5, 0x82, 0xe0, 0x62, 0xdd, 0xe9,
-	0x1a, 0xc8, 0xea, 0x21, 0x2c, 0xbc, 0xbf, 0x53, 0xe0, 0x75, 0xb0, 0x3e, 0xc7, 0xda, 0x6b, 0xdb,
-	0xdc, 0xfb, 0x7b, 0xe5, 0x18, 0xf7, 0x6d, 0x4b, 0xef, 0x6a, 0x3f, 0x28, 0xb0, 0x36, 0xcd, 0x2e,
-	0x5b, 0xf1, 0x03, 0xd2, 0x69, 0xef, 0x21, 0xac, 0xfd, 0x78, 0x1c, 0xc3, 0x9d, 0x30, 0x7e, 0x52,
-	0x60, 0x1d, 0x5c, 0x9b, 0xc3, 0xd8, 0xd3, 0x7b, 0xc8, 0x46, 0xce, 0x8e, 0xbb, 0xab, 0xfd, 0x9c,
-	0x8f, 0x64, 0xd2, 0x10, 0xd3, 0xea, 0xde, 0x17, 0xea, 0x3f, 0x55, 0xe1, 0x65, 0x70, 0x5e, 0x86,
-	0x0d, 0xbd, 0xa3, 0x1b, 0x96, 0xfb, 0x50, 0xfb, 0x2c, 0xbf, 0x78, 0x56, 0x65, 0x13, 0x6f, 0x8c,
-	0xf6, 0xb9, 0x0a, 0x37, 0xc0, 0xd5, 0x23, 0xb8, 0xdc, 0xb0, 0x2f, 0x54, 0xf8, 0x02, 0xd8, 0x90,
-	0x29, 0x18, 0xe9, 0x26, 0xd9, 0xc3, 0x96, 0x7b, 0x88, 0xf7, 0xa5, 0x0a, 0x1b, 0xe0, 0x86, 0xcc,
-	0xbb, 0xa7, 0x7b, 0xb6, 0xfb, 0x90, 0x18, 0xc8, 0xb6, 0xbb, 0x32, 0xf3, 0x2b, 0x15, 0x9e, 0x9f,
-	0x4e, 0x0e, 0xeb, 0x2d, 0xa1, 0xfe, 0xfd, 0x12, 0xac, 0x82, 0x35, 0x09, 0x9d, 0x8a, 0x7f, 0x5a,
-	0x92, 0xca, 0xcd, 0x2d, 0x42, 0xfb, 0x07, 0x25, 0xa9, 0x97, 0x53, 0x58, 0x4e, 0xf4, 0xa1, 0xec,
-	0xc8, 0xdb, 0x4b, 0x5a, 0xfa, 0x03, 0xed, 0xb7, 0x12, 0xbc, 0x04, 0xe0, 0x21, 0x58, 0x44, 0xfc,
-	0xbd, 0x24, 0xf5, 0x5e, 0x32, 0xc8, 0x31, 0xff, 0x90, 0x39, 0x96, 0xe3, 0x20, 0x4c, 0xba, 0x1e,
-	0xc6, 0x6d, 0xcf, 0x31, 0x2d, 0x67, 0x47, 0x94, 0xf2, 0xcb, 0xa9, 0xad, 0x3f, 0x15, 0xf0, 0x3f,
-	0x87, 0x66, 0xc1, 0x01, 0x2b, 0xee, 0xb1, 0x16, 0x8d, 0xe8, 0x80, 0x85, 0x7c, 0x8b, 0xf1, 0xe7,
-	0x20, 0x7c, 0x15, 0x94, 0xa5, 0xa7, 0x0c, 0x3c, 0xc7, 0xbf, 0xe9, 0x5d, 0x9a, 0xf8, 0x4f, 0x68,
-	0xc2, 0x2c, 0x73, 0xbd, 0x7a, 0xdc, 0x6b, 0x07, 0x52, 0xb0, 0xee, 0x8d, 0x7c, 0x9a, 0xb1, 0x79,
-	0x77, 0x24, 0xac, 0xfd, 0xcd, 0xf5, 0xc9, 0x37, 0xe4, 0xfa, 0xc6, 0x73, 0x2f, 0x58, 0xf8, 0x3a,
-	0x58, 0x9a, 0x6e, 0x25, 0x78, 0x61, 0x76, 0x4b, 0x89, 0x30, 0x17, 0xe7, 0x2f, 0xaf, 0xed, 0x37,
-	0xde, 0x7a, 0x6d, 0x10, 0x64, 0xfb, 0xe3, 0x47, 0xcd, 0x7e, 0x1c, 0x6e, 0xc6, 0x23, 0x16, 0xf5,
-	0xe3, 0xc4, 0xdf, 0x14, 0xf7, 0xd6, 0xad, 0x70, 0xda, 0x88, 0x5b, 0xfc, 0xdd, 0xf9, 0x98, 0xf6,
-	0xd9, 0xe6, 0xc1, 0x9d, 0xcd, 0x41, 0xbc, 0xe9, 0x87, 0xc1, 0xa3, 0x45, 0xfe, 0xfe, 0xbd, 0xf3,
-	0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa4, 0xee, 0x26, 0xad, 0x4a, 0x0b, 0x00, 0x00,
+	0x13, 0x36, 0xa9, 0xc4, 0x89, 0x57, 0xb6, 0x42, 0xaf, 0xf3, 0xa1, 0x28, 0xc9, 0x1b, 0x59, 0xc1,
+	0x5b, 0x08, 0x69, 0x23, 0x05, 0x0e, 0xfa, 0x9d, 0x43, 0x69, 0x72, 0x63, 0x13, 0x91, 0x28, 0x61,
+	0x45, 0xda, 0x49, 0x0f, 0x5d, 0x6c, 0xc4, 0xb5, 0x4c, 0x40, 0x24, 0x55, 0x92, 0x72, 0xd0, 0x5f,
+	0x50, 0xf4, 0xd6, 0xb4, 0xe8, 0x4f, 0x68, 0x4f, 0xfd, 0x4a, 0x7f, 0x40, 0x6f, 0x05, 0xfa, 0x79,
+	0x6f, 0xff, 0x47, 0xdb, 0x73, 0xc1, 0x5d, 0x4a, 0x59, 0xcb, 0x72, 0x53, 0x17, 0xbd, 0x49, 0xcf,
+	0x3c, 0x33, 0xf3, 0xcc, 0xcc, 0x72, 0x76, 0xc1, 0xba, 0x17, 0xf8, 0xcd, 0xfd, 0xc7, 0x24, 0x60,
+	0x69, 0xec, 0xf7, 0x13, 0x12, 0x0c, 0x82, 0x94, 0x24, 0x2c, 0x3e, 0xf0, 0xfb, 0xac, 0x31, 0x8a,
+	0xa3, 0x34, 0x82, 0x05, 0x2f, 0xf0, 0x2b, 0xab, 0x19, 0xaf, 0x1f, 0x05, 0x41, 0x14, 0x26, 0x02,
+	0xaf, 0x2c, 0x0b, 0xd7, 0xfc, 0xdf, 0x95, 0x41, 0x14, 0x0d, 0x86, 0xac, 0xc9, 0xff, 0x3d, 0x1a,
+	0xef, 0x35, 0x59, 0x30, 0x4a, 0xdf, 0x13, 0xc6, 0xda, 0xfb, 0x0a, 0x58, 0x6e, 0xf3, 0x0c, 0x46,
+	0x14, 0xee, 0xf9, 0x03, 0x78, 0x0b, 0x2c, 0x89, 0x8c, 0xc4, 0xf7, 0xca, 0x4a, 0x55, 0xa9, 0x97,
+	0x36, 0xb4, 0x86, 0x17, 0xf8, 0x0d, 0xc1, 0xb2, 0x69, 0xc0, 0x12, 0x7c, 0x56, 0x50, 0x2c, 0x0f,
+	0xde, 0x00, 0x2b, 0x7e, 0x42, 0xfa, 0xdc, 0x77, 0x1c, 0x33, 0xaf, 0xac, 0x56, 0x95, 0xfa, 0x59,
+	0xbc, 0xec, 0x27, 0xc6, 0x14, 0xcb, 0x48, 0xa3, 0x68, 0x38, 0x24, 0x7e, 0x98, 0xb2, 0xf8, 0x80,
+	0x0e, 0xcb, 0x85, 0xaa, 0x52, 0x5f, 0xc1, 0xcb, 0x19, 0x68, 0xe5, 0x58, 0xed, 0x2e, 0x58, 0x11,
+	0x29, 0x72, 0x4f, 0xf8, 0x22, 0x38, 0x93, 0xd7, 0x5e, 0x56, 0xaa, 0x85, 0x7a, 0x71, 0x63, 0x55,
+	0xd2, 0x21, 0x38, 0x78, 0xc2, 0xa8, 0x7d, 0xa6, 0x82, 0xb5, 0x96, 0x9f, 0xa4, 0x79, 0x08, 0xcc,
+	0x92, 0x51, 0x14, 0x26, 0x0c, 0xde, 0x00, 0x8b, 0x49, 0x4a, 0xd3, 0x71, 0x92, 0xd7, 0x52, 0xe4,
+	0x31, 0x7a, 0x1c, 0xc2, 0xb9, 0x09, 0xbe, 0x0a, 0x16, 0x63, 0x46, 0x93, 0x28, 0xe4, 0xea, 0x4b,
+	0x1b, 0xd7, 0x39, 0x69, 0x4e, 0xb8, 0x06, 0xe6, 0x34, 0x9c, 0xd3, 0xe1, 0x4b, 0xcf, 0x24, 0x66,
+	0x25, 0x15, 0x37, 0xa0, 0x24, 0x31, 0x99, 0xd1, 0x98, 0xb5, 0x41, 0xf8, 0x11, 0x8f, 0xa5, 0xd4,
+	0x1f, 0x96, 0x4f, 0x55, 0x95, 0xfa, 0x12, 0x5e, 0x16, 0xa0, 0xc9, 0xb1, 0xda, 0x3b, 0x60, 0x51,
+	0x24, 0x81, 0xe7, 0x81, 0xe6, 0xda, 0x26, 0xba, 0x67, 0xd9, 0xc8, 0x24, 0x18, 0xe9, 0xbd, 0x8e,
+	0xad, 0x2d, 0x40, 0x08, 0x4a, 0xae, 0x7d, 0xdf, 0xee, 0xec, 0xda, 0xc4, 0x44, 0x3b, 0x96, 0x81,
+	0x34, 0x25, 0xc3, 0x2c, 0xdb, 0x41, 0xd8, 0xd6, 0x5b, 0x04, 0x61, 0xdc, 0xc1, 0x9a, 0x0a, 0x2f,
+	0x02, 0x28, 0xec, 0xc4, 0xb5, 0x31, 0xd2, 0x8d, 0x6d, 0x7d, 0xb3, 0x85, 0xb4, 0x42, 0xed, 0x1b,
+	0x05, 0x5c, 0x39, 0xa4, 0x6f, 0x1c, 0xd3, 0xd4, 0x8f, 0x42, 0xcc, 0xde, 0x1d, 0xb3, 0x24, 0x85,
+	0x37, 0x41, 0xd1, 0x63, 0xd9, 0x19, 0x23, 0xe3, 0x71, 0x7e, 0x02, 0x8a, 0x1b, 0x4b, 0xbc, 0x2c,
+	0x77, 0xec, 0x7b, 0x18, 0x08, 0x6b, 0xf6, 0x1b, 0x36, 0xc0, 0x99, 0xfe, 0x3e, 0x0d, 0x07, 0x2c,
+	0xe1, 0x8d, 0x9b, 0x5b, 0xfe, 0xf6, 0x02, 0x9e, 0x90, 0xe0, 0x4d, 0xa0, 0xc5, 0x2c, 0x61, 0x29,
+	0x49, 0x23, 0xe2, 0xb1, 0x3d, 0x3a, 0x1e, 0xa6, 0xbc, 0x6f, 0x67, 0xb7, 0x17, 0x70, 0x89, 0x5b,
+	0x9c, 0xc8, 0x14, 0xf8, 0x66, 0x11, 0x2c, 0x45, 0x23, 0x26, 0xb4, 0xd5, 0xbe, 0x55, 0xc1, 0xd5,
+	0xf9, 0xa2, 0x4f, 0x32, 0xe6, 0xb7, 0x66, 0xc6, 0x5c, 0x3f, 0xaa, 0x76, 0x26, 0xee, 0xec, 0xbc,
+	0x8f, 0x4c, 0xb0, 0x30, 0x67, 0x82, 0x4f, 0x94, 0xff, 0x68, 0x84, 0xd7, 0xc0, 0xe5, 0x6e, 0xa7,
+	0xd5, 0x22, 0xdc, 0xb0, 0xa3, 0xb7, 0x88, 0x6b, 0xf7, 0xdc, 0x6e, 0xb7, 0x83, 0x1d, 0x64, 0x6a,
+	0x05, 0xe1, 0xb2, 0xa3, 0xb7, 0x2c, 0x93, 0xb4, 0x91, 0x83, 0x2d, 0x43, 0x3b, 0x75, 0xcc, 0xd4,
+	0x4f, 0xd7, 0x3e, 0x51, 0x40, 0x49, 0x14, 0xda, 0x66, 0x29, 0x35, 0x69, 0x4a, 0x4f, 0x34, 0xe8,
+	0xdb, 0xa0, 0xd4, 0x8f, 0x82, 0x51, 0x14, 0xb2, 0x30, 0x15, 0x74, 0x75, 0x96, 0xbe, 0x32, 0x25,
+	0x70, 0x8f, 0xff, 0xcb, 0x1e, 0x21, 0x0d, 0x58, 0xde, 0xaa, 0x67, 0xb4, 0x6c, 0x93, 0xd4, 0x3e,
+	0x55, 0xc0, 0xa2, 0xd0, 0x75, 0xd2, 0xc5, 0x73, 0x17, 0x9c, 0xcb, 0xe9, 0x01, 0x4b, 0xa9, 0x47,
+	0x53, 0x9a, 0x6b, 0x5a, 0x93, 0x9c, 0x26, 0xc5, 0xe2, 0x52, 0x30, 0xfd, 0x9f, 0x51, 0x61, 0x03,
+	0x9c, 0x3e, 0xa0, 0xc3, 0x31, 0xcb, 0x3f, 0xdb, 0x32, 0xf7, 0x31, 0x26, 0xd2, 0x7a, 0x2c, 0x4c,
+	0xa2, 0x98, 0x3b, 0x0a, 0x5a, 0x2d, 0x01, 0xda, 0x16, 0xcb, 0xb7, 0xc1, 0xe4, 0x4b, 0xb9, 0xcd,
+	0x05, 0x53, 0xc2, 0x73, 0x2b, 0xc7, 0xe7, 0xce, 0x34, 0x8b, 0x96, 0x1f, 0x2a, 0x51, 0x7d, 0x5e,
+	0x89, 0xb5, 0xef, 0x54, 0xb0, 0x2a, 0x65, 0x3d, 0xc9, 0x51, 0x7f, 0x79, 0xe6, 0xa8, 0x5f, 0xe3,
+	0xa4, 0x23, 0xc1, 0x8e, 0x9e, 0xef, 0x45, 0x91, 0x3d, 0xef, 0x4b, 0x51, 0x52, 0x87, 0x73, 0xd3,
+	0x3f, 0x5b, 0x63, 0x1f, 0xfc, 0x9b, 0x8f, 0xe0, 0x02, 0x58, 0x9d, 0x60, 0x46, 0xa7, 0xdd, 0xed,
+	0xd8, 0xc8, 0x76, 0x34, 0x75, 0xce, 0xb7, 0x71, 0xa2, 0xc3, 0x7f, 0xf3, 0xb7, 0xd3, 0xa0, 0x28,
+	0x75, 0x18, 0x5e, 0x06, 0x17, 0x84, 0x0f, 0xb1, 0xf5, 0x76, 0x46, 0xce, 0xc5, 0x69, 0x0b, 0x99,
+	0xd6, 0xdc, 0x74, 0x4f, 0xb7, 0x49, 0xaf, 0x8b, 0x90, 0xa9, 0x29, 0x70, 0x0d, 0x9c, 0xcb, 0x51,
+	0xa3, 0xeb, 0x12, 0x07, 0xb5, 0xbb, 0x9a, 0x07, 0xaf, 0x83, 0x2b, 0x12, 0xe8, 0xf6, 0xf4, 0x2d,
+	0x44, 0xba, 0x08, 0x1b, 0xc8, 0x76, 0xf4, 0x2d, 0xa4, 0x31, 0x78, 0x15, 0x5c, 0xca, 0x09, 0x0e,
+	0xd6, 0xed, 0x9e, 0x81, 0xac, 0x1d, 0x84, 0x85, 0xf7, 0xf7, 0x0a, 0xbc, 0x0e, 0x2a, 0x73, 0xac,
+	0x3b, 0x9d, 0x16, 0xf7, 0xfe, 0x41, 0x39, 0xc6, 0x7d, 0xd3, 0xd2, 0x7b, 0xda, 0x8f, 0x0a, 0xac,
+	0x4e, 0xb3, 0xcb, 0x56, 0xfc, 0x80, 0x74, 0x3b, 0xbb, 0x08, 0x6b, 0x3f, 0x1d, 0xc7, 0x70, 0x26,
+	0x8c, 0x9f, 0x15, 0x58, 0x03, 0xd7, 0xe6, 0x30, 0x76, 0xf5, 0x1d, 0xd4, 0x42, 0xf6, 0x96, 0xb3,
+	0xad, 0xfd, 0x92, 0x8d, 0x64, 0xd2, 0x10, 0xd3, 0xea, 0xdd, 0x17, 0xea, 0x3f, 0x57, 0xe1, 0x65,
+	0x70, 0x5e, 0x86, 0x0d, 0xbd, 0xab, 0x1b, 0x96, 0xf3, 0x50, 0xfb, 0x22, 0xbb, 0x78, 0x56, 0x65,
+	0x13, 0x6f, 0x8c, 0xf6, 0xa5, 0x0a, 0xd7, 0xc1, 0xd5, 0x23, 0xb8, 0xdc, 0xb0, 0xaf, 0x54, 0xf8,
+	0x02, 0x58, 0x97, 0x29, 0x18, 0xe9, 0x26, 0xd9, 0xc5, 0x96, 0x73, 0x88, 0xf7, 0xb5, 0x0a, 0xeb,
+	0xe0, 0x86, 0xcc, 0xbb, 0xa7, 0xbb, 0x2d, 0xe7, 0x21, 0x31, 0x50, 0xab, 0xd5, 0x93, 0x99, 0x4f,
+	0x55, 0x78, 0x7e, 0x3a, 0x39, 0xac, 0xb7, 0x85, 0xfa, 0x0f, 0x0b, 0xb0, 0x0c, 0xd6, 0x24, 0x74,
+	0x2a, 0xfe, 0x49, 0x41, 0x2a, 0x37, 0xb3, 0x08, 0xed, 0x1f, 0x15, 0xa4, 0x5e, 0x4e, 0x61, 0x39,
+	0xd1, 0xc7, 0xb2, 0x23, 0x6f, 0x2f, 0x69, 0xeb, 0x0f, 0xb4, 0xdf, 0x0b, 0xf0, 0x12, 0x80, 0x87,
+	0x60, 0x11, 0xf1, 0x8f, 0x82, 0xd4, 0x7b, 0xc9, 0x20, 0xc7, 0xfc, 0x53, 0xe6, 0x58, 0xb6, 0x8d,
+	0x30, 0xe9, 0xb9, 0x18, 0x77, 0x5c, 0xdb, 0xb4, 0xec, 0x2d, 0x51, 0xca, 0xaf, 0xa7, 0x36, 0x9e,
+	0xaa, 0xe0, 0x7f, 0x36, 0x4d, 0xfd, 0x03, 0x96, 0xdf, 0x63, 0x6d, 0x1a, 0xd2, 0x01, 0x0b, 0xf8,
+	0x16, 0xe3, 0x6f, 0x45, 0xf8, 0x1a, 0x28, 0x4a, 0x4f, 0x19, 0x78, 0x8e, 0x7f, 0xd3, 0xdb, 0x34,
+	0xf6, 0x1e, 0xd3, 0x98, 0x59, 0x66, 0xa5, 0x7c, 0xdc, 0x6b, 0x07, 0x52, 0x50, 0x71, 0x47, 0x1e,
+	0x4d, 0xd9, 0xbc, 0x3b, 0x12, 0x56, 0xff, 0xe6, 0xfa, 0xe4, 0x1b, 0xb2, 0xb2, 0xfe, 0xdc, 0x0b,
+	0x16, 0xbe, 0x01, 0x96, 0xa6, 0x5b, 0x09, 0x5e, 0x98, 0xdd, 0x52, 0x22, 0xcc, 0xc5, 0xf9, 0xcb,
+	0x0b, 0xbe, 0x02, 0x56, 0x7a, 0x69, 0xcc, 0x68, 0x30, 0x29, 0xed, 0x62, 0x43, 0x3c, 0x75, 0x1b,
+	0x93, 0xa7, 0x6e, 0x03, 0x65, 0x4f, 0xdd, 0x8a, 0xbc, 0xc6, 0x6e, 0x2b, 0x9b, 0x6f, 0xbe, 0xfd,
+	0xfa, 0xc0, 0x4f, 0xf7, 0xc7, 0x8f, 0x1a, 0xfd, 0x28, 0x68, 0x46, 0x23, 0x16, 0xf6, 0xa3, 0xd8,
+	0x6b, 0x8a, 0xfb, 0xee, 0x56, 0x30, 0x6d, 0xe0, 0x2d, 0xfe, 0x5e, 0xdd, 0xa3, 0x7d, 0xd6, 0x3c,
+	0xb8, 0xd3, 0x1c, 0x44, 0x4d, 0x2f, 0xf0, 0x1f, 0x2d, 0xf2, 0xd8, 0x77, 0xfe, 0x0a, 0x00, 0x00,
+	0xff, 0xff, 0x04, 0xda, 0xd9, 0x9e, 0x9f, 0x0b, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -876,6 +880,8 @@
 	UpdateMetricsConfiguration(ctx context.Context, in *MetricsConfigurationRequest, opts ...grpc.CallOption) (*MetricsConfigurationResponse, error)
 	// Get the instantenous value of a metric
 	GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*GetMetricResponse, error)
+	// Initiate the server streaming of the metrics
+	StreamMetrics(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (NativeMetricsManagementService_StreamMetricsClient, error)
 }
 
 type nativeMetricsManagementServiceClient struct {
@@ -913,6 +919,38 @@
 	return out, nil
 }
 
+func (c *nativeMetricsManagementServiceClient) StreamMetrics(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (NativeMetricsManagementService_StreamMetricsClient, error) {
+	stream, err := c.cc.NewStream(ctx, &_NativeMetricsManagementService_serviceDesc.Streams[0], "/dmi.NativeMetricsManagementService/StreamMetrics", opts...)
+	if err != nil {
+		return nil, err
+	}
+	x := &nativeMetricsManagementServiceStreamMetricsClient{stream}
+	if err := x.ClientStream.SendMsg(in); err != nil {
+		return nil, err
+	}
+	if err := x.ClientStream.CloseSend(); err != nil {
+		return nil, err
+	}
+	return x, nil
+}
+
+type NativeMetricsManagementService_StreamMetricsClient interface {
+	Recv() (*Metric, error)
+	grpc.ClientStream
+}
+
+type nativeMetricsManagementServiceStreamMetricsClient struct {
+	grpc.ClientStream
+}
+
+func (x *nativeMetricsManagementServiceStreamMetricsClient) Recv() (*Metric, error) {
+	m := new(Metric)
+	if err := x.ClientStream.RecvMsg(m); err != nil {
+		return nil, err
+	}
+	return m, nil
+}
+
 // NativeMetricsManagementServiceServer is the server API for NativeMetricsManagementService service.
 type NativeMetricsManagementServiceServer interface {
 	// List the supported metrics for the passed device.
@@ -927,6 +965,8 @@
 	UpdateMetricsConfiguration(context.Context, *MetricsConfigurationRequest) (*MetricsConfigurationResponse, error)
 	// Get the instantenous value of a metric
 	GetMetric(context.Context, *GetMetricRequest) (*GetMetricResponse, error)
+	// Initiate the server streaming of the metrics
+	StreamMetrics(*empty.Empty, NativeMetricsManagementService_StreamMetricsServer) error
 }
 
 // UnimplementedNativeMetricsManagementServiceServer can be embedded to have forward compatible implementations.
@@ -942,6 +982,9 @@
 func (*UnimplementedNativeMetricsManagementServiceServer) GetMetric(ctx context.Context, req *GetMetricRequest) (*GetMetricResponse, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method GetMetric not implemented")
 }
+func (*UnimplementedNativeMetricsManagementServiceServer) StreamMetrics(req *empty.Empty, srv NativeMetricsManagementService_StreamMetricsServer) error {
+	return status.Errorf(codes.Unimplemented, "method StreamMetrics not implemented")
+}
 
 func RegisterNativeMetricsManagementServiceServer(s *grpc.Server, srv NativeMetricsManagementServiceServer) {
 	s.RegisterService(&_NativeMetricsManagementService_serviceDesc, srv)
@@ -1001,6 +1044,27 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _NativeMetricsManagementService_StreamMetrics_Handler(srv interface{}, stream grpc.ServerStream) error {
+	m := new(empty.Empty)
+	if err := stream.RecvMsg(m); err != nil {
+		return err
+	}
+	return srv.(NativeMetricsManagementServiceServer).StreamMetrics(m, &nativeMetricsManagementServiceStreamMetricsServer{stream})
+}
+
+type NativeMetricsManagementService_StreamMetricsServer interface {
+	Send(*Metric) error
+	grpc.ServerStream
+}
+
+type nativeMetricsManagementServiceStreamMetricsServer struct {
+	grpc.ServerStream
+}
+
+func (x *nativeMetricsManagementServiceStreamMetricsServer) Send(m *Metric) error {
+	return x.ServerStream.SendMsg(m)
+}
+
 var _NativeMetricsManagementService_serviceDesc = grpc.ServiceDesc{
 	ServiceName: "dmi.NativeMetricsManagementService",
 	HandlerType: (*NativeMetricsManagementServiceServer)(nil),
@@ -1018,6 +1082,12 @@
 			Handler:    _NativeMetricsManagementService_GetMetric_Handler,
 		},
 	},
-	Streams:  []grpc.StreamDesc{},
+	Streams: []grpc.StreamDesc{
+		{
+			StreamName:    "StreamMetrics",
+			Handler:       _NativeMetricsManagementService_StreamMetrics_Handler,
+			ServerStreams: true,
+		},
+	},
 	Metadata: "dmi/hw_metrics_mgmt_service.proto",
 }
diff --git a/protos/dmi/hw_events_mgmt_service.proto b/protos/dmi/hw_events_mgmt_service.proto
index 641adbe..db04006 100644
--- a/protos/dmi/hw_events_mgmt_service.proto
+++ b/protos/dmi/hw_events_mgmt_service.proto
@@ -6,6 +6,7 @@
 import "dmi/commons.proto";
 import "dmi/hw.proto";
 import "google/protobuf/timestamp.proto";
+import "google/protobuf/empty.proto";
 
 // Management of Events and protos for encoding of Events
 
@@ -143,8 +144,8 @@
     string component_name = 3;
 }
 
-// The Events are conveyed to external systems by submitting them on a kafka bus.
-// The topic to which are Events are submitted would be configured as startup
+// The Events are conveyed to external systems either by submitting them on a message bus or using gRPC server streaming.
+// The message bus topic to which are Events are submitted would be configured as startup
 // configuration of the components
 
 message Event {
@@ -166,4 +167,7 @@
     // The default behavior of the device is to report all the supported events
     // This configuration is persisted across reboots of the device or the device manager
     rpc UpdateEventsConfiguration(EventsConfigurationRequest) returns(EventsConfigurationResponse);
+
+    // Initiate the server streaming of the events
+    rpc StreamEvents(google.protobuf.Empty) returns(stream Event);
 }
diff --git a/protos/dmi/hw_metrics_mgmt_service.proto b/protos/dmi/hw_metrics_mgmt_service.proto
index 72a8414..2f1a23d 100644
--- a/protos/dmi/hw_metrics_mgmt_service.proto
+++ b/protos/dmi/hw_metrics_mgmt_service.proto
@@ -5,6 +5,7 @@
 
 import "dmi/commons.proto";
 import "dmi/hw.proto";
+import "google/protobuf/empty.proto";
 
 // The model used to represent the event data on the SensorData of a component as described
 // in RFC8348 (https://tools.ietf.org/html/rfc8348)
@@ -108,7 +109,7 @@
     string component_name = 3;
 }
 
-// The Metrics are conveyed to external systems by submitting them on a kafka bus.
+// The Metrics are conveyed to external systems either by submitting them on a message bus or using gRPC server streaming.
 // The topic to which are Metrics are submitted would be configured as startup
 // configuration of the components
 message Metric {
@@ -153,4 +154,7 @@
 
     // Get the instantenous value of a metric
     rpc GetMetric(GetMetricRequest) returns(GetMetricResponse);
+
+    // Initiate the server streaming of the metrics
+    rpc StreamMetrics(google.protobuf.Empty) returns(stream Metric);
 }
diff --git a/python/dmi/hw_events_mgmt_service_pb2.py b/python/dmi/hw_events_mgmt_service_pb2.py
index cd65493..18e1946 100644
--- a/python/dmi/hw_events_mgmt_service_pb2.py
+++ b/python/dmi/hw_events_mgmt_service_pb2.py
@@ -15,6 +15,7 @@
 from dmi import commons_pb2 as dmi_dot_commons__pb2
 from dmi import hw_pb2 as dmi_dot_hw__pb2
 from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
+from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
 
 
 DESCRIPTOR = _descriptor.FileDescriptor(
@@ -23,9 +24,9 @@
   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\"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*\xd1\x0e\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\x32\xb7\x01\n\x1dNativeEventsManagementService\x12\x36\n\nListEvents\x12\x0f.dmi.HardwareID\x1a\x17.dmi.ListEventsResponse\x12^\n\x19UpdateEventsConfiguration\x12\x1f.dmi.EventsConfigurationRequest\x1a .dmi.EventsConfigurationResponseB;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
+  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*\xd1\x0e\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\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,])
+  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,])
 
 _EVENTIDS = _descriptor.EnumDescriptor(
   name='EventIds',
@@ -247,8 +248,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=1563,
-  serialized_end=3436,
+  serialized_start=1592,
+  serialized_end=3465,
 )
 _sym_db.RegisterEnumDescriptor(_EVENTIDS)
 
@@ -327,8 +328,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=759,
-  serialized_end=853,
+  serialized_start=788,
+  serialized_end=882,
 )
 _sym_db.RegisterEnumDescriptor(_LISTEVENTSRESPONSE_REASON)
 
@@ -367,8 +368,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=1135,
-  serialized_end=1249,
+  serialized_start=1164,
+  serialized_end=1278,
 )
 _sym_db.RegisterEnumDescriptor(_EVENTSCONFIGURATIONRESPONSE_REASON)
 
@@ -419,8 +420,8 @@
       create_key=_descriptor._internal_create_key,
     fields=[]),
   ],
-  serialized_start=107,
-  serialized_end=185,
+  serialized_start=136,
+  serialized_end=214,
 )
 
 
@@ -458,8 +459,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=187,
-  serialized_end=258,
+  serialized_start=216,
+  serialized_end=287,
 )
 
 
@@ -502,8 +503,8 @@
       create_key=_descriptor._internal_create_key,
     fields=[]),
   ],
-  serialized_start=260,
-  serialized_end=353,
+  serialized_start=289,
+  serialized_end=382,
 )
 
 
@@ -541,8 +542,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=355,
-  serialized_end=454,
+  serialized_start=384,
+  serialized_end=483,
 )
 
 
@@ -587,8 +588,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=456,
-  serialized_end=559,
+  serialized_start=485,
+  serialized_end=588,
 )
 
 
@@ -619,8 +620,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=561,
-  serialized_end=602,
+  serialized_start=590,
+  serialized_end=631,
 )
 
 
@@ -673,8 +674,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=605,
-  serialized_end=853,
+  serialized_start=634,
+  serialized_end=882,
 )
 
 
@@ -724,8 +725,8 @@
       create_key=_descriptor._internal_create_key,
     fields=[]),
   ],
-  serialized_start=856,
-  serialized_end=992,
+  serialized_start=885,
+  serialized_end=1021,
 )
 
 
@@ -771,8 +772,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=995,
-  serialized_end=1249,
+  serialized_start=1024,
+  serialized_end=1278,
 )
 
 
@@ -817,8 +818,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1251,
-  serialized_end=1357,
+  serialized_start=1280,
+  serialized_end=1386,
 )
 
 
@@ -877,8 +878,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1360,
-  serialized_end=1560,
+  serialized_start=1389,
+  serialized_end=1589,
 )
 
 _VALUETYPE.oneofs_by_name['val'].fields.append(
@@ -1027,8 +1028,8 @@
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=3439,
-  serialized_end=3622,
+  serialized_start=3468,
+  serialized_end=3705,
   methods=[
   _descriptor.MethodDescriptor(
     name='ListEvents',
@@ -1050,6 +1051,16 @@
     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)
 
diff --git a/python/dmi/hw_events_mgmt_service_pb2_grpc.py b/python/dmi/hw_events_mgmt_service_pb2_grpc.py
index 213d4f5..8212023 100644
--- a/python/dmi/hw_events_mgmt_service_pb2_grpc.py
+++ b/python/dmi/hw_events_mgmt_service_pb2_grpc.py
@@ -4,6 +4,7 @@
 
 from dmi import hw_events_mgmt_service_pb2 as dmi_dot_hw__events__mgmt__service__pb2
 from dmi import hw_pb2 as dmi_dot_hw__pb2
+from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
 
 
 class NativeEventsManagementServiceStub(object):
@@ -25,6 +26,11 @@
                 request_serializer=dmi_dot_hw__events__mgmt__service__pb2.EventsConfigurationRequest.SerializeToString,
                 response_deserializer=dmi_dot_hw__events__mgmt__service__pb2.EventsConfigurationResponse.FromString,
                 )
+        self.StreamEvents = channel.unary_stream(
+                '/dmi.NativeEventsManagementService/StreamEvents',
+                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
+                response_deserializer=dmi_dot_hw__events__mgmt__service__pb2.Event.FromString,
+                )
 
 
 class NativeEventsManagementServiceServicer(object):
@@ -46,6 +52,13 @@
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
+    def StreamEvents(self, request, context):
+        """Initiate the server streaming of the events
+        """
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
 
 def add_NativeEventsManagementServiceServicer_to_server(servicer, server):
     rpc_method_handlers = {
@@ -59,6 +72,11 @@
                     request_deserializer=dmi_dot_hw__events__mgmt__service__pb2.EventsConfigurationRequest.FromString,
                     response_serializer=dmi_dot_hw__events__mgmt__service__pb2.EventsConfigurationResponse.SerializeToString,
             ),
+            'StreamEvents': grpc.unary_stream_rpc_method_handler(
+                    servicer.StreamEvents,
+                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
+                    response_serializer=dmi_dot_hw__events__mgmt__service__pb2.Event.SerializeToString,
+            ),
     }
     generic_handler = grpc.method_handlers_generic_handler(
             'dmi.NativeEventsManagementService', rpc_method_handlers)
@@ -102,3 +120,20 @@
             dmi_dot_hw__events__mgmt__service__pb2.EventsConfigurationResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+    @staticmethod
+    def StreamEvents(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_stream(request, target, '/dmi.NativeEventsManagementService/StreamEvents',
+            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
+            dmi_dot_hw__events__mgmt__service__pb2.Event.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/python/dmi/hw_metrics_mgmt_service_pb2.py b/python/dmi/hw_metrics_mgmt_service_pb2.py
index 663ef75..e4dfac7 100644
--- a/python/dmi/hw_metrics_mgmt_service_pb2.py
+++ b/python/dmi/hw_metrics_mgmt_service_pb2.py
@@ -14,6 +14,7 @@
 
 from dmi import commons_pb2 as dmi_dot_commons__pb2
 from dmi import hw_pb2 as dmi_dot_hw__pb2
+from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
 
 
 DESCRIPTOR = _descriptor.FileDescriptor(
@@ -22,9 +23,9 @@
   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\"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\xf9\x01\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.GetMetricResponseB;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
+  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,])
+  dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,dmi_dot_hw__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,])
 
 _METRICNAMES = _descriptor.EnumDescriptor(
   name='MetricNames',
@@ -156,8 +157,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=1552,
-  serialized_end=2281,
+  serialized_start=1581,
+  serialized_end=2310,
 )
 _sym_db.RegisterEnumDescriptor(_METRICNAMES)
 
@@ -218,8 +219,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=389,
-  serialized_end=483,
+  serialized_start=418,
+  serialized_end=512,
 )
 _sym_db.RegisterEnumDescriptor(_LISTMETRICSRESPONSE_REASON)
 
@@ -263,8 +264,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=773,
-  serialized_end=918,
+  serialized_start=802,
+  serialized_end=947,
 )
 _sym_db.RegisterEnumDescriptor(_METRICSCONFIGURATIONRESPONSE_REASON)
 
@@ -308,8 +309,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=1412,
-  serialized_end=1549,
+  serialized_start=1441,
+  serialized_end=1578,
 )
 _sym_db.RegisterEnumDescriptor(_GETMETRICRESPONSE_REASON)
 
@@ -355,8 +356,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=75,
-  serialized_end=172,
+  serialized_start=104,
+  serialized_end=201,
 )
 
 
@@ -387,8 +388,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=174,
-  serialized_end=225,
+  serialized_start=203,
+  serialized_end=254,
 )
 
 
@@ -441,8 +442,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=228,
-  serialized_end=483,
+  serialized_start=257,
+  serialized_end=512,
 )
 
 
@@ -492,8 +493,8 @@
       create_key=_descriptor._internal_create_key,
     fields=[]),
   ],
-  serialized_start=486,
-  serialized_end=627,
+  serialized_start=515,
+  serialized_end=656,
 )
 
 
@@ -539,8 +540,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=630,
-  serialized_end=918,
+  serialized_start=659,
+  serialized_end=947,
 )
 
 
@@ -585,8 +586,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=920,
-  serialized_end=1027,
+  serialized_start=949,
+  serialized_end=1056,
 )
 
 
@@ -631,8 +632,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1030,
-  serialized_end=1162,
+  serialized_start=1059,
+  serialized_end=1191,
 )
 
 
@@ -670,8 +671,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1164,
-  serialized_end=1259,
+  serialized_start=1193,
+  serialized_end=1288,
 )
 
 
@@ -724,8 +725,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=1262,
-  serialized_end=1549,
+  serialized_start=1291,
+  serialized_end=1578,
 )
 
 _METRICCONFIG.fields_by_name['metric_id'].enum_type = _METRICNAMES
@@ -841,8 +842,8 @@
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=2284,
-  serialized_end=2533,
+  serialized_start=2313,
+  serialized_end=2618,
   methods=[
   _descriptor.MethodDescriptor(
     name='ListMetrics',
@@ -874,6 +875,16 @@
     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)
 
diff --git a/python/dmi/hw_metrics_mgmt_service_pb2_grpc.py b/python/dmi/hw_metrics_mgmt_service_pb2_grpc.py
index 7a2affa..0202897 100644
--- a/python/dmi/hw_metrics_mgmt_service_pb2_grpc.py
+++ b/python/dmi/hw_metrics_mgmt_service_pb2_grpc.py
@@ -4,6 +4,7 @@
 
 from dmi import hw_metrics_mgmt_service_pb2 as dmi_dot_hw__metrics__mgmt__service__pb2
 from dmi import hw_pb2 as dmi_dot_hw__pb2
+from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
 
 
 class NativeMetricsManagementServiceStub(object):
@@ -30,6 +31,11 @@
                 request_serializer=dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricRequest.SerializeToString,
                 response_deserializer=dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricResponse.FromString,
                 )
+        self.StreamMetrics = channel.unary_stream(
+                '/dmi.NativeMetricsManagementService/StreamMetrics',
+                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
+                response_deserializer=dmi_dot_hw__metrics__mgmt__service__pb2.Metric.FromString,
+                )
 
 
 class NativeMetricsManagementServiceServicer(object):
@@ -62,6 +68,13 @@
         context.set_details('Method not implemented!')
         raise NotImplementedError('Method not implemented!')
 
+    def StreamMetrics(self, request, context):
+        """Initiate the server streaming of the metrics
+        """
+        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
+        context.set_details('Method not implemented!')
+        raise NotImplementedError('Method not implemented!')
+
 
 def add_NativeMetricsManagementServiceServicer_to_server(servicer, server):
     rpc_method_handlers = {
@@ -80,6 +93,11 @@
                     request_deserializer=dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricRequest.FromString,
                     response_serializer=dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricResponse.SerializeToString,
             ),
+            'StreamMetrics': grpc.unary_stream_rpc_method_handler(
+                    servicer.StreamMetrics,
+                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
+                    response_serializer=dmi_dot_hw__metrics__mgmt__service__pb2.Metric.SerializeToString,
+            ),
     }
     generic_handler = grpc.method_handlers_generic_handler(
             'dmi.NativeMetricsManagementService', rpc_method_handlers)
@@ -140,3 +158,20 @@
             dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
+
+    @staticmethod
+    def StreamMetrics(request,
+            target,
+            options=(),
+            channel_credentials=None,
+            call_credentials=None,
+            insecure=False,
+            compression=None,
+            wait_for_ready=None,
+            timeout=None,
+            metadata=None):
+        return grpc.experimental.unary_stream(request, target, '/dmi.NativeMetricsManagementService/StreamMetrics',
+            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
+            dmi_dot_hw__metrics__mgmt__service__pb2.Metric.FromString,
+            options, channel_credentials,
+            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
