Reduce api signature of anomlay group service
Application layer logic will take care of the respective constraints for e.g.setting bisection id only when action=bisect
Bug: b/328136184
Change-Id: I66900bd4e497c50191ecf494c354bdf6eaa3c9bb
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/829561
Reviewed-by: Wenbin Zhang <wenbinzhang@google.com>
Commit-Queue: Prakhar Asthana <pasthana@google.com>
diff --git a/perf/go/anomalygroup/proto/v1/service.pb.go b/perf/go/anomalygroup/proto/v1/service.pb.go
index 498b2e5..f990484 100644
--- a/perf/go/anomalygroup/proto/v1/service.pb.go
+++ b/perf/go/anomalygroup/proto/v1/service.pb.go
@@ -317,21 +317,30 @@
return nil
}
-// Request object for AddIssueIdToGroup
-type AddIssueIdToGroupRequest struct {
+// Request object for UpdateAnomalyGroup
+type UpdateAnomalyGroupRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The ID of the anomaly group to update
AnomalyGroupId string `protobuf:"bytes,1,opt,name=anomaly_group_id,json=anomalyGroupId,proto3" json:"anomaly_group_id,omitempty"`
+ // The anomaly ID to append to the anomaly list.
+ AnomalyId string `protobuf:"bytes,2,opt,name=anomaly_id,json=anomalyId,proto3" json:"anomaly_id,omitempty"`
+ // The biesction ID to add to the anomaly group.
+ // This should be populated only when the action value is BISECT.
+ BisectionId string `protobuf:"bytes,3,opt,name=bisection_id,json=bisectionId,proto3" json:"bisection_id,omitempty"`
// The issue ID to add to the anomaly group.
// This should be populated only when the action value is REPORT.
- IssueId int64 `protobuf:"varint,2,opt,name=issue_id,json=issueId,proto3" json:"issue_id,omitempty"`
+ IssueId string `protobuf:"bytes,4,opt,name=issue_id,json=issueId,proto3" json:"issue_id,omitempty"`
+ // The culprit IDs correlated to the group.
+ // Culprits are found by a bisection job. This should be populated
+ // only when the action value is BISECT and the bisection_id exists.
+ CulpritIds []string `protobuf:"bytes,5,rep,name=culprit_ids,json=culpritIds,proto3" json:"culprit_ids,omitempty"`
}
-func (x *AddIssueIdToGroupRequest) Reset() {
- *x = AddIssueIdToGroupRequest{}
+func (x *UpdateAnomalyGroupRequest) Reset() {
+ *x = UpdateAnomalyGroupRequest{}
if protoimpl.UnsafeEnabled {
mi := &file_service_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -339,13 +348,13 @@
}
}
-func (x *AddIssueIdToGroupRequest) String() string {
+func (x *UpdateAnomalyGroupRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*AddIssueIdToGroupRequest) ProtoMessage() {}
+func (*UpdateAnomalyGroupRequest) ProtoMessage() {}
-func (x *AddIssueIdToGroupRequest) ProtoReflect() protoreflect.Message {
+func (x *UpdateAnomalyGroupRequest) ProtoReflect() protoreflect.Message {
mi := &file_service_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -357,40 +366,55 @@
return mi.MessageOf(x)
}
-// Deprecated: Use AddIssueIdToGroupRequest.ProtoReflect.Descriptor instead.
-func (*AddIssueIdToGroupRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use UpdateAnomalyGroupRequest.ProtoReflect.Descriptor instead.
+func (*UpdateAnomalyGroupRequest) Descriptor() ([]byte, []int) {
return file_service_proto_rawDescGZIP(), []int{4}
}
-func (x *AddIssueIdToGroupRequest) GetAnomalyGroupId() string {
+func (x *UpdateAnomalyGroupRequest) GetAnomalyGroupId() string {
if x != nil {
return x.AnomalyGroupId
}
return ""
}
-func (x *AddIssueIdToGroupRequest) GetIssueId() int64 {
+func (x *UpdateAnomalyGroupRequest) GetAnomalyId() string {
+ if x != nil {
+ return x.AnomalyId
+ }
+ return ""
+}
+
+func (x *UpdateAnomalyGroupRequest) GetBisectionId() string {
+ if x != nil {
+ return x.BisectionId
+ }
+ return ""
+}
+
+func (x *UpdateAnomalyGroupRequest) GetIssueId() string {
if x != nil {
return x.IssueId
}
- return 0
+ return ""
}
-// Request object for AddBisectIdToGroup
-type AddBisectIdToGroupRequest struct {
+func (x *UpdateAnomalyGroupRequest) GetCulpritIds() []string {
+ if x != nil {
+ return x.CulpritIds
+ }
+ return nil
+}
+
+// Response object for UpdateAnomalyGroup
+type UpdateAnomalyGroupResponse struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
-
- // The ID of the anomaly group to update
- AnomalyGroupId string `protobuf:"bytes,1,opt,name=anomaly_group_id,json=anomalyGroupId,proto3" json:"anomaly_group_id,omitempty"`
- // The biesction ID to add to the anomaly group.
- // This should be populated only when the action value is BISECT.
- BisectionId string `protobuf:"bytes,2,opt,name=bisection_id,json=bisectionId,proto3" json:"bisection_id,omitempty"`
}
-func (x *AddBisectIdToGroupRequest) Reset() {
- *x = AddBisectIdToGroupRequest{}
+func (x *UpdateAnomalyGroupResponse) Reset() {
+ *x = UpdateAnomalyGroupResponse{}
if protoimpl.UnsafeEnabled {
mi := &file_service_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -398,13 +422,13 @@
}
}
-func (x *AddBisectIdToGroupRequest) String() string {
+func (x *UpdateAnomalyGroupResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
-func (*AddBisectIdToGroupRequest) ProtoMessage() {}
+func (*UpdateAnomalyGroupResponse) ProtoMessage() {}
-func (x *AddBisectIdToGroupRequest) ProtoReflect() protoreflect.Message {
+func (x *UpdateAnomalyGroupResponse) ProtoReflect() protoreflect.Message {
mi := &file_service_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
@@ -416,288 +440,11 @@
return mi.MessageOf(x)
}
-// Deprecated: Use AddBisectIdToGroupRequest.ProtoReflect.Descriptor instead.
-func (*AddBisectIdToGroupRequest) Descriptor() ([]byte, []int) {
+// Deprecated: Use UpdateAnomalyGroupResponse.ProtoReflect.Descriptor instead.
+func (*UpdateAnomalyGroupResponse) Descriptor() ([]byte, []int) {
return file_service_proto_rawDescGZIP(), []int{5}
}
-func (x *AddBisectIdToGroupRequest) GetAnomalyGroupId() string {
- if x != nil {
- return x.AnomalyGroupId
- }
- return ""
-}
-
-func (x *AddBisectIdToGroupRequest) GetBisectionId() string {
- if x != nil {
- return x.BisectionId
- }
- return ""
-}
-
-// Request object for AddAnomalyToGroup
-type AddAnomalyToGroupRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The ID of the anomaly group to update
- AnomalyGroupId string `protobuf:"bytes,1,opt,name=anomaly_group_id,json=anomalyGroupId,proto3" json:"anomaly_group_id,omitempty"`
- // The anomaly to append to the anomaly list.
- Anomaly *Anomaly `protobuf:"bytes,2,opt,name=anomaly,proto3" json:"anomaly,omitempty"`
-}
-
-func (x *AddAnomalyToGroupRequest) Reset() {
- *x = AddAnomalyToGroupRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_service_proto_msgTypes[6]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *AddAnomalyToGroupRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*AddAnomalyToGroupRequest) ProtoMessage() {}
-
-func (x *AddAnomalyToGroupRequest) ProtoReflect() protoreflect.Message {
- mi := &file_service_proto_msgTypes[6]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use AddAnomalyToGroupRequest.ProtoReflect.Descriptor instead.
-func (*AddAnomalyToGroupRequest) Descriptor() ([]byte, []int) {
- return file_service_proto_rawDescGZIP(), []int{6}
-}
-
-func (x *AddAnomalyToGroupRequest) GetAnomalyGroupId() string {
- if x != nil {
- return x.AnomalyGroupId
- }
- return ""
-}
-
-func (x *AddAnomalyToGroupRequest) GetAnomaly() *Anomaly {
- if x != nil {
- return x.Anomaly
- }
- return nil
-}
-
-// Response object for AddAnomalyToGroup
-type AddAnomalyToGroupResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The ID of the anomaly group which is updated
- AnomalyGroupId string `protobuf:"bytes,1,opt,name=anomaly_group_id,json=anomalyGroupId,proto3" json:"anomaly_group_id,omitempty"`
- // The updated start commit of the group.
- // The start and end commit position is the intersection of all
- // the anomalies in the group. This value will be updated if needed
- // when a anomaly is added to the group. Same to the new_end_commit.
- NewStartCommit int64 `protobuf:"varint,2,opt,name=new_start_commit,json=newStartCommit,proto3" json:"new_start_commit,omitempty"`
- // The updated end commit of the group.
- NewEndCommit int64 `protobuf:"varint,3,opt,name=new_end_commit,json=newEndCommit,proto3" json:"new_end_commit,omitempty"`
-}
-
-func (x *AddAnomalyToGroupResponse) Reset() {
- *x = AddAnomalyToGroupResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_service_proto_msgTypes[7]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *AddAnomalyToGroupResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*AddAnomalyToGroupResponse) ProtoMessage() {}
-
-func (x *AddAnomalyToGroupResponse) ProtoReflect() protoreflect.Message {
- mi := &file_service_proto_msgTypes[7]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use AddAnomalyToGroupResponse.ProtoReflect.Descriptor instead.
-func (*AddAnomalyToGroupResponse) Descriptor() ([]byte, []int) {
- return file_service_proto_rawDescGZIP(), []int{7}
-}
-
-func (x *AddAnomalyToGroupResponse) GetAnomalyGroupId() string {
- if x != nil {
- return x.AnomalyGroupId
- }
- return ""
-}
-
-func (x *AddAnomalyToGroupResponse) GetNewStartCommit() int64 {
- if x != nil {
- return x.NewStartCommit
- }
- return 0
-}
-
-func (x *AddAnomalyToGroupResponse) GetNewEndCommit() int64 {
- if x != nil {
- return x.NewEndCommit
- }
- return 0
-}
-
-// Request object for AddCulpritsToGroup
-type AddCulpritsToGroupRequest struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The ID of the anomaly group to update
- AnomalyGroupId string `protobuf:"bytes,1,opt,name=anomaly_group_id,json=anomalyGroupId,proto3" json:"anomaly_group_id,omitempty"`
- // The culprit IDs correlated to the group.
- // Culprits are found by a bisection job. This should be populated
- // only when the action value is BISECT and the bisection_id exists.
- CulpritIds []string `protobuf:"bytes,2,rep,name=culprit_ids,json=culpritIds,proto3" json:"culprit_ids,omitempty"`
-}
-
-func (x *AddCulpritsToGroupRequest) Reset() {
- *x = AddCulpritsToGroupRequest{}
- if protoimpl.UnsafeEnabled {
- mi := &file_service_proto_msgTypes[8]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *AddCulpritsToGroupRequest) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*AddCulpritsToGroupRequest) ProtoMessage() {}
-
-func (x *AddCulpritsToGroupRequest) ProtoReflect() protoreflect.Message {
- mi := &file_service_proto_msgTypes[8]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use AddCulpritsToGroupRequest.ProtoReflect.Descriptor instead.
-func (*AddCulpritsToGroupRequest) Descriptor() ([]byte, []int) {
- return file_service_proto_rawDescGZIP(), []int{8}
-}
-
-func (x *AddCulpritsToGroupRequest) GetAnomalyGroupId() string {
- if x != nil {
- return x.AnomalyGroupId
- }
- return ""
-}
-
-func (x *AddCulpritsToGroupRequest) GetCulpritIds() []string {
- if x != nil {
- return x.CulpritIds
- }
- return nil
-}
-
-// A common response object for the simple update requests on the anomaly
-// group table which:
-// - only updates a single column
-// - has no side effect on other columns
-//
-// It returns the followings:
-// - the update anomaly group ID
-// - the updated column name
-// - optional error message
-type SimpleGroupUpdateResponse struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The id of the updated anomaly group.
- AnomalyGroupId string `protobuf:"bytes,1,opt,name=anomaly_group_id,json=anomalyGroupId,proto3" json:"anomaly_group_id,omitempty"`
- // The name of the updated column of the anomaly group.
- UpdatedColumn string `protobuf:"bytes,2,opt,name=updated_column,json=updatedColumn,proto3" json:"updated_column,omitempty"`
- // The error message of the update request.
- ErrorMessage string `protobuf:"bytes,3,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"`
-}
-
-func (x *SimpleGroupUpdateResponse) Reset() {
- *x = SimpleGroupUpdateResponse{}
- if protoimpl.UnsafeEnabled {
- mi := &file_service_proto_msgTypes[9]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *SimpleGroupUpdateResponse) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*SimpleGroupUpdateResponse) ProtoMessage() {}
-
-func (x *SimpleGroupUpdateResponse) ProtoReflect() protoreflect.Message {
- mi := &file_service_proto_msgTypes[9]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use SimpleGroupUpdateResponse.ProtoReflect.Descriptor instead.
-func (*SimpleGroupUpdateResponse) Descriptor() ([]byte, []int) {
- return file_service_proto_rawDescGZIP(), []int{9}
-}
-
-func (x *SimpleGroupUpdateResponse) GetAnomalyGroupId() string {
- if x != nil {
- return x.AnomalyGroupId
- }
- return ""
-}
-
-func (x *SimpleGroupUpdateResponse) GetUpdatedColumn() string {
- if x != nil {
- return x.UpdatedColumn
- }
- return ""
-}
-
-func (x *SimpleGroupUpdateResponse) GetErrorMessage() string {
- if x != nil {
- return x.ErrorMessage
- }
- return ""
-}
-
// Request object for FindExistingGroups
type FindExistingGroupsRequest struct {
state protoimpl.MessageState
@@ -720,7 +467,7 @@
func (x *FindExistingGroupsRequest) Reset() {
*x = FindExistingGroupsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_service_proto_msgTypes[10]
+ mi := &file_service_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -733,7 +480,7 @@
func (*FindExistingGroupsRequest) ProtoMessage() {}
func (x *FindExistingGroupsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_service_proto_msgTypes[10]
+ mi := &file_service_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -746,7 +493,7 @@
// Deprecated: Use FindExistingGroupsRequest.ProtoReflect.Descriptor instead.
func (*FindExistingGroupsRequest) Descriptor() ([]byte, []int) {
- return file_service_proto_rawDescGZIP(), []int{10}
+ return file_service_proto_rawDescGZIP(), []int{6}
}
func (x *FindExistingGroupsRequest) GetSubscriptionName() string {
@@ -797,7 +544,7 @@
func (x *FindExistingGroupsResponse) Reset() {
*x = FindExistingGroupsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_service_proto_msgTypes[11]
+ mi := &file_service_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -810,7 +557,7 @@
func (*FindExistingGroupsResponse) ProtoMessage() {}
func (x *FindExistingGroupsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_service_proto_msgTypes[11]
+ mi := &file_service_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -823,7 +570,7 @@
// Deprecated: Use FindExistingGroupsResponse.ProtoReflect.Descriptor instead.
func (*FindExistingGroupsResponse) Descriptor() ([]byte, []int) {
- return file_service_proto_rawDescGZIP(), []int{11}
+ return file_service_proto_rawDescGZIP(), []int{7}
}
func (x *FindExistingGroupsResponse) GetAnomalyGroups() []*AnomalyGroup {
@@ -849,7 +596,7 @@
// The action to take for the anomaly group.
GroupAction string `protobuf:"bytes,2,opt,name=group_action,json=groupAction,proto3" json:"group_action,omitempty"`
// The anomalies added to this group.
- Anomalies []*Anomaly `protobuf:"bytes,3,rep,name=anomalies,proto3" json:"anomalies,omitempty"`
+ AnomalyIds []string `protobuf:"bytes,3,rep,name=anomaly_ids,json=anomalyIds,proto3" json:"anomaly_ids,omitempty"`
// The culprits associated to this group.
CulpritIds []string `protobuf:"bytes,4,rep,name=culprit_ids,json=culpritIds,proto3" json:"culprit_ids,omitempty"`
}
@@ -857,7 +604,7 @@
func (x *AnomalyGroup) Reset() {
*x = AnomalyGroup{}
if protoimpl.UnsafeEnabled {
- mi := &file_service_proto_msgTypes[12]
+ mi := &file_service_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -870,7 +617,7 @@
func (*AnomalyGroup) ProtoMessage() {}
func (x *AnomalyGroup) ProtoReflect() protoreflect.Message {
- mi := &file_service_proto_msgTypes[12]
+ mi := &file_service_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -883,7 +630,7 @@
// Deprecated: Use AnomalyGroup.ProtoReflect.Descriptor instead.
func (*AnomalyGroup) Descriptor() ([]byte, []int) {
- return file_service_proto_rawDescGZIP(), []int{12}
+ return file_service_proto_rawDescGZIP(), []int{8}
}
func (x *AnomalyGroup) GetGroupId() string {
@@ -900,9 +647,9 @@
return ""
}
-func (x *AnomalyGroup) GetAnomalies() []*Anomaly {
+func (x *AnomalyGroup) GetAnomalyIds() []string {
if x != nil {
- return x.Anomalies
+ return x.AnomalyIds
}
return nil
}
@@ -914,55 +661,6 @@
return nil
}
-// placeholder for Anomaly
-type Anomaly struct {
- state protoimpl.MessageState
- sizeCache protoimpl.SizeCache
- unknownFields protoimpl.UnknownFields
-
- // The ID of the anomaly, which is not available yet.
- AnomalyId string `protobuf:"bytes,1,opt,name=anomaly_id,json=anomalyId,proto3" json:"anomaly_id,omitempty"`
-}
-
-func (x *Anomaly) Reset() {
- *x = Anomaly{}
- if protoimpl.UnsafeEnabled {
- mi := &file_service_proto_msgTypes[13]
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- ms.StoreMessageInfo(mi)
- }
-}
-
-func (x *Anomaly) String() string {
- return protoimpl.X.MessageStringOf(x)
-}
-
-func (*Anomaly) ProtoMessage() {}
-
-func (x *Anomaly) ProtoReflect() protoreflect.Message {
- mi := &file_service_proto_msgTypes[13]
- if protoimpl.UnsafeEnabled && x != nil {
- ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
- if ms.LoadMessageInfo() == nil {
- ms.StoreMessageInfo(mi)
- }
- return ms
- }
- return mi.MessageOf(x)
-}
-
-// Deprecated: Use Anomaly.ProtoReflect.Descriptor instead.
-func (*Anomaly) Descriptor() ([]byte, []int) {
- return file_service_proto_rawDescGZIP(), []int{13}
-}
-
-func (x *Anomaly) GetAnomalyId() string {
- if x != nil {
- return x.AnomalyId
- }
- return ""
-}
-
var File_service_proto protoreflect.FileDescriptor
var file_service_proto_rawDesc = []byte{
@@ -998,141 +696,85 @@
0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e,
0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0c, 0x61, 0x6e,
- 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x5f, 0x0a, 0x18, 0x41, 0x64,
- 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x49, 0x64, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c,
- 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x0e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64,
- 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x03, 0x52, 0x07, 0x69, 0x73, 0x73, 0x75, 0x65, 0x49, 0x64, 0x22, 0x68, 0x0a, 0x19, 0x41,
- 0x64, 0x64, 0x42, 0x69, 0x73, 0x65, 0x63, 0x74, 0x49, 0x64, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75,
+ 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xc3, 0x01, 0x0a, 0x19, 0x55,
+ 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75,
0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6e, 0x6f, 0x6d,
0x61, 0x6c, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70,
- 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x69, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x69, 0x73, 0x65, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x78, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6f, 0x6d,
- 0x61, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x67, 0x72, 0x6f,
- 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x6f,
- 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x07, 0x61,
- 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61,
- 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41,
- 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x52, 0x07, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x22,
- 0x95, 0x01, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x54, 0x6f,
- 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a,
- 0x10, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69,
- 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
- 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x65, 0x77, 0x5f, 0x73,
- 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
- 0x03, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
- 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6e, 0x65, 0x77, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6d,
- 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x65, 0x77, 0x45, 0x6e,
- 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x66, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x43, 0x75,
- 0x6c, 0x70, 0x72, 0x69, 0x74, 0x73, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f,
- 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
- 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1f,
- 0x0a, 0x0b, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x49, 0x64, 0x73, 0x22,
- 0x91, 0x01, 0x0a, 0x19, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a,
- 0x10, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69,
- 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
- 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x12, 0x23,
- 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
- 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73,
- 0x61, 0x67, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x73,
- 0x74, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
- 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75,
- 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16,
- 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f,
- 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x74,
- 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64,
- 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65,
- 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74,
- 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x73,
- 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x62, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x69,
- 0x73, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x67,
- 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x6e,
- 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e,
- 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x61, 0x6e, 0x6f, 0x6d,
- 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x0c, 0x41, 0x6e,
- 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72,
- 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72,
- 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x6f,
- 0x75, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x6e, 0x6f, 0x6d,
- 0x61, 0x6c, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x6e,
- 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e,
- 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x52, 0x09, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73,
- 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18,
- 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x49, 0x64,
- 0x73, 0x22, 0x28, 0x0a, 0x07, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x12, 0x1d, 0x0a, 0x0a,
- 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x09, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x49, 0x64, 0x2a, 0x37, 0x0a, 0x0f, 0x47,
- 0x72, 0x6f, 0x75, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c,
- 0x0a, 0x08, 0x4e, 0x4f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06,
- 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x49, 0x53, 0x45,
- 0x43, 0x54, 0x10, 0x02, 0x32, 0x9e, 0x06, 0x0a, 0x13, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
- 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6f, 0x0a, 0x12,
- 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f,
- 0x75, 0x70, 0x12, 0x2a, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75,
- 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6f, 0x6d, 0x61,
- 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b,
- 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31,
- 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72,
- 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a,
- 0x10, 0x52, 0x65, 0x61, 0x64, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75,
- 0x70, 0x12, 0x28, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70,
- 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47,
- 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x6e,
+ 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x69, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x49,
+ 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x69, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
+ 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x69, 0x73, 0x65, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x73, 0x73, 0x75, 0x65, 0x5f, 0x69, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x73, 0x73, 0x75, 0x65, 0x49, 0x64, 0x12,
+ 0x1f, 0x0a, 0x0b, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x05,
+ 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x49, 0x64, 0x73,
+ 0x22, 0x1c, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c,
+ 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf,
+ 0x01, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x47,
+ 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x11,
+ 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69,
+ 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x43, 0x6f,
+ 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d,
+ 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d,
+ 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68,
+ 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x73, 0x74, 0x50, 0x61, 0x74, 0x68,
+ 0x22, 0x62, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44,
+ 0x0a, 0x0e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
+ 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72,
+ 0x6f, 0x75, 0x70, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x0c, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
+ 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64,
+ 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x5f, 0x69,
+ 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c,
+ 0x79, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x5f,
+ 0x69, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x6c, 0x70, 0x72,
+ 0x69, 0x74, 0x49, 0x64, 0x73, 0x2a, 0x37, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x41, 0x43,
+ 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x50, 0x4f, 0x52, 0x54,
+ 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x49, 0x53, 0x45, 0x43, 0x54, 0x10, 0x02, 0x32, 0xd3,
+ 0x03, 0x0a, 0x13, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53,
+ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6f, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
+ 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x2e, 0x61,
+ 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43,
+ 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75,
+ 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61,
+ 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74,
+ 0x65, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x10, 0x52, 0x65, 0x61, 0x64, 0x41,
+ 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x28, 0x2e, 0x61, 0x6e,
0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
0x61, 0x64, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x49,
- 0x73, 0x73, 0x75, 0x65, 0x49, 0x64, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x29, 0x2e,
- 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e,
- 0x41, 0x64, 0x64, 0x49, 0x73, 0x73, 0x75, 0x65, 0x49, 0x64, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75,
- 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61,
- 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c,
- 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x42, 0x69, 0x73,
- 0x65, 0x63, 0x74, 0x49, 0x64, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x2e, 0x61,
- 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41,
- 0x64, 0x64, 0x42, 0x69, 0x73, 0x65, 0x63, 0x74, 0x49, 0x64, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75,
- 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61,
- 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c,
- 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70,
- 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6f,
- 0x6d, 0x61, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x29, 0x2e, 0x61, 0x6e,
- 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64,
- 0x64, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
- 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x6e, 0x6f, 0x6d,
- 0x61, 0x6c, 0x79, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x43, 0x75, 0x6c, 0x70, 0x72,
- 0x69, 0x74, 0x73, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x2e, 0x61, 0x6e, 0x6f,
- 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64,
- 0x43, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x73, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
- 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x47,
- 0x72, 0x6f, 0x75, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x73,
- 0x74, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2a, 0x2e, 0x61, 0x6e, 0x6f,
- 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e,
- 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79,
- 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x69,
- 0x73, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x6f, 0x2e, 0x73, 0x6b, 0x69, 0x61,
- 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x70, 0x65, 0x72, 0x66, 0x2f,
- 0x67, 0x6f, 0x2f, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f,
- 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67,
+ 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x41, 0x6e, 0x6f, 0x6d,
+ 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6f, 0x6d,
+ 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2a, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61,
+ 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
+ 0x65, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72,
+ 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6f,
+ 0x6d, 0x61, 0x6c, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x12, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74,
+ 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2a, 0x2e, 0x61, 0x6e, 0x6f, 0x6d,
+ 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64,
+ 0x45, 0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67,
+ 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x73,
+ 0x74, 0x69, 0x6e, 0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x22, 0x00, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x6f, 0x2e, 0x73, 0x6b, 0x69, 0x61, 0x2e,
+ 0x6f, 0x72, 0x67, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x70, 0x65, 0x72, 0x66, 0x2f, 0x67,
+ 0x6f, 0x2f, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1148,49 +790,36 @@
}
var file_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_service_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
+var file_service_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
var file_service_proto_goTypes = []interface{}{
(GroupActionType)(0), // 0: anomalygroup.v1.GroupActionType
(*CreateAnomalyGroupRequest)(nil), // 1: anomalygroup.v1.CreateAnomalyGroupRequest
(*CreateAnomalyGroupResponse)(nil), // 2: anomalygroup.v1.CreateAnomalyGroupResponse
(*ReadAnomalyGroupRequest)(nil), // 3: anomalygroup.v1.ReadAnomalyGroupRequest
(*ReadAnomalyGroupResponse)(nil), // 4: anomalygroup.v1.ReadAnomalyGroupResponse
- (*AddIssueIdToGroupRequest)(nil), // 5: anomalygroup.v1.AddIssueIdToGroupRequest
- (*AddBisectIdToGroupRequest)(nil), // 6: anomalygroup.v1.AddBisectIdToGroupRequest
- (*AddAnomalyToGroupRequest)(nil), // 7: anomalygroup.v1.AddAnomalyToGroupRequest
- (*AddAnomalyToGroupResponse)(nil), // 8: anomalygroup.v1.AddAnomalyToGroupResponse
- (*AddCulpritsToGroupRequest)(nil), // 9: anomalygroup.v1.AddCulpritsToGroupRequest
- (*SimpleGroupUpdateResponse)(nil), // 10: anomalygroup.v1.SimpleGroupUpdateResponse
- (*FindExistingGroupsRequest)(nil), // 11: anomalygroup.v1.FindExistingGroupsRequest
- (*FindExistingGroupsResponse)(nil), // 12: anomalygroup.v1.FindExistingGroupsResponse
- (*AnomalyGroup)(nil), // 13: anomalygroup.v1.AnomalyGroup
- (*Anomaly)(nil), // 14: anomalygroup.v1.Anomaly
+ (*UpdateAnomalyGroupRequest)(nil), // 5: anomalygroup.v1.UpdateAnomalyGroupRequest
+ (*UpdateAnomalyGroupResponse)(nil), // 6: anomalygroup.v1.UpdateAnomalyGroupResponse
+ (*FindExistingGroupsRequest)(nil), // 7: anomalygroup.v1.FindExistingGroupsRequest
+ (*FindExistingGroupsResponse)(nil), // 8: anomalygroup.v1.FindExistingGroupsResponse
+ (*AnomalyGroup)(nil), // 9: anomalygroup.v1.AnomalyGroup
}
var file_service_proto_depIdxs = []int32{
- 0, // 0: anomalygroup.v1.CreateAnomalyGroupRequest.action:type_name -> anomalygroup.v1.GroupActionType
- 13, // 1: anomalygroup.v1.ReadAnomalyGroupResponse.anomaly_group:type_name -> anomalygroup.v1.AnomalyGroup
- 14, // 2: anomalygroup.v1.AddAnomalyToGroupRequest.anomaly:type_name -> anomalygroup.v1.Anomaly
- 13, // 3: anomalygroup.v1.FindExistingGroupsResponse.anomaly_groups:type_name -> anomalygroup.v1.AnomalyGroup
- 14, // 4: anomalygroup.v1.AnomalyGroup.anomalies:type_name -> anomalygroup.v1.Anomaly
- 1, // 5: anomalygroup.v1.AnomalyGroupService.CreateAnomalyGroup:input_type -> anomalygroup.v1.CreateAnomalyGroupRequest
- 3, // 6: anomalygroup.v1.AnomalyGroupService.ReadAnomalyGroup:input_type -> anomalygroup.v1.ReadAnomalyGroupRequest
- 5, // 7: anomalygroup.v1.AnomalyGroupService.AddIssueIdToGroup:input_type -> anomalygroup.v1.AddIssueIdToGroupRequest
- 6, // 8: anomalygroup.v1.AnomalyGroupService.AddBisectIdToGroup:input_type -> anomalygroup.v1.AddBisectIdToGroupRequest
- 7, // 9: anomalygroup.v1.AnomalyGroupService.AddAnomalyToGroup:input_type -> anomalygroup.v1.AddAnomalyToGroupRequest
- 9, // 10: anomalygroup.v1.AnomalyGroupService.AddCulpritsToGroup:input_type -> anomalygroup.v1.AddCulpritsToGroupRequest
- 11, // 11: anomalygroup.v1.AnomalyGroupService.FindExistingGroups:input_type -> anomalygroup.v1.FindExistingGroupsRequest
- 2, // 12: anomalygroup.v1.AnomalyGroupService.CreateAnomalyGroup:output_type -> anomalygroup.v1.CreateAnomalyGroupResponse
- 4, // 13: anomalygroup.v1.AnomalyGroupService.ReadAnomalyGroup:output_type -> anomalygroup.v1.ReadAnomalyGroupResponse
- 10, // 14: anomalygroup.v1.AnomalyGroupService.AddIssueIdToGroup:output_type -> anomalygroup.v1.SimpleGroupUpdateResponse
- 10, // 15: anomalygroup.v1.AnomalyGroupService.AddBisectIdToGroup:output_type -> anomalygroup.v1.SimpleGroupUpdateResponse
- 8, // 16: anomalygroup.v1.AnomalyGroupService.AddAnomalyToGroup:output_type -> anomalygroup.v1.AddAnomalyToGroupResponse
- 10, // 17: anomalygroup.v1.AnomalyGroupService.AddCulpritsToGroup:output_type -> anomalygroup.v1.SimpleGroupUpdateResponse
- 12, // 18: anomalygroup.v1.AnomalyGroupService.FindExistingGroups:output_type -> anomalygroup.v1.FindExistingGroupsResponse
- 12, // [12:19] is the sub-list for method output_type
- 5, // [5:12] is the sub-list for method input_type
- 5, // [5:5] is the sub-list for extension type_name
- 5, // [5:5] is the sub-list for extension extendee
- 0, // [0:5] is the sub-list for field type_name
+ 0, // 0: anomalygroup.v1.CreateAnomalyGroupRequest.action:type_name -> anomalygroup.v1.GroupActionType
+ 9, // 1: anomalygroup.v1.ReadAnomalyGroupResponse.anomaly_group:type_name -> anomalygroup.v1.AnomalyGroup
+ 9, // 2: anomalygroup.v1.FindExistingGroupsResponse.anomaly_groups:type_name -> anomalygroup.v1.AnomalyGroup
+ 1, // 3: anomalygroup.v1.AnomalyGroupService.CreateAnomalyGroup:input_type -> anomalygroup.v1.CreateAnomalyGroupRequest
+ 3, // 4: anomalygroup.v1.AnomalyGroupService.ReadAnomalyGroup:input_type -> anomalygroup.v1.ReadAnomalyGroupRequest
+ 5, // 5: anomalygroup.v1.AnomalyGroupService.UpdateAnomalyGroup:input_type -> anomalygroup.v1.UpdateAnomalyGroupRequest
+ 7, // 6: anomalygroup.v1.AnomalyGroupService.FindExistingGroups:input_type -> anomalygroup.v1.FindExistingGroupsRequest
+ 2, // 7: anomalygroup.v1.AnomalyGroupService.CreateAnomalyGroup:output_type -> anomalygroup.v1.CreateAnomalyGroupResponse
+ 4, // 8: anomalygroup.v1.AnomalyGroupService.ReadAnomalyGroup:output_type -> anomalygroup.v1.ReadAnomalyGroupResponse
+ 6, // 9: anomalygroup.v1.AnomalyGroupService.UpdateAnomalyGroup:output_type -> anomalygroup.v1.UpdateAnomalyGroupResponse
+ 8, // 10: anomalygroup.v1.AnomalyGroupService.FindExistingGroups:output_type -> anomalygroup.v1.FindExistingGroupsResponse
+ 7, // [7:11] is the sub-list for method output_type
+ 3, // [3:7] is the sub-list for method input_type
+ 3, // [3:3] is the sub-list for extension type_name
+ 3, // [3:3] is the sub-list for extension extendee
+ 0, // [0:3] is the sub-list for field type_name
}
func init() { file_service_proto_init() }
@@ -1248,7 +877,7 @@
}
}
file_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AddIssueIdToGroupRequest); i {
+ switch v := v.(*UpdateAnomalyGroupRequest); i {
case 0:
return &v.state
case 1:
@@ -1260,7 +889,7 @@
}
}
file_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AddBisectIdToGroupRequest); i {
+ switch v := v.(*UpdateAnomalyGroupResponse); i {
case 0:
return &v.state
case 1:
@@ -1272,54 +901,6 @@
}
}
file_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AddAnomalyToGroupRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AddAnomalyToGroupResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*AddCulpritsToGroupRequest); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SimpleGroupUpdateResponse); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
- file_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FindExistingGroupsRequest); i {
case 0:
return &v.state
@@ -1331,7 +912,7 @@
return nil
}
}
- file_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ file_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FindExistingGroupsResponse); i {
case 0:
return &v.state
@@ -1343,7 +924,7 @@
return nil
}
}
- file_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ file_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AnomalyGroup); i {
case 0:
return &v.state
@@ -1355,18 +936,6 @@
return nil
}
}
- file_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*Anomaly); i {
- case 0:
- return &v.state
- case 1:
- return &v.sizeCache
- case 2:
- return &v.unknownFields
- default:
- return nil
- }
- }
}
type x struct{}
out := protoimpl.TypeBuilder{
@@ -1374,7 +943,7 @@
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_service_proto_rawDesc,
NumEnums: 1,
- NumMessages: 14,
+ NumMessages: 9,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/perf/go/anomalygroup/proto/v1/service.proto b/perf/go/anomalygroup/proto/v1/service.proto
index 48e3632..038a129 100644
--- a/perf/go/anomalygroup/proto/v1/service.proto
+++ b/perf/go/anomalygroup/proto/v1/service.proto
@@ -15,21 +15,8 @@
rpc ReadAnomalyGroup(ReadAnomalyGroupRequest) returns (ReadAnomalyGroupResponse) {
}
- // Add the filed issue ID for the anomaly group which has action as 'report'.
- rpc AddIssueIdToGroup(AddIssueIdToGroupRequest) returns (SimpleGroupUpdateResponse) {
- }
-
- // Add the launched bisection ID for the anomaly group which has action as 'bisect'.
- rpc AddBisectIdToGroup(AddBisectIdToGroupRequest) returns (SimpleGroupUpdateResponse) {
- }
-
- // Add a new anomaly to the group.
- rpc AddAnomalyToGroup(AddAnomalyToGroupRequest) returns (AddAnomalyToGroupResponse) {
- }
-
- // Add culprits found by a bisection to the group.
- // (Invoked during persisting culprits)
- rpc AddCulpritsToGroup(AddCulpritsToGroupRequest) returns (SimpleGroupUpdateResponse) {
+ // Update a given anomaly group.
+ rpc UpdateAnomalyGroup(UpdateAnomalyGroupRequest) returns (UpdateAnomalyGroupResponse) {
}
// Find matching anomaly groups based on the criterias.
@@ -72,70 +59,30 @@
AnomalyGroup anomaly_group = 1;
}
-// Request object for AddIssueIdToGroup
-message AddIssueIdToGroupRequest {
+// Request object for UpdateAnomalyGroup
+message UpdateAnomalyGroupRequest {
// The ID of the anomaly group to update
string anomaly_group_id = 1;
- // The issue ID to add to the anomaly group.
- // This should be populated only when the action value is REPORT.
- int64 issue_id = 2;
-}
-// Request object for AddBisectIdToGroup
-message AddBisectIdToGroupRequest {
- // The ID of the anomaly group to update
- string anomaly_group_id = 1;
+ // The anomaly ID to append to the anomaly list.
+ string anomaly_id = 2;
+
// The biesction ID to add to the anomaly group.
// This should be populated only when the action value is BISECT.
- string bisection_id = 2;
-}
+ string bisection_id = 3;
-// Request object for AddAnomalyToGroup
-message AddAnomalyToGroupRequest {
- // The ID of the anomaly group to update
- string anomaly_group_id = 1;
- // The anomaly to append to the anomaly list.
- Anomaly anomaly = 2;
-}
+ // The issue ID to add to the anomaly group.
+ // This should be populated only when the action value is REPORT.
+ string issue_id = 4;
-// Response object for AddAnomalyToGroup
-message AddAnomalyToGroupResponse {
- // The ID of the anomaly group which is updated
- string anomaly_group_id = 1;
- // The updated start commit of the group.
- // The start and end commit position is the intersection of all
- // the anomalies in the group. This value will be updated if needed
- // when a anomaly is added to the group. Same to the new_end_commit.
- int64 new_start_commit = 2;
- // The updated end commit of the group.
- int64 new_end_commit = 3;
-}
-
-// Request object for AddCulpritsToGroup
-message AddCulpritsToGroupRequest {
- // The ID of the anomaly group to update
- string anomaly_group_id = 1;
// The culprit IDs correlated to the group.
// Culprits are found by a bisection job. This should be populated
// only when the action value is BISECT and the bisection_id exists.
- repeated string culprit_ids = 2;
+ repeated string culprit_ids = 5;
}
-// A common response object for the simple update requests on the anomaly
-// group table which:
-// - only updates a single column
-// - has no side effect on other columns
-// It returns the followings:
-// - the update anomaly group ID
-// - the updated column name
-// - optional error message
-message SimpleGroupUpdateResponse {
- // The id of the updated anomaly group.
- string anomaly_group_id = 1;
- // The name of the updated column of the anomaly group.
- string updated_column = 2;
- // The error message of the update request.
- string error_message = 3;
+// Response object for UpdateAnomalyGroup
+message UpdateAnomalyGroupResponse {
}
// Request object for FindExistingGroups
@@ -171,16 +118,11 @@
// The action to take for the anomaly group.
string group_action = 2;
// The anomalies added to this group.
- repeated Anomaly anomalies = 3;
+ repeated string anomaly_ids = 3;
// The culprits associated to this group.
repeated string culprit_ids = 4;
}
-// placeholder for Anomaly
-message Anomaly {
- // The ID of the anomaly, which is not available yet.
- string anomaly_id = 1;
-}
// The action to take on a certain group. It is defined in the Alert config.
enum GroupActionType {
diff --git a/perf/go/anomalygroup/proto/v1/service_grpc.pb.go b/perf/go/anomalygroup/proto/v1/service_grpc.pb.go
index 6e62d78..1e1cd32 100644
--- a/perf/go/anomalygroup/proto/v1/service_grpc.pb.go
+++ b/perf/go/anomalygroup/proto/v1/service_grpc.pb.go
@@ -22,10 +22,7 @@
const (
AnomalyGroupService_CreateAnomalyGroup_FullMethodName = "/anomalygroup.v1.AnomalyGroupService/CreateAnomalyGroup"
AnomalyGroupService_ReadAnomalyGroup_FullMethodName = "/anomalygroup.v1.AnomalyGroupService/ReadAnomalyGroup"
- AnomalyGroupService_AddIssueIdToGroup_FullMethodName = "/anomalygroup.v1.AnomalyGroupService/AddIssueIdToGroup"
- AnomalyGroupService_AddBisectIdToGroup_FullMethodName = "/anomalygroup.v1.AnomalyGroupService/AddBisectIdToGroup"
- AnomalyGroupService_AddAnomalyToGroup_FullMethodName = "/anomalygroup.v1.AnomalyGroupService/AddAnomalyToGroup"
- AnomalyGroupService_AddCulpritsToGroup_FullMethodName = "/anomalygroup.v1.AnomalyGroupService/AddCulpritsToGroup"
+ AnomalyGroupService_UpdateAnomalyGroup_FullMethodName = "/anomalygroup.v1.AnomalyGroupService/UpdateAnomalyGroup"
AnomalyGroupService_FindExistingGroups_FullMethodName = "/anomalygroup.v1.AnomalyGroupService/FindExistingGroups"
)
@@ -38,15 +35,8 @@
CreateAnomalyGroup(ctx context.Context, in *CreateAnomalyGroupRequest, opts ...grpc.CallOption) (*CreateAnomalyGroupResponse, error)
// Read info for an anomaly group.
ReadAnomalyGroup(ctx context.Context, in *ReadAnomalyGroupRequest, opts ...grpc.CallOption) (*ReadAnomalyGroupResponse, error)
- // Add the filed issue ID for the anomaly group which has action as 'report'.
- AddIssueIdToGroup(ctx context.Context, in *AddIssueIdToGroupRequest, opts ...grpc.CallOption) (*SimpleGroupUpdateResponse, error)
- // Add the launched bisection ID for the anomaly group which has action as 'bisect'.
- AddBisectIdToGroup(ctx context.Context, in *AddBisectIdToGroupRequest, opts ...grpc.CallOption) (*SimpleGroupUpdateResponse, error)
- // Add a new anomaly to the group.
- AddAnomalyToGroup(ctx context.Context, in *AddAnomalyToGroupRequest, opts ...grpc.CallOption) (*AddAnomalyToGroupResponse, error)
- // Add culprits found by a bisection to the group.
- // (Invoked during persisting culprits)
- AddCulpritsToGroup(ctx context.Context, in *AddCulpritsToGroupRequest, opts ...grpc.CallOption) (*SimpleGroupUpdateResponse, error)
+ // Update a given anomaly group.
+ UpdateAnomalyGroup(ctx context.Context, in *UpdateAnomalyGroupRequest, opts ...grpc.CallOption) (*UpdateAnomalyGroupResponse, error)
// Find matching anomaly groups based on the criterias.
// (e.g., from a newly found anomaly).
FindExistingGroups(ctx context.Context, in *FindExistingGroupsRequest, opts ...grpc.CallOption) (*FindExistingGroupsResponse, error)
@@ -78,36 +68,9 @@
return out, nil
}
-func (c *anomalyGroupServiceClient) AddIssueIdToGroup(ctx context.Context, in *AddIssueIdToGroupRequest, opts ...grpc.CallOption) (*SimpleGroupUpdateResponse, error) {
- out := new(SimpleGroupUpdateResponse)
- err := c.cc.Invoke(ctx, AnomalyGroupService_AddIssueIdToGroup_FullMethodName, in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
-func (c *anomalyGroupServiceClient) AddBisectIdToGroup(ctx context.Context, in *AddBisectIdToGroupRequest, opts ...grpc.CallOption) (*SimpleGroupUpdateResponse, error) {
- out := new(SimpleGroupUpdateResponse)
- err := c.cc.Invoke(ctx, AnomalyGroupService_AddBisectIdToGroup_FullMethodName, in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
-func (c *anomalyGroupServiceClient) AddAnomalyToGroup(ctx context.Context, in *AddAnomalyToGroupRequest, opts ...grpc.CallOption) (*AddAnomalyToGroupResponse, error) {
- out := new(AddAnomalyToGroupResponse)
- err := c.cc.Invoke(ctx, AnomalyGroupService_AddAnomalyToGroup_FullMethodName, in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
-}
-
-func (c *anomalyGroupServiceClient) AddCulpritsToGroup(ctx context.Context, in *AddCulpritsToGroupRequest, opts ...grpc.CallOption) (*SimpleGroupUpdateResponse, error) {
- out := new(SimpleGroupUpdateResponse)
- err := c.cc.Invoke(ctx, AnomalyGroupService_AddCulpritsToGroup_FullMethodName, in, out, opts...)
+func (c *anomalyGroupServiceClient) UpdateAnomalyGroup(ctx context.Context, in *UpdateAnomalyGroupRequest, opts ...grpc.CallOption) (*UpdateAnomalyGroupResponse, error) {
+ out := new(UpdateAnomalyGroupResponse)
+ err := c.cc.Invoke(ctx, AnomalyGroupService_UpdateAnomalyGroup_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
@@ -132,15 +95,8 @@
CreateAnomalyGroup(context.Context, *CreateAnomalyGroupRequest) (*CreateAnomalyGroupResponse, error)
// Read info for an anomaly group.
ReadAnomalyGroup(context.Context, *ReadAnomalyGroupRequest) (*ReadAnomalyGroupResponse, error)
- // Add the filed issue ID for the anomaly group which has action as 'report'.
- AddIssueIdToGroup(context.Context, *AddIssueIdToGroupRequest) (*SimpleGroupUpdateResponse, error)
- // Add the launched bisection ID for the anomaly group which has action as 'bisect'.
- AddBisectIdToGroup(context.Context, *AddBisectIdToGroupRequest) (*SimpleGroupUpdateResponse, error)
- // Add a new anomaly to the group.
- AddAnomalyToGroup(context.Context, *AddAnomalyToGroupRequest) (*AddAnomalyToGroupResponse, error)
- // Add culprits found by a bisection to the group.
- // (Invoked during persisting culprits)
- AddCulpritsToGroup(context.Context, *AddCulpritsToGroupRequest) (*SimpleGroupUpdateResponse, error)
+ // Update a given anomaly group.
+ UpdateAnomalyGroup(context.Context, *UpdateAnomalyGroupRequest) (*UpdateAnomalyGroupResponse, error)
// Find matching anomaly groups based on the criterias.
// (e.g., from a newly found anomaly).
FindExistingGroups(context.Context, *FindExistingGroupsRequest) (*FindExistingGroupsResponse, error)
@@ -157,17 +113,8 @@
func (UnimplementedAnomalyGroupServiceServer) ReadAnomalyGroup(context.Context, *ReadAnomalyGroupRequest) (*ReadAnomalyGroupResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method ReadAnomalyGroup not implemented")
}
-func (UnimplementedAnomalyGroupServiceServer) AddIssueIdToGroup(context.Context, *AddIssueIdToGroupRequest) (*SimpleGroupUpdateResponse, error) {
- return nil, status.Errorf(codes.Unimplemented, "method AddIssueIdToGroup not implemented")
-}
-func (UnimplementedAnomalyGroupServiceServer) AddBisectIdToGroup(context.Context, *AddBisectIdToGroupRequest) (*SimpleGroupUpdateResponse, error) {
- return nil, status.Errorf(codes.Unimplemented, "method AddBisectIdToGroup not implemented")
-}
-func (UnimplementedAnomalyGroupServiceServer) AddAnomalyToGroup(context.Context, *AddAnomalyToGroupRequest) (*AddAnomalyToGroupResponse, error) {
- return nil, status.Errorf(codes.Unimplemented, "method AddAnomalyToGroup not implemented")
-}
-func (UnimplementedAnomalyGroupServiceServer) AddCulpritsToGroup(context.Context, *AddCulpritsToGroupRequest) (*SimpleGroupUpdateResponse, error) {
- return nil, status.Errorf(codes.Unimplemented, "method AddCulpritsToGroup not implemented")
+func (UnimplementedAnomalyGroupServiceServer) UpdateAnomalyGroup(context.Context, *UpdateAnomalyGroupRequest) (*UpdateAnomalyGroupResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method UpdateAnomalyGroup not implemented")
}
func (UnimplementedAnomalyGroupServiceServer) FindExistingGroups(context.Context, *FindExistingGroupsRequest) (*FindExistingGroupsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method FindExistingGroups not implemented")
@@ -221,74 +168,20 @@
return interceptor(ctx, in, info, handler)
}
-func _AnomalyGroupService_AddIssueIdToGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(AddIssueIdToGroupRequest)
+func _AnomalyGroupService_UpdateAnomalyGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(UpdateAnomalyGroupRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
- return srv.(AnomalyGroupServiceServer).AddIssueIdToGroup(ctx, in)
+ return srv.(AnomalyGroupServiceServer).UpdateAnomalyGroup(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
- FullMethod: AnomalyGroupService_AddIssueIdToGroup_FullMethodName,
+ FullMethod: AnomalyGroupService_UpdateAnomalyGroup_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(AnomalyGroupServiceServer).AddIssueIdToGroup(ctx, req.(*AddIssueIdToGroupRequest))
- }
- return interceptor(ctx, in, info, handler)
-}
-
-func _AnomalyGroupService_AddBisectIdToGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(AddBisectIdToGroupRequest)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(AnomalyGroupServiceServer).AddBisectIdToGroup(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: AnomalyGroupService_AddBisectIdToGroup_FullMethodName,
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(AnomalyGroupServiceServer).AddBisectIdToGroup(ctx, req.(*AddBisectIdToGroupRequest))
- }
- return interceptor(ctx, in, info, handler)
-}
-
-func _AnomalyGroupService_AddAnomalyToGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(AddAnomalyToGroupRequest)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(AnomalyGroupServiceServer).AddAnomalyToGroup(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: AnomalyGroupService_AddAnomalyToGroup_FullMethodName,
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(AnomalyGroupServiceServer).AddAnomalyToGroup(ctx, req.(*AddAnomalyToGroupRequest))
- }
- return interceptor(ctx, in, info, handler)
-}
-
-func _AnomalyGroupService_AddCulpritsToGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(AddCulpritsToGroupRequest)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(AnomalyGroupServiceServer).AddCulpritsToGroup(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: AnomalyGroupService_AddCulpritsToGroup_FullMethodName,
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(AnomalyGroupServiceServer).AddCulpritsToGroup(ctx, req.(*AddCulpritsToGroupRequest))
+ return srv.(AnomalyGroupServiceServer).UpdateAnomalyGroup(ctx, req.(*UpdateAnomalyGroupRequest))
}
return interceptor(ctx, in, info, handler)
}
@@ -327,20 +220,8 @@
Handler: _AnomalyGroupService_ReadAnomalyGroup_Handler,
},
{
- MethodName: "AddIssueIdToGroup",
- Handler: _AnomalyGroupService_AddIssueIdToGroup_Handler,
- },
- {
- MethodName: "AddBisectIdToGroup",
- Handler: _AnomalyGroupService_AddBisectIdToGroup_Handler,
- },
- {
- MethodName: "AddAnomalyToGroup",
- Handler: _AnomalyGroupService_AddAnomalyToGroup_Handler,
- },
- {
- MethodName: "AddCulpritsToGroup",
- Handler: _AnomalyGroupService_AddCulpritsToGroup_Handler,
+ MethodName: "UpdateAnomalyGroup",
+ Handler: _AnomalyGroupService_UpdateAnomalyGroup_Handler,
},
{
MethodName: "FindExistingGroups",