go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/analysis/proto/v1/test_history.pb.go (about) 1 // Copyright 2022 The LUCI Authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.32.0 18 // protoc v3.21.7 19 // source: go.chromium.org/luci/analysis/proto/v1/test_history.proto 20 21 package analysispb 22 23 import prpc "go.chromium.org/luci/grpc/prpc" 24 25 import ( 26 context "context" 27 _ "google.golang.org/genproto/googleapis/api/annotations" 28 grpc "google.golang.org/grpc" 29 codes "google.golang.org/grpc/codes" 30 status "google.golang.org/grpc/status" 31 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 32 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 33 durationpb "google.golang.org/protobuf/types/known/durationpb" 34 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 35 reflect "reflect" 36 sync "sync" 37 ) 38 39 const ( 40 // Verify that this generated code is sufficiently up-to-date. 41 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 42 // Verify that runtime/protoimpl is sufficiently up-to-date. 43 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 44 ) 45 46 // A request message for `TestHistory.Query` RPC. 47 type QueryTestHistoryRequest struct { 48 state protoimpl.MessageState 49 sizeCache protoimpl.SizeCache 50 unknownFields protoimpl.UnknownFields 51 52 // Required. The LUCI Project of the test results. 53 // I.e. For a result to be part of the history, it needs to be contained 54 // transitively by an invocation in this project. 55 Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` 56 // Required. The test ID to query the history from. 57 TestId string `protobuf:"bytes,2,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"` 58 // Required. A test verdict in the response must satisfy this predicate. 59 Predicate *TestVerdictPredicate `protobuf:"bytes,3,opt,name=predicate,proto3" json:"predicate,omitempty"` 60 // The maximum number of entries to return. 61 // 62 // The service may return fewer than this value. 63 // If unspecified, at most 100 variants will be returned. 64 // The maximum value is 1000; values above 1000 will be coerced to 1000. 65 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 66 // A page token, received from a previous call. 67 // Provide this to retrieve the subsequent page. 68 // 69 // When paginating, all other parameters provided to the next call MUST 70 // match the call that provided the page token. 71 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 72 } 73 74 func (x *QueryTestHistoryRequest) Reset() { 75 *x = QueryTestHistoryRequest{} 76 if protoimpl.UnsafeEnabled { 77 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[0] 78 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 79 ms.StoreMessageInfo(mi) 80 } 81 } 82 83 func (x *QueryTestHistoryRequest) String() string { 84 return protoimpl.X.MessageStringOf(x) 85 } 86 87 func (*QueryTestHistoryRequest) ProtoMessage() {} 88 89 func (x *QueryTestHistoryRequest) ProtoReflect() protoreflect.Message { 90 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[0] 91 if protoimpl.UnsafeEnabled && x != nil { 92 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 93 if ms.LoadMessageInfo() == nil { 94 ms.StoreMessageInfo(mi) 95 } 96 return ms 97 } 98 return mi.MessageOf(x) 99 } 100 101 // Deprecated: Use QueryTestHistoryRequest.ProtoReflect.Descriptor instead. 102 func (*QueryTestHistoryRequest) Descriptor() ([]byte, []int) { 103 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{0} 104 } 105 106 func (x *QueryTestHistoryRequest) GetProject() string { 107 if x != nil { 108 return x.Project 109 } 110 return "" 111 } 112 113 func (x *QueryTestHistoryRequest) GetTestId() string { 114 if x != nil { 115 return x.TestId 116 } 117 return "" 118 } 119 120 func (x *QueryTestHistoryRequest) GetPredicate() *TestVerdictPredicate { 121 if x != nil { 122 return x.Predicate 123 } 124 return nil 125 } 126 127 func (x *QueryTestHistoryRequest) GetPageSize() int32 { 128 if x != nil { 129 return x.PageSize 130 } 131 return 0 132 } 133 134 func (x *QueryTestHistoryRequest) GetPageToken() string { 135 if x != nil { 136 return x.PageToken 137 } 138 return "" 139 } 140 141 // A response message for `TestHistory.Query` RPC. 142 type QueryTestHistoryResponse struct { 143 state protoimpl.MessageState 144 sizeCache protoimpl.SizeCache 145 unknownFields protoimpl.UnknownFields 146 147 // The list of test verdicts. 148 // Test verdicts will be ordered by `partition_time` DESC, `variant_hash` ASC, 149 // `invocation_id` ASC. 150 Verdicts []*TestVerdict `protobuf:"bytes,1,rep,name=verdicts,proto3" json:"verdicts,omitempty"` 151 // This field will be set if there are more results to return. 152 // To get the next page of data, send the same request again, but include this 153 // token. 154 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 155 } 156 157 func (x *QueryTestHistoryResponse) Reset() { 158 *x = QueryTestHistoryResponse{} 159 if protoimpl.UnsafeEnabled { 160 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[1] 161 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 162 ms.StoreMessageInfo(mi) 163 } 164 } 165 166 func (x *QueryTestHistoryResponse) String() string { 167 return protoimpl.X.MessageStringOf(x) 168 } 169 170 func (*QueryTestHistoryResponse) ProtoMessage() {} 171 172 func (x *QueryTestHistoryResponse) ProtoReflect() protoreflect.Message { 173 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[1] 174 if protoimpl.UnsafeEnabled && x != nil { 175 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 176 if ms.LoadMessageInfo() == nil { 177 ms.StoreMessageInfo(mi) 178 } 179 return ms 180 } 181 return mi.MessageOf(x) 182 } 183 184 // Deprecated: Use QueryTestHistoryResponse.ProtoReflect.Descriptor instead. 185 func (*QueryTestHistoryResponse) Descriptor() ([]byte, []int) { 186 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{1} 187 } 188 189 func (x *QueryTestHistoryResponse) GetVerdicts() []*TestVerdict { 190 if x != nil { 191 return x.Verdicts 192 } 193 return nil 194 } 195 196 func (x *QueryTestHistoryResponse) GetNextPageToken() string { 197 if x != nil { 198 return x.NextPageToken 199 } 200 return "" 201 } 202 203 // A request message for `TestHistory.QueryStats` RPC. 204 type QueryTestHistoryStatsRequest struct { 205 state protoimpl.MessageState 206 sizeCache protoimpl.SizeCache 207 unknownFields protoimpl.UnknownFields 208 209 // Required. The LUCI Project of the test results. 210 // I.e. For a result to be part of the history, it needs to be contained 211 // transitively by an invocation in this project. 212 Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` 213 // Required. The test ID to query the history from. 214 TestId string `protobuf:"bytes,2,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"` 215 // Required. A test verdict in the response must satisfy this predicate. 216 Predicate *TestVerdictPredicate `protobuf:"bytes,3,opt,name=predicate,proto3" json:"predicate,omitempty"` 217 // The maximum number of entries to return. 218 // 219 // The service may return fewer than this value. 220 // If unspecified, at most 100 variants will be returned. 221 // The maximum value is 1000; values above 1000 will be coerced to 1000. 222 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 223 // A page token, received from a previous call. 224 // Provide this to retrieve the subsequent page. 225 // 226 // When paginating, all other parameters provided to the next call 227 // MUST match the call that provided the page token. 228 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 229 } 230 231 func (x *QueryTestHistoryStatsRequest) Reset() { 232 *x = QueryTestHistoryStatsRequest{} 233 if protoimpl.UnsafeEnabled { 234 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[2] 235 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 236 ms.StoreMessageInfo(mi) 237 } 238 } 239 240 func (x *QueryTestHistoryStatsRequest) String() string { 241 return protoimpl.X.MessageStringOf(x) 242 } 243 244 func (*QueryTestHistoryStatsRequest) ProtoMessage() {} 245 246 func (x *QueryTestHistoryStatsRequest) ProtoReflect() protoreflect.Message { 247 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[2] 248 if protoimpl.UnsafeEnabled && x != nil { 249 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 250 if ms.LoadMessageInfo() == nil { 251 ms.StoreMessageInfo(mi) 252 } 253 return ms 254 } 255 return mi.MessageOf(x) 256 } 257 258 // Deprecated: Use QueryTestHistoryStatsRequest.ProtoReflect.Descriptor instead. 259 func (*QueryTestHistoryStatsRequest) Descriptor() ([]byte, []int) { 260 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{2} 261 } 262 263 func (x *QueryTestHistoryStatsRequest) GetProject() string { 264 if x != nil { 265 return x.Project 266 } 267 return "" 268 } 269 270 func (x *QueryTestHistoryStatsRequest) GetTestId() string { 271 if x != nil { 272 return x.TestId 273 } 274 return "" 275 } 276 277 func (x *QueryTestHistoryStatsRequest) GetPredicate() *TestVerdictPredicate { 278 if x != nil { 279 return x.Predicate 280 } 281 return nil 282 } 283 284 func (x *QueryTestHistoryStatsRequest) GetPageSize() int32 { 285 if x != nil { 286 return x.PageSize 287 } 288 return 0 289 } 290 291 func (x *QueryTestHistoryStatsRequest) GetPageToken() string { 292 if x != nil { 293 return x.PageToken 294 } 295 return "" 296 } 297 298 // A response message for `TestHistory.QueryStats` RPC. 299 type QueryTestHistoryStatsResponse struct { 300 state protoimpl.MessageState 301 sizeCache protoimpl.SizeCache 302 unknownFields protoimpl.UnknownFields 303 304 // The list of test verdict groups. Test verdicts will be grouped and ordered 305 // by `partition_date` DESC, `variant_hash` ASC. 306 Groups []*QueryTestHistoryStatsResponse_Group `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"` 307 // This field will be set if there are more results to return. 308 // To get the next page of data, send the same request again, but include this 309 // token. 310 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 311 } 312 313 func (x *QueryTestHistoryStatsResponse) Reset() { 314 *x = QueryTestHistoryStatsResponse{} 315 if protoimpl.UnsafeEnabled { 316 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[3] 317 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 318 ms.StoreMessageInfo(mi) 319 } 320 } 321 322 func (x *QueryTestHistoryStatsResponse) String() string { 323 return protoimpl.X.MessageStringOf(x) 324 } 325 326 func (*QueryTestHistoryStatsResponse) ProtoMessage() {} 327 328 func (x *QueryTestHistoryStatsResponse) ProtoReflect() protoreflect.Message { 329 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[3] 330 if protoimpl.UnsafeEnabled && x != nil { 331 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 332 if ms.LoadMessageInfo() == nil { 333 ms.StoreMessageInfo(mi) 334 } 335 return ms 336 } 337 return mi.MessageOf(x) 338 } 339 340 // Deprecated: Use QueryTestHistoryStatsResponse.ProtoReflect.Descriptor instead. 341 func (*QueryTestHistoryStatsResponse) Descriptor() ([]byte, []int) { 342 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{3} 343 } 344 345 func (x *QueryTestHistoryStatsResponse) GetGroups() []*QueryTestHistoryStatsResponse_Group { 346 if x != nil { 347 return x.Groups 348 } 349 return nil 350 } 351 352 func (x *QueryTestHistoryStatsResponse) GetNextPageToken() string { 353 if x != nil { 354 return x.NextPageToken 355 } 356 return "" 357 } 358 359 // A request message for the `QueryVariants` RPC. 360 type QueryVariantsRequest struct { 361 state protoimpl.MessageState 362 sizeCache protoimpl.SizeCache 363 unknownFields protoimpl.UnknownFields 364 365 // Required. The LUCI project to query the variants from. 366 Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` 367 // Required. The test ID to query the variants from. 368 TestId string `protobuf:"bytes,2,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"` 369 // Optional. The project-scoped realm to query the variants from. 370 // This is the realm without the "<project>:" prefix. 371 // 372 // When specified, only the test variants found in the matching realm will be 373 // returned. 374 SubRealm string `protobuf:"bytes,3,opt,name=sub_realm,json=subRealm,proto3" json:"sub_realm,omitempty"` 375 // Optional. When specified, only variant matches this predicate will be 376 // returned. 377 VariantPredicate *VariantPredicate `protobuf:"bytes,6,opt,name=variant_predicate,json=variantPredicate,proto3" json:"variant_predicate,omitempty"` 378 // The maximum number of variants to return. 379 // 380 // The service may return fewer than this value. 381 // If unspecified, at most 100 variants will be returned. 382 // The maximum value is 1000; values above 1000 will be coerced to 1000. 383 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 384 // A page token, received from a previous `QueryVariants` call. 385 // Provide this to retrieve the subsequent page. 386 // 387 // When paginating, all other parameters provided to `QueryVariants` MUST 388 // match the call that provided the page token. 389 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 390 } 391 392 func (x *QueryVariantsRequest) Reset() { 393 *x = QueryVariantsRequest{} 394 if protoimpl.UnsafeEnabled { 395 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[4] 396 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 397 ms.StoreMessageInfo(mi) 398 } 399 } 400 401 func (x *QueryVariantsRequest) String() string { 402 return protoimpl.X.MessageStringOf(x) 403 } 404 405 func (*QueryVariantsRequest) ProtoMessage() {} 406 407 func (x *QueryVariantsRequest) ProtoReflect() protoreflect.Message { 408 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[4] 409 if protoimpl.UnsafeEnabled && x != nil { 410 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 411 if ms.LoadMessageInfo() == nil { 412 ms.StoreMessageInfo(mi) 413 } 414 return ms 415 } 416 return mi.MessageOf(x) 417 } 418 419 // Deprecated: Use QueryVariantsRequest.ProtoReflect.Descriptor instead. 420 func (*QueryVariantsRequest) Descriptor() ([]byte, []int) { 421 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{4} 422 } 423 424 func (x *QueryVariantsRequest) GetProject() string { 425 if x != nil { 426 return x.Project 427 } 428 return "" 429 } 430 431 func (x *QueryVariantsRequest) GetTestId() string { 432 if x != nil { 433 return x.TestId 434 } 435 return "" 436 } 437 438 func (x *QueryVariantsRequest) GetSubRealm() string { 439 if x != nil { 440 return x.SubRealm 441 } 442 return "" 443 } 444 445 func (x *QueryVariantsRequest) GetVariantPredicate() *VariantPredicate { 446 if x != nil { 447 return x.VariantPredicate 448 } 449 return nil 450 } 451 452 func (x *QueryVariantsRequest) GetPageSize() int32 { 453 if x != nil { 454 return x.PageSize 455 } 456 return 0 457 } 458 459 func (x *QueryVariantsRequest) GetPageToken() string { 460 if x != nil { 461 return x.PageToken 462 } 463 return "" 464 } 465 466 // A response message for the `QueryVariants` RPC. 467 type QueryVariantsResponse struct { 468 state protoimpl.MessageState 469 sizeCache protoimpl.SizeCache 470 unknownFields protoimpl.UnknownFields 471 472 // A list of variants. Ordered by variant hash. 473 Variants []*QueryVariantsResponse_VariantInfo `protobuf:"bytes,1,rep,name=variants,proto3" json:"variants,omitempty"` 474 // A token, which can be sent as `page_token` to retrieve the next page. 475 // If this field is omitted, there were no subsequent pages at the time of 476 // request. 477 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 478 } 479 480 func (x *QueryVariantsResponse) Reset() { 481 *x = QueryVariantsResponse{} 482 if protoimpl.UnsafeEnabled { 483 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[5] 484 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 485 ms.StoreMessageInfo(mi) 486 } 487 } 488 489 func (x *QueryVariantsResponse) String() string { 490 return protoimpl.X.MessageStringOf(x) 491 } 492 493 func (*QueryVariantsResponse) ProtoMessage() {} 494 495 func (x *QueryVariantsResponse) ProtoReflect() protoreflect.Message { 496 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[5] 497 if protoimpl.UnsafeEnabled && x != nil { 498 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 499 if ms.LoadMessageInfo() == nil { 500 ms.StoreMessageInfo(mi) 501 } 502 return ms 503 } 504 return mi.MessageOf(x) 505 } 506 507 // Deprecated: Use QueryVariantsResponse.ProtoReflect.Descriptor instead. 508 func (*QueryVariantsResponse) Descriptor() ([]byte, []int) { 509 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{5} 510 } 511 512 func (x *QueryVariantsResponse) GetVariants() []*QueryVariantsResponse_VariantInfo { 513 if x != nil { 514 return x.Variants 515 } 516 return nil 517 } 518 519 func (x *QueryVariantsResponse) GetNextPageToken() string { 520 if x != nil { 521 return x.NextPageToken 522 } 523 return "" 524 } 525 526 // A request message for the `QueryTests` RPC. 527 type QueryTestsRequest struct { 528 state protoimpl.MessageState 529 sizeCache protoimpl.SizeCache 530 unknownFields protoimpl.UnknownFields 531 532 // Required. The LUCI project to query the tests from. 533 Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` 534 // Required. Only tests that contain the substring will be returned. 535 TestIdSubstring string `protobuf:"bytes,2,opt,name=test_id_substring,json=testIdSubstring,proto3" json:"test_id_substring,omitempty"` 536 // Optional. The project-scoped realm to query the variants from. 537 // This is the realm without the "<project>:" prefix. 538 // 539 // When specified, only the tests found in the matching realm will be 540 // returned. 541 SubRealm string `protobuf:"bytes,3,opt,name=sub_realm,json=subRealm,proto3" json:"sub_realm,omitempty"` 542 // The maximum number of test IDs to return. 543 // 544 // The service may return fewer than this value. 545 // If unspecified, at most 100 test IDs will be returned. 546 // The maximum value is 1000; values above 1000 will be coerced to 1000. 547 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 548 // A page token, received from a previous `QueryTests` call. 549 // Provide this to retrieve the subsequent page. 550 // 551 // When paginating, all other parameters provided to `QueryTests` MUST 552 // match the call that provided the page token. 553 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 554 } 555 556 func (x *QueryTestsRequest) Reset() { 557 *x = QueryTestsRequest{} 558 if protoimpl.UnsafeEnabled { 559 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[6] 560 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 561 ms.StoreMessageInfo(mi) 562 } 563 } 564 565 func (x *QueryTestsRequest) String() string { 566 return protoimpl.X.MessageStringOf(x) 567 } 568 569 func (*QueryTestsRequest) ProtoMessage() {} 570 571 func (x *QueryTestsRequest) ProtoReflect() protoreflect.Message { 572 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[6] 573 if protoimpl.UnsafeEnabled && x != nil { 574 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 575 if ms.LoadMessageInfo() == nil { 576 ms.StoreMessageInfo(mi) 577 } 578 return ms 579 } 580 return mi.MessageOf(x) 581 } 582 583 // Deprecated: Use QueryTestsRequest.ProtoReflect.Descriptor instead. 584 func (*QueryTestsRequest) Descriptor() ([]byte, []int) { 585 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{6} 586 } 587 588 func (x *QueryTestsRequest) GetProject() string { 589 if x != nil { 590 return x.Project 591 } 592 return "" 593 } 594 595 func (x *QueryTestsRequest) GetTestIdSubstring() string { 596 if x != nil { 597 return x.TestIdSubstring 598 } 599 return "" 600 } 601 602 func (x *QueryTestsRequest) GetSubRealm() string { 603 if x != nil { 604 return x.SubRealm 605 } 606 return "" 607 } 608 609 func (x *QueryTestsRequest) GetPageSize() int32 { 610 if x != nil { 611 return x.PageSize 612 } 613 return 0 614 } 615 616 func (x *QueryTestsRequest) GetPageToken() string { 617 if x != nil { 618 return x.PageToken 619 } 620 return "" 621 } 622 623 // A response message for the `QueryTests` RPC. 624 type QueryTestsResponse struct { 625 state protoimpl.MessageState 626 sizeCache protoimpl.SizeCache 627 unknownFields protoimpl.UnknownFields 628 629 // A list of test Ids. Ordered alphabetically. 630 TestIds []string `protobuf:"bytes,1,rep,name=test_ids,json=testIds,proto3" json:"test_ids,omitempty"` 631 // A token, which can be sent as `page_token` to retrieve the next page. 632 // If this field is omitted, there were no subsequent pages at the time of 633 // request. 634 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 635 } 636 637 func (x *QueryTestsResponse) Reset() { 638 *x = QueryTestsResponse{} 639 if protoimpl.UnsafeEnabled { 640 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[7] 641 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 642 ms.StoreMessageInfo(mi) 643 } 644 } 645 646 func (x *QueryTestsResponse) String() string { 647 return protoimpl.X.MessageStringOf(x) 648 } 649 650 func (*QueryTestsResponse) ProtoMessage() {} 651 652 func (x *QueryTestsResponse) ProtoReflect() protoreflect.Message { 653 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[7] 654 if protoimpl.UnsafeEnabled && x != nil { 655 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 656 if ms.LoadMessageInfo() == nil { 657 ms.StoreMessageInfo(mi) 658 } 659 return ms 660 } 661 return mi.MessageOf(x) 662 } 663 664 // Deprecated: Use QueryTestsResponse.ProtoReflect.Descriptor instead. 665 func (*QueryTestsResponse) Descriptor() ([]byte, []int) { 666 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{7} 667 } 668 669 func (x *QueryTestsResponse) GetTestIds() []string { 670 if x != nil { 671 return x.TestIds 672 } 673 return nil 674 } 675 676 func (x *QueryTestsResponse) GetNextPageToken() string { 677 if x != nil { 678 return x.NextPageToken 679 } 680 return "" 681 } 682 683 type QueryTestHistoryStatsResponse_Group struct { 684 state protoimpl.MessageState 685 sizeCache protoimpl.SizeCache 686 unknownFields protoimpl.UnknownFields 687 688 // The start time of this group. 689 // Test verdicts that are paritioned in the 24 hours following this 690 // timestamp are captured in this group. 691 PartitionTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=partition_time,json=partitionTime,proto3" json:"partition_time,omitempty"` 692 // The hash of the variant. 693 VariantHash string `protobuf:"bytes,2,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"` 694 // The number of unexpected test verdicts in the group. 695 UnexpectedCount int32 `protobuf:"varint,3,opt,name=unexpected_count,json=unexpectedCount,proto3" json:"unexpected_count,omitempty"` 696 // The number of unexpectedly skipped test verdicts in the group. 697 UnexpectedlySkippedCount int32 `protobuf:"varint,4,opt,name=unexpectedly_skipped_count,json=unexpectedlySkippedCount,proto3" json:"unexpectedly_skipped_count,omitempty"` 698 // The number of flaky test verdicts in the group. 699 FlakyCount int32 `protobuf:"varint,5,opt,name=flaky_count,json=flakyCount,proto3" json:"flaky_count,omitempty"` 700 // The number of exonerated test verdicts in the group. 701 ExoneratedCount int32 `protobuf:"varint,6,opt,name=exonerated_count,json=exoneratedCount,proto3" json:"exonerated_count,omitempty"` 702 // The number of expected test verdicts in the group. 703 ExpectedCount int32 `protobuf:"varint,7,opt,name=expected_count,json=expectedCount,proto3" json:"expected_count,omitempty"` 704 // The average duration of passing test results in the group. 705 PassedAvgDuration *durationpb.Duration `protobuf:"bytes,8,opt,name=passed_avg_duration,json=passedAvgDuration,proto3" json:"passed_avg_duration,omitempty"` 706 } 707 708 func (x *QueryTestHistoryStatsResponse_Group) Reset() { 709 *x = QueryTestHistoryStatsResponse_Group{} 710 if protoimpl.UnsafeEnabled { 711 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[8] 712 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 713 ms.StoreMessageInfo(mi) 714 } 715 } 716 717 func (x *QueryTestHistoryStatsResponse_Group) String() string { 718 return protoimpl.X.MessageStringOf(x) 719 } 720 721 func (*QueryTestHistoryStatsResponse_Group) ProtoMessage() {} 722 723 func (x *QueryTestHistoryStatsResponse_Group) ProtoReflect() protoreflect.Message { 724 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[8] 725 if protoimpl.UnsafeEnabled && x != nil { 726 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 727 if ms.LoadMessageInfo() == nil { 728 ms.StoreMessageInfo(mi) 729 } 730 return ms 731 } 732 return mi.MessageOf(x) 733 } 734 735 // Deprecated: Use QueryTestHistoryStatsResponse_Group.ProtoReflect.Descriptor instead. 736 func (*QueryTestHistoryStatsResponse_Group) Descriptor() ([]byte, []int) { 737 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{3, 0} 738 } 739 740 func (x *QueryTestHistoryStatsResponse_Group) GetPartitionTime() *timestamppb.Timestamp { 741 if x != nil { 742 return x.PartitionTime 743 } 744 return nil 745 } 746 747 func (x *QueryTestHistoryStatsResponse_Group) GetVariantHash() string { 748 if x != nil { 749 return x.VariantHash 750 } 751 return "" 752 } 753 754 func (x *QueryTestHistoryStatsResponse_Group) GetUnexpectedCount() int32 { 755 if x != nil { 756 return x.UnexpectedCount 757 } 758 return 0 759 } 760 761 func (x *QueryTestHistoryStatsResponse_Group) GetUnexpectedlySkippedCount() int32 { 762 if x != nil { 763 return x.UnexpectedlySkippedCount 764 } 765 return 0 766 } 767 768 func (x *QueryTestHistoryStatsResponse_Group) GetFlakyCount() int32 { 769 if x != nil { 770 return x.FlakyCount 771 } 772 return 0 773 } 774 775 func (x *QueryTestHistoryStatsResponse_Group) GetExoneratedCount() int32 { 776 if x != nil { 777 return x.ExoneratedCount 778 } 779 return 0 780 } 781 782 func (x *QueryTestHistoryStatsResponse_Group) GetExpectedCount() int32 { 783 if x != nil { 784 return x.ExpectedCount 785 } 786 return 0 787 } 788 789 func (x *QueryTestHistoryStatsResponse_Group) GetPassedAvgDuration() *durationpb.Duration { 790 if x != nil { 791 return x.PassedAvgDuration 792 } 793 return nil 794 } 795 796 // Contains the variant definition and its hash. 797 type QueryVariantsResponse_VariantInfo struct { 798 state protoimpl.MessageState 799 sizeCache protoimpl.SizeCache 800 unknownFields protoimpl.UnknownFields 801 802 // The hash of the variant. 803 VariantHash string `protobuf:"bytes,1,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"` 804 // The definition of the variant. 805 Variant *Variant `protobuf:"bytes,2,opt,name=variant,proto3" json:"variant,omitempty"` 806 } 807 808 func (x *QueryVariantsResponse_VariantInfo) Reset() { 809 *x = QueryVariantsResponse_VariantInfo{} 810 if protoimpl.UnsafeEnabled { 811 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[9] 812 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 813 ms.StoreMessageInfo(mi) 814 } 815 } 816 817 func (x *QueryVariantsResponse_VariantInfo) String() string { 818 return protoimpl.X.MessageStringOf(x) 819 } 820 821 func (*QueryVariantsResponse_VariantInfo) ProtoMessage() {} 822 823 func (x *QueryVariantsResponse_VariantInfo) ProtoReflect() protoreflect.Message { 824 mi := &file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[9] 825 if protoimpl.UnsafeEnabled && x != nil { 826 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 827 if ms.LoadMessageInfo() == nil { 828 ms.StoreMessageInfo(mi) 829 } 830 return ms 831 } 832 return mi.MessageOf(x) 833 } 834 835 // Deprecated: Use QueryVariantsResponse_VariantInfo.ProtoReflect.Descriptor instead. 836 func (*QueryVariantsResponse_VariantInfo) Descriptor() ([]byte, []int) { 837 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP(), []int{5, 0} 838 } 839 840 func (x *QueryVariantsResponse_VariantInfo) GetVariantHash() string { 841 if x != nil { 842 return x.VariantHash 843 } 844 return "" 845 } 846 847 func (x *QueryVariantsResponse_VariantInfo) GetVariant() *Variant { 848 if x != nil { 849 return x.Variant 850 } 851 return nil 852 } 853 854 var File_go_chromium_org_luci_analysis_proto_v1_test_history_proto protoreflect.FileDescriptor 855 856 var file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDesc = []byte{ 857 0x0a, 0x39, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 858 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 859 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x68, 0x69, 860 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6c, 0x75, 0x63, 861 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 862 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 863 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 864 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 865 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 866 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 867 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 868 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 869 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70, 870 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 871 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 872 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 873 0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 874 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 0x67, 0x6f, 875 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 876 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 877 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 878 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xdd, 0x01, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 879 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 880 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 881 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 882 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 883 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x65, 0x73, 0x74, 0x49, 0x64, 884 0x12, 0x49, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 885 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 886 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x64, 0x69, 887 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 888 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 889 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 890 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 891 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 892 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7d, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 893 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 894 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x18, 895 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 896 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 897 0x64, 0x69, 0x63, 0x74, 0x52, 0x08, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x12, 0x26, 898 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 899 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 900 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 901 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 902 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 903 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 904 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 905 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x65, 906 0x73, 0x74, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 907 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 908 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 909 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 910 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 911 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 912 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 913 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 914 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xad, 0x04, 0x0a, 0x1d, 915 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 916 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 917 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 918 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 919 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 920 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 921 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0f, 922 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 923 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 924 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x94, 0x03, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x41, 925 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 926 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 927 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 928 0x6d, 0x70, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 929 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 930 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 931 0x48, 0x61, 0x73, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 932 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 933 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 934 0x3c, 0x0a, 0x1a, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x6c, 0x79, 0x5f, 935 0x73, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 936 0x01, 0x28, 0x05, 0x52, 0x18, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x6c, 937 0x79, 0x53, 0x6b, 0x69, 0x70, 0x70, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 938 0x0b, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 939 0x28, 0x05, 0x52, 0x0a, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 940 0x0a, 0x10, 0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 941 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 942 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x78, 0x70, 943 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 944 0x05, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 945 0x12, 0x49, 0x0a, 0x13, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x61, 0x76, 0x67, 0x5f, 0x64, 946 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 947 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 948 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 949 0x41, 0x76, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xfd, 0x01, 0x0a, 0x14, 950 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 951 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 952 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 953 0x65, 0x63, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 954 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x65, 0x73, 0x74, 0x49, 955 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03, 956 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x75, 0x62, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x4f, 957 0x0a, 0x11, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 958 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6c, 0x75, 0x63, 0x69, 959 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x72, 960 0x69, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x10, 0x76, 961 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 962 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 963 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 964 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 965 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf7, 0x01, 0x0a, 0x15, 966 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 967 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 968 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 969 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 970 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 971 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x76, 0x61, 972 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 973 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 974 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x1a, 0x65, 975 0x0a, 0x0b, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 976 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 977 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 978 0x12, 0x33, 0x0a, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 979 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 980 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x07, 0x76, 0x61, 981 0x72, 0x69, 0x61, 0x6e, 0x74, 0x22, 0xbc, 0x01, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 982 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x70, 983 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 984 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x74, 0x65, 985 0x73, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 986 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 987 0x49, 0x64, 0x53, 0x75, 0x62, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x73, 988 0x75, 0x62, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 989 0x73, 0x75, 0x62, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 990 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 991 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 992 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 993 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x57, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 994 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x65, 995 0x73, 0x74, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 996 0x73, 0x74, 0x49, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 997 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 998 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0x9f, 0x03, 999 0x0a, 0x0b, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x60, 0x0a, 1000 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x29, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 1001 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 1002 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 1003 0x74, 0x1a, 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 1004 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 1005 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 1006 0x6f, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x2e, 0x2e, 1007 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 1008 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 1009 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 1010 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 1011 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 1012 0x79, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 1013 0x12, 0x62, 0x0a, 0x0d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 1014 0x73, 0x12, 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 1015 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 1016 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x69, 1017 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 1018 0x72, 0x79, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 1019 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 1020 0x74, 0x73, 0x12, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 1021 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x73, 1022 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 1023 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 1024 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 1025 0x33, 0x5a, 0x31, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 1026 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 1027 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 1028 0x69, 0x73, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1029 } 1030 1031 var ( 1032 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescOnce sync.Once 1033 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescData = file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDesc 1034 ) 1035 1036 func file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescGZIP() []byte { 1037 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescOnce.Do(func() { 1038 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescData) 1039 }) 1040 return file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDescData 1041 } 1042 1043 var file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes = make([]protoimpl.MessageInfo, 10) 1044 var file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_goTypes = []interface{}{ 1045 (*QueryTestHistoryRequest)(nil), // 0: luci.analysis.v1.QueryTestHistoryRequest 1046 (*QueryTestHistoryResponse)(nil), // 1: luci.analysis.v1.QueryTestHistoryResponse 1047 (*QueryTestHistoryStatsRequest)(nil), // 2: luci.analysis.v1.QueryTestHistoryStatsRequest 1048 (*QueryTestHistoryStatsResponse)(nil), // 3: luci.analysis.v1.QueryTestHistoryStatsResponse 1049 (*QueryVariantsRequest)(nil), // 4: luci.analysis.v1.QueryVariantsRequest 1050 (*QueryVariantsResponse)(nil), // 5: luci.analysis.v1.QueryVariantsResponse 1051 (*QueryTestsRequest)(nil), // 6: luci.analysis.v1.QueryTestsRequest 1052 (*QueryTestsResponse)(nil), // 7: luci.analysis.v1.QueryTestsResponse 1053 (*QueryTestHistoryStatsResponse_Group)(nil), // 8: luci.analysis.v1.QueryTestHistoryStatsResponse.Group 1054 (*QueryVariantsResponse_VariantInfo)(nil), // 9: luci.analysis.v1.QueryVariantsResponse.VariantInfo 1055 (*TestVerdictPredicate)(nil), // 10: luci.analysis.v1.TestVerdictPredicate 1056 (*TestVerdict)(nil), // 11: luci.analysis.v1.TestVerdict 1057 (*VariantPredicate)(nil), // 12: luci.analysis.v1.VariantPredicate 1058 (*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp 1059 (*durationpb.Duration)(nil), // 14: google.protobuf.Duration 1060 (*Variant)(nil), // 15: luci.analysis.v1.Variant 1061 } 1062 var file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_depIdxs = []int32{ 1063 10, // 0: luci.analysis.v1.QueryTestHistoryRequest.predicate:type_name -> luci.analysis.v1.TestVerdictPredicate 1064 11, // 1: luci.analysis.v1.QueryTestHistoryResponse.verdicts:type_name -> luci.analysis.v1.TestVerdict 1065 10, // 2: luci.analysis.v1.QueryTestHistoryStatsRequest.predicate:type_name -> luci.analysis.v1.TestVerdictPredicate 1066 8, // 3: luci.analysis.v1.QueryTestHistoryStatsResponse.groups:type_name -> luci.analysis.v1.QueryTestHistoryStatsResponse.Group 1067 12, // 4: luci.analysis.v1.QueryVariantsRequest.variant_predicate:type_name -> luci.analysis.v1.VariantPredicate 1068 9, // 5: luci.analysis.v1.QueryVariantsResponse.variants:type_name -> luci.analysis.v1.QueryVariantsResponse.VariantInfo 1069 13, // 6: luci.analysis.v1.QueryTestHistoryStatsResponse.Group.partition_time:type_name -> google.protobuf.Timestamp 1070 14, // 7: luci.analysis.v1.QueryTestHistoryStatsResponse.Group.passed_avg_duration:type_name -> google.protobuf.Duration 1071 15, // 8: luci.analysis.v1.QueryVariantsResponse.VariantInfo.variant:type_name -> luci.analysis.v1.Variant 1072 0, // 9: luci.analysis.v1.TestHistory.Query:input_type -> luci.analysis.v1.QueryTestHistoryRequest 1073 2, // 10: luci.analysis.v1.TestHistory.QueryStats:input_type -> luci.analysis.v1.QueryTestHistoryStatsRequest 1074 4, // 11: luci.analysis.v1.TestHistory.QueryVariants:input_type -> luci.analysis.v1.QueryVariantsRequest 1075 6, // 12: luci.analysis.v1.TestHistory.QueryTests:input_type -> luci.analysis.v1.QueryTestsRequest 1076 1, // 13: luci.analysis.v1.TestHistory.Query:output_type -> luci.analysis.v1.QueryTestHistoryResponse 1077 3, // 14: luci.analysis.v1.TestHistory.QueryStats:output_type -> luci.analysis.v1.QueryTestHistoryStatsResponse 1078 5, // 15: luci.analysis.v1.TestHistory.QueryVariants:output_type -> luci.analysis.v1.QueryVariantsResponse 1079 7, // 16: luci.analysis.v1.TestHistory.QueryTests:output_type -> luci.analysis.v1.QueryTestsResponse 1080 13, // [13:17] is the sub-list for method output_type 1081 9, // [9:13] is the sub-list for method input_type 1082 9, // [9:9] is the sub-list for extension type_name 1083 9, // [9:9] is the sub-list for extension extendee 1084 0, // [0:9] is the sub-list for field type_name 1085 } 1086 1087 func init() { file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_init() } 1088 func file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_init() { 1089 if File_go_chromium_org_luci_analysis_proto_v1_test_history_proto != nil { 1090 return 1091 } 1092 file_go_chromium_org_luci_analysis_proto_v1_common_proto_init() 1093 file_go_chromium_org_luci_analysis_proto_v1_predicate_proto_init() 1094 file_go_chromium_org_luci_analysis_proto_v1_test_verdict_proto_init() 1095 if !protoimpl.UnsafeEnabled { 1096 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 1097 switch v := v.(*QueryTestHistoryRequest); i { 1098 case 0: 1099 return &v.state 1100 case 1: 1101 return &v.sizeCache 1102 case 2: 1103 return &v.unknownFields 1104 default: 1105 return nil 1106 } 1107 } 1108 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 1109 switch v := v.(*QueryTestHistoryResponse); i { 1110 case 0: 1111 return &v.state 1112 case 1: 1113 return &v.sizeCache 1114 case 2: 1115 return &v.unknownFields 1116 default: 1117 return nil 1118 } 1119 } 1120 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 1121 switch v := v.(*QueryTestHistoryStatsRequest); i { 1122 case 0: 1123 return &v.state 1124 case 1: 1125 return &v.sizeCache 1126 case 2: 1127 return &v.unknownFields 1128 default: 1129 return nil 1130 } 1131 } 1132 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 1133 switch v := v.(*QueryTestHistoryStatsResponse); i { 1134 case 0: 1135 return &v.state 1136 case 1: 1137 return &v.sizeCache 1138 case 2: 1139 return &v.unknownFields 1140 default: 1141 return nil 1142 } 1143 } 1144 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 1145 switch v := v.(*QueryVariantsRequest); i { 1146 case 0: 1147 return &v.state 1148 case 1: 1149 return &v.sizeCache 1150 case 2: 1151 return &v.unknownFields 1152 default: 1153 return nil 1154 } 1155 } 1156 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 1157 switch v := v.(*QueryVariantsResponse); i { 1158 case 0: 1159 return &v.state 1160 case 1: 1161 return &v.sizeCache 1162 case 2: 1163 return &v.unknownFields 1164 default: 1165 return nil 1166 } 1167 } 1168 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 1169 switch v := v.(*QueryTestsRequest); i { 1170 case 0: 1171 return &v.state 1172 case 1: 1173 return &v.sizeCache 1174 case 2: 1175 return &v.unknownFields 1176 default: 1177 return nil 1178 } 1179 } 1180 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 1181 switch v := v.(*QueryTestsResponse); i { 1182 case 0: 1183 return &v.state 1184 case 1: 1185 return &v.sizeCache 1186 case 2: 1187 return &v.unknownFields 1188 default: 1189 return nil 1190 } 1191 } 1192 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 1193 switch v := v.(*QueryTestHistoryStatsResponse_Group); i { 1194 case 0: 1195 return &v.state 1196 case 1: 1197 return &v.sizeCache 1198 case 2: 1199 return &v.unknownFields 1200 default: 1201 return nil 1202 } 1203 } 1204 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 1205 switch v := v.(*QueryVariantsResponse_VariantInfo); i { 1206 case 0: 1207 return &v.state 1208 case 1: 1209 return &v.sizeCache 1210 case 2: 1211 return &v.unknownFields 1212 default: 1213 return nil 1214 } 1215 } 1216 } 1217 type x struct{} 1218 out := protoimpl.TypeBuilder{ 1219 File: protoimpl.DescBuilder{ 1220 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1221 RawDescriptor: file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDesc, 1222 NumEnums: 0, 1223 NumMessages: 10, 1224 NumExtensions: 0, 1225 NumServices: 1, 1226 }, 1227 GoTypes: file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_goTypes, 1228 DependencyIndexes: file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_depIdxs, 1229 MessageInfos: file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_msgTypes, 1230 }.Build() 1231 File_go_chromium_org_luci_analysis_proto_v1_test_history_proto = out.File 1232 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_rawDesc = nil 1233 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_goTypes = nil 1234 file_go_chromium_org_luci_analysis_proto_v1_test_history_proto_depIdxs = nil 1235 } 1236 1237 // Reference imports to suppress errors if they are not otherwise used. 1238 var _ context.Context 1239 var _ grpc.ClientConnInterface 1240 1241 // This is a compile-time assertion to ensure that this generated file 1242 // is compatible with the grpc package it is being compiled against. 1243 const _ = grpc.SupportPackageIsVersion6 1244 1245 // TestHistoryClient is the client API for TestHistory service. 1246 // 1247 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 1248 type TestHistoryClient interface { 1249 // Retrieves test verdicts for a given test ID in a given project and in a 1250 // given range of time. 1251 // Accepts a test variant predicate to filter the verdicts. 1252 Query(ctx context.Context, in *QueryTestHistoryRequest, opts ...grpc.CallOption) (*QueryTestHistoryResponse, error) 1253 // Retrieves a summary of test verdicts for a given test ID in a given project 1254 // and in a given range of times. 1255 // Accepts a test variant predicate to filter the verdicts. 1256 QueryStats(ctx context.Context, in *QueryTestHistoryStatsRequest, opts ...grpc.CallOption) (*QueryTestHistoryStatsResponse, error) 1257 // Retrieves variants for a given test ID in a given project that were 1258 // recorded in the past 90 days. 1259 QueryVariants(ctx context.Context, in *QueryVariantsRequest, opts ...grpc.CallOption) (*QueryVariantsResponse, error) 1260 // Finds test IDs that contain the given substring in a given project that 1261 // were recorded in the past 90 days. 1262 QueryTests(ctx context.Context, in *QueryTestsRequest, opts ...grpc.CallOption) (*QueryTestsResponse, error) 1263 } 1264 type testHistoryPRPCClient struct { 1265 client *prpc.Client 1266 } 1267 1268 func NewTestHistoryPRPCClient(client *prpc.Client) TestHistoryClient { 1269 return &testHistoryPRPCClient{client} 1270 } 1271 1272 func (c *testHistoryPRPCClient) Query(ctx context.Context, in *QueryTestHistoryRequest, opts ...grpc.CallOption) (*QueryTestHistoryResponse, error) { 1273 out := new(QueryTestHistoryResponse) 1274 err := c.client.Call(ctx, "luci.analysis.v1.TestHistory", "Query", in, out, opts...) 1275 if err != nil { 1276 return nil, err 1277 } 1278 return out, nil 1279 } 1280 1281 func (c *testHistoryPRPCClient) QueryStats(ctx context.Context, in *QueryTestHistoryStatsRequest, opts ...grpc.CallOption) (*QueryTestHistoryStatsResponse, error) { 1282 out := new(QueryTestHistoryStatsResponse) 1283 err := c.client.Call(ctx, "luci.analysis.v1.TestHistory", "QueryStats", in, out, opts...) 1284 if err != nil { 1285 return nil, err 1286 } 1287 return out, nil 1288 } 1289 1290 func (c *testHistoryPRPCClient) QueryVariants(ctx context.Context, in *QueryVariantsRequest, opts ...grpc.CallOption) (*QueryVariantsResponse, error) { 1291 out := new(QueryVariantsResponse) 1292 err := c.client.Call(ctx, "luci.analysis.v1.TestHistory", "QueryVariants", in, out, opts...) 1293 if err != nil { 1294 return nil, err 1295 } 1296 return out, nil 1297 } 1298 1299 func (c *testHistoryPRPCClient) QueryTests(ctx context.Context, in *QueryTestsRequest, opts ...grpc.CallOption) (*QueryTestsResponse, error) { 1300 out := new(QueryTestsResponse) 1301 err := c.client.Call(ctx, "luci.analysis.v1.TestHistory", "QueryTests", in, out, opts...) 1302 if err != nil { 1303 return nil, err 1304 } 1305 return out, nil 1306 } 1307 1308 type testHistoryClient struct { 1309 cc grpc.ClientConnInterface 1310 } 1311 1312 func NewTestHistoryClient(cc grpc.ClientConnInterface) TestHistoryClient { 1313 return &testHistoryClient{cc} 1314 } 1315 1316 func (c *testHistoryClient) Query(ctx context.Context, in *QueryTestHistoryRequest, opts ...grpc.CallOption) (*QueryTestHistoryResponse, error) { 1317 out := new(QueryTestHistoryResponse) 1318 err := c.cc.Invoke(ctx, "/luci.analysis.v1.TestHistory/Query", in, out, opts...) 1319 if err != nil { 1320 return nil, err 1321 } 1322 return out, nil 1323 } 1324 1325 func (c *testHistoryClient) QueryStats(ctx context.Context, in *QueryTestHistoryStatsRequest, opts ...grpc.CallOption) (*QueryTestHistoryStatsResponse, error) { 1326 out := new(QueryTestHistoryStatsResponse) 1327 err := c.cc.Invoke(ctx, "/luci.analysis.v1.TestHistory/QueryStats", in, out, opts...) 1328 if err != nil { 1329 return nil, err 1330 } 1331 return out, nil 1332 } 1333 1334 func (c *testHistoryClient) QueryVariants(ctx context.Context, in *QueryVariantsRequest, opts ...grpc.CallOption) (*QueryVariantsResponse, error) { 1335 out := new(QueryVariantsResponse) 1336 err := c.cc.Invoke(ctx, "/luci.analysis.v1.TestHistory/QueryVariants", in, out, opts...) 1337 if err != nil { 1338 return nil, err 1339 } 1340 return out, nil 1341 } 1342 1343 func (c *testHistoryClient) QueryTests(ctx context.Context, in *QueryTestsRequest, opts ...grpc.CallOption) (*QueryTestsResponse, error) { 1344 out := new(QueryTestsResponse) 1345 err := c.cc.Invoke(ctx, "/luci.analysis.v1.TestHistory/QueryTests", in, out, opts...) 1346 if err != nil { 1347 return nil, err 1348 } 1349 return out, nil 1350 } 1351 1352 // TestHistoryServer is the server API for TestHistory service. 1353 type TestHistoryServer interface { 1354 // Retrieves test verdicts for a given test ID in a given project and in a 1355 // given range of time. 1356 // Accepts a test variant predicate to filter the verdicts. 1357 Query(context.Context, *QueryTestHistoryRequest) (*QueryTestHistoryResponse, error) 1358 // Retrieves a summary of test verdicts for a given test ID in a given project 1359 // and in a given range of times. 1360 // Accepts a test variant predicate to filter the verdicts. 1361 QueryStats(context.Context, *QueryTestHistoryStatsRequest) (*QueryTestHistoryStatsResponse, error) 1362 // Retrieves variants for a given test ID in a given project that were 1363 // recorded in the past 90 days. 1364 QueryVariants(context.Context, *QueryVariantsRequest) (*QueryVariantsResponse, error) 1365 // Finds test IDs that contain the given substring in a given project that 1366 // were recorded in the past 90 days. 1367 QueryTests(context.Context, *QueryTestsRequest) (*QueryTestsResponse, error) 1368 } 1369 1370 // UnimplementedTestHistoryServer can be embedded to have forward compatible implementations. 1371 type UnimplementedTestHistoryServer struct { 1372 } 1373 1374 func (*UnimplementedTestHistoryServer) Query(context.Context, *QueryTestHistoryRequest) (*QueryTestHistoryResponse, error) { 1375 return nil, status.Errorf(codes.Unimplemented, "method Query not implemented") 1376 } 1377 func (*UnimplementedTestHistoryServer) QueryStats(context.Context, *QueryTestHistoryStatsRequest) (*QueryTestHistoryStatsResponse, error) { 1378 return nil, status.Errorf(codes.Unimplemented, "method QueryStats not implemented") 1379 } 1380 func (*UnimplementedTestHistoryServer) QueryVariants(context.Context, *QueryVariantsRequest) (*QueryVariantsResponse, error) { 1381 return nil, status.Errorf(codes.Unimplemented, "method QueryVariants not implemented") 1382 } 1383 func (*UnimplementedTestHistoryServer) QueryTests(context.Context, *QueryTestsRequest) (*QueryTestsResponse, error) { 1384 return nil, status.Errorf(codes.Unimplemented, "method QueryTests not implemented") 1385 } 1386 1387 func RegisterTestHistoryServer(s prpc.Registrar, srv TestHistoryServer) { 1388 s.RegisterService(&_TestHistory_serviceDesc, srv) 1389 } 1390 1391 func _TestHistory_Query_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 1392 in := new(QueryTestHistoryRequest) 1393 if err := dec(in); err != nil { 1394 return nil, err 1395 } 1396 if interceptor == nil { 1397 return srv.(TestHistoryServer).Query(ctx, in) 1398 } 1399 info := &grpc.UnaryServerInfo{ 1400 Server: srv, 1401 FullMethod: "/luci.analysis.v1.TestHistory/Query", 1402 } 1403 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 1404 return srv.(TestHistoryServer).Query(ctx, req.(*QueryTestHistoryRequest)) 1405 } 1406 return interceptor(ctx, in, info, handler) 1407 } 1408 1409 func _TestHistory_QueryStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 1410 in := new(QueryTestHistoryStatsRequest) 1411 if err := dec(in); err != nil { 1412 return nil, err 1413 } 1414 if interceptor == nil { 1415 return srv.(TestHistoryServer).QueryStats(ctx, in) 1416 } 1417 info := &grpc.UnaryServerInfo{ 1418 Server: srv, 1419 FullMethod: "/luci.analysis.v1.TestHistory/QueryStats", 1420 } 1421 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 1422 return srv.(TestHistoryServer).QueryStats(ctx, req.(*QueryTestHistoryStatsRequest)) 1423 } 1424 return interceptor(ctx, in, info, handler) 1425 } 1426 1427 func _TestHistory_QueryVariants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 1428 in := new(QueryVariantsRequest) 1429 if err := dec(in); err != nil { 1430 return nil, err 1431 } 1432 if interceptor == nil { 1433 return srv.(TestHistoryServer).QueryVariants(ctx, in) 1434 } 1435 info := &grpc.UnaryServerInfo{ 1436 Server: srv, 1437 FullMethod: "/luci.analysis.v1.TestHistory/QueryVariants", 1438 } 1439 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 1440 return srv.(TestHistoryServer).QueryVariants(ctx, req.(*QueryVariantsRequest)) 1441 } 1442 return interceptor(ctx, in, info, handler) 1443 } 1444 1445 func _TestHistory_QueryTests_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 1446 in := new(QueryTestsRequest) 1447 if err := dec(in); err != nil { 1448 return nil, err 1449 } 1450 if interceptor == nil { 1451 return srv.(TestHistoryServer).QueryTests(ctx, in) 1452 } 1453 info := &grpc.UnaryServerInfo{ 1454 Server: srv, 1455 FullMethod: "/luci.analysis.v1.TestHistory/QueryTests", 1456 } 1457 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 1458 return srv.(TestHistoryServer).QueryTests(ctx, req.(*QueryTestsRequest)) 1459 } 1460 return interceptor(ctx, in, info, handler) 1461 } 1462 1463 var _TestHistory_serviceDesc = grpc.ServiceDesc{ 1464 ServiceName: "luci.analysis.v1.TestHistory", 1465 HandlerType: (*TestHistoryServer)(nil), 1466 Methods: []grpc.MethodDesc{ 1467 { 1468 MethodName: "Query", 1469 Handler: _TestHistory_Query_Handler, 1470 }, 1471 { 1472 MethodName: "QueryStats", 1473 Handler: _TestHistory_QueryStats_Handler, 1474 }, 1475 { 1476 MethodName: "QueryVariants", 1477 Handler: _TestHistory_QueryVariants_Handler, 1478 }, 1479 { 1480 MethodName: "QueryTests", 1481 Handler: _TestHistory_QueryTests_Handler, 1482 }, 1483 }, 1484 Streams: []grpc.StreamDesc{}, 1485 Metadata: "go.chromium.org/luci/analysis/proto/v1/test_history.proto", 1486 }