diff --git a/dmi.pb b/dmi.pb
index 9c258c3..0cb1afc 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 1587f27..f102422 100644
--- a/go/dmi/hw_events_mgmt_service.pb.go
+++ b/go/dmi/hw_events_mgmt_service.pb.go
@@ -975,7 +975,7 @@
 	// List the supported events for the passed device
 	ListEvents(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*ListEventsResponse, error)
 	// Updates the configuration of the list of events in the request
-	// The default behaviour of the device is to report all the supported events
+	// 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)
 }
@@ -1011,7 +1011,7 @@
 	// List the supported events for the passed device
 	ListEvents(context.Context, *HardwareID) (*ListEventsResponse, error)
 	// Updates the configuration of the list of events in the request
-	// The default behaviour of the device is to report all the supported events
+	// 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)
 }
diff --git a/go/dmi/hw_management_service.pb.go b/go/dmi/hw_management_service.pb.go
index ef980fa..4b023e9 100644
--- a/go/dmi/hw_management_service.pb.go
+++ b/go/dmi/hw_management_service.pb.go
@@ -171,6 +171,61 @@
 	return ""
 }
 
+type HWComponentInfoGetResponse 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"`
+	Component            *Component `protobuf:"bytes,3,opt,name=component,proto3" json:"component,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
+	XXX_unrecognized     []byte     `json:"-"`
+	XXX_sizecache        int32      `json:"-"`
+}
+
+func (m *HWComponentInfoGetResponse) Reset()         { *m = HWComponentInfoGetResponse{} }
+func (m *HWComponentInfoGetResponse) String() string { return proto.CompactTextString(m) }
+func (*HWComponentInfoGetResponse) ProtoMessage()    {}
+func (*HWComponentInfoGetResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{3}
+}
+
+func (m *HWComponentInfoGetResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_HWComponentInfoGetResponse.Unmarshal(m, b)
+}
+func (m *HWComponentInfoGetResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_HWComponentInfoGetResponse.Marshal(b, m, deterministic)
+}
+func (m *HWComponentInfoGetResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_HWComponentInfoGetResponse.Merge(m, src)
+}
+func (m *HWComponentInfoGetResponse) XXX_Size() int {
+	return xxx_messageInfo_HWComponentInfoGetResponse.Size(m)
+}
+func (m *HWComponentInfoGetResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_HWComponentInfoGetResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_HWComponentInfoGetResponse proto.InternalMessageInfo
+
+func (m *HWComponentInfoGetResponse) GetStatus() Status {
+	if m != nil {
+		return m.Status
+	}
+	return Status_UNDEFINED_STATUS
+}
+
+func (m *HWComponentInfoGetResponse) GetReason() Reason {
+	if m != nil {
+		return m.Reason
+	}
+	return Reason_UNDEFINED_REASON
+}
+
+func (m *HWComponentInfoGetResponse) GetComponent() *Component {
+	if m != nil {
+		return m.Component
+	}
+	return nil
+}
+
 type HWComponentInfoSetRequest struct {
 	DeviceUuid           *Uuid                `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
 	ComponentUuid        *Uuid                `protobuf:"bytes,2,opt,name=component_uuid,json=componentUuid,proto3" json:"component_uuid,omitempty"`
@@ -185,7 +240,7 @@
 func (m *HWComponentInfoSetRequest) String() string { return proto.CompactTextString(m) }
 func (*HWComponentInfoSetRequest) ProtoMessage()    {}
 func (*HWComponentInfoSetRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_eae902e73066286d, []int{3}
+	return fileDescriptor_eae902e73066286d, []int{4}
 }
 
 func (m *HWComponentInfoSetRequest) XXX_Unmarshal(b []byte) error {
@@ -246,7 +301,7 @@
 func (m *HWComponentInfoSetResponse) String() string { return proto.CompactTextString(m) }
 func (*HWComponentInfoSetResponse) ProtoMessage()    {}
 func (*HWComponentInfoSetResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_eae902e73066286d, []int{4}
+	return fileDescriptor_eae902e73066286d, []int{5}
 }
 
 func (m *HWComponentInfoSetResponse) XXX_Unmarshal(b []byte) error {
@@ -294,7 +349,7 @@
 func (m *StartManagingDeviceResponse) String() string { return proto.CompactTextString(m) }
 func (*StartManagingDeviceResponse) ProtoMessage()    {}
 func (*StartManagingDeviceResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_eae902e73066286d, []int{5}
+	return fileDescriptor_eae902e73066286d, []int{6}
 }
 
 func (m *StartManagingDeviceResponse) XXX_Unmarshal(b []byte) error {
@@ -347,7 +402,7 @@
 func (m *StopManagingDeviceRequest) String() string { return proto.CompactTextString(m) }
 func (*StopManagingDeviceRequest) ProtoMessage()    {}
 func (*StopManagingDeviceRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_eae902e73066286d, []int{6}
+	return fileDescriptor_eae902e73066286d, []int{7}
 }
 
 func (m *StopManagingDeviceRequest) XXX_Unmarshal(b []byte) error {
@@ -387,7 +442,7 @@
 func (m *StopManagingDeviceResponse) String() string { return proto.CompactTextString(m) }
 func (*StopManagingDeviceResponse) ProtoMessage()    {}
 func (*StopManagingDeviceResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_eae902e73066286d, []int{7}
+	return fileDescriptor_eae902e73066286d, []int{8}
 }
 
 func (m *StopManagingDeviceResponse) XXX_Unmarshal(b []byte) error {
@@ -426,6 +481,7 @@
 	proto.RegisterType((*PhysicalInventoryRequest)(nil), "dmi.PhysicalInventoryRequest")
 	proto.RegisterType((*PhysicalInventoryResponse)(nil), "dmi.PhysicalInventoryResponse")
 	proto.RegisterType((*HWComponentInfoGetRequest)(nil), "dmi.HWComponentInfoGetRequest")
+	proto.RegisterType((*HWComponentInfoGetResponse)(nil), "dmi.HWComponentInfoGetResponse")
 	proto.RegisterType((*HWComponentInfoSetRequest)(nil), "dmi.HWComponentInfoSetRequest")
 	proto.RegisterType((*HWComponentInfoSetResponse)(nil), "dmi.HWComponentInfoSetResponse")
 	proto.RegisterType((*StartManagingDeviceResponse)(nil), "dmi.StartManagingDeviceResponse")
@@ -436,40 +492,42 @@
 func init() { proto.RegisterFile("dmi/hw_management_service.proto", fileDescriptor_eae902e73066286d) }
 
 var fileDescriptor_eae902e73066286d = []byte{
-	// 527 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xd1, 0x6a, 0x13, 0x41,
-	0x14, 0x65, 0x9b, 0x52, 0xc9, 0x8d, 0x0d, 0x38, 0xfa, 0xb0, 0x59, 0xb1, 0x2d, 0x2b, 0x82, 0x28,
-	0xcd, 0x96, 0xf4, 0x49, 0x7c, 0x53, 0x69, 0xd2, 0x87, 0x14, 0xd9, 0xa5, 0x04, 0x7c, 0x09, 0x93,
-	0x9d, 0x9b, 0x64, 0xa0, 0x33, 0xb3, 0xee, 0xcc, 0xa6, 0xf4, 0x37, 0xf4, 0x07, 0xfc, 0x13, 0x7f,
-	0xc2, 0x0f, 0x92, 0x9d, 0xdd, 0x6c, 0x42, 0x92, 0x15, 0x91, 0x0a, 0x7d, 0xdb, 0xcc, 0x39, 0xf7,
-	0x70, 0xee, 0x99, 0xb9, 0x37, 0x70, 0xcc, 0x04, 0x0f, 0xe6, 0xb7, 0x63, 0x41, 0x25, 0x9d, 0xa1,
-	0x40, 0x69, 0xc6, 0x1a, 0xd3, 0x05, 0x8f, 0xb1, 0x9b, 0xa4, 0xca, 0x28, 0xd2, 0x60, 0x82, 0x7b,
-	0x4f, 0x72, 0x56, 0xac, 0x84, 0x50, 0x52, 0x17, 0xe7, 0xde, 0xe3, 0xa2, 0xb0, 0xf8, 0xe5, 0x5f,
-	0x80, 0xfb, 0x79, 0x7e, 0xa7, 0x79, 0x4c, 0x6f, 0x2e, 0xe5, 0x02, 0xa5, 0x51, 0xe9, 0x5d, 0x88,
-	0x5f, 0x33, 0xd4, 0x86, 0xbc, 0x81, 0x16, 0xc3, 0x5c, 0x71, 0x9c, 0x65, 0x9c, 0xb9, 0xce, 0x89,
-	0xf3, 0xba, 0xd5, 0x6b, 0x76, 0x99, 0xe0, 0xdd, 0xeb, 0x8c, 0xb3, 0x10, 0x0a, 0x34, 0xff, 0xf6,
-	0xbf, 0x39, 0xd0, 0xd9, 0x21, 0xa4, 0x13, 0x25, 0x35, 0x92, 0x97, 0x70, 0xa0, 0x0d, 0x35, 0x99,
-	0xb6, 0x22, 0xed, 0x5e, 0xcb, 0x8a, 0x44, 0xf6, 0x28, 0x2c, 0xa1, 0x9c, 0x94, 0x22, 0xd5, 0x4a,
-	0xba, 0x7b, 0x6b, 0xa4, 0xd0, 0x1e, 0x85, 0x25, 0x44, 0xde, 0x42, 0x93, 0x2f, 0xe5, 0xdd, 0x86,
-	0x75, 0x74, 0x68, 0x79, 0x03, 0x9a, 0xb2, 0x5b, 0x9a, 0x62, 0xb8, 0xc2, 0xfd, 0x1f, 0x0e, 0x74,
-	0x06, 0xa3, 0x8f, 0x4a, 0x24, 0x4a, 0xa2, 0x34, 0x97, 0x72, 0xaa, 0xfa, 0x68, 0xfe, 0xa1, 0x3d,
-	0x72, 0x06, 0xed, 0x78, 0x29, 0x53, 0xd0, 0xf7, 0x36, 0xe9, 0x87, 0x15, 0xc1, 0x56, 0xbc, 0x5a,
-	0xaf, 0x90, 0x54, 0xa0, 0x75, 0xdb, 0x5c, 0xa3, 0x5d, 0x51, 0x81, 0xfe, 0xaf, 0x6d, 0x8b, 0xd1,
-	0xc3, 0xb2, 0x48, 0x7a, 0xf0, 0x28, 0x9e, 0x53, 0x39, 0x43, 0xed, 0xee, 0x5b, 0x45, 0xd7, 0x2a,
-	0x0e, 0x15, 0xe3, 0x53, 0x4e, 0x27, 0x37, 0x58, 0xb9, 0x0f, 0x97, 0x44, 0x7f, 0x0a, 0xde, 0xae,
-	0xae, 0xee, 0xfb, 0x39, 0xf8, 0xdf, 0x1d, 0x78, 0x1e, 0x19, 0x9a, 0x9a, 0x61, 0x3e, 0x06, 0x5c,
-	0xce, 0x3e, 0xd9, 0x40, 0xfe, 0xc3, 0xc3, 0xdb, 0xb8, 0x8a, 0xc6, 0x9f, 0x86, 0x21, 0x80, 0x4e,
-	0x64, 0x54, 0xb2, 0xe9, 0xa9, 0xb8, 0x53, 0x02, 0xfb, 0x36, 0x6b, 0xc7, 0x66, 0x6d, 0xbf, 0xf3,
-	0xb8, 0x76, 0x15, 0xdc, 0x77, 0x13, 0xbd, 0x9f, 0x0d, 0xe8, 0x5c, 0x51, 0xc3, 0x17, 0x38, 0x18,
-	0x0d, 0xab, 0xc5, 0x11, 0x15, 0x7b, 0x83, 0x44, 0xf0, 0x74, 0x47, 0x96, 0xa4, 0xf6, 0xba, 0xbd,
-	0x93, 0xa5, 0x91, 0xba, 0xfc, 0xcf, 0x1c, 0x72, 0x0d, 0x64, 0xbb, 0x35, 0x72, 0x54, 0x56, 0xd6,
-	0x84, 0xe4, 0x1d, 0xd7, 0xe2, 0x65, 0x26, 0x23, 0x78, 0xd6, 0x47, 0xb3, 0xb5, 0x71, 0xc8, 0x0b,
-	0x5b, 0x58, 0xb7, 0xd2, 0xbc, 0xa3, 0x3a, 0xb8, 0xf2, 0x7b, 0x01, 0xa4, 0x8f, 0x66, 0xe3, 0xf1,
-	0x96, 0x7e, 0x6b, 0x77, 0x89, 0xd7, 0xb6, 0x78, 0x85, 0x96, 0x7d, 0xff, 0xa5, 0xce, 0x6a, 0xe0,
-	0xcb, 0xbe, 0xeb, 0x47, 0xe7, 0xc3, 0xfb, 0x2f, 0xef, 0x66, 0xdc, 0xcc, 0xb3, 0x49, 0x37, 0x56,
-	0x22, 0x50, 0x09, 0xca, 0x58, 0xa5, 0x2c, 0x28, 0x1e, 0xdf, 0xe9, 0xea, 0xcf, 0xe0, 0x94, 0x4b,
-	0x83, 0xe9, 0x94, 0xc6, 0x18, 0x2c, 0xce, 0x83, 0x99, 0x0a, 0x98, 0xe0, 0x93, 0x03, 0xbb, 0xf3,
-	0xcf, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x47, 0xf4, 0xba, 0x3c, 0x06, 0x00, 0x00,
+	// 547 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0xd1, 0x6e, 0xd3, 0x30,
+	0x14, 0x55, 0xd6, 0x69, 0xa8, 0x77, 0xac, 0x12, 0x86, 0x87, 0x34, 0x88, 0x6d, 0x0a, 0x42, 0x42,
+	0xc0, 0x9a, 0xa9, 0x7b, 0x42, 0xbc, 0x01, 0xa2, 0xdd, 0x43, 0x27, 0x94, 0x68, 0xaa, 0xc4, 0x4b,
+	0xe5, 0xc6, 0xb7, 0xad, 0xa5, 0xd9, 0x0e, 0xb1, 0xd3, 0x69, 0xbf, 0x01, 0x7c, 0x00, 0x9f, 0xc4,
+	0x03, 0x1f, 0x84, 0xe2, 0xa4, 0x69, 0xd5, 0x36, 0x80, 0xd0, 0x26, 0xf1, 0x96, 0xf8, 0x9e, 0x7b,
+	0x7c, 0xee, 0xb9, 0xf6, 0x35, 0x1c, 0x31, 0xc1, 0x83, 0xd9, 0xf5, 0x48, 0x50, 0x49, 0xa7, 0x28,
+	0x50, 0x9a, 0x91, 0xc6, 0x74, 0xce, 0x63, 0xec, 0x24, 0xa9, 0x32, 0x8a, 0x34, 0x98, 0xe0, 0xde,
+	0x83, 0x1c, 0x15, 0x2b, 0x21, 0x94, 0xd4, 0xc5, 0xba, 0x77, 0xbf, 0x48, 0x2c, 0xfe, 0xfc, 0x0f,
+	0xe0, 0x7e, 0x9c, 0xdd, 0x68, 0x1e, 0xd3, 0xab, 0x73, 0x39, 0x47, 0x69, 0x54, 0x7a, 0x13, 0xe2,
+	0xe7, 0x0c, 0xb5, 0x21, 0x2f, 0x60, 0x9f, 0x61, 0xce, 0x38, 0xca, 0x32, 0xce, 0x5c, 0xe7, 0xd8,
+	0x79, 0xbe, 0xdf, 0x6d, 0x76, 0x98, 0xe0, 0x9d, 0xcb, 0x8c, 0xb3, 0x10, 0x8a, 0x68, 0xfe, 0xed,
+	0x7f, 0x71, 0xa0, 0xbd, 0x85, 0x48, 0x27, 0x4a, 0x6a, 0x24, 0x4f, 0x61, 0x4f, 0x1b, 0x6a, 0x32,
+	0x6d, 0x49, 0x5a, 0xdd, 0x7d, 0x4b, 0x12, 0xd9, 0xa5, 0xb0, 0x0c, 0xe5, 0xa0, 0x14, 0xa9, 0x56,
+	0xd2, 0xdd, 0x59, 0x01, 0x85, 0x76, 0x29, 0x2c, 0x43, 0xe4, 0x25, 0x34, 0xf9, 0x82, 0xde, 0x6d,
+	0x58, 0x45, 0x07, 0x16, 0xd7, 0xa7, 0x29, 0xbb, 0xa6, 0x29, 0x86, 0xcb, 0xb8, 0xff, 0xdd, 0x81,
+	0x76, 0x7f, 0xf8, 0x4e, 0x89, 0x44, 0x49, 0x94, 0xe6, 0x5c, 0x4e, 0x54, 0x0f, 0xcd, 0x3f, 0x94,
+	0x47, 0x4e, 0xa1, 0x15, 0x2f, 0x68, 0x0a, 0xf8, 0xce, 0x3a, 0xfc, 0xa0, 0x02, 0xd8, 0x8c, 0x67,
+	0xab, 0x19, 0x92, 0x0a, 0xb4, 0x6a, 0x9b, 0x2b, 0xb0, 0x0b, 0x2a, 0xd0, 0xff, 0xe6, 0x80, 0xb7,
+	0x4d, 0xe2, 0xad, 0x1b, 0xf7, 0x0a, 0x9a, 0xd5, 0xce, 0xa5, 0x71, 0x2d, 0x8b, 0xab, 0xf6, 0x0e,
+	0x97, 0x00, 0xff, 0xe7, 0xa6, 0x73, 0xd1, 0xff, 0xe5, 0x1c, 0xe9, 0xc2, 0xbd, 0x78, 0x46, 0xe5,
+	0x14, 0xb5, 0xbb, 0x6b, 0x19, 0x5d, 0xcb, 0x38, 0x50, 0x8c, 0x4f, 0x38, 0x1d, 0x5f, 0xe1, 0xb2,
+	0xb0, 0x05, 0xd0, 0x9f, 0x6c, 0x98, 0x1d, 0xdd, 0x85, 0xd9, 0xfe, 0x57, 0x07, 0x1e, 0x47, 0x86,
+	0xa6, 0x66, 0x90, 0xdf, 0x4e, 0x2e, 0xa7, 0xef, 0xad, 0x21, 0x77, 0xd0, 0xd6, 0xb5, 0x56, 0x34,
+	0x7e, 0x77, 0x47, 0x03, 0x68, 0x47, 0x46, 0x25, 0xeb, 0x9a, 0x8a, 0x9e, 0x12, 0xd8, 0xb5, 0x5e,
+	0x3b, 0xd6, 0x6b, 0xfb, 0x9d, 0xdb, 0xb5, 0x2d, 0xe1, 0xb6, 0x8b, 0xe8, 0xfe, 0x68, 0x40, 0xfb,
+	0x82, 0x1a, 0x3e, 0xc7, 0xfe, 0x70, 0x50, 0xcd, 0xb3, 0xa8, 0x18, 0x67, 0x24, 0x82, 0x87, 0x5b,
+	0xbc, 0x24, 0xb5, 0xed, 0xf6, 0x8e, 0x17, 0x42, 0xea, 0xfc, 0x3f, 0x75, 0xc8, 0x25, 0x90, 0xcd,
+	0xd2, 0xc8, 0x61, 0x99, 0x59, 0x63, 0x92, 0x77, 0x54, 0x1b, 0x2f, 0x3d, 0x19, 0xc2, 0xa3, 0x1e,
+	0x9a, 0x8d, 0x41, 0x48, 0x9e, 0xd8, 0xc4, 0xba, 0x49, 0xeb, 0x1d, 0xd6, 0x85, 0x2b, 0xbd, 0x43,
+	0x20, 0x3d, 0x34, 0x6b, 0x87, 0xb7, 0xd4, 0x5b, 0x3b, 0xe2, 0x4a, 0xbd, 0xf5, 0xf3, 0xa5, 0x34,
+	0xe2, 0x2f, 0x89, 0xa3, 0x3f, 0x10, 0xaf, 0xdc, 0xa5, 0xb7, 0x6f, 0x3e, 0xbd, 0x9e, 0x72, 0x33,
+	0xcb, 0xc6, 0x9d, 0x58, 0x89, 0x40, 0x25, 0x28, 0x63, 0x95, 0xb2, 0xa0, 0x38, 0x8d, 0x27, 0xcb,
+	0x47, 0xeb, 0x84, 0x4b, 0x83, 0xe9, 0x84, 0xc6, 0x18, 0xcc, 0xcf, 0x82, 0xa9, 0x0a, 0x98, 0xe0,
+	0xe3, 0x3d, 0xfb, 0x36, 0x9d, 0xfd, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x3c, 0xdb, 0x2f, 0x23, 0xe4,
+	0x06, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -601,7 +659,7 @@
 }
 
 type NativeHWManagementService_GetHWComponentInfoClient interface {
-	Recv() (*Component, error)
+	Recv() (*HWComponentInfoGetResponse, error)
 	grpc.ClientStream
 }
 
@@ -609,8 +667,8 @@
 	grpc.ClientStream
 }
 
-func (x *nativeHWManagementServiceGetHWComponentInfoClient) Recv() (*Component, error) {
-	m := new(Component)
+func (x *nativeHWManagementServiceGetHWComponentInfoClient) Recv() (*HWComponentInfoGetResponse, error) {
+	m := new(HWComponentInfoGetResponse)
 	if err := x.ClientStream.RecvMsg(m); err != nil {
 		return nil, err
 	}
@@ -721,7 +779,7 @@
 }
 
 type NativeHWManagementService_GetHWComponentInfoServer interface {
-	Send(*Component) error
+	Send(*HWComponentInfoGetResponse) error
 	grpc.ServerStream
 }
 
@@ -729,7 +787,7 @@
 	grpc.ServerStream
 }
 
-func (x *nativeHWManagementServiceGetHWComponentInfoServer) Send(m *Component) error {
+func (x *nativeHWManagementServiceGetHWComponentInfoServer) Send(m *HWComponentInfoGetResponse) error {
 	return x.ServerStream.SendMsg(m)
 }
 
diff --git a/go/dmi/hw_metrics_mgmt_service.pb.go b/go/dmi/hw_metrics_mgmt_service.pb.go
index 7bddd75..5d41dc2 100644
--- a/go/dmi/hw_metrics_mgmt_service.pb.go
+++ b/go/dmi/hw_metrics_mgmt_service.pb.go
@@ -569,6 +569,61 @@
 	return MetricNames_METRIC_NAME_UNDEFINED
 }
 
+type GetMetricResponse 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"`
+	Metric               *Metric  `protobuf:"bytes,3,opt,name=metric,proto3" json:"metric,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *GetMetricResponse) Reset()         { *m = GetMetricResponse{} }
+func (m *GetMetricResponse) String() string { return proto.CompactTextString(m) }
+func (*GetMetricResponse) ProtoMessage()    {}
+func (*GetMetricResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_6b6c2f1384c11ff5, []int{8}
+}
+
+func (m *GetMetricResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetMetricResponse.Unmarshal(m, b)
+}
+func (m *GetMetricResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetMetricResponse.Marshal(b, m, deterministic)
+}
+func (m *GetMetricResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetMetricResponse.Merge(m, src)
+}
+func (m *GetMetricResponse) XXX_Size() int {
+	return xxx_messageInfo_GetMetricResponse.Size(m)
+}
+func (m *GetMetricResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetMetricResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetMetricResponse proto.InternalMessageInfo
+
+func (m *GetMetricResponse) GetStatus() Status {
+	if m != nil {
+		return m.Status
+	}
+	return Status_UNDEFINED_STATUS
+}
+
+func (m *GetMetricResponse) GetReason() Reason {
+	if m != nil {
+		return m.Reason
+	}
+	return Reason_UNDEFINED_REASON
+}
+
+func (m *GetMetricResponse) GetMetric() *Metric {
+	if m != nil {
+		return m.Metric
+	}
+	return nil
+}
+
 func init() {
 	proto.RegisterEnum("dmi.MetricNames", MetricNames_name, MetricNames_value)
 	proto.RegisterType((*MetricConfig)(nil), "dmi.MetricConfig")
@@ -579,74 +634,76 @@
 	proto.RegisterType((*MetricMetaData)(nil), "dmi.MetricMetaData")
 	proto.RegisterType((*Metric)(nil), "dmi.Metric")
 	proto.RegisterType((*GetMetricRequest)(nil), "dmi.GetMetricRequest")
+	proto.RegisterType((*GetMetricResponse)(nil), "dmi.GetMetricResponse")
 }
 
 func init() { proto.RegisterFile("dmi/hw_metrics_mgmt_service.proto", fileDescriptor_6b6c2f1384c11ff5) }
 
 var fileDescriptor_6b6c2f1384c11ff5 = []byte{
-	// 984 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0xdd, 0x6e, 0xe3, 0x44,
-	0x14, 0xc7, 0xeb, 0x84, 0xed, 0xb6, 0x27, 0xfd, 0x70, 0xa7, 0x2d, 0x9b, 0xcd, 0x16, 0x36, 0x4d,
-	0x05, 0xaa, 0x0a, 0x4d, 0x56, 0xdd, 0x1b, 0x10, 0x7b, 0xe3, 0x3a, 0x6e, 0x6b, 0x91, 0xb8, 0xd1,
-	0xc4, 0x69, 0x77, 0xb9, 0x19, 0xcd, 0xc6, 0xd3, 0xd4, 0x52, 0x6d, 0x07, 0x7b, 0xdc, 0x7d, 0x04,
-	0xae, 0x90, 0xf8, 0x10, 0x8f, 0xc0, 0x1d, 0xdf, 0x4f, 0xc1, 0xe7, 0x3d, 0xbc, 0x04, 0x57, 0xc0,
-	0x35, 0xf2, 0x8c, 0x63, 0xa6, 0xdd, 0x14, 0xb4, 0x12, 0x77, 0xcd, 0xff, 0xfc, 0xce, 0x39, 0xff,
-	0x73, 0x6c, 0xcf, 0x14, 0x36, 0xbd, 0xc0, 0x6f, 0x9d, 0x3f, 0x23, 0x01, 0xe3, 0xb1, 0x3f, 0x4c,
-	0x48, 0x30, 0x0a, 0x38, 0x49, 0x58, 0x7c, 0xe9, 0x0f, 0x59, 0x73, 0x1c, 0x47, 0x3c, 0x42, 0x65,
-	0x2f, 0xf0, 0x6b, 0x2b, 0x19, 0x37, 0x8c, 0x82, 0x20, 0x0a, 0x13, 0xa9, 0xd7, 0x16, 0x64, 0xaa,
-	0xfc, 0xd5, 0xf8, 0x40, 0x83, 0x85, 0xae, 0x28, 0x62, 0x46, 0xe1, 0x99, 0x3f, 0x42, 0xbb, 0x30,
-	0x2f, 0x8b, 0x12, 0xdf, 0xab, 0x6a, 0x75, 0x6d, 0x7b, 0x69, 0x4f, 0x6f, 0x7a, 0x81, 0xdf, 0x94,
-	0x94, 0x43, 0x03, 0x96, 0xe0, 0x39, 0x89, 0xd8, 0x1e, 0xda, 0x82, 0x45, 0x3f, 0x21, 0x43, 0x91,
-	0x9b, 0xc6, 0xcc, 0xab, 0x96, 0xea, 0xda, 0xf6, 0x1c, 0x5e, 0xf0, 0x13, 0xb3, 0xd0, 0x32, 0x68,
-	0x1c, 0x5d, 0x5c, 0x10, 0x3f, 0xe4, 0x2c, 0xbe, 0xa4, 0x17, 0xd5, 0x72, 0x5d, 0xdb, 0x5e, 0xc4,
-	0x0b, 0x99, 0x68, 0xe7, 0x5a, 0xe3, 0x11, 0x2c, 0xca, 0x16, 0x79, 0x26, 0x7a, 0x03, 0x6e, 0xe7,
-	0xe3, 0x55, 0xb5, 0x7a, 0x79, 0xbb, 0xb2, 0xb7, 0xa2, 0xf8, 0x90, 0x0c, 0x9e, 0x10, 0x8d, 0x0f,
-	0x35, 0x58, 0xed, 0xf8, 0x09, 0xcf, 0x4b, 0x60, 0x96, 0x8c, 0xa3, 0x30, 0x61, 0x68, 0x0b, 0x66,
-	0x13, 0x4e, 0x79, 0x9a, 0xe4, 0xb3, 0x54, 0x44, 0x8d, 0xbe, 0x90, 0x70, 0x1e, 0xca, 0xa0, 0x98,
-	0xd1, 0x24, 0x0a, 0x85, 0xfb, 0x09, 0x84, 0x85, 0x84, 0xf3, 0x10, 0x7a, 0xf3, 0x1f, 0x3b, 0x99,
-	0xfd, 0xca, 0x1e, 0x52, 0xec, 0x24, 0xd7, 0xfd, 0x7c, 0xa7, 0xc1, 0xbd, 0x2b, 0xa1, 0x34, 0xa6,
-	0xdc, 0x8f, 0x42, 0xcc, 0xde, 0x4f, 0x59, 0xc2, 0xd1, 0x0e, 0x54, 0x3c, 0x96, 0x3d, 0x2d, 0x92,
-	0xa6, 0xf9, 0xa2, 0x2b, 0x7b, 0xf3, 0xa2, 0xe2, 0x20, 0xf5, 0x3d, 0x0c, 0x32, 0x9a, 0xfd, 0x8d,
-	0x9a, 0x70, 0x7b, 0x78, 0x4e, 0xc3, 0x11, 0x4b, 0x84, 0xbf, 0xa9, 0x9d, 0x8f, 0x66, 0xf0, 0x04,
-	0x42, 0x3b, 0xa0, 0xc7, 0x2c, 0x61, 0x9c, 0xf0, 0x88, 0x78, 0xec, 0x8c, 0xa6, 0x17, 0x5c, 0x58,
-	0x9e, 0x3b, 0x9a, 0xc1, 0x4b, 0x22, 0xe2, 0x46, 0x6d, 0xa9, 0xef, 0x57, 0x60, 0x3e, 0x1a, 0x33,
-	0xe9, 0xad, 0x71, 0x0e, 0x1b, 0xd3, 0x3d, 0xff, 0xdf, 0xcb, 0x6c, 0x7c, 0xa6, 0xc1, 0x92, 0x6c,
-	0xd5, 0x65, 0x9c, 0xb6, 0x29, 0xa7, 0x2f, 0xb4, 0x91, 0x07, 0xb0, 0x34, 0x8c, 0x82, 0x71, 0x14,
-	0xb2, 0x90, 0x4b, 0xbc, 0x74, 0x1d, 0x5f, 0x2c, 0x00, 0x91, 0xf1, 0x9a, 0x9a, 0x11, 0xd2, 0x80,
-	0x89, 0x8d, 0xcc, 0x2b, 0x58, 0xf6, 0x66, 0x37, 0x3e, 0xd7, 0x60, 0x56, 0xfa, 0x7a, 0xd1, 0x0f,
-	0xe1, 0x11, 0x2c, 0xe7, 0x78, 0xc0, 0x38, 0xf5, 0x28, 0xa7, 0xb9, 0xa7, 0x55, 0x25, 0x69, 0x32,
-	0x2c, 0x5e, 0x0a, 0x8a, 0xdf, 0x19, 0x8a, 0x9a, 0x70, 0xeb, 0x92, 0x5e, 0xa4, 0x2c, 0x7f, 0xb5,
-	0xaa, 0x22, 0xc7, 0x9c, 0x58, 0xeb, 0xb3, 0x30, 0x89, 0x62, 0x91, 0x28, 0xb1, 0x46, 0x02, 0xfa,
-	0x21, 0xcb, 0x5f, 0xf6, 0xc9, 0x2b, 0xf5, 0x40, 0x18, 0xa6, 0x44, 0xf4, 0xd6, 0x6e, 0xee, 0x9d,
-	0x79, 0x96, 0x2b, 0xbf, 0x32, 0x62, 0xe9, 0xbf, 0x46, 0xdc, 0xf9, 0xed, 0x16, 0x54, 0x94, 0x08,
-	0xba, 0x0b, 0xeb, 0x5d, 0xcb, 0xc5, 0xb6, 0x49, 0x1c, 0xa3, 0x6b, 0x91, 0x81, 0xd3, 0xb6, 0x0e,
-	0x6c, 0xc7, 0x6a, 0xeb, 0x33, 0x68, 0x0d, 0xf4, 0x3c, 0x74, 0x60, 0x38, 0xa4, 0xdf, 0xb3, 0xac,
-	0xb6, 0xae, 0xa1, 0x55, 0x58, 0xce, 0x55, 0xb3, 0x37, 0x20, 0xae, 0xd5, 0xed, 0xe9, 0x1e, 0xba,
-	0x0f, 0xf7, 0x14, 0x71, 0xd0, 0x37, 0x0e, 0x2d, 0xd2, 0xb3, 0xb0, 0x69, 0x39, 0xae, 0x71, 0x68,
-	0xe9, 0x0c, 0x6d, 0xc0, 0x9d, 0x1c, 0x70, 0xb1, 0xe1, 0xf4, 0x4d, 0xcb, 0x3e, 0xb1, 0xb0, 0xcc,
-	0xfe, 0x5e, 0x43, 0xf7, 0xa1, 0x36, 0x25, 0x7a, 0x72, 0xdc, 0x11, 0xd9, 0x3f, 0x68, 0x37, 0xa4,
-	0xef, 0xdb, 0x46, 0x5f, 0xff, 0x51, 0x43, 0xf5, 0xa2, 0xbb, 0x1a, 0xc5, 0x8f, 0x49, 0xef, 0xf8,
-	0xd4, 0xc2, 0xfa, 0x4f, 0x37, 0x11, 0xee, 0x84, 0xf8, 0x59, 0x43, 0x0d, 0x78, 0x65, 0x0a, 0x71,
-	0x6a, 0x9c, 0x58, 0x1d, 0xcb, 0x39, 0x74, 0x8f, 0xf4, 0x5f, 0x34, 0xb4, 0x5e, 0x2c, 0xa4, 0x6d,
-	0xf7, 0xdf, 0x95, 0xee, 0xbf, 0x28, 0xa1, 0xbb, 0xb0, 0xa6, 0xca, 0xa6, 0xd1, 0x33, 0x4c, 0xdb,
-	0x7d, 0xa2, 0x7f, 0x59, 0x42, 0x2f, 0xc3, 0x8a, 0x1a, 0x12, 0x8b, 0xd1, 0xbf, 0x2a, 0xa1, 0x4d,
-	0xd8, 0x78, 0x4e, 0x57, 0x17, 0xf6, 0x75, 0x09, 0xbd, 0x0e, 0x9b, 0x2a, 0x82, 0x2d, 0xa3, 0x4d,
-	0x4e, 0xb1, 0xed, 0x5e, 0xe1, 0xbe, 0x29, 0xa1, 0x6d, 0xd8, 0x52, 0xb9, 0x03, 0x63, 0xd0, 0x71,
-	0x9f, 0x10, 0xd3, 0xea, 0x74, 0xfa, 0x2a, 0xf9, 0x6d, 0x09, 0xad, 0x15, 0x4f, 0x0e, 0x1b, 0x5d,
-	0xe9, 0xfe, 0xa3, 0x32, 0xaa, 0xc2, 0xaa, 0xa2, 0x16, 0xe6, 0x3f, 0x2e, 0x2b, 0xe3, 0x66, 0x11,
-	0xe9, 0xfd, 0x93, 0xb2, 0xb2, 0xcb, 0x42, 0x56, 0x1b, 0x7d, 0xaa, 0x26, 0x8a, 0xf5, 0x92, 0xae,
-	0xf1, 0x58, 0xff, 0xa3, 0x8c, 0xee, 0x00, 0xba, 0x22, 0xcb, 0x8a, 0x7f, 0x96, 0x95, 0xdd, 0x2b,
-	0x01, 0xb5, 0xe6, 0x5f, 0x2a, 0x63, 0x3b, 0x8e, 0x85, 0x49, 0x7f, 0x80, 0xf1, 0xf1, 0xc0, 0x69,
-	0xdb, 0xce, 0xa1, 0x1c, 0xe5, 0xd7, 0x97, 0xf6, 0x7e, 0xd7, 0xe0, 0x55, 0x87, 0x72, 0xff, 0x92,
-	0xe5, 0x27, 0x60, 0x97, 0x86, 0x74, 0xc4, 0x02, 0xf1, 0xf5, 0x89, 0x6b, 0x15, 0xbd, 0x05, 0x15,
-	0xe5, 0x86, 0x41, 0xcb, 0xe2, 0x4b, 0x39, 0xa2, 0xb1, 0xf7, 0x8c, 0xc6, 0xcc, 0x6e, 0xd7, 0xe4,
-	0x47, 0x3b, 0xed, 0x12, 0xa2, 0x50, 0x1b, 0x8c, 0x3d, 0xca, 0xd9, 0xb4, 0xd3, 0x15, 0xd5, 0x9f,
-	0x3f, 0xcd, 0xaf, 0x5e, 0x16, 0xb5, 0xcd, 0x7f, 0x21, 0xf2, 0x16, 0x2d, 0x98, 0x2f, 0x0e, 0x04,
-	0xb4, 0x2e, 0xf8, 0xeb, 0x07, 0x44, 0xad, 0xa2, 0x94, 0xd9, 0x7f, 0xe7, 0xbd, 0xb7, 0x47, 0x3e,
-	0x3f, 0x4f, 0x9f, 0x36, 0x87, 0x51, 0xd0, 0x8a, 0xc6, 0x2c, 0x1c, 0x46, 0xb1, 0xd7, 0x92, 0x87,
-	0xec, 0x6e, 0x50, 0x4c, 0xbf, 0x2b, 0x2e, 0xed, 0x33, 0x3a, 0x64, 0xad, 0xcb, 0x87, 0xad, 0x51,
-	0xd4, 0xf2, 0x02, 0xff, 0xe9, 0xac, 0xf8, 0xe7, 0xe1, 0xe1, 0xdf, 0x01, 0x00, 0x00, 0xff, 0xff,
-	0xe0, 0xe9, 0x64, 0x8e, 0x87, 0x08, 0x00, 0x00,
+	// 1008 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x96, 0x4b, 0x6f, 0xdb, 0x46,
+	0x10, 0xc7, 0x4d, 0xa9, 0x71, 0xec, 0x91, 0x1f, 0xf4, 0xda, 0x4e, 0x14, 0xc5, 0x6d, 0x64, 0x19,
+	0x2d, 0x0c, 0xb7, 0x96, 0x02, 0xe7, 0xd2, 0x47, 0x2e, 0xb4, 0x44, 0xdb, 0x44, 0x25, 0x5a, 0x58,
+	0x51, 0x76, 0xd2, 0xcb, 0x62, 0x23, 0xae, 0x65, 0x02, 0x26, 0xa9, 0x92, 0x4b, 0xe7, 0xde, 0x4b,
+	0x4f, 0x05, 0xfa, 0x40, 0x3f, 0x42, 0x6f, 0x7d, 0x7f, 0x8a, 0x3e, 0xef, 0xed, 0xf7, 0x68, 0x0b,
+	0xf4, 0x56, 0x70, 0x97, 0x62, 0x57, 0x8e, 0xdc, 0x22, 0x40, 0x6e, 0xd2, 0x7f, 0x7e, 0xb3, 0xf3,
+	0xdf, 0xe1, 0x72, 0x96, 0xb0, 0xe9, 0xfa, 0x5e, 0xe3, 0xfc, 0x29, 0xf1, 0x19, 0x8f, 0xbc, 0x41,
+	0x4c, 0xfc, 0xa1, 0xcf, 0x49, 0xcc, 0xa2, 0x4b, 0x6f, 0xc0, 0xea, 0xa3, 0x28, 0xe4, 0x21, 0x2a,
+	0xba, 0xbe, 0x57, 0x59, 0x49, 0xb9, 0x41, 0xe8, 0xfb, 0x61, 0x10, 0x4b, 0xbd, 0xb2, 0x20, 0x53,
+	0xe5, 0xbf, 0xda, 0x87, 0x1a, 0x2c, 0x74, 0xc4, 0x22, 0xcd, 0x30, 0x38, 0xf3, 0x86, 0x68, 0x17,
+	0xe6, 0xe5, 0xa2, 0xc4, 0x73, 0xcb, 0x5a, 0x55, 0xdb, 0x5e, 0xda, 0xd3, 0xeb, 0xae, 0xef, 0xd5,
+	0x25, 0x65, 0x53, 0x9f, 0xc5, 0x78, 0x4e, 0x22, 0x96, 0x8b, 0xb6, 0x60, 0xd1, 0x8b, 0xc9, 0x40,
+	0xe4, 0x26, 0x11, 0x73, 0xcb, 0x85, 0xaa, 0xb6, 0x3d, 0x87, 0x17, 0xbc, 0xb8, 0x99, 0x6b, 0x29,
+	0x34, 0x0a, 0x2f, 0x2e, 0x88, 0x17, 0x70, 0x16, 0x5d, 0xd2, 0x8b, 0x72, 0xb1, 0xaa, 0x6d, 0x2f,
+	0xe2, 0x85, 0x54, 0xb4, 0x32, 0xad, 0xf6, 0x10, 0x16, 0x65, 0x89, 0x2c, 0x13, 0xbd, 0x0e, 0x37,
+	0xb3, 0xed, 0x95, 0xb5, 0x6a, 0x71, 0xbb, 0xb4, 0xb7, 0xa2, 0xf8, 0x90, 0x0c, 0x1e, 0x13, 0xb5,
+	0x8f, 0x34, 0x58, 0x6d, 0x7b, 0x31, 0xcf, 0x96, 0xc0, 0x2c, 0x1e, 0x85, 0x41, 0xcc, 0xd0, 0x16,
+	0xcc, 0xc6, 0x9c, 0xf2, 0x24, 0xce, 0xf6, 0x52, 0x12, 0x6b, 0xf4, 0x84, 0x84, 0xb3, 0x50, 0x0a,
+	0x45, 0x8c, 0xc6, 0x61, 0x20, 0xdc, 0x8f, 0x21, 0x2c, 0x24, 0x9c, 0x85, 0xd0, 0x1b, 0xff, 0xda,
+	0x49, 0xed, 0x97, 0xf6, 0x90, 0x62, 0x27, 0xbe, 0xea, 0xe7, 0x7b, 0x0d, 0xee, 0x4e, 0x84, 0x92,
+	0x88, 0x72, 0x2f, 0x0c, 0x30, 0x7b, 0x3f, 0x61, 0x31, 0x47, 0x3b, 0x50, 0x72, 0x59, 0xfa, 0xb4,
+	0x48, 0x92, 0x64, 0x8d, 0x2e, 0xed, 0xcd, 0x8b, 0x15, 0xfb, 0x89, 0xe7, 0x62, 0x90, 0xd1, 0xf4,
+	0x37, 0xaa, 0xc3, 0xcd, 0xc1, 0x39, 0x0d, 0x86, 0x2c, 0x16, 0xfe, 0xa6, 0x56, 0x3e, 0x9a, 0xc1,
+	0x63, 0x08, 0xed, 0x80, 0x1e, 0xb1, 0x98, 0x71, 0xc2, 0x43, 0xe2, 0xb2, 0x33, 0x9a, 0x5c, 0x70,
+	0x61, 0x79, 0xee, 0x68, 0x06, 0x2f, 0x89, 0x88, 0x13, 0xb6, 0xa4, 0xbe, 0x5f, 0x82, 0xf9, 0x70,
+	0xc4, 0xa4, 0xb7, 0xda, 0x39, 0x6c, 0x4c, 0xf7, 0xfc, 0xa2, 0x9b, 0x59, 0xfb, 0x5c, 0x83, 0x25,
+	0x59, 0xaa, 0xc3, 0x38, 0x6d, 0x51, 0x4e, 0x9f, 0xab, 0x23, 0xf7, 0x61, 0x69, 0x10, 0xfa, 0xa3,
+	0x30, 0x60, 0x01, 0x97, 0x78, 0xe1, 0x2a, 0xbe, 0x98, 0x03, 0x22, 0xe3, 0x55, 0x35, 0x23, 0xa0,
+	0x3e, 0x13, 0x1d, 0x99, 0x57, 0xb0, 0xf4, 0x64, 0xd7, 0xbe, 0xd0, 0x60, 0x56, 0xfa, 0x7a, 0xde,
+	0x17, 0xe1, 0x21, 0x2c, 0x67, 0xb8, 0xcf, 0x38, 0x75, 0x29, 0xa7, 0x99, 0xa7, 0x55, 0x25, 0x69,
+	0xbc, 0x59, 0xbc, 0xe4, 0xe7, 0xff, 0x53, 0x14, 0xd5, 0xe1, 0xc6, 0x25, 0xbd, 0x48, 0x58, 0x76,
+	0xb4, 0xca, 0x22, 0xa7, 0x39, 0xb6, 0xd6, 0x63, 0x41, 0x1c, 0x46, 0x22, 0x51, 0x62, 0xb5, 0x18,
+	0xf4, 0x43, 0x96, 0x1d, 0xf6, 0xf1, 0x91, 0xba, 0x2f, 0x0c, 0x53, 0x22, 0x6a, 0x6b, 0xd7, 0xd7,
+	0x4e, 0x3d, 0xcb, 0x96, 0x4f, 0x6c, 0xb1, 0xf0, 0x7f, 0x5b, 0xac, 0x7d, 0xa0, 0xc1, 0x8a, 0x52,
+	0xf5, 0x85, 0xbf, 0x61, 0x5b, 0x30, 0x2b, 0x6b, 0x65, 0x5d, 0x28, 0x29, 0x5e, 0x70, 0x16, 0xda,
+	0xf9, 0xfd, 0x06, 0x94, 0x14, 0x7b, 0xe8, 0x0e, 0xac, 0x77, 0x4c, 0x07, 0x5b, 0x4d, 0x62, 0x1b,
+	0x1d, 0x93, 0xf4, 0xed, 0x96, 0x79, 0x60, 0xd9, 0x66, 0x4b, 0x9f, 0x41, 0x6b, 0xa0, 0x67, 0xa1,
+	0x03, 0xc3, 0x26, 0xbd, 0xae, 0x69, 0xb6, 0x74, 0x0d, 0xad, 0xc2, 0x72, 0xa6, 0x36, 0xbb, 0x7d,
+	0xe2, 0x98, 0x9d, 0xae, 0xee, 0xa2, 0x7b, 0x70, 0x57, 0x11, 0xfb, 0x3d, 0xe3, 0xd0, 0x24, 0x5d,
+	0x13, 0x37, 0x4d, 0xdb, 0x31, 0x0e, 0x4d, 0x9d, 0xa1, 0x0d, 0xb8, 0x9d, 0x01, 0x0e, 0x36, 0xec,
+	0x5e, 0xd3, 0xb4, 0x4e, 0x4c, 0x2c, 0xb3, 0x7f, 0xd0, 0xd0, 0x3d, 0xa8, 0x4c, 0x89, 0x9e, 0x1c,
+	0xb7, 0x45, 0xf6, 0x8f, 0xda, 0x35, 0xe9, 0xfb, 0x96, 0xd1, 0xd3, 0x7f, 0xd2, 0x50, 0x35, 0xaf,
+	0xae, 0x46, 0xf1, 0x23, 0xd2, 0x3d, 0x3e, 0x35, 0xb1, 0xfe, 0xf3, 0x75, 0x84, 0x33, 0x26, 0x7e,
+	0xd1, 0x50, 0x0d, 0x5e, 0x9e, 0x42, 0x9c, 0x1a, 0x27, 0x66, 0xdb, 0xb4, 0x0f, 0x9d, 0x23, 0xfd,
+	0x57, 0x0d, 0xad, 0xe7, 0x0d, 0x69, 0x59, 0xbd, 0x77, 0xa5, 0xfb, 0x2f, 0x0b, 0xe8, 0x0e, 0xac,
+	0xa9, 0x72, 0xd3, 0xe8, 0x1a, 0x4d, 0xcb, 0x79, 0xac, 0x7f, 0x55, 0x40, 0xb7, 0x60, 0x45, 0x0d,
+	0x89, 0xc6, 0xe8, 0x5f, 0x17, 0xd0, 0x26, 0x6c, 0x3c, 0xa3, 0xab, 0x0d, 0xfb, 0xa6, 0x80, 0x5e,
+	0x83, 0x4d, 0x15, 0xc1, 0xa6, 0xd1, 0x22, 0xa7, 0xd8, 0x72, 0x26, 0xb8, 0x6f, 0x0b, 0x68, 0x1b,
+	0xb6, 0x54, 0xee, 0xc0, 0xe8, 0xb7, 0x9d, 0xc7, 0xa4, 0x69, 0xb6, 0xdb, 0x3d, 0x95, 0xfc, 0xae,
+	0x80, 0xd6, 0xf2, 0x27, 0x87, 0x8d, 0x8e, 0x74, 0xff, 0x71, 0x11, 0x95, 0x61, 0x55, 0x51, 0x73,
+	0xf3, 0x9f, 0x14, 0x95, 0xed, 0xa6, 0x11, 0xe9, 0xfd, 0xd3, 0xa2, 0xd2, 0xcb, 0x5c, 0x56, 0x0b,
+	0x7d, 0xa6, 0x26, 0x8a, 0xf6, 0x92, 0x8e, 0xf1, 0x48, 0xff, 0xa3, 0x88, 0x6e, 0x03, 0x9a, 0x90,
+	0xe5, 0x8a, 0x7f, 0x16, 0x95, 0xde, 0x2b, 0x01, 0x75, 0xcd, 0xbf, 0x54, 0xc6, 0xb2, 0x6d, 0x13,
+	0x93, 0x5e, 0x1f, 0xe3, 0xe3, 0xbe, 0xdd, 0xb2, 0xec, 0x43, 0xb9, 0x95, 0xdf, 0x5e, 0xda, 0xfb,
+	0x5b, 0x83, 0x57, 0x6c, 0xca, 0xbd, 0x4b, 0x96, 0x8d, 0xe1, 0x0e, 0x0d, 0xe8, 0x90, 0xf9, 0x62,
+	0x04, 0x88, 0xbb, 0x1d, 0xbd, 0x09, 0x25, 0xe5, 0x9a, 0x43, 0xcb, 0xe2, 0x15, 0x39, 0xa2, 0x91,
+	0xfb, 0x94, 0x46, 0xcc, 0x6a, 0x55, 0xe4, 0xe4, 0x98, 0x76, 0x13, 0x52, 0xa8, 0xf4, 0x47, 0x2e,
+	0xe5, 0x6c, 0xda, 0x88, 0x47, 0xd5, 0x67, 0xaf, 0x94, 0xc9, 0x1b, 0xab, 0xb2, 0xf9, 0x1f, 0x44,
+	0x56, 0xe2, 0x6d, 0x98, 0xcf, 0xe7, 0x03, 0x5a, 0x17, 0xfc, 0xd5, 0x29, 0x55, 0xb9, 0x75, 0x55,
+	0x96, 0xb9, 0xfb, 0xef, 0xbc, 0xf7, 0xd6, 0xd0, 0xe3, 0xe7, 0xc9, 0x93, 0xfa, 0x20, 0xf4, 0x1b,
+	0xe1, 0x88, 0x05, 0x83, 0x30, 0x72, 0x1b, 0x72, 0xe8, 0xef, 0xfa, 0x79, 0x23, 0x76, 0xc5, 0x47,
+	0xc4, 0x19, 0x1d, 0xb0, 0xc6, 0xe5, 0x83, 0xc6, 0x30, 0x6c, 0xb8, 0xbe, 0xf7, 0x64, 0x56, 0x7c,
+	0xcc, 0x3c, 0xf8, 0x27, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x65, 0x9d, 0xfb, 0x17, 0x09, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -672,7 +729,7 @@
 	// This configuration is persisted across restart of the device or the device manager
 	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) (*Metric, error)
+	GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*GetMetricResponse, error)
 }
 
 type nativeMetricsManagementServiceClient struct {
@@ -701,8 +758,8 @@
 	return out, nil
 }
 
-func (c *nativeMetricsManagementServiceClient) GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*Metric, error) {
-	out := new(Metric)
+func (c *nativeMetricsManagementServiceClient) GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*GetMetricResponse, error) {
+	out := new(GetMetricResponse)
 	err := c.cc.Invoke(ctx, "/dmi.NativeMetricsManagementService/GetMetric", in, out, opts...)
 	if err != nil {
 		return nil, err
@@ -723,7 +780,7 @@
 	// This configuration is persisted across restart of the device or the device manager
 	UpdateMetricsConfiguration(context.Context, *MetricsConfigurationRequest) (*MetricsConfigurationResponse, error)
 	// Get the instantenous value of a metric
-	GetMetric(context.Context, *GetMetricRequest) (*Metric, error)
+	GetMetric(context.Context, *GetMetricRequest) (*GetMetricResponse, error)
 }
 
 func RegisterNativeMetricsManagementServiceServer(s *grpc.Server, srv NativeMetricsManagementServiceServer) {
diff --git a/go/dmi/sw_image.pb.go b/go/dmi/sw_image.pb.go
index 04b287d..c62b587 100644
--- a/go/dmi/sw_image.pb.go
+++ b/go/dmi/sw_image.pb.go
@@ -26,7 +26,7 @@
 	ImageStatus_UNDEFINED_STATE     ImageStatus_ImageState = 0
 	ImageStatus_COPYING_IMAGE       ImageStatus_ImageState = 1
 	ImageStatus_INSTALLING_IMAGE    ImageStatus_ImageState = 2
-	ImageStatus_COMMITING_IMAGE     ImageStatus_ImageState = 3
+	ImageStatus_COMMITTING_IMAGE    ImageStatus_ImageState = 3
 	ImageStatus_REBOOTING_DEVICE    ImageStatus_ImageState = 4
 	ImageStatus_UPGRADE_COMPLETE    ImageStatus_ImageState = 5
 	ImageStatus_UPGRADE_FAILED      ImageStatus_ImageState = 6
@@ -38,7 +38,7 @@
 	0: "UNDEFINED_STATE",
 	1: "COPYING_IMAGE",
 	2: "INSTALLING_IMAGE",
-	3: "COMMITING_IMAGE",
+	3: "COMMITTING_IMAGE",
 	4: "REBOOTING_DEVICE",
 	5: "UPGRADE_COMPLETE",
 	6: "UPGRADE_FAILED",
@@ -50,7 +50,7 @@
 	"UNDEFINED_STATE":     0,
 	"COPYING_IMAGE":       1,
 	"INSTALLING_IMAGE":    2,
-	"COMMITING_IMAGE":     3,
+	"COMMITTING_IMAGE":    3,
 	"REBOOTING_DEVICE":    4,
 	"UPGRADE_COMPLETE":    5,
 	"UPGRADE_FAILED":      6,
@@ -298,37 +298,37 @@
 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x93, 0xcf, 0x6e, 0xd3, 0x4c,
 	0x14, 0xc5, 0xeb, 0xe6, 0x4f, 0xdb, 0x9b, 0xef, 0x0b, 0xce, 0xb4, 0x55, 0x03, 0x05, 0xa9, 0x0a,
 	0x0b, 0xd8, 0x34, 0x86, 0x54, 0x20, 0x21, 0x56, 0xae, 0x33, 0x0d, 0x23, 0x92, 0x71, 0x19, 0x3b,
-	0x41, 0xb0, 0xb1, 0x5c, 0x7b, 0x9a, 0x8e, 0x94, 0xb1, 0x2b, 0xdb, 0x29, 0xaf, 0xc1, 0x0b, 0xb0,
-	0xe7, 0x6d, 0x78, 0x25, 0x34, 0x33, 0x6e, 0x53, 0x89, 0xdd, 0xf8, 0x9c, 0xdf, 0xbd, 0xf7, 0xdc,
+	0x41, 0xb0, 0xb1, 0x5c, 0x7b, 0x9a, 0x8e, 0x94, 0xb1, 0x2b, 0xdb, 0x29, 0xaf, 0xc1, 0x13, 0xb0,
+	0xe6, 0x71, 0x78, 0x24, 0x34, 0x33, 0x6e, 0x53, 0x89, 0xdd, 0xf8, 0x77, 0xce, 0xbd, 0xf7, 0xdc,
 	0x2b, 0x19, 0x50, 0x2a, 0x85, 0x53, 0xfe, 0x88, 0x84, 0x8c, 0x97, 0x7c, 0x78, 0x5b, 0xe4, 0x55,
-	0x8e, 0x1a, 0xa9, 0x14, 0xcf, 0x7a, 0xca, 0x48, 0x72, 0x29, 0xf3, 0xac, 0x34, 0xfa, 0x60, 0x02,
-	0xff, 0x11, 0x85, 0x2d, 0x78, 0x51, 0x8a, 0x3c, 0x43, 0x2f, 0x00, 0x74, 0x59, 0x94, 0xc5, 0x92,
-	0xf7, 0xad, 0x13, 0xeb, 0xf5, 0x1e, 0xdb, 0xd3, 0x0a, 0x8d, 0x25, 0x47, 0x7d, 0xd8, 0xb9, 0x33,
-	0x64, 0x7f, 0x5b, 0x7b, 0xf7, 0x9f, 0x83, 0xdf, 0x16, 0xd8, 0xba, 0x13, 0xc9, 0xae, 0xf3, 0x42,
+	0x8e, 0x1a, 0xa9, 0x14, 0xcf, 0x7a, 0x4a, 0x48, 0x72, 0x29, 0xf3, 0xac, 0x34, 0x7c, 0x30, 0x81,
+	0xff, 0x88, 0xb2, 0x2d, 0x78, 0x51, 0x8a, 0x3c, 0x43, 0x2f, 0x00, 0x74, 0x59, 0x94, 0xc5, 0x92,
+	0xf7, 0xad, 0x13, 0xeb, 0xf5, 0x1e, 0xdb, 0xd3, 0x84, 0xc6, 0x92, 0xa3, 0x3e, 0xec, 0xdc, 0x19,
+	0x67, 0x7f, 0x5b, 0x6b, 0xf7, 0x9f, 0x83, 0xdf, 0x16, 0xd8, 0xba, 0x13, 0xc9, 0xae, 0xf3, 0x42,
 	0xc6, 0x95, 0xea, 0xf6, 0x0a, 0x5a, 0xba, 0x56, 0x37, 0xea, 0x8c, 0x7a, 0xc3, 0x54, 0x8a, 0xe1,
-	0xe3, 0x79, 0xcc, 0xf8, 0xe8, 0x0d, 0x1c, 0x98, 0xb1, 0x22, 0x2b, 0xab, 0x78, 0xb5, 0x8a, 0xca,
-	0xa4, 0x10, 0xb7, 0x55, 0x3d, 0x04, 0x09, 0xd3, 0x58, 0x5b, 0x81, 0x76, 0xd0, 0x31, 0x98, 0x58,
-	0xd1, 0xba, 0x58, 0xf5, 0x1b, 0x1a, 0xdb, 0xd5, 0xc2, 0xbc, 0x58, 0xa1, 0xe7, 0xb0, 0x57, 0xde,
-	0xc4, 0xa3, 0x77, 0xef, 0xcb, 0xb5, 0xec, 0xb7, 0xcc, 0x12, 0x0f, 0xc2, 0xe0, 0x57, 0x13, 0x3a,
-	0x3a, 0x44, 0x50, 0xc5, 0xd5, 0xba, 0x44, 0x2f, 0xa1, 0x5d, 0xea, 0x97, 0x8e, 0xd9, 0x1d, 0x75,
-	0x74, 0x4c, 0x63, 0xb2, 0xda, 0x42, 0x0e, 0xb4, 0x0b, 0x1e, 0x97, 0xf5, 0xe2, 0xdd, 0xd1, 0xd1,
-	0x66, 0x17, 0x43, 0x0e, 0x99, 0xb6, 0x59, 0x8d, 0xa1, 0xb7, 0xd0, 0x52, 0xa5, 0x5c, 0x87, 0xeb,
-	0x8e, 0x8e, 0xff, 0xe1, 0x1f, 0xde, 0x9c, 0x19, 0x12, 0x9d, 0x40, 0x27, 0xe5, 0x66, 0x73, 0x75,
-	0xe1, 0xa6, 0x0e, 0xfe, 0x58, 0x1a, 0xfc, 0xb1, 0x00, 0x36, 0x75, 0x68, 0x1f, 0x9e, 0xcc, 0xe9,
-	0x18, 0x5f, 0x10, 0x8a, 0xc7, 0x51, 0x10, 0xba, 0x21, 0xb6, 0xb7, 0x50, 0x0f, 0xfe, 0xf7, 0xfc,
-	0xcb, 0x6f, 0x84, 0x4e, 0x22, 0x32, 0x73, 0x27, 0xd8, 0xb6, 0xd0, 0x01, 0xd8, 0x84, 0x06, 0xa1,
-	0x3b, 0x9d, 0x6e, 0xd4, 0x6d, 0x55, 0xed, 0xf9, 0xb3, 0x19, 0x09, 0x37, 0x62, 0x43, 0xa1, 0x0c,
-	0x9f, 0xfb, 0xbe, 0x16, 0xc7, 0x78, 0x41, 0x3c, 0x6c, 0x37, 0x95, 0x3a, 0xbf, 0x9c, 0x30, 0x77,
-	0x8c, 0x23, 0xcf, 0x9f, 0x5d, 0x4e, 0x71, 0x88, 0xed, 0x16, 0x42, 0xd0, 0xbd, 0x57, 0x2f, 0x5c,
-	0x32, 0xc5, 0x63, 0xbb, 0x8d, 0x8e, 0x60, 0xdf, 0xf5, 0x42, 0xb2, 0x70, 0x43, 0xe2, 0xd3, 0x0d,
-	0xbc, 0x83, 0x0e, 0xa1, 0xf7, 0xc8, 0xa8, 0xf9, 0xdd, 0xc1, 0x4f, 0x0b, 0xda, 0xe6, 0x72, 0x7a,
-	0xc8, 0xc3, 0x36, 0x0c, 0xbb, 0x81, 0x4f, 0xed, 0x2d, 0xa5, 0x62, 0xc6, 0x7c, 0x16, 0x11, 0x1a,
+	0xe3, 0x79, 0xcc, 0xe8, 0xe8, 0x0d, 0x1c, 0x98, 0xb1, 0x22, 0x2b, 0xab, 0x78, 0xb5, 0x8a, 0xca,
+	0xa4, 0x10, 0xb7, 0x55, 0x3d, 0x04, 0x09, 0xd3, 0x58, 0x4b, 0x81, 0x56, 0xd0, 0x31, 0x98, 0x58,
+	0xd1, 0xba, 0x58, 0xf5, 0x1b, 0xda, 0xb6, 0xab, 0xc1, 0xbc, 0x58, 0xa1, 0xe7, 0xb0, 0x57, 0xde,
+	0xc4, 0xa3, 0x77, 0xef, 0xcb, 0xb5, 0xec, 0xb7, 0xcc, 0x12, 0x0f, 0x60, 0xf0, 0xab, 0x09, 0x1d,
+	0x1d, 0x22, 0xa8, 0xe2, 0x6a, 0x5d, 0xa2, 0x97, 0xd0, 0x2e, 0xf5, 0x4b, 0xc7, 0xec, 0x8e, 0x3a,
+	0x3a, 0xa6, 0x11, 0x59, 0x2d, 0x21, 0x07, 0xda, 0x05, 0x8f, 0xcb, 0x7a, 0xf1, 0xee, 0xe8, 0x68,
+	0xb3, 0x8b, 0x71, 0x0e, 0x99, 0x96, 0x59, 0x6d, 0x43, 0x6f, 0xa1, 0xa5, 0x4a, 0xb9, 0x0e, 0xd7,
+	0x1d, 0x1d, 0xff, 0xe3, 0x7f, 0x78, 0x73, 0x66, 0x9c, 0xe8, 0x04, 0x3a, 0x29, 0x37, 0x9b, 0xab,
+	0x0b, 0x37, 0x75, 0xf0, 0xc7, 0x68, 0xf0, 0xc7, 0x02, 0xd8, 0xd4, 0xa1, 0x7d, 0x78, 0x32, 0xa7,
+	0x63, 0x7c, 0x41, 0x28, 0x1e, 0x47, 0x41, 0xe8, 0x86, 0xd8, 0xde, 0x42, 0x3d, 0xf8, 0xdf, 0xf3,
+	0x2f, 0xbf, 0x11, 0x3a, 0x89, 0xc8, 0xcc, 0x9d, 0x60, 0xdb, 0x42, 0x07, 0x60, 0x13, 0x1a, 0x84,
+	0xee, 0x74, 0xba, 0xa1, 0xdb, 0x8a, 0x7a, 0xfe, 0x6c, 0x46, 0xc2, 0x70, 0x43, 0x1b, 0x8a, 0x32,
+	0x7c, 0xee, 0xfb, 0x1a, 0x8e, 0xf1, 0x82, 0x78, 0xd8, 0x6e, 0x2a, 0x3a, 0xbf, 0x9c, 0x30, 0x77,
+	0x8c, 0x23, 0xcf, 0x9f, 0x5d, 0x4e, 0x71, 0x88, 0xed, 0x16, 0x42, 0xd0, 0xbd, 0xa7, 0x17, 0x2e,
+	0x99, 0xe2, 0xb1, 0xdd, 0x46, 0x47, 0xb0, 0xef, 0x7a, 0x21, 0x59, 0xb8, 0x21, 0xf1, 0xe9, 0xc6,
+	0xbc, 0x83, 0x0e, 0xa1, 0xf7, 0x48, 0xa8, 0xfd, 0xbb, 0x83, 0x9f, 0x16, 0xb4, 0xcd, 0xe9, 0xf4,
+	0x90, 0x87, 0x75, 0x18, 0x76, 0x03, 0x9f, 0xda, 0x5b, 0x8a, 0x62, 0xc6, 0x7c, 0x16, 0x11, 0x1a,
 	0x31, 0xfc, 0x65, 0x8e, 0x83, 0xd0, 0xb6, 0xd4, 0x68, 0x42, 0x43, 0xcc, 0xa8, 0x3b, 0x8d, 0xb4,
-	0x6d, 0x6f, 0xa3, 0xa7, 0x70, 0x68, 0x02, 0x2b, 0xf4, 0x2b, 0xf3, 0xe9, 0xa4, 0xbe, 0x49, 0x43,
-	0xdd, 0x84, 0xd0, 0x85, 0x3b, 0x25, 0xe3, 0x7a, 0xd1, 0x26, 0xea, 0xc3, 0x81, 0x61, 0xb4, 0x10,
-	0x79, 0x9f, 0xb0, 0xf7, 0x39, 0x98, 0xcf, 0xec, 0xd6, 0xf9, 0xc7, 0xef, 0x1f, 0x96, 0xa2, 0xba,
-	0x59, 0x5f, 0x0d, 0x93, 0x5c, 0x3a, 0xf9, 0x2d, 0xcf, 0x92, 0xbc, 0x48, 0x9d, 0x94, 0xdf, 0x89,
-	0x84, 0x9f, 0xca, 0x38, 0x8b, 0x97, 0x5c, 0xf2, 0xac, 0x3a, 0x15, 0x59, 0xc5, 0x8b, 0xeb, 0x38,
-	0xe1, 0xce, 0xdd, 0x99, 0xb3, 0xcc, 0x9d, 0x54, 0x8a, 0xab, 0xb6, 0xfe, 0xaf, 0xce, 0xfe, 0x06,
-	0x00, 0x00, 0xff, 0xff, 0x34, 0xd0, 0x41, 0x4a, 0x85, 0x03, 0x00, 0x00,
+	0x6c, 0x6f, 0xa3, 0xa7, 0x70, 0x68, 0x02, 0x2b, 0xeb, 0x57, 0xe6, 0xd3, 0x49, 0x7d, 0x94, 0x86,
+	0x3a, 0x0a, 0xa1, 0x0b, 0x77, 0x4a, 0xc6, 0xf5, 0xa2, 0x4d, 0xd4, 0x87, 0x03, 0xe3, 0xd1, 0x20,
+	0xf2, 0x3e, 0x61, 0xef, 0x73, 0x30, 0x9f, 0xd9, 0xad, 0xf3, 0x8f, 0xdf, 0x3f, 0x2c, 0x45, 0x75,
+	0xb3, 0xbe, 0x1a, 0x26, 0xb9, 0x74, 0xf2, 0x5b, 0x9e, 0x25, 0x79, 0x91, 0x3a, 0x29, 0xbf, 0x13,
+	0x09, 0x3f, 0x95, 0x71, 0x16, 0x2f, 0xb9, 0xe4, 0x59, 0x75, 0x2a, 0xb2, 0x8a, 0x17, 0xd7, 0x71,
+	0xc2, 0x9d, 0xbb, 0x33, 0x67, 0x99, 0x3b, 0xa9, 0x14, 0x57, 0x6d, 0xfd, 0x63, 0x9d, 0xfd, 0x0d,
+	0x00, 0x00, 0xff, 0xff, 0x43, 0x5f, 0xa7, 0xa1, 0x86, 0x03, 0x00, 0x00,
 }
diff --git a/go/dmi/sw_management_service.pb.go b/go/dmi/sw_management_service.pb.go
index 382bf2a..f3ef3e6 100644
--- a/go/dmi/sw_management_service.pb.go
+++ b/go/dmi/sw_management_service.pb.go
@@ -69,6 +69,61 @@
 	return nil
 }
 
+type GetSoftwareVersionInformationResponse 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"`
+	Info                 *SoftwareVersionInformation `protobuf:"bytes,3,opt,name=info,proto3" json:"info,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
+	XXX_unrecognized     []byte                      `json:"-"`
+	XXX_sizecache        int32                       `json:"-"`
+}
+
+func (m *GetSoftwareVersionInformationResponse) Reset()         { *m = GetSoftwareVersionInformationResponse{} }
+func (m *GetSoftwareVersionInformationResponse) String() string { return proto.CompactTextString(m) }
+func (*GetSoftwareVersionInformationResponse) ProtoMessage()    {}
+func (*GetSoftwareVersionInformationResponse) Descriptor() ([]byte, []int) {
+	return fileDescriptor_000929e4bec891d7, []int{1}
+}
+
+func (m *GetSoftwareVersionInformationResponse) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetSoftwareVersionInformationResponse.Unmarshal(m, b)
+}
+func (m *GetSoftwareVersionInformationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetSoftwareVersionInformationResponse.Marshal(b, m, deterministic)
+}
+func (m *GetSoftwareVersionInformationResponse) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetSoftwareVersionInformationResponse.Merge(m, src)
+}
+func (m *GetSoftwareVersionInformationResponse) XXX_Size() int {
+	return xxx_messageInfo_GetSoftwareVersionInformationResponse.Size(m)
+}
+func (m *GetSoftwareVersionInformationResponse) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetSoftwareVersionInformationResponse.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetSoftwareVersionInformationResponse proto.InternalMessageInfo
+
+func (m *GetSoftwareVersionInformationResponse) GetStatus() Status {
+	if m != nil {
+		return m.Status
+	}
+	return Status_UNDEFINED_STATUS
+}
+
+func (m *GetSoftwareVersionInformationResponse) GetReason() Reason {
+	if m != nil {
+		return m.Reason
+	}
+	return Reason_UNDEFINED_REASON
+}
+
+func (m *GetSoftwareVersionInformationResponse) GetInfo() *SoftwareVersionInformation {
+	if m != nil {
+		return m.Info
+	}
+	return nil
+}
+
 type DownloadImageRequest struct {
 	DeviceUuid           *Uuid             `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
 	ImageInfo            *ImageInformation `protobuf:"bytes,2,opt,name=image_info,json=imageInfo,proto3" json:"image_info,omitempty"`
@@ -81,7 +136,7 @@
 func (m *DownloadImageRequest) String() string { return proto.CompactTextString(m) }
 func (*DownloadImageRequest) ProtoMessage()    {}
 func (*DownloadImageRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_000929e4bec891d7, []int{1}
+	return fileDescriptor_000929e4bec891d7, []int{2}
 }
 
 func (m *DownloadImageRequest) XXX_Unmarshal(b []byte) error {
@@ -118,38 +173,43 @@
 
 func init() {
 	proto.RegisterType((*SoftwareVersionInformation)(nil), "dmi.SoftwareVersionInformation")
+	proto.RegisterType((*GetSoftwareVersionInformationResponse)(nil), "dmi.GetSoftwareVersionInformationResponse")
 	proto.RegisterType((*DownloadImageRequest)(nil), "dmi.DownloadImageRequest")
 }
 
 func init() { proto.RegisterFile("dmi/sw_management_service.proto", fileDescriptor_000929e4bec891d7) }
 
 var fileDescriptor_000929e4bec891d7 = []byte{
-	// 387 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xd1, 0xaf, 0xd2, 0x30,
-	0x18, 0xc5, 0x33, 0x48, 0x4c, 0x28, 0x22, 0xd8, 0x60, 0x82, 0x7b, 0x81, 0xf0, 0x44, 0x4c, 0xd8,
-	0x0c, 0xf0, 0xa2, 0x18, 0x13, 0x0d, 0x51, 0x79, 0xd0, 0x87, 0x4d, 0x7d, 0xf0, 0x65, 0x29, 0xeb,
-	0xb7, 0xd1, 0xc4, 0xb6, 0xd8, 0x76, 0x9b, 0xfe, 0x23, 0x3e, 0xf9, 0xc7, 0x9a, 0xb5, 0xc3, 0x79,
-	0xef, 0xe5, 0xde, 0xdc, 0xb7, 0xed, 0xf4, 0xfc, 0xbe, 0xf6, 0x9c, 0x7c, 0x68, 0x4a, 0x39, 0x0b,
-	0x75, 0x95, 0x70, 0x22, 0x48, 0x0e, 0x1c, 0x84, 0x49, 0x34, 0xa8, 0x92, 0xa5, 0x10, 0x9c, 0x94,
-	0x34, 0x12, 0x77, 0x29, 0x67, 0xfe, 0xc3, 0xda, 0x75, 0xac, 0x9c, 0xe4, 0xe3, 0x86, 0x61, 0x9c,
-	0xe4, 0x8d, 0x6d, 0xfe, 0xdb, 0x43, 0x7e, 0x2c, 0x33, 0x53, 0x11, 0x05, 0x5f, 0x41, 0x69, 0x26,
-	0xc5, 0x5e, 0x64, 0x52, 0x71, 0x62, 0x98, 0x14, 0xf8, 0x25, 0x1a, 0x92, 0xd4, 0xb0, 0x12, 0x92,
-	0xd2, 0x1d, 0xea, 0x89, 0x37, 0xeb, 0x2e, 0xfa, 0xab, 0xc7, 0x01, 0xe5, 0x2c, 0xd8, 0xd7, 0x93,
-	0x1a, 0x2c, 0x7a, 0xe4, 0x9c, 0xcd, 0xaf, 0xc6, 0xaf, 0xd0, 0x48, 0x1b, 0x22, 0xe8, 0xe1, 0x57,
-	0x0b, 0x77, 0x6e, 0x83, 0x87, 0x8d, 0xf5, 0x4c, 0xcf, 0x7f, 0xa2, 0xf1, 0x4e, 0x56, 0xe2, 0xbb,
-	0x24, 0xd4, 0x1a, 0x23, 0xf8, 0x51, 0x80, 0x36, 0xf8, 0x19, 0xea, 0x53, 0xa8, 0x73, 0x26, 0x45,
-	0xc1, 0xe8, 0xc4, 0x9b, 0x79, 0x8b, 0xfe, 0xaa, 0x67, 0x07, 0x7e, 0x29, 0x18, 0x8d, 0x90, 0x3b,
-	0xad, 0xbf, 0xf1, 0x06, 0x21, 0x9b, 0x35, 0x61, 0x22, 0x93, 0x93, 0x8e, 0xb5, 0x3e, 0x69, 0xef,
-	0xfe, 0x2f, 0x68, 0xd4, 0x63, 0x67, 0x65, 0xf5, 0xa7, 0x83, 0xa6, 0x9f, 0x48, 0x1d, 0xe5, 0x5c,
-	0xcc, 0xc7, 0x7f, 0x25, 0xc7, 0xae, 0x63, 0xfc, 0x0e, 0xe1, 0xf7, 0x60, 0xae, 0x15, 0x87, 0x87,
-	0x76, 0xf6, 0x07, 0xa2, 0x68, 0xad, 0xee, 0x77, 0xfe, 0xd4, 0x0a, 0x77, 0xf4, 0xfb, 0x1a, 0x0d,
-	0xae, 0xa4, 0xc4, 0x4f, 0x2d, 0x71, 0x29, 0xb9, 0x3f, 0x6a, 0x5f, 0x1e, 0x1b, 0x62, 0x0a, 0xfd,
-	0xdc, 0xc3, 0x1b, 0x34, 0x78, 0x53, 0xb7, 0x4e, 0x0c, 0x38, 0xfe, 0xc6, 0x13, 0x2e, 0x51, 0x5b,
-	0x34, 0x8e, 0xa0, 0x04, 0x65, 0x3e, 0xcb, 0xd8, 0xd5, 0x7e, 0x7f, 0xf8, 0xed, 0xf6, 0xdb, 0x8b,
-	0x9c, 0x99, 0x63, 0x71, 0x08, 0x52, 0xc9, 0x43, 0x79, 0x02, 0x91, 0x4a, 0x45, 0x43, 0x57, 0xfb,
-	0xb2, 0xdd, 0xc7, 0x25, 0x13, 0x06, 0x54, 0x46, 0x52, 0x08, 0xcb, 0x75, 0x98, 0xcb, 0x90, 0x72,
-	0x76, 0x78, 0x60, 0xb7, 0x6e, 0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0xd5, 0x4a, 0xed, 0x39, 0xbf,
-	0x02, 0x00, 0x00,
+	// 458 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x5d, 0x6b, 0x13, 0x41,
+	0x14, 0x65, 0x13, 0x29, 0x74, 0xd6, 0x36, 0xed, 0x50, 0x21, 0xee, 0x4b, 0x4a, 0x44, 0x08, 0x85,
+	0x66, 0x65, 0xd3, 0x17, 0xad, 0x08, 0x4a, 0x41, 0xf3, 0xa0, 0xe0, 0x46, 0x7d, 0xf0, 0x65, 0x99,
+	0xec, 0xdc, 0xa4, 0x03, 0xce, 0xdc, 0x38, 0x33, 0xbb, 0xd1, 0x3f, 0xe2, 0x4f, 0xd0, 0xbf, 0x29,
+	0xf3, 0x11, 0x53, 0x69, 0x03, 0x7d, 0xdb, 0x3d, 0xf7, 0x9c, 0x33, 0x67, 0xee, 0xbd, 0x43, 0x06,
+	0x5c, 0x8a, 0xdc, 0xac, 0x2b, 0xc9, 0x14, 0x5b, 0x82, 0x04, 0x65, 0x2b, 0x03, 0xba, 0x15, 0x35,
+	0x8c, 0x57, 0x1a, 0x2d, 0xd2, 0x2e, 0x97, 0x22, 0x3b, 0x76, 0xac, 0x1a, 0xa5, 0x44, 0x65, 0x02,
+	0x9e, 0x3d, 0x74, 0xd0, 0xf5, 0x3a, 0xfe, 0xd1, 0x68, 0x23, 0x24, 0x5b, 0x46, 0xe5, 0xf0, 0x57,
+	0x42, 0xb2, 0x19, 0x2e, 0xec, 0x9a, 0x69, 0xf8, 0x02, 0xda, 0x08, 0x54, 0x53, 0xb5, 0x40, 0x2d,
+	0x99, 0x15, 0xa8, 0xe8, 0x0b, 0xd2, 0x63, 0xb5, 0x15, 0x2d, 0x54, 0x6d, 0x28, 0x9a, 0x7e, 0x72,
+	0xda, 0x1d, 0xa5, 0xc5, 0xf1, 0x98, 0x4b, 0x31, 0x9e, 0x3a, 0xa7, 0x28, 0x2b, 0x0f, 0x03, 0x33,
+	0xfe, 0x1a, 0xfa, 0x92, 0x1c, 0x19, 0xcb, 0x14, 0x9f, 0xff, 0xdc, 0x8a, 0x3b, 0xbb, 0xc4, 0xbd,
+	0x48, 0xdd, 0xa8, 0x87, 0xbf, 0x13, 0xf2, 0xf4, 0x2d, 0xd8, 0xdd, 0xd9, 0x4a, 0x30, 0x2b, 0x54,
+	0x06, 0xe8, 0x13, 0xb2, 0x67, 0x2c, 0xb3, 0x8d, 0x8b, 0x96, 0x8c, 0x0e, 0x8b, 0xd4, 0xbb, 0xcf,
+	0x3c, 0x54, 0xc6, 0x92, 0x23, 0x69, 0x60, 0x06, 0x55, 0xbf, 0x73, 0x83, 0x54, 0x7a, 0xa8, 0x8c,
+	0x25, 0x3a, 0x21, 0x0f, 0x84, 0x5a, 0x60, 0xbf, 0x7b, 0x9a, 0x8c, 0xd2, 0x62, 0x10, 0x7c, 0x76,
+	0x07, 0xf0, 0xe4, 0xe1, 0x0f, 0x72, 0x72, 0x85, 0x6b, 0xf5, 0x0d, 0x19, 0xf7, 0x37, 0x2a, 0xe1,
+	0x7b, 0x03, 0xc6, 0xd2, 0x33, 0x92, 0x72, 0x70, 0x33, 0xaa, 0x9a, 0x46, 0x70, 0x9f, 0x2d, 0x2d,
+	0xf6, 0xbd, 0xe7, 0xe7, 0x46, 0xf0, 0x92, 0x84, 0xaa, 0xfb, 0xa6, 0x17, 0x84, 0xf8, 0xa1, 0x54,
+	0xfe, 0xf8, 0x8e, 0xa7, 0x3e, 0xda, 0x36, 0xe9, 0xe6, 0xa1, 0xfb, 0x62, 0x83, 0x14, 0x7f, 0x3a,
+	0x64, 0xf0, 0x81, 0xb9, 0x9e, 0x6f, 0x42, 0xbe, 0xff, 0xb7, 0x20, 0xb3, 0xb0, 0x1f, 0xf4, 0x23,
+	0xa1, 0xb7, 0xbb, 0x48, 0x7b, 0xde, 0xfb, 0x1d, 0xd3, 0xdc, 0xa1, 0xd3, 0xab, 0xec, 0xcc, 0x03,
+	0xf7, 0xeb, 0xf7, 0x2b, 0x72, 0xf0, 0xdf, 0x85, 0xe9, 0x63, 0x2f, 0xbe, 0xab, 0x09, 0xd9, 0xd1,
+	0xf6, 0x12, 0x61, 0x20, 0xcf, 0x12, 0x7a, 0x41, 0x0e, 0x5e, 0xbb, 0x4d, 0x61, 0x16, 0x82, 0xfe,
+	0x56, 0x9a, 0xbb, 0x54, 0x97, 0xe4, 0xa4, 0x84, 0x16, 0xb4, 0xfd, 0x84, 0xb3, 0xb0, 0x2a, 0xf7,
+	0x17, 0xbf, 0xb9, 0xfc, 0xfa, 0x7c, 0x29, 0xec, 0x75, 0x33, 0x1f, 0xd7, 0x28, 0x73, 0x5c, 0x81,
+	0xaa, 0x51, 0xf3, 0x3c, 0x4c, 0xe0, 0x7c, 0xfb, 0xac, 0xce, 0x85, 0xb2, 0xa0, 0x17, 0xac, 0x86,
+	0xbc, 0x9d, 0xe4, 0x4b, 0xcc, 0xb9, 0x14, 0xf3, 0x3d, 0xff, 0x52, 0x26, 0x7f, 0x03, 0x00, 0x00,
+	0xff, 0xff, 0x6d, 0x7d, 0x3b, 0xc8, 0x86, 0x03, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -165,7 +225,7 @@
 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
 type NativeSoftwareManagementServiceClient interface {
 	// Get the software version information of the Active and Standby images
-	GetSoftwareVersion(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*SoftwareVersionInformation, error)
+	GetSoftwareVersion(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*GetSoftwareVersionInformationResponse, error)
 	// Downloads and installs the image in the standby partition, returns the status/progress of the Install
 	DownloadImage(ctx context.Context, in *DownloadImageRequest, opts ...grpc.CallOption) (NativeSoftwareManagementService_DownloadImageClient, error)
 	// Activates and runs the OLT with the image in the standby partition. If things are fine this image will
@@ -173,7 +233,7 @@
 	// Any possibly required (sub-)steps like "commit" are left to the "Device Manager"
 	ActivateImage(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (NativeSoftwareManagementService_ActivateImageClient, error)
 	// Marks the image in the Standby as Active and reboots the device, so that it boots from that image which was in the standby.
-	// This API is to be used if operator wants to go back to the pervious software
+	// This API is to be used if operator wants to go back to the previous software
 	RevertToStandbyImage(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (NativeSoftwareManagementService_RevertToStandbyImageClient, error)
 }
 
@@ -185,8 +245,8 @@
 	return &nativeSoftwareManagementServiceClient{cc}
 }
 
-func (c *nativeSoftwareManagementServiceClient) GetSoftwareVersion(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*SoftwareVersionInformation, error) {
-	out := new(SoftwareVersionInformation)
+func (c *nativeSoftwareManagementServiceClient) GetSoftwareVersion(ctx context.Context, in *HardwareID, opts ...grpc.CallOption) (*GetSoftwareVersionInformationResponse, error) {
+	out := new(GetSoftwareVersionInformationResponse)
 	err := c.cc.Invoke(ctx, "/dmi.NativeSoftwareManagementService/GetSoftwareVersion", in, out, opts...)
 	if err != nil {
 		return nil, err
@@ -293,7 +353,7 @@
 // NativeSoftwareManagementServiceServer is the server API for NativeSoftwareManagementService service.
 type NativeSoftwareManagementServiceServer interface {
 	// Get the software version information of the Active and Standby images
-	GetSoftwareVersion(context.Context, *HardwareID) (*SoftwareVersionInformation, error)
+	GetSoftwareVersion(context.Context, *HardwareID) (*GetSoftwareVersionInformationResponse, error)
 	// Downloads and installs the image in the standby partition, returns the status/progress of the Install
 	DownloadImage(*DownloadImageRequest, NativeSoftwareManagementService_DownloadImageServer) error
 	// Activates and runs the OLT with the image in the standby partition. If things are fine this image will
@@ -301,7 +361,7 @@
 	// Any possibly required (sub-)steps like "commit" are left to the "Device Manager"
 	ActivateImage(*HardwareID, NativeSoftwareManagementService_ActivateImageServer) error
 	// Marks the image in the Standby as Active and reboots the device, so that it boots from that image which was in the standby.
-	// This API is to be used if operator wants to go back to the pervious software
+	// This API is to be used if operator wants to go back to the previous software
 	RevertToStandbyImage(*HardwareID, NativeSoftwareManagementService_RevertToStandbyImageServer) error
 }
 
diff --git a/protos/dmi/hw_events_mgmt_service.proto b/protos/dmi/hw_events_mgmt_service.proto
index 84defe2..2a53e3e 100644
--- a/protos/dmi/hw_events_mgmt_service.proto
+++ b/protos/dmi/hw_events_mgmt_service.proto
@@ -148,7 +148,7 @@
     rpc ListEvents(HardwareID) returns(ListEventsResponse);
 
     // Updates the configuration of the list of events in the request
-    // The default behaviour of the device is to report all the supported events
+    // 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);
 }
diff --git a/protos/dmi/hw_management_service.proto b/protos/dmi/hw_management_service.proto
index abdcb4a..511a5d2 100644
--- a/protos/dmi/hw_management_service.proto
+++ b/protos/dmi/hw_management_service.proto
@@ -24,6 +24,12 @@
     string component_name = 3;
 }
 
+message HWComponentInfoGetResponse {
+    Status status = 1;
+    Reason reason = 2;
+    Component component = 3;
+}
+
 message HWComponentInfoSetRequest {
     Uuid device_uuid = 1;
     Uuid component_uuid = 2;
@@ -70,7 +76,7 @@
     rpc GetPhysicalInventory(PhysicalInventoryRequest) returns(stream PhysicalInventoryResponse);
 
     // Get the details of a particular HW component
-    rpc GetHWComponentInfo(HWComponentInfoGetRequest) returns(stream Component);
+    rpc GetHWComponentInfo(HWComponentInfoGetRequest) returns(stream HWComponentInfoGetResponse);
 
     // Sets the permissible attributes of a HW component
     rpc SetHWComponentInfo(HWComponentInfoSetRequest) returns(HWComponentInfoSetResponse);
diff --git a/protos/dmi/hw_metrics_mgmt_service.proto b/protos/dmi/hw_metrics_mgmt_service.proto
index a30199f..adec0d3 100644
--- a/protos/dmi/hw_metrics_mgmt_service.proto
+++ b/protos/dmi/hw_metrics_mgmt_service.proto
@@ -106,6 +106,12 @@
     MetricNames metric_id = 2;
 }
 
+message GetMetricResponse {
+    Status status = 1;
+    Reason reason = 2;
+    Metric metric = 3;
+}
+
 service NativeMetricsManagementService {
 
     // List the supported metrics for the passed device.
@@ -121,5 +127,5 @@
     rpc UpdateMetricsConfiguration(MetricsConfigurationRequest) returns(MetricsConfigurationResponse);
 
     // Get the instantenous value of a metric
-    rpc GetMetric(GetMetricRequest) returns(Metric);
+    rpc GetMetric(GetMetricRequest) returns(GetMetricResponse);
 }
diff --git a/protos/dmi/sw_image.proto b/protos/dmi/sw_image.proto
index cb73f32..3bb3b44 100644
--- a/protos/dmi/sw_image.proto
+++ b/protos/dmi/sw_image.proto
@@ -30,7 +30,7 @@
         UNDEFINED_STATE = 0;
         COPYING_IMAGE = 1;
         INSTALLING_IMAGE = 2;
-        COMMITING_IMAGE = 3;
+        COMMITTING_IMAGE = 3;
         REBOOTING_DEVICE = 4;
         UPGRADE_COMPLETE = 5;
         UPGRADE_FAILED = 6;
diff --git a/protos/dmi/sw_management_service.proto b/protos/dmi/sw_management_service.proto
index 3a935d0..69de70d 100644
--- a/protos/dmi/sw_management_service.proto
+++ b/protos/dmi/sw_management_service.proto
@@ -3,6 +3,7 @@
 option go_package = "github.com/opencord/device-management-interface/v3/go/dmi";
 package dmi;
 
+import "dmi/commons.proto";
 import "dmi/hw.proto";
 import "dmi/sw_image.proto";
 
@@ -17,6 +18,12 @@
     repeated ImageVersion standby_versions = 2;
 }
 
+message GetSoftwareVersionInformationResponse {
+    Status status = 1;
+    Reason reason = 2;
+    SoftwareVersionInformation info = 3;
+}
+
 message DownloadImageRequest {
     Uuid device_uuid = 1;
     ImageInformation image_info = 2;
@@ -24,7 +31,7 @@
 
 service NativeSoftwareManagementService {
     // Get the software version information of the Active and Standby images
-    rpc GetSoftwareVersion(HardwareID) returns(SoftwareVersionInformation);
+    rpc GetSoftwareVersion(HardwareID) returns(GetSoftwareVersionInformationResponse);
 
     // Downloads and installs the image in the standby partition, returns the status/progress of the Install
     rpc DownloadImage(DownloadImageRequest) returns(stream ImageStatus);
@@ -35,7 +42,7 @@
     rpc ActivateImage(HardwareID) returns(stream ImageStatus);
 
     // Marks the image in the Standby as Active and reboots the device, so that it boots from that image which was in the standby.
-    // This API is to be used if operator wants to go back to the pervious software
+    // This API is to be used if operator wants to go back to the previous software
     rpc RevertToStandbyImage(HardwareID) returns(stream ImageStatus);
 
     // If needed we can add this later
diff --git a/python/dmi/hw_events_mgmt_service_pb2_grpc.py b/python/dmi/hw_events_mgmt_service_pb2_grpc.py
index 2452017..213d4f5 100644
--- a/python/dmi/hw_events_mgmt_service_pb2_grpc.py
+++ b/python/dmi/hw_events_mgmt_service_pb2_grpc.py
@@ -39,7 +39,7 @@
 
     def UpdateEventsConfiguration(self, request, context):
         """Updates the configuration of the list of events in the request
-        The default behaviour of the device is to report all the supported events
+        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
         """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
diff --git a/python/dmi/hw_management_service_pb2.py b/python/dmi/hw_management_service_pb2.py
index b84cf1a..1443583 100644
--- a/python/dmi/hw_management_service_pb2.py
+++ b/python/dmi/hw_management_service_pb2.py
@@ -21,7 +21,7 @@
   syntax='proto3',
   serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x1f\x64mi/hw_management_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\":\n\x18PhysicalInventoryRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"w\n\x19PhysicalInventoryResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\x12 \n\tinventory\x18\x03 \x01(\x0b\x32\r.dmi.Hardware\"v\n\x19HWComponentInfoGetRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\"\xa1\x01\n\x19HWComponentInfoSetRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\x12)\n\x07\x63hanges\x18\x04 \x01(\x0b\x32\x18.dmi.ModifiableComponent\"V\n\x1aHWComponentInfoSetResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\"w\n\x1bStartManagingDeviceResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x03 \x01(\x0b\x32\t.dmi.Uuid\")\n\x19StopManagingDeviceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"V\n\x1aStopManagingDeviceResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason2\xbf\x03\n\x19NativeHWManagementService\x12S\n\x13StartManagingDevice\x12\x18.dmi.ModifiableComponent\x1a .dmi.StartManagingDeviceResponse0\x01\x12U\n\x12StopManagingDevice\x12\x1e.dmi.StopManagingDeviceRequest\x1a\x1f.dmi.StopManagingDeviceResponse\x12W\n\x14GetPhysicalInventory\x12\x1d.dmi.PhysicalInventoryRequest\x1a\x1e.dmi.PhysicalInventoryResponse0\x01\x12\x46\n\x12GetHWComponentInfo\x12\x1e.dmi.HWComponentInfoGetRequest\x1a\x0e.dmi.Component0\x01\x12U\n\x12SetHWComponentInfo\x12\x1e.dmi.HWComponentInfoSetRequest\x1a\x1f.dmi.HWComponentInfoSetResponseB;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
+  serialized_pb=b'\n\x1f\x64mi/hw_management_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\":\n\x18PhysicalInventoryRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\"w\n\x19PhysicalInventoryResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\x12 \n\tinventory\x18\x03 \x01(\x0b\x32\r.dmi.Hardware\"v\n\x19HWComponentInfoGetRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\"y\n\x1aHWComponentInfoGetResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\x12!\n\tcomponent\x18\x03 \x01(\x0b\x32\x0e.dmi.Component\"\xa1\x01\n\x19HWComponentInfoSetRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12!\n\x0e\x63omponent_uuid\x18\x02 \x01(\x0b\x32\t.dmi.Uuid\x12\x16\n\x0e\x63omponent_name\x18\x03 \x01(\t\x12)\n\x07\x63hanges\x18\x04 \x01(\x0b\x32\x18.dmi.ModifiableComponent\"V\n\x1aHWComponentInfoSetResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\"w\n\x1bStartManagingDeviceResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x03 \x01(\x0b\x32\t.dmi.Uuid\")\n\x19StopManagingDeviceRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\"V\n\x1aStopManagingDeviceResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason2\xd0\x03\n\x19NativeHWManagementService\x12S\n\x13StartManagingDevice\x12\x18.dmi.ModifiableComponent\x1a .dmi.StartManagingDeviceResponse0\x01\x12U\n\x12StopManagingDevice\x12\x1e.dmi.StopManagingDeviceRequest\x1a\x1f.dmi.StopManagingDeviceResponse\x12W\n\x14GetPhysicalInventory\x12\x1d.dmi.PhysicalInventoryRequest\x1a\x1e.dmi.PhysicalInventoryResponse0\x01\x12W\n\x12GetHWComponentInfo\x12\x1e.dmi.HWComponentInfoGetRequest\x1a\x1f.dmi.HWComponentInfoGetResponse0\x01\x12U\n\x12SetHWComponentInfo\x12\x1e.dmi.HWComponentInfoSetRequest\x1a\x1f.dmi.HWComponentInfoSetResponseB;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
   ,
   dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,dmi_dot_hw__pb2.DESCRIPTOR,])
 
@@ -152,6 +152,52 @@
 )
 
 
+_HWCOMPONENTINFOGETRESPONSE = _descriptor.Descriptor(
+  name='HWComponentInfoGetResponse',
+  full_name='dmi.HWComponentInfoGetResponse',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='status', full_name='dmi.HWComponentInfoGetResponse.status', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='reason', full_name='dmi.HWComponentInfoGetResponse.reason', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='component', full_name='dmi.HWComponentInfoGetResponse.component', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=374,
+  serialized_end=495,
+)
+
+
 _HWCOMPONENTINFOSETREQUEST = _descriptor.Descriptor(
   name='HWComponentInfoSetRequest',
   full_name='dmi.HWComponentInfoSetRequest',
@@ -200,8 +246,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=375,
-  serialized_end=536,
+  serialized_start=498,
+  serialized_end=659,
 )
 
 
@@ -239,8 +285,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=538,
-  serialized_end=624,
+  serialized_start=661,
+  serialized_end=747,
 )
 
 
@@ -285,8 +331,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=626,
-  serialized_end=745,
+  serialized_start=749,
+  serialized_end=868,
 )
 
 
@@ -317,8 +363,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=747,
-  serialized_end=788,
+  serialized_start=870,
+  serialized_end=911,
 )
 
 
@@ -356,8 +402,8 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=790,
-  serialized_end=876,
+  serialized_start=913,
+  serialized_end=999,
 )
 
 _PHYSICALINVENTORYREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
@@ -366,6 +412,9 @@
 _PHYSICALINVENTORYRESPONSE.fields_by_name['inventory'].message_type = dmi_dot_hw__pb2._HARDWARE
 _HWCOMPONENTINFOGETREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
 _HWCOMPONENTINFOGETREQUEST.fields_by_name['component_uuid'].message_type = dmi_dot_hw__pb2._UUID
+_HWCOMPONENTINFOGETRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
+_HWCOMPONENTINFOGETRESPONSE.fields_by_name['reason'].enum_type = dmi_dot_commons__pb2._REASON
+_HWCOMPONENTINFOGETRESPONSE.fields_by_name['component'].message_type = dmi_dot_hw__pb2._COMPONENT
 _HWCOMPONENTINFOSETREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
 _HWCOMPONENTINFOSETREQUEST.fields_by_name['component_uuid'].message_type = dmi_dot_hw__pb2._UUID
 _HWCOMPONENTINFOSETREQUEST.fields_by_name['changes'].message_type = dmi_dot_hw__pb2._MODIFIABLECOMPONENT
@@ -379,6 +428,7 @@
 DESCRIPTOR.message_types_by_name['PhysicalInventoryRequest'] = _PHYSICALINVENTORYREQUEST
 DESCRIPTOR.message_types_by_name['PhysicalInventoryResponse'] = _PHYSICALINVENTORYRESPONSE
 DESCRIPTOR.message_types_by_name['HWComponentInfoGetRequest'] = _HWCOMPONENTINFOGETREQUEST
+DESCRIPTOR.message_types_by_name['HWComponentInfoGetResponse'] = _HWCOMPONENTINFOGETRESPONSE
 DESCRIPTOR.message_types_by_name['HWComponentInfoSetRequest'] = _HWCOMPONENTINFOSETREQUEST
 DESCRIPTOR.message_types_by_name['HWComponentInfoSetResponse'] = _HWCOMPONENTINFOSETRESPONSE
 DESCRIPTOR.message_types_by_name['StartManagingDeviceResponse'] = _STARTMANAGINGDEVICERESPONSE
@@ -407,6 +457,13 @@
   })
 _sym_db.RegisterMessage(HWComponentInfoGetRequest)
 
+HWComponentInfoGetResponse = _reflection.GeneratedProtocolMessageType('HWComponentInfoGetResponse', (_message.Message,), {
+  'DESCRIPTOR' : _HWCOMPONENTINFOGETRESPONSE,
+  '__module__' : 'dmi.hw_management_service_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.HWComponentInfoGetResponse)
+  })
+_sym_db.RegisterMessage(HWComponentInfoGetResponse)
+
 HWComponentInfoSetRequest = _reflection.GeneratedProtocolMessageType('HWComponentInfoSetRequest', (_message.Message,), {
   'DESCRIPTOR' : _HWCOMPONENTINFOSETREQUEST,
   '__module__' : 'dmi.hw_management_service_pb2'
@@ -452,8 +509,8 @@
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=879,
-  serialized_end=1326,
+  serialized_start=1002,
+  serialized_end=1466,
   methods=[
   _descriptor.MethodDescriptor(
     name='StartManagingDevice',
@@ -491,7 +548,7 @@
     index=3,
     containing_service=None,
     input_type=_HWCOMPONENTINFOGETREQUEST,
-    output_type=dmi_dot_hw__pb2._COMPONENT,
+    output_type=_HWCOMPONENTINFOGETRESPONSE,
     serialized_options=None,
     create_key=_descriptor._internal_create_key,
   ),
diff --git a/python/dmi/hw_management_service_pb2_grpc.py b/python/dmi/hw_management_service_pb2_grpc.py
index bead6fb..4596281 100644
--- a/python/dmi/hw_management_service_pb2_grpc.py
+++ b/python/dmi/hw_management_service_pb2_grpc.py
@@ -33,7 +33,7 @@
         self.GetHWComponentInfo = channel.unary_stream(
                 '/dmi.NativeHWManagementService/GetHWComponentInfo',
                 request_serializer=dmi_dot_hw__management__service__pb2.HWComponentInfoGetRequest.SerializeToString,
-                response_deserializer=dmi_dot_hw__pb2.Component.FromString,
+                response_deserializer=dmi_dot_hw__management__service__pb2.HWComponentInfoGetResponse.FromString,
                 )
         self.SetHWComponentInfo = channel.unary_unary(
                 '/dmi.NativeHWManagementService/SetHWComponentInfo',
@@ -109,7 +109,7 @@
             'GetHWComponentInfo': grpc.unary_stream_rpc_method_handler(
                     servicer.GetHWComponentInfo,
                     request_deserializer=dmi_dot_hw__management__service__pb2.HWComponentInfoGetRequest.FromString,
-                    response_serializer=dmi_dot_hw__pb2.Component.SerializeToString,
+                    response_serializer=dmi_dot_hw__management__service__pb2.HWComponentInfoGetResponse.SerializeToString,
             ),
             'SetHWComponentInfo': grpc.unary_unary_rpc_method_handler(
                     servicer.SetHWComponentInfo,
@@ -190,7 +190,7 @@
             metadata=None):
         return grpc.experimental.unary_stream(request, target, '/dmi.NativeHWManagementService/GetHWComponentInfo',
             dmi_dot_hw__management__service__pb2.HWComponentInfoGetRequest.SerializeToString,
-            dmi_dot_hw__pb2.Component.FromString,
+            dmi_dot_hw__management__service__pb2.HWComponentInfoGetResponse.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 060606b..843bbf0 100644
--- a/python/dmi/hw_metrics_mgmt_service_pb2.py
+++ b/python/dmi/hw_metrics_mgmt_service_pb2.py
@@ -22,7 +22,7 @@
   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\"t\n\x13ListMetricsResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\x12#\n\x07metrics\x18\x03 \x01(\x0b\x32\x12.dmi.MetricsConfig\"\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\"X\n\x1cMetricsConfigurationResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\"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*\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\xee\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\x0b.dmi.MetricB;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\"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\"t\n\x13ListMetricsResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\x12#\n\x07metrics\x18\x03 \x01(\x0b\x32\x12.dmi.MetricsConfig\"\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\"X\n\x1cMetricsConfigurationResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\"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\"j\n\x11GetMetricResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\x12\x1b\n\x06metric\x18\x03 \x01(\x0b\x32\x0b.dmi.Metric*\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'
   ,
   dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,dmi_dot_hw__pb2.DESCRIPTOR,])
 
@@ -156,8 +156,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=921,
-  serialized_end=1650,
+  serialized_start=1029,
+  serialized_end=1758,
 )
 _sym_db.RegisterEnumDescriptor(_METRICNAMES)
 
@@ -533,6 +533,52 @@
   serialized_end=918,
 )
 
+
+_GETMETRICRESPONSE = _descriptor.Descriptor(
+  name='GetMetricResponse',
+  full_name='dmi.GetMetricResponse',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='status', full_name='dmi.GetMetricResponse.status', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='reason', full_name='dmi.GetMetricResponse.reason', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='metric', full_name='dmi.GetMetricResponse.metric', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=920,
+  serialized_end=1026,
+)
+
 _METRICCONFIG.fields_by_name['metric_id'].enum_type = _METRICNAMES
 _METRICSCONFIG.fields_by_name['metrics'].message_type = _METRICCONFIG
 _LISTMETRICSRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
@@ -555,6 +601,9 @@
 _METRIC.fields_by_name['value'].message_type = dmi_dot_hw__pb2._COMPONENTSENSORDATA
 _GETMETRICREQUEST.fields_by_name['meta_data'].message_type = _METRICMETADATA
 _GETMETRICREQUEST.fields_by_name['metric_id'].enum_type = _METRICNAMES
+_GETMETRICRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
+_GETMETRICRESPONSE.fields_by_name['reason'].enum_type = dmi_dot_commons__pb2._REASON
+_GETMETRICRESPONSE.fields_by_name['metric'].message_type = _METRIC
 DESCRIPTOR.message_types_by_name['MetricConfig'] = _METRICCONFIG
 DESCRIPTOR.message_types_by_name['MetricsConfig'] = _METRICSCONFIG
 DESCRIPTOR.message_types_by_name['ListMetricsResponse'] = _LISTMETRICSRESPONSE
@@ -563,6 +612,7 @@
 DESCRIPTOR.message_types_by_name['MetricMetaData'] = _METRICMETADATA
 DESCRIPTOR.message_types_by_name['Metric'] = _METRIC
 DESCRIPTOR.message_types_by_name['GetMetricRequest'] = _GETMETRICREQUEST
+DESCRIPTOR.message_types_by_name['GetMetricResponse'] = _GETMETRICRESPONSE
 DESCRIPTOR.enum_types_by_name['MetricNames'] = _METRICNAMES
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
@@ -622,6 +672,13 @@
   })
 _sym_db.RegisterMessage(GetMetricRequest)
 
+GetMetricResponse = _reflection.GeneratedProtocolMessageType('GetMetricResponse', (_message.Message,), {
+  'DESCRIPTOR' : _GETMETRICRESPONSE,
+  '__module__' : 'dmi.hw_metrics_mgmt_service_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.GetMetricResponse)
+  })
+_sym_db.RegisterMessage(GetMetricResponse)
+
 
 DESCRIPTOR._options = None
 
@@ -632,8 +689,8 @@
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=1653,
-  serialized_end=1891,
+  serialized_start=1761,
+  serialized_end=2010,
   methods=[
   _descriptor.MethodDescriptor(
     name='ListMetrics',
@@ -661,7 +718,7 @@
     index=2,
     containing_service=None,
     input_type=_GETMETRICREQUEST,
-    output_type=_METRIC,
+    output_type=_GETMETRICRESPONSE,
     serialized_options=None,
     create_key=_descriptor._internal_create_key,
   ),
diff --git a/python/dmi/hw_metrics_mgmt_service_pb2_grpc.py b/python/dmi/hw_metrics_mgmt_service_pb2_grpc.py
index 825d4ee..7a2affa 100644
--- a/python/dmi/hw_metrics_mgmt_service_pb2_grpc.py
+++ b/python/dmi/hw_metrics_mgmt_service_pb2_grpc.py
@@ -28,7 +28,7 @@
         self.GetMetric = channel.unary_unary(
                 '/dmi.NativeMetricsManagementService/GetMetric',
                 request_serializer=dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricRequest.SerializeToString,
-                response_deserializer=dmi_dot_hw__metrics__mgmt__service__pb2.Metric.FromString,
+                response_deserializer=dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricResponse.FromString,
                 )
 
 
@@ -78,7 +78,7 @@
             'GetMetric': grpc.unary_unary_rpc_method_handler(
                     servicer.GetMetric,
                     request_deserializer=dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricRequest.FromString,
-                    response_serializer=dmi_dot_hw__metrics__mgmt__service__pb2.Metric.SerializeToString,
+                    response_serializer=dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricResponse.SerializeToString,
             ),
     }
     generic_handler = grpc.method_handlers_generic_handler(
@@ -137,6 +137,6 @@
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/dmi.NativeMetricsManagementService/GetMetric',
             dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricRequest.SerializeToString,
-            dmi_dot_hw__metrics__mgmt__service__pb2.Metric.FromString,
+            dmi_dot_hw__metrics__mgmt__service__pb2.GetMetricResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
diff --git a/python/dmi/sw_image_pb2.py b/python/dmi/sw_image_pb2.py
index ffe3b09..9a60384 100644
--- a/python/dmi/sw_image_pb2.py
+++ b/python/dmi/sw_image_pb2.py
@@ -20,7 +20,7 @@
   syntax='proto3',
   serialized_options=b'Z9github.com/opencord/device-management-interface/v3/go/dmi',
   create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x12\x64mi/sw_image.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\"3\n\x0cImageVersion\x12\x12\n\nimage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"x\n\x10ImageInformation\x12 \n\x05image\x18\x01 \x01(\x0b\x32\x11.dmi.ImageVersion\x12\x1c\n\x14image_install_script\x18\x02 \x01(\t\x12\x11\n\timage_url\x18\x03 \x01(\t\x12\x11\n\tsha256sum\x18\x05 \x01(\t\"\xf9\x03\n\x0bImageStatus\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\'\n\x06reason\x18\x02 \x01(\x0e\x32\x17.dmi.ImageStatus.Reason\x12*\n\x05state\x18\x03 \x01(\x0e\x32\x1b.dmi.ImageStatus.ImageState\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"\xcf\x01\n\nImageState\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x11\n\rCOPYING_IMAGE\x10\x01\x12\x14\n\x10INSTALLING_IMAGE\x10\x02\x12\x13\n\x0f\x43OMMITING_IMAGE\x10\x03\x12\x14\n\x10REBOOTING_DEVICE\x10\x04\x12\x14\n\x10UPGRADE_COMPLETE\x10\x05\x12\x12\n\x0eUPGRADE_FAILED\x10\x06\x12\x17\n\x13\x41\x43TIVATION_COMPLETE\x10\x07\x12\x15\n\x11\x41\x43TIVATION_FAILED\x10\x08\"\x90\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x14\n\x10\x45RROR_IN_REQUEST\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x19\n\x15\x44\x45VICE_IN_WRONG_STATE\x10\x03\x12\x11\n\rINVALID_IMAGE\x10\x04\x12\x18\n\x14WRONG_IMAGE_CHECKSUM\x10\x05\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
+  serialized_pb=b'\n\x12\x64mi/sw_image.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\"3\n\x0cImageVersion\x12\x12\n\nimage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\"x\n\x10ImageInformation\x12 \n\x05image\x18\x01 \x01(\x0b\x32\x11.dmi.ImageVersion\x12\x1c\n\x14image_install_script\x18\x02 \x01(\t\x12\x11\n\timage_url\x18\x03 \x01(\t\x12\x11\n\tsha256sum\x18\x05 \x01(\t\"\xfa\x03\n\x0bImageStatus\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\'\n\x06reason\x18\x02 \x01(\x0e\x32\x17.dmi.ImageStatus.Reason\x12*\n\x05state\x18\x03 \x01(\x0e\x32\x1b.dmi.ImageStatus.ImageState\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"\xd0\x01\n\nImageState\x12\x13\n\x0fUNDEFINED_STATE\x10\x00\x12\x11\n\rCOPYING_IMAGE\x10\x01\x12\x14\n\x10INSTALLING_IMAGE\x10\x02\x12\x14\n\x10\x43OMMITTING_IMAGE\x10\x03\x12\x14\n\x10REBOOTING_DEVICE\x10\x04\x12\x14\n\x10UPGRADE_COMPLETE\x10\x05\x12\x12\n\x0eUPGRADE_FAILED\x10\x06\x12\x17\n\x13\x41\x43TIVATION_COMPLETE\x10\x07\x12\x15\n\x11\x41\x43TIVATION_FAILED\x10\x08\"\x90\x01\n\x06Reason\x12\x14\n\x10UNDEFINED_REASON\x10\x00\x12\x14\n\x10\x45RROR_IN_REQUEST\x10\x01\x12\x12\n\x0eINTERNAL_ERROR\x10\x02\x12\x19\n\x15\x44\x45VICE_IN_WRONG_STATE\x10\x03\x12\x11\n\rINVALID_IMAGE\x10\x04\x12\x18\n\x14WRONG_IMAGE_CHECKSUM\x10\x05\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
   ,
   dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,])
 
@@ -49,7 +49,7 @@
       type=None,
       create_key=_descriptor._internal_create_key),
     _descriptor.EnumValueDescriptor(
-      name='COMMITING_IMAGE', index=3, number=3,
+      name='COMMITTING_IMAGE', index=3, number=3,
       serialized_options=None,
       type=None,
       create_key=_descriptor._internal_create_key),
@@ -82,7 +82,7 @@
   containing_type=None,
   serialized_options=None,
   serialized_start=373,
-  serialized_end=580,
+  serialized_end=581,
 )
 _sym_db.RegisterEnumDescriptor(_IMAGESTATUS_IMAGESTATE)
 
@@ -126,8 +126,8 @@
   ],
   containing_type=None,
   serialized_options=None,
-  serialized_start=583,
-  serialized_end=727,
+  serialized_start=584,
+  serialized_end=728,
 )
 _sym_db.RegisterEnumDescriptor(_IMAGESTATUS_REASON)
 
@@ -275,7 +275,7 @@
   oneofs=[
   ],
   serialized_start=222,
-  serialized_end=727,
+  serialized_end=728,
 )
 
 _IMAGEINFORMATION.fields_by_name['image'].message_type = _IMAGEVERSION
diff --git a/python/dmi/sw_management_service_pb2.py b/python/dmi/sw_management_service_pb2.py
index f3aadee..5306586 100644
--- a/python/dmi/sw_management_service_pb2.py
+++ b/python/dmi/sw_management_service_pb2.py
@@ -11,6 +11,7 @@
 _sym_db = _symbol_database.Default()
 
 
+from dmi import commons_pb2 as dmi_dot_commons__pb2
 from dmi import hw_pb2 as dmi_dot_hw__pb2
 from dmi import sw_image_pb2 as dmi_dot_sw__image__pb2
 
@@ -21,9 +22,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\x1f\x64mi/sw_management_service.proto\x12\x03\x64mi\x1a\x0c\x64mi/hw.proto\x1a\x12\x64mi/sw_image.proto\"u\n\x1aSoftwareVersionInformation\x12*\n\x0f\x61\x63tive_versions\x18\x01 \x03(\x0b\x32\x11.dmi.ImageVersion\x12+\n\x10standby_versions\x18\x02 \x03(\x0b\x32\x11.dmi.ImageVersion\"a\n\x14\x44ownloadImageRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12)\n\nimage_info\x18\x02 \x01(\x0b\x32\x15.dmi.ImageInformation2\x9c\x02\n\x1fNativeSoftwareManagementService\x12\x46\n\x12GetSoftwareVersion\x12\x0f.dmi.HardwareID\x1a\x1f.dmi.SoftwareVersionInformation\x12>\n\rDownloadImage\x12\x19.dmi.DownloadImageRequest\x1a\x10.dmi.ImageStatus0\x01\x12\x34\n\rActivateImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x12;\n\x14RevertToStandbyImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
+  serialized_pb=b'\n\x1f\x64mi/sw_management_service.proto\x12\x03\x64mi\x1a\x11\x64mi/commons.proto\x1a\x0c\x64mi/hw.proto\x1a\x12\x64mi/sw_image.proto\"u\n\x1aSoftwareVersionInformation\x12*\n\x0f\x61\x63tive_versions\x18\x01 \x03(\x0b\x32\x11.dmi.ImageVersion\x12+\n\x10standby_versions\x18\x02 \x03(\x0b\x32\x11.dmi.ImageVersion\"\x90\x01\n%GetSoftwareVersionInformationResponse\x12\x1b\n\x06status\x18\x01 \x01(\x0e\x32\x0b.dmi.Status\x12\x1b\n\x06reason\x18\x02 \x01(\x0e\x32\x0b.dmi.Reason\x12-\n\x04info\x18\x03 \x01(\x0b\x32\x1f.dmi.SoftwareVersionInformation\"a\n\x14\x44ownloadImageRequest\x12\x1e\n\x0b\x64\x65vice_uuid\x18\x01 \x01(\x0b\x32\t.dmi.Uuid\x12)\n\nimage_info\x18\x02 \x01(\x0b\x32\x15.dmi.ImageInformation2\xa7\x02\n\x1fNativeSoftwareManagementService\x12Q\n\x12GetSoftwareVersion\x12\x0f.dmi.HardwareID\x1a*.dmi.GetSoftwareVersionInformationResponse\x12>\n\rDownloadImage\x12\x19.dmi.DownloadImageRequest\x1a\x10.dmi.ImageStatus0\x01\x12\x34\n\rActivateImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x12;\n\x14RevertToStandbyImage\x12\x0f.dmi.HardwareID\x1a\x10.dmi.ImageStatus0\x01\x42;Z9github.com/opencord/device-management-interface/v3/go/dmib\x06proto3'
   ,
-  dependencies=[dmi_dot_hw__pb2.DESCRIPTOR,dmi_dot_sw__image__pb2.DESCRIPTOR,])
+  dependencies=[dmi_dot_commons__pb2.DESCRIPTOR,dmi_dot_hw__pb2.DESCRIPTOR,dmi_dot_sw__image__pb2.DESCRIPTOR,])
 
 
 
@@ -62,8 +63,54 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=74,
-  serialized_end=191,
+  serialized_start=93,
+  serialized_end=210,
+)
+
+
+_GETSOFTWAREVERSIONINFORMATIONRESPONSE = _descriptor.Descriptor(
+  name='GetSoftwareVersionInformationResponse',
+  full_name='dmi.GetSoftwareVersionInformationResponse',
+  filename=None,
+  file=DESCRIPTOR,
+  containing_type=None,
+  create_key=_descriptor._internal_create_key,
+  fields=[
+    _descriptor.FieldDescriptor(
+      name='status', full_name='dmi.GetSoftwareVersionInformationResponse.status', index=0,
+      number=1, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='reason', full_name='dmi.GetSoftwareVersionInformationResponse.reason', index=1,
+      number=2, type=14, cpp_type=8, label=1,
+      has_default_value=False, default_value=0,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+    _descriptor.FieldDescriptor(
+      name='info', full_name='dmi.GetSoftwareVersionInformationResponse.info', index=2,
+      number=3, type=11, cpp_type=10, label=1,
+      has_default_value=False, default_value=None,
+      message_type=None, enum_type=None, containing_type=None,
+      is_extension=False, extension_scope=None,
+      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
+  ],
+  extensions=[
+  ],
+  nested_types=[],
+  enum_types=[
+  ],
+  serialized_options=None,
+  is_extendable=False,
+  syntax='proto3',
+  extension_ranges=[],
+  oneofs=[
+  ],
+  serialized_start=213,
+  serialized_end=357,
 )
 
 
@@ -101,15 +148,19 @@
   extension_ranges=[],
   oneofs=[
   ],
-  serialized_start=193,
-  serialized_end=290,
+  serialized_start=359,
+  serialized_end=456,
 )
 
 _SOFTWAREVERSIONINFORMATION.fields_by_name['active_versions'].message_type = dmi_dot_sw__image__pb2._IMAGEVERSION
 _SOFTWAREVERSIONINFORMATION.fields_by_name['standby_versions'].message_type = dmi_dot_sw__image__pb2._IMAGEVERSION
+_GETSOFTWAREVERSIONINFORMATIONRESPONSE.fields_by_name['status'].enum_type = dmi_dot_commons__pb2._STATUS
+_GETSOFTWAREVERSIONINFORMATIONRESPONSE.fields_by_name['reason'].enum_type = dmi_dot_commons__pb2._REASON
+_GETSOFTWAREVERSIONINFORMATIONRESPONSE.fields_by_name['info'].message_type = _SOFTWAREVERSIONINFORMATION
 _DOWNLOADIMAGEREQUEST.fields_by_name['device_uuid'].message_type = dmi_dot_hw__pb2._UUID
 _DOWNLOADIMAGEREQUEST.fields_by_name['image_info'].message_type = dmi_dot_sw__image__pb2._IMAGEINFORMATION
 DESCRIPTOR.message_types_by_name['SoftwareVersionInformation'] = _SOFTWAREVERSIONINFORMATION
+DESCRIPTOR.message_types_by_name['GetSoftwareVersionInformationResponse'] = _GETSOFTWAREVERSIONINFORMATIONRESPONSE
 DESCRIPTOR.message_types_by_name['DownloadImageRequest'] = _DOWNLOADIMAGEREQUEST
 _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
@@ -120,6 +171,13 @@
   })
 _sym_db.RegisterMessage(SoftwareVersionInformation)
 
+GetSoftwareVersionInformationResponse = _reflection.GeneratedProtocolMessageType('GetSoftwareVersionInformationResponse', (_message.Message,), {
+  'DESCRIPTOR' : _GETSOFTWAREVERSIONINFORMATIONRESPONSE,
+  '__module__' : 'dmi.sw_management_service_pb2'
+  # @@protoc_insertion_point(class_scope:dmi.GetSoftwareVersionInformationResponse)
+  })
+_sym_db.RegisterMessage(GetSoftwareVersionInformationResponse)
+
 DownloadImageRequest = _reflection.GeneratedProtocolMessageType('DownloadImageRequest', (_message.Message,), {
   'DESCRIPTOR' : _DOWNLOADIMAGEREQUEST,
   '__module__' : 'dmi.sw_management_service_pb2'
@@ -137,8 +195,8 @@
   index=0,
   serialized_options=None,
   create_key=_descriptor._internal_create_key,
-  serialized_start=293,
-  serialized_end=577,
+  serialized_start=459,
+  serialized_end=754,
   methods=[
   _descriptor.MethodDescriptor(
     name='GetSoftwareVersion',
@@ -146,7 +204,7 @@
     index=0,
     containing_service=None,
     input_type=dmi_dot_hw__pb2._HARDWAREID,
-    output_type=_SOFTWAREVERSIONINFORMATION,
+    output_type=_GETSOFTWAREVERSIONINFORMATIONRESPONSE,
     serialized_options=None,
     create_key=_descriptor._internal_create_key,
   ),
diff --git a/python/dmi/sw_management_service_pb2_grpc.py b/python/dmi/sw_management_service_pb2_grpc.py
index dad1652..b9669b7 100644
--- a/python/dmi/sw_management_service_pb2_grpc.py
+++ b/python/dmi/sw_management_service_pb2_grpc.py
@@ -19,7 +19,7 @@
         self.GetSoftwareVersion = channel.unary_unary(
                 '/dmi.NativeSoftwareManagementService/GetSoftwareVersion',
                 request_serializer=dmi_dot_hw__pb2.HardwareID.SerializeToString,
-                response_deserializer=dmi_dot_sw__management__service__pb2.SoftwareVersionInformation.FromString,
+                response_deserializer=dmi_dot_sw__management__service__pb2.GetSoftwareVersionInformationResponse.FromString,
                 )
         self.DownloadImage = channel.unary_stream(
                 '/dmi.NativeSoftwareManagementService/DownloadImage',
@@ -66,7 +66,7 @@
 
     def RevertToStandbyImage(self, request, context):
         """Marks the image in the Standby as Active and reboots the device, so that it boots from that image which was in the standby.
-        This API is to be used if operator wants to go back to the pervious software
+        This API is to be used if operator wants to go back to the previous software
         """
         context.set_code(grpc.StatusCode.UNIMPLEMENTED)
         context.set_details('Method not implemented!')
@@ -78,7 +78,7 @@
             'GetSoftwareVersion': grpc.unary_unary_rpc_method_handler(
                     servicer.GetSoftwareVersion,
                     request_deserializer=dmi_dot_hw__pb2.HardwareID.FromString,
-                    response_serializer=dmi_dot_sw__management__service__pb2.SoftwareVersionInformation.SerializeToString,
+                    response_serializer=dmi_dot_sw__management__service__pb2.GetSoftwareVersionInformationResponse.SerializeToString,
             ),
             'DownloadImage': grpc.unary_stream_rpc_method_handler(
                     servicer.DownloadImage,
@@ -118,7 +118,7 @@
             metadata=None):
         return grpc.experimental.unary_unary(request, target, '/dmi.NativeSoftwareManagementService/GetSoftwareVersion',
             dmi_dot_hw__pb2.HardwareID.SerializeToString,
-            dmi_dot_sw__management__service__pb2.SoftwareVersionInformation.FromString,
+            dmi_dot_sw__management__service__pb2.GetSoftwareVersionInformationResponse.FromString,
             options, channel_credentials,
             insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
 
