diff --git a/go/dmi/commons.pb.go b/go/dmi/commons.pb.go
index 1b3b9da..d30c79c 100644
--- a/go/dmi/commons.pb.go
+++ b/go/dmi/commons.pb.go
@@ -48,59 +48,6 @@
 	return fileDescriptor_74aedf0dda1205d8, []int{0}
 }
 
-// Reason for the failure of request
-type Reason int32
-
-const (
-	Reason_UNDEFINED_REASON                Reason = 0
-	Reason_UNKNOWN_DEVICE                  Reason = 1
-	Reason_INTERNAL_ERROR                  Reason = 2
-	Reason_WRONG_METRIC                    Reason = 3
-	Reason_WRONG_EVENT                     Reason = 4
-	Reason_LOGGING_ENDPOINT_ERROR          Reason = 5
-	Reason_LOGGING_ENDPOINT_PROTOCOL_ERROR Reason = 6
-	Reason_KAFKA_ENDPOINT_ERROR            Reason = 7
-	Reason_UNKNOWN_LOG_ENTITY              Reason = 8
-	Reason_ERROR_FETCHING_CONFIG           Reason = 9
-	Reason_INVALID_CONFIG                  Reason = 10
-)
-
-var Reason_name = map[int32]string{
-	0:  "UNDEFINED_REASON",
-	1:  "UNKNOWN_DEVICE",
-	2:  "INTERNAL_ERROR",
-	3:  "WRONG_METRIC",
-	4:  "WRONG_EVENT",
-	5:  "LOGGING_ENDPOINT_ERROR",
-	6:  "LOGGING_ENDPOINT_PROTOCOL_ERROR",
-	7:  "KAFKA_ENDPOINT_ERROR",
-	8:  "UNKNOWN_LOG_ENTITY",
-	9:  "ERROR_FETCHING_CONFIG",
-	10: "INVALID_CONFIG",
-}
-
-var Reason_value = map[string]int32{
-	"UNDEFINED_REASON":                0,
-	"UNKNOWN_DEVICE":                  1,
-	"INTERNAL_ERROR":                  2,
-	"WRONG_METRIC":                    3,
-	"WRONG_EVENT":                     4,
-	"LOGGING_ENDPOINT_ERROR":          5,
-	"LOGGING_ENDPOINT_PROTOCOL_ERROR": 6,
-	"KAFKA_ENDPOINT_ERROR":            7,
-	"UNKNOWN_LOG_ENTITY":              8,
-	"ERROR_FETCHING_CONFIG":           9,
-	"INVALID_CONFIG":                  10,
-}
-
-func (x Reason) String() string {
-	return proto.EnumName(Reason_name, int32(x))
-}
-
-func (Reason) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_74aedf0dda1205d8, []int{1}
-}
-
 //Log Level
 type LogLevel int32
 
@@ -133,41 +80,30 @@
 }
 
 func (LogLevel) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_74aedf0dda1205d8, []int{2}
+	return fileDescriptor_74aedf0dda1205d8, []int{1}
 }
 
 func init() {
 	proto.RegisterEnum("dmi.Status", Status_name, Status_value)
-	proto.RegisterEnum("dmi.Reason", Reason_name, Reason_value)
 	proto.RegisterEnum("dmi.LogLevel", LogLevel_name, LogLevel_value)
 }
 
 func init() { proto.RegisterFile("dmi/commons.proto", fileDescriptor_74aedf0dda1205d8) }
 
 var fileDescriptor_74aedf0dda1205d8 = []byte{
-	// 373 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0xcf, 0x6f, 0xd3, 0x30,
-	0x14, 0xc7, 0xdb, 0xb4, 0x0b, 0xed, 0xe3, 0x97, 0xb1, 0xc6, 0x04, 0x5c, 0x38, 0x70, 0xab, 0xb4,
-	0xe5, 0xb0, 0x13, 0xe2, 0x30, 0x79, 0x89, 0x13, 0xac, 0x04, 0x7b, 0x72, 0x9c, 0x56, 0x70, 0x89,
-	0xb2, 0xc4, 0x84, 0x48, 0x38, 0x9e, 0xda, 0xac, 0xff, 0x04, 0xff, 0x34, 0x72, 0x43, 0x0e, 0xc0,
-	0xed, 0xf9, 0xf3, 0xf4, 0x3e, 0x7e, 0x5f, 0x3d, 0x78, 0xd5, 0x98, 0x2e, 0xa8, 0xad, 0x31, 0xb6,
-	0x3f, 0x5c, 0x3d, 0xec, 0xed, 0x60, 0xf1, 0xa2, 0x31, 0xdd, 0xe6, 0x06, 0xfc, 0x7c, 0xa8, 0x86,
-	0xc7, 0x03, 0x3e, 0x07, 0x54, 0xf0, 0x88, 0xc6, 0x8c, 0xd3, 0xa8, 0xcc, 0x15, 0x51, 0x45, 0x8e,
-	0x66, 0xf8, 0x39, 0xac, 0x45, 0x3a, 0x3d, 0xe7, 0x18, 0xc1, 0x33, 0x2a, 0xa5, 0x90, 0x13, 0xf1,
-	0x36, 0xbf, 0x3c, 0xf0, 0xa5, 0xae, 0x0e, 0xb6, 0xff, 0xdb, 0x20, 0x29, 0xc9, 0x05, 0x47, 0x33,
-	0x8c, 0xe1, 0x45, 0xc1, 0x53, 0x2e, 0x76, 0xbc, 0x8c, 0xe8, 0x96, 0x85, 0x14, 0xcd, 0x1d, 0x63,
-	0x5c, 0x51, 0xc9, 0x49, 0x56, 0x9e, 0x7c, 0xc8, 0x73, 0xea, 0x9d, 0x14, 0x3c, 0x29, 0xbf, 0x50,
-	0x25, 0x59, 0x88, 0x16, 0xf8, 0x25, 0x3c, 0x1d, 0x09, 0xdd, 0x52, 0xae, 0xd0, 0x12, 0xbf, 0x83,
-	0x8b, 0x4c, 0x24, 0x09, 0x73, 0x88, 0x47, 0x77, 0x82, 0x71, 0xf5, 0x67, 0xfc, 0x0c, 0x7f, 0x80,
-	0xf7, 0xff, 0xf5, 0xee, 0xa4, 0x50, 0x22, 0x14, 0xd3, 0x1f, 0x3e, 0x7e, 0x03, 0xe7, 0x29, 0x89,
-	0x53, 0xf2, 0xef, 0xf8, 0x13, 0x7c, 0x01, 0x78, 0xda, 0x32, 0x13, 0x4e, 0xa1, 0x98, 0xfa, 0x8a,
-	0x56, 0xf8, 0x2d, 0xbc, 0x1e, 0x03, 0xc7, 0x54, 0x85, 0x9f, 0x9d, 0x3d, 0x14, 0x3c, 0x66, 0x09,
-	0x5a, 0x8f, 0x21, 0xb6, 0x24, 0x63, 0xd1, 0xc4, 0x60, 0x73, 0x03, 0xab, 0xcc, 0xb6, 0x99, 0x3e,
-	0xea, 0x9f, 0x78, 0x0d, 0x67, 0x4a, 0x92, 0x90, 0xa2, 0x99, 0x2b, 0x23, 0x7a, 0x5b, 0x24, 0x68,
-	0x8e, 0x57, 0xb0, 0x64, 0x3c, 0x16, 0xc8, 0x73, 0xd5, 0x8e, 0x48, 0x8e, 0x16, 0xae, 0x3d, 0xee,
-	0xb1, 0xbc, 0xfd, 0xf4, 0xed, 0x63, 0xdb, 0x0d, 0x3f, 0x1e, 0xef, 0xaf, 0x6a, 0x6b, 0x02, 0xfb,
-	0xa0, 0xfb, 0xda, 0xee, 0x9b, 0xa0, 0xd1, 0xc7, 0xae, 0xd6, 0x97, 0xa6, 0xea, 0xab, 0x56, 0x1b,
-	0xdd, 0x0f, 0x97, 0x5d, 0x3f, 0xe8, 0xfd, 0xf7, 0xaa, 0xd6, 0xc1, 0xf1, 0x3a, 0x68, 0x6d, 0xd0,
-	0x98, 0xee, 0xde, 0x3f, 0x1d, 0xf6, 0xfa, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc8, 0xb6, 0xed,
-	0xcf, 0xed, 0x01, 0x00, 0x00,
+	// 217 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x34, 0x8f, 0x5f, 0x6b, 0xc2, 0x30,
+	0x14, 0xc5, 0xfd, 0x37, 0xd1, 0xb0, 0xc1, 0x5d, 0xd8, 0xa7, 0x10, 0x34, 0x0f, 0x3e, 0x8d, 0x3d,
+	0x48, 0x5d, 0xe3, 0x90, 0x49, 0x0b, 0x69, 0xcb, 0x60, 0x2f, 0xa3, 0x26, 0x77, 0x5d, 0x60, 0x37,
+	0x57, 0x6a, 0xec, 0xe7, 0x97, 0x0a, 0xbe, 0xfd, 0xce, 0x39, 0x70, 0xe0, 0x27, 0x9e, 0x1d, 0x79,
+	0x65, 0x99, 0x88, 0xc3, 0x79, 0x75, 0x6a, 0x39, 0xb2, 0x1c, 0x3b, 0xf2, 0x8b, 0x8d, 0x98, 0x16,
+	0xb1, 0x8e, 0x97, 0xb3, 0x7c, 0x11, 0x50, 0x65, 0xa9, 0xde, 0xed, 0x33, 0x9d, 0xfe, 0x14, 0x65,
+	0x52, 0x56, 0x05, 0x0c, 0xe4, 0x93, 0x98, 0xe7, 0x9f, 0xf7, 0x38, 0x94, 0x20, 0x1e, 0xb5, 0x31,
+	0xb9, 0xb9, 0x37, 0xa3, 0xc5, 0x46, 0xcc, 0x0e, 0xdc, 0x1c, 0xb0, 0xc3, 0x7f, 0x39, 0x17, 0x0f,
+	0xa5, 0x49, 0xde, 0x35, 0x0c, 0x7a, 0x4c, 0xf5, 0xb6, 0xfa, 0x80, 0xa1, 0x9c, 0x89, 0xc9, 0x3e,
+	0xdb, 0xe5, 0x30, 0xea, 0xe9, 0x2b, 0x31, 0x19, 0x8c, 0xfb, 0xf9, 0xf6, 0x03, 0x93, 0xed, 0xdb,
+	0xf7, 0x6b, 0xe3, 0xe3, 0xdf, 0xe5, 0xb8, 0xb2, 0x4c, 0x8a, 0x4f, 0x18, 0x2c, 0xb7, 0x4e, 0x39,
+	0xec, 0xbc, 0xc5, 0x25, 0xd5, 0xa1, 0x6e, 0x90, 0x30, 0xc4, 0xa5, 0x0f, 0x11, 0xdb, 0xdf, 0xda,
+	0xa2, 0xea, 0xd6, 0xaa, 0x61, 0xe5, 0xc8, 0x1f, 0xa7, 0x37, 0x95, 0xf5, 0x35, 0x00, 0x00, 0xff,
+	0xff, 0x6b, 0x43, 0x1e, 0x6c, 0xdf, 0x00, 0x00, 0x00,
 }
diff --git a/go/dmi/hw_events_mgmt_service.pb.go b/go/dmi/hw_events_mgmt_service.pb.go
index f102422..5c3418b 100644
--- a/go/dmi/hw_events_mgmt_service.pb.go
+++ b/go/dmi/hw_events_mgmt_service.pb.go
@@ -173,6 +173,65 @@
 	return fileDescriptor_8962d785556e9979, []int{0}
 }
 
+type ListEventsResponse_Reason int32
+
+const (
+	ListEventsResponse_UNDEFINED_REASON ListEventsResponse_Reason = 0
+	ListEventsResponse_UNKNOWN_DEVICE   ListEventsResponse_Reason = 1
+	ListEventsResponse_INTERNAL_ERROR   ListEventsResponse_Reason = 2
+)
+
+var ListEventsResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+}
+
+var ListEventsResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON": 0,
+	"UNKNOWN_DEVICE":   1,
+	"INTERNAL_ERROR":   2,
+}
+
+func (x ListEventsResponse_Reason) String() string {
+	return proto.EnumName(ListEventsResponse_Reason_name, int32(x))
+}
+
+func (ListEventsResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_8962d785556e9979, []int{6, 0}
+}
+
+type EventsConfigurationResponse_Reason int32
+
+const (
+	EventsConfigurationResponse_UNDEFINED_REASON EventsConfigurationResponse_Reason = 0
+	EventsConfigurationResponse_UNKNOWN_DEVICE   EventsConfigurationResponse_Reason = 1
+	EventsConfigurationResponse_INTERNAL_ERROR   EventsConfigurationResponse_Reason = 2
+	EventsConfigurationResponse_INVALID_CONFIG   EventsConfigurationResponse_Reason = 3
+)
+
+var EventsConfigurationResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+	3: "INVALID_CONFIG",
+}
+
+var EventsConfigurationResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON": 0,
+	"UNKNOWN_DEVICE":   1,
+	"INTERNAL_ERROR":   2,
+	"INVALID_CONFIG":   3,
+}
+
+func (x EventsConfigurationResponse_Reason) String() string {
+	return proto.EnumName(EventsConfigurationResponse_Reason_name, int32(x))
+}
+
+func (EventsConfigurationResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_8962d785556e9979, []int{8, 0}
+}
+
 type ValueType struct {
 	// Types that are valid to be assigned to Val:
 	//	*ValueType_IntVal
@@ -538,12 +597,12 @@
 }
 
 type ListEventsResponse 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"`
-	Events               *EventsCfg `protobuf:"bytes,3,opt,name=events,proto3" json:"events,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}   `json:"-"`
-	XXX_unrecognized     []byte     `json:"-"`
-	XXX_sizecache        int32      `json:"-"`
+	Status               Status                    `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               ListEventsResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.ListEventsResponse_Reason" json:"reason,omitempty"`
+	Events               *EventsCfg                `protobuf:"bytes,3,opt,name=events,proto3" json:"events,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
+	XXX_unrecognized     []byte                    `json:"-"`
+	XXX_sizecache        int32                     `json:"-"`
 }
 
 func (m *ListEventsResponse) Reset()         { *m = ListEventsResponse{} }
@@ -578,11 +637,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *ListEventsResponse) GetReason() Reason {
+func (m *ListEventsResponse) GetReason() ListEventsResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return ListEventsResponse_UNDEFINED_REASON
 }
 
 func (m *ListEventsResponse) GetEvents() *EventsCfg {
@@ -681,11 +740,11 @@
 }
 
 type EventsConfigurationResponse struct {
-	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Status               Status                             `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               EventsConfigurationResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.EventsConfigurationResponse_Reason" json:"reason,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
+	XXX_unrecognized     []byte                             `json:"-"`
+	XXX_sizecache        int32                              `json:"-"`
 }
 
 func (m *EventsConfigurationResponse) Reset()         { *m = EventsConfigurationResponse{} }
@@ -720,11 +779,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *EventsConfigurationResponse) GetReason() Reason {
+func (m *EventsConfigurationResponse) GetReason() EventsConfigurationResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return EventsConfigurationResponse_UNDEFINED_REASON
 }
 
 type EventMetaData struct {
@@ -858,6 +917,8 @@
 
 func init() {
 	proto.RegisterEnum("dmi.EventIds", EventIds_name, EventIds_value)
+	proto.RegisterEnum("dmi.ListEventsResponse_Reason", ListEventsResponse_Reason_name, ListEventsResponse_Reason_value)
+	proto.RegisterEnum("dmi.EventsConfigurationResponse_Reason", EventsConfigurationResponse_Reason_name, EventsConfigurationResponse_Reason_value)
 	proto.RegisterType((*ValueType)(nil), "dmi.ValueType")
 	proto.RegisterType((*WaterMarks)(nil), "dmi.WaterMarks")
 	proto.RegisterType((*Thresholds)(nil), "dmi.Thresholds")
@@ -874,90 +935,95 @@
 func init() { proto.RegisterFile("dmi/hw_events_mgmt_service.proto", fileDescriptor_8962d785556e9979) }
 
 var fileDescriptor_8962d785556e9979 = []byte{
-	// 1313 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x4b, 0x73, 0x1a, 0x47,
-	0x17, 0x15, 0x8c, 0x25, 0xc1, 0x95, 0xe1, 0xc3, 0x5d, 0xfe, 0x62, 0x09, 0x97, 0x63, 0x82, 0x12,
-	0x5b, 0x56, 0x22, 0xb0, 0xa5, 0xc4, 0x8e, 0xcb, 0x9b, 0x20, 0x18, 0x19, 0xaa, 0x10, 0xa8, 0x5a,
-	0x03, 0x4a, 0x65, 0x91, 0xa9, 0x16, 0xd3, 0x0c, 0x13, 0x31, 0xd3, 0x78, 0xa6, 0x07, 0xc5, 0x49,
-	0x55, 0x16, 0x59, 0x64, 0x91, 0x55, 0x5e, 0x3f, 0x23, 0x4e, 0x96, 0xf9, 0x0b, 0x79, 0xac, 0xf2,
-	0x5f, 0xf2, 0x5a, 0xa6, 0xa6, 0x67, 0x80, 0x11, 0x4f, 0xb9, 0x2a, 0x3b, 0xcd, 0x3d, 0xe7, 0xdc,
-	0x73, 0xba, 0xb9, 0xdd, 0xd5, 0x82, 0x8c, 0x66, 0x1a, 0xf9, 0xce, 0xb9, 0x4a, 0xfb, 0xd4, 0xe2,
-	0x8e, 0x6a, 0xea, 0x26, 0x57, 0x1d, 0x6a, 0xf7, 0x8d, 0x16, 0xcd, 0xf5, 0x6c, 0xc6, 0x19, 0x92,
-	0x34, 0xd3, 0x48, 0x5f, 0xf3, 0x68, 0x2d, 0x66, 0x9a, 0xcc, 0x72, 0xfc, 0x7a, 0xfa, 0xaa, 0xaf,
-	0x0c, 0xbe, 0x6e, 0xeb, 0x8c, 0xe9, 0x5d, 0x9a, 0x17, 0x5f, 0xa7, 0x6e, 0x3b, 0xcf, 0x0d, 0x93,
-	0x3a, 0x9c, 0x98, 0x3d, 0x9f, 0x90, 0x35, 0x20, 0xde, 0x24, 0x5d, 0x97, 0x2a, 0xcf, 0x7b, 0x14,
-	0x6d, 0xc0, 0xaa, 0x61, 0x71, 0xb5, 0x4f, 0xba, 0xeb, 0x91, 0x4c, 0x64, 0x4b, 0x2a, 0x2f, 0xe1,
-	0x15, 0xc3, 0xe2, 0x4d, 0xd2, 0x45, 0x37, 0x21, 0xe6, 0x0e, 0xb0, 0x68, 0x26, 0xb2, 0x75, 0xa5,
-	0xbc, 0x84, 0x57, 0xdd, 0x00, 0xbc, 0x05, 0xf1, 0x76, 0x97, 0x11, 0x1f, 0x95, 0x32, 0x91, 0xad,
-	0x68, 0x79, 0x09, 0xc7, 0x44, 0xa9, 0x49, 0xba, 0xfb, 0xcb, 0x20, 0xf5, 0x49, 0x37, 0x8b, 0x01,
-	0x4e, 0x08, 0xa7, 0xf6, 0x21, 0xb1, 0xcf, 0x1c, 0x94, 0x85, 0x2b, 0x1d, 0x43, 0xef, 0x08, 0xa3,
-	0xb5, 0xdd, 0x64, 0x4e, 0x33, 0x8d, 0xdc, 0x30, 0x09, 0x16, 0x18, 0xca, 0x80, 0xd4, 0x65, 0xe7,
-	0xc2, 0x6f, 0x92, 0xe2, 0x41, 0xd9, 0x33, 0x00, 0xa5, 0x63, 0x53, 0xa7, 0xc3, 0xba, 0x9a, 0x83,
-	0xee, 0xc2, 0xb2, 0xdb, 0xeb, 0x51, 0x3b, 0x68, 0xfa, 0x3f, 0xa1, 0x18, 0x79, 0x96, 0x97, 0xb0,
-	0x8f, 0x7b, 0xc4, 0x2e, 0x3b, 0xa7, 0x76, 0xd0, 0x7a, 0x1a, 0x51, 0xe0, 0xfb, 0x6b, 0x10, 0xe7,
-	0x83, 0xfe, 0xd9, 0xcf, 0xe0, 0xfa, 0xd0, 0xac, 0x62, 0xb5, 0x99, 0x6d, 0x12, 0x6e, 0x30, 0x0b,
-	0xbd, 0x03, 0x49, 0x76, 0xea, 0xfd, 0x3a, 0x54, 0xf3, 0x76, 0xc0, 0xa5, 0x33, 0x16, 0x95, 0x18,
-	0xb0, 0x44, 0x09, 0xe5, 0x01, 0x86, 0xbd, 0x9d, 0x0b, 0x49, 0x46, 0x4b, 0xc2, 0x21, 0x4a, 0xf6,
-	0xcb, 0x08, 0xc4, 0x64, 0x6f, 0x20, 0x8a, 0x6d, 0x1d, 0x6d, 0x41, 0x4c, 0x0c, 0x87, 0x6a, 0x68,
-	0xc2, 0x2e, 0xb9, 0x9b, 0x10, 0x5a, 0x41, 0xa8, 0x68, 0x0e, 0x5e, 0xa5, 0xfe, 0x5f, 0x68, 0x13,
-	0x12, 0x86, 0xa3, 0xb6, 0x98, 0xd5, 0x36, 0x74, 0xd7, 0xa6, 0x9a, 0xb0, 0x8a, 0xe1, 0xab, 0x86,
-	0x53, 0x1c, 0xd6, 0xc6, 0xc2, 0x48, 0x8b, 0xc3, 0xdc, 0x87, 0xb8, 0xb0, 0x72, 0xbc, 0x30, 0x9b,
-	0xb0, 0x6c, 0x70, 0x6a, 0x3a, 0xeb, 0x91, 0x8c, 0xb4, 0xb5, 0x16, 0x4e, 0x52, 0x6c, 0xeb, 0xd8,
-	0xc7, 0xb2, 0x5f, 0x44, 0x00, 0x55, 0x0d, 0x87, 0xfb, 0x32, 0x4c, 0x9d, 0x1e, 0xb3, 0x1c, 0x8a,
-	0x36, 0x61, 0xc5, 0xe1, 0x84, 0xbb, 0x4e, 0xb0, 0x8c, 0x35, 0x21, 0x3e, 0x16, 0x25, 0x1c, 0x40,
-	0x1e, 0xc9, 0xa6, 0xc4, 0x61, 0x96, 0x08, 0x3f, 0x20, 0x61, 0x51, 0xc2, 0x01, 0x84, 0xee, 0xc0,
-	0x8a, 0x7f, 0x5e, 0x82, 0xfc, 0xc9, 0x51, 0x0c, 0x2f, 0x25, 0x0e, 0xd0, 0xec, 0x8b, 0x08, 0xa4,
-	0x83, 0x6a, 0xb0, 0x01, 0xe2, 0x77, 0xc4, 0xf4, 0x99, 0x4b, 0x1d, 0x8e, 0xb6, 0x61, 0x4d, 0xa3,
-	0xde, 0x49, 0x53, 0x5d, 0x37, 0xd8, 0xdc, 0xb5, 0xdd, 0xb8, 0xe8, 0xd5, 0x70, 0x0d, 0x0d, 0x83,
-	0x8f, 0x7a, 0x7f, 0xa3, 0x6d, 0x58, 0x6d, 0x75, 0x88, 0xa5, 0x53, 0xe7, 0xc2, 0x94, 0x0e, 0x3d,
-	0xbd, 0x53, 0x12, 0x10, 0xd0, 0x36, 0xa4, 0x6c, 0xea, 0x50, 0xae, 0x72, 0xa6, 0x6a, 0xb4, 0x4d,
-	0xdc, 0x2e, 0x17, 0x41, 0x63, 0xe5, 0x25, 0x9c, 0x14, 0x88, 0xc2, 0x4a, 0x7e, 0xdd, 0x9b, 0x3b,
-	0xd6, 0xa3, 0x7e, 0xae, 0xac, 0x0e, 0x37, 0xa7, 0xc6, 0xfd, 0xaf, 0x37, 0x30, 0xfb, 0x5d, 0x04,
-	0x12, 0xc2, 0xe9, 0x90, 0x72, 0x52, 0x22, 0x9c, 0xbc, 0xd4, 0x5e, 0xdc, 0x87, 0x64, 0x8b, 0x99,
-	0x3d, 0x66, 0x79, 0x53, 0x29, 0xe8, 0xd1, 0x71, 0x7a, 0x62, 0x48, 0x10, 0x8a, 0x37, 0xc2, 0x0a,
-	0x8b, 0x98, 0x54, 0xec, 0x47, 0x3c, 0x44, 0xab, 0x11, 0x93, 0x66, 0x3f, 0x8f, 0xc2, 0xb2, 0x88,
-	0x85, 0x1e, 0x43, 0xd2, 0x1f, 0x7a, 0x93, 0x72, 0xa2, 0x11, 0x4e, 0x82, 0x44, 0x68, 0xb4, 0xeb,
-	0x83, 0xe8, 0x38, 0x41, 0x07, 0x9f, 0x1e, 0xf1, 0xc2, 0x79, 0x89, 0xce, 0x3d, 0x2f, 0x8f, 0x20,
-	0x6e, 0x13, 0xc3, 0xa1, 0x9a, 0x3a, 0x9c, 0xa4, 0x74, 0xce, 0xbf, 0x47, 0x73, 0x83, 0x7b, 0x34,
-	0xa7, 0x0c, 0xee, 0x51, 0x1c, 0xf3, 0xc9, 0x8a, 0x83, 0xde, 0x83, 0xe4, 0xf0, 0x80, 0xa8, 0x86,
-	0xd5, 0x66, 0xeb, 0x57, 0x84, 0x7a, 0xe3, 0xe2, 0x39, 0x0a, 0x5d, 0x1d, 0x38, 0xc1, 0xc3, 0x55,
-	0xb4, 0x01, 0x31, 0xa2, 0x05, 0xda, 0x65, 0xb1, 0x15, 0xab, 0x44, 0x13, 0xd0, 0xf6, 0xef, 0xc9,
-	0xe0, 0xf0, 0x57, 0x34, 0x07, 0xad, 0xc3, 0x75, 0xb9, 0x29, 0xd7, 0x14, 0xb5, 0x56, 0x38, 0x94,
-	0xd5, 0x46, 0xad, 0x24, 0x1f, 0x54, 0x6a, 0x72, 0x29, 0xb5, 0x84, 0x5e, 0x85, 0xb4, 0x8f, 0x28,
-	0xb8, 0x50, 0x3b, 0x2e, 0xca, 0x95, 0xa6, 0x8c, 0xd5, 0xa3, 0x6a, 0xe3, 0xa9, 0x5a, 0x6f, 0x28,
-	0x29, 0x0d, 0xdd, 0x82, 0x8d, 0x19, 0x78, 0xa5, 0x96, 0xa2, 0x68, 0x07, 0xee, 0x4d, 0xc2, 0xcd,
-	0x7a, 0x55, 0x29, 0x3c, 0x95, 0xd5, 0xc2, 0x7e, 0xbd, 0x29, 0xab, 0x4a, 0x19, 0xcb, 0xc7, 0xe5,
-	0x7a, 0xb5, 0x94, 0x6a, 0xcf, 0xa7, 0xef, 0xcb, 0xd5, 0xfa, 0x49, 0x88, 0xae, 0xa3, 0x07, 0xb0,
-	0x33, 0x49, 0x57, 0xe4, 0xc3, 0x23, 0x19, 0x17, 0x94, 0x06, 0x9e, 0x74, 0xe8, 0x2c, 0x96, 0x8c,
-	0xbb, 0x18, 0xd3, 0x43, 0x15, 0x1b, 0x18, 0x7b, 0xb5, 0x71, 0x87, 0x8f, 0xe6, 0xd3, 0xc7, 0xbb,
-	0x9f, 0xa1, 0x1c, 0x6c, 0x4f, 0xd2, 0xf1, 0xfb, 0xea, 0x51, 0xfd, 0x44, 0xc6, 0x13, 0xed, 0xbb,
-	0x0b, 0xf8, 0xe3, 0xfd, 0xcd, 0xe9, 0x7c, 0x65, 0x56, 0x7f, 0x6b, 0x01, 0x7f, 0xbc, 0x3f, 0x9b,
-	0x3e, 0x00, 0x07, 0x85, 0x4a, 0xb5, 0x81, 0xe5, 0x54, 0x0f, 0x3d, 0x82, 0xbd, 0x4b, 0x0f, 0x80,
-	0x8a, 0xe5, 0x62, 0xbd, 0x29, 0x63, 0xb9, 0x94, 0x7a, 0x36, 0x5f, 0x38, 0x16, 0x23, 0x24, 0xb4,
-	0xd1, 0x13, 0x78, 0xf4, 0x52, 0x43, 0x11, 0x12, 0x3b, 0x8b, 0xc5, 0xb3, 0x9d, 0xf9, 0xf4, 0xc8,
-	0x33, 0x06, 0x25, 0x24, 0x74, 0xe7, 0x0b, 0x67, 0x3b, 0xf6, 0xd1, 0xbb, 0xf0, 0xf6, 0xe5, 0x87,
-	0x27, 0xa4, 0x3c, 0x5f, 0xa0, 0x9c, 0xed, 0xf9, 0xf1, 0x74, 0xa5, 0xb2, 0xd8, 0xf3, 0xf9, 0x02,
-	0xe5, 0x6c, 0xcf, 0x4f, 0xd0, 0x5d, 0xd8, 0x9c, 0x39, 0x64, 0x21, 0xe2, 0xa7, 0xe8, 0x06, 0x20,
-	0x9f, 0x78, 0x74, 0xdc, 0x18, 0x5d, 0x53, 0x3f, 0x47, 0xd0, 0x2b, 0x70, 0x6d, 0x0c, 0xa8, 0xd4,
-	0x52, 0xbf, 0x8c, 0xd5, 0x07, 0x63, 0xfb, 0x6b, 0x04, 0x65, 0xe0, 0xe6, 0x44, 0x3d, 0xe4, 0xf4,
-	0x5b, 0x48, 0x79, 0x50, 0xa8, 0x0d, 0x95, 0xdf, 0x47, 0x47, 0x11, 0xbc, 0xfa, 0x30, 0xc2, 0x8b,
-	0xe8, 0x45, 0xc1, 0x20, 0xc2, 0x0f, 0xd1, 0x91, 0x55, 0xa8, 0x51, 0xc8, 0xea, 0xc7, 0x28, 0xba,
-	0x07, 0xaf, 0xfb, 0x8c, 0xe2, 0x51, 0x63, 0xca, 0x28, 0x17, 0x71, 0x45, 0xa9, 0x14, 0x0b, 0xd5,
-	0xd4, 0x57, 0x12, 0xba, 0x03, 0xaf, 0xcd, 0xa3, 0x1e, 0x14, 0x94, 0x42, 0x35, 0xf5, 0xb5, 0x84,
-	0xf6, 0x20, 0x77, 0x99, 0x96, 0xa1, 0x1c, 0xdf, 0x48, 0xe8, 0x3e, 0xbc, 0xb9, 0xb0, 0x79, 0x48,
-	0xf1, 0xad, 0x84, 0xd2, 0xf0, 0x7f, 0x5f, 0x51, 0x3e, 0x51, 0x4b, 0x72, 0xb3, 0x52, 0xf4, 0x56,
-	0x76, 0x2c, 0x2b, 0xa9, 0x3f, 0x24, 0x94, 0x1f, 0xdc, 0x34, 0x23, 0x6c, 0xce, 0xda, 0xfe, 0x94,
-	0xd0, 0x5b, 0x70, 0x77, 0xb1, 0xc0, 0x5f, 0xe1, 0x5f, 0x12, 0x7a, 0x3c, 0x98, 0xb6, 0xcb, 0xb4,
-	0x0f, 0xa5, 0xfe, 0x5b, 0x42, 0x0f, 0xe1, 0xc1, 0x25, 0x8d, 0x42, 0xba, 0x7f, 0xa4, 0xdd, 0x9f,
-	0x22, 0x70, 0xab, 0x46, 0xb8, 0xd1, 0xa7, 0xfe, 0xfb, 0xea, 0x90, 0x58, 0x44, 0xa7, 0x26, 0xb5,
-	0xf8, 0xb1, 0xff, 0xbf, 0x16, 0x7a, 0x08, 0x30, 0x7a, 0xb2, 0x22, 0xff, 0x41, 0x5c, 0x26, 0xb6,
-	0x76, 0x4e, 0x6c, 0x5a, 0x29, 0xa5, 0x6f, 0x88, 0xc2, 0x94, 0x47, 0xed, 0x87, 0xb0, 0xd1, 0xe8,
-	0x69, 0x84, 0xd3, 0x29, 0x0f, 0x37, 0x74, 0x3b, 0xfc, 0x46, 0x9c, 0xf2, 0x02, 0x4d, 0x67, 0x66,
-	0x13, 0xfc, 0xfe, 0xfb, 0x4f, 0x3e, 0x78, 0xac, 0x1b, 0xbc, 0xe3, 0x9e, 0xe6, 0x5a, 0xcc, 0xcc,
-	0xb3, 0x1e, 0xb5, 0x5a, 0xcc, 0xd6, 0xf2, 0xfe, 0x6b, 0x6c, 0xc7, 0x1c, 0xae, 0x63, 0xc7, 0xb0,
-	0x38, 0xb5, 0xdb, 0xa4, 0x45, 0xf3, 0xfd, 0xbd, 0xbc, 0xce, 0xf2, 0x9a, 0x69, 0x9c, 0xae, 0x88,
-	0x57, 0xcc, 0xde, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x86, 0xc2, 0xf7, 0x19, 0x65, 0x0e, 0x00,
-	0x00,
+	// 1402 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x57, 0x5d, 0x73, 0xdb, 0x44,
+	0x17, 0x8e, 0xac, 0x26, 0x71, 0x4e, 0x1a, 0xbf, 0xea, 0x4e, 0xdf, 0xb7, 0x89, 0x3b, 0x6d, 0xfd,
+	0x3a, 0xd0, 0xa4, 0x81, 0xd8, 0x6d, 0x02, 0x2d, 0x9d, 0x5e, 0x80, 0x63, 0x2b, 0xb5, 0x06, 0x47,
+	0xce, 0x6c, 0x64, 0x87, 0xe9, 0x05, 0x9a, 0x8d, 0xb5, 0xb6, 0x45, 0x2d, 0xc9, 0x95, 0x56, 0x09,
+	0x85, 0x19, 0x2e, 0xb8, 0xe4, 0x8a, 0xaf, 0x9f, 0x41, 0xe1, 0x92, 0xbf, 0xc0, 0xc7, 0x15, 0xbf,
+	0x80, 0xe1, 0x3f, 0xf0, 0x75, 0xc9, 0x68, 0x25, 0xdb, 0x8a, 0x3f, 0xd3, 0x19, 0xee, 0xac, 0x73,
+	0x9e, 0xe7, 0x3c, 0xcf, 0x6a, 0xcf, 0xae, 0x8e, 0x21, 0x63, 0x58, 0x66, 0xbe, 0x7d, 0xa6, 0xd3,
+	0x53, 0x6a, 0x33, 0x4f, 0xb7, 0x5a, 0x16, 0xd3, 0x3d, 0xea, 0x9e, 0x9a, 0x0d, 0x9a, 0xeb, 0xba,
+	0x0e, 0x73, 0x90, 0x68, 0x58, 0x66, 0xfa, 0x4a, 0x00, 0x6b, 0x38, 0x96, 0xe5, 0xd8, 0x5e, 0x18,
+	0x4f, 0x5f, 0x0e, 0x99, 0xd1, 0xd3, 0xad, 0x96, 0xe3, 0xb4, 0x3a, 0x34, 0xcf, 0x9f, 0x4e, 0xfc,
+	0x66, 0x9e, 0x99, 0x16, 0xf5, 0x18, 0xb1, 0xba, 0x21, 0x20, 0x6b, 0xc2, 0x52, 0x9d, 0x74, 0x7c,
+	0xaa, 0x3d, 0xef, 0x52, 0xb4, 0x06, 0x8b, 0xa6, 0xcd, 0xf4, 0x53, 0xd2, 0x59, 0x15, 0x32, 0xc2,
+	0xa6, 0x58, 0x9e, 0xc3, 0x0b, 0xa6, 0xcd, 0xea, 0xa4, 0x83, 0xae, 0x43, 0xd2, 0xef, 0xe5, 0x12,
+	0x19, 0x61, 0xf3, 0x52, 0x79, 0x0e, 0x2f, 0xfa, 0x51, 0xf2, 0x06, 0x2c, 0x35, 0x3b, 0x0e, 0x09,
+	0xb3, 0x62, 0x46, 0xd8, 0x4c, 0x94, 0xe7, 0x70, 0x92, 0x87, 0xea, 0xa4, 0xb3, 0x37, 0x0f, 0xe2,
+	0x29, 0xe9, 0x64, 0x31, 0xc0, 0x31, 0x61, 0xd4, 0x3d, 0x20, 0xee, 0x53, 0x0f, 0x65, 0xe1, 0x52,
+	0xdb, 0x6c, 0xb5, 0xb9, 0xd0, 0xf2, 0x4e, 0x2a, 0x67, 0x58, 0x66, 0xae, 0xef, 0x04, 0xf3, 0x1c,
+	0xca, 0x80, 0xd8, 0x71, 0xce, 0xb8, 0xde, 0x28, 0x24, 0x48, 0x65, 0x9f, 0x02, 0x68, 0x6d, 0x97,
+	0x7a, 0x6d, 0xa7, 0x63, 0x78, 0x68, 0x03, 0xe6, 0xfd, 0x6e, 0x97, 0xba, 0x51, 0xd1, 0xff, 0x70,
+	0xc6, 0x40, 0xb3, 0x3c, 0x87, 0xc3, 0x7c, 0x00, 0xec, 0x38, 0x67, 0xd4, 0x8d, 0x4a, 0x8f, 0x03,
+	0xf2, 0xfc, 0xde, 0x32, 0x2c, 0xb1, 0x5e, 0xfd, 0xec, 0x27, 0x70, 0xb5, 0x2f, 0xa6, 0xd8, 0x4d,
+	0xc7, 0xb5, 0x08, 0x33, 0x1d, 0x1b, 0xbd, 0x09, 0x29, 0xe7, 0x24, 0xd8, 0x1d, 0x6a, 0x04, 0x6f,
+	0xc0, 0xa7, 0x13, 0x16, 0xb5, 0xd2, 0x43, 0xf1, 0x10, 0xca, 0x03, 0xf4, 0x6b, 0x7b, 0xe7, 0x9c,
+	0x0c, 0x96, 0x84, 0x63, 0x90, 0xec, 0x67, 0x02, 0x24, 0xe5, 0xa0, 0x21, 0x8a, 0xcd, 0x16, 0xda,
+	0x84, 0x24, 0x6f, 0x0e, 0xdd, 0x34, 0xb8, 0x5c, 0x6a, 0x67, 0x85, 0x73, 0x39, 0x40, 0x31, 0x3c,
+	0xbc, 0x48, 0xc3, 0x5f, 0x68, 0x1d, 0x56, 0x4c, 0x4f, 0x6f, 0x38, 0x76, 0xd3, 0x6c, 0xf9, 0x2e,
+	0x35, 0xb8, 0x54, 0x12, 0x5f, 0x36, 0xbd, 0x62, 0x3f, 0x36, 0x64, 0x46, 0x9c, 0x6d, 0xe6, 0x2e,
+	0x2c, 0x71, 0x29, 0x2f, 0x30, 0xb3, 0x0e, 0xf3, 0x26, 0xa3, 0x96, 0xb7, 0x2a, 0x64, 0xc4, 0xcd,
+	0xe5, 0xb8, 0x93, 0x62, 0xb3, 0x85, 0xc3, 0x5c, 0xf6, 0x37, 0x01, 0x50, 0xc5, 0xf4, 0x58, 0x48,
+	0xc3, 0xd4, 0xeb, 0x3a, 0xb6, 0x47, 0xd1, 0x3a, 0x2c, 0x78, 0x8c, 0x30, 0xdf, 0x8b, 0x96, 0xb1,
+	0xcc, 0xc9, 0x47, 0x3c, 0x84, 0xa3, 0x14, 0xba, 0x0f, 0x0b, 0x2e, 0x25, 0x9e, 0x63, 0x73, 0xf3,
+	0xa9, 0x9d, 0x9b, 0x1c, 0x34, 0x5a, 0x2d, 0x87, 0x39, 0x0a, 0x47, 0x68, 0x74, 0x1b, 0x16, 0xc2,
+	0x23, 0x14, 0x2d, 0x29, 0x35, 0x70, 0x16, 0x18, 0xc7, 0x51, 0x36, 0xbb, 0x0f, 0x0b, 0x21, 0x13,
+	0x5d, 0x05, 0xa9, 0xa6, 0x96, 0xe4, 0x7d, 0x45, 0x95, 0x4b, 0x3a, 0x96, 0x0b, 0x47, 0x55, 0x55,
+	0x9a, 0x43, 0x08, 0x52, 0x35, 0xf5, 0x5d, 0xb5, 0x7a, 0xac, 0xea, 0x25, 0xb9, 0xae, 0x14, 0x65,
+	0x49, 0x08, 0x62, 0x8a, 0xaa, 0xc9, 0x58, 0x2d, 0x54, 0x74, 0x19, 0xe3, 0x2a, 0x96, 0x12, 0xd9,
+	0x17, 0x02, 0xa4, 0xa3, 0xea, 0xd1, 0xbb, 0xe5, 0x2d, 0x82, 0xe9, 0x33, 0x9f, 0x7a, 0x0c, 0x6d,
+	0xc1, 0xb2, 0x41, 0x83, 0x43, 0xac, 0xfb, 0x7e, 0xb4, 0x6f, 0xcb, 0x3b, 0x4b, 0xdc, 0x53, 0xcd,
+	0x37, 0x0d, 0x0c, 0x61, 0x36, 0xf8, 0x8d, 0xb6, 0x60, 0xb1, 0xd1, 0x26, 0x76, 0x8b, 0x7a, 0xe7,
+	0x0e, 0x40, 0xdf, 0x7b, 0x70, 0x00, 0x23, 0x00, 0xda, 0x02, 0xc9, 0xa5, 0x1e, 0x65, 0x3a, 0x73,
+	0x74, 0x83, 0x36, 0x89, 0xdf, 0x61, 0x7c, 0xc1, 0xc9, 0xf2, 0x1c, 0x4e, 0xf1, 0x8c, 0xe6, 0x94,
+	0xc2, 0x78, 0xd0, 0xd2, 0x4e, 0x97, 0x86, 0xbe, 0xb2, 0xbf, 0x0a, 0x70, 0x7d, 0xac, 0xdf, 0x97,
+	0xd9, 0x9c, 0xb7, 0x87, 0x36, 0x67, 0x23, 0x6e, 0x74, 0x5c, 0xd9, 0xa1, 0x5d, 0xca, 0x3e, 0xf9,
+	0x77, 0xde, 0x7e, 0x18, 0xab, 0x17, 0x2a, 0x4a, 0x49, 0x2f, 0x56, 0xd5, 0x7d, 0xe5, 0xb1, 0x24,
+	0x66, 0xbf, 0x16, 0x60, 0x85, 0x5b, 0x39, 0xa0, 0x8c, 0x94, 0x08, 0x23, 0x2f, 0xb5, 0x09, 0x77,
+	0x21, 0xd5, 0x70, 0xac, 0xae, 0x63, 0x07, 0x27, 0x8d, 0xc3, 0x13, 0xc3, 0xf0, 0x95, 0x3e, 0x80,
+	0x33, 0x5e, 0x8d, 0x33, 0x6c, 0x62, 0x51, 0xbe, 0x11, 0x4b, 0x31, 0x98, 0x4a, 0x2c, 0x9a, 0xfd,
+	0x34, 0x01, 0xf3, 0xdc, 0x16, 0x7a, 0x08, 0xa9, 0xf0, 0x20, 0x5b, 0x94, 0x11, 0x83, 0x30, 0x12,
+	0x39, 0x42, 0x83, 0xb7, 0xd8, 0xb3, 0x8e, 0x57, 0x68, 0xef, 0x31, 0x00, 0x9e, 0xbb, 0x03, 0x12,
+	0x53, 0xef, 0x80, 0x07, 0xb0, 0xe4, 0x12, 0xd3, 0xa3, 0x86, 0xde, 0x3f, 0x0a, 0xe9, 0x5c, 0xf8,
+	0x6d, 0xc8, 0xf5, 0xbe, 0x0d, 0x39, 0xad, 0xf7, 0x6d, 0xc0, 0xc9, 0x10, 0xac, 0x79, 0xe8, 0x1d,
+	0x48, 0xf5, 0x0f, 0xbd, 0x6e, 0xda, 0x4d, 0x67, 0xf5, 0x12, 0x67, 0xaf, 0x9d, 0xbf, 0x1b, 0x62,
+	0xd7, 0x21, 0x5e, 0x61, 0xf1, 0x28, 0x5a, 0x83, 0x24, 0x31, 0x22, 0xee, 0x3c, 0x7f, 0x15, 0x8b,
+	0xc4, 0xe0, 0xa9, 0xad, 0x5f, 0x52, 0xd1, 0x85, 0xa6, 0x18, 0x1e, 0x5a, 0x85, 0xab, 0x72, 0x5d,
+	0x56, 0x35, 0x5d, 0x2d, 0x1c, 0xc8, 0x7a, 0xbf, 0x0b, 0xa4, 0x39, 0x74, 0x13, 0xd2, 0x61, 0x46,
+	0xc3, 0x05, 0xf5, 0xa8, 0x28, 0x2b, 0x75, 0x19, 0xeb, 0x87, 0x95, 0xda, 0x63, 0xbd, 0x5a, 0xd3,
+	0x24, 0x03, 0xdd, 0x80, 0xb5, 0x09, 0x79, 0x45, 0x95, 0x28, 0xda, 0x86, 0x3b, 0xa3, 0xe9, 0x7a,
+	0xb5, 0xa2, 0x15, 0x1e, 0xcb, 0x7a, 0x61, 0xaf, 0x5a, 0x97, 0x75, 0xad, 0x8c, 0xe5, 0xa3, 0x72,
+	0xb5, 0x52, 0x92, 0x9a, 0xd3, 0xe1, 0x7b, 0x72, 0xa5, 0x7a, 0x1c, 0x83, 0xb7, 0xd0, 0x3d, 0xd8,
+	0x1e, 0x85, 0x6b, 0xf2, 0xc1, 0xa1, 0x8c, 0x0b, 0x5a, 0x0d, 0x8f, 0x2a, 0xb4, 0x67, 0x53, 0x86,
+	0x55, 0xcc, 0xf1, 0xa6, 0x8a, 0x35, 0x8c, 0x83, 0xd8, 0xb0, 0xc2, 0x07, 0xd3, 0xe1, 0xc3, 0xd5,
+	0x9f, 0xa2, 0x1c, 0x6c, 0x8d, 0xc2, 0xf1, 0x7b, 0xfa, 0x61, 0xf5, 0x58, 0xc6, 0x23, 0xe5, 0x3b,
+	0x33, 0xf0, 0xc3, 0xf5, 0xad, 0xf1, 0x78, 0x6d, 0x52, 0x7d, 0x7b, 0x06, 0x7e, 0xb8, 0xbe, 0x33,
+	0xbe, 0x01, 0xf6, 0x0b, 0x4a, 0xa5, 0x86, 0x65, 0xa9, 0x8b, 0x1e, 0xc0, 0xee, 0x85, 0x1b, 0x40,
+	0xc7, 0x72, 0xb1, 0x5a, 0x97, 0xb1, 0x5c, 0x92, 0x9e, 0x4d, 0x27, 0x0e, 0xd9, 0x88, 0x11, 0x5d,
+	0xf4, 0x08, 0x1e, 0xbc, 0x54, 0x53, 0xc4, 0xc8, 0xde, 0x6c, 0xf2, 0x64, 0x65, 0x36, 0xde, 0xf2,
+	0x84, 0x46, 0x89, 0x11, 0xfd, 0xe9, 0xc4, 0xc9, 0x8a, 0xa7, 0xe8, 0x2d, 0x78, 0xe3, 0xe2, 0xcd,
+	0x13, 0x63, 0x9e, 0xcd, 0x60, 0x4e, 0xd6, 0xfc, 0x70, 0x3c, 0x53, 0x9b, 0xad, 0xf9, 0x7c, 0x06,
+	0x73, 0xb2, 0xe6, 0x47, 0x68, 0x03, 0xd6, 0x27, 0x36, 0x59, 0x0c, 0xf8, 0x31, 0xba, 0x06, 0x28,
+	0x04, 0x1e, 0x1e, 0xd5, 0x06, 0xd7, 0xd4, 0x0f, 0x02, 0xfa, 0x1f, 0x5c, 0x19, 0x4a, 0x28, 0xaa,
+	0xf4, 0xe3, 0x50, 0xbc, 0xd7, 0xb6, 0x3f, 0x09, 0x28, 0x03, 0xd7, 0x47, 0xe2, 0x31, 0xa5, 0x9f,
+	0x63, 0xcc, 0xfd, 0x82, 0xda, 0x67, 0x7e, 0x93, 0x18, 0x58, 0x08, 0xe2, 0x7d, 0x0b, 0x2f, 0x12,
+	0xe7, 0x09, 0x3d, 0x0b, 0xdf, 0x26, 0x06, 0x52, 0xb1, 0x42, 0x31, 0xa9, 0xef, 0x12, 0xe8, 0x0e,
+	0xbc, 0x12, 0x22, 0x8a, 0x87, 0xb5, 0x31, 0xad, 0x5c, 0xc4, 0x8a, 0xa6, 0x14, 0x0b, 0x15, 0xe9,
+	0x73, 0x11, 0xdd, 0x86, 0xff, 0x4f, 0x83, 0xee, 0x17, 0xb4, 0x42, 0x45, 0xfa, 0x42, 0x44, 0xbb,
+	0x90, 0xbb, 0x48, 0xc9, 0x98, 0x8f, 0x2f, 0x45, 0x74, 0x17, 0x5e, 0x9b, 0x59, 0x3c, 0xc6, 0xf8,
+	0x4a, 0x44, 0x69, 0xf8, 0x6f, 0xc8, 0x28, 0x1f, 0x47, 0xe3, 0x83, 0x8e, 0xe5, 0x23, 0x59, 0x93,
+	0x7e, 0x17, 0x51, 0xbe, 0x77, 0xd3, 0x0c, 0x72, 0x53, 0xd6, 0xf6, 0x87, 0x88, 0x5e, 0x87, 0x8d,
+	0xd9, 0x84, 0x70, 0x85, 0x7f, 0x8a, 0xe8, 0x61, 0xaf, 0xdb, 0x2e, 0x52, 0x3e, 0xe6, 0xfa, 0x2f,
+	0x11, 0xdd, 0x87, 0x7b, 0x17, 0x14, 0x8a, 0xf1, 0xfe, 0x16, 0x77, 0xbe, 0x17, 0xe0, 0x86, 0x4a,
+	0x98, 0x79, 0x4a, 0xc3, 0x01, 0xec, 0x80, 0xd8, 0xa4, 0x45, 0x2d, 0x6a, 0xb3, 0xa3, 0xf0, 0xff,
+	0x23, 0xba, 0x0f, 0x30, 0x18, 0x9c, 0x51, 0x38, 0xe4, 0x97, 0x89, 0x6b, 0x9c, 0x11, 0x97, 0x2a,
+	0xa5, 0xf4, 0xb5, 0x09, 0xa3, 0x35, 0x7a, 0x1f, 0xd6, 0x6a, 0x5d, 0x83, 0x30, 0x3a, 0x66, 0xb2,
+	0x43, 0xb7, 0x26, 0xcf, 0x7c, 0x7c, 0xf4, 0x4d, 0x67, 0x66, 0x0d, 0x85, 0x7b, 0x8f, 0x9e, 0x3c,
+	0x6c, 0x99, 0xac, 0xed, 0x9f, 0xe4, 0x1a, 0x8e, 0x95, 0x77, 0xba, 0xd4, 0x6e, 0x38, 0xae, 0x91,
+	0x0f, 0xa7, 0xb1, 0x6d, 0xab, 0xbf, 0x8e, 0x6d, 0xd3, 0x66, 0xd4, 0x6d, 0x92, 0x06, 0xcd, 0x9f,
+	0xee, 0xe6, 0x5b, 0x4e, 0xde, 0xb0, 0xcc, 0x93, 0x05, 0x3e, 0xc5, 0xec, 0xfe, 0x13, 0x00, 0x00,
+	0xff, 0xff, 0x8c, 0x06, 0xe5, 0x08, 0x39, 0x0f, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/go/dmi/hw_management_service.pb.go b/go/dmi/hw_management_service.pb.go
index dded8f3..454c98b 100644
--- a/go/dmi/hw_management_service.pb.go
+++ b/go/dmi/hw_management_service.pb.go
@@ -23,6 +23,316 @@
 // proto package needs to be updated.
 const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 
+type PhysicalInventoryResponse_Reason int32
+
+const (
+	PhysicalInventoryResponse_UNDEFINED_REASON PhysicalInventoryResponse_Reason = 0
+	PhysicalInventoryResponse_UNKNOWN_DEVICE   PhysicalInventoryResponse_Reason = 1
+	PhysicalInventoryResponse_INTERNAL_ERROR   PhysicalInventoryResponse_Reason = 2
+)
+
+var PhysicalInventoryResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+}
+
+var PhysicalInventoryResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON": 0,
+	"UNKNOWN_DEVICE":   1,
+	"INTERNAL_ERROR":   2,
+}
+
+func (x PhysicalInventoryResponse_Reason) String() string {
+	return proto.EnumName(PhysicalInventoryResponse_Reason_name, int32(x))
+}
+
+func (PhysicalInventoryResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{1, 0}
+}
+
+type HWComponentInfoGetResponse_Reason int32
+
+const (
+	HWComponentInfoGetResponse_UNDEFINED_REASON  HWComponentInfoGetResponse_Reason = 0
+	HWComponentInfoGetResponse_UNKNOWN_DEVICE    HWComponentInfoGetResponse_Reason = 1
+	HWComponentInfoGetResponse_UNKNOWN_COMPONENT HWComponentInfoGetResponse_Reason = 2
+	HWComponentInfoGetResponse_INTERNAL_ERROR    HWComponentInfoGetResponse_Reason = 3
+)
+
+var HWComponentInfoGetResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "UNKNOWN_COMPONENT",
+	3: "INTERNAL_ERROR",
+}
+
+var HWComponentInfoGetResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":  0,
+	"UNKNOWN_DEVICE":    1,
+	"UNKNOWN_COMPONENT": 2,
+	"INTERNAL_ERROR":    3,
+}
+
+func (x HWComponentInfoGetResponse_Reason) String() string {
+	return proto.EnumName(HWComponentInfoGetResponse_Reason_name, int32(x))
+}
+
+func (HWComponentInfoGetResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{3, 0}
+}
+
+type HWComponentInfoSetResponse_Reason int32
+
+const (
+	HWComponentInfoSetResponse_UNDEFINED_REASON  HWComponentInfoSetResponse_Reason = 0
+	HWComponentInfoSetResponse_UNKNOWN_DEVICE    HWComponentInfoSetResponse_Reason = 1
+	HWComponentInfoSetResponse_UNKNOWN_COMPONENT HWComponentInfoSetResponse_Reason = 2
+	HWComponentInfoSetResponse_INVALID_PARAMS    HWComponentInfoSetResponse_Reason = 3
+	HWComponentInfoSetResponse_INTERNAL_ERROR    HWComponentInfoSetResponse_Reason = 4
+)
+
+var HWComponentInfoSetResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "UNKNOWN_COMPONENT",
+	3: "INVALID_PARAMS",
+	4: "INTERNAL_ERROR",
+}
+
+var HWComponentInfoSetResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":  0,
+	"UNKNOWN_DEVICE":    1,
+	"UNKNOWN_COMPONENT": 2,
+	"INVALID_PARAMS":    3,
+	"INTERNAL_ERROR":    4,
+}
+
+func (x HWComponentInfoSetResponse_Reason) String() string {
+	return proto.EnumName(HWComponentInfoSetResponse_Reason_name, int32(x))
+}
+
+func (HWComponentInfoSetResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{5, 0}
+}
+
+type StartManagingDeviceResponse_Reason int32
+
+const (
+	StartManagingDeviceResponse_UNDEFINED_REASON StartManagingDeviceResponse_Reason = 0
+	// DEVICE_ALREADY_MANAGED is returned when StartManagingDevice is called again for the same name AFTER a previously
+	// successful StartManagingDevice operation
+	StartManagingDeviceResponse_DEVICE_ALREADY_MANAGED StartManagingDeviceResponse_Reason = 1
+	// OPERATION_ALREADY_IN_PROGRESS is returned when StartManagingDevice is called again for the same name BEFORE
+	// a previous StartManagingDevice operation has completed
+	StartManagingDeviceResponse_OPERATION_ALREADY_IN_PROGRESS StartManagingDeviceResponse_Reason = 2
+	StartManagingDeviceResponse_INVALID_PARAMS                StartManagingDeviceResponse_Reason = 3
+	StartManagingDeviceResponse_INTERNAL_ERROR                StartManagingDeviceResponse_Reason = 4
+)
+
+var StartManagingDeviceResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "DEVICE_ALREADY_MANAGED",
+	2: "OPERATION_ALREADY_IN_PROGRESS",
+	3: "INVALID_PARAMS",
+	4: "INTERNAL_ERROR",
+}
+
+var StartManagingDeviceResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":              0,
+	"DEVICE_ALREADY_MANAGED":        1,
+	"OPERATION_ALREADY_IN_PROGRESS": 2,
+	"INVALID_PARAMS":                3,
+	"INTERNAL_ERROR":                4,
+}
+
+func (x StartManagingDeviceResponse_Reason) String() string {
+	return proto.EnumName(StartManagingDeviceResponse_Reason_name, int32(x))
+}
+
+func (StartManagingDeviceResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{6, 0}
+}
+
+// The only case in which an error is expected is if the name of the
+// device to be stopped is not found
+type StopManagingDeviceResponse_Reason int32
+
+const (
+	StopManagingDeviceResponse_UNDEFINED_REASON StopManagingDeviceResponse_Reason = 0
+	StopManagingDeviceResponse_UNKNOWN_DEVICE   StopManagingDeviceResponse_Reason = 1
+)
+
+var StopManagingDeviceResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+}
+
+var StopManagingDeviceResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON": 0,
+	"UNKNOWN_DEVICE":   1,
+}
+
+func (x StopManagingDeviceResponse_Reason) String() string {
+	return proto.EnumName(StopManagingDeviceResponse_Reason_name, int32(x))
+}
+
+func (StopManagingDeviceResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{8, 0}
+}
+
+type SetRemoteEndpointResponse_Reason int32
+
+const (
+	SetRemoteEndpointResponse_UNDEFINED_REASON                SetRemoteEndpointResponse_Reason = 0
+	SetRemoteEndpointResponse_UNKNOWN_DEVICE                  SetRemoteEndpointResponse_Reason = 1
+	SetRemoteEndpointResponse_INTERNAL_ERROR                  SetRemoteEndpointResponse_Reason = 2
+	SetRemoteEndpointResponse_LOGGING_ENDPOINT_ERROR          SetRemoteEndpointResponse_Reason = 3
+	SetRemoteEndpointResponse_LOGGING_ENDPOINT_PROTOCOL_ERROR SetRemoteEndpointResponse_Reason = 4
+	SetRemoteEndpointResponse_MSGBUS_ENDPOINT_ERROR           SetRemoteEndpointResponse_Reason = 5
+)
+
+var SetRemoteEndpointResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+	3: "LOGGING_ENDPOINT_ERROR",
+	4: "LOGGING_ENDPOINT_PROTOCOL_ERROR",
+	5: "MSGBUS_ENDPOINT_ERROR",
+}
+
+var SetRemoteEndpointResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":                0,
+	"UNKNOWN_DEVICE":                  1,
+	"INTERNAL_ERROR":                  2,
+	"LOGGING_ENDPOINT_ERROR":          3,
+	"LOGGING_ENDPOINT_PROTOCOL_ERROR": 4,
+	"MSGBUS_ENDPOINT_ERROR":           5,
+}
+
+func (x SetRemoteEndpointResponse_Reason) String() string {
+	return proto.EnumName(SetRemoteEndpointResponse_Reason_name, int32(x))
+}
+
+func (SetRemoteEndpointResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{11, 0}
+}
+
+type GetLoggingEndpointResponse_Reason int32
+
+const (
+	GetLoggingEndpointResponse_UNDEFINED_REASON GetLoggingEndpointResponse_Reason = 0
+	GetLoggingEndpointResponse_UNKNOWN_DEVICE   GetLoggingEndpointResponse_Reason = 1
+	GetLoggingEndpointResponse_INTERNAL_ERROR   GetLoggingEndpointResponse_Reason = 2
+)
+
+var GetLoggingEndpointResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+}
+
+var GetLoggingEndpointResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON": 0,
+	"UNKNOWN_DEVICE":   1,
+	"INTERNAL_ERROR":   2,
+}
+
+func (x GetLoggingEndpointResponse_Reason) String() string {
+	return proto.EnumName(GetLoggingEndpointResponse_Reason_name, int32(x))
+}
+
+func (GetLoggingEndpointResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{12, 0}
+}
+
+type GetMsgBusEndpointResponse_Reason int32
+
+const (
+	GetMsgBusEndpointResponse_UNDEFINED_REASON GetMsgBusEndpointResponse_Reason = 0
+	GetMsgBusEndpointResponse_INTERNAL_ERROR   GetMsgBusEndpointResponse_Reason = 1
+)
+
+var GetMsgBusEndpointResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "INTERNAL_ERROR",
+}
+
+var GetMsgBusEndpointResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON": 0,
+	"INTERNAL_ERROR":   1,
+}
+
+func (x GetMsgBusEndpointResponse_Reason) String() string {
+	return proto.EnumName(GetMsgBusEndpointResponse_Reason_name, int32(x))
+}
+
+func (GetMsgBusEndpointResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{14, 0}
+}
+
+type SetLogLevelResponse_Reason int32
+
+const (
+	SetLogLevelResponse_UNDEFINED_REASON   SetLogLevelResponse_Reason = 0
+	SetLogLevelResponse_UNKNOWN_DEVICE     SetLogLevelResponse_Reason = 1
+	SetLogLevelResponse_INTERNAL_ERROR     SetLogLevelResponse_Reason = 2
+	SetLogLevelResponse_UNKNOWN_LOG_ENTITY SetLogLevelResponse_Reason = 3
+)
+
+var SetLogLevelResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+	3: "UNKNOWN_LOG_ENTITY",
+}
+
+var SetLogLevelResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":   0,
+	"UNKNOWN_DEVICE":     1,
+	"INTERNAL_ERROR":     2,
+	"UNKNOWN_LOG_ENTITY": 3,
+}
+
+func (x SetLogLevelResponse_Reason) String() string {
+	return proto.EnumName(SetLogLevelResponse_Reason_name, int32(x))
+}
+
+func (SetLogLevelResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{17, 0}
+}
+
+type GetLogLevelResponse_Reason int32
+
+const (
+	GetLogLevelResponse_UNDEFINED_REASON   GetLogLevelResponse_Reason = 0
+	GetLogLevelResponse_UNKNOWN_DEVICE     GetLogLevelResponse_Reason = 1
+	GetLogLevelResponse_INTERNAL_ERROR     GetLogLevelResponse_Reason = 2
+	GetLogLevelResponse_UNKNOWN_LOG_ENTITY GetLogLevelResponse_Reason = 3
+)
+
+var GetLogLevelResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+	3: "UNKNOWN_LOG_ENTITY",
+}
+
+var GetLogLevelResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":   0,
+	"UNKNOWN_DEVICE":     1,
+	"INTERNAL_ERROR":     2,
+	"UNKNOWN_LOG_ENTITY": 3,
+}
+
+func (x GetLogLevelResponse_Reason) String() string {
+	return proto.EnumName(GetLogLevelResponse_Reason_name, int32(x))
+}
+
+func (GetLogLevelResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_eae902e73066286d, []int{19, 0}
+}
+
 type PhysicalInventoryRequest struct {
 	DeviceUuid           *Uuid    `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
 	XXX_NoUnkeyedLiteral struct{} `json:"-"`
@@ -63,12 +373,12 @@
 }
 
 type PhysicalInventoryResponse 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"`
-	Inventory            *Hardware `protobuf:"bytes,3,opt,name=inventory,proto3" json:"inventory,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
-	XXX_unrecognized     []byte    `json:"-"`
-	XXX_sizecache        int32     `json:"-"`
+	Status               Status                           `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               PhysicalInventoryResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.PhysicalInventoryResponse_Reason" json:"reason,omitempty"`
+	Inventory            *Hardware                        `protobuf:"bytes,3,opt,name=inventory,proto3" json:"inventory,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
+	XXX_unrecognized     []byte                           `json:"-"`
+	XXX_sizecache        int32                            `json:"-"`
 }
 
 func (m *PhysicalInventoryResponse) Reset()         { *m = PhysicalInventoryResponse{} }
@@ -103,11 +413,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *PhysicalInventoryResponse) GetReason() Reason {
+func (m *PhysicalInventoryResponse) GetReason() PhysicalInventoryResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return PhysicalInventoryResponse_UNDEFINED_REASON
 }
 
 func (m *PhysicalInventoryResponse) GetInventory() *Hardware {
@@ -173,12 +483,12 @@
 }
 
 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:"-"`
+	Status               Status                            `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               HWComponentInfoGetResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.HWComponentInfoGetResponse_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{} }
@@ -213,11 +523,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *HWComponentInfoGetResponse) GetReason() Reason {
+func (m *HWComponentInfoGetResponse) GetReason() HWComponentInfoGetResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return HWComponentInfoGetResponse_UNDEFINED_REASON
 }
 
 func (m *HWComponentInfoGetResponse) GetComponent() *Component {
@@ -291,11 +601,11 @@
 }
 
 type HWComponentInfoSetResponse struct {
-	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Status               Status                            `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               HWComponentInfoSetResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.HWComponentInfoSetResponse_Reason" json:"reason,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
+	XXX_unrecognized     []byte                            `json:"-"`
+	XXX_sizecache        int32                             `json:"-"`
 }
 
 func (m *HWComponentInfoSetResponse) Reset()         { *m = HWComponentInfoSetResponse{} }
@@ -330,20 +640,20 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *HWComponentInfoSetResponse) GetReason() Reason {
+func (m *HWComponentInfoSetResponse) GetReason() HWComponentInfoSetResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return HWComponentInfoSetResponse_UNDEFINED_REASON
 }
 
 type StartManagingDeviceResponse 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"`
-	DeviceUuid           *Uuid    `protobuf:"bytes,3,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Status               Status                             `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               StartManagingDeviceResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.StartManagingDeviceResponse_Reason" json:"reason,omitempty"`
+	DeviceUuid           *Uuid                              `protobuf:"bytes,3,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                           `json:"-"`
+	XXX_unrecognized     []byte                             `json:"-"`
+	XXX_sizecache        int32                              `json:"-"`
 }
 
 func (m *StartManagingDeviceResponse) Reset()         { *m = StartManagingDeviceResponse{} }
@@ -378,11 +688,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *StartManagingDeviceResponse) GetReason() Reason {
+func (m *StartManagingDeviceResponse) GetReason() StartManagingDeviceResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return StartManagingDeviceResponse_UNDEFINED_REASON
 }
 
 func (m *StartManagingDeviceResponse) GetDeviceUuid() *Uuid {
@@ -432,11 +742,11 @@
 }
 
 type StopManagingDeviceResponse struct {
-	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Status               Status                            `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               StopManagingDeviceResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.StopManagingDeviceResponse_Reason" json:"reason,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
+	XXX_unrecognized     []byte                            `json:"-"`
+	XXX_sizecache        int32                             `json:"-"`
 }
 
 func (m *StopManagingDeviceResponse) Reset()         { *m = StopManagingDeviceResponse{} }
@@ -471,11 +781,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *StopManagingDeviceResponse) GetReason() Reason {
+func (m *StopManagingDeviceResponse) GetReason() StopManagingDeviceResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return StopManagingDeviceResponse_UNDEFINED_REASON
 }
 
 type ManagedDevicesResponse struct {
@@ -573,11 +883,11 @@
 }
 
 type SetRemoteEndpointResponse struct {
-	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Status               Status                           `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               SetRemoteEndpointResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.SetRemoteEndpointResponse_Reason" json:"reason,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
+	XXX_unrecognized     []byte                           `json:"-"`
+	XXX_sizecache        int32                            `json:"-"`
 }
 
 func (m *SetRemoteEndpointResponse) Reset()         { *m = SetRemoteEndpointResponse{} }
@@ -612,21 +922,21 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *SetRemoteEndpointResponse) GetReason() Reason {
+func (m *SetRemoteEndpointResponse) GetReason() SetRemoteEndpointResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return SetRemoteEndpointResponse_UNDEFINED_REASON
 }
 
 type GetLoggingEndpointResponse struct {
-	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	LoggingEndpoint      string   `protobuf:"bytes,3,opt,name=logging_endpoint,json=loggingEndpoint,proto3" json:"logging_endpoint,omitempty"`
-	LoggingProtocol      string   `protobuf:"bytes,4,opt,name=logging_protocol,json=loggingProtocol,proto3" json:"logging_protocol,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Status               Status                            `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               GetLoggingEndpointResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.GetLoggingEndpointResponse_Reason" json:"reason,omitempty"`
+	LoggingEndpoint      string                            `protobuf:"bytes,3,opt,name=logging_endpoint,json=loggingEndpoint,proto3" json:"logging_endpoint,omitempty"`
+	LoggingProtocol      string                            `protobuf:"bytes,4,opt,name=logging_protocol,json=loggingProtocol,proto3" json:"logging_protocol,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                          `json:"-"`
+	XXX_unrecognized     []byte                            `json:"-"`
+	XXX_sizecache        int32                             `json:"-"`
 }
 
 func (m *GetLoggingEndpointResponse) Reset()         { *m = GetLoggingEndpointResponse{} }
@@ -661,11 +971,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *GetLoggingEndpointResponse) GetReason() Reason {
+func (m *GetLoggingEndpointResponse) GetReason() GetLoggingEndpointResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return GetLoggingEndpointResponse_UNDEFINED_REASON
 }
 
 func (m *GetLoggingEndpointResponse) GetLoggingEndpoint() string {
@@ -722,12 +1032,12 @@
 }
 
 type GetMsgBusEndpointResponse struct {
-	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	MsgbusEndpoint       string   `protobuf:"bytes,3,opt,name=msgbus_endpoint,json=msgbusEndpoint,proto3" json:"msgbus_endpoint,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Status               Status                           `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               GetMsgBusEndpointResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.GetMsgBusEndpointResponse_Reason" json:"reason,omitempty"`
+	MsgbusEndpoint       string                           `protobuf:"bytes,3,opt,name=msgbus_endpoint,json=msgbusEndpoint,proto3" json:"msgbus_endpoint,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
+	XXX_unrecognized     []byte                           `json:"-"`
+	XXX_sizecache        int32                            `json:"-"`
 }
 
 func (m *GetMsgBusEndpointResponse) Reset()         { *m = GetMsgBusEndpointResponse{} }
@@ -762,11 +1072,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *GetMsgBusEndpointResponse) GetReason() Reason {
+func (m *GetMsgBusEndpointResponse) GetReason() GetMsgBusEndpointResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return GetMsgBusEndpointResponse_UNDEFINED_REASON
 }
 
 func (m *GetMsgBusEndpointResponse) GetMsgbusEndpoint() string {
@@ -871,12 +1181,12 @@
 }
 
 type SetLogLevelResponse struct {
-	DeviceUuid           *Uuid    `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
-	Status               Status   `protobuf:"varint,2,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason   `protobuf:"varint,3,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	DeviceUuid           *Uuid                      `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+	Status               Status                     `protobuf:"varint,2,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               SetLogLevelResponse_Reason `protobuf:"varint,3,opt,name=reason,proto3,enum=dmi.SetLogLevelResponse_Reason" json:"reason,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
+	XXX_unrecognized     []byte                     `json:"-"`
+	XXX_sizecache        int32                      `json:"-"`
 }
 
 func (m *SetLogLevelResponse) Reset()         { *m = SetLogLevelResponse{} }
@@ -918,11 +1228,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *SetLogLevelResponse) GetReason() Reason {
+func (m *SetLogLevelResponse) GetReason() SetLogLevelResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return SetLogLevelResponse_UNDEFINED_REASON
 }
 
 type GetLogLevelRequest struct {
@@ -973,13 +1283,13 @@
 }
 
 type GetLogLevelResponse struct {
-	DeviceUuid           *Uuid               `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
-	LogLevels            []*EntitiesLogLevel `protobuf:"bytes,2,rep,name=logLevels,proto3" json:"logLevels,omitempty"`
-	Status               Status              `protobuf:"varint,3,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason              `protobuf:"varint,4,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	DeviceUuid           *Uuid                      `protobuf:"bytes,1,opt,name=device_uuid,json=deviceUuid,proto3" json:"device_uuid,omitempty"`
+	LogLevels            []*EntitiesLogLevel        `protobuf:"bytes,2,rep,name=logLevels,proto3" json:"logLevels,omitempty"`
+	Status               Status                     `protobuf:"varint,3,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               GetLogLevelResponse_Reason `protobuf:"varint,4,opt,name=reason,proto3,enum=dmi.GetLogLevelResponse_Reason" json:"reason,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
+	XXX_unrecognized     []byte                     `json:"-"`
+	XXX_sizecache        int32                      `json:"-"`
 }
 
 func (m *GetLogLevelResponse) Reset()         { *m = GetLogLevelResponse{} }
@@ -1028,11 +1338,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *GetLogLevelResponse) GetReason() Reason {
+func (m *GetLogLevelResponse) GetReason() GetLogLevelResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return GetLogLevelResponse_UNDEFINED_REASON
 }
 
 type GetLoggableEntitiesRequest struct {
@@ -1075,6 +1385,16 @@
 }
 
 func init() {
+	proto.RegisterEnum("dmi.PhysicalInventoryResponse_Reason", PhysicalInventoryResponse_Reason_name, PhysicalInventoryResponse_Reason_value)
+	proto.RegisterEnum("dmi.HWComponentInfoGetResponse_Reason", HWComponentInfoGetResponse_Reason_name, HWComponentInfoGetResponse_Reason_value)
+	proto.RegisterEnum("dmi.HWComponentInfoSetResponse_Reason", HWComponentInfoSetResponse_Reason_name, HWComponentInfoSetResponse_Reason_value)
+	proto.RegisterEnum("dmi.StartManagingDeviceResponse_Reason", StartManagingDeviceResponse_Reason_name, StartManagingDeviceResponse_Reason_value)
+	proto.RegisterEnum("dmi.StopManagingDeviceResponse_Reason", StopManagingDeviceResponse_Reason_name, StopManagingDeviceResponse_Reason_value)
+	proto.RegisterEnum("dmi.SetRemoteEndpointResponse_Reason", SetRemoteEndpointResponse_Reason_name, SetRemoteEndpointResponse_Reason_value)
+	proto.RegisterEnum("dmi.GetLoggingEndpointResponse_Reason", GetLoggingEndpointResponse_Reason_name, GetLoggingEndpointResponse_Reason_value)
+	proto.RegisterEnum("dmi.GetMsgBusEndpointResponse_Reason", GetMsgBusEndpointResponse_Reason_name, GetMsgBusEndpointResponse_Reason_value)
+	proto.RegisterEnum("dmi.SetLogLevelResponse_Reason", SetLogLevelResponse_Reason_name, SetLogLevelResponse_Reason_value)
+	proto.RegisterEnum("dmi.GetLogLevelResponse_Reason", GetLogLevelResponse_Reason_name, GetLogLevelResponse_Reason_value)
 	proto.RegisterType((*PhysicalInventoryRequest)(nil), "dmi.PhysicalInventoryRequest")
 	proto.RegisterType((*PhysicalInventoryResponse)(nil), "dmi.PhysicalInventoryResponse")
 	proto.RegisterType((*HWComponentInfoGetRequest)(nil), "dmi.HWComponentInfoGetRequest")
@@ -1101,69 +1421,89 @@
 func init() { proto.RegisterFile("dmi/hw_management_service.proto", fileDescriptor_eae902e73066286d) }
 
 var fileDescriptor_eae902e73066286d = []byte{
-	// 988 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x51, 0x6f, 0xe3, 0x44,
-	0x10, 0x96, 0x9b, 0xea, 0xae, 0x99, 0x70, 0xed, 0x75, 0x0b, 0x47, 0xe2, 0x8a, 0x5e, 0x65, 0x84,
-	0xb8, 0x03, 0x2e, 0x39, 0xa5, 0x4f, 0x88, 0x17, 0x74, 0x77, 0xbd, 0xa4, 0x22, 0x3d, 0x55, 0x36,
-	0xa7, 0x0a, 0x84, 0x54, 0x39, 0xf1, 0xc4, 0x5d, 0xc9, 0xde, 0x0d, 0xf1, 0x3a, 0xa7, 0xfe, 0x06,
-	0x24, 0x1e, 0x80, 0x57, 0x24, 0xfe, 0x01, 0x7f, 0x80, 0x07, 0x7e, 0x04, 0x3f, 0x08, 0x79, 0x77,
-	0xed, 0xd8, 0x89, 0xdd, 0x0b, 0xbd, 0x54, 0xe2, 0x2d, 0xf6, 0x7e, 0xfb, 0xcd, 0xcc, 0x37, 0xe3,
-	0x99, 0x09, 0x3c, 0xf4, 0x42, 0xda, 0xb9, 0x7c, 0x73, 0x11, 0xba, 0xcc, 0xf5, 0x31, 0x44, 0x26,
-	0x2e, 0x22, 0x9c, 0xce, 0xe8, 0x08, 0xdb, 0x93, 0x29, 0x17, 0x9c, 0xd4, 0xbc, 0x90, 0x9a, 0xbb,
-	0x09, 0x6a, 0xc4, 0xc3, 0x90, 0xb3, 0x48, 0xbd, 0x37, 0xdf, 0x53, 0x17, 0xf5, 0xd3, 0xbe, 0xcf,
-	0xb9, 0x1f, 0x60, 0x47, 0x3e, 0x0d, 0xe3, 0x71, 0x07, 0xc3, 0x89, 0xb8, 0x52, 0x87, 0xd6, 0x4b,
-	0x68, 0x9e, 0x5d, 0x5e, 0x45, 0x74, 0xe4, 0x06, 0x27, 0x6c, 0x86, 0x4c, 0xf0, 0xe9, 0x95, 0x8d,
-	0x3f, 0xc6, 0x18, 0x09, 0xf2, 0x19, 0x34, 0x3c, 0x4c, 0xcc, 0x5d, 0xc4, 0x31, 0xf5, 0x9a, 0xc6,
-	0xa1, 0xf1, 0xa8, 0xd1, 0xad, 0xb7, 0xbd, 0x90, 0xb6, 0x5f, 0xc7, 0xd4, 0xb3, 0x41, 0x9d, 0x26,
-	0xbf, 0xad, 0x5f, 0x0c, 0x68, 0x95, 0x10, 0x45, 0x13, 0xce, 0x22, 0x24, 0x1f, 0xc3, 0x9d, 0x48,
-	0xb8, 0x22, 0x8e, 0x24, 0xc9, 0x76, 0xb7, 0x21, 0x49, 0x1c, 0xf9, 0xca, 0xd6, 0x47, 0x09, 0x68,
-	0x8a, 0x6e, 0xc4, 0x59, 0x73, 0x23, 0x07, 0xb2, 0xe5, 0x2b, 0x5b, 0x1f, 0x91, 0xcf, 0xa1, 0x4e,
-	0x53, 0xfa, 0x66, 0x4d, 0x7a, 0x74, 0x4f, 0xe2, 0xfa, 0xee, 0xd4, 0x7b, 0xe3, 0x4e, 0xd1, 0x9e,
-	0x9f, 0x5b, 0x7f, 0x18, 0xd0, 0xea, 0x9f, 0x3f, 0xe7, 0xe1, 0x84, 0x33, 0x64, 0xe2, 0x84, 0x8d,
-	0x79, 0x0f, 0xc5, 0x0d, 0xc2, 0x23, 0x4f, 0x61, 0x7b, 0x94, 0xd2, 0x28, 0xf8, 0xc6, 0x22, 0xfc,
-	0x5e, 0x06, 0x90, 0x37, 0x3e, 0xc9, 0xdf, 0x60, 0x6e, 0x88, 0xd2, 0xdb, 0x7a, 0x0e, 0xf6, 0xca,
-	0x0d, 0xd1, 0xfa, 0xcd, 0x00, 0xb3, 0xcc, 0xc5, 0xb5, 0x0b, 0xf7, 0x05, 0xd4, 0x33, 0xcb, 0x5a,
-	0xb8, 0x6d, 0x89, 0xcb, 0x6c, 0xdb, 0x73, 0x80, 0xf5, 0xcf, 0xb2, 0x72, 0xce, 0xff, 0x4b, 0x39,
-	0xd2, 0x85, 0xbb, 0xa3, 0x4b, 0x97, 0xf9, 0x18, 0x35, 0x37, 0x25, 0x63, 0x53, 0x32, 0x9e, 0x72,
-	0x8f, 0x8e, 0xa9, 0x3b, 0x0c, 0x70, 0x1e, 0x58, 0x0a, 0xb4, 0xc6, 0x4b, 0x62, 0x3b, 0xb7, 0x21,
-	0xb6, 0xf5, 0xab, 0x01, 0xfb, 0x8e, 0x70, 0xa7, 0xe2, 0x34, 0xf9, 0x74, 0x29, 0xf3, 0x5f, 0x48,
-	0x41, 0x6e, 0x21, 0xad, 0x0b, 0xa9, 0xa8, 0x5d, 0xf7, 0x8d, 0x76, 0xa0, 0xe5, 0x08, 0x3e, 0x59,
-	0xf4, 0x49, 0xe5, 0x94, 0xc0, 0xa6, 0xd4, 0xda, 0x90, 0x5a, 0xcb, 0xdf, 0x89, 0x5c, 0x65, 0x17,
-	0xd6, 0x2e, 0xd7, 0x00, 0x1e, 0x48, 0x1b, 0xe8, 0x29, 0x13, 0x51, 0x66, 0xa3, 0x0b, 0x77, 0x55,
-	0x00, 0x89, 0x91, 0xda, 0xf5, 0x49, 0xd6, 0x40, 0xeb, 0x77, 0x03, 0x5a, 0x0e, 0x8a, 0x01, 0xf7,
-	0x13, 0xa7, 0x8f, 0x99, 0x37, 0xe1, 0x94, 0xdd, 0xa8, 0x76, 0x1f, 0xc3, 0xfd, 0x40, 0xb1, 0x5c,
-	0xa0, 0xa6, 0x91, 0x61, 0xd4, 0xed, 0x9d, 0xa0, 0xc8, 0x9e, 0x87, 0xca, 0xc6, 0x3a, 0xe2, 0x81,
-	0x2e, 0xdb, 0x14, 0x7a, 0xa6, 0x5f, 0x5b, 0x28, 0xdd, 0xb3, 0x31, 0xe4, 0x02, 0xe7, 0xde, 0xad,
-	0x5d, 0xd4, 0xbf, 0x0c, 0x30, 0x7b, 0x25, 0x32, 0xac, 0xbd, 0x04, 0xcb, 0x54, 0xaa, 0xad, 0xae,
-	0xd2, 0x66, 0xb9, 0x4a, 0xcf, 0xa1, 0xe9, 0xa0, 0x38, 0x8d, 0xfc, 0x67, 0x71, 0xb4, 0x98, 0xc3,
-	0x4f, 0x61, 0x27, 0x8c, 0xfc, 0x61, 0x1c, 0xcd, 0x0d, 0xaa, 0xb2, 0xdd, 0x56, 0xaf, 0x53, 0xbc,
-	0xf5, 0xb3, 0x01, 0xad, 0xde, 0x32, 0xcb, 0xda, 0x25, 0x28, 0x71, 0xa8, 0x56, 0xea, 0xd0, 0x77,
-	0x70, 0xff, 0x98, 0x09, 0x2a, 0x28, 0x46, 0x03, 0xee, 0x0f, 0x70, 0x86, 0x01, 0x79, 0x0c, 0x5b,
-	0x81, 0xfe, 0xad, 0x1d, 0x51, 0x13, 0x2d, 0x05, 0xd8, 0xd9, 0x31, 0x31, 0x61, 0x0b, 0xf5, 0xf5,
-	0xe6, 0xc6, 0x61, 0xed, 0x51, 0xdd, 0xce, 0x9e, 0xad, 0x18, 0x88, 0xaa, 0x7a, 0x75, 0xe9, 0x06,
-	0xe5, 0x7e, 0x04, 0xf5, 0x20, 0xd9, 0x14, 0x66, 0x18, 0x28, 0xfa, 0x46, 0xf7, 0x03, 0x89, 0x5c,
-	0x74, 0xd9, 0x9e, 0xe3, 0xac, 0x9f, 0x0c, 0xd8, 0x2b, 0xd8, 0xd5, 0xe2, 0xfe, 0x17, 0xc3, 0xf3,
-	0x44, 0x6c, 0xac, 0x92, 0x88, 0x5a, 0x75, 0xd1, 0xff, 0x00, 0xa4, 0xf7, 0x6e, 0x22, 0x5c, 0x27,
-	0xf1, 0xdf, 0x06, 0xec, 0xf5, 0xde, 0x31, 0x56, 0x25, 0xf2, 0x60, 0x45, 0x91, 0x15, 0x2e, 0x27,
-	0x50, 0x6d, 0x15, 0x81, 0x36, 0xab, 0x05, 0xea, 0x67, 0x4d, 0x21, 0xe9, 0x9e, 0xa9, 0xcd, 0x1b,
-	0x08, 0xd5, 0xfd, 0x73, 0x0b, 0x5a, 0xaf, 0x5c, 0x41, 0x67, 0xd8, 0x3f, 0x3f, 0xcd, 0x36, 0x54,
-	0x47, 0x2d, 0xa8, 0xc4, 0x81, 0xbd, 0x92, 0x01, 0x48, 0x2a, 0xdb, 0xb7, 0x79, 0x98, 0x86, 0x54,
-	0x35, 0x34, 0x9f, 0x1a, 0xe4, 0x35, 0x90, 0xe5, 0x79, 0x44, 0x0e, 0xf4, 0xcd, 0x8a, 0xc9, 0x66,
-	0x3e, 0xac, 0x3c, 0xd7, 0xe9, 0xeb, 0xc3, 0x6e, 0xd2, 0x24, 0x0a, 0x13, 0x88, 0x3c, 0x68, 0xab,
-	0xb5, 0xb9, 0x9d, 0xae, 0xcd, 0xed, 0xe3, 0x64, 0x6d, 0x36, 0xf7, 0x55, 0x04, 0xe5, 0xe3, 0xea,
-	0x1c, 0xde, 0xef, 0xa1, 0x58, 0xda, 0x83, 0xc9, 0x47, 0xf2, 0x52, 0xd5, 0xa2, 0x6d, 0x1e, 0x54,
-	0x1d, 0x67, 0x91, 0x9f, 0xcb, 0xba, 0x5e, 0xd8, 0x5d, 0x74, 0xe4, 0x95, 0x1b, 0xae, 0x8e, 0xbc,
-	0x7a, 0xbd, 0xd4, 0x92, 0xae, 0x48, 0xec, 0xbc, 0x85, 0x38, 0xbf, 0x4a, 0x7d, 0x9b, 0x36, 0xa3,
-	0x42, 0xfb, 0xd7, 0x99, 0xaa, 0x9a, 0xcd, 0x66, 0x76, 0x5e, 0x31, 0x1c, 0x5f, 0xa6, 0x5f, 0x77,
-	0x81, 0x75, 0xa7, 0xb0, 0xff, 0x9f, 0xbc, 0xd0, 0xde, 0x5d, 0x33, 0xfb, 0x6c, 0xd8, 0x5d, 0x9a,
-	0x2d, 0x3a, 0x47, 0x55, 0x33, 0xe7, 0xad, 0xbe, 0x7d, 0xa3, 0x8a, 0xa8, 0xc8, 0x59, 0x55, 0x44,
-	0x07, 0xa9, 0x87, 0x15, 0x93, 0xe9, 0x2c, 0xed, 0x33, 0x85, 0xaf, 0x94, 0x14, 0x02, 0x2b, 0xf9,
-	0x7e, 0xcd, 0x66, 0x0e, 0x50, 0x6c, 0x51, 0x5f, 0x43, 0x23, 0xd7, 0xa5, 0xc9, 0x87, 0xb9, 0x4c,
-	0xe4, 0x5b, 0xa5, 0x66, 0x70, 0xca, 0x19, 0x7a, 0x4b, 0x0c, 0xbd, 0x2a, 0x86, 0x12, 0x1f, 0x9e,
-	0x7d, 0xf5, 0xfd, 0x97, 0x3e, 0x15, 0x97, 0xf1, 0xb0, 0x3d, 0xe2, 0x61, 0x87, 0x4f, 0x90, 0x8d,
-	0xf8, 0xd4, 0xeb, 0xa8, 0x9e, 0xf2, 0x64, 0xfe, 0x2f, 0xf7, 0x09, 0x65, 0x02, 0xa7, 0x63, 0x77,
-	0x84, 0x9d, 0xd9, 0x51, 0xc7, 0xe7, 0x1d, 0x2f, 0xa4, 0xc3, 0x3b, 0x52, 0xc2, 0xa3, 0x7f, 0x03,
-	0x00, 0x00, 0xff, 0xff, 0x3a, 0x27, 0xf3, 0x9c, 0x15, 0x0f, 0x00, 0x00,
+	// 1298 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x5f, 0x6f, 0xdb, 0x54,
+	0x14, 0xc7, 0x71, 0xe9, 0x96, 0x53, 0xd6, 0xa5, 0x77, 0x5b, 0x49, 0x3c, 0xad, 0x1d, 0x9e, 0xc6,
+	0x36, 0x60, 0xc9, 0x94, 0x3d, 0x20, 0x84, 0xf8, 0x93, 0x35, 0xae, 0x6b, 0x2d, 0xb1, 0xa3, 0xeb,
+	0x74, 0xd5, 0x10, 0x60, 0xb9, 0xf1, 0x6d, 0x6a, 0x29, 0xb6, 0xb3, 0xd8, 0xc9, 0xb4, 0x0f, 0xc0,
+	0x2b, 0xdf, 0x00, 0x81, 0x10, 0xef, 0xbc, 0x80, 0xf8, 0x22, 0x3c, 0xf2, 0x31, 0x78, 0x07, 0xf9,
+	0x5e, 0x3b, 0x7f, 0x1c, 0x3b, 0x69, 0x9b, 0x4a, 0xf0, 0x16, 0xfb, 0x9e, 0xfb, 0xf3, 0x39, 0xe7,
+	0x77, 0xee, 0xef, 0x9e, 0x13, 0xd8, 0xb5, 0x1c, 0xbb, 0x72, 0xfa, 0xda, 0x70, 0x4c, 0xd7, 0xec,
+	0x12, 0x87, 0xb8, 0x81, 0xe1, 0x93, 0xc1, 0xc8, 0xee, 0x90, 0x72, 0x7f, 0xe0, 0x05, 0x1e, 0xe2,
+	0x2d, 0xc7, 0x16, 0xb6, 0x42, 0xab, 0x8e, 0xe7, 0x38, 0x9e, 0xeb, 0xb3, 0xf7, 0xc2, 0x3b, 0x6c,
+	0x63, 0xf4, 0x74, 0xbb, 0xeb, 0x79, 0xdd, 0x1e, 0xa9, 0xd0, 0xa7, 0xe3, 0xe1, 0x49, 0x85, 0x38,
+	0xfd, 0xe0, 0x0d, 0x5b, 0x14, 0xf7, 0xa1, 0xd8, 0x3a, 0x7d, 0xe3, 0xdb, 0x1d, 0xb3, 0xa7, 0xb8,
+	0x23, 0xe2, 0x06, 0xde, 0xe0, 0x0d, 0x26, 0xaf, 0x86, 0xc4, 0x0f, 0xd0, 0x07, 0xb0, 0x61, 0x91,
+	0xf0, 0x73, 0xc6, 0x70, 0x68, 0x5b, 0x45, 0xee, 0x2e, 0xf7, 0x70, 0xa3, 0x9a, 0x2f, 0x5b, 0x8e,
+	0x5d, 0x3e, 0x1c, 0xda, 0x16, 0x06, 0xb6, 0x1a, 0xfe, 0x16, 0xff, 0xe6, 0xa0, 0x94, 0x02, 0xe4,
+	0xf7, 0x3d, 0xd7, 0x27, 0xe8, 0x1e, 0xac, 0xfb, 0x81, 0x19, 0x0c, 0x7d, 0x0a, 0xb2, 0x59, 0xdd,
+	0xa0, 0x20, 0x3a, 0x7d, 0x85, 0xa3, 0x25, 0xf4, 0x19, 0xac, 0x0f, 0x88, 0xe9, 0x7b, 0x6e, 0x31,
+	0x47, 0x8d, 0xee, 0x53, 0xa3, 0x4c, 0xd0, 0x32, 0xa6, 0xc6, 0x38, 0xda, 0x84, 0x3e, 0x84, 0xbc,
+	0x1d, 0xdb, 0x14, 0x79, 0xea, 0xeb, 0x35, 0x8a, 0x70, 0x60, 0x0e, 0xac, 0xd7, 0xe6, 0x80, 0xe0,
+	0xc9, 0xba, 0xb8, 0x0f, 0xeb, 0x6c, 0x3b, 0xba, 0x09, 0x85, 0x43, 0xb5, 0x2e, 0xed, 0x2b, 0xaa,
+	0x54, 0x37, 0xb0, 0x54, 0xd3, 0x35, 0xb5, 0xf0, 0x16, 0x42, 0xb0, 0x79, 0xa8, 0x3e, 0x57, 0xb5,
+	0x23, 0xd5, 0xa8, 0x4b, 0x2f, 0x94, 0x3d, 0xa9, 0xc0, 0x85, 0xef, 0x14, 0xb5, 0x2d, 0x61, 0xb5,
+	0xd6, 0x30, 0x24, 0x8c, 0x35, 0x5c, 0xc8, 0x89, 0x3f, 0x71, 0x50, 0x3a, 0x38, 0xda, 0xf3, 0x9c,
+	0xbe, 0xe7, 0x12, 0x37, 0x50, 0xdc, 0x13, 0x4f, 0x26, 0xc1, 0x05, 0x12, 0x88, 0x9e, 0xc0, 0x66,
+	0x27, 0x86, 0x61, 0xe6, 0xb9, 0xa4, 0xf9, 0xb5, 0xb1, 0x01, 0xdd, 0x71, 0x7f, 0x7a, 0x87, 0x6b,
+	0x3a, 0x84, 0x46, 0x9d, 0x9f, 0x32, 0x53, 0x4d, 0x87, 0x88, 0xdf, 0xe7, 0x40, 0x48, 0x73, 0xf1,
+	0x3c, 0xd4, 0x7c, 0x9e, 0xa0, 0xe6, 0x7d, 0x96, 0xd8, 0x4c, 0xd4, 0x24, 0x37, 0x1f, 0x41, 0x7e,
+	0xec, 0x54, 0xc4, 0xcd, 0x26, 0x85, 0x18, 0x03, 0xe0, 0x89, 0x81, 0xf8, 0xcd, 0x05, 0xc8, 0xb9,
+	0x05, 0x5b, 0xf1, 0xbb, 0x3d, 0xad, 0xd9, 0xd2, 0x54, 0x49, 0x6d, 0x17, 0x72, 0x29, 0x9c, 0xf1,
+	0xe2, 0x9f, 0xf3, 0x9c, 0xe9, 0xff, 0x2f, 0xce, 0x50, 0x15, 0xae, 0x74, 0x4e, 0x4d, 0xb7, 0x4b,
+	0xfc, 0xe2, 0x1a, 0x45, 0x2c, 0x52, 0xc4, 0xa6, 0x67, 0xd9, 0x27, 0xb6, 0x79, 0xdc, 0x23, 0x93,
+	0xbc, 0xc5, 0x86, 0xe1, 0x09, 0x14, 0xd2, 0xc2, 0xba, 0x74, 0x9e, 0xf5, 0x4c, 0x9e, 0xc5, 0x57,
+	0x97, 0xcc, 0xdc, 0x8b, 0x5a, 0x43, 0xa9, 0x1b, 0xad, 0x1a, 0xae, 0x35, 0xf5, 0x02, 0x9f, 0xc2,
+	0xe6, 0x9a, 0xf8, 0x47, 0x0e, 0x6e, 0xeb, 0x81, 0x39, 0x08, 0x9a, 0xa1, 0x4a, 0xda, 0x6e, 0xb7,
+	0x4e, 0xf9, 0x39, 0x5f, 0xdc, 0x5f, 0x24, 0xe2, 0x7e, 0x10, 0x1b, 0x65, 0xc1, 0x26, 0x0b, 0x3c,
+	0x51, 0x35, 0xfc, 0x22, 0xa9, 0xfc, 0x8e, 0x5b, 0x92, 0x25, 0x01, 0xb6, 0x59, 0x76, 0x8c, 0x5a,
+	0x03, 0x4b, 0xb5, 0xfa, 0x4b, 0xa3, 0x59, 0x53, 0x6b, 0xb2, 0x54, 0x2f, 0x70, 0xe8, 0x3d, 0xb8,
+	0xa3, 0xb5, 0x24, 0x5c, 0x6b, 0x2b, 0x9a, 0x3a, 0x5e, 0x56, 0x54, 0xa3, 0x85, 0x35, 0x19, 0x4b,
+	0xba, 0x7e, 0x8e, 0xcc, 0x55, 0xa0, 0xa4, 0x07, 0x5e, 0x3f, 0x19, 0x20, 0x3b, 0x06, 0x08, 0xd6,
+	0x68, 0x79, 0x72, 0xb4, 0x3c, 0xe9, 0x6f, 0xf1, 0x77, 0x0e, 0x84, 0xb4, 0x1d, 0xab, 0x57, 0x58,
+	0x36, 0x6a, 0xb2, 0xc2, 0xaa, 0xe7, 0xaf, 0x30, 0xb1, 0x01, 0xdb, 0x14, 0x9c, 0x58, 0x0c, 0xdb,
+	0x1f, 0xbb, 0x5c, 0x85, 0x2b, 0x8c, 0x98, 0xd0, 0x67, 0x7e, 0xf1, 0x39, 0x8b, 0x0c, 0xc5, 0x1f,
+	0x38, 0x28, 0xe9, 0x24, 0x68, 0x78, 0xdd, 0xd0, 0x5b, 0xc9, 0xb5, 0xfa, 0x9e, 0xed, 0x5e, 0x48,
+	0x3e, 0x1e, 0x41, 0xa1, 0xc7, 0x50, 0x0c, 0x12, 0xc1, 0xd0, 0xac, 0xe4, 0xf1, 0xf5, 0xde, 0x2c,
+	0xfa, 0xb4, 0x29, 0xbd, 0xb7, 0x3b, 0x5e, 0x2f, 0x52, 0x8e, 0xd8, 0xb4, 0x15, 0xbd, 0x16, 0x7f,
+	0xc9, 0x51, 0xff, 0x30, 0x71, 0xbc, 0x80, 0x4c, 0xdc, 0x5b, 0xfd, 0x26, 0xce, 0x04, 0x4d, 0x72,
+	0xf4, 0x33, 0x77, 0x39, 0xb7, 0x6b, 0x78, 0x10, 0x1a, 0x9a, 0x2c, 0x2b, 0xaa, 0x6c, 0x48, 0x6a,
+	0xbd, 0xa5, 0x29, 0x6a, 0x3b, 0x56, 0x71, 0x74, 0x0f, 0x76, 0xe7, 0xd6, 0x5a, 0x58, 0x6b, 0x6b,
+	0x7b, 0xda, 0xb8, 0xc4, 0x51, 0x09, 0x6e, 0x35, 0x75, 0xf9, 0xd9, 0xa1, 0x9e, 0xdc, 0xff, 0xb6,
+	0xf8, 0x63, 0x0e, 0x04, 0x39, 0x85, 0xc6, 0xd5, 0x8b, 0x39, 0x1b, 0x35, 0xa9, 0x1a, 0x69, 0x05,
+	0xc0, 0x9f, 0xbd, 0x00, 0xd6, 0xd2, 0x0b, 0xe0, 0xb2, 0x7a, 0x9b, 0x3d, 0x28, 0xea, 0x24, 0x68,
+	0xfa, 0xdd, 0x67, 0x43, 0x3f, 0x59, 0xe6, 0x0f, 0xe0, 0xba, 0xe3, 0x77, 0x8f, 0x87, 0xfe, 0xc4,
+	0x71, 0xa6, 0x14, 0x9b, 0xec, 0x75, 0x6c, 0x2f, 0xfe, 0xc5, 0x41, 0x49, 0x9e, 0x47, 0x59, 0xbd,
+	0x1a, 0x33, 0x41, 0x93, 0x49, 0x4e, 0x71, 0x95, 0x4f, 0x75, 0xf5, 0x0c, 0xd2, 0x92, 0xc8, 0x11,
+	0x27, 0xbe, 0x84, 0x82, 0xe4, 0x06, 0x76, 0x60, 0x13, 0xbf, 0xe1, 0x75, 0x1b, 0x64, 0x44, 0x7a,
+	0xe8, 0x11, 0x5c, 0xed, 0x45, 0xbf, 0xa3, 0xb0, 0x58, 0x1f, 0x1a, 0x1b, 0xe0, 0xf1, 0x32, 0x12,
+	0xe0, 0x2a, 0x89, 0xb6, 0x17, 0x73, 0x77, 0xf9, 0x87, 0x79, 0x3c, 0x7e, 0x16, 0x87, 0x80, 0x98,
+	0xcc, 0xb0, 0x4d, 0x17, 0xd0, 0x97, 0xa7, 0x90, 0xef, 0x85, 0x9d, 0xff, 0x88, 0xf4, 0x18, 0xfc,
+	0x46, 0xf5, 0x16, 0xb5, 0x4c, 0xba, 0x8c, 0x27, 0x76, 0xe2, 0x3f, 0x1c, 0xdc, 0x98, 0xf9, 0x6e,
+	0x44, 0xd5, 0x79, 0x3e, 0x3c, 0xa1, 0x35, 0x97, 0x4d, 0xeb, 0xc7, 0x63, 0x5a, 0x79, 0x6a, 0xb4,
+	0x1b, 0x8b, 0x4c, 0xf2, 0xd3, 0x49, 0x79, 0xf9, 0xf6, 0x92, 0xd4, 0x65, 0x1b, 0x50, 0x6c, 0xd7,
+	0xd0, 0x42, 0x15, 0x69, 0x2b, 0xed, 0x97, 0x05, 0x5e, 0xfc, 0x1a, 0x90, 0xbc, 0x5a, 0xe2, 0x17,
+	0xd1, 0xfa, 0x5b, 0x0e, 0x6e, 0xc8, 0x2b, 0xe6, 0x97, 0x11, 0xdb, 0x38, 0x23, 0xb1, 0xcc, 0x6e,
+	0x8a, 0x14, 0xfe, 0x2c, 0xa4, 0xac, 0x4d, 0x91, 0x22, 0xff, 0xf7, 0xa4, 0x1c, 0x8c, 0xd5, 0x3a,
+	0xbc, 0x96, 0xe3, 0x38, 0x2f, 0x40, 0x4e, 0xf5, 0xd7, 0xab, 0x50, 0x52, 0xcd, 0xc0, 0x1e, 0x91,
+	0x83, 0xa3, 0xe6, 0x78, 0xb2, 0xd6, 0xd9, 0x60, 0x8d, 0x74, 0xb8, 0x91, 0xd2, 0xf6, 0xa1, 0xcc,
+	0xbe, 0x40, 0xb8, 0xbb, 0xac, 0x55, 0x7c, 0xc2, 0xa1, 0x43, 0x40, 0xf3, 0x1d, 0x0e, 0xda, 0xc9,
+	0x6c, 0x7d, 0x68, 0x50, 0xc2, 0xee, 0x92, 0xd6, 0x08, 0x1d, 0xc0, 0x56, 0xa8, 0x82, 0x33, 0xad,
+	0x0d, 0xda, 0x2e, 0xb3, 0x71, 0xbf, 0x1c, 0x8f, 0xfb, 0x65, 0x29, 0x1c, 0xf7, 0x85, 0xdb, 0x2c,
+	0x82, 0xf4, 0x3e, 0xe8, 0x08, 0x6e, 0xca, 0x24, 0x98, 0x1b, 0xb5, 0xd1, 0x9d, 0xac, 0x11, 0x9c,
+	0x79, 0xb8, 0xb3, 0x78, 0x42, 0x7f, 0xc2, 0xa1, 0x23, 0x7a, 0x96, 0x12, 0x03, 0x44, 0x14, 0x79,
+	0xe6, 0xdc, 0x1c, 0x45, 0x9e, 0x3d, 0x5e, 0x46, 0x29, 0x3d, 0x23, 0xb0, 0xbe, 0x04, 0x78, 0x7a,
+	0x4a, 0x6a, 0xc7, 0xa2, 0x3b, 0x73, 0xf9, 0xee, 0x4c, 0x49, 0x53, 0x4a, 0xd3, 0x27, 0xec, 0x2c,
+	0xee, 0x8f, 0xd0, 0x7e, 0xac, 0x28, 0x33, 0xa8, 0xd7, 0x67, 0xfe, 0x9d, 0x50, 0xea, 0xc2, 0xee,
+	0x92, 0xf6, 0x01, 0x61, 0xd8, 0x9a, 0xbb, 0x91, 0x23, 0x8e, 0xb2, 0x6e, 0xea, 0xa5, 0xbe, 0x3d,
+	0x67, 0x45, 0x34, 0x8b, 0x99, 0x55, 0x44, 0x3b, 0x8b, 0xaf, 0x5e, 0xd4, 0x8a, 0xb5, 0x6d, 0xe6,
+	0x94, 0xa2, 0x99, 0xc0, 0x52, 0xce, 0xaf, 0x50, 0xcc, 0x92, 0x19, 0xf4, 0x25, 0x6c, 0x4c, 0x5d,
+	0x09, 0xe8, 0xdd, 0xf9, 0x4b, 0x62, 0x1a, 0x41, 0x4f, 0x47, 0x90, 0xe7, 0x10, 0xe4, 0x2c, 0x84,
+	0x14, 0x1f, 0x9e, 0x7d, 0xfa, 0xd5, 0x27, 0x5d, 0x3b, 0x38, 0x1d, 0x1e, 0x97, 0x3b, 0x9e, 0x53,
+	0xf1, 0xfa, 0xc4, 0xed, 0x78, 0x03, 0xab, 0xc2, 0x34, 0xe5, 0xf1, 0xe4, 0xdf, 0xb9, 0xc7, 0xb6,
+	0x1b, 0x90, 0xc1, 0x89, 0xd9, 0x21, 0x95, 0xd1, 0xd3, 0x4a, 0xd7, 0xab, 0x58, 0x8e, 0x7d, 0xbc,
+	0x4e, 0x53, 0xf8, 0xf4, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd9, 0x06, 0x92, 0xce, 0xcd, 0x13,
+	0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1189,6 +1529,8 @@
 	// uri = IP Address of the Hardware;
 	StartManagingDevice(ctx context.Context, in *ModifiableComponent, opts ...grpc.CallOption) (NativeHWManagementService_StartManagingDeviceClient, error)
 	// Stop management of a device and clean up any context and caches for that device
+	// This rpc can be called at any time, even before the StartManagingDevice operation
+	// has completed, and should be able to cleanup.
 	StopManagingDevice(ctx context.Context, in *StopManagingDeviceRequest, opts ...grpc.CallOption) (*StopManagingDeviceResponse, error)
 	// Returns an object containing a list of devices managed by this entity
 	GetManagedDevices(ctx context.Context, in *empty.Empty, opts ...grpc.CallOption) (*ManagedDevicesResponse, error)
@@ -1426,6 +1768,8 @@
 	// uri = IP Address of the Hardware;
 	StartManagingDevice(*ModifiableComponent, NativeHWManagementService_StartManagingDeviceServer) error
 	// Stop management of a device and clean up any context and caches for that device
+	// This rpc can be called at any time, even before the StartManagingDevice operation
+	// has completed, and should be able to cleanup.
 	StopManagingDevice(context.Context, *StopManagingDeviceRequest) (*StopManagingDeviceResponse, error)
 	// Returns an object containing a list of devices managed by this entity
 	GetManagedDevices(context.Context, *empty.Empty) (*ManagedDevicesResponse, error)
diff --git a/go/dmi/hw_metrics_mgmt_service.pb.go b/go/dmi/hw_metrics_mgmt_service.pb.go
index 5d41dc2..fa48653 100644
--- a/go/dmi/hw_metrics_mgmt_service.pb.go
+++ b/go/dmi/hw_metrics_mgmt_service.pb.go
@@ -120,6 +120,102 @@
 	return fileDescriptor_6b6c2f1384c11ff5, []int{0}
 }
 
+type ListMetricsResponse_Reason int32
+
+const (
+	ListMetricsResponse_UNDEFINED_REASON ListMetricsResponse_Reason = 0
+	ListMetricsResponse_UNKNOWN_DEVICE   ListMetricsResponse_Reason = 1
+	ListMetricsResponse_INTERNAL_ERROR   ListMetricsResponse_Reason = 2
+)
+
+var ListMetricsResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+}
+
+var ListMetricsResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON": 0,
+	"UNKNOWN_DEVICE":   1,
+	"INTERNAL_ERROR":   2,
+}
+
+func (x ListMetricsResponse_Reason) String() string {
+	return proto.EnumName(ListMetricsResponse_Reason_name, int32(x))
+}
+
+func (ListMetricsResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_6b6c2f1384c11ff5, []int{2, 0}
+}
+
+type MetricsConfigurationResponse_Reason int32
+
+const (
+	MetricsConfigurationResponse_UNDEFINED_REASON          MetricsConfigurationResponse_Reason = 0
+	MetricsConfigurationResponse_UNKNOWN_DEVICE            MetricsConfigurationResponse_Reason = 1
+	MetricsConfigurationResponse_INTERNAL_ERROR            MetricsConfigurationResponse_Reason = 2
+	MetricsConfigurationResponse_POLL_INTERVAL_UNSUPPORTED MetricsConfigurationResponse_Reason = 3
+	MetricsConfigurationResponse_INVALID_METRIC            MetricsConfigurationResponse_Reason = 4
+)
+
+var MetricsConfigurationResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+	3: "POLL_INTERVAL_UNSUPPORTED",
+	4: "INVALID_METRIC",
+}
+
+var MetricsConfigurationResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":          0,
+	"UNKNOWN_DEVICE":            1,
+	"INTERNAL_ERROR":            2,
+	"POLL_INTERVAL_UNSUPPORTED": 3,
+	"INVALID_METRIC":            4,
+}
+
+func (x MetricsConfigurationResponse_Reason) String() string {
+	return proto.EnumName(MetricsConfigurationResponse_Reason_name, int32(x))
+}
+
+func (MetricsConfigurationResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_6b6c2f1384c11ff5, []int{4, 0}
+}
+
+type GetMetricResponse_Reason int32
+
+const (
+	GetMetricResponse_UNDEFINED_REASON  GetMetricResponse_Reason = 0
+	GetMetricResponse_UNKNOWN_DEVICE    GetMetricResponse_Reason = 1
+	GetMetricResponse_UNKNOWN_COMPONENT GetMetricResponse_Reason = 2
+	GetMetricResponse_INTERNAL_ERROR    GetMetricResponse_Reason = 3
+	GetMetricResponse_INVALID_METRIC    GetMetricResponse_Reason = 4
+)
+
+var GetMetricResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "UNKNOWN_COMPONENT",
+	3: "INTERNAL_ERROR",
+	4: "INVALID_METRIC",
+}
+
+var GetMetricResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":  0,
+	"UNKNOWN_DEVICE":    1,
+	"UNKNOWN_COMPONENT": 2,
+	"INTERNAL_ERROR":    3,
+	"INVALID_METRIC":    4,
+}
+
+func (x GetMetricResponse_Reason) String() string {
+	return proto.EnumName(GetMetricResponse_Reason_name, int32(x))
+}
+
+func (GetMetricResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_6b6c2f1384c11ff5, []int{8, 0}
+}
+
 type MetricConfig struct {
 	MetricId MetricNames `protobuf:"varint,1,opt,name=metric_id,json=metricId,proto3,enum=dmi.MetricNames" json:"metric_id,omitempty"`
 	// Whether the device manager is collecting and reporting this metric or not
@@ -219,12 +315,12 @@
 }
 
 type ListMetricsResponse 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"`
-	Metrics              *MetricsConfig `protobuf:"bytes,3,opt,name=metrics,proto3" json:"metrics,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
-	XXX_unrecognized     []byte         `json:"-"`
-	XXX_sizecache        int32          `json:"-"`
+	Status               Status                     `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               ListMetricsResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.ListMetricsResponse_Reason" json:"reason,omitempty"`
+	Metrics              *MetricsConfig             `protobuf:"bytes,3,opt,name=metrics,proto3" json:"metrics,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
+	XXX_unrecognized     []byte                     `json:"-"`
+	XXX_sizecache        int32                      `json:"-"`
 }
 
 func (m *ListMetricsResponse) Reset()         { *m = ListMetricsResponse{} }
@@ -259,11 +355,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *ListMetricsResponse) GetReason() Reason {
+func (m *ListMetricsResponse) GetReason() ListMetricsResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return ListMetricsResponse_UNDEFINED_REASON
 }
 
 func (m *ListMetricsResponse) GetMetrics() *MetricsConfig {
@@ -362,11 +458,11 @@
 }
 
 type MetricsConfigurationResponse struct {
-	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Status               Status                              `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               MetricsConfigurationResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.MetricsConfigurationResponse_Reason" json:"reason,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                            `json:"-"`
+	XXX_unrecognized     []byte                              `json:"-"`
+	XXX_sizecache        int32                               `json:"-"`
 }
 
 func (m *MetricsConfigurationResponse) Reset()         { *m = MetricsConfigurationResponse{} }
@@ -401,11 +497,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *MetricsConfigurationResponse) GetReason() Reason {
+func (m *MetricsConfigurationResponse) GetReason() MetricsConfigurationResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return MetricsConfigurationResponse_UNDEFINED_REASON
 }
 
 type MetricMetaData struct {
@@ -570,12 +666,12 @@
 }
 
 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:"-"`
+	Status               Status                   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               GetMetricResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.GetMetricResponse_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{} }
@@ -610,11 +706,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *GetMetricResponse) GetReason() Reason {
+func (m *GetMetricResponse) GetReason() GetMetricResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return GetMetricResponse_UNDEFINED_REASON
 }
 
 func (m *GetMetricResponse) GetMetric() *Metric {
@@ -626,6 +722,9 @@
 
 func init() {
 	proto.RegisterEnum("dmi.MetricNames", MetricNames_name, MetricNames_value)
+	proto.RegisterEnum("dmi.ListMetricsResponse_Reason", ListMetricsResponse_Reason_name, ListMetricsResponse_Reason_value)
+	proto.RegisterEnum("dmi.MetricsConfigurationResponse_Reason", MetricsConfigurationResponse_Reason_name, MetricsConfigurationResponse_Reason_value)
+	proto.RegisterEnum("dmi.GetMetricResponse_Reason", GetMetricResponse_Reason_name, GetMetricResponse_Reason_value)
 	proto.RegisterType((*MetricConfig)(nil), "dmi.MetricConfig")
 	proto.RegisterType((*MetricsConfig)(nil), "dmi.MetricsConfig")
 	proto.RegisterType((*ListMetricsResponse)(nil), "dmi.ListMetricsResponse")
@@ -640,70 +739,79 @@
 func init() { proto.RegisterFile("dmi/hw_metrics_mgmt_service.proto", fileDescriptor_6b6c2f1384c11ff5) }
 
 var fileDescriptor_6b6c2f1384c11ff5 = []byte{
-	// 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,
+	// 1147 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x4b, 0x6f, 0xdb, 0x46,
+	0x10, 0x36, 0xa9, 0x44, 0x89, 0x57, 0xb6, 0x42, 0xaf, 0xf3, 0x50, 0x94, 0xa4, 0x91, 0x69, 0xb4,
+	0x10, 0xd2, 0x46, 0x0a, 0x14, 0x14, 0x7d, 0xe5, 0x50, 0x86, 0x5c, 0xdb, 0x44, 0x24, 0x4a, 0x58,
+	0x51, 0x72, 0xd2, 0xcb, 0x62, 0x23, 0x6e, 0x14, 0x02, 0x26, 0xa9, 0x90, 0x94, 0x83, 0xde, 0x7a,
+	0xcb, 0xb5, 0x0f, 0xf4, 0x27, 0xf4, 0xd6, 0xf7, 0xaf, 0xe8, 0xf3, 0xde, 0xfe, 0x84, 0xde, 0xdb,
+	0x02, 0xbd, 0x15, 0xdc, 0xa5, 0xd4, 0xb5, 0x22, 0x37, 0x70, 0xd1, 0x1b, 0xf9, 0xcd, 0x37, 0x33,
+	0xdf, 0xcc, 0xec, 0x0b, 0x6c, 0x79, 0x81, 0xdf, 0x7c, 0xfc, 0x94, 0x04, 0x2c, 0x8d, 0xfd, 0x51,
+	0x42, 0x82, 0x71, 0x90, 0x92, 0x84, 0xc5, 0x87, 0xfe, 0x88, 0x35, 0x26, 0x71, 0x94, 0x46, 0xb0,
+	0xe0, 0x05, 0x7e, 0x75, 0x23, 0xe3, 0x8d, 0xa2, 0x20, 0x88, 0xc2, 0x44, 0xe0, 0xd5, 0x35, 0xe1,
+	0x2a, 0xfe, 0xf4, 0x67, 0x0a, 0x58, 0xeb, 0xf0, 0x20, 0x66, 0x14, 0x3e, 0xf2, 0xc7, 0xf0, 0x26,
+	0x58, 0x15, 0x41, 0x89, 0xef, 0x55, 0x94, 0x9a, 0x52, 0x2f, 0xb7, 0xb4, 0x86, 0x17, 0xf8, 0x0d,
+	0xc1, 0x72, 0x68, 0xc0, 0x12, 0x7c, 0x56, 0x50, 0x6c, 0x0f, 0x6e, 0x83, 0x75, 0x3f, 0x21, 0x23,
+	0xee, 0x3b, 0x8d, 0x99, 0x57, 0x51, 0x6b, 0x4a, 0xfd, 0x2c, 0x5e, 0xf3, 0x13, 0x73, 0x8e, 0x65,
+	0xa4, 0x49, 0x74, 0x70, 0x40, 0xfc, 0x30, 0x65, 0xf1, 0x21, 0x3d, 0xa8, 0x14, 0x6a, 0x4a, 0x7d,
+	0x1d, 0xaf, 0x65, 0xa0, 0x9d, 0x63, 0xfa, 0x1d, 0xb0, 0x2e, 0x52, 0xe4, 0x9e, 0xf0, 0x55, 0x70,
+	0x26, 0x2f, 0xaf, 0xa2, 0xd4, 0x0a, 0xf5, 0x52, 0x6b, 0x43, 0xd2, 0x21, 0x38, 0x78, 0xc6, 0xd0,
+	0x7f, 0x53, 0xc0, 0x66, 0xdb, 0x4f, 0xd2, 0x3c, 0x04, 0x66, 0xc9, 0x24, 0x0a, 0x13, 0x06, 0xb7,
+	0x41, 0x31, 0x49, 0x69, 0x3a, 0x4d, 0xf2, 0x5a, 0x4a, 0x3c, 0x46, 0x9f, 0x43, 0x38, 0x37, 0xc1,
+	0x37, 0x40, 0x31, 0x66, 0x34, 0x89, 0x42, 0xae, 0xbe, 0xdc, 0xba, 0xce, 0x49, 0x4b, 0xc2, 0x35,
+	0x30, 0xa7, 0xe1, 0x9c, 0x0e, 0x5f, 0xfb, 0x47, 0x62, 0x56, 0x52, 0xa9, 0x05, 0x25, 0x89, 0xc9,
+	0xa2, 0xc6, 0x1d, 0x50, 0x14, 0xfe, 0xf0, 0x3c, 0xd0, 0x06, 0x8e, 0x85, 0x76, 0x6c, 0x07, 0x59,
+	0x04, 0x23, 0xa3, 0xdf, 0x75, 0xb4, 0x15, 0x08, 0x41, 0x79, 0xe0, 0xdc, 0x73, 0xba, 0xfb, 0x0e,
+	0xb1, 0xd0, 0xd0, 0x36, 0x91, 0xa6, 0x64, 0x98, 0xed, 0xb8, 0x08, 0x3b, 0x46, 0x9b, 0x20, 0x8c,
+	0xbb, 0x58, 0x53, 0xf5, 0x6f, 0x15, 0x70, 0xe5, 0x48, 0x8a, 0x69, 0x4c, 0x53, 0x3f, 0x0a, 0x31,
+	0x7b, 0x32, 0x65, 0x49, 0x0a, 0x6f, 0x80, 0x92, 0xc7, 0xb2, 0x95, 0x40, 0xa6, 0xd3, 0x7c, 0x88,
+	0xa5, 0xd6, 0x2a, 0x57, 0x36, 0x98, 0xfa, 0x1e, 0x06, 0xc2, 0x9a, 0x7d, 0xc3, 0x06, 0x38, 0x33,
+	0x7a, 0x4c, 0xc3, 0x31, 0x4b, 0x78, 0xed, 0x4b, 0x2b, 0xd8, 0x5b, 0xc1, 0x33, 0x12, 0xbc, 0x01,
+	0xb4, 0x98, 0x25, 0x2c, 0x25, 0x69, 0x44, 0x3c, 0xf6, 0x88, 0x4e, 0x0f, 0x52, 0x5e, 0xfa, 0xd9,
+	0xbd, 0x15, 0x5c, 0xe6, 0x16, 0x37, 0xb2, 0x04, 0x7e, 0xb7, 0x04, 0x56, 0xa3, 0x09, 0x13, 0xda,
+	0xf4, 0x0f, 0x54, 0x70, 0x75, 0xb9, 0xe8, 0x93, 0x4c, 0xea, 0xdd, 0x85, 0x49, 0xd5, 0x9f, 0x57,
+	0xbb, 0x10, 0x77, 0x61, 0x64, 0xfa, 0xfb, 0xff, 0xcf, 0x10, 0xe0, 0x35, 0x70, 0xb9, 0xd7, 0x6d,
+	0xb7, 0x09, 0x37, 0x0c, 0x8d, 0x36, 0x19, 0x38, 0xfd, 0x41, 0xaf, 0xd7, 0xc5, 0x2e, 0xb2, 0xb4,
+	0x82, 0x70, 0x19, 0x1a, 0x6d, 0xdb, 0x22, 0x1d, 0xe4, 0x62, 0xdb, 0xd4, 0x4e, 0xe9, 0x9f, 0x2a,
+	0xa0, 0x2c, 0xa4, 0x76, 0x58, 0x4a, 0x2d, 0x9a, 0xd2, 0x13, 0x8d, 0xea, 0x16, 0x28, 0x8f, 0xa2,
+	0x60, 0x12, 0x85, 0x2c, 0x4c, 0x05, 0x5d, 0x5d, 0xa4, 0xaf, 0xcf, 0x09, 0xdc, 0xe3, 0x65, 0xd9,
+	0x23, 0xa4, 0x01, 0xe3, 0xa3, 0x5a, 0x95, 0x68, 0xd9, 0x76, 0xd6, 0x3f, 0x53, 0x40, 0x51, 0xe8,
+	0x3a, 0xe9, 0xee, 0xbf, 0x03, 0xce, 0xe5, 0xf4, 0x80, 0xa5, 0xd4, 0xa3, 0x29, 0xcd, 0x35, 0x6d,
+	0x4a, 0x4e, 0xb3, 0x62, 0x71, 0x39, 0x98, 0xff, 0x67, 0x54, 0xd8, 0x00, 0xa7, 0x0f, 0xe9, 0xc1,
+	0x94, 0xe5, 0x7b, 0xa7, 0xc2, 0x7d, 0xcc, 0x99, 0xb4, 0x3e, 0x0b, 0x93, 0x28, 0xe6, 0x8e, 0x82,
+	0xa6, 0x27, 0x40, 0xdb, 0x65, 0xf9, 0x96, 0x9c, 0xad, 0xf5, 0x5b, 0x5c, 0x30, 0x25, 0x3c, 0xb7,
+	0x72, 0x7c, 0xee, 0x4c, 0xb3, 0x68, 0xf9, 0x91, 0x12, 0xd5, 0x17, 0x95, 0xa8, 0x3f, 0x53, 0xc1,
+	0x86, 0x94, 0xf5, 0x24, 0x8b, 0xf5, 0xf5, 0x85, 0xc5, 0x7a, 0x8d, 0x93, 0x9e, 0x0b, 0xb6, 0x78,
+	0xa8, 0x6c, 0x83, 0xa2, 0xc8, 0x9e, 0xf7, 0xa5, 0x24, 0xa9, 0xc3, 0xb9, 0x49, 0x7f, 0xf2, 0x1f,
+	0x96, 0xf1, 0x05, 0xb0, 0x31, 0xc3, 0xcc, 0x6e, 0xa7, 0xd7, 0x75, 0x90, 0xe3, 0x6a, 0xea, 0x92,
+	0xd5, 0xbd, 0x74, 0xf9, 0xde, 0xf8, 0xf5, 0x34, 0x28, 0x49, 0x3d, 0x82, 0x97, 0xc1, 0x05, 0x61,
+	0x23, 0x8e, 0xd1, 0x41, 0x64, 0x2e, 0x42, 0x5b, 0xc9, 0x34, 0xe5, 0xa6, 0x1d, 0xc3, 0x21, 0xfd,
+	0x1e, 0x42, 0x96, 0xa6, 0xc0, 0x4d, 0x70, 0x2e, 0x47, 0xcd, 0xde, 0x80, 0xb8, 0xa8, 0xd3, 0xd3,
+	0x3c, 0x78, 0x1d, 0x5c, 0x91, 0xc0, 0x41, 0xdf, 0xd8, 0x45, 0xa4, 0x87, 0xb0, 0x89, 0x1c, 0xd7,
+	0xd8, 0x45, 0x1a, 0x83, 0x57, 0xc1, 0xa5, 0x9c, 0xe0, 0x62, 0xc3, 0xe9, 0x9b, 0xc8, 0x1e, 0x22,
+	0x2c, 0xbc, 0xbf, 0x53, 0xe0, 0x75, 0x50, 0x5d, 0x62, 0x1d, 0x76, 0xdb, 0xdc, 0xfb, 0x7b, 0xe5,
+	0x18, 0xf7, 0xbb, 0xb6, 0xd1, 0xd7, 0x7e, 0x50, 0x60, 0x6d, 0x9e, 0x5d, 0xb6, 0xe2, 0xfb, 0xa4,
+	0xd7, 0xdd, 0x47, 0x58, 0xfb, 0xf1, 0x38, 0x86, 0x3b, 0x63, 0xfc, 0xa4, 0x40, 0x1d, 0x5c, 0x5b,
+	0xc2, 0xd8, 0x37, 0x86, 0xa8, 0x8d, 0x9c, 0x5d, 0x77, 0x4f, 0xfb, 0x39, 0x6b, 0xfd, 0xac, 0x21,
+	0x96, 0xdd, 0xbf, 0x27, 0xd4, 0x7f, 0xae, 0xc2, 0xcb, 0xe0, 0xbc, 0x0c, 0x9b, 0x46, 0xcf, 0x30,
+	0x6d, 0xf7, 0x81, 0xf6, 0x85, 0x0a, 0x2f, 0x82, 0x0d, 0xd9, 0xc4, 0x1b, 0xa3, 0x7d, 0xa9, 0xc2,
+	0x2d, 0x70, 0xf5, 0x39, 0x5c, 0x6e, 0xd8, 0x57, 0x2a, 0x7c, 0x05, 0x6c, 0xc9, 0x14, 0x8c, 0x0c,
+	0x8b, 0xec, 0x63, 0xdb, 0x3d, 0xc2, 0xfb, 0x5a, 0x85, 0x75, 0xb0, 0x2d, 0xf3, 0x76, 0x8c, 0x41,
+	0xdb, 0x7d, 0x40, 0x4c, 0xd4, 0x6e, 0xf7, 0x65, 0xe6, 0x37, 0x2a, 0x3c, 0x3f, 0x9f, 0x1c, 0x36,
+	0x3a, 0x42, 0xfd, 0x87, 0x05, 0x58, 0x01, 0x9b, 0x12, 0x3a, 0x17, 0xff, 0x51, 0x41, 0x2a, 0x37,
+	0xb3, 0x08, 0xed, 0x1f, 0x17, 0xa4, 0x5e, 0xce, 0x61, 0x39, 0xd1, 0x27, 0xb2, 0x23, 0x6f, 0x2f,
+	0xe9, 0x18, 0xf7, 0xb5, 0xdf, 0x0b, 0xf0, 0x12, 0x80, 0x47, 0x60, 0x11, 0xf1, 0x8f, 0x82, 0xd4,
+	0x7b, 0xc9, 0x20, 0xc7, 0xfc, 0x53, 0xe6, 0xd8, 0x8e, 0x83, 0x30, 0xe9, 0x0f, 0x30, 0xee, 0x0e,
+	0x1c, 0xcb, 0x76, 0x76, 0x45, 0x29, 0xbf, 0x9c, 0x6a, 0xfd, 0xa5, 0x80, 0x97, 0x1c, 0x9a, 0xfa,
+	0x87, 0x2c, 0xbf, 0x4b, 0x3a, 0x34, 0xa4, 0x63, 0x16, 0xf0, 0x73, 0x88, 0xbf, 0xaa, 0xe0, 0x9b,
+	0xa0, 0x24, 0xbd, 0x08, 0xe0, 0x39, 0xbe, 0x2b, 0xf7, 0x68, 0xec, 0x3d, 0xa5, 0x31, 0xb3, 0xad,
+	0x6a, 0xe5, 0xb8, 0x47, 0x03, 0xa4, 0xa0, 0x3a, 0x98, 0x78, 0x34, 0x65, 0xcb, 0xee, 0x29, 0x58,
+	0xfb, 0x97, 0x2b, 0x8c, 0x9f, 0x71, 0xd5, 0xad, 0x17, 0x5e, 0x72, 0xf0, 0x6d, 0xb0, 0x3a, 0x3f,
+	0x57, 0xe0, 0x85, 0xc5, 0x73, 0x46, 0x84, 0xb9, 0xb8, 0xfc, 0xf8, 0xb9, 0xfb, 0xce, 0x7b, 0x6f,
+	0x8d, 0xfd, 0xf4, 0xf1, 0xf4, 0x61, 0x63, 0x14, 0x05, 0xcd, 0x68, 0xc2, 0xc2, 0x51, 0x14, 0x7b,
+	0x4d, 0x71, 0xf3, 0xdc, 0x0c, 0xe6, 0x8d, 0xb8, 0xc9, 0x9f, 0x6f, 0x8f, 0xe8, 0x88, 0x35, 0x0f,
+	0x6f, 0x37, 0xc7, 0x51, 0xd3, 0x0b, 0xfc, 0x87, 0x45, 0xfe, 0x8c, 0xbc, 0xfd, 0x77, 0x00, 0x00,
+	0x00, 0xff, 0xff, 0xbd, 0x20, 0xee, 0x31, 0x91, 0x0a, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
diff --git a/go/dmi/sw_image.pb.go b/go/dmi/sw_image.pb.go
index c62b587..28f6c50 100644
--- a/go/dmi/sw_image.pb.go
+++ b/go/dmi/sw_image.pb.go
@@ -69,12 +69,17 @@
 type ImageStatus_Reason int32
 
 const (
-	ImageStatus_UNDEFINED_REASON      ImageStatus_Reason = 0
-	ImageStatus_ERROR_IN_REQUEST      ImageStatus_Reason = 1
-	ImageStatus_INTERNAL_ERROR        ImageStatus_Reason = 2
-	ImageStatus_DEVICE_IN_WRONG_STATE ImageStatus_Reason = 3
-	ImageStatus_INVALID_IMAGE         ImageStatus_Reason = 4
-	ImageStatus_WRONG_IMAGE_CHECKSUM  ImageStatus_Reason = 5
+	ImageStatus_UNDEFINED_REASON              ImageStatus_Reason = 0
+	ImageStatus_ERROR_IN_REQUEST              ImageStatus_Reason = 1
+	ImageStatus_INTERNAL_ERROR                ImageStatus_Reason = 2
+	ImageStatus_DEVICE_IN_WRONG_STATE         ImageStatus_Reason = 3
+	ImageStatus_INVALID_IMAGE                 ImageStatus_Reason = 4
+	ImageStatus_WRONG_IMAGE_CHECKSUM          ImageStatus_Reason = 5
+	ImageStatus_OPERATION_ALREADY_IN_PROGRESS ImageStatus_Reason = 6
+	ImageStatus_UNKNOWN_DEVICE                ImageStatus_Reason = 7
+	// The DM implementations should have retry mechanisms (timeout values dependant on specific implementations)
+	// and even after those if the operation cannot be completed/reached then return error with reason as DEVICE_NOT_REACHABLE
+	ImageStatus_DEVICE_NOT_REACHABLE ImageStatus_Reason = 8
 )
 
 var ImageStatus_Reason_name = map[int32]string{
@@ -84,15 +89,21 @@
 	3: "DEVICE_IN_WRONG_STATE",
 	4: "INVALID_IMAGE",
 	5: "WRONG_IMAGE_CHECKSUM",
+	6: "OPERATION_ALREADY_IN_PROGRESS",
+	7: "UNKNOWN_DEVICE",
+	8: "DEVICE_NOT_REACHABLE",
 }
 
 var ImageStatus_Reason_value = map[string]int32{
-	"UNDEFINED_REASON":      0,
-	"ERROR_IN_REQUEST":      1,
-	"INTERNAL_ERROR":        2,
-	"DEVICE_IN_WRONG_STATE": 3,
-	"INVALID_IMAGE":         4,
-	"WRONG_IMAGE_CHECKSUM":  5,
+	"UNDEFINED_REASON":              0,
+	"ERROR_IN_REQUEST":              1,
+	"INTERNAL_ERROR":                2,
+	"DEVICE_IN_WRONG_STATE":         3,
+	"INVALID_IMAGE":                 4,
+	"WRONG_IMAGE_CHECKSUM":          5,
+	"OPERATION_ALREADY_IN_PROGRESS": 6,
+	"UNKNOWN_DEVICE":                7,
+	"DEVICE_NOT_REACHABLE":          8,
 }
 
 func (x ImageStatus_Reason) String() string {
@@ -294,41 +305,44 @@
 func init() { proto.RegisterFile("dmi/sw_image.proto", fileDescriptor_3d058607a829baf4) }
 
 var fileDescriptor_3d058607a829baf4 = []byte{
-	// 572 bytes of a gzipped FileDescriptorProto
-	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, 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, 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, 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,
-	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,
+	// 619 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x93, 0xdf, 0x4e, 0xdb, 0x4c,
+	0x10, 0xc5, 0x09, 0xf9, 0x03, 0x4c, 0xbe, 0x2f, 0x75, 0x16, 0x10, 0x69, 0x29, 0x12, 0x4d, 0x2f,
+	0xda, 0x1b, 0xe2, 0x36, 0xa8, 0x95, 0xaa, 0x5e, 0x19, 0x7b, 0x09, 0x2b, 0x9c, 0x75, 0xba, 0x76,
+	0x82, 0xe8, 0x8d, 0x65, 0xe2, 0x25, 0x58, 0xca, 0xda, 0xc8, 0x76, 0xe8, 0x2b, 0xf5, 0x71, 0xfa,
+	0x0a, 0x7d, 0x82, 0xbe, 0x42, 0xb5, 0xbb, 0x86, 0x20, 0xf5, 0x6e, 0xfd, 0x3b, 0x67, 0x66, 0xce,
+	0x8c, 0x64, 0x40, 0xb1, 0x48, 0xcc, 0xe2, 0x47, 0x98, 0x88, 0x68, 0xc1, 0x07, 0xf7, 0x79, 0x56,
+	0x66, 0xa8, 0x1e, 0x8b, 0xe4, 0x55, 0x57, 0x0a, 0xf3, 0x4c, 0x88, 0x2c, 0x2d, 0x34, 0xef, 0x8f,
+	0xe0, 0x3f, 0x22, 0x6d, 0x33, 0x9e, 0x17, 0x49, 0x96, 0xa2, 0x23, 0x00, 0x55, 0x16, 0xa6, 0x91,
+	0xe0, 0xbd, 0xda, 0x71, 0xed, 0xfd, 0x0e, 0xdb, 0x51, 0x84, 0x46, 0x82, 0xa3, 0x1e, 0x6c, 0x3d,
+	0x68, 0x67, 0x6f, 0x53, 0x69, 0x8f, 0x9f, 0xfd, 0x9f, 0x35, 0x30, 0x54, 0x27, 0x92, 0xde, 0x66,
+	0xb9, 0x88, 0x4a, 0xd9, 0xed, 0x1d, 0x34, 0x55, 0xad, 0x6a, 0xd4, 0x1e, 0x76, 0x07, 0xb1, 0x48,
+	0x06, 0xcf, 0xe7, 0x31, 0xad, 0xa3, 0x0f, 0xb0, 0xa7, 0xc7, 0x26, 0x69, 0x51, 0x46, 0xcb, 0x65,
+	0x58, 0xcc, 0xf3, 0xe4, 0xbe, 0xac, 0x86, 0xa0, 0x44, 0x37, 0x56, 0x92, 0xaf, 0x14, 0x74, 0x08,
+	0x3a, 0x56, 0xb8, 0xca, 0x97, 0xbd, 0xba, 0xb2, 0x6d, 0x2b, 0x30, 0xcd, 0x97, 0xe8, 0x35, 0xec,
+	0x14, 0x77, 0xd1, 0xf0, 0xd3, 0xe7, 0x62, 0x25, 0x7a, 0x4d, 0xbd, 0xc4, 0x13, 0xe8, 0xff, 0x69,
+	0x40, 0x5b, 0x85, 0xf0, 0xcb, 0xa8, 0x5c, 0x15, 0xe8, 0x2d, 0xb4, 0x0a, 0xf5, 0x52, 0x31, 0x3b,
+	0xc3, 0xb6, 0x8a, 0xa9, 0x45, 0x56, 0x49, 0xc8, 0x84, 0x56, 0xce, 0xa3, 0xa2, 0x5a, 0xbc, 0x33,
+	0x3c, 0x58, 0xef, 0xa2, 0x9d, 0x03, 0xa6, 0x64, 0x56, 0xd9, 0xd0, 0x47, 0x68, 0xca, 0x52, 0xae,
+	0xc2, 0x75, 0x86, 0x87, 0xff, 0xf8, 0x9f, 0xde, 0x9c, 0x69, 0x27, 0x3a, 0x86, 0x76, 0xcc, 0xf5,
+	0xe6, 0xf2, 0xc2, 0x0d, 0x15, 0xfc, 0x39, 0xea, 0xff, 0xaa, 0x01, 0xac, 0xeb, 0xd0, 0x2e, 0xbc,
+	0x98, 0x52, 0x07, 0x9f, 0x13, 0x8a, 0x9d, 0xd0, 0x0f, 0xac, 0x00, 0x1b, 0x1b, 0xa8, 0x0b, 0xff,
+	0xdb, 0xde, 0xe4, 0x9a, 0xd0, 0x51, 0x48, 0xc6, 0xd6, 0x08, 0x1b, 0x35, 0xb4, 0x07, 0x06, 0xa1,
+	0x7e, 0x60, 0xb9, 0xee, 0x9a, 0x6e, 0x4a, 0x6a, 0x7b, 0xe3, 0x31, 0x09, 0x82, 0x35, 0xad, 0x4b,
+	0xca, 0xf0, 0x99, 0xe7, 0x29, 0xe8, 0xe0, 0x19, 0xb1, 0xb1, 0xd1, 0x90, 0x74, 0x3a, 0x19, 0x31,
+	0xcb, 0xc1, 0xa1, 0xed, 0x8d, 0x27, 0x2e, 0x0e, 0xb0, 0xd1, 0x44, 0x08, 0x3a, 0x8f, 0xf4, 0xdc,
+	0x22, 0x2e, 0x76, 0x8c, 0x16, 0x3a, 0x80, 0x5d, 0xcb, 0x0e, 0xc8, 0xcc, 0x0a, 0x88, 0x47, 0xd7,
+	0xe6, 0x2d, 0xb4, 0x0f, 0xdd, 0x67, 0x42, 0xe5, 0xdf, 0xee, 0xff, 0xae, 0x41, 0x4b, 0x9f, 0x4e,
+	0x0d, 0x79, 0x5a, 0x87, 0x61, 0xcb, 0xf7, 0xa8, 0xb1, 0x21, 0x29, 0x66, 0xcc, 0x63, 0x21, 0xa1,
+	0x21, 0xc3, 0xdf, 0xa6, 0xd8, 0x0f, 0x8c, 0x9a, 0x1c, 0x4d, 0x68, 0x80, 0x19, 0xb5, 0xdc, 0x50,
+	0xc9, 0xc6, 0x26, 0x7a, 0x09, 0xfb, 0x3a, 0xb0, 0xb4, 0x5e, 0x31, 0x8f, 0x8e, 0xaa, 0xa3, 0xd4,
+	0xe5, 0x51, 0x08, 0x9d, 0x59, 0x2e, 0x71, 0xaa, 0x45, 0x1b, 0xa8, 0x07, 0x7b, 0xda, 0xa3, 0x40,
+	0x68, 0x5f, 0x60, 0xfb, 0xd2, 0x9f, 0x8e, 0x8d, 0x26, 0x7a, 0x03, 0x47, 0xde, 0x04, 0x33, 0x1d,
+	0xd4, 0x72, 0x19, 0xb6, 0x9c, 0x6b, 0xd9, 0x72, 0xc2, 0xbc, 0x11, 0xc3, 0xbe, 0x6f, 0xb4, 0xd4,
+	0xe6, 0xf4, 0x92, 0x7a, 0x57, 0xf4, 0xf1, 0x46, 0x5b, 0xb2, 0x61, 0x35, 0x9e, 0x7a, 0x81, 0xcc,
+	0x6f, 0x5f, 0x58, 0x67, 0x2e, 0x36, 0xb6, 0xcf, 0xbe, 0x7e, 0xff, 0xb2, 0x48, 0xca, 0xbb, 0xd5,
+	0xcd, 0x60, 0x9e, 0x09, 0x33, 0xbb, 0xe7, 0xe9, 0x3c, 0xcb, 0x63, 0x33, 0xe6, 0x0f, 0xc9, 0x9c,
+	0x9f, 0x88, 0x28, 0x8d, 0x16, 0x5c, 0xf0, 0xb4, 0x3c, 0x49, 0xd2, 0x92, 0xe7, 0xb7, 0xd1, 0x9c,
+	0x9b, 0x0f, 0xa7, 0xe6, 0x22, 0x33, 0x63, 0x91, 0xdc, 0xb4, 0xd4, 0x9f, 0x7a, 0xfa, 0x37, 0x00,
+	0x00, 0xff, 0xff, 0x14, 0xd5, 0x87, 0xaf, 0xd7, 0x03, 0x00, 0x00,
 }
diff --git a/go/dmi/sw_management_service.pb.go b/go/dmi/sw_management_service.pb.go
index c3c2718..d61b85b 100644
--- a/go/dmi/sw_management_service.pb.go
+++ b/go/dmi/sw_management_service.pb.go
@@ -22,6 +22,71 @@
 // proto package needs to be updated.
 const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
 
+type GetSoftwareVersionInformationResponse_Reason int32
+
+const (
+	GetSoftwareVersionInformationResponse_UNDEFINED_REASON GetSoftwareVersionInformationResponse_Reason = 0
+	GetSoftwareVersionInformationResponse_UNKNOWN_DEVICE   GetSoftwareVersionInformationResponse_Reason = 1
+	GetSoftwareVersionInformationResponse_INTERNAL_ERROR   GetSoftwareVersionInformationResponse_Reason = 2
+)
+
+var GetSoftwareVersionInformationResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+}
+
+var GetSoftwareVersionInformationResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON": 0,
+	"UNKNOWN_DEVICE":   1,
+	"INTERNAL_ERROR":   2,
+}
+
+func (x GetSoftwareVersionInformationResponse_Reason) String() string {
+	return proto.EnumName(GetSoftwareVersionInformationResponse_Reason_name, int32(x))
+}
+
+func (GetSoftwareVersionInformationResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_000929e4bec891d7, []int{1, 0}
+}
+
+type ConfigResponse_Reason int32
+
+const (
+	ConfigResponse_UNDEFINED_REASON              ConfigResponse_Reason = 0
+	ConfigResponse_UNKNOWN_DEVICE                ConfigResponse_Reason = 1
+	ConfigResponse_INTERNAL_ERROR                ConfigResponse_Reason = 2
+	ConfigResponse_ERROR_FETCHING_CONFIG         ConfigResponse_Reason = 3
+	ConfigResponse_INVALID_CONFIG                ConfigResponse_Reason = 4
+	ConfigResponse_OPERATION_ALREADY_IN_PROGRESS ConfigResponse_Reason = 5
+)
+
+var ConfigResponse_Reason_name = map[int32]string{
+	0: "UNDEFINED_REASON",
+	1: "UNKNOWN_DEVICE",
+	2: "INTERNAL_ERROR",
+	3: "ERROR_FETCHING_CONFIG",
+	4: "INVALID_CONFIG",
+	5: "OPERATION_ALREADY_IN_PROGRESS",
+}
+
+var ConfigResponse_Reason_value = map[string]int32{
+	"UNDEFINED_REASON":              0,
+	"UNKNOWN_DEVICE":                1,
+	"INTERNAL_ERROR":                2,
+	"ERROR_FETCHING_CONFIG":         3,
+	"INVALID_CONFIG":                4,
+	"OPERATION_ALREADY_IN_PROGRESS": 5,
+}
+
+func (x ConfigResponse_Reason) String() string {
+	return proto.EnumName(ConfigResponse_Reason_name, int32(x))
+}
+
+func (ConfigResponse_Reason) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_000929e4bec891d7, []int{4, 0}
+}
+
 type SoftwareVersionInformation struct {
 	ActiveVersions       []*ImageVersion `protobuf:"bytes,1,rep,name=active_versions,json=activeVersions,proto3" json:"active_versions,omitempty"`
 	StandbyVersions      []*ImageVersion `protobuf:"bytes,2,rep,name=standby_versions,json=standbyVersions,proto3" json:"standby_versions,omitempty"`
@@ -70,12 +135,12 @@
 }
 
 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:"-"`
+	Status               Status                                       `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               GetSoftwareVersionInformationResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.GetSoftwareVersionInformationResponse_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{} }
@@ -110,11 +175,11 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *GetSoftwareVersionInformationResponse) GetReason() Reason {
+func (m *GetSoftwareVersionInformationResponse) GetReason() GetSoftwareVersionInformationResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return GetSoftwareVersionInformationResponse_UNDEFINED_REASON
 }
 
 func (m *GetSoftwareVersionInformationResponse) GetInfo() *SoftwareVersionInformation {
@@ -222,11 +287,11 @@
 }
 
 type ConfigResponse struct {
-	Status               Status   `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
-	Reason               Reason   `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.Reason" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Status               Status                `protobuf:"varint,1,opt,name=status,proto3,enum=dmi.Status" json:"status,omitempty"`
+	Reason               ConfigResponse_Reason `protobuf:"varint,2,opt,name=reason,proto3,enum=dmi.ConfigResponse_Reason" json:"reason,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
+	XXX_unrecognized     []byte                `json:"-"`
+	XXX_sizecache        int32                 `json:"-"`
 }
 
 func (m *ConfigResponse) Reset()         { *m = ConfigResponse{} }
@@ -261,14 +326,16 @@
 	return Status_UNDEFINED_STATUS
 }
 
-func (m *ConfigResponse) GetReason() Reason {
+func (m *ConfigResponse) GetReason() ConfigResponse_Reason {
 	if m != nil {
 		return m.Reason
 	}
-	return Reason_UNDEFINED_REASON
+	return ConfigResponse_UNDEFINED_REASON
 }
 
 func init() {
+	proto.RegisterEnum("dmi.GetSoftwareVersionInformationResponse_Reason", GetSoftwareVersionInformationResponse_Reason_name, GetSoftwareVersionInformationResponse_Reason_value)
+	proto.RegisterEnum("dmi.ConfigResponse_Reason", ConfigResponse_Reason_name, ConfigResponse_Reason_value)
 	proto.RegisterType((*SoftwareVersionInformation)(nil), "dmi.SoftwareVersionInformation")
 	proto.RegisterType((*GetSoftwareVersionInformationResponse)(nil), "dmi.GetSoftwareVersionInformationResponse")
 	proto.RegisterType((*DownloadImageRequest)(nil), "dmi.DownloadImageRequest")
@@ -279,40 +346,49 @@
 func init() { proto.RegisterFile("dmi/sw_management_service.proto", fileDescriptor_000929e4bec891d7) }
 
 var fileDescriptor_000929e4bec891d7 = []byte{
-	// 528 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0xd1, 0x8a, 0x13, 0x3d,
-	0x14, 0x66, 0xda, 0x9f, 0x85, 0x9e, 0xfe, 0x6d, 0x77, 0xe3, 0x0a, 0x75, 0x40, 0xba, 0x54, 0x84,
-	0xb2, 0xb0, 0x9d, 0xa5, 0xdd, 0x1b, 0x5d, 0x11, 0xd4, 0x85, 0xb5, 0x17, 0x0a, 0x4e, 0xad, 0x17,
-	0xbd, 0x19, 0xd2, 0x49, 0x3a, 0x1b, 0x68, 0x92, 0x31, 0xc9, 0x4c, 0xf5, 0x45, 0x7c, 0x04, 0x9f,
-	0xcf, 0x47, 0x90, 0x24, 0x53, 0xbb, 0x65, 0xb7, 0xa0, 0xe2, 0xdd, 0xe4, 0x3b, 0xe7, 0xfb, 0xce,
-	0xc9, 0x39, 0xdf, 0x04, 0x7a, 0x84, 0xb3, 0x48, 0xaf, 0x13, 0x8e, 0x05, 0xce, 0x28, 0xa7, 0xc2,
-	0x24, 0x9a, 0xaa, 0x92, 0xa5, 0x74, 0x98, 0x2b, 0x69, 0x24, 0xaa, 0x13, 0xce, 0xc2, 0x23, 0x9b,
-	0x95, 0x4a, 0xce, 0xa5, 0xd0, 0x1e, 0x0f, 0xff, 0xb7, 0xd0, 0xcd, 0xba, 0x3a, 0xa1, 0x4a, 0x86,
-	0x71, 0x9c, 0x55, 0xcc, 0xfe, 0xb7, 0x00, 0xc2, 0xa9, 0x5c, 0x9a, 0x35, 0x56, 0xf4, 0x13, 0x55,
-	0x9a, 0x49, 0x31, 0x11, 0x4b, 0xa9, 0x38, 0x36, 0x4c, 0x0a, 0xf4, 0x1c, 0x3a, 0x38, 0x35, 0xac,
-	0xa4, 0x49, 0xe9, 0x83, 0xba, 0x1b, 0x9c, 0xd4, 0x07, 0xcd, 0xd1, 0xd1, 0x90, 0x70, 0x36, 0x9c,
-	0x58, 0xa5, 0x8a, 0x16, 0xb7, 0x7d, 0x66, 0x75, 0xd4, 0xe8, 0x05, 0x1c, 0x6a, 0x83, 0x05, 0x59,
-	0x7c, 0xdd, 0x92, 0x6b, 0xfb, 0xc8, 0x9d, 0x2a, 0x75, 0xc3, 0xee, 0x7f, 0x0f, 0xe0, 0xe9, 0x35,
-	0x35, 0xfb, 0x7b, 0x8b, 0xa9, 0xce, 0xa5, 0xd0, 0x14, 0x3d, 0x81, 0x03, 0x6d, 0xb0, 0x29, 0x6c,
-	0x6b, 0xc1, 0xa0, 0x3d, 0x6a, 0x3a, 0xf5, 0xa9, 0x83, 0xe2, 0x2a, 0x64, 0x93, 0x14, 0xc5, 0x5a,
-	0x8a, 0x6e, 0xed, 0x56, 0x52, 0xec, 0xa0, 0xb8, 0x0a, 0xa1, 0x31, 0xfc, 0xc7, 0xc4, 0x52, 0x76,
-	0xeb, 0x27, 0xc1, 0xa0, 0x39, 0xea, 0x79, 0x9d, 0xfd, 0x0d, 0xb8, 0xe4, 0xfe, 0x17, 0x38, 0xbe,
-	0x92, 0x6b, 0xb1, 0x92, 0x98, 0xb8, 0x1b, 0xc5, 0xf4, 0x73, 0x41, 0xb5, 0x41, 0xa7, 0xd0, 0x24,
-	0xd4, 0xee, 0x28, 0x29, 0x0a, 0x46, 0x5c, 0x6f, 0xcd, 0x51, 0xc3, 0x69, 0xce, 0x0a, 0x46, 0x62,
-	0xf0, 0x51, 0xfb, 0x8d, 0x2e, 0x00, 0xdc, 0x52, 0x12, 0x57, 0xbe, 0xe6, 0x52, 0x1f, 0x6e, 0x87,
-	0x74, 0xbb, 0x68, 0x83, 0x6d, 0x90, 0xfe, 0x1c, 0x5a, 0x6f, 0xa4, 0x58, 0xb2, 0xec, 0x6f, 0x4a,
-	0x3e, 0x06, 0x48, 0x1d, 0x39, 0x29, 0xd4, 0xca, 0x95, 0x6c, 0xc4, 0x0d, 0x8f, 0xcc, 0xd4, 0xaa,
-	0x3f, 0x87, 0xf6, 0x46, 0xfb, 0x5f, 0x8f, 0x79, 0xf4, 0xa3, 0x06, 0xbd, 0xf7, 0xd8, 0x7a, 0x65,
-	0x33, 0xdc, 0x77, 0xbf, 0x8c, 0x3d, 0xf5, 0xbe, 0x46, 0x1f, 0x00, 0xdd, 0xdd, 0x3e, 0xea, 0x38,
-	0xb9, 0xb7, 0x58, 0x11, 0x8b, 0x4e, 0xae, 0xc2, 0x53, 0x07, 0xfc, 0x9e, 0x4f, 0x5e, 0x42, 0x6b,
-	0x67, 0x51, 0xe8, 0x91, 0x23, 0xdf, 0xb7, 0xbc, 0xf0, 0x70, 0x3b, 0x7c, 0x7f, 0xc3, 0xf3, 0x00,
-	0x5d, 0x40, 0xeb, 0x95, 0x75, 0x38, 0x36, 0xd4, 0xf3, 0xef, 0x74, 0x73, 0x1f, 0xeb, 0x12, 0x8e,
-	0x63, 0x5a, 0x52, 0x65, 0x3e, 0xca, 0xa9, 0xb7, 0xf8, 0x1f, 0x90, 0xaf, 0x21, 0x9c, 0xe5, 0x04,
-	0x1b, 0x8b, 0x28, 0x53, 0xe4, 0x7e, 0x25, 0x85, 0xf2, 0x3f, 0x27, 0x72, 0x8c, 0x1d, 0x0b, 0x84,
-	0x0f, 0x76, 0x30, 0x7f, 0xf3, 0xf3, 0xe0, 0xf5, 0xe5, 0xfc, 0x59, 0xc6, 0xcc, 0x4d, 0xb1, 0x18,
-	0xa6, 0x92, 0x47, 0x32, 0xa7, 0x22, 0x95, 0x8a, 0x44, 0xde, 0x0f, 0x67, 0xdb, 0x77, 0xe5, 0x8c,
-	0x09, 0x43, 0xd5, 0x12, 0xa7, 0x34, 0x2a, 0xc7, 0x51, 0x26, 0x23, 0xc2, 0xd9, 0xe2, 0xc0, 0x3d,
-	0x15, 0xe3, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x9c, 0xd0, 0x0a, 0x81, 0x87, 0x04, 0x00, 0x00,
+	// 671 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x5f, 0x4f, 0x13, 0x4f,
+	0x14, 0xfd, 0x6d, 0xcb, 0xaf, 0x49, 0x6f, 0xa5, 0x2c, 0x23, 0x24, 0xd0, 0x84, 0x80, 0x35, 0x26,
+	0x84, 0x84, 0x16, 0x0b, 0x2f, 0x8a, 0x31, 0xa9, 0xed, 0xb6, 0x6c, 0xc4, 0x2d, 0x4e, 0x5b, 0x8c,
+	0xbc, 0x6c, 0x86, 0xee, 0xb4, 0x4c, 0xc2, 0xce, 0xd4, 0xd9, 0xd9, 0x56, 0xdf, 0xfd, 0x08, 0xc6,
+	0xf8, 0x31, 0xfd, 0x08, 0x66, 0x67, 0xb6, 0x56, 0xfe, 0x25, 0x60, 0x7c, 0xdb, 0x3d, 0x73, 0xce,
+	0xb9, 0x77, 0xf7, 0x9e, 0x3b, 0xb0, 0x19, 0x84, 0xac, 0x1a, 0x4d, 0xfd, 0x90, 0x70, 0x32, 0xa2,
+	0x21, 0xe5, 0xca, 0x8f, 0xa8, 0x9c, 0xb0, 0x01, 0xad, 0x8c, 0xa5, 0x50, 0x02, 0x65, 0x83, 0x90,
+	0x95, 0x96, 0x13, 0xd6, 0x40, 0x84, 0xa1, 0xe0, 0x91, 0xc1, 0x4b, 0x8f, 0x12, 0xe8, 0x62, 0x9a,
+	0xbe, 0xa1, 0xd4, 0x86, 0x85, 0x64, 0x94, 0x2a, 0xcb, 0xdf, 0x2d, 0x28, 0x75, 0xc5, 0x50, 0x4d,
+	0x89, 0xa4, 0xa7, 0x54, 0x46, 0x4c, 0x70, 0x97, 0x0f, 0x85, 0x0c, 0x89, 0x62, 0x82, 0xa3, 0x97,
+	0xb0, 0x44, 0x06, 0x8a, 0x4d, 0xa8, 0x3f, 0x31, 0x87, 0xd1, 0x9a, 0xb5, 0x95, 0xdd, 0x2e, 0xd4,
+	0x96, 0x2b, 0x41, 0xc8, 0x2a, 0x6e, 0xe2, 0x94, 0xca, 0x70, 0xd1, 0x30, 0xd3, 0xd7, 0x08, 0xbd,
+	0x02, 0x3b, 0x52, 0x84, 0x07, 0xe7, 0x5f, 0xe6, 0xe2, 0xcc, 0x5d, 0xe2, 0xa5, 0x94, 0x3a, 0x53,
+	0x97, 0xbf, 0x65, 0xe0, 0x59, 0x9b, 0xaa, 0xbb, 0x7b, 0xc3, 0x34, 0x1a, 0x0b, 0x1e, 0x51, 0xf4,
+	0x14, 0x72, 0x91, 0x22, 0x2a, 0x4e, 0x5a, 0xb3, 0xb6, 0x8b, 0xb5, 0x82, 0x76, 0xef, 0x6a, 0x08,
+	0xa7, 0x47, 0xc8, 0x85, 0x9c, 0xa4, 0x24, 0x12, 0x7c, 0x2d, 0xa3, 0x49, 0xcf, 0x35, 0xe9, 0x5e,
+	0x05, 0x2a, 0x58, 0x0b, 0x71, 0x6a, 0x80, 0xf6, 0x61, 0x81, 0xf1, 0xa1, 0x58, 0xcb, 0x6e, 0x59,
+	0xdb, 0x85, 0xda, 0xa6, 0xa9, 0x76, 0xb7, 0x8b, 0x26, 0x97, 0x5b, 0x90, 0x33, 0x36, 0x68, 0x05,
+	0xec, 0xbe, 0xd7, 0x74, 0x5a, 0xae, 0xe7, 0x34, 0x7d, 0xec, 0xd4, 0xbb, 0x1d, 0xcf, 0xfe, 0x0f,
+	0x21, 0x28, 0xf6, 0xbd, 0xb7, 0x5e, 0xe7, 0x83, 0xe7, 0x37, 0x9d, 0x53, 0xb7, 0xe1, 0xd8, 0x56,
+	0x82, 0xb9, 0x5e, 0xcf, 0xc1, 0x5e, 0xfd, 0xd8, 0x77, 0x30, 0xee, 0x60, 0x3b, 0x53, 0xfe, 0x0c,
+	0x2b, 0x4d, 0x31, 0xe5, 0x97, 0x82, 0x04, 0xfa, 0xff, 0x61, 0xfa, 0x29, 0xa6, 0x91, 0x42, 0x3b,
+	0x50, 0x08, 0x68, 0x92, 0x08, 0x3f, 0x8e, 0x59, 0xa0, 0xff, 0x44, 0xa1, 0x96, 0xd7, 0xbd, 0xf5,
+	0x63, 0x16, 0x60, 0x30, 0xa7, 0xc9, 0x33, 0x3a, 0x00, 0xd0, 0x11, 0xf0, 0xf5, 0x67, 0x64, 0x34,
+	0x75, 0x75, 0x3e, 0x92, 0x3f, 0x9b, 0xcf, 0xb3, 0x19, 0x52, 0x3e, 0x83, 0xc5, 0x86, 0xe0, 0x43,
+	0x36, 0xfa, 0x9b, 0x92, 0x1b, 0x00, 0x03, 0x2d, 0xf6, 0x63, 0x79, 0xa9, 0x4b, 0xe6, 0x71, 0xde,
+	0x20, 0x7d, 0x79, 0x59, 0xfe, 0x9a, 0x81, 0xe2, 0xcc, 0xfc, 0x21, 0x53, 0xad, 0x5d, 0x9b, 0x6a,
+	0x49, 0x93, 0xae, 0x3a, 0x5d, 0x1b, 0x5f, 0xf9, 0x87, 0xf5, 0x6f, 0x46, 0x81, 0xd6, 0x61, 0x55,
+	0x3f, 0xfa, 0x2d, 0xa7, 0xd7, 0x38, 0x72, 0xbd, 0xb6, 0xdf, 0xe8, 0x78, 0x2d, 0xb7, 0x6d, 0x67,
+	0x0d, 0xfd, 0xb4, 0x7e, 0xec, 0x36, 0x67, 0xd8, 0x02, 0x7a, 0x02, 0x1b, 0x9d, 0x13, 0x07, 0xd7,
+	0x7b, 0x6e, 0xc7, 0xf3, 0xeb, 0xc7, 0xd8, 0xa9, 0x37, 0x3f, 0xfa, 0xae, 0xe7, 0x9f, 0xe0, 0x4e,
+	0x1b, 0x3b, 0xdd, 0xae, 0xfd, 0x7f, 0xed, 0x67, 0x06, 0x36, 0x3d, 0x92, 0x2c, 0xd1, 0x2c, 0x4f,
+	0xef, 0x7e, 0x6f, 0x7c, 0xd7, 0x2c, 0x3c, 0x7a, 0x0f, 0xe8, 0x66, 0x6a, 0xd1, 0x92, 0xfe, 0xf0,
+	0x23, 0x22, 0x83, 0x04, 0x75, 0x9b, 0xa5, 0x9d, 0xfb, 0xe7, 0x1b, 0xbd, 0x86, 0xc5, 0x2b, 0x99,
+	0x42, 0xeb, 0x5a, 0x7c, 0x5b, 0xce, 0x4a, 0xf6, 0x3c, 0x27, 0x66, 0x16, 0x7b, 0x16, 0x3a, 0x80,
+	0xc5, 0x7a, 0xb2, 0xfa, 0x44, 0x51, 0xa3, 0xbf, 0xd1, 0xcd, 0x6d, 0xaa, 0x43, 0x58, 0xc1, 0x74,
+	0x42, 0xa5, 0xea, 0x89, 0xae, 0xd9, 0xfd, 0x07, 0x88, 0xdb, 0x50, 0xea, 0x8f, 0x03, 0xa2, 0x12,
+	0x44, 0xaa, 0x78, 0x6c, 0x46, 0x1e, 0x4b, 0x73, 0x6b, 0xa1, 0x2b, 0x31, 0x30, 0x8d, 0x3f, 0xbe,
+	0x25, 0x1a, 0x7b, 0xd6, 0x9b, 0xc3, 0xb3, 0x17, 0x23, 0xa6, 0x2e, 0xe2, 0xf3, 0xca, 0x40, 0x84,
+	0x55, 0x31, 0xa6, 0x7c, 0x20, 0x64, 0x50, 0x35, 0xd1, 0xdd, 0x9d, 0x5f, 0xb8, 0xbb, 0x8c, 0x2b,
+	0x2a, 0x87, 0x64, 0x40, 0xab, 0x93, 0xfd, 0xea, 0x48, 0x54, 0x83, 0x90, 0x9d, 0xe7, 0xf4, 0x1d,
+	0xba, 0xff, 0x2b, 0x00, 0x00, 0xff, 0xff, 0x55, 0x2e, 0xda, 0x40, 0xa0, 0x05, 0x00, 0x00,
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
