| // Copyright 2022 The LUCI Authors. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Code generated by protoc-gen-go. DO NOT EDIT. |
| // versions: |
| // protoc-gen-go v1.28.1 |
| // protoc v3.21.7 |
| // source: go.chromium.org/luci/bisection/proto/gofindit.proto |
| |
| package gofindit |
| |
| import prpc "go.chromium.org/luci/grpc/prpc" |
| |
| import ( |
| context "context" |
| proto "go.chromium.org/luci/buildbucket/proto" |
| _ "google.golang.org/genproto/googleapis/api/annotations" |
| grpc "google.golang.org/grpc" |
| codes "google.golang.org/grpc/codes" |
| status "google.golang.org/grpc/status" |
| protoreflect "google.golang.org/protobuf/reflect/protoreflect" |
| protoimpl "google.golang.org/protobuf/runtime/protoimpl" |
| timestamppb "google.golang.org/protobuf/types/known/timestamppb" |
| reflect "reflect" |
| sync "sync" |
| ) |
| |
| const ( |
| // Verify that this generated code is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) |
| // Verify that runtime/protoimpl is sufficiently up-to-date. |
| _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) |
| ) |
| |
| // AnalysisStatus represents the result status of an analysis |
| type AnalysisStatus int32 |
| |
| const ( |
| AnalysisStatus_ANALYSIS_STATUS_UNSPECIFIED AnalysisStatus = 0 |
| // The analysis has been created, but not yet started. |
| // We don't have this status in code. It's here for backward-compatability |
| AnalysisStatus_CREATED AnalysisStatus = 1 |
| // The analysis is running, but results have not been finalised. |
| AnalysisStatus_RUNNING AnalysisStatus = 2 |
| // The analysis has finished and found (and verified) the culprit |
| AnalysisStatus_FOUND AnalysisStatus = 3 |
| // The analysis has finished but no culprit/suspect has been found |
| AnalysisStatus_NOTFOUND AnalysisStatus = 4 |
| // The analysis results in an error |
| AnalysisStatus_ERROR AnalysisStatus = 5 |
| // The analysis found some suspects, either from heuristic or nthsection |
| AnalysisStatus_SUSPECTFOUND AnalysisStatus = 6 |
| ) |
| |
| // Enum value maps for AnalysisStatus. |
| var ( |
| AnalysisStatus_name = map[int32]string{ |
| 0: "ANALYSIS_STATUS_UNSPECIFIED", |
| 1: "CREATED", |
| 2: "RUNNING", |
| 3: "FOUND", |
| 4: "NOTFOUND", |
| 5: "ERROR", |
| 6: "SUSPECTFOUND", |
| } |
| AnalysisStatus_value = map[string]int32{ |
| "ANALYSIS_STATUS_UNSPECIFIED": 0, |
| "CREATED": 1, |
| "RUNNING": 2, |
| "FOUND": 3, |
| "NOTFOUND": 4, |
| "ERROR": 5, |
| "SUSPECTFOUND": 6, |
| } |
| ) |
| |
| func (x AnalysisStatus) Enum() *AnalysisStatus { |
| p := new(AnalysisStatus) |
| *p = x |
| return p |
| } |
| |
| func (x AnalysisStatus) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (AnalysisStatus) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (AnalysisStatus) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[0] |
| } |
| |
| func (x AnalysisStatus) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use AnalysisStatus.Descriptor instead. |
| func (AnalysisStatus) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{0} |
| } |
| |
| // AnalysisRunStatus is different from AnalysisStatus in the sense |
| // that it focused on whether the analysis is current running or not, |
| // rather than focus on the result. |
| type AnalysisRunStatus int32 |
| |
| const ( |
| AnalysisRunStatus_ANALYSIS_RUN_STATUS_UNSPECIFIED AnalysisRunStatus = 0 |
| // The analysis started and is still running. |
| AnalysisRunStatus_STARTED AnalysisRunStatus = 2 |
| // The analysis has ended (either it stopped naturally or ran into an error). |
| AnalysisRunStatus_ENDED AnalysisRunStatus = 3 |
| // The analysis has been canceled. |
| AnalysisRunStatus_CANCELED AnalysisRunStatus = 4 |
| ) |
| |
| // Enum value maps for AnalysisRunStatus. |
| var ( |
| AnalysisRunStatus_name = map[int32]string{ |
| 0: "ANALYSIS_RUN_STATUS_UNSPECIFIED", |
| 2: "STARTED", |
| 3: "ENDED", |
| 4: "CANCELED", |
| } |
| AnalysisRunStatus_value = map[string]int32{ |
| "ANALYSIS_RUN_STATUS_UNSPECIFIED": 0, |
| "STARTED": 2, |
| "ENDED": 3, |
| "CANCELED": 4, |
| } |
| ) |
| |
| func (x AnalysisRunStatus) Enum() *AnalysisRunStatus { |
| p := new(AnalysisRunStatus) |
| *p = x |
| return p |
| } |
| |
| func (x AnalysisRunStatus) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (AnalysisRunStatus) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (AnalysisRunStatus) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[1] |
| } |
| |
| func (x AnalysisRunStatus) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use AnalysisRunStatus.Descriptor instead. |
| func (AnalysisRunStatus) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{1} |
| } |
| |
| type CulpritActionType int32 |
| |
| const ( |
| CulpritActionType_CULPRIT_ACTION_TYPE_UNSPECIFIED CulpritActionType = 0 |
| // No action has been taken with the culprit |
| CulpritActionType_NO_ACTION CulpritActionType = 1 |
| // The culprit was auto reverted by LUCI Bisection |
| CulpritActionType_CULPRIT_AUTO_REVERTED CulpritActionType = 2 |
| // The revert CL for the culprit was created. |
| // Maybe waiting for a human to review or for the verification process |
| // to finish. |
| CulpritActionType_REVERT_CL_CREATED CulpritActionType = 3 |
| // LUCI Bisection commented on the culprit CL |
| CulpritActionType_CULPRIT_CL_COMMENTED CulpritActionType = 4 |
| // LUCI Bisection commented on the bug for the failure |
| CulpritActionType_BUG_COMMENTED CulpritActionType = 5 |
| // LUCI Bisection commented on an existing revert CL for the culprit CL |
| CulpritActionType_EXISTING_REVERT_CL_COMMENTED CulpritActionType = 6 |
| ) |
| |
| // Enum value maps for CulpritActionType. |
| var ( |
| CulpritActionType_name = map[int32]string{ |
| 0: "CULPRIT_ACTION_TYPE_UNSPECIFIED", |
| 1: "NO_ACTION", |
| 2: "CULPRIT_AUTO_REVERTED", |
| 3: "REVERT_CL_CREATED", |
| 4: "CULPRIT_CL_COMMENTED", |
| 5: "BUG_COMMENTED", |
| 6: "EXISTING_REVERT_CL_COMMENTED", |
| } |
| CulpritActionType_value = map[string]int32{ |
| "CULPRIT_ACTION_TYPE_UNSPECIFIED": 0, |
| "NO_ACTION": 1, |
| "CULPRIT_AUTO_REVERTED": 2, |
| "REVERT_CL_CREATED": 3, |
| "CULPRIT_CL_COMMENTED": 4, |
| "BUG_COMMENTED": 5, |
| "EXISTING_REVERT_CL_COMMENTED": 6, |
| } |
| ) |
| |
| func (x CulpritActionType) Enum() *CulpritActionType { |
| p := new(CulpritActionType) |
| *p = x |
| return p |
| } |
| |
| func (x CulpritActionType) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (CulpritActionType) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[2].Descriptor() |
| } |
| |
| func (CulpritActionType) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[2] |
| } |
| |
| func (x CulpritActionType) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use CulpritActionType.Descriptor instead. |
| func (CulpritActionType) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{2} |
| } |
| |
| type RerunStatus int32 |
| |
| const ( |
| RerunStatus_RERUN_STATUS_UNSPECIFIED RerunStatus = 0 |
| RerunStatus_RERUN_STATUS_IN_PROGRESS RerunStatus = 1 |
| RerunStatus_RERUN_STATUS_PASSED RerunStatus = 2 |
| RerunStatus_RERUN_STATUS_FAILED RerunStatus = 3 |
| RerunStatus_RERUN_STATUS_INFRA_FAILED RerunStatus = 4 |
| RerunStatus_RERUN_STATUS_CANCELED RerunStatus = 5 |
| ) |
| |
| // Enum value maps for RerunStatus. |
| var ( |
| RerunStatus_name = map[int32]string{ |
| 0: "RERUN_STATUS_UNSPECIFIED", |
| 1: "RERUN_STATUS_IN_PROGRESS", |
| 2: "RERUN_STATUS_PASSED", |
| 3: "RERUN_STATUS_FAILED", |
| 4: "RERUN_STATUS_INFRA_FAILED", |
| 5: "RERUN_STATUS_CANCELED", |
| } |
| RerunStatus_value = map[string]int32{ |
| "RERUN_STATUS_UNSPECIFIED": 0, |
| "RERUN_STATUS_IN_PROGRESS": 1, |
| "RERUN_STATUS_PASSED": 2, |
| "RERUN_STATUS_FAILED": 3, |
| "RERUN_STATUS_INFRA_FAILED": 4, |
| "RERUN_STATUS_CANCELED": 5, |
| } |
| ) |
| |
| func (x RerunStatus) Enum() *RerunStatus { |
| p := new(RerunStatus) |
| *p = x |
| return p |
| } |
| |
| func (x RerunStatus) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (RerunStatus) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[3].Descriptor() |
| } |
| |
| func (RerunStatus) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[3] |
| } |
| |
| func (x RerunStatus) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use RerunStatus.Descriptor instead. |
| func (RerunStatus) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{3} |
| } |
| |
| type SuspectConfidenceLevel int32 |
| |
| const ( |
| SuspectConfidenceLevel_SUSPECT_CONFIDENCE_LEVEL_UNSPECIFIED SuspectConfidenceLevel = 0 |
| SuspectConfidenceLevel_LOW SuspectConfidenceLevel = 1 |
| SuspectConfidenceLevel_MEDIUM SuspectConfidenceLevel = 2 |
| SuspectConfidenceLevel_HIGH SuspectConfidenceLevel = 3 |
| ) |
| |
| // Enum value maps for SuspectConfidenceLevel. |
| var ( |
| SuspectConfidenceLevel_name = map[int32]string{ |
| 0: "SUSPECT_CONFIDENCE_LEVEL_UNSPECIFIED", |
| 1: "LOW", |
| 2: "MEDIUM", |
| 3: "HIGH", |
| } |
| SuspectConfidenceLevel_value = map[string]int32{ |
| "SUSPECT_CONFIDENCE_LEVEL_UNSPECIFIED": 0, |
| "LOW": 1, |
| "MEDIUM": 2, |
| "HIGH": 3, |
| } |
| ) |
| |
| func (x SuspectConfidenceLevel) Enum() *SuspectConfidenceLevel { |
| p := new(SuspectConfidenceLevel) |
| *p = x |
| return p |
| } |
| |
| func (x SuspectConfidenceLevel) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (SuspectConfidenceLevel) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[4].Descriptor() |
| } |
| |
| func (SuspectConfidenceLevel) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[4] |
| } |
| |
| func (x SuspectConfidenceLevel) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use SuspectConfidenceLevel.Descriptor instead. |
| func (SuspectConfidenceLevel) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{4} |
| } |
| |
| type BuildFailureType int32 |
| |
| const ( |
| BuildFailureType_BUILD_FAILURE_TYPE_UNSPECIFIED BuildFailureType = 0 |
| BuildFailureType_COMPILE BuildFailureType = 1 |
| BuildFailureType_TEST BuildFailureType = 2 |
| BuildFailureType_INFRA BuildFailureType = 3 |
| BuildFailureType_OTHER BuildFailureType = 4 |
| ) |
| |
| // Enum value maps for BuildFailureType. |
| var ( |
| BuildFailureType_name = map[int32]string{ |
| 0: "BUILD_FAILURE_TYPE_UNSPECIFIED", |
| 1: "COMPILE", |
| 2: "TEST", |
| 3: "INFRA", |
| 4: "OTHER", |
| } |
| BuildFailureType_value = map[string]int32{ |
| "BUILD_FAILURE_TYPE_UNSPECIFIED": 0, |
| "COMPILE": 1, |
| "TEST": 2, |
| "INFRA": 3, |
| "OTHER": 4, |
| } |
| ) |
| |
| func (x BuildFailureType) Enum() *BuildFailureType { |
| p := new(BuildFailureType) |
| *p = x |
| return p |
| } |
| |
| func (x BuildFailureType) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (BuildFailureType) Descriptor() protoreflect.EnumDescriptor { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[5].Descriptor() |
| } |
| |
| func (BuildFailureType) Type() protoreflect.EnumType { |
| return &file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes[5] |
| } |
| |
| func (x BuildFailureType) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use BuildFailureType.Descriptor instead. |
| func (BuildFailureType) EnumDescriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{5} |
| } |
| |
| type GetAnalysisRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // ID of the analysis |
| AnalysisId int64 `protobuf:"varint,1,opt,name=analysis_id,json=analysisId,proto3" json:"analysis_id,omitempty"` |
| } |
| |
| func (x *GetAnalysisRequest) Reset() { |
| *x = GetAnalysisRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *GetAnalysisRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*GetAnalysisRequest) ProtoMessage() {} |
| |
| func (x *GetAnalysisRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[0] |
| 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 GetAnalysisRequest.ProtoReflect.Descriptor instead. |
| func (*GetAnalysisRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *GetAnalysisRequest) GetAnalysisId() int64 { |
| if x != nil { |
| return x.AnalysisId |
| } |
| return 0 |
| } |
| |
| type QueryAnalysisRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The build failure information to query for the analyses. |
| BuildFailure *BuildFailure `protobuf:"bytes,1,opt,name=build_failure,json=buildFailure,proto3" json:"build_failure,omitempty"` |
| } |
| |
| func (x *QueryAnalysisRequest) Reset() { |
| *x = QueryAnalysisRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *QueryAnalysisRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*QueryAnalysisRequest) ProtoMessage() {} |
| |
| func (x *QueryAnalysisRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[1] |
| 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 QueryAnalysisRequest.ProtoReflect.Descriptor instead. |
| func (*QueryAnalysisRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *QueryAnalysisRequest) GetBuildFailure() *BuildFailure { |
| if x != nil { |
| return x.BuildFailure |
| } |
| return nil |
| } |
| |
| type QueryAnalysisResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The analyses corresponding to the QueryAnalysisRequest. |
| Analyses []*Analysis `protobuf:"bytes,1,rep,name=analyses,proto3" json:"analyses,omitempty"` |
| } |
| |
| func (x *QueryAnalysisResponse) Reset() { |
| *x = QueryAnalysisResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *QueryAnalysisResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*QueryAnalysisResponse) ProtoMessage() {} |
| |
| func (x *QueryAnalysisResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[2] |
| 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 QueryAnalysisResponse.ProtoReflect.Descriptor instead. |
| func (*QueryAnalysisResponse) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (x *QueryAnalysisResponse) GetAnalyses() []*Analysis { |
| if x != nil { |
| return x.Analyses |
| } |
| return nil |
| } |
| |
| type ListAnalysesRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Optional. The maximum number of analyses to be returned in the response. |
| // The service may return fewer than this value. |
| // If unspecified, at most 50 analyses will be returned. |
| // The maximum value is 200; values above 200 will be coerced to 200. |
| PageSize int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` |
| // Optional. A page token, received from a previous `ListAnalyses` call. |
| // Provide this to retrieve the subsequent page. |
| // When paginating, all other parameters provided to `ListAnalyses` must |
| // match the call that provided the page token, |
| // with the exception of page_size and page_token. |
| PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` |
| } |
| |
| func (x *ListAnalysesRequest) Reset() { |
| *x = ListAnalysesRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListAnalysesRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListAnalysesRequest) ProtoMessage() {} |
| |
| func (x *ListAnalysesRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[3] |
| 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 ListAnalysesRequest.ProtoReflect.Descriptor instead. |
| func (*ListAnalysesRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *ListAnalysesRequest) GetPageSize() int32 { |
| if x != nil { |
| return x.PageSize |
| } |
| return 0 |
| } |
| |
| func (x *ListAnalysesRequest) GetPageToken() string { |
| if x != nil { |
| return x.PageToken |
| } |
| return "" |
| } |
| |
| type ListAnalysesResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The analyses corresponding to the ListAnalysesRequest. |
| Analyses []*Analysis `protobuf:"bytes,1,rep,name=analyses,proto3" json:"analyses,omitempty"` |
| // The token to send as `page_token` to retrieve the next page of analyses. |
| // If this field is omitted, there are no subsequent pages. |
| NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` |
| } |
| |
| func (x *ListAnalysesResponse) Reset() { |
| *x = ListAnalysesResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ListAnalysesResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ListAnalysesResponse) ProtoMessage() {} |
| |
| func (x *ListAnalysesResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[4] |
| 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 ListAnalysesResponse.ProtoReflect.Descriptor instead. |
| func (*ListAnalysesResponse) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *ListAnalysesResponse) GetAnalyses() []*Analysis { |
| if x != nil { |
| return x.Analyses |
| } |
| return nil |
| } |
| |
| func (x *ListAnalysesResponse) GetNextPageToken() string { |
| if x != nil { |
| return x.NextPageToken |
| } |
| return "" |
| } |
| |
| type TriggerAnalysisRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // failure for which to trigger the analysis. |
| BuildFailure *BuildFailure `protobuf:"bytes,1,opt,name=build_failure,json=buildFailure,proto3" json:"build_failure,omitempty"` |
| // Optionally, the client can pass the bug associated with the failure. |
| // Findit will update the bug with analysis progress/result. |
| // This is mainly for SoM, which has information about bugs associated |
| // with a failure. |
| BugInfo []*BugInfo `protobuf:"bytes,2,rep,name=bug_info,json=bugInfo,proto3" json:"bug_info,omitempty"` |
| } |
| |
| func (x *TriggerAnalysisRequest) Reset() { |
| *x = TriggerAnalysisRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TriggerAnalysisRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TriggerAnalysisRequest) ProtoMessage() {} |
| |
| func (x *TriggerAnalysisRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[5] |
| 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 TriggerAnalysisRequest.ProtoReflect.Descriptor instead. |
| func (*TriggerAnalysisRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (x *TriggerAnalysisRequest) GetBuildFailure() *BuildFailure { |
| if x != nil { |
| return x.BuildFailure |
| } |
| return nil |
| } |
| |
| func (x *TriggerAnalysisRequest) GetBugInfo() []*BugInfo { |
| if x != nil { |
| return x.BugInfo |
| } |
| return nil |
| } |
| |
| type TriggerAnalysisResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The analysis result corresponding to the request. |
| // It is either a new analysis or an existing one. |
| Result *Analysis `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` |
| // is_new_analysis will be set to true if a new analysis is triggered. |
| // It will be set to false if an existing analysis is used instead. |
| IsNewAnalysis bool `protobuf:"varint,2,opt,name=is_new_analysis,json=isNewAnalysis,proto3" json:"is_new_analysis,omitempty"` |
| } |
| |
| func (x *TriggerAnalysisResponse) Reset() { |
| *x = TriggerAnalysisResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *TriggerAnalysisResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*TriggerAnalysisResponse) ProtoMessage() {} |
| |
| func (x *TriggerAnalysisResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_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 TriggerAnalysisResponse.ProtoReflect.Descriptor instead. |
| func (*TriggerAnalysisResponse) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (x *TriggerAnalysisResponse) GetResult() *Analysis { |
| if x != nil { |
| return x.Result |
| } |
| return nil |
| } |
| |
| func (x *TriggerAnalysisResponse) GetIsNewAnalysis() bool { |
| if x != nil { |
| return x.IsNewAnalysis |
| } |
| return false |
| } |
| |
| // Update the information of an analysis. |
| // At the mean time, it is only used for update the bugs associated with an |
| // analysis. |
| // LUCI Bisection will comment on the bug with analysis progress/results. |
| // Note: Existing bugs associated with the analysis will be replaced. |
| type UpdateAnalysisRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // ID of the analysis |
| AnalysisId string `protobuf:"bytes,1,opt,name=analysis_id,json=analysisId,proto3" json:"analysis_id,omitempty"` |
| BugInfo []*BugInfo `protobuf:"bytes,2,rep,name=bug_info,json=bugInfo,proto3" json:"bug_info,omitempty"` |
| } |
| |
| func (x *UpdateAnalysisRequest) Reset() { |
| *x = UpdateAnalysisRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UpdateAnalysisRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UpdateAnalysisRequest) ProtoMessage() {} |
| |
| func (x *UpdateAnalysisRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_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 UpdateAnalysisRequest.ProtoReflect.Descriptor instead. |
| func (*UpdateAnalysisRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *UpdateAnalysisRequest) GetAnalysisId() string { |
| if x != nil { |
| return x.AnalysisId |
| } |
| return "" |
| } |
| |
| func (x *UpdateAnalysisRequest) GetBugInfo() []*BugInfo { |
| if x != nil { |
| return x.BugInfo |
| } |
| return nil |
| } |
| |
| // RPC called from bots to update the analysis progress |
| type UpdateAnalysisProgressRequest struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The analysis that the bot runs |
| AnalysisId int64 `protobuf:"varint,1,opt,name=analysis_id,json=analysisId,proto3" json:"analysis_id,omitempty"` |
| // Bot id |
| BotId string `protobuf:"bytes,2,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` |
| // BuildbucketID of the rerun build |
| // We use this to determine which rerun build to map back. |
| Bbid int64 `protobuf:"varint,3,opt,name=bbid,proto3" json:"bbid,omitempty"` |
| // The revision that the bot runs |
| GitilesCommit *proto.GitilesCommit `protobuf:"bytes,4,opt,name=gitiles_commit,json=gitilesCommit,proto3" json:"gitiles_commit,omitempty"` |
| // Result of the rerun |
| RerunResult *RerunResult `protobuf:"bytes,5,opt,name=rerun_result,json=rerunResult,proto3" json:"rerun_result,omitempty"` |
| } |
| |
| func (x *UpdateAnalysisProgressRequest) Reset() { |
| *x = UpdateAnalysisProgressRequest{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UpdateAnalysisProgressRequest) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UpdateAnalysisProgressRequest) ProtoMessage() {} |
| |
| func (x *UpdateAnalysisProgressRequest) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_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 UpdateAnalysisProgressRequest.ProtoReflect.Descriptor instead. |
| func (*UpdateAnalysisProgressRequest) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *UpdateAnalysisProgressRequest) GetAnalysisId() int64 { |
| if x != nil { |
| return x.AnalysisId |
| } |
| return 0 |
| } |
| |
| func (x *UpdateAnalysisProgressRequest) GetBotId() string { |
| if x != nil { |
| return x.BotId |
| } |
| return "" |
| } |
| |
| func (x *UpdateAnalysisProgressRequest) GetBbid() int64 { |
| if x != nil { |
| return x.Bbid |
| } |
| return 0 |
| } |
| |
| func (x *UpdateAnalysisProgressRequest) GetGitilesCommit() *proto.GitilesCommit { |
| if x != nil { |
| return x.GitilesCommit |
| } |
| return nil |
| } |
| |
| func (x *UpdateAnalysisProgressRequest) GetRerunResult() *RerunResult { |
| if x != nil { |
| return x.RerunResult |
| } |
| return nil |
| } |
| |
| type UpdateAnalysisProgressResponse struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The next revision for the bot to run. |
| // This is because we can compile faster when the same bot runs |
| // multiple revisions. |
| // If this is not set, then there is no further revision to run. |
| // The bot can finish and be released. |
| NextRevisionToRun *proto.GitilesCommit `protobuf:"bytes,1,opt,name=next_revision_to_run,json=nextRevisionToRun,proto3" json:"next_revision_to_run,omitempty"` |
| } |
| |
| func (x *UpdateAnalysisProgressResponse) Reset() { |
| *x = UpdateAnalysisProgressResponse{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *UpdateAnalysisProgressResponse) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*UpdateAnalysisProgressResponse) ProtoMessage() {} |
| |
| func (x *UpdateAnalysisProgressResponse) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_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 UpdateAnalysisProgressResponse.ProtoReflect.Descriptor instead. |
| func (*UpdateAnalysisProgressResponse) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{9} |
| } |
| |
| func (x *UpdateAnalysisProgressResponse) GetNextRevisionToRun() *proto.GitilesCommit { |
| if x != nil { |
| return x.NextRevisionToRun |
| } |
| return nil |
| } |
| |
| // Analysis result contains result of an analysis |
| type Analysis struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Id to identify this analysis |
| AnalysisId int64 `protobuf:"varint,1,opt,name=analysis_id,json=analysisId,proto3" json:"analysis_id,omitempty"` |
| // The failure associated with the analysis. |
| BuildFailure *BuildFailure `protobuf:"bytes,2,opt,name=build_failure,json=buildFailure,proto3" json:"build_failure,omitempty"` |
| // Status of the analysis |
| Status AnalysisStatus `protobuf:"varint,3,opt,name=status,proto3,enum=gofindit.AnalysisStatus" json:"status,omitempty"` |
| // Buildbucket ID for the last passed build |
| LastPassedBbid int64 `protobuf:"varint,4,opt,name=last_passed_bbid,json=lastPassedBbid,proto3" json:"last_passed_bbid,omitempty"` |
| // Buildbucket ID for the first failed build |
| FirstFailedBbid int64 `protobuf:"varint,5,opt,name=first_failed_bbid,json=firstFailedBbid,proto3" json:"first_failed_bbid,omitempty"` |
| // Timestamp for the created time of the analysis |
| CreatedTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_time,json=createdTime,proto3" json:"created_time,omitempty"` |
| // Timestamp for the last updated time of the analysis |
| LastUpdatedTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=last_updated_time,json=lastUpdatedTime,proto3" json:"last_updated_time,omitempty"` |
| // Timestamp for the end time of the analysis |
| EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` |
| // Result of heuristic analysis |
| HeuristicResult *HeuristicAnalysisResult `protobuf:"bytes,9,opt,name=heuristic_result,json=heuristicResult,proto3" json:"heuristic_result,omitempty"` |
| // Result of nth-section analysis |
| NthSectionResult *NthSectionAnalysisResult `protobuf:"bytes,10,opt,name=nth_section_result,json=nthSectionResult,proto3" json:"nth_section_result,omitempty"` |
| // Builder for the first failed build |
| Builder *proto.BuilderID `protobuf:"bytes,13,opt,name=builder,proto3" json:"builder,omitempty"` |
| // Type of the failure associated with the analysis |
| BuildFailureType BuildFailureType `protobuf:"varint,14,opt,name=build_failure_type,json=buildFailureType,proto3,enum=gofindit.BuildFailureType" json:"build_failure_type,omitempty"` |
| // The culprits for the analysis |
| // For some rare cases, we may get more than one culprits for a regression range. |
| // So we set it as repeated field. |
| Culprits []*Culprit `protobuf:"bytes,15,rep,name=culprits,proto3" json:"culprits,omitempty"` |
| } |
| |
| func (x *Analysis) Reset() { |
| *x = Analysis{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Analysis) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Analysis) ProtoMessage() {} |
| |
| func (x *Analysis) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[10] |
| 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 Analysis.ProtoReflect.Descriptor instead. |
| func (*Analysis) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{10} |
| } |
| |
| func (x *Analysis) GetAnalysisId() int64 { |
| if x != nil { |
| return x.AnalysisId |
| } |
| return 0 |
| } |
| |
| func (x *Analysis) GetBuildFailure() *BuildFailure { |
| if x != nil { |
| return x.BuildFailure |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetStatus() AnalysisStatus { |
| if x != nil { |
| return x.Status |
| } |
| return AnalysisStatus_ANALYSIS_STATUS_UNSPECIFIED |
| } |
| |
| func (x *Analysis) GetLastPassedBbid() int64 { |
| if x != nil { |
| return x.LastPassedBbid |
| } |
| return 0 |
| } |
| |
| func (x *Analysis) GetFirstFailedBbid() int64 { |
| if x != nil { |
| return x.FirstFailedBbid |
| } |
| return 0 |
| } |
| |
| func (x *Analysis) GetCreatedTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.CreatedTime |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetLastUpdatedTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.LastUpdatedTime |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetEndTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EndTime |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetHeuristicResult() *HeuristicAnalysisResult { |
| if x != nil { |
| return x.HeuristicResult |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetNthSectionResult() *NthSectionAnalysisResult { |
| if x != nil { |
| return x.NthSectionResult |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetBuilder() *proto.BuilderID { |
| if x != nil { |
| return x.Builder |
| } |
| return nil |
| } |
| |
| func (x *Analysis) GetBuildFailureType() BuildFailureType { |
| if x != nil { |
| return x.BuildFailureType |
| } |
| return BuildFailureType_BUILD_FAILURE_TYPE_UNSPECIFIED |
| } |
| |
| func (x *Analysis) GetCulprits() []*Culprit { |
| if x != nil { |
| return x.Culprits |
| } |
| return nil |
| } |
| |
| type Culprit struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The gitiles commit for the culprit |
| Commit *proto.GitilesCommit `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"` |
| // The review URL for the culprit |
| ReviewUrl string `protobuf:"bytes,2,opt,name=review_url,json=reviewUrl,proto3" json:"review_url,omitempty"` |
| // The review title for the culprit |
| ReviewTitle string `protobuf:"bytes,3,opt,name=review_title,json=reviewTitle,proto3" json:"review_title,omitempty"` |
| // Actions we have taken with the culprit. |
| // More than one action may be taken, for example, reverting the culprit and |
| // commenting on the bug. |
| CulpritAction []*CulpritAction `protobuf:"bytes,4,rep,name=culprit_action,json=culpritAction,proto3" json:"culprit_action,omitempty"` |
| // The details of suspect verification for the culprit |
| VerificationDetails *SuspectVerificationDetails `protobuf:"bytes,5,opt,name=verification_details,json=verificationDetails,proto3" json:"verification_details,omitempty"` |
| } |
| |
| func (x *Culprit) Reset() { |
| *x = Culprit{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *Culprit) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*Culprit) ProtoMessage() {} |
| |
| func (x *Culprit) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[11] |
| 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 Culprit.ProtoReflect.Descriptor instead. |
| func (*Culprit) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{11} |
| } |
| |
| func (x *Culprit) GetCommit() *proto.GitilesCommit { |
| if x != nil { |
| return x.Commit |
| } |
| return nil |
| } |
| |
| func (x *Culprit) GetReviewUrl() string { |
| if x != nil { |
| return x.ReviewUrl |
| } |
| return "" |
| } |
| |
| func (x *Culprit) GetReviewTitle() string { |
| if x != nil { |
| return x.ReviewTitle |
| } |
| return "" |
| } |
| |
| func (x *Culprit) GetCulpritAction() []*CulpritAction { |
| if x != nil { |
| return x.CulpritAction |
| } |
| return nil |
| } |
| |
| func (x *Culprit) GetVerificationDetails() *SuspectVerificationDetails { |
| if x != nil { |
| return x.VerificationDetails |
| } |
| return nil |
| } |
| |
| type SuspectVerificationDetails struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The status of the suspect verification |
| Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` |
| // The verification rerun build for the suspect commit |
| SuspectRerun *SingleRerun `protobuf:"bytes,2,opt,name=suspect_rerun,json=suspectRerun,proto3" json:"suspect_rerun,omitempty"` |
| // The verification rerun build for the parent commit of the suspect |
| ParentRerun *SingleRerun `protobuf:"bytes,3,opt,name=parent_rerun,json=parentRerun,proto3" json:"parent_rerun,omitempty"` |
| } |
| |
| func (x *SuspectVerificationDetails) Reset() { |
| *x = SuspectVerificationDetails{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SuspectVerificationDetails) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SuspectVerificationDetails) ProtoMessage() {} |
| |
| func (x *SuspectVerificationDetails) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[12] |
| 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 SuspectVerificationDetails.ProtoReflect.Descriptor instead. |
| func (*SuspectVerificationDetails) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{12} |
| } |
| |
| func (x *SuspectVerificationDetails) GetStatus() string { |
| if x != nil { |
| return x.Status |
| } |
| return "" |
| } |
| |
| func (x *SuspectVerificationDetails) GetSuspectRerun() *SingleRerun { |
| if x != nil { |
| return x.SuspectRerun |
| } |
| return nil |
| } |
| |
| func (x *SuspectVerificationDetails) GetParentRerun() *SingleRerun { |
| if x != nil { |
| return x.ParentRerun |
| } |
| return nil |
| } |
| |
| type HeuristicAnalysisResult struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The status of the heuristic analysis. |
| Status AnalysisStatus `protobuf:"varint,1,opt,name=status,proto3,enum=gofindit.AnalysisStatus" json:"status,omitempty"` |
| // One or more suspects of the heuristic analysis. |
| // This field exists only when status = FINISHED. |
| Suspects []*HeuristicSuspect `protobuf:"bytes,2,rep,name=suspects,proto3" json:"suspects,omitempty"` |
| // Start time of heuristic analysis. |
| StartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` |
| // End time of heuristic analysis. |
| EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` |
| } |
| |
| func (x *HeuristicAnalysisResult) Reset() { |
| *x = HeuristicAnalysisResult{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[13] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *HeuristicAnalysisResult) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*HeuristicAnalysisResult) ProtoMessage() {} |
| |
| func (x *HeuristicAnalysisResult) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_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 HeuristicAnalysisResult.ProtoReflect.Descriptor instead. |
| func (*HeuristicAnalysisResult) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{13} |
| } |
| |
| func (x *HeuristicAnalysisResult) GetStatus() AnalysisStatus { |
| if x != nil { |
| return x.Status |
| } |
| return AnalysisStatus_ANALYSIS_STATUS_UNSPECIFIED |
| } |
| |
| func (x *HeuristicAnalysisResult) GetSuspects() []*HeuristicSuspect { |
| if x != nil { |
| return x.Suspects |
| } |
| return nil |
| } |
| |
| func (x *HeuristicAnalysisResult) GetStartTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.StartTime |
| } |
| return nil |
| } |
| |
| func (x *HeuristicAnalysisResult) GetEndTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EndTime |
| } |
| return nil |
| } |
| |
| type HeuristicSuspect struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // A suspect revision of heuristic analysis. |
| GitilesCommit *proto.GitilesCommit `protobuf:"bytes,1,opt,name=gitiles_commit,json=gitilesCommit,proto3" json:"gitiles_commit,omitempty"` |
| // Review URL for the commit |
| ReviewUrl string `protobuf:"bytes,2,opt,name=reviewUrl,proto3" json:"reviewUrl,omitempty"` |
| // Score is an integer representing the how confident we believe the suspect |
| // is indeed the culprit. |
| // A higher score means a stronger signal that the suspect is responsible for |
| // a failure. |
| Score int32 `protobuf:"varint,3,opt,name=score,proto3" json:"score,omitempty"` |
| // The reason why heuristic analysis thinks the suspect is a possible culprit. |
| Justification string `protobuf:"bytes,4,opt,name=justification,proto3" json:"justification,omitempty"` |
| // Whether the suspect has been verified by the culprit verification component. |
| Verified bool `protobuf:"varint,5,opt,name=verified,proto3" json:"verified,omitempty"` |
| // The level of confidence we have for the suspect. |
| ConfidenceLevel SuspectConfidenceLevel `protobuf:"varint,6,opt,name=confidence_level,json=confidenceLevel,proto3,enum=gofindit.SuspectConfidenceLevel" json:"confidence_level,omitempty"` |
| // Title of the review for the commit |
| ReviewTitle string `protobuf:"bytes,7,opt,name=reviewTitle,proto3" json:"reviewTitle,omitempty"` |
| // The details of suspect verification for the suspect |
| VerificationDetails *SuspectVerificationDetails `protobuf:"bytes,8,opt,name=verification_details,json=verificationDetails,proto3" json:"verification_details,omitempty"` |
| } |
| |
| func (x *HeuristicSuspect) Reset() { |
| *x = HeuristicSuspect{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[14] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *HeuristicSuspect) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*HeuristicSuspect) ProtoMessage() {} |
| |
| func (x *HeuristicSuspect) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[14] |
| 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 HeuristicSuspect.ProtoReflect.Descriptor instead. |
| func (*HeuristicSuspect) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{14} |
| } |
| |
| func (x *HeuristicSuspect) GetGitilesCommit() *proto.GitilesCommit { |
| if x != nil { |
| return x.GitilesCommit |
| } |
| return nil |
| } |
| |
| func (x *HeuristicSuspect) GetReviewUrl() string { |
| if x != nil { |
| return x.ReviewUrl |
| } |
| return "" |
| } |
| |
| func (x *HeuristicSuspect) GetScore() int32 { |
| if x != nil { |
| return x.Score |
| } |
| return 0 |
| } |
| |
| func (x *HeuristicSuspect) GetJustification() string { |
| if x != nil { |
| return x.Justification |
| } |
| return "" |
| } |
| |
| func (x *HeuristicSuspect) GetVerified() bool { |
| if x != nil { |
| return x.Verified |
| } |
| return false |
| } |
| |
| func (x *HeuristicSuspect) GetConfidenceLevel() SuspectConfidenceLevel { |
| if x != nil { |
| return x.ConfidenceLevel |
| } |
| return SuspectConfidenceLevel_SUSPECT_CONFIDENCE_LEVEL_UNSPECIFIED |
| } |
| |
| func (x *HeuristicSuspect) GetReviewTitle() string { |
| if x != nil { |
| return x.ReviewTitle |
| } |
| return "" |
| } |
| |
| func (x *HeuristicSuspect) GetVerificationDetails() *SuspectVerificationDetails { |
| if x != nil { |
| return x.VerificationDetails |
| } |
| return nil |
| } |
| |
| type NthSectionAnalysisResult struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The status of the nth-section analysis. |
| Status AnalysisStatus `protobuf:"varint,1,opt,name=status,proto3,enum=gofindit.AnalysisStatus" json:"status,omitempty"` |
| // Timestamp for the start time of the nth-section analysis |
| StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` |
| // Timestamp for the last updated time of the nth-section analysis |
| LastUpdatedTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=last_updated_time,json=lastUpdatedTime,proto3" json:"last_updated_time,omitempty"` |
| // Timestamp for the end time of the nth-section analysis |
| EndTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` |
| // Optional, the culprit GitilesCommit, when status = FOUND |
| Culprit *proto.GitilesCommit `protobuf:"bytes,5,opt,name=culprit,proto3" json:"culprit,omitempty"` |
| // Optional, whether the culprit has been verified, when status = FOUND |
| Verified bool `protobuf:"varint,6,opt,name=verified,proto3" json:"verified,omitempty"` |
| // Optional, when status = RUNNING. |
| // This is the possible range of the culprit. |
| // This will be updated as the nth-section progress. |
| RemainingNthSectionRange *RegressionRange `protobuf:"bytes,7,opt,name=remainingNthSectionRange,proto3" json:"remainingNthSectionRange,omitempty"` |
| // Optional, when status = ERROR |
| ErrorMessage string `protobuf:"bytes,8,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` |
| // List of the reruns that have been run so far for the nth-section. |
| // analysis. |
| // This is useful to analyse the nth-section progress. |
| // The runs are sorted by the start timestamp. |
| Reruns []*SingleRerun `protobuf:"bytes,9,rep,name=reruns,proto3" json:"reruns,omitempty"` |
| // The blame list of commits to run the nthsection analysis on |
| // The commits are sorted by recency, with the most recent commit at the beginning. |
| BlameList *BlameList `protobuf:"bytes,10,opt,name=blameList,proto3" json:"blameList,omitempty"` |
| } |
| |
| func (x *NthSectionAnalysisResult) Reset() { |
| *x = NthSectionAnalysisResult{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[15] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *NthSectionAnalysisResult) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*NthSectionAnalysisResult) ProtoMessage() {} |
| |
| func (x *NthSectionAnalysisResult) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[15] |
| 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 NthSectionAnalysisResult.ProtoReflect.Descriptor instead. |
| func (*NthSectionAnalysisResult) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{15} |
| } |
| |
| func (x *NthSectionAnalysisResult) GetStatus() AnalysisStatus { |
| if x != nil { |
| return x.Status |
| } |
| return AnalysisStatus_ANALYSIS_STATUS_UNSPECIFIED |
| } |
| |
| func (x *NthSectionAnalysisResult) GetStartTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.StartTime |
| } |
| return nil |
| } |
| |
| func (x *NthSectionAnalysisResult) GetLastUpdatedTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.LastUpdatedTime |
| } |
| return nil |
| } |
| |
| func (x *NthSectionAnalysisResult) GetEndTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EndTime |
| } |
| return nil |
| } |
| |
| func (x *NthSectionAnalysisResult) GetCulprit() *proto.GitilesCommit { |
| if x != nil { |
| return x.Culprit |
| } |
| return nil |
| } |
| |
| func (x *NthSectionAnalysisResult) GetVerified() bool { |
| if x != nil { |
| return x.Verified |
| } |
| return false |
| } |
| |
| func (x *NthSectionAnalysisResult) GetRemainingNthSectionRange() *RegressionRange { |
| if x != nil { |
| return x.RemainingNthSectionRange |
| } |
| return nil |
| } |
| |
| func (x *NthSectionAnalysisResult) GetErrorMessage() string { |
| if x != nil { |
| return x.ErrorMessage |
| } |
| return "" |
| } |
| |
| func (x *NthSectionAnalysisResult) GetReruns() []*SingleRerun { |
| if x != nil { |
| return x.Reruns |
| } |
| return nil |
| } |
| |
| func (x *NthSectionAnalysisResult) GetBlameList() *BlameList { |
| if x != nil { |
| return x.BlameList |
| } |
| return nil |
| } |
| |
| type BlameList struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Commits []*BlameListSingleCommit `protobuf:"bytes,1,rep,name=commits,proto3" json:"commits,omitempty"` |
| } |
| |
| func (x *BlameList) Reset() { |
| *x = BlameList{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[16] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BlameList) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BlameList) ProtoMessage() {} |
| |
| func (x *BlameList) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[16] |
| 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 BlameList.ProtoReflect.Descriptor instead. |
| func (*BlameList) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{16} |
| } |
| |
| func (x *BlameList) GetCommits() []*BlameListSingleCommit { |
| if x != nil { |
| return x.Commits |
| } |
| return nil |
| } |
| |
| type BlameListSingleCommit struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Commit string `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"` |
| ReviewUrl string `protobuf:"bytes,2,opt,name=reviewUrl,proto3" json:"reviewUrl,omitempty"` |
| ReviewTitle string `protobuf:"bytes,3,opt,name=reviewTitle,proto3" json:"reviewTitle,omitempty"` |
| } |
| |
| func (x *BlameListSingleCommit) Reset() { |
| *x = BlameListSingleCommit{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[17] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BlameListSingleCommit) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BlameListSingleCommit) ProtoMessage() {} |
| |
| func (x *BlameListSingleCommit) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[17] |
| 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 BlameListSingleCommit.ProtoReflect.Descriptor instead. |
| func (*BlameListSingleCommit) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{17} |
| } |
| |
| func (x *BlameListSingleCommit) GetCommit() string { |
| if x != nil { |
| return x.Commit |
| } |
| return "" |
| } |
| |
| func (x *BlameListSingleCommit) GetReviewUrl() string { |
| if x != nil { |
| return x.ReviewUrl |
| } |
| return "" |
| } |
| |
| func (x *BlameListSingleCommit) GetReviewTitle() string { |
| if x != nil { |
| return x.ReviewTitle |
| } |
| return "" |
| } |
| |
| // An action that LUCI Bisection has taken with the culprit |
| type CulpritAction struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| ActionType CulpritActionType `protobuf:"varint,1,opt,name=action_type,json=actionType,proto3,enum=gofindit.CulpritActionType" json:"action_type,omitempty"` |
| // URL to the revert CL, if action_type = CULPRIT_AUTO_REVERTED |
| // or REVERT_CL_CREATED |
| RevertClUrl string `protobuf:"bytes,2,opt,name=revert_cl_url,json=revertClUrl,proto3" json:"revert_cl_url,omitempty"` |
| // URL to the bug, if action_type = BUG_COMMENTED |
| BugUrl string `protobuf:"bytes,3,opt,name=bug_url,json=bugUrl,proto3" json:"bug_url,omitempty"` |
| // Timestamp when the culprit action was done |
| ActionTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=action_time,json=actionTime,proto3" json:"action_time,omitempty"` |
| } |
| |
| func (x *CulpritAction) Reset() { |
| *x = CulpritAction{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[18] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *CulpritAction) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*CulpritAction) ProtoMessage() {} |
| |
| func (x *CulpritAction) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[18] |
| 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 CulpritAction.ProtoReflect.Descriptor instead. |
| func (*CulpritAction) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{18} |
| } |
| |
| func (x *CulpritAction) GetActionType() CulpritActionType { |
| if x != nil { |
| return x.ActionType |
| } |
| return CulpritActionType_CULPRIT_ACTION_TYPE_UNSPECIFIED |
| } |
| |
| func (x *CulpritAction) GetRevertClUrl() string { |
| if x != nil { |
| return x.RevertClUrl |
| } |
| return "" |
| } |
| |
| func (x *CulpritAction) GetBugUrl() string { |
| if x != nil { |
| return x.BugUrl |
| } |
| return "" |
| } |
| |
| func (x *CulpritAction) GetActionTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.ActionTime |
| } |
| return nil |
| } |
| |
| // Regression range is (last_passed..first_failed] |
| type RegressionRange struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| LastPassed *proto.GitilesCommit `protobuf:"bytes,1,opt,name=last_passed,json=lastPassed,proto3" json:"last_passed,omitempty"` |
| FirstFailed *proto.GitilesCommit `protobuf:"bytes,2,opt,name=first_failed,json=firstFailed,proto3" json:"first_failed,omitempty"` |
| // How many revisions between last passed (exclusively) and first failed (inclusively). |
| NumberOfRevisions int32 `protobuf:"varint,3,opt,name=number_of_revisions,json=numberOfRevisions,proto3" json:"number_of_revisions,omitempty"` |
| } |
| |
| func (x *RegressionRange) Reset() { |
| *x = RegressionRange{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[19] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RegressionRange) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RegressionRange) ProtoMessage() {} |
| |
| func (x *RegressionRange) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[19] |
| 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 RegressionRange.ProtoReflect.Descriptor instead. |
| func (*RegressionRange) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{19} |
| } |
| |
| func (x *RegressionRange) GetLastPassed() *proto.GitilesCommit { |
| if x != nil { |
| return x.LastPassed |
| } |
| return nil |
| } |
| |
| func (x *RegressionRange) GetFirstFailed() *proto.GitilesCommit { |
| if x != nil { |
| return x.FirstFailed |
| } |
| return nil |
| } |
| |
| func (x *RegressionRange) GetNumberOfRevisions() int32 { |
| if x != nil { |
| return x.NumberOfRevisions |
| } |
| return 0 |
| } |
| |
| // NthSection run contains information about a single rerun in n-section. |
| // The same bot may be reused for multiple rerun (to speed up compilation time) |
| type SingleRerun struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Timestamp for the created time of the rerun |
| StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` |
| // Timestamp for the last updated time of the rerun. |
| LastUpdatedTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=last_updated_time,json=lastUpdatedTime,proto3" json:"last_updated_time,omitempty"` |
| // Timestamp for the end time of the rerun |
| EndTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` |
| // Buildbucket ID of the rerun build. |
| Bbid int64 `protobuf:"varint,4,opt,name=bbid,proto3" json:"bbid,omitempty"` |
| // Task id of the rerun |
| TaskId string `protobuf:"bytes,5,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"` |
| // Id of the bot |
| BotId string `protobuf:"bytes,6,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` |
| // Result of the rerun |
| RerunResult *RerunResult `protobuf:"bytes,7,opt,name=rerun_result,json=rerunResult,proto3" json:"rerun_result,omitempty"` |
| } |
| |
| func (x *SingleRerun) Reset() { |
| *x = SingleRerun{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[20] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SingleRerun) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SingleRerun) ProtoMessage() {} |
| |
| func (x *SingleRerun) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[20] |
| 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 SingleRerun.ProtoReflect.Descriptor instead. |
| func (*SingleRerun) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{20} |
| } |
| |
| func (x *SingleRerun) GetStartTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.StartTime |
| } |
| return nil |
| } |
| |
| func (x *SingleRerun) GetLastUpdatedTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.LastUpdatedTime |
| } |
| return nil |
| } |
| |
| func (x *SingleRerun) GetEndTime() *timestamppb.Timestamp { |
| if x != nil { |
| return x.EndTime |
| } |
| return nil |
| } |
| |
| func (x *SingleRerun) GetBbid() int64 { |
| if x != nil { |
| return x.Bbid |
| } |
| return 0 |
| } |
| |
| func (x *SingleRerun) GetTaskId() string { |
| if x != nil { |
| return x.TaskId |
| } |
| return "" |
| } |
| |
| func (x *SingleRerun) GetBotId() string { |
| if x != nil { |
| return x.BotId |
| } |
| return "" |
| } |
| |
| func (x *SingleRerun) GetRerunResult() *RerunResult { |
| if x != nil { |
| return x.RerunResult |
| } |
| return nil |
| } |
| |
| // RerunResult contains the result of one rerun. |
| // It is for the bots to update result back to LUCI Bisection. |
| type RerunResult struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Status of the rerun |
| RerunStatus RerunStatus `protobuf:"varint,1,opt,name=rerun_status,json=rerunStatus,proto3,enum=gofindit.RerunStatus" json:"rerun_status,omitempty"` |
| // Error message, in case of FAILED or INFRA_FAILED status |
| ErrorMessage string `protobuf:"bytes,2,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` |
| } |
| |
| func (x *RerunResult) Reset() { |
| *x = RerunResult{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[21] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RerunResult) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RerunResult) ProtoMessage() {} |
| |
| func (x *RerunResult) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[21] |
| 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 RerunResult.ProtoReflect.Descriptor instead. |
| func (*RerunResult) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{21} |
| } |
| |
| func (x *RerunResult) GetRerunStatus() RerunStatus { |
| if x != nil { |
| return x.RerunStatus |
| } |
| return RerunStatus_RERUN_STATUS_UNSPECIFIED |
| } |
| |
| func (x *RerunResult) GetErrorMessage() string { |
| if x != nil { |
| return x.ErrorMessage |
| } |
| return "" |
| } |
| |
| // Build failure record a failure in a build. |
| type BuildFailure struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Buildbucket id for the failed build |
| Bbid int64 `protobuf:"varint,1,opt,name=bbid,proto3" json:"bbid,omitempty"` |
| // failed_step_name should be 'compile' for compile failures. |
| FailedStepName string `protobuf:"bytes,2,opt,name=failed_step_name,json=failedStepName,proto3" json:"failed_step_name,omitempty"` |
| } |
| |
| func (x *BuildFailure) Reset() { |
| *x = BuildFailure{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[22] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BuildFailure) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BuildFailure) ProtoMessage() {} |
| |
| func (x *BuildFailure) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[22] |
| 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 BuildFailure.ProtoReflect.Descriptor instead. |
| func (*BuildFailure) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{22} |
| } |
| |
| func (x *BuildFailure) GetBbid() int64 { |
| if x != nil { |
| return x.Bbid |
| } |
| return 0 |
| } |
| |
| func (x *BuildFailure) GetFailedStepName() string { |
| if x != nil { |
| return x.FailedStepName |
| } |
| return "" |
| } |
| |
| // Information about a bug associated with a failure. |
| type BugInfo struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Types that are assignable to Bug: |
| // |
| // *BugInfo_MonorailBugInfo |
| // *BugInfo_BuganizerBugInfo |
| Bug isBugInfo_Bug `protobuf_oneof:"bug"` |
| } |
| |
| func (x *BugInfo) Reset() { |
| *x = BugInfo{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[23] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BugInfo) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BugInfo) ProtoMessage() {} |
| |
| func (x *BugInfo) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[23] |
| 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 BugInfo.ProtoReflect.Descriptor instead. |
| func (*BugInfo) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{23} |
| } |
| |
| func (m *BugInfo) GetBug() isBugInfo_Bug { |
| if m != nil { |
| return m.Bug |
| } |
| return nil |
| } |
| |
| func (x *BugInfo) GetMonorailBugInfo() *MonorailBugInfo { |
| if x, ok := x.GetBug().(*BugInfo_MonorailBugInfo); ok { |
| return x.MonorailBugInfo |
| } |
| return nil |
| } |
| |
| func (x *BugInfo) GetBuganizerBugInfo() *BuganizerBugInfo { |
| if x, ok := x.GetBug().(*BugInfo_BuganizerBugInfo); ok { |
| return x.BuganizerBugInfo |
| } |
| return nil |
| } |
| |
| type isBugInfo_Bug interface { |
| isBugInfo_Bug() |
| } |
| |
| type BugInfo_MonorailBugInfo struct { |
| MonorailBugInfo *MonorailBugInfo `protobuf:"bytes,1,opt,name=monorail_bug_info,json=monorailBugInfo,proto3,oneof"` |
| } |
| |
| type BugInfo_BuganizerBugInfo struct { |
| BuganizerBugInfo *BuganizerBugInfo `protobuf:"bytes,2,opt,name=buganizer_bug_info,json=buganizerBugInfo,proto3,oneof"` |
| } |
| |
| func (*BugInfo_MonorailBugInfo) isBugInfo_Bug() {} |
| |
| func (*BugInfo_BuganizerBugInfo) isBugInfo_Bug() {} |
| |
| type MonorailBugInfo struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The project of the bug, e.g. chromium |
| Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` |
| // Monorail bug ID |
| BugId int32 `protobuf:"varint,2,opt,name=bug_id,json=bugId,proto3" json:"bug_id,omitempty"` |
| } |
| |
| func (x *MonorailBugInfo) Reset() { |
| *x = MonorailBugInfo{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[24] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *MonorailBugInfo) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*MonorailBugInfo) ProtoMessage() {} |
| |
| func (x *MonorailBugInfo) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[24] |
| 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 MonorailBugInfo.ProtoReflect.Descriptor instead. |
| func (*MonorailBugInfo) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{24} |
| } |
| |
| func (x *MonorailBugInfo) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| func (x *MonorailBugInfo) GetBugId() int32 { |
| if x != nil { |
| return x.BugId |
| } |
| return 0 |
| } |
| |
| type BuganizerBugInfo struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Buganizer bug ID |
| BugId int64 `protobuf:"varint,1,opt,name=bug_id,json=bugId,proto3" json:"bug_id,omitempty"` |
| } |
| |
| func (x *BuganizerBugInfo) Reset() { |
| *x = BuganizerBugInfo{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[25] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BuganizerBugInfo) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BuganizerBugInfo) ProtoMessage() {} |
| |
| func (x *BuganizerBugInfo) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[25] |
| 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 BuganizerBugInfo.ProtoReflect.Descriptor instead. |
| func (*BuganizerBugInfo) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP(), []int{25} |
| } |
| |
| func (x *BuganizerBugInfo) GetBugId() int64 { |
| if x != nil { |
| return x.BugId |
| } |
| return 0 |
| } |
| |
| var File_go_chromium_org_luci_bisection_proto_gofindit_proto protoreflect.FileDescriptor |
| |
| var file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDesc = []byte{ |
| 0x0a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, |
| 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x69, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, |
| 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x1a, |
| 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, |
| 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, |
| 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x1a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, |
| 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, |
| 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, |
| 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, |
| 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, |
| 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x22, 0x3a, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, |
| 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x6e, 0x61, |
| 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, |
| 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x49, 0x64, 0x22, |
| 0x53, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, |
| 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, |
| 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x46, |
| 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, |
| 0x6c, 0x75, 0x72, 0x65, 0x22, 0x47, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6e, 0x61, |
| 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, |
| 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, |
| 0x12, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, |
| 0x73, 0x69, 0x73, 0x52, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x22, 0x51, 0x0a, |
| 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, |
| 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, |
| 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, |
| 0x22, 0x6e, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, |
| 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x61, 0x6e, 0x61, 0x6c, |
| 0x79, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x66, |
| 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x08, |
| 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, |
| 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, |
| 0x22, 0x83, 0x01, 0x0a, 0x16, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, |
| 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x0d, 0x62, |
| 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x42, 0x75, |
| 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, |
| 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x08, 0x62, 0x75, 0x67, 0x5f, |
| 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x66, |
| 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x42, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, |
| 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x6d, 0x0a, 0x17, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, |
| 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, |
| 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x41, 0x6e, 0x61, |
| 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x26, 0x0a, |
| 0x0f, 0x69, 0x73, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, |
| 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x41, 0x6e, 0x61, |
| 0x6c, 0x79, 0x73, 0x69, 0x73, 0x22, 0x6b, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, |
| 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, |
| 0x0a, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, |
| 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, |
| 0x69, 0x73, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x08, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, |
| 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, |
| 0x74, 0x2e, 0x42, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x62, 0x75, 0x67, 0x49, 0x6e, |
| 0x66, 0x6f, 0x22, 0xeb, 0x01, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x61, |
| 0x6c, 0x79, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, |
| 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, |
| 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, 0x79, |
| 0x73, 0x69, 0x73, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, |
| 0x62, 0x62, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x62, 0x62, 0x69, 0x64, |
| 0x12, 0x44, 0x0a, 0x0e, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, |
| 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, |
| 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, |
| 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x0d, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, |
| 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, |
| 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, |
| 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x73, |
| 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, |
| 0x22, 0x70, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, |
| 0x69, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, |
| 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, |
| 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, |
| 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, |
| 0x11, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x52, |
| 0x75, 0x6e, 0x22, 0x88, 0x06, 0x0a, 0x08, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, |
| 0x1f, 0x0a, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x49, 0x64, |
| 0x12, 0x3b, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, |
| 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, |
| 0x69, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, |
| 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a, |
| 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, |
| 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, |
| 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, |
| 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x62, |
| 0x62, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x50, |
| 0x61, 0x73, 0x73, 0x65, 0x64, 0x42, 0x62, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x69, 0x72, |
| 0x73, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x62, 0x62, 0x69, 0x64, 0x18, 0x05, |
| 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, |
| 0x64, 0x42, 0x62, 0x69, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, |
| 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, |
| 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, |
| 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, |
| 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, |
| 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, |
| 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x6c, 0x61, 0x73, |
| 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, |
| 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |
| 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, |
| 0x69, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x10, 0x68, 0x65, 0x75, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, |
| 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, |
| 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x48, 0x65, 0x75, 0x72, 0x69, 0x73, 0x74, |
| 0x69, 0x63, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, |
| 0x52, 0x0f, 0x68, 0x65, 0x75, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x75, 0x6c, |
| 0x74, 0x12, 0x50, 0x0a, 0x12, 0x6e, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, |
| 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x4e, 0x74, 0x68, 0x53, 0x65, 0x63, 0x74, |
| 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x75, 0x6c, |
| 0x74, 0x52, 0x10, 0x6e, 0x74, 0x68, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, |
| 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x0d, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, |
| 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, |
| 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x12, 0x62, 0x75, 0x69, 0x6c, |
| 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, |
| 0x42, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, |
| 0x52, 0x10, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x54, 0x79, |
| 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x73, 0x18, 0x0f, |
| 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, |
| 0x43, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x52, 0x08, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, |
| 0x73, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x22, 0x9b, 0x02, |
| 0x0a, 0x07, 0x43, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x6f, 0x6d, |
| 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, |
| 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, |
| 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, |
| 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, |
| 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, |
| 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x74, |
| 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x5f, 0x61, 0x63, |
| 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x66, |
| 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x43, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x41, 0x63, 0x74, |
| 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, |
| 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x14, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x53, 0x75, 0x73, 0x70, |
| 0x65, 0x63, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, |
| 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x1a, |
| 0x53, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, |
| 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, |
| 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x0d, 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x65, |
| 0x72, 0x75, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x66, 0x69, |
| 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x72, 0x75, 0x6e, |
| 0x52, 0x0c, 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x12, 0x38, |
| 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x18, 0x03, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, |
| 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x0b, 0x70, 0x61, 0x72, |
| 0x65, 0x6e, 0x74, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x22, 0xf5, 0x01, 0x0a, 0x17, 0x48, 0x65, 0x75, |
| 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, |
| 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, |
| 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, |
| 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x36, 0x0a, 0x08, 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, |
| 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, |
| 0x64, 0x69, 0x74, 0x2e, 0x48, 0x65, 0x75, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x53, 0x75, 0x73, |
| 0x70, 0x65, 0x63, 0x74, 0x52, 0x08, 0x73, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x73, 0x12, 0x39, |
| 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, |
| 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, |
| 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, |
| 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, |
| 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, |
| 0x22, 0x96, 0x03, 0x0a, 0x10, 0x48, 0x65, 0x75, 0x72, 0x69, 0x73, 0x74, 0x69, 0x63, 0x53, 0x75, |
| 0x73, 0x70, 0x65, 0x63, 0x74, 0x12, 0x44, 0x0a, 0x0e, 0x67, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, |
| 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, |
| 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, |
| 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x0d, 0x67, 0x69, |
| 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x72, |
| 0x65, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, |
| 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, |
| 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, |
| 0x24, 0x0a, 0x0d, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x69, 0x63, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, |
| 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, |
| 0x64, 0x12, 0x4b, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, |
| 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x67, 0x6f, |
| 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x53, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, |
| 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0f, 0x63, |
| 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, |
| 0x0a, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x74, 0x6c, 0x65, |
| 0x12, 0x57, 0x0a, 0x14, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, |
| 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, |
| 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x53, 0x75, 0x73, 0x70, 0x65, 0x63, |
| 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, |
| 0x61, 0x69, 0x6c, 0x73, 0x52, 0x13, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0xb9, 0x04, 0x0a, 0x18, 0x4e, 0x74, |
| 0x68, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, |
| 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, |
| 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, |
| 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, |
| 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, |
| 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, |
| 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, |
| 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, |
| 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, |
| 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, |
| 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, |
| 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, |
| 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, |
| 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, |
| 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, |
| 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x18, 0x05, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, |
| 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, |
| 0x69, 0x74, 0x52, 0x07, 0x63, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x76, |
| 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, |
| 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x55, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x61, 0x69, |
| 0x6e, 0x69, 0x6e, 0x67, 0x4e, 0x74, 0x68, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, |
| 0x6e, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x66, 0x69, |
| 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, |
| 0x61, 0x6e, 0x67, 0x65, 0x52, 0x18, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4e, |
| 0x74, 0x68, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, |
| 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, |
| 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, |
| 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x09, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x53, |
| 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, 0x06, 0x72, 0x65, 0x72, 0x75, |
| 0x6e, 0x73, 0x12, 0x31, 0x0a, 0x09, 0x62, 0x6c, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, |
| 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, |
| 0x2e, 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x09, 0x62, 0x6c, 0x61, 0x6d, |
| 0x65, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x46, 0x0a, 0x09, 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x4c, 0x69, |
| 0x73, 0x74, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, |
| 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x42, |
| 0x6c, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x43, 0x6f, |
| 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x73, 0x22, 0x6f, 0x0a, |
| 0x15, 0x42, 0x6c, 0x61, 0x6d, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, |
| 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1c, |
| 0x0a, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x09, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, |
| 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, |
| 0x09, 0x52, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x22, 0xc7, |
| 0x01, 0x0a, 0x0d, 0x43, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, |
| 0x12, 0x3c, 0x0a, 0x0b, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, |
| 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, |
| 0x2e, 0x43, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, |
| 0x70, 0x65, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, |
| 0x0a, 0x0d, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x43, 0x6c, 0x55, |
| 0x72, 0x6c, 0x12, 0x17, 0x0a, 0x07, 0x62, 0x75, 0x67, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x3b, 0x0a, 0x0b, 0x61, |
| 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, |
| 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, |
| 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x61, 0x63, |
| 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x67, |
| 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0b, |
| 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, |
| 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, |
| 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, |
| 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x40, 0x0a, 0x0c, |
| 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, |
| 0x2e, 0x76, 0x32, 0x2e, 0x47, 0x69, 0x74, 0x69, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x69, |
| 0x74, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2e, |
| 0x0a, 0x13, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x72, 0x65, 0x76, 0x69, |
| 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x6e, 0x75, 0x6d, |
| 0x62, 0x65, 0x72, 0x4f, 0x66, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xc5, |
| 0x02, 0x0a, 0x0b, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x12, 0x39, |
| 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
| 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, |
| 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x6c, 0x61, 0x73, |
| 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, |
| 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, |
| 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x6d, |
| 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, |
| 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, |
| 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x62, 0x69, 0x64, |
| 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x62, 0x62, 0x69, 0x64, 0x12, 0x17, 0x0a, 0x07, |
| 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, |
| 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, |
| 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x0c, |
| 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x07, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x52, 0x65, |
| 0x72, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x72, 0x65, 0x72, 0x75, 0x6e, |
| 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x6c, 0x0a, 0x0b, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x52, |
| 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x38, 0x0a, 0x0c, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x5f, 0x73, |
| 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x67, 0x6f, |
| 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x52, 0x65, 0x72, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, |
| 0x75, 0x73, 0x52, 0x0b, 0x72, 0x65, 0x72, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, |
| 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, |
| 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, |
| 0x73, 0x61, 0x67, 0x65, 0x22, 0x4c, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, |
| 0x6c, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x62, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x03, 0x52, 0x04, 0x62, 0x62, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x61, 0x69, 0x6c, |
| 0x65, 0x64, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x53, 0x74, 0x65, 0x70, 0x4e, 0x61, |
| 0x6d, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x07, 0x42, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, |
| 0x0a, 0x11, 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x62, 0x75, 0x67, 0x5f, 0x69, |
| 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x66, 0x69, |
| 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x4d, 0x6f, 0x6e, 0x6f, 0x72, 0x61, 0x69, 0x6c, 0x42, 0x75, 0x67, |
| 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x61, 0x69, 0x6c, |
| 0x42, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x12, 0x62, 0x75, 0x67, 0x61, 0x6e, |
| 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x42, |
| 0x75, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x42, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x48, |
| 0x00, 0x52, 0x10, 0x62, 0x75, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x42, 0x75, 0x67, 0x49, |
| 0x6e, 0x66, 0x6f, 0x42, 0x05, 0x0a, 0x03, 0x62, 0x75, 0x67, 0x22, 0x42, 0x0a, 0x0f, 0x4d, 0x6f, |
| 0x6e, 0x6f, 0x72, 0x61, 0x69, 0x6c, 0x42, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, |
| 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, |
| 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x75, 0x67, 0x5f, 0x69, |
| 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x75, 0x67, 0x49, 0x64, 0x22, 0x29, |
| 0x0a, 0x10, 0x42, 0x75, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x42, 0x75, 0x67, 0x49, 0x6e, |
| 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x75, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x03, 0x52, 0x05, 0x62, 0x75, 0x67, 0x49, 0x64, 0x2a, 0x81, 0x01, 0x0a, 0x0e, 0x41, 0x6e, |
| 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x1b, |
| 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, |
| 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, |
| 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, |
| 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4f, 0x55, 0x4e, 0x44, |
| 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x54, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x04, |
| 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x53, |
| 0x55, 0x53, 0x50, 0x45, 0x43, 0x54, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x06, 0x2a, 0x5e, 0x0a, |
| 0x11, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, |
| 0x75, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x5f, 0x52, |
| 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, |
| 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, |
| 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, |
| 0x0c, 0x0a, 0x08, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x2a, 0xc8, 0x01, |
| 0x0a, 0x11, 0x43, 0x75, 0x6c, 0x70, 0x72, 0x69, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, |
| 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x55, 0x4c, 0x50, 0x52, 0x49, 0x54, 0x5f, 0x41, |
| 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, |
| 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x41, |
| 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x55, 0x4c, 0x50, 0x52, |
| 0x49, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x54, 0x45, 0x44, |
| 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x56, 0x45, 0x52, 0x54, 0x5f, 0x43, 0x4c, 0x5f, |
| 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x55, 0x4c, |
| 0x50, 0x52, 0x49, 0x54, 0x5f, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x45, |
| 0x44, 0x10, 0x04, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x55, 0x47, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x45, |
| 0x4e, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x45, 0x58, 0x49, 0x53, 0x54, 0x49, |
| 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x54, 0x5f, 0x43, 0x4c, 0x5f, 0x43, 0x4f, 0x4d, |
| 0x4d, 0x45, 0x4e, 0x54, 0x45, 0x44, 0x10, 0x06, 0x2a, 0xb5, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x72, |
| 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x52, 0x55, |
| 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, |
| 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x52, 0x55, 0x4e, 0x5f, |
| 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, |
| 0x53, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, |
| 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, |
| 0x13, 0x52, 0x45, 0x52, 0x55, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, |
| 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x52, 0x55, 0x4e, 0x5f, |
| 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x5f, 0x46, 0x41, 0x49, |
| 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x52, 0x55, 0x4e, 0x5f, 0x53, |
| 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x05, |
| 0x2a, 0x61, 0x0a, 0x16, 0x53, 0x75, 0x73, 0x70, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, |
| 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x24, 0x53, 0x55, |
| 0x53, 0x50, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x44, 0x45, 0x4e, 0x43, 0x45, |
| 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, |
| 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x0a, 0x0a, |
| 0x06, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, |
| 0x48, 0x10, 0x03, 0x2a, 0x63, 0x0a, 0x10, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, |
| 0x75, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x55, 0x49, 0x4c, 0x44, |
| 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, |
| 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x43, |
| 0x4f, 0x4d, 0x50, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x53, 0x54, |
| 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x10, 0x03, 0x12, 0x09, 0x0a, |
| 0x05, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x04, 0x32, 0x92, 0x03, 0x0a, 0x0f, 0x47, 0x6f, 0x46, |
| 0x69, 0x6e, 0x64, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x0b, |
| 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x6f, |
| 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, |
| 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x66, 0x69, |
| 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x50, 0x0a, |
| 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1e, |
| 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, |
| 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, |
| 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, |
| 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, |
| 0x4d, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x12, |
| 0x1d, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, |
| 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, |
| 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, |
| 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, |
| 0x0a, 0x0f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, |
| 0x73, 0x12, 0x20, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x69, |
| 0x67, 0x67, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, |
| 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x54, |
| 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, |
| 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, |
| 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, |
| 0x64, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, |
| 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x67, 0x6f, 0x66, 0x69, |
| 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x32, 0x81, 0x01, |
| 0x0a, 0x12, 0x47, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x42, 0x6f, 0x74, 0x53, 0x65, 0x72, |
| 0x76, 0x69, 0x63, 0x65, 0x12, 0x6b, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, |
| 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x27, |
| 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, |
| 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, |
| 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, |
| 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, |
| 0x73, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, |
| 0x65, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, |
| 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x69, 0x73, 0x65, 0x63, 0x74, |
| 0x69, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x67, 0x6f, 0x66, 0x69, 0x6e, 0x64, |
| 0x69, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, |
| } |
| |
| var ( |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescOnce sync.Once |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescData = file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDesc |
| ) |
| |
| func file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescGZIP() []byte { |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescOnce.Do(func() { |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescData) |
| }) |
| return file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDescData |
| } |
| |
| var file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes = make([]protoimpl.EnumInfo, 6) |
| var file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes = make([]protoimpl.MessageInfo, 26) |
| var file_go_chromium_org_luci_bisection_proto_gofindit_proto_goTypes = []interface{}{ |
| (AnalysisStatus)(0), // 0: gofindit.AnalysisStatus |
| (AnalysisRunStatus)(0), // 1: gofindit.AnalysisRunStatus |
| (CulpritActionType)(0), // 2: gofindit.CulpritActionType |
| (RerunStatus)(0), // 3: gofindit.RerunStatus |
| (SuspectConfidenceLevel)(0), // 4: gofindit.SuspectConfidenceLevel |
| (BuildFailureType)(0), // 5: gofindit.BuildFailureType |
| (*GetAnalysisRequest)(nil), // 6: gofindit.GetAnalysisRequest |
| (*QueryAnalysisRequest)(nil), // 7: gofindit.QueryAnalysisRequest |
| (*QueryAnalysisResponse)(nil), // 8: gofindit.QueryAnalysisResponse |
| (*ListAnalysesRequest)(nil), // 9: gofindit.ListAnalysesRequest |
| (*ListAnalysesResponse)(nil), // 10: gofindit.ListAnalysesResponse |
| (*TriggerAnalysisRequest)(nil), // 11: gofindit.TriggerAnalysisRequest |
| (*TriggerAnalysisResponse)(nil), // 12: gofindit.TriggerAnalysisResponse |
| (*UpdateAnalysisRequest)(nil), // 13: gofindit.UpdateAnalysisRequest |
| (*UpdateAnalysisProgressRequest)(nil), // 14: gofindit.UpdateAnalysisProgressRequest |
| (*UpdateAnalysisProgressResponse)(nil), // 15: gofindit.UpdateAnalysisProgressResponse |
| (*Analysis)(nil), // 16: gofindit.Analysis |
| (*Culprit)(nil), // 17: gofindit.Culprit |
| (*SuspectVerificationDetails)(nil), // 18: gofindit.SuspectVerificationDetails |
| (*HeuristicAnalysisResult)(nil), // 19: gofindit.HeuristicAnalysisResult |
| (*HeuristicSuspect)(nil), // 20: gofindit.HeuristicSuspect |
| (*NthSectionAnalysisResult)(nil), // 21: gofindit.NthSectionAnalysisResult |
| (*BlameList)(nil), // 22: gofindit.BlameList |
| (*BlameListSingleCommit)(nil), // 23: gofindit.BlameListSingleCommit |
| (*CulpritAction)(nil), // 24: gofindit.CulpritAction |
| (*RegressionRange)(nil), // 25: gofindit.RegressionRange |
| (*SingleRerun)(nil), // 26: gofindit.SingleRerun |
| (*RerunResult)(nil), // 27: gofindit.RerunResult |
| (*BuildFailure)(nil), // 28: gofindit.BuildFailure |
| (*BugInfo)(nil), // 29: gofindit.BugInfo |
| (*MonorailBugInfo)(nil), // 30: gofindit.MonorailBugInfo |
| (*BuganizerBugInfo)(nil), // 31: gofindit.BuganizerBugInfo |
| (*proto.GitilesCommit)(nil), // 32: buildbucket.v2.GitilesCommit |
| (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp |
| (*proto.BuilderID)(nil), // 34: buildbucket.v2.BuilderID |
| } |
| var file_go_chromium_org_luci_bisection_proto_gofindit_proto_depIdxs = []int32{ |
| 28, // 0: gofindit.QueryAnalysisRequest.build_failure:type_name -> gofindit.BuildFailure |
| 16, // 1: gofindit.QueryAnalysisResponse.analyses:type_name -> gofindit.Analysis |
| 16, // 2: gofindit.ListAnalysesResponse.analyses:type_name -> gofindit.Analysis |
| 28, // 3: gofindit.TriggerAnalysisRequest.build_failure:type_name -> gofindit.BuildFailure |
| 29, // 4: gofindit.TriggerAnalysisRequest.bug_info:type_name -> gofindit.BugInfo |
| 16, // 5: gofindit.TriggerAnalysisResponse.result:type_name -> gofindit.Analysis |
| 29, // 6: gofindit.UpdateAnalysisRequest.bug_info:type_name -> gofindit.BugInfo |
| 32, // 7: gofindit.UpdateAnalysisProgressRequest.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit |
| 27, // 8: gofindit.UpdateAnalysisProgressRequest.rerun_result:type_name -> gofindit.RerunResult |
| 32, // 9: gofindit.UpdateAnalysisProgressResponse.next_revision_to_run:type_name -> buildbucket.v2.GitilesCommit |
| 28, // 10: gofindit.Analysis.build_failure:type_name -> gofindit.BuildFailure |
| 0, // 11: gofindit.Analysis.status:type_name -> gofindit.AnalysisStatus |
| 33, // 12: gofindit.Analysis.created_time:type_name -> google.protobuf.Timestamp |
| 33, // 13: gofindit.Analysis.last_updated_time:type_name -> google.protobuf.Timestamp |
| 33, // 14: gofindit.Analysis.end_time:type_name -> google.protobuf.Timestamp |
| 19, // 15: gofindit.Analysis.heuristic_result:type_name -> gofindit.HeuristicAnalysisResult |
| 21, // 16: gofindit.Analysis.nth_section_result:type_name -> gofindit.NthSectionAnalysisResult |
| 34, // 17: gofindit.Analysis.builder:type_name -> buildbucket.v2.BuilderID |
| 5, // 18: gofindit.Analysis.build_failure_type:type_name -> gofindit.BuildFailureType |
| 17, // 19: gofindit.Analysis.culprits:type_name -> gofindit.Culprit |
| 32, // 20: gofindit.Culprit.commit:type_name -> buildbucket.v2.GitilesCommit |
| 24, // 21: gofindit.Culprit.culprit_action:type_name -> gofindit.CulpritAction |
| 18, // 22: gofindit.Culprit.verification_details:type_name -> gofindit.SuspectVerificationDetails |
| 26, // 23: gofindit.SuspectVerificationDetails.suspect_rerun:type_name -> gofindit.SingleRerun |
| 26, // 24: gofindit.SuspectVerificationDetails.parent_rerun:type_name -> gofindit.SingleRerun |
| 0, // 25: gofindit.HeuristicAnalysisResult.status:type_name -> gofindit.AnalysisStatus |
| 20, // 26: gofindit.HeuristicAnalysisResult.suspects:type_name -> gofindit.HeuristicSuspect |
| 33, // 27: gofindit.HeuristicAnalysisResult.start_time:type_name -> google.protobuf.Timestamp |
| 33, // 28: gofindit.HeuristicAnalysisResult.end_time:type_name -> google.protobuf.Timestamp |
| 32, // 29: gofindit.HeuristicSuspect.gitiles_commit:type_name -> buildbucket.v2.GitilesCommit |
| 4, // 30: gofindit.HeuristicSuspect.confidence_level:type_name -> gofindit.SuspectConfidenceLevel |
| 18, // 31: gofindit.HeuristicSuspect.verification_details:type_name -> gofindit.SuspectVerificationDetails |
| 0, // 32: gofindit.NthSectionAnalysisResult.status:type_name -> gofindit.AnalysisStatus |
| 33, // 33: gofindit.NthSectionAnalysisResult.start_time:type_name -> google.protobuf.Timestamp |
| 33, // 34: gofindit.NthSectionAnalysisResult.last_updated_time:type_name -> google.protobuf.Timestamp |
| 33, // 35: gofindit.NthSectionAnalysisResult.end_time:type_name -> google.protobuf.Timestamp |
| 32, // 36: gofindit.NthSectionAnalysisResult.culprit:type_name -> buildbucket.v2.GitilesCommit |
| 25, // 37: gofindit.NthSectionAnalysisResult.remainingNthSectionRange:type_name -> gofindit.RegressionRange |
| 26, // 38: gofindit.NthSectionAnalysisResult.reruns:type_name -> gofindit.SingleRerun |
| 22, // 39: gofindit.NthSectionAnalysisResult.blameList:type_name -> gofindit.BlameList |
| 23, // 40: gofindit.BlameList.commits:type_name -> gofindit.BlameListSingleCommit |
| 2, // 41: gofindit.CulpritAction.action_type:type_name -> gofindit.CulpritActionType |
| 33, // 42: gofindit.CulpritAction.action_time:type_name -> google.protobuf.Timestamp |
| 32, // 43: gofindit.RegressionRange.last_passed:type_name -> buildbucket.v2.GitilesCommit |
| 32, // 44: gofindit.RegressionRange.first_failed:type_name -> buildbucket.v2.GitilesCommit |
| 33, // 45: gofindit.SingleRerun.start_time:type_name -> google.protobuf.Timestamp |
| 33, // 46: gofindit.SingleRerun.last_updated_time:type_name -> google.protobuf.Timestamp |
| 33, // 47: gofindit.SingleRerun.end_time:type_name -> google.protobuf.Timestamp |
| 27, // 48: gofindit.SingleRerun.rerun_result:type_name -> gofindit.RerunResult |
| 3, // 49: gofindit.RerunResult.rerun_status:type_name -> gofindit.RerunStatus |
| 30, // 50: gofindit.BugInfo.monorail_bug_info:type_name -> gofindit.MonorailBugInfo |
| 31, // 51: gofindit.BugInfo.buganizer_bug_info:type_name -> gofindit.BuganizerBugInfo |
| 6, // 52: gofindit.GoFinditService.GetAnalysis:input_type -> gofindit.GetAnalysisRequest |
| 7, // 53: gofindit.GoFinditService.QueryAnalysis:input_type -> gofindit.QueryAnalysisRequest |
| 9, // 54: gofindit.GoFinditService.ListAnalyses:input_type -> gofindit.ListAnalysesRequest |
| 11, // 55: gofindit.GoFinditService.TriggerAnalysis:input_type -> gofindit.TriggerAnalysisRequest |
| 13, // 56: gofindit.GoFinditService.UpdateAnalysis:input_type -> gofindit.UpdateAnalysisRequest |
| 14, // 57: gofindit.GoFinditBotService.UpdateAnalysisProgress:input_type -> gofindit.UpdateAnalysisProgressRequest |
| 16, // 58: gofindit.GoFinditService.GetAnalysis:output_type -> gofindit.Analysis |
| 8, // 59: gofindit.GoFinditService.QueryAnalysis:output_type -> gofindit.QueryAnalysisResponse |
| 10, // 60: gofindit.GoFinditService.ListAnalyses:output_type -> gofindit.ListAnalysesResponse |
| 12, // 61: gofindit.GoFinditService.TriggerAnalysis:output_type -> gofindit.TriggerAnalysisResponse |
| 16, // 62: gofindit.GoFinditService.UpdateAnalysis:output_type -> gofindit.Analysis |
| 15, // 63: gofindit.GoFinditBotService.UpdateAnalysisProgress:output_type -> gofindit.UpdateAnalysisProgressResponse |
| 58, // [58:64] is the sub-list for method output_type |
| 52, // [52:58] is the sub-list for method input_type |
| 52, // [52:52] is the sub-list for extension type_name |
| 52, // [52:52] is the sub-list for extension extendee |
| 0, // [0:52] is the sub-list for field type_name |
| } |
| |
| func init() { file_go_chromium_org_luci_bisection_proto_gofindit_proto_init() } |
| func file_go_chromium_org_luci_bisection_proto_gofindit_proto_init() { |
| if File_go_chromium_org_luci_bisection_proto_gofindit_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*GetAnalysisRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*QueryAnalysisRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*QueryAnalysisResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListAnalysesRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ListAnalysesResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*TriggerAnalysisRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*TriggerAnalysisResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UpdateAnalysisRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UpdateAnalysisProgressRequest); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*UpdateAnalysisProgressResponse); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Analysis); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*Culprit); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SuspectVerificationDetails); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*HeuristicAnalysisResult); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*HeuristicSuspect); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*NthSectionAnalysisResult); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BlameList); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BlameListSingleCommit); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*CulpritAction); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*RegressionRange); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SingleRerun); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*RerunResult); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BuildFailure); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BugInfo); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*MonorailBugInfo); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BuganizerBugInfo); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes[23].OneofWrappers = []interface{}{ |
| (*BugInfo_MonorailBugInfo)(nil), |
| (*BugInfo_BuganizerBugInfo)(nil), |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDesc, |
| NumEnums: 6, |
| NumMessages: 26, |
| NumExtensions: 0, |
| NumServices: 2, |
| }, |
| GoTypes: file_go_chromium_org_luci_bisection_proto_gofindit_proto_goTypes, |
| DependencyIndexes: file_go_chromium_org_luci_bisection_proto_gofindit_proto_depIdxs, |
| EnumInfos: file_go_chromium_org_luci_bisection_proto_gofindit_proto_enumTypes, |
| MessageInfos: file_go_chromium_org_luci_bisection_proto_gofindit_proto_msgTypes, |
| }.Build() |
| File_go_chromium_org_luci_bisection_proto_gofindit_proto = out.File |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_rawDesc = nil |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_goTypes = nil |
| file_go_chromium_org_luci_bisection_proto_gofindit_proto_depIdxs = nil |
| } |
| |
| // Reference imports to suppress errors if they are not otherwise used. |
| var _ context.Context |
| var _ grpc.ClientConnInterface |
| |
| // This is a compile-time assertion to ensure that this generated file |
| // is compatible with the grpc package it is being compiled against. |
| const _ = grpc.SupportPackageIsVersion6 |
| |
| // GoFinditServiceClient is the client API for GoFinditService service. |
| // |
| // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. |
| type GoFinditServiceClient interface { |
| // GetAnalysis is used to get an analysis by analysis ID. |
| GetAnalysis(ctx context.Context, in *GetAnalysisRequest, opts ...grpc.CallOption) (*Analysis, error) |
| // QueryAnalysis is used to query for the status and result of analyses. |
| // The user can pass in the failure information to retrieve the analyses. |
| QueryAnalysis(ctx context.Context, in *QueryAnalysisRequest, opts ...grpc.CallOption) (*QueryAnalysisResponse, error) |
| // ListAnalyses is used to get existing analyses. |
| // Most recently created analyses are returned first. |
| ListAnalyses(ctx context.Context, in *ListAnalysesRequest, opts ...grpc.CallOption) (*ListAnalysesResponse, error) |
| // TriggerAnalysis is used to trigger an analysis for a failed build. |
| // This RPC is called from a LUCI Bisection client like SoM or Milo. |
| // If an existing analysis is found for the same failure, no new analysis |
| // will be triggered. |
| TriggerAnalysis(ctx context.Context, in *TriggerAnalysisRequest, opts ...grpc.CallOption) (*TriggerAnalysisResponse, error) |
| // Update the information of an analysis. |
| // At the mean time, it is only used for update the bugs associated with an |
| // analysis. |
| // Mainly used by SoM, since LUCI Bisection does not have any information about |
| // bugs created by sheriffs. |
| UpdateAnalysis(ctx context.Context, in *UpdateAnalysisRequest, opts ...grpc.CallOption) (*Analysis, error) |
| } |
| type goFinditServicePRPCClient struct { |
| client *prpc.Client |
| } |
| |
| func NewGoFinditServicePRPCClient(client *prpc.Client) GoFinditServiceClient { |
| return &goFinditServicePRPCClient{client} |
| } |
| |
| func (c *goFinditServicePRPCClient) GetAnalysis(ctx context.Context, in *GetAnalysisRequest, opts ...grpc.CallOption) (*Analysis, error) { |
| out := new(Analysis) |
| err := c.client.Call(ctx, "gofindit.GoFinditService", "GetAnalysis", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *goFinditServicePRPCClient) QueryAnalysis(ctx context.Context, in *QueryAnalysisRequest, opts ...grpc.CallOption) (*QueryAnalysisResponse, error) { |
| out := new(QueryAnalysisResponse) |
| err := c.client.Call(ctx, "gofindit.GoFinditService", "QueryAnalysis", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *goFinditServicePRPCClient) ListAnalyses(ctx context.Context, in *ListAnalysesRequest, opts ...grpc.CallOption) (*ListAnalysesResponse, error) { |
| out := new(ListAnalysesResponse) |
| err := c.client.Call(ctx, "gofindit.GoFinditService", "ListAnalyses", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *goFinditServicePRPCClient) TriggerAnalysis(ctx context.Context, in *TriggerAnalysisRequest, opts ...grpc.CallOption) (*TriggerAnalysisResponse, error) { |
| out := new(TriggerAnalysisResponse) |
| err := c.client.Call(ctx, "gofindit.GoFinditService", "TriggerAnalysis", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *goFinditServicePRPCClient) UpdateAnalysis(ctx context.Context, in *UpdateAnalysisRequest, opts ...grpc.CallOption) (*Analysis, error) { |
| out := new(Analysis) |
| err := c.client.Call(ctx, "gofindit.GoFinditService", "UpdateAnalysis", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| type goFinditServiceClient struct { |
| cc grpc.ClientConnInterface |
| } |
| |
| func NewGoFinditServiceClient(cc grpc.ClientConnInterface) GoFinditServiceClient { |
| return &goFinditServiceClient{cc} |
| } |
| |
| func (c *goFinditServiceClient) GetAnalysis(ctx context.Context, in *GetAnalysisRequest, opts ...grpc.CallOption) (*Analysis, error) { |
| out := new(Analysis) |
| err := c.cc.Invoke(ctx, "/gofindit.GoFinditService/GetAnalysis", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *goFinditServiceClient) QueryAnalysis(ctx context.Context, in *QueryAnalysisRequest, opts ...grpc.CallOption) (*QueryAnalysisResponse, error) { |
| out := new(QueryAnalysisResponse) |
| err := c.cc.Invoke(ctx, "/gofindit.GoFinditService/QueryAnalysis", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *goFinditServiceClient) ListAnalyses(ctx context.Context, in *ListAnalysesRequest, opts ...grpc.CallOption) (*ListAnalysesResponse, error) { |
| out := new(ListAnalysesResponse) |
| err := c.cc.Invoke(ctx, "/gofindit.GoFinditService/ListAnalyses", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *goFinditServiceClient) TriggerAnalysis(ctx context.Context, in *TriggerAnalysisRequest, opts ...grpc.CallOption) (*TriggerAnalysisResponse, error) { |
| out := new(TriggerAnalysisResponse) |
| err := c.cc.Invoke(ctx, "/gofindit.GoFinditService/TriggerAnalysis", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| func (c *goFinditServiceClient) UpdateAnalysis(ctx context.Context, in *UpdateAnalysisRequest, opts ...grpc.CallOption) (*Analysis, error) { |
| out := new(Analysis) |
| err := c.cc.Invoke(ctx, "/gofindit.GoFinditService/UpdateAnalysis", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| // GoFinditServiceServer is the server API for GoFinditService service. |
| type GoFinditServiceServer interface { |
| // GetAnalysis is used to get an analysis by analysis ID. |
| GetAnalysis(context.Context, *GetAnalysisRequest) (*Analysis, error) |
| // QueryAnalysis is used to query for the status and result of analyses. |
| // The user can pass in the failure information to retrieve the analyses. |
| QueryAnalysis(context.Context, *QueryAnalysisRequest) (*QueryAnalysisResponse, error) |
| // ListAnalyses is used to get existing analyses. |
| // Most recently created analyses are returned first. |
| ListAnalyses(context.Context, *ListAnalysesRequest) (*ListAnalysesResponse, error) |
| // TriggerAnalysis is used to trigger an analysis for a failed build. |
| // This RPC is called from a LUCI Bisection client like SoM or Milo. |
| // If an existing analysis is found for the same failure, no new analysis |
| // will be triggered. |
| TriggerAnalysis(context.Context, *TriggerAnalysisRequest) (*TriggerAnalysisResponse, error) |
| // Update the information of an analysis. |
| // At the mean time, it is only used for update the bugs associated with an |
| // analysis. |
| // Mainly used by SoM, since LUCI Bisection does not have any information about |
| // bugs created by sheriffs. |
| UpdateAnalysis(context.Context, *UpdateAnalysisRequest) (*Analysis, error) |
| } |
| |
| // UnimplementedGoFinditServiceServer can be embedded to have forward compatible implementations. |
| type UnimplementedGoFinditServiceServer struct { |
| } |
| |
| func (*UnimplementedGoFinditServiceServer) GetAnalysis(context.Context, *GetAnalysisRequest) (*Analysis, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method GetAnalysis not implemented") |
| } |
| func (*UnimplementedGoFinditServiceServer) QueryAnalysis(context.Context, *QueryAnalysisRequest) (*QueryAnalysisResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method QueryAnalysis not implemented") |
| } |
| func (*UnimplementedGoFinditServiceServer) ListAnalyses(context.Context, *ListAnalysesRequest) (*ListAnalysesResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method ListAnalyses not implemented") |
| } |
| func (*UnimplementedGoFinditServiceServer) TriggerAnalysis(context.Context, *TriggerAnalysisRequest) (*TriggerAnalysisResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method TriggerAnalysis not implemented") |
| } |
| func (*UnimplementedGoFinditServiceServer) UpdateAnalysis(context.Context, *UpdateAnalysisRequest) (*Analysis, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method UpdateAnalysis not implemented") |
| } |
| |
| func RegisterGoFinditServiceServer(s prpc.Registrar, srv GoFinditServiceServer) { |
| s.RegisterService(&_GoFinditService_serviceDesc, srv) |
| } |
| |
| func _GoFinditService_GetAnalysis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(GetAnalysisRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(GoFinditServiceServer).GetAnalysis(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/gofindit.GoFinditService/GetAnalysis", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(GoFinditServiceServer).GetAnalysis(ctx, req.(*GetAnalysisRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _GoFinditService_QueryAnalysis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(QueryAnalysisRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(GoFinditServiceServer).QueryAnalysis(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/gofindit.GoFinditService/QueryAnalysis", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(GoFinditServiceServer).QueryAnalysis(ctx, req.(*QueryAnalysisRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _GoFinditService_ListAnalyses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(ListAnalysesRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(GoFinditServiceServer).ListAnalyses(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/gofindit.GoFinditService/ListAnalyses", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(GoFinditServiceServer).ListAnalyses(ctx, req.(*ListAnalysesRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _GoFinditService_TriggerAnalysis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(TriggerAnalysisRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(GoFinditServiceServer).TriggerAnalysis(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/gofindit.GoFinditService/TriggerAnalysis", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(GoFinditServiceServer).TriggerAnalysis(ctx, req.(*TriggerAnalysisRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| func _GoFinditService_UpdateAnalysis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(UpdateAnalysisRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(GoFinditServiceServer).UpdateAnalysis(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/gofindit.GoFinditService/UpdateAnalysis", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(GoFinditServiceServer).UpdateAnalysis(ctx, req.(*UpdateAnalysisRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| var _GoFinditService_serviceDesc = grpc.ServiceDesc{ |
| ServiceName: "gofindit.GoFinditService", |
| HandlerType: (*GoFinditServiceServer)(nil), |
| Methods: []grpc.MethodDesc{ |
| { |
| MethodName: "GetAnalysis", |
| Handler: _GoFinditService_GetAnalysis_Handler, |
| }, |
| { |
| MethodName: "QueryAnalysis", |
| Handler: _GoFinditService_QueryAnalysis_Handler, |
| }, |
| { |
| MethodName: "ListAnalyses", |
| Handler: _GoFinditService_ListAnalyses_Handler, |
| }, |
| { |
| MethodName: "TriggerAnalysis", |
| Handler: _GoFinditService_TriggerAnalysis_Handler, |
| }, |
| { |
| MethodName: "UpdateAnalysis", |
| Handler: _GoFinditService_UpdateAnalysis_Handler, |
| }, |
| }, |
| Streams: []grpc.StreamDesc{}, |
| Metadata: "go.chromium.org/luci/bisection/proto/gofindit.proto", |
| } |
| |
| // GoFinditBotServiceClient is the client API for GoFinditBotService service. |
| // |
| // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. |
| type GoFinditBotServiceClient interface { |
| // RPC called from bots to update the analysis progress |
| UpdateAnalysisProgress(ctx context.Context, in *UpdateAnalysisProgressRequest, opts ...grpc.CallOption) (*UpdateAnalysisProgressResponse, error) |
| } |
| type goFinditBotServicePRPCClient struct { |
| client *prpc.Client |
| } |
| |
| func NewGoFinditBotServicePRPCClient(client *prpc.Client) GoFinditBotServiceClient { |
| return &goFinditBotServicePRPCClient{client} |
| } |
| |
| func (c *goFinditBotServicePRPCClient) UpdateAnalysisProgress(ctx context.Context, in *UpdateAnalysisProgressRequest, opts ...grpc.CallOption) (*UpdateAnalysisProgressResponse, error) { |
| out := new(UpdateAnalysisProgressResponse) |
| err := c.client.Call(ctx, "gofindit.GoFinditBotService", "UpdateAnalysisProgress", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| type goFinditBotServiceClient struct { |
| cc grpc.ClientConnInterface |
| } |
| |
| func NewGoFinditBotServiceClient(cc grpc.ClientConnInterface) GoFinditBotServiceClient { |
| return &goFinditBotServiceClient{cc} |
| } |
| |
| func (c *goFinditBotServiceClient) UpdateAnalysisProgress(ctx context.Context, in *UpdateAnalysisProgressRequest, opts ...grpc.CallOption) (*UpdateAnalysisProgressResponse, error) { |
| out := new(UpdateAnalysisProgressResponse) |
| err := c.cc.Invoke(ctx, "/gofindit.GoFinditBotService/UpdateAnalysisProgress", in, out, opts...) |
| if err != nil { |
| return nil, err |
| } |
| return out, nil |
| } |
| |
| // GoFinditBotServiceServer is the server API for GoFinditBotService service. |
| type GoFinditBotServiceServer interface { |
| // RPC called from bots to update the analysis progress |
| UpdateAnalysisProgress(context.Context, *UpdateAnalysisProgressRequest) (*UpdateAnalysisProgressResponse, error) |
| } |
| |
| // UnimplementedGoFinditBotServiceServer can be embedded to have forward compatible implementations. |
| type UnimplementedGoFinditBotServiceServer struct { |
| } |
| |
| func (*UnimplementedGoFinditBotServiceServer) UpdateAnalysisProgress(context.Context, *UpdateAnalysisProgressRequest) (*UpdateAnalysisProgressResponse, error) { |
| return nil, status.Errorf(codes.Unimplemented, "method UpdateAnalysisProgress not implemented") |
| } |
| |
| func RegisterGoFinditBotServiceServer(s prpc.Registrar, srv GoFinditBotServiceServer) { |
| s.RegisterService(&_GoFinditBotService_serviceDesc, srv) |
| } |
| |
| func _GoFinditBotService_UpdateAnalysisProgress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { |
| in := new(UpdateAnalysisProgressRequest) |
| if err := dec(in); err != nil { |
| return nil, err |
| } |
| if interceptor == nil { |
| return srv.(GoFinditBotServiceServer).UpdateAnalysisProgress(ctx, in) |
| } |
| info := &grpc.UnaryServerInfo{ |
| Server: srv, |
| FullMethod: "/gofindit.GoFinditBotService/UpdateAnalysisProgress", |
| } |
| handler := func(ctx context.Context, req interface{}) (interface{}, error) { |
| return srv.(GoFinditBotServiceServer).UpdateAnalysisProgress(ctx, req.(*UpdateAnalysisProgressRequest)) |
| } |
| return interceptor(ctx, in, info, handler) |
| } |
| |
| var _GoFinditBotService_serviceDesc = grpc.ServiceDesc{ |
| ServiceName: "gofindit.GoFinditBotService", |
| HandlerType: (*GoFinditBotServiceServer)(nil), |
| Methods: []grpc.MethodDesc{ |
| { |
| MethodName: "UpdateAnalysisProgress", |
| Handler: _GoFinditBotService_UpdateAnalysisProgress_Handler, |
| }, |
| }, |
| Streams: []grpc.StreamDesc{}, |
| Metadata: "go.chromium.org/luci/bisection/proto/gofindit.proto", |
| } |