blob: e565deb9b6b06543b3cdc7d5b6dec9e468c3a512 [file] [log] [blame]
// 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.36.5
// protoc v6.30.2
// source: go.chromium.org/luci/analysis/proto/v1/test_history.proto
package analysispb
import prpc "go.chromium.org/luci/grpc/prpc"
import (
context "context"
_ "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"
durationpb "google.golang.org/protobuf/types/known/durationpb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
reflect "reflect"
sync "sync"
unsafe "unsafe"
)
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)
)
// A request message for `TestHistory.Query` RPC.
type QueryTestHistoryRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required. The LUCI Project of the test results.
// I.e. For a result to be part of the history, it needs to be contained
// transitively by an invocation in this project.
Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
// Required. The test ID to query the history from.
TestId string `protobuf:"bytes,2,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"`
// Required. A test verdict in the response must satisfy this predicate.
Predicate *TestVerdictPredicate `protobuf:"bytes,3,opt,name=predicate,proto3" json:"predicate,omitempty"`
// The maximum number of entries to return.
//
// The service may return fewer than this value.
// If unspecified, at most 100 variants will be returned.
// The maximum value is 1000; values above 1000 will be coerced to 1000.
PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
// A page token, received from a previous call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to the next call MUST
// match the call that provided the page token.
PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryTestHistoryRequest) Reset() {
*x = QueryTestHistoryRequest{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryTestHistoryRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryTestHistoryRequest) ProtoMessage() {}
func (x *QueryTestHistoryRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[0]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryTestHistoryRequest.ProtoReflect.Descriptor instead.
func (*QueryTestHistoryRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{0}
}
func (x *QueryTestHistoryRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *QueryTestHistoryRequest) GetTestId() string {
if x != nil {
return x.TestId
}
return ""
}
func (x *QueryTestHistoryRequest) GetPredicate() *TestVerdictPredicate {
if x != nil {
return x.Predicate
}
return nil
}
func (x *QueryTestHistoryRequest) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *QueryTestHistoryRequest) GetPageToken() string {
if x != nil {
return x.PageToken
}
return ""
}
// A response message for `TestHistory.Query` RPC.
type QueryTestHistoryResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
// The list of test verdicts.
// Test verdicts will be ordered by `partition_time` DESC, `variant_hash` ASC,
// `invocation_id` ASC.
Verdicts []*TestVerdict `protobuf:"bytes,1,rep,name=verdicts,proto3" json:"verdicts,omitempty"`
// This field will be set if there are more results to return.
// To get the next page of data, send the same request again, but include this
// token.
NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryTestHistoryResponse) Reset() {
*x = QueryTestHistoryResponse{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryTestHistoryResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryTestHistoryResponse) ProtoMessage() {}
func (x *QueryTestHistoryResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[1]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryTestHistoryResponse.ProtoReflect.Descriptor instead.
func (*QueryTestHistoryResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{1}
}
func (x *QueryTestHistoryResponse) GetVerdicts() []*TestVerdict {
if x != nil {
return x.Verdicts
}
return nil
}
func (x *QueryTestHistoryResponse) GetNextPageToken() string {
if x != nil {
return x.NextPageToken
}
return ""
}
// A request message for `TestHistory.QueryStats` RPC.
type QueryTestHistoryStatsRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required. The LUCI Project of the test results.
// I.e. For a result to be part of the history, it needs to be contained
// transitively by an invocation in this project.
Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
// Required. The test ID to query the history from.
TestId string `protobuf:"bytes,2,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"`
// Required. A test verdict in the response must satisfy this predicate.
Predicate *TestVerdictPredicate `protobuf:"bytes,3,opt,name=predicate,proto3" json:"predicate,omitempty"`
// The maximum number of entries to return.
//
// The service may return fewer than this value.
// If unspecified, at most 100 variants will be returned.
// The maximum value is 1000; values above 1000 will be coerced to 1000.
PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
// A page token, received from a previous call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to the next call
// MUST match the call that provided the page token.
PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryTestHistoryStatsRequest) Reset() {
*x = QueryTestHistoryStatsRequest{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryTestHistoryStatsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryTestHistoryStatsRequest) ProtoMessage() {}
func (x *QueryTestHistoryStatsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[2]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryTestHistoryStatsRequest.ProtoReflect.Descriptor instead.
func (*QueryTestHistoryStatsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{2}
}
func (x *QueryTestHistoryStatsRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *QueryTestHistoryStatsRequest) GetTestId() string {
if x != nil {
return x.TestId
}
return ""
}
func (x *QueryTestHistoryStatsRequest) GetPredicate() *TestVerdictPredicate {
if x != nil {
return x.Predicate
}
return nil
}
func (x *QueryTestHistoryStatsRequest) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *QueryTestHistoryStatsRequest) GetPageToken() string {
if x != nil {
return x.PageToken
}
return ""
}
// A response message for `TestHistory.QueryStats` RPC.
type QueryTestHistoryStatsResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
// The list of test verdict groups. Test verdicts will be grouped and ordered
// by `partition_date` DESC, `variant_hash` ASC.
Groups []*QueryTestHistoryStatsResponse_Group `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
// This field will be set if there are more results to return.
// To get the next page of data, send the same request again, but include this
// token.
NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryTestHistoryStatsResponse) Reset() {
*x = QueryTestHistoryStatsResponse{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryTestHistoryStatsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryTestHistoryStatsResponse) ProtoMessage() {}
func (x *QueryTestHistoryStatsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[3]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryTestHistoryStatsResponse.ProtoReflect.Descriptor instead.
func (*QueryTestHistoryStatsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{3}
}
func (x *QueryTestHistoryStatsResponse) GetGroups() []*QueryTestHistoryStatsResponse_Group {
if x != nil {
return x.Groups
}
return nil
}
func (x *QueryTestHistoryStatsResponse) GetNextPageToken() string {
if x != nil {
return x.NextPageToken
}
return ""
}
// A request message for the `QueryVariants` RPC.
type QueryVariantsRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required. The LUCI project to query the variants from.
Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
// Required. The test ID to query the variants from.
TestId string `protobuf:"bytes,2,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"`
// Optional. The project-scoped realm to query the variants from.
// This is the realm without the "<project>:" prefix.
//
// When specified, only the test variants found in the matching realm will be
// returned.
SubRealm string `protobuf:"bytes,3,opt,name=sub_realm,json=subRealm,proto3" json:"sub_realm,omitempty"`
// Optional. When specified, only variant matches this predicate will be
// returned.
VariantPredicate *VariantPredicate `protobuf:"bytes,6,opt,name=variant_predicate,json=variantPredicate,proto3" json:"variant_predicate,omitempty"`
// The maximum number of variants to return.
//
// The service may return fewer than this value.
// If unspecified, at most 100 variants will be returned.
// The maximum value is 1000; values above 1000 will be coerced to 1000.
PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
// A page token, received from a previous `QueryVariants` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `QueryVariants` MUST
// match the call that provided the page token.
PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryVariantsRequest) Reset() {
*x = QueryVariantsRequest{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryVariantsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryVariantsRequest) ProtoMessage() {}
func (x *QueryVariantsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[4]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryVariantsRequest.ProtoReflect.Descriptor instead.
func (*QueryVariantsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{4}
}
func (x *QueryVariantsRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *QueryVariantsRequest) GetTestId() string {
if x != nil {
return x.TestId
}
return ""
}
func (x *QueryVariantsRequest) GetSubRealm() string {
if x != nil {
return x.SubRealm
}
return ""
}
func (x *QueryVariantsRequest) GetVariantPredicate() *VariantPredicate {
if x != nil {
return x.VariantPredicate
}
return nil
}
func (x *QueryVariantsRequest) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *QueryVariantsRequest) GetPageToken() string {
if x != nil {
return x.PageToken
}
return ""
}
// A response message for the `QueryVariants` RPC.
type QueryVariantsResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
// A list of variants. Ordered by variant hash.
Variants []*QueryVariantsResponse_VariantInfo `protobuf:"bytes,1,rep,name=variants,proto3" json:"variants,omitempty"`
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there were no subsequent pages at the time of
// request.
NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryVariantsResponse) Reset() {
*x = QueryVariantsResponse{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryVariantsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryVariantsResponse) ProtoMessage() {}
func (x *QueryVariantsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[5]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryVariantsResponse.ProtoReflect.Descriptor instead.
func (*QueryVariantsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{5}
}
func (x *QueryVariantsResponse) GetVariants() []*QueryVariantsResponse_VariantInfo {
if x != nil {
return x.Variants
}
return nil
}
func (x *QueryVariantsResponse) GetNextPageToken() string {
if x != nil {
return x.NextPageToken
}
return ""
}
// A request message for the `QueryTests` RPC.
type QueryTestsRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
// Required. The LUCI project to query the tests from.
Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
// Required. Only tests that contain the substring will be returned.
TestIdSubstring string `protobuf:"bytes,2,opt,name=test_id_substring,json=testIdSubstring,proto3" json:"test_id_substring,omitempty"`
// Optional. The project-scoped realm to query the variants from.
// This is the realm without the "<project>:" prefix.
//
// When specified, only the tests found in the matching realm will be
// returned.
SubRealm string `protobuf:"bytes,3,opt,name=sub_realm,json=subRealm,proto3" json:"sub_realm,omitempty"`
// The maximum number of test IDs to return.
//
// The service may return fewer than this value.
// If unspecified, at most 100 test IDs will be returned.
// The maximum value is 1000; values above 1000 will be coerced to 1000.
PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
// A page token, received from a previous `QueryTests` call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to `QueryTests` MUST
// match the call that provided the page token.
PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
// If true then the test_id_substring match will be case insensitive. If false
// the match will be case sensitive.
CaseInsensitive bool `protobuf:"varint,6,opt,name=case_insensitive,json=caseInsensitive,proto3" json:"case_insensitive,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryTestsRequest) Reset() {
*x = QueryTestsRequest{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryTestsRequest) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryTestsRequest) ProtoMessage() {}
func (x *QueryTestsRequest) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[6]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryTestsRequest.ProtoReflect.Descriptor instead.
func (*QueryTestsRequest) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{6}
}
func (x *QueryTestsRequest) GetProject() string {
if x != nil {
return x.Project
}
return ""
}
func (x *QueryTestsRequest) GetTestIdSubstring() string {
if x != nil {
return x.TestIdSubstring
}
return ""
}
func (x *QueryTestsRequest) GetSubRealm() string {
if x != nil {
return x.SubRealm
}
return ""
}
func (x *QueryTestsRequest) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *QueryTestsRequest) GetPageToken() string {
if x != nil {
return x.PageToken
}
return ""
}
func (x *QueryTestsRequest) GetCaseInsensitive() bool {
if x != nil {
return x.CaseInsensitive
}
return false
}
// A response message for the `QueryTests` RPC.
type QueryTestsResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
// A list of test Ids. Ordered alphabetically.
TestIds []string `protobuf:"bytes,1,rep,name=test_ids,json=testIds,proto3" json:"test_ids,omitempty"`
// A token, which can be sent as `page_token` to retrieve the next page.
// If this field is omitted, there were no subsequent pages at the time of
// request.
NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryTestsResponse) Reset() {
*x = QueryTestsResponse{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryTestsResponse) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryTestsResponse) ProtoMessage() {}
func (x *QueryTestsResponse) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[7]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryTestsResponse.ProtoReflect.Descriptor instead.
func (*QueryTestsResponse) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{7}
}
func (x *QueryTestsResponse) GetTestIds() []string {
if x != nil {
return x.TestIds
}
return nil
}
func (x *QueryTestsResponse) GetNextPageToken() string {
if x != nil {
return x.NextPageToken
}
return ""
}
type QueryTestHistoryStatsResponse_Group struct {
state protoimpl.MessageState `protogen:"open.v1"`
// The start time of this group.
// Test verdicts that are paritioned in the 24 hours following this
// timestamp are captured in this group.
PartitionTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=partition_time,json=partitionTime,proto3" json:"partition_time,omitempty"`
// The hash of the variant.
VariantHash string `protobuf:"bytes,2,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"`
// The number of unexpected test verdicts in the group.
UnexpectedCount int32 `protobuf:"varint,3,opt,name=unexpected_count,json=unexpectedCount,proto3" json:"unexpected_count,omitempty"`
// The number of unexpectedly skipped test verdicts in the group.
UnexpectedlySkippedCount int32 `protobuf:"varint,4,opt,name=unexpectedly_skipped_count,json=unexpectedlySkippedCount,proto3" json:"unexpectedly_skipped_count,omitempty"`
// The number of flaky test verdicts in the group.
FlakyCount int32 `protobuf:"varint,5,opt,name=flaky_count,json=flakyCount,proto3" json:"flaky_count,omitempty"`
// The number of exonerated test verdicts in the group.
ExoneratedCount int32 `protobuf:"varint,6,opt,name=exonerated_count,json=exoneratedCount,proto3" json:"exonerated_count,omitempty"`
// The number of expected test verdicts in the group.
ExpectedCount int32 `protobuf:"varint,7,opt,name=expected_count,json=expectedCount,proto3" json:"expected_count,omitempty"`
// The average duration of passing test results in the group.
PassedAvgDuration *durationpb.Duration `protobuf:"bytes,8,opt,name=passed_avg_duration,json=passedAvgDuration,proto3" json:"passed_avg_duration,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryTestHistoryStatsResponse_Group) Reset() {
*x = QueryTestHistoryStatsResponse_Group{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryTestHistoryStatsResponse_Group) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryTestHistoryStatsResponse_Group) ProtoMessage() {}
func (x *QueryTestHistoryStatsResponse_Group) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[8]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryTestHistoryStatsResponse_Group.ProtoReflect.Descriptor instead.
func (*QueryTestHistoryStatsResponse_Group) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{3, 0}
}
func (x *QueryTestHistoryStatsResponse_Group) GetPartitionTime() *timestamppb.Timestamp {
if x != nil {
return x.PartitionTime
}
return nil
}
func (x *QueryTestHistoryStatsResponse_Group) GetVariantHash() string {
if x != nil {
return x.VariantHash
}
return ""
}
func (x *QueryTestHistoryStatsResponse_Group) GetUnexpectedCount() int32 {
if x != nil {
return x.UnexpectedCount
}
return 0
}
func (x *QueryTestHistoryStatsResponse_Group) GetUnexpectedlySkippedCount() int32 {
if x != nil {
return x.UnexpectedlySkippedCount
}
return 0
}
func (x *QueryTestHistoryStatsResponse_Group) GetFlakyCount() int32 {
if x != nil {
return x.FlakyCount
}
return 0
}
func (x *QueryTestHistoryStatsResponse_Group) GetExoneratedCount() int32 {
if x != nil {
return x.ExoneratedCount
}
return 0
}
func (x *QueryTestHistoryStatsResponse_Group) GetExpectedCount() int32 {
if x != nil {
return x.ExpectedCount
}
return 0
}
func (x *QueryTestHistoryStatsResponse_Group) GetPassedAvgDuration() *durationpb.Duration {
if x != nil {
return x.PassedAvgDuration
}
return nil
}
// Contains the variant definition and its hash.
type QueryVariantsResponse_VariantInfo struct {
state protoimpl.MessageState `protogen:"open.v1"`
// The hash of the variant.
VariantHash string `protobuf:"bytes,1,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"`
// The definition of the variant.
Variant *Variant `protobuf:"bytes,2,opt,name=variant,proto3" json:"variant,omitempty"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *QueryVariantsResponse_VariantInfo) Reset() {
*x = QueryVariantsResponse_VariantInfo{}
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *QueryVariantsResponse_VariantInfo) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*QueryVariantsResponse_VariantInfo) ProtoMessage() {}
func (x *QueryVariantsResponse_VariantInfo) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[9]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use QueryVariantsResponse_VariantInfo.ProtoReflect.Descriptor instead.
func (*QueryVariantsResponse_VariantInfo) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{5, 0}
}
func (x *QueryVariantsResponse_VariantInfo) GetVariantHash() string {
if x != nil {
return x.VariantHash
}
return ""
}
func (x *QueryVariantsResponse_VariantInfo) GetVariant() *Variant {
if x != nil {
return x.Variant
}
return nil
}
var File_go_chromium_org_luci_analysis_proto_v1_test_history_proto protoreflect.FileDescriptor
var file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDesc = string([]byte{
0x0a, 0x39, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x69,
0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6c, 0x75, 0x63,
0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 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, 0x1e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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,
0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67,
0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75,
0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79,
0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65,
0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, 0x6f,
0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75,
0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63,
0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdd, 0x01, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72,
0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75,
0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65,
0x63, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x65, 0x73, 0x74, 0x49, 0x64,
0x12, 0x49, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79,
0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x64, 0x69,
0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70,
0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61,
0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7d, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79,
0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f,
0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61,
0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72,
0x64, 0x69, 0x63, 0x74, 0x52, 0x08, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 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, 0xe2, 0x01, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79,
0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65,
0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70,
0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69,
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x65,
0x73, 0x74, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74,
0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61,
0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56,
0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42,
0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12,
0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xad, 0x04, 0x0a, 0x1d,
0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a,
0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e,
0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31,
0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 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, 0x1a, 0x94, 0x03, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x41,
0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d,
0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73,
0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
0x48, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74,
0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f,
0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
0x3c, 0x0a, 0x1a, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x6c, 0x79, 0x5f,
0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20,
0x01, 0x28, 0x05, 0x52, 0x18, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x6c,
0x79, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a,
0x0b, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01,
0x28, 0x05, 0x52, 0x0a, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29,
0x0a, 0x10, 0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72,
0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x70,
0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28,
0x05, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x49, 0x0a, 0x13, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x64,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64,
0x41, 0x76, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xfd, 0x01, 0x0a, 0x14,
0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a,
0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x65, 0x73, 0x74, 0x49,
0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x4f,
0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63,
0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x75, 0x63, 0x69,
0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x72,
0x69, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x10, 0x76,
0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12,
0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf7, 0x01, 0x0a, 0x15,
0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61,
0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79,
0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x76, 0x61,
0x72, 0x69, 0x61, 0x6e, 0x74, 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, 0x1a, 0x65,
0x0a, 0x0b, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a,
0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68,
0x12, 0x33, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69,
0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x61,
0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0xe7, 0x01, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54,
0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x70,
0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x65,
0x73, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74,
0x49, 0x64, 0x53, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x73,
0x75, 0x62, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x73, 0x75, 0x62, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65,
0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 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, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54,
0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x6e, 0x73,
0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
0x63, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x22,
0x57, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73,
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x73, 0x74, 0x49, 0x64, 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, 0x32, 0x9f, 0x03, 0x0a, 0x0b, 0x54, 0x65, 0x73,
0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x60, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72,
0x79, 0x12, 0x29, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69,
0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69,
0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6c,
0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e,
0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6f, 0x0a, 0x0a, 0x51, 0x75,
0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2e, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e,
0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72,
0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e,
0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72,
0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74,
0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0d, 0x51,
0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x6c,
0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e,
0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71,
0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c,
0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x72,
0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12,
0x59, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x73, 0x12, 0x23, 0x2e,
0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31,
0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73,
0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x73,
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x6f,
0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75,
0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x70, 0x62, 0x62,
0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
})
var (
file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescOnce sync.Once
file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescData []byte
)
func file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP() []byte {
file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescOnce.Do(func() {
file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDesc), len(file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDesc)))
})
return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescData
}
var file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
var file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_goTypes = []any{
(*QueryTestHistoryRequest)(nil), // 0: luci.analysis.v1.QueryTestHistoryRequest
(*QueryTestHistoryResponse)(nil), // 1: luci.analysis.v1.QueryTestHistoryResponse
(*QueryTestHistoryStatsRequest)(nil), // 2: luci.analysis.v1.QueryTestHistoryStatsRequest
(*QueryTestHistoryStatsResponse)(nil), // 3: luci.analysis.v1.QueryTestHistoryStatsResponse
(*QueryVariantsRequest)(nil), // 4: luci.analysis.v1.QueryVariantsRequest
(*QueryVariantsResponse)(nil), // 5: luci.analysis.v1.QueryVariantsResponse
(*QueryTestsRequest)(nil), // 6: luci.analysis.v1.QueryTestsRequest
(*QueryTestsResponse)(nil), // 7: luci.analysis.v1.QueryTestsResponse
(*QueryTestHistoryStatsResponse_Group)(nil), // 8: luci.analysis.v1.QueryTestHistoryStatsResponse.Group
(*QueryVariantsResponse_VariantInfo)(nil), // 9: luci.analysis.v1.QueryVariantsResponse.VariantInfo
(*TestVerdictPredicate)(nil), // 10: luci.analysis.v1.TestVerdictPredicate
(*TestVerdict)(nil), // 11: luci.analysis.v1.TestVerdict
(*VariantPredicate)(nil), // 12: luci.analysis.v1.VariantPredicate
(*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp
(*durationpb.Duration)(nil), // 14: google.protobuf.Duration
(*Variant)(nil), // 15: luci.analysis.v1.Variant
}
var file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_depIdxs = []int32{
10, // 0: luci.analysis.v1.QueryTestHistoryRequest.predicate:type_name -> luci.analysis.v1.TestVerdictPredicate
11, // 1: luci.analysis.v1.QueryTestHistoryResponse.verdicts:type_name -> luci.analysis.v1.TestVerdict
10, // 2: luci.analysis.v1.QueryTestHistoryStatsRequest.predicate:type_name -> luci.analysis.v1.TestVerdictPredicate
8, // 3: luci.analysis.v1.QueryTestHistoryStatsResponse.groups:type_name -> luci.analysis.v1.QueryTestHistoryStatsResponse.Group
12, // 4: luci.analysis.v1.QueryVariantsRequest.variant_predicate:type_name -> luci.analysis.v1.VariantPredicate
9, // 5: luci.analysis.v1.QueryVariantsResponse.variants:type_name -> luci.analysis.v1.QueryVariantsResponse.VariantInfo
13, // 6: luci.analysis.v1.QueryTestHistoryStatsResponse.Group.partition_time:type_name -> google.protobuf.Timestamp
14, // 7: luci.analysis.v1.QueryTestHistoryStatsResponse.Group.passed_avg_duration:type_name -> google.protobuf.Duration
15, // 8: luci.analysis.v1.QueryVariantsResponse.VariantInfo.variant:type_name -> luci.analysis.v1.Variant
0, // 9: luci.analysis.v1.TestHistory.Query:input_type -> luci.analysis.v1.QueryTestHistoryRequest
2, // 10: luci.analysis.v1.TestHistory.QueryStats:input_type -> luci.analysis.v1.QueryTestHistoryStatsRequest
4, // 11: luci.analysis.v1.TestHistory.QueryVariants:input_type -> luci.analysis.v1.QueryVariantsRequest
6, // 12: luci.analysis.v1.TestHistory.QueryTests:input_type -> luci.analysis.v1.QueryTestsRequest
1, // 13: luci.analysis.v1.TestHistory.Query:output_type -> luci.analysis.v1.QueryTestHistoryResponse
3, // 14: luci.analysis.v1.TestHistory.QueryStats:output_type -> luci.analysis.v1.QueryTestHistoryStatsResponse
5, // 15: luci.analysis.v1.TestHistory.QueryVariants:output_type -> luci.analysis.v1.QueryVariantsResponse
7, // 16: luci.analysis.v1.TestHistory.QueryTests:output_type -> luci.analysis.v1.QueryTestsResponse
13, // [13:17] is the sub-list for method output_type
9, // [9:13] is the sub-list for method input_type
9, // [9:9] is the sub-list for extension type_name
9, // [9:9] is the sub-list for extension extendee
0, // [0:9] is the sub-list for field type_name
}
func init() { file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_init() }
func file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_init() {
if File_go_chromium_org_luci_analysis_proto_v1_test_history_proto != nil {
return
}
file_go_chromium_org_luci_analysis_proto_v1_common_proto_init()
file_go_chromium_org_luci_analysis_proto_v1_predicate_proto_init()
file_go_chromium_org_luci_analysis_proto_v1_test_verdict_proto_init()
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDesc), len(file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDesc)),
NumEnums: 0,
NumMessages: 10,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_goTypes,
DependencyIndexes: file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_depIdxs,
MessageInfos: file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes,
}.Build()
File_go_chromium_org_luci_analysis_proto_v1_test_history_proto = out.File
file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_goTypes = nil
file_go_chromium_org_luci_analysis_proto_v1_test_history_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
// TestHistoryClient is the client API for TestHistory service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type TestHistoryClient interface {
// Retrieves test verdicts for a given test ID in a given project and in a
// given range of time.
// Accepts a test variant predicate to filter the verdicts.
Query(ctx context.Context, in *QueryTestHistoryRequest, opts ...grpc.CallOption) (*QueryTestHistoryResponse, error)
// Retrieves a summary of test verdicts for a given test ID in a given project
// and in a given range of times.
// Accepts a test variant predicate to filter the verdicts.
QueryStats(ctx context.Context, in *QueryTestHistoryStatsRequest, opts ...grpc.CallOption) (*QueryTestHistoryStatsResponse, error)
// Retrieves variants for a given test ID in a given project that were
// recorded in the past 90 days.
QueryVariants(ctx context.Context, in *QueryVariantsRequest, opts ...grpc.CallOption) (*QueryVariantsResponse, error)
// Finds test IDs that contain the given substring in a given project that
// were recorded in the past 90 days.
QueryTests(ctx context.Context, in *QueryTestsRequest, opts ...grpc.CallOption) (*QueryTestsResponse, error)
}
type testHistoryPRPCClient struct {
client *prpc.Client
}
func NewTestHistoryPRPCClient(client *prpc.Client) TestHistoryClient {
return &testHistoryPRPCClient{client}
}
func (c *testHistoryPRPCClient) Query(ctx context.Context, in *QueryTestHistoryRequest, opts ...grpc.CallOption) (*QueryTestHistoryResponse, error) {
out := new(QueryTestHistoryResponse)
err := c.client.Call(ctx, "luci.analysis.v1.TestHistory", "Query", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *testHistoryPRPCClient) QueryStats(ctx context.Context, in *QueryTestHistoryStatsRequest, opts ...grpc.CallOption) (*QueryTestHistoryStatsResponse, error) {
out := new(QueryTestHistoryStatsResponse)
err := c.client.Call(ctx, "luci.analysis.v1.TestHistory", "QueryStats", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *testHistoryPRPCClient) QueryVariants(ctx context.Context, in *QueryVariantsRequest, opts ...grpc.CallOption) (*QueryVariantsResponse, error) {
out := new(QueryVariantsResponse)
err := c.client.Call(ctx, "luci.analysis.v1.TestHistory", "QueryVariants", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *testHistoryPRPCClient) QueryTests(ctx context.Context, in *QueryTestsRequest, opts ...grpc.CallOption) (*QueryTestsResponse, error) {
out := new(QueryTestsResponse)
err := c.client.Call(ctx, "luci.analysis.v1.TestHistory", "QueryTests", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
type testHistoryClient struct {
cc grpc.ClientConnInterface
}
func NewTestHistoryClient(cc grpc.ClientConnInterface) TestHistoryClient {
return &testHistoryClient{cc}
}
func (c *testHistoryClient) Query(ctx context.Context, in *QueryTestHistoryRequest, opts ...grpc.CallOption) (*QueryTestHistoryResponse, error) {
out := new(QueryTestHistoryResponse)
err := c.cc.Invoke(ctx, "/luci.analysis.v1.TestHistory/Query", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *testHistoryClient) QueryStats(ctx context.Context, in *QueryTestHistoryStatsRequest, opts ...grpc.CallOption) (*QueryTestHistoryStatsResponse, error) {
out := new(QueryTestHistoryStatsResponse)
err := c.cc.Invoke(ctx, "/luci.analysis.v1.TestHistory/QueryStats", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *testHistoryClient) QueryVariants(ctx context.Context, in *QueryVariantsRequest, opts ...grpc.CallOption) (*QueryVariantsResponse, error) {
out := new(QueryVariantsResponse)
err := c.cc.Invoke(ctx, "/luci.analysis.v1.TestHistory/QueryVariants", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *testHistoryClient) QueryTests(ctx context.Context, in *QueryTestsRequest, opts ...grpc.CallOption) (*QueryTestsResponse, error) {
out := new(QueryTestsResponse)
err := c.cc.Invoke(ctx, "/luci.analysis.v1.TestHistory/QueryTests", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// TestHistoryServer is the server API for TestHistory service.
type TestHistoryServer interface {
// Retrieves test verdicts for a given test ID in a given project and in a
// given range of time.
// Accepts a test variant predicate to filter the verdicts.
Query(context.Context, *QueryTestHistoryRequest) (*QueryTestHistoryResponse, error)
// Retrieves a summary of test verdicts for a given test ID in a given project
// and in a given range of times.
// Accepts a test variant predicate to filter the verdicts.
QueryStats(context.Context, *QueryTestHistoryStatsRequest) (*QueryTestHistoryStatsResponse, error)
// Retrieves variants for a given test ID in a given project that were
// recorded in the past 90 days.
QueryVariants(context.Context, *QueryVariantsRequest) (*QueryVariantsResponse, error)
// Finds test IDs that contain the given substring in a given project that
// were recorded in the past 90 days.
QueryTests(context.Context, *QueryTestsRequest) (*QueryTestsResponse, error)
}
// UnimplementedTestHistoryServer can be embedded to have forward compatible implementations.
type UnimplementedTestHistoryServer struct {
}
func (*UnimplementedTestHistoryServer) Query(context.Context, *QueryTestHistoryRequest) (*QueryTestHistoryResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Query not implemented")
}
func (*UnimplementedTestHistoryServer) QueryStats(context.Context, *QueryTestHistoryStatsRequest) (*QueryTestHistoryStatsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method QueryStats not implemented")
}
func (*UnimplementedTestHistoryServer) QueryVariants(context.Context, *QueryVariantsRequest) (*QueryVariantsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method QueryVariants not implemented")
}
func (*UnimplementedTestHistoryServer) QueryTests(context.Context, *QueryTestsRequest) (*QueryTestsResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method QueryTests not implemented")
}
func RegisterTestHistoryServer(s prpc.Registrar, srv TestHistoryServer) {
s.RegisterService(&_TestHistory_serviceDesc, srv)
}
func _TestHistory_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryTestHistoryRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TestHistoryServer).Query(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.analysis.v1.TestHistory/Query",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TestHistoryServer).Query(ctx, req.(*QueryTestHistoryRequest))
}
return interceptor(ctx, in, info, handler)
}
func _TestHistory_QueryStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryTestHistoryStatsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TestHistoryServer).QueryStats(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.analysis.v1.TestHistory/QueryStats",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TestHistoryServer).QueryStats(ctx, req.(*QueryTestHistoryStatsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _TestHistory_QueryVariants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryVariantsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TestHistoryServer).QueryVariants(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.analysis.v1.TestHistory/QueryVariants",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TestHistoryServer).QueryVariants(ctx, req.(*QueryVariantsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _TestHistory_QueryTests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryTestsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(TestHistoryServer).QueryTests(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/luci.analysis.v1.TestHistory/QueryTests",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(TestHistoryServer).QueryTests(ctx, req.(*QueryTestsRequest))
}
return interceptor(ctx, in, info, handler)
}
var _TestHistory_serviceDesc = grpc.ServiceDesc{
ServiceName: "luci.analysis.v1.TestHistory",
HandlerType: (*TestHistoryServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "Query",
Handler: _TestHistory_Query_Handler,
},
{
MethodName: "QueryStats",
Handler: _TestHistory_QueryStats_Handler,
},
{
MethodName: "QueryVariants",
Handler: _TestHistory_QueryVariants_Handler,
},
{
MethodName: "QueryTests",
Handler: _TestHistory_QueryTests_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "go.chromium.org/luci/analysis/proto/v1/test_history.proto",
}