diff --git a/go/dmi/commons.pb.go b/go/dmi/commons.pb.go
index eec2c1d..2f90bd5 100644
--- a/go/dmi/commons.pb.go
+++ b/go/dmi/commons.pb.go
@@ -52,11 +52,14 @@
 type Reason int32
 
 const (
-	Reason_UNDEFINED_REASON Reason = 0
-	Reason_UNKNOWN_DEVICE   Reason = 1
-	Reason_INTERNAL_ERROR   Reason = 2
-	Reason_WRONG_METRIC     Reason = 3
-	Reason_WRONG_EVENT      Reason = 4
+	Reason_UNDEFINED_REASON                Reason = 0
+	Reason_UNKNOWN_DEVICE                  Reason = 1
+	Reason_INTERNAL_ERROR                  Reason = 2
+	Reason_WRONG_METRIC                    Reason = 3
+	Reason_WRONG_EVENT                     Reason = 4
+	Reason_LOGGING_ENDPOINT_ERROR          Reason = 5
+	Reason_LOGGING_ENDPOINT_PROTOCOL_ERROR Reason = 6
+	Reason_KAFKA_ENDPOINT_ERROR            Reason = 7
 )
 
 var Reason_name = map[int32]string{
@@ -65,14 +68,20 @@
 	2: "INTERNAL_ERROR",
 	3: "WRONG_METRIC",
 	4: "WRONG_EVENT",
+	5: "LOGGING_ENDPOINT_ERROR",
+	6: "LOGGING_ENDPOINT_PROTOCOL_ERROR",
+	7: "KAFKA_ENDPOINT_ERROR",
 }
 
 var Reason_value = map[string]int32{
-	"UNDEFINED_REASON": 0,
-	"UNKNOWN_DEVICE":   1,
-	"INTERNAL_ERROR":   2,
-	"WRONG_METRIC":     3,
-	"WRONG_EVENT":      4,
+	"UNDEFINED_REASON":                0,
+	"UNKNOWN_DEVICE":                  1,
+	"INTERNAL_ERROR":                  2,
+	"WRONG_METRIC":                    3,
+	"WRONG_EVENT":                     4,
+	"LOGGING_ENDPOINT_ERROR":          5,
+	"LOGGING_ENDPOINT_PROTOCOL_ERROR": 6,
+	"KAFKA_ENDPOINT_ERROR":            7,
 }
 
 func (x Reason) String() string {
@@ -91,20 +100,23 @@
 func init() { proto.RegisterFile("dmi/commons.proto", fileDescriptor_74aedf0dda1205d8) }
 
 var fileDescriptor_74aedf0dda1205d8 = []byte{
-	// 235 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x54, 0xcf, 0xcb, 0x4a, 0x03, 0x31,
-	0x14, 0xc6, 0xf1, 0x5e, 0x74, 0xc0, 0x28, 0x1a, 0x83, 0x4f, 0x51, 0x68, 0x83, 0x74, 0x25, 0xae,
-	0x6a, 0xe7, 0x28, 0x43, 0xf5, 0x04, 0x32, 0x99, 0x16, 0xdc, 0x0c, 0x69, 0x12, 0xc7, 0x2c, 0x92,
-	0x94, 0x99, 0xb4, 0xcf, 0x2f, 0x5e, 0x36, 0x6e, 0x7f, 0xf0, 0x7d, 0xf0, 0x27, 0xb7, 0x36, 0x78,
-	0x6e, 0x52, 0x08, 0x29, 0x0e, 0x8b, 0x43, 0x9f, 0x72, 0x62, 0x53, 0x1b, 0xfc, 0xec, 0x9e, 0x14,
-	0x75, 0xd6, 0xf9, 0x38, 0xb0, 0x3b, 0x42, 0x1b, 0x2c, 0xe1, 0xb9, 0x42, 0x28, 0xdb, 0x5a, 0xad,
-	0x54, 0x53, 0xd3, 0x11, 0x2b, 0xc8, 0x44, 0x6c, 0xe8, 0x98, 0x5d, 0x90, 0x73, 0x90, 0x52, 0x48,
-	0x3a, 0x99, 0x79, 0x52, 0x48, 0xa7, 0x87, 0x14, 0xff, 0x4f, 0x24, 0xac, 0x6a, 0x81, 0x74, 0xc4,
-	0x18, 0xb9, 0x6e, 0x70, 0x83, 0x62, 0x87, 0x6d, 0x09, 0xdb, 0x6a, 0x0d, 0x74, 0xfc, 0x6d, 0x15,
-	0x2a, 0x90, 0xb8, 0x7a, 0x6d, 0xff, 0x7e, 0x18, 0x25, 0x57, 0x3b, 0x29, 0xf0, 0xa5, 0x7d, 0x03,
-	0x25, 0xab, 0x35, 0x9d, 0xb2, 0x1b, 0x72, 0xf9, 0x2b, 0xb0, 0x05, 0x54, 0xf4, 0xec, 0xe9, 0xf1,
-	0xfd, 0xa1, 0xf3, 0xf9, 0xf3, 0xb8, 0x5f, 0x98, 0x14, 0x78, 0x3a, 0xb8, 0x68, 0x52, 0x6f, 0xb9,
-	0x75, 0x27, 0x6f, 0xdc, 0x3c, 0xe8, 0xa8, 0x3b, 0x17, 0x5c, 0xcc, 0x73, 0x1f, 0xb3, 0xeb, 0x3f,
-	0xb4, 0x71, 0xfc, 0xb4, 0xe4, 0x5d, 0xe2, 0x36, 0xf8, 0x7d, 0xf1, 0x93, 0xb9, 0xfc, 0x0a, 0x00,
-	0x00, 0xff, 0xff, 0xc1, 0xa1, 0x42, 0x40, 0xfb, 0x00, 0x00, 0x00,
+	// 285 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x90, 0xcd, 0x4e, 0xf2, 0x40,
+	0x18, 0x85, 0xf9, 0xf9, 0xe8, 0x17, 0x5f, 0x8d, 0x8e, 0x13, 0x62, 0x8c, 0x1b, 0x17, 0xee, 0x48,
+	0xa0, 0x31, 0xac, 0x8c, 0xab, 0x4a, 0x07, 0xd2, 0x14, 0xdf, 0x21, 0xd3, 0x01, 0x12, 0x37, 0x4d,
+	0x69, 0x47, 0x9c, 0xc5, 0xcc, 0x10, 0x3a, 0x70, 0x85, 0x5e, 0x98, 0x41, 0x71, 0xa1, 0x6e, 0x9f,
+	0x93, 0xe7, 0x9c, 0xe4, 0xc0, 0x65, 0x65, 0x74, 0x58, 0x3a, 0x63, 0x9c, 0xad, 0x07, 0x9b, 0xad,
+	0xf3, 0x8e, 0xb6, 0x2b, 0xa3, 0x7b, 0xf7, 0x10, 0x64, 0xbe, 0xf0, 0xbb, 0x9a, 0x76, 0x81, 0xcc,
+	0x31, 0x66, 0xe3, 0x04, 0x59, 0x9c, 0x67, 0x32, 0x92, 0xf3, 0x8c, 0x34, 0x68, 0x00, 0x2d, 0x9e,
+	0x92, 0x26, 0x3d, 0x81, 0x0e, 0x13, 0x82, 0x0b, 0xd2, 0xea, 0xbd, 0x37, 0x21, 0x10, 0xaa, 0xa8,
+	0x9d, 0xfd, 0xe9, 0x08, 0x16, 0x65, 0x1c, 0x49, 0x83, 0x52, 0x38, 0x9f, 0x63, 0x8a, 0x7c, 0x89,
+	0x79, 0xcc, 0x16, 0xc9, 0x88, 0x91, 0xe6, 0x81, 0x25, 0x28, 0x99, 0xc0, 0x68, 0x9a, 0x1f, 0x8b,
+	0x28, 0x81, 0xb3, 0xa5, 0xe0, 0x38, 0xc9, 0x9f, 0x99, 0x14, 0xc9, 0x88, 0xb4, 0xe9, 0x05, 0x9c,
+	0x7e, 0x11, 0xb6, 0x60, 0x28, 0xc9, 0x3f, 0x7a, 0x03, 0x57, 0x53, 0x3e, 0x99, 0x24, 0x07, 0x84,
+	0xf1, 0x8c, 0x27, 0x28, 0x8f, 0x7a, 0x87, 0xde, 0xc1, 0xed, 0x9f, 0x6c, 0x26, 0xb8, 0xe4, 0x23,
+	0xfe, 0xbd, 0x11, 0xd0, 0x6b, 0xe8, 0xa6, 0xd1, 0x38, 0x8d, 0x7e, 0xeb, 0xff, 0x9f, 0x1e, 0x5f,
+	0x1e, 0xd6, 0xda, 0xbf, 0xed, 0x56, 0x83, 0xd2, 0x99, 0xd0, 0x6d, 0x94, 0x2d, 0xdd, 0xb6, 0x0a,
+	0x2b, 0xb5, 0xd7, 0xa5, 0xea, 0x9b, 0xc2, 0x16, 0x6b, 0x65, 0x94, 0xf5, 0x7d, 0x6d, 0xbd, 0xda,
+	0xbe, 0x16, 0xa5, 0x0a, 0xf7, 0xc3, 0x70, 0xed, 0xc2, 0xca, 0xe8, 0x55, 0xf0, 0x79, 0xe1, 0xf0,
+	0x23, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x8a, 0xc7, 0x97, 0x57, 0x01, 0x00, 0x00,
 }
diff --git a/go/dmi/hw_management_service.pb.go b/go/dmi/hw_management_service.pb.go
index b53e227..b50ff9b 100644
--- a/go/dmi/hw_management_service.pb.go
+++ b/go/dmi/hw_management_service.pb.go
@@ -517,6 +517,265 @@
 	return nil
 }
 
+type SetLoggingEndpointRequest struct {
+	DeviceUuid           *Uuid    `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+	LoggingEndpoint      string   `protobuf:"bytes,2,opt,name=logging_endpoint,json=loggingEndpoint,proto3" json:"logging_endpoint,omitempty"`
+	LoggingProtocol      string   `protobuf:"bytes,3,opt,name=logging_protocol,json=loggingProtocol,proto3" json:"logging_protocol,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *SetLoggingEndpointRequest) Reset()         { *m = SetLoggingEndpointRequest{} }
+func (m *SetLoggingEndpointRequest) String() string { return proto.CompactTextString(m) }
+func (*SetLoggingEndpointRequest) ProtoMessage()    {}
+func (*SetLoggingEndpointRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{10}
+}
+
+func (m *SetLoggingEndpointRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SetLoggingEndpointRequest.Unmarshal(m, b)
+}
+func (m *SetLoggingEndpointRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SetLoggingEndpointRequest.Marshal(b, m, deterministic)
+}
+func (m *SetLoggingEndpointRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SetLoggingEndpointRequest.Merge(m, src)
+}
+func (m *SetLoggingEndpointRequest) XXX_Size() int {
+	return xxx_messageInfo_SetLoggingEndpointRequest.Size(m)
+}
+func (m *SetLoggingEndpointRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_SetLoggingEndpointRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetLoggingEndpointRequest proto.InternalMessageInfo
+
+func (m *SetLoggingEndpointRequest) GetDeviceUuid() *Uuid {
+	if m != nil {
+		return m.DeviceUuid
+	}
+	return nil
+}
+
+func (m *SetLoggingEndpointRequest) GetLoggingEndpoint() string {
+	if m != nil {
+		return m.LoggingEndpoint
+	}
+	return ""
+}
+
+func (m *SetLoggingEndpointRequest) GetLoggingProtocol() string {
+	if m != nil {
+		return m.LoggingProtocol
+	}
+	return ""
+}
+
+type SetRemoteEndpointResponse struct {
+	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *SetRemoteEndpointResponse) Reset()         { *m = SetRemoteEndpointResponse{} }
+func (m *SetRemoteEndpointResponse) String() string { return proto.CompactTextString(m) }
+func (*SetRemoteEndpointResponse) ProtoMessage()    {}
+func (*SetRemoteEndpointResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{11}
+}
+
+func (m *SetRemoteEndpointResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SetRemoteEndpointResponse.Unmarshal(m, b)
+}
+func (m *SetRemoteEndpointResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SetRemoteEndpointResponse.Marshal(b, m, deterministic)
+}
+func (m *SetRemoteEndpointResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SetRemoteEndpointResponse.Merge(m, src)
+}
+func (m *SetRemoteEndpointResponse) XXX_Size() int {
+	return xxx_messageInfo_SetRemoteEndpointResponse.Size(m)
+}
+func (m *SetRemoteEndpointResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_SetRemoteEndpointResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetRemoteEndpointResponse proto.InternalMessageInfo
+
+func (m *SetRemoteEndpointResponse) GetStatus() Status {
+	if m != nil {
+		return m.Status
+	}
+	return Status_UNDEFINED_STATUS
+}
+
+func (m *SetRemoteEndpointResponse) GetReason() Reason {
+	if m != nil {
+		return m.Reason
+	}
+	return Reason_UNDEFINED_REASON
+}
+
+type GetLoggingEndpointResponse struct {
+	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
+	LoggingEndpoint      string   `protobuf:"bytes,3,opt,name=logging_endpoint,json=loggingEndpoint,proto3" json:"logging_endpoint,omitempty"`
+	LoggingProtocol      string   `protobuf:"bytes,4,opt,name=logging_protocol,json=loggingProtocol,proto3" json:"logging_protocol,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *GetLoggingEndpointResponse) Reset()         { *m = GetLoggingEndpointResponse{} }
+func (m *GetLoggingEndpointResponse) String() string { return proto.CompactTextString(m) }
+func (*GetLoggingEndpointResponse) ProtoMessage()    {}
+func (*GetLoggingEndpointResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{12}
+}
+
+func (m *GetLoggingEndpointResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetLoggingEndpointResponse.Unmarshal(m, b)
+}
+func (m *GetLoggingEndpointResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetLoggingEndpointResponse.Marshal(b, m, deterministic)
+}
+func (m *GetLoggingEndpointResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetLoggingEndpointResponse.Merge(m, src)
+}
+func (m *GetLoggingEndpointResponse) XXX_Size() int {
+	return xxx_messageInfo_GetLoggingEndpointResponse.Size(m)
+}
+func (m *GetLoggingEndpointResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetLoggingEndpointResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetLoggingEndpointResponse proto.InternalMessageInfo
+
+func (m *GetLoggingEndpointResponse) GetStatus() Status {
+	if m != nil {
+		return m.Status
+	}
+	return Status_UNDEFINED_STATUS
+}
+
+func (m *GetLoggingEndpointResponse) GetReason() Reason {
+	if m != nil {
+		return m.Reason
+	}
+	return Reason_UNDEFINED_REASON
+}
+
+func (m *GetLoggingEndpointResponse) GetLoggingEndpoint() string {
+	if m != nil {
+		return m.LoggingEndpoint
+	}
+	return ""
+}
+
+func (m *GetLoggingEndpointResponse) GetLoggingProtocol() string {
+	if m != nil {
+		return m.LoggingProtocol
+	}
+	return ""
+}
+
+type SetMsgBusEndpointRequest struct {
+	MsgbusEndpoint       string   `protobuf:"bytes,1,opt,name=msgbus_endpoint,json=msgbusEndpoint,proto3" json:"msgbus_endpoint,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *SetMsgBusEndpointRequest) Reset()         { *m = SetMsgBusEndpointRequest{} }
+func (m *SetMsgBusEndpointRequest) String() string { return proto.CompactTextString(m) }
+func (*SetMsgBusEndpointRequest) ProtoMessage()    {}
+func (*SetMsgBusEndpointRequest) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{13}
+}
+
+func (m *SetMsgBusEndpointRequest) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_SetMsgBusEndpointRequest.Unmarshal(m, b)
+}
+func (m *SetMsgBusEndpointRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_SetMsgBusEndpointRequest.Marshal(b, m, deterministic)
+}
+func (m *SetMsgBusEndpointRequest) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_SetMsgBusEndpointRequest.Merge(m, src)
+}
+func (m *SetMsgBusEndpointRequest) XXX_Size() int {
+	return xxx_messageInfo_SetMsgBusEndpointRequest.Size(m)
+}
+func (m *SetMsgBusEndpointRequest) XXX_DiscardUnknown() {
+	xxx_messageInfo_SetMsgBusEndpointRequest.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_SetMsgBusEndpointRequest proto.InternalMessageInfo
+
+func (m *SetMsgBusEndpointRequest) GetMsgbusEndpoint() string {
+	if m != nil {
+		return m.MsgbusEndpoint
+	}
+	return ""
+}
+
+type GetMsgBusEndpointResponse struct {
+	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
+	MsgbusEndpoint       string   `protobuf:"bytes,3,opt,name=msgbus_endpoint,json=msgbusEndpoint,proto3" json:"msgbus_endpoint,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *GetMsgBusEndpointResponse) Reset()         { *m = GetMsgBusEndpointResponse{} }
+func (m *GetMsgBusEndpointResponse) String() string { return proto.CompactTextString(m) }
+func (*GetMsgBusEndpointResponse) ProtoMessage()    {}
+func (*GetMsgBusEndpointResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{14}
+}
+
+func (m *GetMsgBusEndpointResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetMsgBusEndpointResponse.Unmarshal(m, b)
+}
+func (m *GetMsgBusEndpointResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetMsgBusEndpointResponse.Marshal(b, m, deterministic)
+}
+func (m *GetMsgBusEndpointResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetMsgBusEndpointResponse.Merge(m, src)
+}
+func (m *GetMsgBusEndpointResponse) XXX_Size() int {
+	return xxx_messageInfo_GetMsgBusEndpointResponse.Size(m)
+}
+func (m *GetMsgBusEndpointResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetMsgBusEndpointResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetMsgBusEndpointResponse proto.InternalMessageInfo
+
+func (m *GetMsgBusEndpointResponse) GetStatus() Status {
+	if m != nil {
+		return m.Status
+	}
+	return Status_UNDEFINED_STATUS
+}
+
+func (m *GetMsgBusEndpointResponse) GetReason() Reason {
+	if m != nil {
+		return m.Reason
+	}
+	return Reason_UNDEFINED_REASON
+}
+
+func (m *GetMsgBusEndpointResponse) GetMsgbusEndpoint() string {
+	if m != nil {
+		return m.MsgbusEndpoint
+	}
+	return ""
+}
+
 func init() {
 	proto.RegisterType((*PhysicalInventoryRequest)(nil), "dmi.PhysicalInventoryRequest")
 	proto.RegisterType((*PhysicalInventoryResponse)(nil), "dmi.PhysicalInventoryResponse")
@@ -528,51 +787,67 @@
 	proto.RegisterType((*StopManagingDeviceRequest)(nil), "dmi.StopManagingDeviceRequest")
 	proto.RegisterType((*StopManagingDeviceResponse)(nil), "dmi.StopManagingDeviceResponse")
 	proto.RegisterType((*ManagedDevicesResponse)(nil), "dmi.ManagedDevicesResponse")
+	proto.RegisterType((*SetLoggingEndpointRequest)(nil), "dmi.SetLoggingEndpointRequest")
+	proto.RegisterType((*SetRemoteEndpointResponse)(nil), "dmi.SetRemoteEndpointResponse")
+	proto.RegisterType((*GetLoggingEndpointResponse)(nil), "dmi.GetLoggingEndpointResponse")
+	proto.RegisterType((*SetMsgBusEndpointRequest)(nil), "dmi.SetMsgBusEndpointRequest")
+	proto.RegisterType((*GetMsgBusEndpointResponse)(nil), "dmi.GetMsgBusEndpointResponse")
 }
 
 func init() { proto.RegisterFile("dmi/hw_management_service.proto", fileDescriptor_eae902e73066286d) }
 
 var fileDescriptor_eae902e73066286d = []byte{
-	// 612 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0x4f, 0x6b, 0xdb, 0x4e,
-	0x10, 0x45, 0x71, 0x48, 0xf0, 0xfa, 0x17, 0x43, 0xf6, 0x57, 0x82, 0x2c, 0xd3, 0x24, 0xa8, 0x14,
-	0x4a, 0xdb, 0x48, 0xc1, 0x39, 0x95, 0xde, 0xfa, 0xcf, 0x0e, 0xd4, 0xa1, 0x48, 0x04, 0x43, 0x2f,
-	0x66, 0x2d, 0x8d, 0xe5, 0x05, 0xef, 0xae, 0x2a, 0xad, 0x1c, 0xfc, 0x35, 0xda, 0x9e, 0x7a, 0xea,
-	0x87, 0xea, 0x07, 0x2a, 0xda, 0x95, 0x65, 0xd7, 0xb6, 0xd2, 0x52, 0x12, 0xe8, 0x4d, 0xda, 0x79,
-	0xf3, 0x66, 0xdf, 0x1b, 0xcd, 0x08, 0x9d, 0x84, 0x8c, 0xba, 0x93, 0x9b, 0x21, 0x23, 0x9c, 0x44,
-	0xc0, 0x80, 0xcb, 0x61, 0x0a, 0xc9, 0x8c, 0x06, 0xe0, 0xc4, 0x89, 0x90, 0x02, 0xd7, 0x42, 0x46,
-	0xad, 0xc3, 0x1c, 0x15, 0x08, 0xc6, 0x04, 0x4f, 0xf5, 0xb9, 0xf5, 0x9f, 0x4e, 0x2c, 0xde, 0xda,
-	0x91, 0x10, 0xd1, 0x14, 0x5c, 0xf5, 0x36, 0xca, 0xc6, 0x2e, 0xb0, 0x58, 0xce, 0x75, 0xd0, 0x7e,
-	0x87, 0xcc, 0x0f, 0x93, 0x79, 0x4a, 0x03, 0x32, 0xbd, 0xe4, 0x33, 0xe0, 0x52, 0x24, 0x73, 0x0f,
-	0x3e, 0x65, 0x90, 0x4a, 0xfc, 0x14, 0x35, 0x42, 0xc8, 0xcb, 0x0d, 0xb3, 0x8c, 0x86, 0xa6, 0x71,
-	0x6a, 0x3c, 0x69, 0x74, 0xea, 0x4e, 0xc8, 0xa8, 0x73, 0x9d, 0xd1, 0xd0, 0x43, 0x3a, 0x9a, 0x3f,
-	0xdb, 0x9f, 0x0d, 0xd4, 0xda, 0x42, 0x94, 0xc6, 0x82, 0xa7, 0x80, 0x1f, 0xa1, 0xbd, 0x54, 0x12,
-	0x99, 0xa5, 0x8a, 0xa4, 0xd9, 0x69, 0x28, 0x12, 0x5f, 0x1d, 0x79, 0x45, 0x28, 0x07, 0x25, 0x40,
-	0x52, 0xc1, 0xcd, 0x9d, 0x15, 0x90, 0xa7, 0x8e, 0xbc, 0x22, 0x84, 0x9f, 0xa1, 0x3a, 0x5d, 0xd0,
-	0x9b, 0x35, 0x75, 0xa3, 0x03, 0x85, 0xeb, 0x91, 0x24, 0xbc, 0x21, 0x09, 0x78, 0xcb, 0xb8, 0xfd,
-	0xdd, 0x40, 0xad, 0xde, 0xe0, 0xb5, 0x60, 0xb1, 0xe0, 0xc0, 0xe5, 0x25, 0x1f, 0x8b, 0x2e, 0xc8,
-	0xbf, 0x90, 0x87, 0xcf, 0x51, 0x33, 0x58, 0xd0, 0x68, 0xf8, 0xce, 0x3a, 0xfc, 0xa0, 0x04, 0xa8,
-	0x8c, 0xc7, 0xab, 0x19, 0x9c, 0x30, 0x50, 0xb7, 0xad, 0xaf, 0xc0, 0xae, 0x08, 0x03, 0xfb, 0xab,
-	0x81, 0xac, 0x6d, 0x57, 0xbc, 0x73, 0xe3, 0x9e, 0xa3, 0x7a, 0x59, 0xb9, 0x30, 0xae, 0xa9, 0x70,
-	0x65, 0x6d, 0x6f, 0x09, 0xb0, 0x7f, 0x6c, 0x3a, 0xe7, 0xff, 0x5b, 0xce, 0xe1, 0x0e, 0xda, 0x0f,
-	0x26, 0x84, 0x47, 0x90, 0x9a, 0xbb, 0x8a, 0xd1, 0x54, 0x8c, 0x7d, 0x11, 0xd2, 0x31, 0x25, 0xa3,
-	0x29, 0x2c, 0x85, 0x2d, 0x80, 0xf6, 0x78, 0xc3, 0x6c, 0xff, 0x3e, 0xcc, 0xb6, 0xbf, 0x18, 0xa8,
-	0xed, 0x4b, 0x92, 0xc8, 0x7e, 0x3e, 0xba, 0x94, 0x47, 0x6f, 0x94, 0x21, 0xf7, 0xd0, 0xd6, 0xb5,
-	0x56, 0xd4, 0x6e, 0x9b, 0x51, 0x17, 0xb5, 0x7c, 0x29, 0xe2, 0xf5, 0x3b, 0xe9, 0x9e, 0x62, 0xb4,
-	0xab, 0xbc, 0x36, 0x94, 0xd7, 0xea, 0x39, 0xb7, 0x6b, 0x5b, 0xc2, 0x9d, 0xdb, 0xf5, 0x1e, 0x1d,
-	0xa9, 0x1a, 0x10, 0xea, 0x12, 0x69, 0x59, 0xa3, 0x83, 0xf6, 0xb5, 0x80, 0xbc, 0x48, 0xed, 0xf6,
-	0x26, 0x17, 0xc0, 0xce, 0xb7, 0x5d, 0xd4, 0xba, 0x22, 0x92, 0xce, 0xa0, 0x37, 0xe8, 0x97, 0xab,
-	0xd3, 0xd7, 0x9b, 0x13, 0xfb, 0xe8, 0xff, 0x2d, 0x9d, 0xc1, 0x95, 0xbc, 0xd6, 0xe9, 0x42, 0x56,
-	0x55, 0x37, 0xcf, 0x0d, 0x7c, 0x8d, 0xf0, 0xa6, 0x51, 0xf8, 0xb8, 0xc8, 0xac, 0xb0, 0xdc, 0x3a,
-	0xa9, 0x8c, 0x17, 0xea, 0x7b, 0xe8, 0xb0, 0x0b, 0xf2, 0x57, 0x6b, 0xf0, 0x91, 0xa3, 0xf7, 0xb9,
-	0xb3, 0xd8, 0xe7, 0xce, 0xdb, 0x7c, 0x9f, 0x5b, 0x6d, 0xad, 0x60, 0xbb, 0x8f, 0x03, 0xf4, 0xa0,
-	0x0b, 0x72, 0x63, 0x41, 0xe3, 0x87, 0x2a, 0xa9, 0xea, 0x0f, 0x60, 0x1d, 0x57, 0x85, 0x4b, 0xe5,
-	0x03, 0x84, 0xbb, 0x20, 0xd7, 0x86, 0xaa, 0x50, 0x5e, 0xb9, 0x7a, 0x0b, 0xe5, 0xd5, 0x7b, 0xaf,
-	0xb0, 0xf4, 0x0f, 0x89, 0xfd, 0xdf, 0x10, 0xaf, 0xcc, 0xf8, 0xab, 0x97, 0x1f, 0x5f, 0x44, 0x54,
-	0x4e, 0xb2, 0x91, 0x13, 0x08, 0xe6, 0x8a, 0x18, 0x78, 0x20, 0x92, 0xd0, 0xd5, 0xdf, 0xce, 0xd9,
-	0xf2, 0x4f, 0x7b, 0x46, 0xb9, 0x84, 0x64, 0x4c, 0x02, 0x70, 0x67, 0x17, 0x6e, 0x24, 0xdc, 0x90,
-	0xd1, 0xd1, 0x9e, 0xb2, 0xfc, 0xe2, 0x67, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x9d, 0xd6, 0xff,
-	0x99, 0x07, 0x00, 0x00,
+	// 797 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcf, 0x4e, 0xdb, 0x4e,
+	0x10, 0x96, 0x09, 0x02, 0x65, 0xf8, 0x11, 0x7e, 0xb8, 0x15, 0x4a, 0x8c, 0x0a, 0xc8, 0x55, 0xd5,
+	0xbf, 0xc4, 0x28, 0x9c, 0xaa, 0x5e, 0x2a, 0x28, 0x4d, 0x50, 0x09, 0x42, 0x76, 0x51, 0xa4, 0x5e,
+	0x22, 0xc7, 0x9e, 0x38, 0x2b, 0xc5, 0xbb, 0xa9, 0xbd, 0x0e, 0xe2, 0x25, 0x7a, 0x68, 0x7b, 0xad,
+	0xd4, 0x07, 0xe9, 0x5b, 0xb4, 0x0f, 0x54, 0x79, 0xd7, 0x4e, 0x42, 0x62, 0x03, 0x42, 0x41, 0xea,
+	0xcd, 0xde, 0xf9, 0xf6, 0x9b, 0x99, 0x6f, 0x77, 0x66, 0x07, 0xb6, 0x5d, 0x9f, 0x18, 0xbd, 0x8b,
+	0xb6, 0x6f, 0x53, 0xdb, 0x43, 0x1f, 0x29, 0x6f, 0x87, 0x18, 0x0c, 0x89, 0x83, 0xd5, 0x41, 0xc0,
+	0x38, 0x53, 0x0b, 0xae, 0x4f, 0xb4, 0xf5, 0x18, 0xe5, 0x30, 0xdf, 0x67, 0x34, 0x94, 0xeb, 0xda,
+	0x7f, 0x72, 0x63, 0xf2, 0xb7, 0xe9, 0x31, 0xe6, 0xf5, 0xd1, 0x10, 0x7f, 0x9d, 0xa8, 0x6b, 0xa0,
+	0x3f, 0xe0, 0x97, 0xd2, 0xa8, 0xbf, 0x87, 0xf2, 0x59, 0xef, 0x32, 0x24, 0x8e, 0xdd, 0x3f, 0xa6,
+	0x43, 0xa4, 0x9c, 0x05, 0x97, 0x26, 0x7e, 0x8e, 0x30, 0xe4, 0xea, 0x0b, 0x58, 0x71, 0x31, 0x76,
+	0xd7, 0x8e, 0x22, 0xe2, 0x96, 0x95, 0x1d, 0xe5, 0xd9, 0x4a, 0xad, 0x58, 0x75, 0x7d, 0x52, 0x3d,
+	0x8f, 0x88, 0x6b, 0x82, 0xb4, 0xc6, 0xdf, 0xfa, 0x57, 0x05, 0x2a, 0x19, 0x44, 0xe1, 0x80, 0xd1,
+	0x10, 0xd5, 0xc7, 0xb0, 0x14, 0x72, 0x9b, 0x47, 0xa1, 0x20, 0x29, 0xd5, 0x56, 0x04, 0x89, 0x25,
+	0x96, 0xcc, 0xc4, 0x14, 0x83, 0x02, 0xb4, 0x43, 0x46, 0xcb, 0x0b, 0x13, 0x20, 0x53, 0x2c, 0x99,
+	0x89, 0x49, 0x7d, 0x09, 0x45, 0x92, 0xd2, 0x97, 0x0b, 0x22, 0xa2, 0x55, 0x81, 0x6b, 0xd8, 0x81,
+	0x7b, 0x61, 0x07, 0x68, 0x8e, 0xed, 0xfa, 0x4f, 0x05, 0x2a, 0x8d, 0xd6, 0x21, 0xf3, 0x07, 0x8c,
+	0x22, 0xe5, 0xc7, 0xb4, 0xcb, 0xea, 0xc8, 0xef, 0x90, 0x9e, 0xba, 0x07, 0x25, 0x27, 0xa5, 0x91,
+	0xf0, 0x85, 0x69, 0xf8, 0xea, 0x08, 0x20, 0x76, 0x3c, 0x99, 0xdc, 0x41, 0x6d, 0x1f, 0x45, 0xb4,
+	0xc5, 0x09, 0xd8, 0xa9, 0xed, 0xa3, 0xfe, 0x5d, 0x01, 0x2d, 0x2b, 0xc4, 0xb9, 0x0b, 0xf7, 0x0a,
+	0x8a, 0x23, 0xcf, 0x89, 0x70, 0x25, 0x81, 0x1b, 0xf9, 0x36, 0xc7, 0x00, 0xfd, 0xcf, 0xac, 0x72,
+	0xd6, 0xbf, 0xa5, 0x9c, 0x5a, 0x83, 0x65, 0xa7, 0x67, 0x53, 0x0f, 0xc3, 0xf2, 0xa2, 0x60, 0x2c,
+	0x0b, 0xc6, 0x26, 0x73, 0x49, 0x97, 0xd8, 0x9d, 0x3e, 0x8e, 0x13, 0x4b, 0x81, 0x7a, 0x77, 0x46,
+	0x6c, 0xeb, 0x3e, 0xc4, 0xd6, 0xbf, 0x29, 0xb0, 0x69, 0x71, 0x3b, 0xe0, 0xcd, 0xb8, 0x74, 0x09,
+	0xf5, 0xde, 0x09, 0x41, 0xee, 0xe1, 0x58, 0xa7, 0x8e, 0xa2, 0x70, 0x5d, 0x8d, 0x1a, 0x50, 0xb1,
+	0x38, 0x1b, 0x4c, 0xc7, 0x24, 0xcf, 0x54, 0x85, 0x45, 0xa1, 0xb5, 0x22, 0xb4, 0x16, 0xdf, 0xb1,
+	0x5c, 0x59, 0x1b, 0xe6, 0x2e, 0xd7, 0x09, 0x6c, 0x08, 0x1f, 0xe8, 0x4a, 0x17, 0xe1, 0xc8, 0x47,
+	0x0d, 0x96, 0x65, 0x02, 0xb1, 0x93, 0xc2, 0xf5, 0x87, 0x9c, 0x00, 0xf5, 0x1f, 0x0a, 0x54, 0x2c,
+	0xe4, 0x27, 0xcc, 0x8b, 0x83, 0x3e, 0xa2, 0xee, 0x80, 0x11, 0x7a, 0xa7, 0xbb, 0xfb, 0x1c, 0xfe,
+	0xef, 0x4b, 0x96, 0x36, 0x26, 0x34, 0x22, 0x8d, 0xa2, 0xb9, 0xd6, 0xbf, 0xca, 0x3e, 0x09, 0x15,
+	0x8d, 0xd5, 0x61, 0xfd, 0xe4, 0xda, 0xa6, 0xd0, 0xb3, 0x64, 0x59, 0x47, 0x11, 0x9e, 0x89, 0x3e,
+	0xe3, 0x38, 0x8e, 0x6e, 0xee, 0xa2, 0xfe, 0x52, 0x40, 0xab, 0x67, 0xc8, 0x30, 0xf7, 0x2b, 0x98,
+	0xa5, 0x52, 0xe1, 0xf6, 0x2a, 0x2d, 0x66, 0xab, 0x74, 0x08, 0x65, 0x0b, 0x79, 0x33, 0xf4, 0x0e,
+	0xa2, 0x70, 0xfa, 0x0c, 0x9f, 0xc2, 0x9a, 0x1f, 0x7a, 0x9d, 0x28, 0x1c, 0x3b, 0x94, 0xd7, 0xb6,
+	0x24, 0x97, 0x53, 0xbc, 0xfe, 0x45, 0x81, 0x4a, 0x7d, 0x96, 0x65, 0xee, 0x12, 0x64, 0x04, 0x54,
+	0xc8, 0x0a, 0xa8, 0xf6, 0x7b, 0x09, 0x2a, 0xa7, 0x36, 0x27, 0x43, 0x6c, 0xb4, 0x9a, 0xa3, 0x67,
+	0xdd, 0x92, 0xaf, 0xba, 0x6a, 0xc1, 0x83, 0x8c, 0xae, 0xa1, 0xe6, 0xde, 0x79, 0x6d, 0x27, 0x8d,
+	0x38, 0xaf, 0xd3, 0xec, 0x29, 0xea, 0x39, 0xa8, 0xb3, 0x45, 0xac, 0x6e, 0x25, 0x3b, 0x73, 0xda,
+	0x81, 0xb6, 0x9d, 0x6b, 0x4f, 0xc4, 0x6b, 0xc0, 0x7a, 0xac, 0xec, 0x95, 0xb2, 0x55, 0x37, 0xaa,
+	0x72, 0xd6, 0xa8, 0xa6, 0xb3, 0x46, 0xf5, 0x28, 0x9e, 0x35, 0xb4, 0x4d, 0x99, 0x41, 0x76, 0x8d,
+	0xb7, 0xe0, 0x61, 0x1d, 0xf9, 0xcc, 0xf0, 0xa0, 0x3e, 0x12, 0x9b, 0xf2, 0xa6, 0x13, 0x6d, 0x2b,
+	0xcf, 0x3c, 0xca, 0xbc, 0x05, 0x6a, 0x1d, 0xf9, 0x54, 0xc3, 0x4f, 0x32, 0xcf, 0x1d, 0x0b, 0x92,
+	0xcc, 0xf3, 0xdf, 0xe4, 0x44, 0xd2, 0x5b, 0x12, 0x5b, 0x37, 0x10, 0x4f, 0xbe, 0x3f, 0x1f, 0x05,
+	0xed, 0x54, 0xc1, 0xa6, 0x27, 0x95, 0xd7, 0xd0, 0xb4, 0x91, 0x3d, 0xa7, 0xa3, 0xbc, 0x15, 0x2a,
+	0x4c, 0xb3, 0x8e, 0x3b, 0x5e, 0x12, 0xd7, 0x35, 0xad, 0xc2, 0x84, 0xf5, 0x99, 0x52, 0x4c, 0x4e,
+	0x27, 0xaf, 0x44, 0x6f, 0x8c, 0xea, 0x83, 0xbc, 0x3e, 0x57, 0x39, 0xf3, 0xae, 0xcf, 0x56, 0x1a,
+	0x61, 0x76, 0x21, 0x1f, 0xbc, 0xf9, 0xf4, 0xda, 0x23, 0xbc, 0x17, 0x75, 0xaa, 0x0e, 0xf3, 0x0d,
+	0x36, 0x40, 0xea, 0xb0, 0xc0, 0x35, 0x64, 0x27, 0xdf, 0x1d, 0x8f, 0xcf, 0xbb, 0x84, 0x72, 0x0c,
+	0xba, 0xb6, 0x83, 0xc6, 0x70, 0xdf, 0xf0, 0x98, 0xe1, 0xfa, 0xa4, 0xb3, 0x24, 0x9c, 0xed, 0xff,
+	0x0d, 0x00, 0x00, 0xff, 0xff, 0xb0, 0x43, 0x0d, 0x3e, 0x6e, 0x0b, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -607,6 +882,14 @@
 	GetHWComponentInfo(ctx context.Context, in *HWComponentInfoGetRequest, opts ...grpc.CallOption) (NativeHWManagementService_GetHWComponentInfoClient, error)
 	// Sets the permissible attributes of a HW component
 	SetHWComponentInfo(ctx context.Context, in *HWComponentInfoSetRequest, opts ...grpc.CallOption) (*HWComponentInfoSetResponse, error)
+	// Sets the location to which logs need to be shipped
+	SetLoggingEndpoint(ctx context.Context, in *SetLoggingEndpointRequest, opts ...grpc.CallOption) (*SetRemoteEndpointResponse, error)
+	// Gets the configured location to which the logs are being shipped
+	GetLoggingEndpoint(ctx context.Context, in *Uuid, opts ...grpc.CallOption) (*GetLoggingEndpointResponse, error)
+	// Sets the location of the Message Bus to which events and metrics are shipped
+	SetMsgBusEndpoint(ctx context.Context, in *SetMsgBusEndpointRequest, opts ...grpc.CallOption) (*SetRemoteEndpointResponse, error)
+	// Gets the configured location to which the events and metrics are being shipped
+	GetMsgBusEndpoint(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*GetMsgBusEndpointResponse, error)
 }
 
 type nativeHWManagementServiceClient struct {
@@ -740,6 +1023,42 @@
 	return out, nil
 }
 
+func (c *nativeHWManagementServiceClient) SetLoggingEndpoint(ctx context.Context, in *SetLoggingEndpointRequest, opts ...grpc.CallOption) (*SetRemoteEndpointResponse, error) {
+	out := new(SetRemoteEndpointResponse)
+	err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/SetLoggingEndpoint", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetLoggingEndpoint(ctx context.Context, in *Uuid, opts ...grpc.CallOption) (*GetLoggingEndpointResponse, error) {
+	out := new(GetLoggingEndpointResponse)
+	err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/GetLoggingEndpoint", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) SetMsgBusEndpoint(ctx context.Context, in *SetMsgBusEndpointRequest, opts ...grpc.CallOption) (*SetRemoteEndpointResponse, error) {
+	out := new(SetRemoteEndpointResponse)
+	err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/SetMsgBusEndpoint", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *nativeHWManagementServiceClient) GetMsgBusEndpoint(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*GetMsgBusEndpointResponse, error) {
+	out := new(GetMsgBusEndpointResponse)
+	err := c.cc.Invoke(ctx, "/dmi.NativeHWManagementService/GetMsgBusEndpoint", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // NativeHWManagementServiceServer is the server API for NativeHWManagementService service.
 type NativeHWManagementServiceServer interface {
 	// Initializes context for a device and sets up required states
@@ -762,6 +1081,14 @@
 	GetHWComponentInfo(*HWComponentInfoGetRequest, NativeHWManagementService_GetHWComponentInfoServer) error
 	// Sets the permissible attributes of a HW component
 	SetHWComponentInfo(context.Context, *HWComponentInfoSetRequest) (*HWComponentInfoSetResponse, error)
+	// Sets the location to which logs need to be shipped
+	SetLoggingEndpoint(context.Context, *SetLoggingEndpointRequest) (*SetRemoteEndpointResponse, error)
+	// Gets the configured location to which the logs are being shipped
+	GetLoggingEndpoint(context.Context, *Uuid) (*GetLoggingEndpointResponse, error)
+	// Sets the location of the Message Bus to which events and metrics are shipped
+	SetMsgBusEndpoint(context.Context, *SetMsgBusEndpointRequest) (*SetRemoteEndpointResponse, error)
+	// Gets the configured location to which the events and metrics are being shipped
+	GetMsgBusEndpoint(context.Context, *empty.Empty) (*GetMsgBusEndpointResponse, error)
 }
 
 func RegisterNativeHWManagementServiceServer(s *grpc.Server, srv NativeHWManagementServiceServer) {
@@ -885,6 +1212,78 @@
 	return interceptor(ctx, in, info, handler)
 }
 
+func _NativeHWManagementService_SetLoggingEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetLoggingEndpointRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(NativeHWManagementServiceServer).SetLoggingEndpoint(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/dmi.NativeHWManagementService/SetLoggingEndpoint",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(NativeHWManagementServiceServer).SetLoggingEndpoint(ctx, req.(*SetLoggingEndpointRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_GetLoggingEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(Uuid)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(NativeHWManagementServiceServer).GetLoggingEndpoint(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/dmi.NativeHWManagementService/GetLoggingEndpoint",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(NativeHWManagementServiceServer).GetLoggingEndpoint(ctx, req.(*Uuid))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_SetMsgBusEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SetMsgBusEndpointRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(NativeHWManagementServiceServer).SetMsgBusEndpoint(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/dmi.NativeHWManagementService/SetMsgBusEndpoint",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(NativeHWManagementServiceServer).SetMsgBusEndpoint(ctx, req.(*SetMsgBusEndpointRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _NativeHWManagementService_GetMsgBusEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(empty.Empty)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(NativeHWManagementServiceServer).GetMsgBusEndpoint(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/dmi.NativeHWManagementService/GetMsgBusEndpoint",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(NativeHWManagementServiceServer).GetMsgBusEndpoint(ctx, req.(*empty.Empty))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 var _NativeHWManagementService_serviceDesc = grpc.ServiceDesc{
 	ServiceName: "dmi.NativeHWManagementService",
 	HandlerType: (*NativeHWManagementServiceServer)(nil),
@@ -901,6 +1300,22 @@
 			MethodName: "SetHWComponentInfo",
 			Handler:    _NativeHWManagementService_SetHWComponentInfo_Handler,
 		},
+		{
+			MethodName: "SetLoggingEndpoint",
+			Handler:    _NativeHWManagementService_SetLoggingEndpoint_Handler,
+		},
+		{
+			MethodName: "GetLoggingEndpoint",
+			Handler:    _NativeHWManagementService_GetLoggingEndpoint_Handler,
+		},
+		{
+			MethodName: "SetMsgBusEndpoint",
+			Handler:    _NativeHWManagementService_SetMsgBusEndpoint_Handler,
+		},
+		{
+			MethodName: "GetMsgBusEndpoint",
+			Handler:    _NativeHWManagementService_GetMsgBusEndpoint_Handler,
+		},
 	},
 	Streams: []grpc.StreamDesc{
 		{
