go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/resultdb/proto/v1/resultdb.pb.go (about) 1 // Copyright 2019 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.31.0 18 // protoc v3.21.7 19 // source: go.chromium.org/luci/resultdb/proto/v1/resultdb.proto 20 21 package resultpb 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 fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" 34 reflect "reflect" 35 sync "sync" 36 ) 37 38 const ( 39 // Verify that this generated code is sufficiently up-to-date. 40 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 41 // Verify that runtime/protoimpl is sufficiently up-to-date. 42 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 43 ) 44 45 // A request message for GetInvocation RPC. 46 type GetInvocationRequest struct { 47 state protoimpl.MessageState 48 sizeCache protoimpl.SizeCache 49 unknownFields protoimpl.UnknownFields 50 51 // The name of the invocation to request, see Invocation.name. 52 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 53 } 54 55 func (x *GetInvocationRequest) Reset() { 56 *x = GetInvocationRequest{} 57 if protoimpl.UnsafeEnabled { 58 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[0] 59 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 60 ms.StoreMessageInfo(mi) 61 } 62 } 63 64 func (x *GetInvocationRequest) String() string { 65 return protoimpl.X.MessageStringOf(x) 66 } 67 68 func (*GetInvocationRequest) ProtoMessage() {} 69 70 func (x *GetInvocationRequest) ProtoReflect() protoreflect.Message { 71 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[0] 72 if protoimpl.UnsafeEnabled && x != nil { 73 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 74 if ms.LoadMessageInfo() == nil { 75 ms.StoreMessageInfo(mi) 76 } 77 return ms 78 } 79 return mi.MessageOf(x) 80 } 81 82 // Deprecated: Use GetInvocationRequest.ProtoReflect.Descriptor instead. 83 func (*GetInvocationRequest) Descriptor() ([]byte, []int) { 84 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{0} 85 } 86 87 func (x *GetInvocationRequest) GetName() string { 88 if x != nil { 89 return x.Name 90 } 91 return "" 92 } 93 94 // A request message for GetTestResult RPC. 95 type GetTestResultRequest struct { 96 state protoimpl.MessageState 97 sizeCache protoimpl.SizeCache 98 unknownFields protoimpl.UnknownFields 99 100 // The name of the test result to request, see TestResult.name. 101 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 102 } 103 104 func (x *GetTestResultRequest) Reset() { 105 *x = GetTestResultRequest{} 106 if protoimpl.UnsafeEnabled { 107 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[1] 108 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 109 ms.StoreMessageInfo(mi) 110 } 111 } 112 113 func (x *GetTestResultRequest) String() string { 114 return protoimpl.X.MessageStringOf(x) 115 } 116 117 func (*GetTestResultRequest) ProtoMessage() {} 118 119 func (x *GetTestResultRequest) ProtoReflect() protoreflect.Message { 120 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[1] 121 if protoimpl.UnsafeEnabled && x != nil { 122 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 123 if ms.LoadMessageInfo() == nil { 124 ms.StoreMessageInfo(mi) 125 } 126 return ms 127 } 128 return mi.MessageOf(x) 129 } 130 131 // Deprecated: Use GetTestResultRequest.ProtoReflect.Descriptor instead. 132 func (*GetTestResultRequest) Descriptor() ([]byte, []int) { 133 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{1} 134 } 135 136 func (x *GetTestResultRequest) GetName() string { 137 if x != nil { 138 return x.Name 139 } 140 return "" 141 } 142 143 // A request message for ListTestResults RPC. 144 type ListTestResultsRequest struct { 145 state protoimpl.MessageState 146 sizeCache protoimpl.SizeCache 147 unknownFields protoimpl.UnknownFields 148 149 // Name of the invocation, e.g. "invocations/{id}". 150 Invocation string `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"` 151 // The maximum number of test results to return. 152 // 153 // The service may return fewer than this value. 154 // If unspecified, at most 100 test results will be returned. 155 // The maximum value is 1000; values above 1000 will be coerced to 1000. 156 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 157 // A page token, received from a previous `ListTestResults` call. 158 // Provide this to retrieve the subsequent page. 159 // 160 // When paginating, all other parameters provided to `ListTestResults` MUST 161 // match the call that provided the page token. 162 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 163 // Fields to include in the response. 164 // If not set, the default mask is used where summary_html and tags are 165 // excluded. 166 // Test result names will always be included even if "name" is not a part of 167 // the mask. 168 ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,4,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` 169 } 170 171 func (x *ListTestResultsRequest) Reset() { 172 *x = ListTestResultsRequest{} 173 if protoimpl.UnsafeEnabled { 174 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[2] 175 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 176 ms.StoreMessageInfo(mi) 177 } 178 } 179 180 func (x *ListTestResultsRequest) String() string { 181 return protoimpl.X.MessageStringOf(x) 182 } 183 184 func (*ListTestResultsRequest) ProtoMessage() {} 185 186 func (x *ListTestResultsRequest) ProtoReflect() protoreflect.Message { 187 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[2] 188 if protoimpl.UnsafeEnabled && x != nil { 189 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 190 if ms.LoadMessageInfo() == nil { 191 ms.StoreMessageInfo(mi) 192 } 193 return ms 194 } 195 return mi.MessageOf(x) 196 } 197 198 // Deprecated: Use ListTestResultsRequest.ProtoReflect.Descriptor instead. 199 func (*ListTestResultsRequest) Descriptor() ([]byte, []int) { 200 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{2} 201 } 202 203 func (x *ListTestResultsRequest) GetInvocation() string { 204 if x != nil { 205 return x.Invocation 206 } 207 return "" 208 } 209 210 func (x *ListTestResultsRequest) GetPageSize() int32 { 211 if x != nil { 212 return x.PageSize 213 } 214 return 0 215 } 216 217 func (x *ListTestResultsRequest) GetPageToken() string { 218 if x != nil { 219 return x.PageToken 220 } 221 return "" 222 } 223 224 func (x *ListTestResultsRequest) GetReadMask() *fieldmaskpb.FieldMask { 225 if x != nil { 226 return x.ReadMask 227 } 228 return nil 229 } 230 231 // A response message for ListTestResults RPC. 232 type ListTestResultsResponse struct { 233 state protoimpl.MessageState 234 sizeCache protoimpl.SizeCache 235 unknownFields protoimpl.UnknownFields 236 237 // The test results from the specified invocation. 238 TestResults []*TestResult `protobuf:"bytes,1,rep,name=test_results,json=testResults,proto3" json:"test_results,omitempty"` 239 // A token, which can be sent as `page_token` to retrieve the next page. 240 // If this field is omitted, there were no subsequent pages at the time of 241 // request. 242 // If the invocation is not finalized, more results may appear later. 243 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 244 } 245 246 func (x *ListTestResultsResponse) Reset() { 247 *x = ListTestResultsResponse{} 248 if protoimpl.UnsafeEnabled { 249 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[3] 250 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 251 ms.StoreMessageInfo(mi) 252 } 253 } 254 255 func (x *ListTestResultsResponse) String() string { 256 return protoimpl.X.MessageStringOf(x) 257 } 258 259 func (*ListTestResultsResponse) ProtoMessage() {} 260 261 func (x *ListTestResultsResponse) ProtoReflect() protoreflect.Message { 262 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[3] 263 if protoimpl.UnsafeEnabled && x != nil { 264 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 265 if ms.LoadMessageInfo() == nil { 266 ms.StoreMessageInfo(mi) 267 } 268 return ms 269 } 270 return mi.MessageOf(x) 271 } 272 273 // Deprecated: Use ListTestResultsResponse.ProtoReflect.Descriptor instead. 274 func (*ListTestResultsResponse) Descriptor() ([]byte, []int) { 275 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{3} 276 } 277 278 func (x *ListTestResultsResponse) GetTestResults() []*TestResult { 279 if x != nil { 280 return x.TestResults 281 } 282 return nil 283 } 284 285 func (x *ListTestResultsResponse) GetNextPageToken() string { 286 if x != nil { 287 return x.NextPageToken 288 } 289 return "" 290 } 291 292 // A request message for GetTestExoneration RPC. 293 type GetTestExonerationRequest struct { 294 state protoimpl.MessageState 295 sizeCache protoimpl.SizeCache 296 unknownFields protoimpl.UnknownFields 297 298 // The name of the test exoneration to request, see TestExoneration.name. 299 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 300 } 301 302 func (x *GetTestExonerationRequest) Reset() { 303 *x = GetTestExonerationRequest{} 304 if protoimpl.UnsafeEnabled { 305 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[4] 306 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 307 ms.StoreMessageInfo(mi) 308 } 309 } 310 311 func (x *GetTestExonerationRequest) String() string { 312 return protoimpl.X.MessageStringOf(x) 313 } 314 315 func (*GetTestExonerationRequest) ProtoMessage() {} 316 317 func (x *GetTestExonerationRequest) ProtoReflect() protoreflect.Message { 318 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[4] 319 if protoimpl.UnsafeEnabled && x != nil { 320 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 321 if ms.LoadMessageInfo() == nil { 322 ms.StoreMessageInfo(mi) 323 } 324 return ms 325 } 326 return mi.MessageOf(x) 327 } 328 329 // Deprecated: Use GetTestExonerationRequest.ProtoReflect.Descriptor instead. 330 func (*GetTestExonerationRequest) Descriptor() ([]byte, []int) { 331 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{4} 332 } 333 334 func (x *GetTestExonerationRequest) GetName() string { 335 if x != nil { 336 return x.Name 337 } 338 return "" 339 } 340 341 // A request message for ListTestExonerations RPC. 342 type ListTestExonerationsRequest struct { 343 state protoimpl.MessageState 344 sizeCache protoimpl.SizeCache 345 unknownFields protoimpl.UnknownFields 346 347 // Name of the invocation, e.g. "invocations/{id}". 348 Invocation string `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"` 349 // The maximum number of test exonerations to return. 350 // 351 // The service may return fewer than this value. 352 // If unspecified, at most 100 test exonerations will be returned. 353 // The maximum value is 1000; values above 1000 will be coerced to 1000. 354 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 355 // A page token, received from a previous `ListTestExonerations` call. 356 // Provide this to retrieve the subsequent page. 357 // 358 // When paginating, all other parameters provided to `ListTestExonerations` 359 // MUST match the call that provided the page token. 360 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 361 } 362 363 func (x *ListTestExonerationsRequest) Reset() { 364 *x = ListTestExonerationsRequest{} 365 if protoimpl.UnsafeEnabled { 366 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[5] 367 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 368 ms.StoreMessageInfo(mi) 369 } 370 } 371 372 func (x *ListTestExonerationsRequest) String() string { 373 return protoimpl.X.MessageStringOf(x) 374 } 375 376 func (*ListTestExonerationsRequest) ProtoMessage() {} 377 378 func (x *ListTestExonerationsRequest) ProtoReflect() protoreflect.Message { 379 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[5] 380 if protoimpl.UnsafeEnabled && x != nil { 381 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 382 if ms.LoadMessageInfo() == nil { 383 ms.StoreMessageInfo(mi) 384 } 385 return ms 386 } 387 return mi.MessageOf(x) 388 } 389 390 // Deprecated: Use ListTestExonerationsRequest.ProtoReflect.Descriptor instead. 391 func (*ListTestExonerationsRequest) Descriptor() ([]byte, []int) { 392 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{5} 393 } 394 395 func (x *ListTestExonerationsRequest) GetInvocation() string { 396 if x != nil { 397 return x.Invocation 398 } 399 return "" 400 } 401 402 func (x *ListTestExonerationsRequest) GetPageSize() int32 { 403 if x != nil { 404 return x.PageSize 405 } 406 return 0 407 } 408 409 func (x *ListTestExonerationsRequest) GetPageToken() string { 410 if x != nil { 411 return x.PageToken 412 } 413 return "" 414 } 415 416 // A response message for ListTestExonerations RPC. 417 type ListTestExonerationsResponse struct { 418 state protoimpl.MessageState 419 sizeCache protoimpl.SizeCache 420 unknownFields protoimpl.UnknownFields 421 422 // The test exonerations from the specified invocation. 423 TestExonerations []*TestExoneration `protobuf:"bytes,1,rep,name=test_exonerations,json=testExonerations,proto3" json:"test_exonerations,omitempty"` 424 // A token, which can be sent as `page_token` to retrieve the next page. 425 // If this field is omitted, there were no subsequent pages at the time of 426 // request. 427 // If the invocation is not finalized, more results may appear later. 428 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 429 } 430 431 func (x *ListTestExonerationsResponse) Reset() { 432 *x = ListTestExonerationsResponse{} 433 if protoimpl.UnsafeEnabled { 434 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[6] 435 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 436 ms.StoreMessageInfo(mi) 437 } 438 } 439 440 func (x *ListTestExonerationsResponse) String() string { 441 return protoimpl.X.MessageStringOf(x) 442 } 443 444 func (*ListTestExonerationsResponse) ProtoMessage() {} 445 446 func (x *ListTestExonerationsResponse) ProtoReflect() protoreflect.Message { 447 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[6] 448 if protoimpl.UnsafeEnabled && x != nil { 449 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 450 if ms.LoadMessageInfo() == nil { 451 ms.StoreMessageInfo(mi) 452 } 453 return ms 454 } 455 return mi.MessageOf(x) 456 } 457 458 // Deprecated: Use ListTestExonerationsResponse.ProtoReflect.Descriptor instead. 459 func (*ListTestExonerationsResponse) Descriptor() ([]byte, []int) { 460 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{6} 461 } 462 463 func (x *ListTestExonerationsResponse) GetTestExonerations() []*TestExoneration { 464 if x != nil { 465 return x.TestExonerations 466 } 467 return nil 468 } 469 470 func (x *ListTestExonerationsResponse) GetNextPageToken() string { 471 if x != nil { 472 return x.NextPageToken 473 } 474 return "" 475 } 476 477 // A request message for QueryTestResults RPC. 478 type QueryTestResultsRequest struct { 479 state protoimpl.MessageState 480 sizeCache protoimpl.SizeCache 481 unknownFields protoimpl.UnknownFields 482 483 // Retrieve test results included in these invocations, directly or indirectly 484 // (via Invocation.included_invocations). 485 // 486 // Specifying multiple invocations is equivalent to querying one invocation 487 // that includes these. 488 Invocations []string `protobuf:"bytes,1,rep,name=invocations,proto3" json:"invocations,omitempty"` 489 // A test result in the response must satisfy this predicate. 490 Predicate *TestResultPredicate `protobuf:"bytes,2,opt,name=predicate,proto3" json:"predicate,omitempty"` 491 // The maximum number of test results to return. 492 // 493 // The service may return fewer than this value. 494 // If unspecified, at most 100 test results will be returned. 495 // The maximum value is 1000; values above 1000 will be coerced to 1000. 496 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 497 // A page token, received from a previous `QueryTestResults` call. 498 // Provide this to retrieve the subsequent page. 499 // 500 // When paginating, all other parameters provided to `QueryTestResults` MUST 501 // match the call that provided the page token. 502 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 503 // Fields to include in the response. 504 // If not set, the default mask is used where summary_html and tags are 505 // excluded. 506 // Test result names will always be included even if "name" is not a part of 507 // the mask. 508 ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,6,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` 509 } 510 511 func (x *QueryTestResultsRequest) Reset() { 512 *x = QueryTestResultsRequest{} 513 if protoimpl.UnsafeEnabled { 514 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[7] 515 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 516 ms.StoreMessageInfo(mi) 517 } 518 } 519 520 func (x *QueryTestResultsRequest) String() string { 521 return protoimpl.X.MessageStringOf(x) 522 } 523 524 func (*QueryTestResultsRequest) ProtoMessage() {} 525 526 func (x *QueryTestResultsRequest) ProtoReflect() protoreflect.Message { 527 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[7] 528 if protoimpl.UnsafeEnabled && x != nil { 529 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 530 if ms.LoadMessageInfo() == nil { 531 ms.StoreMessageInfo(mi) 532 } 533 return ms 534 } 535 return mi.MessageOf(x) 536 } 537 538 // Deprecated: Use QueryTestResultsRequest.ProtoReflect.Descriptor instead. 539 func (*QueryTestResultsRequest) Descriptor() ([]byte, []int) { 540 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{7} 541 } 542 543 func (x *QueryTestResultsRequest) GetInvocations() []string { 544 if x != nil { 545 return x.Invocations 546 } 547 return nil 548 } 549 550 func (x *QueryTestResultsRequest) GetPredicate() *TestResultPredicate { 551 if x != nil { 552 return x.Predicate 553 } 554 return nil 555 } 556 557 func (x *QueryTestResultsRequest) GetPageSize() int32 { 558 if x != nil { 559 return x.PageSize 560 } 561 return 0 562 } 563 564 func (x *QueryTestResultsRequest) GetPageToken() string { 565 if x != nil { 566 return x.PageToken 567 } 568 return "" 569 } 570 571 func (x *QueryTestResultsRequest) GetReadMask() *fieldmaskpb.FieldMask { 572 if x != nil { 573 return x.ReadMask 574 } 575 return nil 576 } 577 578 // A response message for QueryTestResults RPC. 579 type QueryTestResultsResponse struct { 580 state protoimpl.MessageState 581 sizeCache protoimpl.SizeCache 582 unknownFields protoimpl.UnknownFields 583 584 // Matched test results. 585 // Ordered by parent invocation ID, test ID and result ID. 586 TestResults []*TestResult `protobuf:"bytes,1,rep,name=test_results,json=testResults,proto3" json:"test_results,omitempty"` 587 // A token, which can be sent as `page_token` to retrieve the next page. 588 // If this field is omitted, there were no subsequent pages at the time of 589 // request. 590 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 591 } 592 593 func (x *QueryTestResultsResponse) Reset() { 594 *x = QueryTestResultsResponse{} 595 if protoimpl.UnsafeEnabled { 596 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[8] 597 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 598 ms.StoreMessageInfo(mi) 599 } 600 } 601 602 func (x *QueryTestResultsResponse) String() string { 603 return protoimpl.X.MessageStringOf(x) 604 } 605 606 func (*QueryTestResultsResponse) ProtoMessage() {} 607 608 func (x *QueryTestResultsResponse) ProtoReflect() protoreflect.Message { 609 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[8] 610 if protoimpl.UnsafeEnabled && x != nil { 611 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 612 if ms.LoadMessageInfo() == nil { 613 ms.StoreMessageInfo(mi) 614 } 615 return ms 616 } 617 return mi.MessageOf(x) 618 } 619 620 // Deprecated: Use QueryTestResultsResponse.ProtoReflect.Descriptor instead. 621 func (*QueryTestResultsResponse) Descriptor() ([]byte, []int) { 622 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{8} 623 } 624 625 func (x *QueryTestResultsResponse) GetTestResults() []*TestResult { 626 if x != nil { 627 return x.TestResults 628 } 629 return nil 630 } 631 632 func (x *QueryTestResultsResponse) GetNextPageToken() string { 633 if x != nil { 634 return x.NextPageToken 635 } 636 return "" 637 } 638 639 // A request message for QueryTestExonerations RPC. 640 type QueryTestExonerationsRequest struct { 641 state protoimpl.MessageState 642 sizeCache protoimpl.SizeCache 643 unknownFields protoimpl.UnknownFields 644 645 // Retrieve test exonerations included in these invocations, directly or 646 // indirectly (via Invocation.included_invocations). 647 // 648 // Specifying multiple invocations is equivalent to querying one invocation 649 // that includes these. 650 Invocations []string `protobuf:"bytes,1,rep,name=invocations,proto3" json:"invocations,omitempty"` 651 // A test exoneration in the response must satisfy this predicate. 652 Predicate *TestExonerationPredicate `protobuf:"bytes,2,opt,name=predicate,proto3" json:"predicate,omitempty"` 653 // The maximum number of test exonerations to return. 654 // 655 // The service may return fewer than this value. 656 // If unspecified, at most 100 test exonerations will be returned. 657 // The maximum value is 1000; values above 1000 will be coerced to 1000. 658 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 659 // A page token, received from a previous `QueryTestExonerations` call. 660 // Provide this to retrieve the subsequent page. 661 // 662 // When paginating, all other parameters provided to `QueryTestExonerations` 663 // MUST match the call that provided the page token. 664 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 665 } 666 667 func (x *QueryTestExonerationsRequest) Reset() { 668 *x = QueryTestExonerationsRequest{} 669 if protoimpl.UnsafeEnabled { 670 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[9] 671 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 672 ms.StoreMessageInfo(mi) 673 } 674 } 675 676 func (x *QueryTestExonerationsRequest) String() string { 677 return protoimpl.X.MessageStringOf(x) 678 } 679 680 func (*QueryTestExonerationsRequest) ProtoMessage() {} 681 682 func (x *QueryTestExonerationsRequest) ProtoReflect() protoreflect.Message { 683 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[9] 684 if protoimpl.UnsafeEnabled && x != nil { 685 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 686 if ms.LoadMessageInfo() == nil { 687 ms.StoreMessageInfo(mi) 688 } 689 return ms 690 } 691 return mi.MessageOf(x) 692 } 693 694 // Deprecated: Use QueryTestExonerationsRequest.ProtoReflect.Descriptor instead. 695 func (*QueryTestExonerationsRequest) Descriptor() ([]byte, []int) { 696 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{9} 697 } 698 699 func (x *QueryTestExonerationsRequest) GetInvocations() []string { 700 if x != nil { 701 return x.Invocations 702 } 703 return nil 704 } 705 706 func (x *QueryTestExonerationsRequest) GetPredicate() *TestExonerationPredicate { 707 if x != nil { 708 return x.Predicate 709 } 710 return nil 711 } 712 713 func (x *QueryTestExonerationsRequest) GetPageSize() int32 { 714 if x != nil { 715 return x.PageSize 716 } 717 return 0 718 } 719 720 func (x *QueryTestExonerationsRequest) GetPageToken() string { 721 if x != nil { 722 return x.PageToken 723 } 724 return "" 725 } 726 727 // A response message for QueryTestExonerations RPC. 728 type QueryTestExonerationsResponse struct { 729 state protoimpl.MessageState 730 sizeCache protoimpl.SizeCache 731 unknownFields protoimpl.UnknownFields 732 733 // The test exonerations matching the predicate. 734 // Ordered by parent invocation ID, test ID and exoneration ID. 735 TestExonerations []*TestExoneration `protobuf:"bytes,1,rep,name=test_exonerations,json=testExonerations,proto3" json:"test_exonerations,omitempty"` 736 // A token, which can be sent as `page_token` to retrieve the next page. 737 // If this field is omitted, there were no subsequent pages at the time of 738 // request. 739 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 740 } 741 742 func (x *QueryTestExonerationsResponse) Reset() { 743 *x = QueryTestExonerationsResponse{} 744 if protoimpl.UnsafeEnabled { 745 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[10] 746 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 747 ms.StoreMessageInfo(mi) 748 } 749 } 750 751 func (x *QueryTestExonerationsResponse) String() string { 752 return protoimpl.X.MessageStringOf(x) 753 } 754 755 func (*QueryTestExonerationsResponse) ProtoMessage() {} 756 757 func (x *QueryTestExonerationsResponse) ProtoReflect() protoreflect.Message { 758 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[10] 759 if protoimpl.UnsafeEnabled && x != nil { 760 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 761 if ms.LoadMessageInfo() == nil { 762 ms.StoreMessageInfo(mi) 763 } 764 return ms 765 } 766 return mi.MessageOf(x) 767 } 768 769 // Deprecated: Use QueryTestExonerationsResponse.ProtoReflect.Descriptor instead. 770 func (*QueryTestExonerationsResponse) Descriptor() ([]byte, []int) { 771 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{10} 772 } 773 774 func (x *QueryTestExonerationsResponse) GetTestExonerations() []*TestExoneration { 775 if x != nil { 776 return x.TestExonerations 777 } 778 return nil 779 } 780 781 func (x *QueryTestExonerationsResponse) GetNextPageToken() string { 782 if x != nil { 783 return x.NextPageToken 784 } 785 return "" 786 } 787 788 // A request message for QueryTestResultStatistics RPC. 789 type QueryTestResultStatisticsRequest struct { 790 state protoimpl.MessageState 791 sizeCache protoimpl.SizeCache 792 unknownFields protoimpl.UnknownFields 793 794 // Retrieve statistics of test result belong to these invocations, 795 // directly or indirectly (via Invocation.included_invocations). 796 // 797 // Specifying multiple invocations is equivalent to requesting one invocation 798 // that includes these. 799 Invocations []string `protobuf:"bytes,1,rep,name=invocations,proto3" json:"invocations,omitempty"` 800 } 801 802 func (x *QueryTestResultStatisticsRequest) Reset() { 803 *x = QueryTestResultStatisticsRequest{} 804 if protoimpl.UnsafeEnabled { 805 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[11] 806 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 807 ms.StoreMessageInfo(mi) 808 } 809 } 810 811 func (x *QueryTestResultStatisticsRequest) String() string { 812 return protoimpl.X.MessageStringOf(x) 813 } 814 815 func (*QueryTestResultStatisticsRequest) ProtoMessage() {} 816 817 func (x *QueryTestResultStatisticsRequest) ProtoReflect() protoreflect.Message { 818 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[11] 819 if protoimpl.UnsafeEnabled && x != nil { 820 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 821 if ms.LoadMessageInfo() == nil { 822 ms.StoreMessageInfo(mi) 823 } 824 return ms 825 } 826 return mi.MessageOf(x) 827 } 828 829 // Deprecated: Use QueryTestResultStatisticsRequest.ProtoReflect.Descriptor instead. 830 func (*QueryTestResultStatisticsRequest) Descriptor() ([]byte, []int) { 831 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{11} 832 } 833 834 func (x *QueryTestResultStatisticsRequest) GetInvocations() []string { 835 if x != nil { 836 return x.Invocations 837 } 838 return nil 839 } 840 841 // A response message for QueryTestResultStatistics RPC. 842 type QueryTestResultStatisticsResponse struct { 843 state protoimpl.MessageState 844 sizeCache protoimpl.SizeCache 845 unknownFields protoimpl.UnknownFields 846 847 // Total number of test results. 848 TotalTestResults int64 `protobuf:"varint,1,opt,name=total_test_results,json=totalTestResults,proto3" json:"total_test_results,omitempty"` 849 } 850 851 func (x *QueryTestResultStatisticsResponse) Reset() { 852 *x = QueryTestResultStatisticsResponse{} 853 if protoimpl.UnsafeEnabled { 854 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[12] 855 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 856 ms.StoreMessageInfo(mi) 857 } 858 } 859 860 func (x *QueryTestResultStatisticsResponse) String() string { 861 return protoimpl.X.MessageStringOf(x) 862 } 863 864 func (*QueryTestResultStatisticsResponse) ProtoMessage() {} 865 866 func (x *QueryTestResultStatisticsResponse) ProtoReflect() protoreflect.Message { 867 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[12] 868 if protoimpl.UnsafeEnabled && x != nil { 869 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 870 if ms.LoadMessageInfo() == nil { 871 ms.StoreMessageInfo(mi) 872 } 873 return ms 874 } 875 return mi.MessageOf(x) 876 } 877 878 // Deprecated: Use QueryTestResultStatisticsResponse.ProtoReflect.Descriptor instead. 879 func (*QueryTestResultStatisticsResponse) Descriptor() ([]byte, []int) { 880 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{12} 881 } 882 883 func (x *QueryTestResultStatisticsResponse) GetTotalTestResults() int64 { 884 if x != nil { 885 return x.TotalTestResults 886 } 887 return 0 888 } 889 890 // A request message for GetArtifact RPC. 891 type GetArtifactRequest struct { 892 state protoimpl.MessageState 893 sizeCache protoimpl.SizeCache 894 unknownFields protoimpl.UnknownFields 895 896 // The name of the artifact to request, see Artifact.name. 897 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 898 } 899 900 func (x *GetArtifactRequest) Reset() { 901 *x = GetArtifactRequest{} 902 if protoimpl.UnsafeEnabled { 903 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[13] 904 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 905 ms.StoreMessageInfo(mi) 906 } 907 } 908 909 func (x *GetArtifactRequest) String() string { 910 return protoimpl.X.MessageStringOf(x) 911 } 912 913 func (*GetArtifactRequest) ProtoMessage() {} 914 915 func (x *GetArtifactRequest) ProtoReflect() protoreflect.Message { 916 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[13] 917 if protoimpl.UnsafeEnabled && x != nil { 918 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 919 if ms.LoadMessageInfo() == nil { 920 ms.StoreMessageInfo(mi) 921 } 922 return ms 923 } 924 return mi.MessageOf(x) 925 } 926 927 // Deprecated: Use GetArtifactRequest.ProtoReflect.Descriptor instead. 928 func (*GetArtifactRequest) Descriptor() ([]byte, []int) { 929 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{13} 930 } 931 932 func (x *GetArtifactRequest) GetName() string { 933 if x != nil { 934 return x.Name 935 } 936 return "" 937 } 938 939 // A request message for ListArtifacts RPC. 940 type ListArtifactsRequest struct { 941 state protoimpl.MessageState 942 sizeCache protoimpl.SizeCache 943 unknownFields protoimpl.UnknownFields 944 945 // Name of the parent, e.g. an invocation (see Invocation.name) or 946 // a test result (see TestResult.name). 947 Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` 948 // The maximum number of artifacts to return. 949 // 950 // The service may return fewer than this value. 951 // If unspecified, at most 100 artifacts will be returned. 952 // The maximum value is 1000; values above 1000 will be coerced to 1000. 953 PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 954 // A page token, received from a previous `ListArtifacts` call. 955 // Provide this to retrieve the subsequent page. 956 // 957 // When paginating, all other parameters provided to `ListArtifacts` MUST 958 // match the call that provided the page token. 959 PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 960 } 961 962 func (x *ListArtifactsRequest) Reset() { 963 *x = ListArtifactsRequest{} 964 if protoimpl.UnsafeEnabled { 965 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[14] 966 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 967 ms.StoreMessageInfo(mi) 968 } 969 } 970 971 func (x *ListArtifactsRequest) String() string { 972 return protoimpl.X.MessageStringOf(x) 973 } 974 975 func (*ListArtifactsRequest) ProtoMessage() {} 976 977 func (x *ListArtifactsRequest) ProtoReflect() protoreflect.Message { 978 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[14] 979 if protoimpl.UnsafeEnabled && x != nil { 980 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 981 if ms.LoadMessageInfo() == nil { 982 ms.StoreMessageInfo(mi) 983 } 984 return ms 985 } 986 return mi.MessageOf(x) 987 } 988 989 // Deprecated: Use ListArtifactsRequest.ProtoReflect.Descriptor instead. 990 func (*ListArtifactsRequest) Descriptor() ([]byte, []int) { 991 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{14} 992 } 993 994 func (x *ListArtifactsRequest) GetParent() string { 995 if x != nil { 996 return x.Parent 997 } 998 return "" 999 } 1000 1001 func (x *ListArtifactsRequest) GetPageSize() int32 { 1002 if x != nil { 1003 return x.PageSize 1004 } 1005 return 0 1006 } 1007 1008 func (x *ListArtifactsRequest) GetPageToken() string { 1009 if x != nil { 1010 return x.PageToken 1011 } 1012 return "" 1013 } 1014 1015 // A response message for ListArtifacts RPC. 1016 type ListArtifactsResponse struct { 1017 state protoimpl.MessageState 1018 sizeCache protoimpl.SizeCache 1019 unknownFields protoimpl.UnknownFields 1020 1021 // The artifacts from the specified parent. 1022 Artifacts []*Artifact `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"` 1023 // A token, which can be sent as `page_token` to retrieve the next page. 1024 // If this field is omitted, there were no subsequent pages at the time of 1025 // request. 1026 // If the invocation is not finalized, more results may appear later. 1027 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 1028 } 1029 1030 func (x *ListArtifactsResponse) Reset() { 1031 *x = ListArtifactsResponse{} 1032 if protoimpl.UnsafeEnabled { 1033 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[15] 1034 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1035 ms.StoreMessageInfo(mi) 1036 } 1037 } 1038 1039 func (x *ListArtifactsResponse) String() string { 1040 return protoimpl.X.MessageStringOf(x) 1041 } 1042 1043 func (*ListArtifactsResponse) ProtoMessage() {} 1044 1045 func (x *ListArtifactsResponse) ProtoReflect() protoreflect.Message { 1046 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[15] 1047 if protoimpl.UnsafeEnabled && x != nil { 1048 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1049 if ms.LoadMessageInfo() == nil { 1050 ms.StoreMessageInfo(mi) 1051 } 1052 return ms 1053 } 1054 return mi.MessageOf(x) 1055 } 1056 1057 // Deprecated: Use ListArtifactsResponse.ProtoReflect.Descriptor instead. 1058 func (*ListArtifactsResponse) Descriptor() ([]byte, []int) { 1059 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{15} 1060 } 1061 1062 func (x *ListArtifactsResponse) GetArtifacts() []*Artifact { 1063 if x != nil { 1064 return x.Artifacts 1065 } 1066 return nil 1067 } 1068 1069 func (x *ListArtifactsResponse) GetNextPageToken() string { 1070 if x != nil { 1071 return x.NextPageToken 1072 } 1073 return "" 1074 } 1075 1076 // A request message for QueryArtifacts RPC. 1077 type QueryArtifactsRequest struct { 1078 state protoimpl.MessageState 1079 sizeCache protoimpl.SizeCache 1080 unknownFields protoimpl.UnknownFields 1081 1082 // Retrieve artifacts included in these invocations, directly or indirectly 1083 // (via Invocation.included_invocations and via contained test results). 1084 // 1085 // Specifying multiple invocations is equivalent to querying one invocation 1086 // that includes these. 1087 Invocations []string `protobuf:"bytes,1,rep,name=invocations,proto3" json:"invocations,omitempty"` 1088 // An artifact in the response must satisfy this predicate. 1089 Predicate *ArtifactPredicate `protobuf:"bytes,2,opt,name=predicate,proto3" json:"predicate,omitempty"` 1090 // The maximum number of artifacts to return. 1091 // 1092 // The service may return fewer than this value. 1093 // If unspecified, at most 100 artifacts will be returned. 1094 // The maximum value is 1000; values above 1000 will be coerced to 1000. 1095 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 1096 // A page token, received from a previous `QueryArtifacts` call. 1097 // Provide this to retrieve the subsequent page. 1098 // 1099 // When paginating, all other parameters provided to `QueryArtifacts` MUST 1100 // match the call that provided the page token. 1101 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 1102 } 1103 1104 func (x *QueryArtifactsRequest) Reset() { 1105 *x = QueryArtifactsRequest{} 1106 if protoimpl.UnsafeEnabled { 1107 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[16] 1108 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1109 ms.StoreMessageInfo(mi) 1110 } 1111 } 1112 1113 func (x *QueryArtifactsRequest) String() string { 1114 return protoimpl.X.MessageStringOf(x) 1115 } 1116 1117 func (*QueryArtifactsRequest) ProtoMessage() {} 1118 1119 func (x *QueryArtifactsRequest) ProtoReflect() protoreflect.Message { 1120 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[16] 1121 if protoimpl.UnsafeEnabled && x != nil { 1122 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1123 if ms.LoadMessageInfo() == nil { 1124 ms.StoreMessageInfo(mi) 1125 } 1126 return ms 1127 } 1128 return mi.MessageOf(x) 1129 } 1130 1131 // Deprecated: Use QueryArtifactsRequest.ProtoReflect.Descriptor instead. 1132 func (*QueryArtifactsRequest) Descriptor() ([]byte, []int) { 1133 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{16} 1134 } 1135 1136 func (x *QueryArtifactsRequest) GetInvocations() []string { 1137 if x != nil { 1138 return x.Invocations 1139 } 1140 return nil 1141 } 1142 1143 func (x *QueryArtifactsRequest) GetPredicate() *ArtifactPredicate { 1144 if x != nil { 1145 return x.Predicate 1146 } 1147 return nil 1148 } 1149 1150 func (x *QueryArtifactsRequest) GetPageSize() int32 { 1151 if x != nil { 1152 return x.PageSize 1153 } 1154 return 0 1155 } 1156 1157 func (x *QueryArtifactsRequest) GetPageToken() string { 1158 if x != nil { 1159 return x.PageToken 1160 } 1161 return "" 1162 } 1163 1164 // A response message for QueryArtifacts RPC. 1165 type QueryArtifactsResponse struct { 1166 state protoimpl.MessageState 1167 sizeCache protoimpl.SizeCache 1168 unknownFields protoimpl.UnknownFields 1169 1170 // Matched artifacts. 1171 // First invocation-level artifacts, then test-result-level artifacts 1172 // ordered by parent invocation ID, test ID and artifact ID. 1173 Artifacts []*Artifact `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"` 1174 // A token, which can be sent as `page_token` to retrieve the next page. 1175 // If this field is omitted, there were no subsequent pages at the time of 1176 // request. 1177 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 1178 } 1179 1180 func (x *QueryArtifactsResponse) Reset() { 1181 *x = QueryArtifactsResponse{} 1182 if protoimpl.UnsafeEnabled { 1183 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[17] 1184 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1185 ms.StoreMessageInfo(mi) 1186 } 1187 } 1188 1189 func (x *QueryArtifactsResponse) String() string { 1190 return protoimpl.X.MessageStringOf(x) 1191 } 1192 1193 func (*QueryArtifactsResponse) ProtoMessage() {} 1194 1195 func (x *QueryArtifactsResponse) ProtoReflect() protoreflect.Message { 1196 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[17] 1197 if protoimpl.UnsafeEnabled && x != nil { 1198 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1199 if ms.LoadMessageInfo() == nil { 1200 ms.StoreMessageInfo(mi) 1201 } 1202 return ms 1203 } 1204 return mi.MessageOf(x) 1205 } 1206 1207 // Deprecated: Use QueryArtifactsResponse.ProtoReflect.Descriptor instead. 1208 func (*QueryArtifactsResponse) Descriptor() ([]byte, []int) { 1209 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{17} 1210 } 1211 1212 func (x *QueryArtifactsResponse) GetArtifacts() []*Artifact { 1213 if x != nil { 1214 return x.Artifacts 1215 } 1216 return nil 1217 } 1218 1219 func (x *QueryArtifactsResponse) GetNextPageToken() string { 1220 if x != nil { 1221 return x.NextPageToken 1222 } 1223 return "" 1224 } 1225 1226 // A request message for QueryTestVariants RPC. 1227 // Next id: 9. 1228 type QueryTestVariantsRequest struct { 1229 state protoimpl.MessageState 1230 sizeCache protoimpl.SizeCache 1231 unknownFields protoimpl.UnknownFields 1232 1233 // Retrieve test variants included in these invocations, directly or indirectly 1234 // (via Invocation.included_invocations). 1235 // 1236 // Specifying multiple invocations is equivalent to querying one invocation 1237 // that includes these. 1238 Invocations []string `protobuf:"bytes,2,rep,name=invocations,proto3" json:"invocations,omitempty"` 1239 // A test variant must satisfy this predicate. 1240 Predicate *TestVariantPredicate `protobuf:"bytes,6,opt,name=predicate,proto3" json:"predicate,omitempty"` 1241 // The maximum number of test results to be included in a test variant. 1242 // 1243 // If a test variant has more results than the limit, the remaining results 1244 // will not be returned. 1245 // If unspecified, at most 10 results will be included in a test variant. 1246 // The maximum value is 100; values above 100 will be coerced to 100. 1247 ResultLimit int32 `protobuf:"varint,8,opt,name=result_limit,json=resultLimit,proto3" json:"result_limit,omitempty"` 1248 // The maximum number of test variants to return. 1249 // 1250 // The service may return fewer than this value. 1251 // If unspecified, at most 100 test variants will be returned. 1252 // The maximum value is 10,000; values above 10,000 will be coerced to 10,000. 1253 PageSize int32 `protobuf:"varint,4,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 1254 // A page token, received from a previous `QueryTestVariants` call. 1255 // Provide this to retrieve the subsequent page. 1256 // 1257 // When paginating, all other parameters provided to `QueryTestVariants` MUST 1258 // match the call that provided the page token. 1259 PageToken string `protobuf:"bytes,5,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 1260 // Fields to include in the response. 1261 // If not set, the default mask is used where all fields are included. 1262 // 1263 // The following fields in results.*.result will NEVER be included even when 1264 // specified: 1265 // * test_id 1266 // * variant_hash 1267 // * variant 1268 // * test_metadata 1269 // Those values can be found in the parent test variant objects. 1270 // 1271 // The following fields will ALWAYS be included even when NOT specified: 1272 // * test_id 1273 // * variant_hash 1274 // * status 1275 ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,7,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` 1276 } 1277 1278 func (x *QueryTestVariantsRequest) Reset() { 1279 *x = QueryTestVariantsRequest{} 1280 if protoimpl.UnsafeEnabled { 1281 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[18] 1282 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1283 ms.StoreMessageInfo(mi) 1284 } 1285 } 1286 1287 func (x *QueryTestVariantsRequest) String() string { 1288 return protoimpl.X.MessageStringOf(x) 1289 } 1290 1291 func (*QueryTestVariantsRequest) ProtoMessage() {} 1292 1293 func (x *QueryTestVariantsRequest) ProtoReflect() protoreflect.Message { 1294 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[18] 1295 if protoimpl.UnsafeEnabled && x != nil { 1296 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1297 if ms.LoadMessageInfo() == nil { 1298 ms.StoreMessageInfo(mi) 1299 } 1300 return ms 1301 } 1302 return mi.MessageOf(x) 1303 } 1304 1305 // Deprecated: Use QueryTestVariantsRequest.ProtoReflect.Descriptor instead. 1306 func (*QueryTestVariantsRequest) Descriptor() ([]byte, []int) { 1307 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{18} 1308 } 1309 1310 func (x *QueryTestVariantsRequest) GetInvocations() []string { 1311 if x != nil { 1312 return x.Invocations 1313 } 1314 return nil 1315 } 1316 1317 func (x *QueryTestVariantsRequest) GetPredicate() *TestVariantPredicate { 1318 if x != nil { 1319 return x.Predicate 1320 } 1321 return nil 1322 } 1323 1324 func (x *QueryTestVariantsRequest) GetResultLimit() int32 { 1325 if x != nil { 1326 return x.ResultLimit 1327 } 1328 return 0 1329 } 1330 1331 func (x *QueryTestVariantsRequest) GetPageSize() int32 { 1332 if x != nil { 1333 return x.PageSize 1334 } 1335 return 0 1336 } 1337 1338 func (x *QueryTestVariantsRequest) GetPageToken() string { 1339 if x != nil { 1340 return x.PageToken 1341 } 1342 return "" 1343 } 1344 1345 func (x *QueryTestVariantsRequest) GetReadMask() *fieldmaskpb.FieldMask { 1346 if x != nil { 1347 return x.ReadMask 1348 } 1349 return nil 1350 } 1351 1352 // A response message for QueryTestVariants RPC. 1353 type QueryTestVariantsResponse struct { 1354 state protoimpl.MessageState 1355 sizeCache protoimpl.SizeCache 1356 unknownFields protoimpl.UnknownFields 1357 1358 // Matched test variants. 1359 // Ordered by TestVariantStatus, test_id, then variant_hash 1360 TestVariants []*TestVariant `protobuf:"bytes,1,rep,name=test_variants,json=testVariants,proto3" json:"test_variants,omitempty"` 1361 // A token, which can be sent as `page_token` to retrieve the next page. 1362 // If this field is omitted, there were no subsequent pages at the time of 1363 // request. 1364 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 1365 // The code sources tested by the returned test variants. The sources are keyed 1366 // by an ID which allows them to be cross-referenced from TestVariant.sources_id. 1367 // 1368 // The sources are returned via this map instead of directly on the TestVariant 1369 // to avoid excessive response size. Each source message could be up to a few 1370 // kilobytes and there are usually no more than a handful of different sources 1371 // tested in an invocation, so deduplicating them here reduces response size. 1372 Sources map[string]*Sources `protobuf:"bytes,3,rep,name=sources,proto3" json:"sources,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1373 } 1374 1375 func (x *QueryTestVariantsResponse) Reset() { 1376 *x = QueryTestVariantsResponse{} 1377 if protoimpl.UnsafeEnabled { 1378 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[19] 1379 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1380 ms.StoreMessageInfo(mi) 1381 } 1382 } 1383 1384 func (x *QueryTestVariantsResponse) String() string { 1385 return protoimpl.X.MessageStringOf(x) 1386 } 1387 1388 func (*QueryTestVariantsResponse) ProtoMessage() {} 1389 1390 func (x *QueryTestVariantsResponse) ProtoReflect() protoreflect.Message { 1391 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[19] 1392 if protoimpl.UnsafeEnabled && x != nil { 1393 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1394 if ms.LoadMessageInfo() == nil { 1395 ms.StoreMessageInfo(mi) 1396 } 1397 return ms 1398 } 1399 return mi.MessageOf(x) 1400 } 1401 1402 // Deprecated: Use QueryTestVariantsResponse.ProtoReflect.Descriptor instead. 1403 func (*QueryTestVariantsResponse) Descriptor() ([]byte, []int) { 1404 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{19} 1405 } 1406 1407 func (x *QueryTestVariantsResponse) GetTestVariants() []*TestVariant { 1408 if x != nil { 1409 return x.TestVariants 1410 } 1411 return nil 1412 } 1413 1414 func (x *QueryTestVariantsResponse) GetNextPageToken() string { 1415 if x != nil { 1416 return x.NextPageToken 1417 } 1418 return "" 1419 } 1420 1421 func (x *QueryTestVariantsResponse) GetSources() map[string]*Sources { 1422 if x != nil { 1423 return x.Sources 1424 } 1425 return nil 1426 } 1427 1428 // A request message for BatchGetTestVariants RPC. 1429 type BatchGetTestVariantsRequest struct { 1430 state protoimpl.MessageState 1431 sizeCache protoimpl.SizeCache 1432 unknownFields protoimpl.UnknownFields 1433 1434 // Name of the invocation that the test variants are in. 1435 Invocation string `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"` 1436 // A list of test IDs and variant hashes, identifying the requested test 1437 // variants. Size is limited to 500. Any request for more than 500 variants 1438 // will return an error. 1439 TestVariants []*BatchGetTestVariantsRequest_TestVariantIdentifier `protobuf:"bytes,2,rep,name=test_variants,json=testVariants,proto3" json:"test_variants,omitempty"` 1440 // The maximum number of test results to be included in a test variant. 1441 // 1442 // If a test variant has more results than the limit, the remaining results 1443 // will not be returned. 1444 // If unspecified, at most 10 results will be included in a test variant. 1445 // The maximum value is 100; values above 100 will be coerced to 100. 1446 ResultLimit int32 `protobuf:"varint,3,opt,name=result_limit,json=resultLimit,proto3" json:"result_limit,omitempty"` 1447 } 1448 1449 func (x *BatchGetTestVariantsRequest) Reset() { 1450 *x = BatchGetTestVariantsRequest{} 1451 if protoimpl.UnsafeEnabled { 1452 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[20] 1453 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1454 ms.StoreMessageInfo(mi) 1455 } 1456 } 1457 1458 func (x *BatchGetTestVariantsRequest) String() string { 1459 return protoimpl.X.MessageStringOf(x) 1460 } 1461 1462 func (*BatchGetTestVariantsRequest) ProtoMessage() {} 1463 1464 func (x *BatchGetTestVariantsRequest) ProtoReflect() protoreflect.Message { 1465 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[20] 1466 if protoimpl.UnsafeEnabled && x != nil { 1467 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1468 if ms.LoadMessageInfo() == nil { 1469 ms.StoreMessageInfo(mi) 1470 } 1471 return ms 1472 } 1473 return mi.MessageOf(x) 1474 } 1475 1476 // Deprecated: Use BatchGetTestVariantsRequest.ProtoReflect.Descriptor instead. 1477 func (*BatchGetTestVariantsRequest) Descriptor() ([]byte, []int) { 1478 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{20} 1479 } 1480 1481 func (x *BatchGetTestVariantsRequest) GetInvocation() string { 1482 if x != nil { 1483 return x.Invocation 1484 } 1485 return "" 1486 } 1487 1488 func (x *BatchGetTestVariantsRequest) GetTestVariants() []*BatchGetTestVariantsRequest_TestVariantIdentifier { 1489 if x != nil { 1490 return x.TestVariants 1491 } 1492 return nil 1493 } 1494 1495 func (x *BatchGetTestVariantsRequest) GetResultLimit() int32 { 1496 if x != nil { 1497 return x.ResultLimit 1498 } 1499 return 0 1500 } 1501 1502 // A response message for BatchGetTestVariants RPC. 1503 type BatchGetTestVariantsResponse struct { 1504 state protoimpl.MessageState 1505 sizeCache protoimpl.SizeCache 1506 unknownFields protoimpl.UnknownFields 1507 1508 // Test variants matching the requests. Any variants that weren't found are 1509 // omitted from the response. Clients shouldn't rely on the ordering of this 1510 // field, as no particular order is guaranteed. 1511 TestVariants []*TestVariant `protobuf:"bytes,1,rep,name=test_variants,json=testVariants,proto3" json:"test_variants,omitempty"` 1512 // The code sources tested by the returned test variants. The sources are keyed 1513 // by an ID which allows them to be cross-referenced from TestVariant.sources_id. 1514 // 1515 // The sources are returned via this map instead of directly on the TestVariant 1516 // to avoid excessive response size. Each source message could be up to a few 1517 // kilobytes and there are usually no more than a handful of different sources 1518 // tested in an invocation, so deduplicating them here reduces response size. 1519 Sources map[string]*Sources `protobuf:"bytes,2,rep,name=sources,proto3" json:"sources,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 1520 } 1521 1522 func (x *BatchGetTestVariantsResponse) Reset() { 1523 *x = BatchGetTestVariantsResponse{} 1524 if protoimpl.UnsafeEnabled { 1525 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[21] 1526 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1527 ms.StoreMessageInfo(mi) 1528 } 1529 } 1530 1531 func (x *BatchGetTestVariantsResponse) String() string { 1532 return protoimpl.X.MessageStringOf(x) 1533 } 1534 1535 func (*BatchGetTestVariantsResponse) ProtoMessage() {} 1536 1537 func (x *BatchGetTestVariantsResponse) ProtoReflect() protoreflect.Message { 1538 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[21] 1539 if protoimpl.UnsafeEnabled && x != nil { 1540 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1541 if ms.LoadMessageInfo() == nil { 1542 ms.StoreMessageInfo(mi) 1543 } 1544 return ms 1545 } 1546 return mi.MessageOf(x) 1547 } 1548 1549 // Deprecated: Use BatchGetTestVariantsResponse.ProtoReflect.Descriptor instead. 1550 func (*BatchGetTestVariantsResponse) Descriptor() ([]byte, []int) { 1551 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{21} 1552 } 1553 1554 func (x *BatchGetTestVariantsResponse) GetTestVariants() []*TestVariant { 1555 if x != nil { 1556 return x.TestVariants 1557 } 1558 return nil 1559 } 1560 1561 func (x *BatchGetTestVariantsResponse) GetSources() map[string]*Sources { 1562 if x != nil { 1563 return x.Sources 1564 } 1565 return nil 1566 } 1567 1568 // A request message for QueryTestMetadata RPC. 1569 type QueryTestMetadataRequest struct { 1570 state protoimpl.MessageState 1571 sizeCache protoimpl.SizeCache 1572 unknownFields protoimpl.UnknownFields 1573 1574 // The LUCI Project to query. 1575 Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` 1576 // Filters to apply to the returned test metadata. 1577 Predicate *TestMetadataPredicate `protobuf:"bytes,2,opt,name=predicate,proto3" json:"predicate,omitempty"` 1578 // The maximum number of test metadata entries to return. 1579 // 1580 // The service may return fewer than this value. 1581 // If unspecified, at most 1000 test metadata entries will be returned. 1582 // The maximum value is 100K; values above 100K will be coerced to 100K. 1583 PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` 1584 // A page token, received from a previous `QueryTestMetadata` call. 1585 // Provide this to retrieve the subsequent page. 1586 // 1587 // When paginating, all other parameters provided to `QueryTestMetadata` MUST 1588 // match the call that provided the page token. 1589 PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` 1590 } 1591 1592 func (x *QueryTestMetadataRequest) Reset() { 1593 *x = QueryTestMetadataRequest{} 1594 if protoimpl.UnsafeEnabled { 1595 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[22] 1596 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1597 ms.StoreMessageInfo(mi) 1598 } 1599 } 1600 1601 func (x *QueryTestMetadataRequest) String() string { 1602 return protoimpl.X.MessageStringOf(x) 1603 } 1604 1605 func (*QueryTestMetadataRequest) ProtoMessage() {} 1606 1607 func (x *QueryTestMetadataRequest) ProtoReflect() protoreflect.Message { 1608 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[22] 1609 if protoimpl.UnsafeEnabled && x != nil { 1610 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1611 if ms.LoadMessageInfo() == nil { 1612 ms.StoreMessageInfo(mi) 1613 } 1614 return ms 1615 } 1616 return mi.MessageOf(x) 1617 } 1618 1619 // Deprecated: Use QueryTestMetadataRequest.ProtoReflect.Descriptor instead. 1620 func (*QueryTestMetadataRequest) Descriptor() ([]byte, []int) { 1621 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{22} 1622 } 1623 1624 func (x *QueryTestMetadataRequest) GetProject() string { 1625 if x != nil { 1626 return x.Project 1627 } 1628 return "" 1629 } 1630 1631 func (x *QueryTestMetadataRequest) GetPredicate() *TestMetadataPredicate { 1632 if x != nil { 1633 return x.Predicate 1634 } 1635 return nil 1636 } 1637 1638 func (x *QueryTestMetadataRequest) GetPageSize() int32 { 1639 if x != nil { 1640 return x.PageSize 1641 } 1642 return 0 1643 } 1644 1645 func (x *QueryTestMetadataRequest) GetPageToken() string { 1646 if x != nil { 1647 return x.PageToken 1648 } 1649 return "" 1650 } 1651 1652 // A response message for QueryTestMetadata RPC. 1653 type QueryTestMetadataResponse struct { 1654 state protoimpl.MessageState 1655 sizeCache protoimpl.SizeCache 1656 unknownFields protoimpl.UnknownFields 1657 1658 // The matched testMetadata. 1659 TestMetadata []*TestMetadataDetail `protobuf:"bytes,1,rep,name=testMetadata,proto3" json:"testMetadata,omitempty"` 1660 // A token, which can be sent as `page_token` to retrieve the next page. 1661 // If this field is omitted, there were no subsequent pages at the time of 1662 // request. 1663 NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` 1664 } 1665 1666 func (x *QueryTestMetadataResponse) Reset() { 1667 *x = QueryTestMetadataResponse{} 1668 if protoimpl.UnsafeEnabled { 1669 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[23] 1670 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1671 ms.StoreMessageInfo(mi) 1672 } 1673 } 1674 1675 func (x *QueryTestMetadataResponse) String() string { 1676 return protoimpl.X.MessageStringOf(x) 1677 } 1678 1679 func (*QueryTestMetadataResponse) ProtoMessage() {} 1680 1681 func (x *QueryTestMetadataResponse) ProtoReflect() protoreflect.Message { 1682 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[23] 1683 if protoimpl.UnsafeEnabled && x != nil { 1684 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1685 if ms.LoadMessageInfo() == nil { 1686 ms.StoreMessageInfo(mi) 1687 } 1688 return ms 1689 } 1690 return mi.MessageOf(x) 1691 } 1692 1693 // Deprecated: Use QueryTestMetadataResponse.ProtoReflect.Descriptor instead. 1694 func (*QueryTestMetadataResponse) Descriptor() ([]byte, []int) { 1695 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{23} 1696 } 1697 1698 func (x *QueryTestMetadataResponse) GetTestMetadata() []*TestMetadataDetail { 1699 if x != nil { 1700 return x.TestMetadata 1701 } 1702 return nil 1703 } 1704 1705 func (x *QueryTestMetadataResponse) GetNextPageToken() string { 1706 if x != nil { 1707 return x.NextPageToken 1708 } 1709 return "" 1710 } 1711 1712 // A request message for QueryNewTestVariants RPC. 1713 // To use this RPC, callers need: 1714 // - resultdb.baselines.get in the realm the <baseline_project>:@project, where 1715 // baseline_project is the LUCI project that contains the baseline. 1716 // - resultdb.testResults.list in the realm of the invocation which is being 1717 // queried. 1718 type QueryNewTestVariantsRequest struct { 1719 state protoimpl.MessageState 1720 sizeCache protoimpl.SizeCache 1721 unknownFields protoimpl.UnknownFields 1722 1723 // Name of the invocation, e.g. "invocations/{id}". 1724 Invocation string `protobuf:"bytes,1,opt,name=invocation,proto3" json:"invocation,omitempty"` 1725 // The baseline to compare test variants against, to determine if they are new. 1726 // e.g. “projects/{project}/baselines/{baseline_id}”. 1727 // For example, in the project "chromium", the baseline_id may be 1728 // "try:linux-rel". 1729 Baseline string `protobuf:"bytes,2,opt,name=baseline,proto3" json:"baseline,omitempty"` 1730 } 1731 1732 func (x *QueryNewTestVariantsRequest) Reset() { 1733 *x = QueryNewTestVariantsRequest{} 1734 if protoimpl.UnsafeEnabled { 1735 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[24] 1736 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1737 ms.StoreMessageInfo(mi) 1738 } 1739 } 1740 1741 func (x *QueryNewTestVariantsRequest) String() string { 1742 return protoimpl.X.MessageStringOf(x) 1743 } 1744 1745 func (*QueryNewTestVariantsRequest) ProtoMessage() {} 1746 1747 func (x *QueryNewTestVariantsRequest) ProtoReflect() protoreflect.Message { 1748 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[24] 1749 if protoimpl.UnsafeEnabled && x != nil { 1750 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1751 if ms.LoadMessageInfo() == nil { 1752 ms.StoreMessageInfo(mi) 1753 } 1754 return ms 1755 } 1756 return mi.MessageOf(x) 1757 } 1758 1759 // Deprecated: Use QueryNewTestVariantsRequest.ProtoReflect.Descriptor instead. 1760 func (*QueryNewTestVariantsRequest) Descriptor() ([]byte, []int) { 1761 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{24} 1762 } 1763 1764 func (x *QueryNewTestVariantsRequest) GetInvocation() string { 1765 if x != nil { 1766 return x.Invocation 1767 } 1768 return "" 1769 } 1770 1771 func (x *QueryNewTestVariantsRequest) GetBaseline() string { 1772 if x != nil { 1773 return x.Baseline 1774 } 1775 return "" 1776 } 1777 1778 // A response message for QueryNewTestVariants RPC. 1779 type QueryNewTestVariantsResponse struct { 1780 state protoimpl.MessageState 1781 sizeCache protoimpl.SizeCache 1782 unknownFields protoimpl.UnknownFields 1783 1784 // Indicates whether the baseline has been populated with at least 72 hours 1785 // of data and the results can be relied upon. 1786 IsBaselineReady bool `protobuf:"varint,1,opt,name=is_baseline_ready,json=isBaselineReady,proto3" json:"is_baseline_ready,omitempty"` 1787 // Test variants that are new, meaning that they have not been part of 1788 // a submitted run prior. 1789 NewTestVariants []*QueryNewTestVariantsResponse_NewTestVariant `protobuf:"bytes,2,rep,name=new_test_variants,json=newTestVariants,proto3" json:"new_test_variants,omitempty"` 1790 } 1791 1792 func (x *QueryNewTestVariantsResponse) Reset() { 1793 *x = QueryNewTestVariantsResponse{} 1794 if protoimpl.UnsafeEnabled { 1795 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[25] 1796 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1797 ms.StoreMessageInfo(mi) 1798 } 1799 } 1800 1801 func (x *QueryNewTestVariantsResponse) String() string { 1802 return protoimpl.X.MessageStringOf(x) 1803 } 1804 1805 func (*QueryNewTestVariantsResponse) ProtoMessage() {} 1806 1807 func (x *QueryNewTestVariantsResponse) ProtoReflect() protoreflect.Message { 1808 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[25] 1809 if protoimpl.UnsafeEnabled && x != nil { 1810 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1811 if ms.LoadMessageInfo() == nil { 1812 ms.StoreMessageInfo(mi) 1813 } 1814 return ms 1815 } 1816 return mi.MessageOf(x) 1817 } 1818 1819 // Deprecated: Use QueryNewTestVariantsResponse.ProtoReflect.Descriptor instead. 1820 func (*QueryNewTestVariantsResponse) Descriptor() ([]byte, []int) { 1821 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{25} 1822 } 1823 1824 func (x *QueryNewTestVariantsResponse) GetIsBaselineReady() bool { 1825 if x != nil { 1826 return x.IsBaselineReady 1827 } 1828 return false 1829 } 1830 1831 func (x *QueryNewTestVariantsResponse) GetNewTestVariants() []*QueryNewTestVariantsResponse_NewTestVariant { 1832 if x != nil { 1833 return x.NewTestVariants 1834 } 1835 return nil 1836 } 1837 1838 type BatchGetTestVariantsRequest_TestVariantIdentifier struct { 1839 state protoimpl.MessageState 1840 sizeCache protoimpl.SizeCache 1841 unknownFields protoimpl.UnknownFields 1842 1843 // The unique identifier of the test in a LUCI project. See the comment on 1844 // TestResult.test_id for full documentation. 1845 TestId string `protobuf:"bytes,1,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"` 1846 // Hash of the variant. See the comment on TestResult.variant_hash for full 1847 // documentation. 1848 VariantHash string `protobuf:"bytes,2,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"` 1849 } 1850 1851 func (x *BatchGetTestVariantsRequest_TestVariantIdentifier) Reset() { 1852 *x = BatchGetTestVariantsRequest_TestVariantIdentifier{} 1853 if protoimpl.UnsafeEnabled { 1854 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[27] 1855 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1856 ms.StoreMessageInfo(mi) 1857 } 1858 } 1859 1860 func (x *BatchGetTestVariantsRequest_TestVariantIdentifier) String() string { 1861 return protoimpl.X.MessageStringOf(x) 1862 } 1863 1864 func (*BatchGetTestVariantsRequest_TestVariantIdentifier) ProtoMessage() {} 1865 1866 func (x *BatchGetTestVariantsRequest_TestVariantIdentifier) ProtoReflect() protoreflect.Message { 1867 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[27] 1868 if protoimpl.UnsafeEnabled && x != nil { 1869 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1870 if ms.LoadMessageInfo() == nil { 1871 ms.StoreMessageInfo(mi) 1872 } 1873 return ms 1874 } 1875 return mi.MessageOf(x) 1876 } 1877 1878 // Deprecated: Use BatchGetTestVariantsRequest_TestVariantIdentifier.ProtoReflect.Descriptor instead. 1879 func (*BatchGetTestVariantsRequest_TestVariantIdentifier) Descriptor() ([]byte, []int) { 1880 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{20, 0} 1881 } 1882 1883 func (x *BatchGetTestVariantsRequest_TestVariantIdentifier) GetTestId() string { 1884 if x != nil { 1885 return x.TestId 1886 } 1887 return "" 1888 } 1889 1890 func (x *BatchGetTestVariantsRequest_TestVariantIdentifier) GetVariantHash() string { 1891 if x != nil { 1892 return x.VariantHash 1893 } 1894 return "" 1895 } 1896 1897 // Represents a new test, which contains minimal information to uniquely identify a TestVariant. 1898 type QueryNewTestVariantsResponse_NewTestVariant struct { 1899 state protoimpl.MessageState 1900 sizeCache protoimpl.SizeCache 1901 unknownFields protoimpl.UnknownFields 1902 1903 // A unique identifier of the test in a LUCI project. 1904 // Regex: ^[[::print::]]{1,256}$ 1905 // 1906 // Refer to TestResult.test_id for details. 1907 TestId string `protobuf:"bytes,1,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"` 1908 // Hash of the variant. 1909 // hex(sha256(sorted(”.join('%s:%s\n' for k, v in variant.items())))). 1910 VariantHash string `protobuf:"bytes,2,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"` 1911 } 1912 1913 func (x *QueryNewTestVariantsResponse_NewTestVariant) Reset() { 1914 *x = QueryNewTestVariantsResponse_NewTestVariant{} 1915 if protoimpl.UnsafeEnabled { 1916 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[29] 1917 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1918 ms.StoreMessageInfo(mi) 1919 } 1920 } 1921 1922 func (x *QueryNewTestVariantsResponse_NewTestVariant) String() string { 1923 return protoimpl.X.MessageStringOf(x) 1924 } 1925 1926 func (*QueryNewTestVariantsResponse_NewTestVariant) ProtoMessage() {} 1927 1928 func (x *QueryNewTestVariantsResponse_NewTestVariant) ProtoReflect() protoreflect.Message { 1929 mi := &file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[29] 1930 if protoimpl.UnsafeEnabled && x != nil { 1931 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 1932 if ms.LoadMessageInfo() == nil { 1933 ms.StoreMessageInfo(mi) 1934 } 1935 return ms 1936 } 1937 return mi.MessageOf(x) 1938 } 1939 1940 // Deprecated: Use QueryNewTestVariantsResponse_NewTestVariant.ProtoReflect.Descriptor instead. 1941 func (*QueryNewTestVariantsResponse_NewTestVariant) Descriptor() ([]byte, []int) { 1942 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP(), []int{25, 0} 1943 } 1944 1945 func (x *QueryNewTestVariantsResponse_NewTestVariant) GetTestId() string { 1946 if x != nil { 1947 return x.TestId 1948 } 1949 return "" 1950 } 1951 1952 func (x *QueryNewTestVariantsResponse_NewTestVariant) GetVariantHash() string { 1953 if x != nil { 1954 return x.VariantHash 1955 } 1956 return "" 1957 } 1958 1959 var File_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto protoreflect.FileDescriptor 1960 1961 var file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDesc = []byte{ 1962 0x0a, 0x35, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 1963 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 1964 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 1965 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 1966 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1967 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 1968 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 1969 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 1970 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 1971 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 1972 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 1973 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 1974 0x6f, 0x74, 0x6f, 0x1a, 0x37, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 1975 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 1976 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 1977 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x36, 0x67, 0x6f, 1978 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 1979 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 1980 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x2e, 0x70, 1981 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 1982 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 1983 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 1984 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x39, 1985 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 1986 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 1987 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 1988 0x61, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3a, 0x67, 0x6f, 0x2e, 0x63, 0x68, 1989 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 1990 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 1991 0x31, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 1992 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2f, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 1993 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 0x0a, 1994 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 1995 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2f, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 1996 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x17, 1997 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 1998 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 1999 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 2000 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2001 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x76, 2002 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 2003 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 2004 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 2005 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 2006 0x6b, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 2007 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 2008 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 2009 0x73, 0x6b, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x82, 0x01, 0x0a, 2010 0x17, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 2011 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 2012 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 2013 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 2014 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x74, 0x65, 2015 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 2016 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 2017 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 2018 0x6e, 0x22, 0x2f, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 2019 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 2020 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 2021 0x6d, 0x65, 0x22, 0x7e, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 2022 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2023 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 2024 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 2025 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 2026 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 2027 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 2028 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 2029 0x65, 0x6e, 0x22, 0x96, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 2030 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 2031 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x65, 0x78, 0x6f, 0x6e, 2032 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 2033 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 2034 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 2035 0x6e, 0x52, 0x10, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 2036 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 2037 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 2038 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf5, 0x01, 0x0a, 0x17, 2039 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 2040 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 2041 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 2042 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x70, 0x72, 0x65, 2043 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6c, 2044 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 2045 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 2046 0x61, 0x74, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x1b, 2047 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 2048 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 2049 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 2050 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 2051 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 2052 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 2053 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 2054 0x61, 0x73, 0x6b, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 2055 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 2056 0x12, 0x3f, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 2057 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 2058 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 2059 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 2060 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 2061 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 2062 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xcb, 0x01, 0x0a, 0x1c, 0x51, 0x75, 2063 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 2064 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 2065 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 2066 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4d, 0x0a, 0x09, 2067 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 2068 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 2069 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 2070 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 2071 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 2072 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 2073 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 2074 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 2075 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x97, 0x01, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 2076 0x79, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2077 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x74, 0x65, 0x73, 2078 0x74, 0x5f, 0x65, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 2079 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 2080 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 2081 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x74, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 2082 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 2083 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 2084 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 2085 0x6e, 0x22, 0x44, 0x0a, 0x20, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 2086 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 2087 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 2088 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 2089 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x51, 0x0a, 0x21, 0x51, 0x75, 0x65, 0x72, 0x79, 2090 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 2091 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x12, 2092 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 2093 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 2094 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x2d, 0x0a, 0x12, 0x47, 0x65, 2095 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 2096 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 2097 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 2098 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2099 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 2100 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 2101 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 2102 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 2103 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 2104 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x79, 0x0a, 0x15, 0x4c, 0x69, 2105 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 2106 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 2107 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 2108 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 2109 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x26, 0x0a, 2110 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 2111 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 2112 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb8, 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 2113 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 2114 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 2115 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2116 0x73, 0x12, 0x41, 0x0a, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 2117 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 2118 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 2119 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 2120 0x63, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 2121 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 2122 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 2123 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 2124 0x22, 0x7a, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 2125 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x61, 0x72, 2126 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 2127 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 2128 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 2129 0x61, 0x63, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 2130 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 2131 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9a, 0x02, 0x0a, 2132 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 2133 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x6e, 0x76, 2134 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 2135 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x70, 2136 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 2137 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 2138 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x65, 2139 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 2140 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 2141 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 2142 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 2143 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 2144 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 2145 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 2146 0x12, 0x37, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x07, 0x20, 2147 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 2148 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 2149 0x08, 0x72, 0x65, 0x61, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xb2, 0x02, 0x0a, 0x19, 0x51, 0x75, 2150 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 2151 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x5f, 2152 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 2153 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 2154 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x0c, 0x74, 2155 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 2156 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 2157 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 2158 0x6b, 0x65, 0x6e, 0x12, 0x52, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 2159 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 2160 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 2161 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2162 0x65, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 2163 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x55, 0x0a, 0x0c, 0x53, 0x6f, 0x75, 0x72, 0x63, 2164 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 2165 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 2166 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 2167 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 2168 0x63, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa9, 2169 0x02, 0x0a, 0x1b, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x56, 2170 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 2171 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 2172 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, 2173 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 2174 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 2175 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 2176 0x74, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 2177 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 2178 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 2179 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x75, 2180 0x6c, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 2181 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x1a, 0x5d, 0x0a, 0x15, 0x54, 2182 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 2183 0x66, 0x69, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 2184 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x65, 0x73, 0x74, 2185 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x61, 2186 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x76, 2187 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x22, 0x90, 0x02, 0x0a, 0x1c, 0x42, 2188 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 2189 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x74, 2190 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 2191 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 2192 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 2193 0x74, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 2194 0x55, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 2195 0x32, 0x3b, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 2196 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 2197 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 2198 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x73, 2199 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x55, 0x0a, 0x0c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 2200 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 2201 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 2202 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 2203 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 2204 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xbc, 0x01, 2205 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 2206 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 2207 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 2208 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x45, 0x0a, 0x09, 0x70, 0x72, 0x65, 2209 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6c, 2210 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 2211 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x72, 0x65, 0x64, 2212 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x09, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 2213 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 2214 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 2215 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 2216 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8d, 0x01, 0x0a, 2217 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 2218 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0c, 0x74, 0x65, 2219 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 2220 0x32, 0x24, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 2221 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 2222 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 2223 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 2224 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 2225 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x63, 0x0a, 0x1b, 2226 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x77, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 2227 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x69, 2228 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 2229 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 2230 0x12, 0x1f, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 2231 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 2232 0x65, 0x22, 0x83, 0x02, 0x0a, 0x1c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x77, 0x54, 0x65, 2233 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 2234 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 2235 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 2236 0x73, 0x42, 0x61, 0x73, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x69, 2237 0x0a, 0x11, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 2238 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6c, 0x75, 0x63, 0x69, 2239 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 2240 0x72, 0x79, 0x4e, 0x65, 0x77, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 2241 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x77, 0x54, 0x65, 0x73, 2242 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x52, 0x0f, 0x6e, 0x65, 0x77, 0x54, 0x65, 0x73, 2243 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x1a, 0x4c, 0x0a, 0x0e, 0x4e, 0x65, 0x77, 2244 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 2245 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 2246 0x73, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 2247 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 2248 0x61, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x32, 0xe9, 0x0c, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x75, 2249 0x6c, 0x74, 0x44, 0x42, 0x12, 0x57, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x63, 2250 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 2251 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 2252 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 2253 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 2254 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x57, 0x0a, 2255 0x0d, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x26, 2256 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 2257 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 2258 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 2259 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 2260 0x73, 0x75, 0x6c, 0x74, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 2261 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x6c, 0x75, 0x63, 0x69, 2262 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 2263 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 2264 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 2265 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x52, 2266 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 2267 0x12, 0x66, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 2268 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 2269 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 2270 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 2271 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 2272 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 2273 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 2274 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2275 0x12, 0x2d, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 2276 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 2277 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 2278 0x2e, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 2279 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 2280 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 2281 0x00, 0x12, 0x6b, 0x0a, 0x10, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 2282 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x29, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 2283 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 2284 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 2285 0x1a, 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 2286 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 2287 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7a, 2288 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 2289 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2e, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 2290 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 2291 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2292 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 2293 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 2294 0x54, 0x65, 0x73, 0x74, 0x45, 0x78, 0x6f, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 2295 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x86, 0x01, 0x0a, 0x19, 0x51, 2296 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 2297 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x32, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 2298 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 2299 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x74, 0x61, 0x74, 0x69, 2300 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x6c, 2301 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 2302 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 2303 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2304 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x77, 0x54, 2305 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x6c, 0x75, 2306 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 2307 0x75, 0x65, 0x72, 0x79, 0x4e, 0x65, 0x77, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 2308 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x75, 0x63, 2309 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 2310 0x65, 0x72, 0x79, 0x4e, 0x65, 0x77, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 2311 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0b, 2312 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x24, 0x2e, 0x6c, 0x75, 2313 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x47, 2314 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2315 0x74, 0x1a, 0x1a, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 2316 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x22, 0x00, 0x12, 2317 0x62, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 2318 0x12, 0x26, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 2319 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 2320 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 2321 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 2322 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2323 0x65, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x74, 0x69, 2324 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x27, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 2325 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 2326 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 2327 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 2328 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 2329 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x11, 0x51, 0x75, 2330 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x12, 2331 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 2332 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 2333 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x75, 2334 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 2335 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 2336 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x14, 0x42, 0x61, 2337 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 2338 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 2339 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x54, 0x65, 2340 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 2341 0x74, 0x1a, 0x2e, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 2342 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x47, 0x65, 0x74, 0x54, 0x65, 0x73, 2343 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2344 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 0x74, 2345 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2a, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 2346 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 2347 0x79, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 2348 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 2349 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x65, 0x73, 2350 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 2351 0x65, 0x22, 0x00, 0x42, 0x31, 0x5a, 0x2f, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 2352 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 2353 0x6c, 0x74, 0x64, 0x62, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x3b, 0x72, 0x65, 2354 0x73, 0x75, 0x6c, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 2355 } 2356 2357 var ( 2358 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescOnce sync.Once 2359 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescData = file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDesc 2360 ) 2361 2362 func file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescGZIP() []byte { 2363 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescOnce.Do(func() { 2364 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescData) 2365 }) 2366 return file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDescData 2367 } 2368 2369 var file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes = make([]protoimpl.MessageInfo, 30) 2370 var file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_goTypes = []interface{}{ 2371 (*GetInvocationRequest)(nil), // 0: luci.resultdb.v1.GetInvocationRequest 2372 (*GetTestResultRequest)(nil), // 1: luci.resultdb.v1.GetTestResultRequest 2373 (*ListTestResultsRequest)(nil), // 2: luci.resultdb.v1.ListTestResultsRequest 2374 (*ListTestResultsResponse)(nil), // 3: luci.resultdb.v1.ListTestResultsResponse 2375 (*GetTestExonerationRequest)(nil), // 4: luci.resultdb.v1.GetTestExonerationRequest 2376 (*ListTestExonerationsRequest)(nil), // 5: luci.resultdb.v1.ListTestExonerationsRequest 2377 (*ListTestExonerationsResponse)(nil), // 6: luci.resultdb.v1.ListTestExonerationsResponse 2378 (*QueryTestResultsRequest)(nil), // 7: luci.resultdb.v1.QueryTestResultsRequest 2379 (*QueryTestResultsResponse)(nil), // 8: luci.resultdb.v1.QueryTestResultsResponse 2380 (*QueryTestExonerationsRequest)(nil), // 9: luci.resultdb.v1.QueryTestExonerationsRequest 2381 (*QueryTestExonerationsResponse)(nil), // 10: luci.resultdb.v1.QueryTestExonerationsResponse 2382 (*QueryTestResultStatisticsRequest)(nil), // 11: luci.resultdb.v1.QueryTestResultStatisticsRequest 2383 (*QueryTestResultStatisticsResponse)(nil), // 12: luci.resultdb.v1.QueryTestResultStatisticsResponse 2384 (*GetArtifactRequest)(nil), // 13: luci.resultdb.v1.GetArtifactRequest 2385 (*ListArtifactsRequest)(nil), // 14: luci.resultdb.v1.ListArtifactsRequest 2386 (*ListArtifactsResponse)(nil), // 15: luci.resultdb.v1.ListArtifactsResponse 2387 (*QueryArtifactsRequest)(nil), // 16: luci.resultdb.v1.QueryArtifactsRequest 2388 (*QueryArtifactsResponse)(nil), // 17: luci.resultdb.v1.QueryArtifactsResponse 2389 (*QueryTestVariantsRequest)(nil), // 18: luci.resultdb.v1.QueryTestVariantsRequest 2390 (*QueryTestVariantsResponse)(nil), // 19: luci.resultdb.v1.QueryTestVariantsResponse 2391 (*BatchGetTestVariantsRequest)(nil), // 20: luci.resultdb.v1.BatchGetTestVariantsRequest 2392 (*BatchGetTestVariantsResponse)(nil), // 21: luci.resultdb.v1.BatchGetTestVariantsResponse 2393 (*QueryTestMetadataRequest)(nil), // 22: luci.resultdb.v1.QueryTestMetadataRequest 2394 (*QueryTestMetadataResponse)(nil), // 23: luci.resultdb.v1.QueryTestMetadataResponse 2395 (*QueryNewTestVariantsRequest)(nil), // 24: luci.resultdb.v1.QueryNewTestVariantsRequest 2396 (*QueryNewTestVariantsResponse)(nil), // 25: luci.resultdb.v1.QueryNewTestVariantsResponse 2397 nil, // 26: luci.resultdb.v1.QueryTestVariantsResponse.SourcesEntry 2398 (*BatchGetTestVariantsRequest_TestVariantIdentifier)(nil), // 27: luci.resultdb.v1.BatchGetTestVariantsRequest.TestVariantIdentifier 2399 nil, // 28: luci.resultdb.v1.BatchGetTestVariantsResponse.SourcesEntry 2400 (*QueryNewTestVariantsResponse_NewTestVariant)(nil), // 29: luci.resultdb.v1.QueryNewTestVariantsResponse.NewTestVariant 2401 (*fieldmaskpb.FieldMask)(nil), // 30: google.protobuf.FieldMask 2402 (*TestResult)(nil), // 31: luci.resultdb.v1.TestResult 2403 (*TestExoneration)(nil), // 32: luci.resultdb.v1.TestExoneration 2404 (*TestResultPredicate)(nil), // 33: luci.resultdb.v1.TestResultPredicate 2405 (*TestExonerationPredicate)(nil), // 34: luci.resultdb.v1.TestExonerationPredicate 2406 (*Artifact)(nil), // 35: luci.resultdb.v1.Artifact 2407 (*ArtifactPredicate)(nil), // 36: luci.resultdb.v1.ArtifactPredicate 2408 (*TestVariantPredicate)(nil), // 37: luci.resultdb.v1.TestVariantPredicate 2409 (*TestVariant)(nil), // 38: luci.resultdb.v1.TestVariant 2410 (*TestMetadataPredicate)(nil), // 39: luci.resultdb.v1.TestMetadataPredicate 2411 (*TestMetadataDetail)(nil), // 40: luci.resultdb.v1.TestMetadataDetail 2412 (*Sources)(nil), // 41: luci.resultdb.v1.Sources 2413 (*Invocation)(nil), // 42: luci.resultdb.v1.Invocation 2414 } 2415 var file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_depIdxs = []int32{ 2416 30, // 0: luci.resultdb.v1.ListTestResultsRequest.read_mask:type_name -> google.protobuf.FieldMask 2417 31, // 1: luci.resultdb.v1.ListTestResultsResponse.test_results:type_name -> luci.resultdb.v1.TestResult 2418 32, // 2: luci.resultdb.v1.ListTestExonerationsResponse.test_exonerations:type_name -> luci.resultdb.v1.TestExoneration 2419 33, // 3: luci.resultdb.v1.QueryTestResultsRequest.predicate:type_name -> luci.resultdb.v1.TestResultPredicate 2420 30, // 4: luci.resultdb.v1.QueryTestResultsRequest.read_mask:type_name -> google.protobuf.FieldMask 2421 31, // 5: luci.resultdb.v1.QueryTestResultsResponse.test_results:type_name -> luci.resultdb.v1.TestResult 2422 34, // 6: luci.resultdb.v1.QueryTestExonerationsRequest.predicate:type_name -> luci.resultdb.v1.TestExonerationPredicate 2423 32, // 7: luci.resultdb.v1.QueryTestExonerationsResponse.test_exonerations:type_name -> luci.resultdb.v1.TestExoneration 2424 35, // 8: luci.resultdb.v1.ListArtifactsResponse.artifacts:type_name -> luci.resultdb.v1.Artifact 2425 36, // 9: luci.resultdb.v1.QueryArtifactsRequest.predicate:type_name -> luci.resultdb.v1.ArtifactPredicate 2426 35, // 10: luci.resultdb.v1.QueryArtifactsResponse.artifacts:type_name -> luci.resultdb.v1.Artifact 2427 37, // 11: luci.resultdb.v1.QueryTestVariantsRequest.predicate:type_name -> luci.resultdb.v1.TestVariantPredicate 2428 30, // 12: luci.resultdb.v1.QueryTestVariantsRequest.read_mask:type_name -> google.protobuf.FieldMask 2429 38, // 13: luci.resultdb.v1.QueryTestVariantsResponse.test_variants:type_name -> luci.resultdb.v1.TestVariant 2430 26, // 14: luci.resultdb.v1.QueryTestVariantsResponse.sources:type_name -> luci.resultdb.v1.QueryTestVariantsResponse.SourcesEntry 2431 27, // 15: luci.resultdb.v1.BatchGetTestVariantsRequest.test_variants:type_name -> luci.resultdb.v1.BatchGetTestVariantsRequest.TestVariantIdentifier 2432 38, // 16: luci.resultdb.v1.BatchGetTestVariantsResponse.test_variants:type_name -> luci.resultdb.v1.TestVariant 2433 28, // 17: luci.resultdb.v1.BatchGetTestVariantsResponse.sources:type_name -> luci.resultdb.v1.BatchGetTestVariantsResponse.SourcesEntry 2434 39, // 18: luci.resultdb.v1.QueryTestMetadataRequest.predicate:type_name -> luci.resultdb.v1.TestMetadataPredicate 2435 40, // 19: luci.resultdb.v1.QueryTestMetadataResponse.testMetadata:type_name -> luci.resultdb.v1.TestMetadataDetail 2436 29, // 20: luci.resultdb.v1.QueryNewTestVariantsResponse.new_test_variants:type_name -> luci.resultdb.v1.QueryNewTestVariantsResponse.NewTestVariant 2437 41, // 21: luci.resultdb.v1.QueryTestVariantsResponse.SourcesEntry.value:type_name -> luci.resultdb.v1.Sources 2438 41, // 22: luci.resultdb.v1.BatchGetTestVariantsResponse.SourcesEntry.value:type_name -> luci.resultdb.v1.Sources 2439 0, // 23: luci.resultdb.v1.ResultDB.GetInvocation:input_type -> luci.resultdb.v1.GetInvocationRequest 2440 1, // 24: luci.resultdb.v1.ResultDB.GetTestResult:input_type -> luci.resultdb.v1.GetTestResultRequest 2441 2, // 25: luci.resultdb.v1.ResultDB.ListTestResults:input_type -> luci.resultdb.v1.ListTestResultsRequest 2442 4, // 26: luci.resultdb.v1.ResultDB.GetTestExoneration:input_type -> luci.resultdb.v1.GetTestExonerationRequest 2443 5, // 27: luci.resultdb.v1.ResultDB.ListTestExonerations:input_type -> luci.resultdb.v1.ListTestExonerationsRequest 2444 7, // 28: luci.resultdb.v1.ResultDB.QueryTestResults:input_type -> luci.resultdb.v1.QueryTestResultsRequest 2445 9, // 29: luci.resultdb.v1.ResultDB.QueryTestExonerations:input_type -> luci.resultdb.v1.QueryTestExonerationsRequest 2446 11, // 30: luci.resultdb.v1.ResultDB.QueryTestResultStatistics:input_type -> luci.resultdb.v1.QueryTestResultStatisticsRequest 2447 24, // 31: luci.resultdb.v1.ResultDB.QueryNewTestVariants:input_type -> luci.resultdb.v1.QueryNewTestVariantsRequest 2448 13, // 32: luci.resultdb.v1.ResultDB.GetArtifact:input_type -> luci.resultdb.v1.GetArtifactRequest 2449 14, // 33: luci.resultdb.v1.ResultDB.ListArtifacts:input_type -> luci.resultdb.v1.ListArtifactsRequest 2450 16, // 34: luci.resultdb.v1.ResultDB.QueryArtifacts:input_type -> luci.resultdb.v1.QueryArtifactsRequest 2451 18, // 35: luci.resultdb.v1.ResultDB.QueryTestVariants:input_type -> luci.resultdb.v1.QueryTestVariantsRequest 2452 20, // 36: luci.resultdb.v1.ResultDB.BatchGetTestVariants:input_type -> luci.resultdb.v1.BatchGetTestVariantsRequest 2453 22, // 37: luci.resultdb.v1.ResultDB.QueryTestMetadata:input_type -> luci.resultdb.v1.QueryTestMetadataRequest 2454 42, // 38: luci.resultdb.v1.ResultDB.GetInvocation:output_type -> luci.resultdb.v1.Invocation 2455 31, // 39: luci.resultdb.v1.ResultDB.GetTestResult:output_type -> luci.resultdb.v1.TestResult 2456 3, // 40: luci.resultdb.v1.ResultDB.ListTestResults:output_type -> luci.resultdb.v1.ListTestResultsResponse 2457 32, // 41: luci.resultdb.v1.ResultDB.GetTestExoneration:output_type -> luci.resultdb.v1.TestExoneration 2458 6, // 42: luci.resultdb.v1.ResultDB.ListTestExonerations:output_type -> luci.resultdb.v1.ListTestExonerationsResponse 2459 8, // 43: luci.resultdb.v1.ResultDB.QueryTestResults:output_type -> luci.resultdb.v1.QueryTestResultsResponse 2460 10, // 44: luci.resultdb.v1.ResultDB.QueryTestExonerations:output_type -> luci.resultdb.v1.QueryTestExonerationsResponse 2461 12, // 45: luci.resultdb.v1.ResultDB.QueryTestResultStatistics:output_type -> luci.resultdb.v1.QueryTestResultStatisticsResponse 2462 25, // 46: luci.resultdb.v1.ResultDB.QueryNewTestVariants:output_type -> luci.resultdb.v1.QueryNewTestVariantsResponse 2463 35, // 47: luci.resultdb.v1.ResultDB.GetArtifact:output_type -> luci.resultdb.v1.Artifact 2464 15, // 48: luci.resultdb.v1.ResultDB.ListArtifacts:output_type -> luci.resultdb.v1.ListArtifactsResponse 2465 17, // 49: luci.resultdb.v1.ResultDB.QueryArtifacts:output_type -> luci.resultdb.v1.QueryArtifactsResponse 2466 19, // 50: luci.resultdb.v1.ResultDB.QueryTestVariants:output_type -> luci.resultdb.v1.QueryTestVariantsResponse 2467 21, // 51: luci.resultdb.v1.ResultDB.BatchGetTestVariants:output_type -> luci.resultdb.v1.BatchGetTestVariantsResponse 2468 23, // 52: luci.resultdb.v1.ResultDB.QueryTestMetadata:output_type -> luci.resultdb.v1.QueryTestMetadataResponse 2469 38, // [38:53] is the sub-list for method output_type 2470 23, // [23:38] is the sub-list for method input_type 2471 23, // [23:23] is the sub-list for extension type_name 2472 23, // [23:23] is the sub-list for extension extendee 2473 0, // [0:23] is the sub-list for field type_name 2474 } 2475 2476 func init() { file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_init() } 2477 func file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_init() { 2478 if File_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto != nil { 2479 return 2480 } 2481 file_go_chromium_org_luci_resultdb_proto_v1_artifact_proto_init() 2482 file_go_chromium_org_luci_resultdb_proto_v1_invocation_proto_init() 2483 file_go_chromium_org_luci_resultdb_proto_v1_predicate_proto_init() 2484 file_go_chromium_org_luci_resultdb_proto_v1_test_result_proto_init() 2485 file_go_chromium_org_luci_resultdb_proto_v1_test_variant_proto_init() 2486 file_go_chromium_org_luci_resultdb_proto_v1_test_metadata_proto_init() 2487 if !protoimpl.UnsafeEnabled { 2488 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 2489 switch v := v.(*GetInvocationRequest); i { 2490 case 0: 2491 return &v.state 2492 case 1: 2493 return &v.sizeCache 2494 case 2: 2495 return &v.unknownFields 2496 default: 2497 return nil 2498 } 2499 } 2500 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 2501 switch v := v.(*GetTestResultRequest); i { 2502 case 0: 2503 return &v.state 2504 case 1: 2505 return &v.sizeCache 2506 case 2: 2507 return &v.unknownFields 2508 default: 2509 return nil 2510 } 2511 } 2512 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 2513 switch v := v.(*ListTestResultsRequest); i { 2514 case 0: 2515 return &v.state 2516 case 1: 2517 return &v.sizeCache 2518 case 2: 2519 return &v.unknownFields 2520 default: 2521 return nil 2522 } 2523 } 2524 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { 2525 switch v := v.(*ListTestResultsResponse); i { 2526 case 0: 2527 return &v.state 2528 case 1: 2529 return &v.sizeCache 2530 case 2: 2531 return &v.unknownFields 2532 default: 2533 return nil 2534 } 2535 } 2536 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { 2537 switch v := v.(*GetTestExonerationRequest); i { 2538 case 0: 2539 return &v.state 2540 case 1: 2541 return &v.sizeCache 2542 case 2: 2543 return &v.unknownFields 2544 default: 2545 return nil 2546 } 2547 } 2548 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { 2549 switch v := v.(*ListTestExonerationsRequest); i { 2550 case 0: 2551 return &v.state 2552 case 1: 2553 return &v.sizeCache 2554 case 2: 2555 return &v.unknownFields 2556 default: 2557 return nil 2558 } 2559 } 2560 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { 2561 switch v := v.(*ListTestExonerationsResponse); i { 2562 case 0: 2563 return &v.state 2564 case 1: 2565 return &v.sizeCache 2566 case 2: 2567 return &v.unknownFields 2568 default: 2569 return nil 2570 } 2571 } 2572 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { 2573 switch v := v.(*QueryTestResultsRequest); i { 2574 case 0: 2575 return &v.state 2576 case 1: 2577 return &v.sizeCache 2578 case 2: 2579 return &v.unknownFields 2580 default: 2581 return nil 2582 } 2583 } 2584 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { 2585 switch v := v.(*QueryTestResultsResponse); i { 2586 case 0: 2587 return &v.state 2588 case 1: 2589 return &v.sizeCache 2590 case 2: 2591 return &v.unknownFields 2592 default: 2593 return nil 2594 } 2595 } 2596 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { 2597 switch v := v.(*QueryTestExonerationsRequest); i { 2598 case 0: 2599 return &v.state 2600 case 1: 2601 return &v.sizeCache 2602 case 2: 2603 return &v.unknownFields 2604 default: 2605 return nil 2606 } 2607 } 2608 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { 2609 switch v := v.(*QueryTestExonerationsResponse); i { 2610 case 0: 2611 return &v.state 2612 case 1: 2613 return &v.sizeCache 2614 case 2: 2615 return &v.unknownFields 2616 default: 2617 return nil 2618 } 2619 } 2620 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { 2621 switch v := v.(*QueryTestResultStatisticsRequest); i { 2622 case 0: 2623 return &v.state 2624 case 1: 2625 return &v.sizeCache 2626 case 2: 2627 return &v.unknownFields 2628 default: 2629 return nil 2630 } 2631 } 2632 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { 2633 switch v := v.(*QueryTestResultStatisticsResponse); i { 2634 case 0: 2635 return &v.state 2636 case 1: 2637 return &v.sizeCache 2638 case 2: 2639 return &v.unknownFields 2640 default: 2641 return nil 2642 } 2643 } 2644 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { 2645 switch v := v.(*GetArtifactRequest); i { 2646 case 0: 2647 return &v.state 2648 case 1: 2649 return &v.sizeCache 2650 case 2: 2651 return &v.unknownFields 2652 default: 2653 return nil 2654 } 2655 } 2656 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { 2657 switch v := v.(*ListArtifactsRequest); i { 2658 case 0: 2659 return &v.state 2660 case 1: 2661 return &v.sizeCache 2662 case 2: 2663 return &v.unknownFields 2664 default: 2665 return nil 2666 } 2667 } 2668 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { 2669 switch v := v.(*ListArtifactsResponse); i { 2670 case 0: 2671 return &v.state 2672 case 1: 2673 return &v.sizeCache 2674 case 2: 2675 return &v.unknownFields 2676 default: 2677 return nil 2678 } 2679 } 2680 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { 2681 switch v := v.(*QueryArtifactsRequest); i { 2682 case 0: 2683 return &v.state 2684 case 1: 2685 return &v.sizeCache 2686 case 2: 2687 return &v.unknownFields 2688 default: 2689 return nil 2690 } 2691 } 2692 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { 2693 switch v := v.(*QueryArtifactsResponse); i { 2694 case 0: 2695 return &v.state 2696 case 1: 2697 return &v.sizeCache 2698 case 2: 2699 return &v.unknownFields 2700 default: 2701 return nil 2702 } 2703 } 2704 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { 2705 switch v := v.(*QueryTestVariantsRequest); i { 2706 case 0: 2707 return &v.state 2708 case 1: 2709 return &v.sizeCache 2710 case 2: 2711 return &v.unknownFields 2712 default: 2713 return nil 2714 } 2715 } 2716 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { 2717 switch v := v.(*QueryTestVariantsResponse); i { 2718 case 0: 2719 return &v.state 2720 case 1: 2721 return &v.sizeCache 2722 case 2: 2723 return &v.unknownFields 2724 default: 2725 return nil 2726 } 2727 } 2728 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { 2729 switch v := v.(*BatchGetTestVariantsRequest); i { 2730 case 0: 2731 return &v.state 2732 case 1: 2733 return &v.sizeCache 2734 case 2: 2735 return &v.unknownFields 2736 default: 2737 return nil 2738 } 2739 } 2740 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { 2741 switch v := v.(*BatchGetTestVariantsResponse); i { 2742 case 0: 2743 return &v.state 2744 case 1: 2745 return &v.sizeCache 2746 case 2: 2747 return &v.unknownFields 2748 default: 2749 return nil 2750 } 2751 } 2752 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { 2753 switch v := v.(*QueryTestMetadataRequest); i { 2754 case 0: 2755 return &v.state 2756 case 1: 2757 return &v.sizeCache 2758 case 2: 2759 return &v.unknownFields 2760 default: 2761 return nil 2762 } 2763 } 2764 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { 2765 switch v := v.(*QueryTestMetadataResponse); i { 2766 case 0: 2767 return &v.state 2768 case 1: 2769 return &v.sizeCache 2770 case 2: 2771 return &v.unknownFields 2772 default: 2773 return nil 2774 } 2775 } 2776 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { 2777 switch v := v.(*QueryNewTestVariantsRequest); i { 2778 case 0: 2779 return &v.state 2780 case 1: 2781 return &v.sizeCache 2782 case 2: 2783 return &v.unknownFields 2784 default: 2785 return nil 2786 } 2787 } 2788 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { 2789 switch v := v.(*QueryNewTestVariantsResponse); i { 2790 case 0: 2791 return &v.state 2792 case 1: 2793 return &v.sizeCache 2794 case 2: 2795 return &v.unknownFields 2796 default: 2797 return nil 2798 } 2799 } 2800 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { 2801 switch v := v.(*BatchGetTestVariantsRequest_TestVariantIdentifier); i { 2802 case 0: 2803 return &v.state 2804 case 1: 2805 return &v.sizeCache 2806 case 2: 2807 return &v.unknownFields 2808 default: 2809 return nil 2810 } 2811 } 2812 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { 2813 switch v := v.(*QueryNewTestVariantsResponse_NewTestVariant); i { 2814 case 0: 2815 return &v.state 2816 case 1: 2817 return &v.sizeCache 2818 case 2: 2819 return &v.unknownFields 2820 default: 2821 return nil 2822 } 2823 } 2824 } 2825 type x struct{} 2826 out := protoimpl.TypeBuilder{ 2827 File: protoimpl.DescBuilder{ 2828 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 2829 RawDescriptor: file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDesc, 2830 NumEnums: 0, 2831 NumMessages: 30, 2832 NumExtensions: 0, 2833 NumServices: 1, 2834 }, 2835 GoTypes: file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_goTypes, 2836 DependencyIndexes: file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_depIdxs, 2837 MessageInfos: file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_msgTypes, 2838 }.Build() 2839 File_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto = out.File 2840 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_rawDesc = nil 2841 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_goTypes = nil 2842 file_go_chromium_org_luci_resultdb_proto_v1_resultdb_proto_depIdxs = nil 2843 } 2844 2845 // Reference imports to suppress errors if they are not otherwise used. 2846 var _ context.Context 2847 var _ grpc.ClientConnInterface 2848 2849 // This is a compile-time assertion to ensure that this generated file 2850 // is compatible with the grpc package it is being compiled against. 2851 const _ = grpc.SupportPackageIsVersion6 2852 2853 // ResultDBClient is the client API for ResultDB service. 2854 // 2855 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. 2856 type ResultDBClient interface { 2857 // Retrieves an invocation. 2858 GetInvocation(ctx context.Context, in *GetInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) 2859 // Retrieves a test result. 2860 GetTestResult(ctx context.Context, in *GetTestResultRequest, opts ...grpc.CallOption) (*TestResult, error) 2861 // Retrieves test results for a parent invocation. 2862 // 2863 // Note: response does not contain test results of included invocations. 2864 // Use QueryTestResults instead. 2865 ListTestResults(ctx context.Context, in *ListTestResultsRequest, opts ...grpc.CallOption) (*ListTestResultsResponse, error) 2866 // Retrieves a test exoneration. 2867 GetTestExoneration(ctx context.Context, in *GetTestExonerationRequest, opts ...grpc.CallOption) (*TestExoneration, error) 2868 // Retrieves test exonerations for a parent invocation. 2869 // 2870 // Note: response does not contain test results of included invocations. 2871 // Use QueryTestExonerations instead. 2872 ListTestExonerations(ctx context.Context, in *ListTestExonerationsRequest, opts ...grpc.CallOption) (*ListTestExonerationsResponse, error) 2873 // Retrieves test results from an invocation, recursively. 2874 // Supports invocation inclusions. 2875 // Supports advanced filtering. 2876 // Examples: go/resultdb-rpc#querytestresults 2877 QueryTestResults(ctx context.Context, in *QueryTestResultsRequest, opts ...grpc.CallOption) (*QueryTestResultsResponse, error) 2878 // Retrieves test exonerations from an invocation. 2879 // Supports invocation inclusions. 2880 // Supports advanced filtering. 2881 QueryTestExonerations(ctx context.Context, in *QueryTestExonerationsRequest, opts ...grpc.CallOption) (*QueryTestExonerationsResponse, error) 2882 // Retrieves the test result statistics of an invocation. 2883 // Currently supports total number of test results belong to the invocation, 2884 // directly and indirectly. 2885 QueryTestResultStatistics(ctx context.Context, in *QueryTestResultStatisticsRequest, opts ...grpc.CallOption) (*QueryTestResultStatisticsResponse, error) 2886 // Calculate new test variants by running the difference between the tests 2887 // run in the given invocation against the submitted test history for the 2888 // source. 2889 QueryNewTestVariants(ctx context.Context, in *QueryNewTestVariantsRequest, opts ...grpc.CallOption) (*QueryNewTestVariantsResponse, error) 2890 // Retrieves an artifact. 2891 GetArtifact(ctx context.Context, in *GetArtifactRequest, opts ...grpc.CallOption) (*Artifact, error) 2892 // Retrieves artifacts for a parent invocation/testResult. 2893 // 2894 // Note: if the parent is an invocation, the response does not contain 2895 // artifacts of included invocations. Use QueryArtifacts instead. 2896 ListArtifacts(ctx context.Context, in *ListArtifactsRequest, opts ...grpc.CallOption) (*ListArtifactsResponse, error) 2897 // Retrieves artifacts from an invocation, recursively. 2898 // Can retrieve artifacts of test results included in the invocation 2899 // directly or indirectly. 2900 // Supports invocation inclusions. 2901 QueryArtifacts(ctx context.Context, in *QueryArtifactsRequest, opts ...grpc.CallOption) (*QueryArtifactsResponse, error) 2902 // Retrieves test variants from an invocation, recursively. 2903 // Supports invocation inclusions. 2904 QueryTestVariants(ctx context.Context, in *QueryTestVariantsRequest, opts ...grpc.CallOption) (*QueryTestVariantsResponse, error) 2905 // Retrieves test variants from a single invocation, matching the specified 2906 // test IDs and hashes. 2907 BatchGetTestVariants(ctx context.Context, in *BatchGetTestVariantsRequest, opts ...grpc.CallOption) (*BatchGetTestVariantsResponse, error) 2908 // Retrieves test metadata from a LUCI project, matching the predicate. 2909 QueryTestMetadata(ctx context.Context, in *QueryTestMetadataRequest, opts ...grpc.CallOption) (*QueryTestMetadataResponse, error) 2910 } 2911 type resultDBPRPCClient struct { 2912 client *prpc.Client 2913 } 2914 2915 func NewResultDBPRPCClient(client *prpc.Client) ResultDBClient { 2916 return &resultDBPRPCClient{client} 2917 } 2918 2919 func (c *resultDBPRPCClient) GetInvocation(ctx context.Context, in *GetInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) { 2920 out := new(Invocation) 2921 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "GetInvocation", in, out, opts...) 2922 if err != nil { 2923 return nil, err 2924 } 2925 return out, nil 2926 } 2927 2928 func (c *resultDBPRPCClient) GetTestResult(ctx context.Context, in *GetTestResultRequest, opts ...grpc.CallOption) (*TestResult, error) { 2929 out := new(TestResult) 2930 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "GetTestResult", in, out, opts...) 2931 if err != nil { 2932 return nil, err 2933 } 2934 return out, nil 2935 } 2936 2937 func (c *resultDBPRPCClient) ListTestResults(ctx context.Context, in *ListTestResultsRequest, opts ...grpc.CallOption) (*ListTestResultsResponse, error) { 2938 out := new(ListTestResultsResponse) 2939 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "ListTestResults", in, out, opts...) 2940 if err != nil { 2941 return nil, err 2942 } 2943 return out, nil 2944 } 2945 2946 func (c *resultDBPRPCClient) GetTestExoneration(ctx context.Context, in *GetTestExonerationRequest, opts ...grpc.CallOption) (*TestExoneration, error) { 2947 out := new(TestExoneration) 2948 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "GetTestExoneration", in, out, opts...) 2949 if err != nil { 2950 return nil, err 2951 } 2952 return out, nil 2953 } 2954 2955 func (c *resultDBPRPCClient) ListTestExonerations(ctx context.Context, in *ListTestExonerationsRequest, opts ...grpc.CallOption) (*ListTestExonerationsResponse, error) { 2956 out := new(ListTestExonerationsResponse) 2957 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "ListTestExonerations", in, out, opts...) 2958 if err != nil { 2959 return nil, err 2960 } 2961 return out, nil 2962 } 2963 2964 func (c *resultDBPRPCClient) QueryTestResults(ctx context.Context, in *QueryTestResultsRequest, opts ...grpc.CallOption) (*QueryTestResultsResponse, error) { 2965 out := new(QueryTestResultsResponse) 2966 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "QueryTestResults", in, out, opts...) 2967 if err != nil { 2968 return nil, err 2969 } 2970 return out, nil 2971 } 2972 2973 func (c *resultDBPRPCClient) QueryTestExonerations(ctx context.Context, in *QueryTestExonerationsRequest, opts ...grpc.CallOption) (*QueryTestExonerationsResponse, error) { 2974 out := new(QueryTestExonerationsResponse) 2975 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "QueryTestExonerations", in, out, opts...) 2976 if err != nil { 2977 return nil, err 2978 } 2979 return out, nil 2980 } 2981 2982 func (c *resultDBPRPCClient) QueryTestResultStatistics(ctx context.Context, in *QueryTestResultStatisticsRequest, opts ...grpc.CallOption) (*QueryTestResultStatisticsResponse, error) { 2983 out := new(QueryTestResultStatisticsResponse) 2984 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "QueryTestResultStatistics", in, out, opts...) 2985 if err != nil { 2986 return nil, err 2987 } 2988 return out, nil 2989 } 2990 2991 func (c *resultDBPRPCClient) QueryNewTestVariants(ctx context.Context, in *QueryNewTestVariantsRequest, opts ...grpc.CallOption) (*QueryNewTestVariantsResponse, error) { 2992 out := new(QueryNewTestVariantsResponse) 2993 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "QueryNewTestVariants", in, out, opts...) 2994 if err != nil { 2995 return nil, err 2996 } 2997 return out, nil 2998 } 2999 3000 func (c *resultDBPRPCClient) GetArtifact(ctx context.Context, in *GetArtifactRequest, opts ...grpc.CallOption) (*Artifact, error) { 3001 out := new(Artifact) 3002 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "GetArtifact", in, out, opts...) 3003 if err != nil { 3004 return nil, err 3005 } 3006 return out, nil 3007 } 3008 3009 func (c *resultDBPRPCClient) ListArtifacts(ctx context.Context, in *ListArtifactsRequest, opts ...grpc.CallOption) (*ListArtifactsResponse, error) { 3010 out := new(ListArtifactsResponse) 3011 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "ListArtifacts", in, out, opts...) 3012 if err != nil { 3013 return nil, err 3014 } 3015 return out, nil 3016 } 3017 3018 func (c *resultDBPRPCClient) QueryArtifacts(ctx context.Context, in *QueryArtifactsRequest, opts ...grpc.CallOption) (*QueryArtifactsResponse, error) { 3019 out := new(QueryArtifactsResponse) 3020 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "QueryArtifacts", in, out, opts...) 3021 if err != nil { 3022 return nil, err 3023 } 3024 return out, nil 3025 } 3026 3027 func (c *resultDBPRPCClient) QueryTestVariants(ctx context.Context, in *QueryTestVariantsRequest, opts ...grpc.CallOption) (*QueryTestVariantsResponse, error) { 3028 out := new(QueryTestVariantsResponse) 3029 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "QueryTestVariants", in, out, opts...) 3030 if err != nil { 3031 return nil, err 3032 } 3033 return out, nil 3034 } 3035 3036 func (c *resultDBPRPCClient) BatchGetTestVariants(ctx context.Context, in *BatchGetTestVariantsRequest, opts ...grpc.CallOption) (*BatchGetTestVariantsResponse, error) { 3037 out := new(BatchGetTestVariantsResponse) 3038 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "BatchGetTestVariants", in, out, opts...) 3039 if err != nil { 3040 return nil, err 3041 } 3042 return out, nil 3043 } 3044 3045 func (c *resultDBPRPCClient) QueryTestMetadata(ctx context.Context, in *QueryTestMetadataRequest, opts ...grpc.CallOption) (*QueryTestMetadataResponse, error) { 3046 out := new(QueryTestMetadataResponse) 3047 err := c.client.Call(ctx, "luci.resultdb.v1.ResultDB", "QueryTestMetadata", in, out, opts...) 3048 if err != nil { 3049 return nil, err 3050 } 3051 return out, nil 3052 } 3053 3054 type resultDBClient struct { 3055 cc grpc.ClientConnInterface 3056 } 3057 3058 func NewResultDBClient(cc grpc.ClientConnInterface) ResultDBClient { 3059 return &resultDBClient{cc} 3060 } 3061 3062 func (c *resultDBClient) GetInvocation(ctx context.Context, in *GetInvocationRequest, opts ...grpc.CallOption) (*Invocation, error) { 3063 out := new(Invocation) 3064 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/GetInvocation", in, out, opts...) 3065 if err != nil { 3066 return nil, err 3067 } 3068 return out, nil 3069 } 3070 3071 func (c *resultDBClient) GetTestResult(ctx context.Context, in *GetTestResultRequest, opts ...grpc.CallOption) (*TestResult, error) { 3072 out := new(TestResult) 3073 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/GetTestResult", in, out, opts...) 3074 if err != nil { 3075 return nil, err 3076 } 3077 return out, nil 3078 } 3079 3080 func (c *resultDBClient) ListTestResults(ctx context.Context, in *ListTestResultsRequest, opts ...grpc.CallOption) (*ListTestResultsResponse, error) { 3081 out := new(ListTestResultsResponse) 3082 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/ListTestResults", in, out, opts...) 3083 if err != nil { 3084 return nil, err 3085 } 3086 return out, nil 3087 } 3088 3089 func (c *resultDBClient) GetTestExoneration(ctx context.Context, in *GetTestExonerationRequest, opts ...grpc.CallOption) (*TestExoneration, error) { 3090 out := new(TestExoneration) 3091 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/GetTestExoneration", in, out, opts...) 3092 if err != nil { 3093 return nil, err 3094 } 3095 return out, nil 3096 } 3097 3098 func (c *resultDBClient) ListTestExonerations(ctx context.Context, in *ListTestExonerationsRequest, opts ...grpc.CallOption) (*ListTestExonerationsResponse, error) { 3099 out := new(ListTestExonerationsResponse) 3100 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/ListTestExonerations", in, out, opts...) 3101 if err != nil { 3102 return nil, err 3103 } 3104 return out, nil 3105 } 3106 3107 func (c *resultDBClient) QueryTestResults(ctx context.Context, in *QueryTestResultsRequest, opts ...grpc.CallOption) (*QueryTestResultsResponse, error) { 3108 out := new(QueryTestResultsResponse) 3109 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/QueryTestResults", in, out, opts...) 3110 if err != nil { 3111 return nil, err 3112 } 3113 return out, nil 3114 } 3115 3116 func (c *resultDBClient) QueryTestExonerations(ctx context.Context, in *QueryTestExonerationsRequest, opts ...grpc.CallOption) (*QueryTestExonerationsResponse, error) { 3117 out := new(QueryTestExonerationsResponse) 3118 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/QueryTestExonerations", in, out, opts...) 3119 if err != nil { 3120 return nil, err 3121 } 3122 return out, nil 3123 } 3124 3125 func (c *resultDBClient) QueryTestResultStatistics(ctx context.Context, in *QueryTestResultStatisticsRequest, opts ...grpc.CallOption) (*QueryTestResultStatisticsResponse, error) { 3126 out := new(QueryTestResultStatisticsResponse) 3127 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/QueryTestResultStatistics", in, out, opts...) 3128 if err != nil { 3129 return nil, err 3130 } 3131 return out, nil 3132 } 3133 3134 func (c *resultDBClient) QueryNewTestVariants(ctx context.Context, in *QueryNewTestVariantsRequest, opts ...grpc.CallOption) (*QueryNewTestVariantsResponse, error) { 3135 out := new(QueryNewTestVariantsResponse) 3136 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/QueryNewTestVariants", in, out, opts...) 3137 if err != nil { 3138 return nil, err 3139 } 3140 return out, nil 3141 } 3142 3143 func (c *resultDBClient) GetArtifact(ctx context.Context, in *GetArtifactRequest, opts ...grpc.CallOption) (*Artifact, error) { 3144 out := new(Artifact) 3145 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/GetArtifact", in, out, opts...) 3146 if err != nil { 3147 return nil, err 3148 } 3149 return out, nil 3150 } 3151 3152 func (c *resultDBClient) ListArtifacts(ctx context.Context, in *ListArtifactsRequest, opts ...grpc.CallOption) (*ListArtifactsResponse, error) { 3153 out := new(ListArtifactsResponse) 3154 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/ListArtifacts", in, out, opts...) 3155 if err != nil { 3156 return nil, err 3157 } 3158 return out, nil 3159 } 3160 3161 func (c *resultDBClient) QueryArtifacts(ctx context.Context, in *QueryArtifactsRequest, opts ...grpc.CallOption) (*QueryArtifactsResponse, error) { 3162 out := new(QueryArtifactsResponse) 3163 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/QueryArtifacts", in, out, opts...) 3164 if err != nil { 3165 return nil, err 3166 } 3167 return out, nil 3168 } 3169 3170 func (c *resultDBClient) QueryTestVariants(ctx context.Context, in *QueryTestVariantsRequest, opts ...grpc.CallOption) (*QueryTestVariantsResponse, error) { 3171 out := new(QueryTestVariantsResponse) 3172 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/QueryTestVariants", in, out, opts...) 3173 if err != nil { 3174 return nil, err 3175 } 3176 return out, nil 3177 } 3178 3179 func (c *resultDBClient) BatchGetTestVariants(ctx context.Context, in *BatchGetTestVariantsRequest, opts ...grpc.CallOption) (*BatchGetTestVariantsResponse, error) { 3180 out := new(BatchGetTestVariantsResponse) 3181 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/BatchGetTestVariants", in, out, opts...) 3182 if err != nil { 3183 return nil, err 3184 } 3185 return out, nil 3186 } 3187 3188 func (c *resultDBClient) QueryTestMetadata(ctx context.Context, in *QueryTestMetadataRequest, opts ...grpc.CallOption) (*QueryTestMetadataResponse, error) { 3189 out := new(QueryTestMetadataResponse) 3190 err := c.cc.Invoke(ctx, "/luci.resultdb.v1.ResultDB/QueryTestMetadata", in, out, opts...) 3191 if err != nil { 3192 return nil, err 3193 } 3194 return out, nil 3195 } 3196 3197 // ResultDBServer is the server API for ResultDB service. 3198 type ResultDBServer interface { 3199 // Retrieves an invocation. 3200 GetInvocation(context.Context, *GetInvocationRequest) (*Invocation, error) 3201 // Retrieves a test result. 3202 GetTestResult(context.Context, *GetTestResultRequest) (*TestResult, error) 3203 // Retrieves test results for a parent invocation. 3204 // 3205 // Note: response does not contain test results of included invocations. 3206 // Use QueryTestResults instead. 3207 ListTestResults(context.Context, *ListTestResultsRequest) (*ListTestResultsResponse, error) 3208 // Retrieves a test exoneration. 3209 GetTestExoneration(context.Context, *GetTestExonerationRequest) (*TestExoneration, error) 3210 // Retrieves test exonerations for a parent invocation. 3211 // 3212 // Note: response does not contain test results of included invocations. 3213 // Use QueryTestExonerations instead. 3214 ListTestExonerations(context.Context, *ListTestExonerationsRequest) (*ListTestExonerationsResponse, error) 3215 // Retrieves test results from an invocation, recursively. 3216 // Supports invocation inclusions. 3217 // Supports advanced filtering. 3218 // Examples: go/resultdb-rpc#querytestresults 3219 QueryTestResults(context.Context, *QueryTestResultsRequest) (*QueryTestResultsResponse, error) 3220 // Retrieves test exonerations from an invocation. 3221 // Supports invocation inclusions. 3222 // Supports advanced filtering. 3223 QueryTestExonerations(context.Context, *QueryTestExonerationsRequest) (*QueryTestExonerationsResponse, error) 3224 // Retrieves the test result statistics of an invocation. 3225 // Currently supports total number of test results belong to the invocation, 3226 // directly and indirectly. 3227 QueryTestResultStatistics(context.Context, *QueryTestResultStatisticsRequest) (*QueryTestResultStatisticsResponse, error) 3228 // Calculate new test variants by running the difference between the tests 3229 // run in the given invocation against the submitted test history for the 3230 // source. 3231 QueryNewTestVariants(context.Context, *QueryNewTestVariantsRequest) (*QueryNewTestVariantsResponse, error) 3232 // Retrieves an artifact. 3233 GetArtifact(context.Context, *GetArtifactRequest) (*Artifact, error) 3234 // Retrieves artifacts for a parent invocation/testResult. 3235 // 3236 // Note: if the parent is an invocation, the response does not contain 3237 // artifacts of included invocations. Use QueryArtifacts instead. 3238 ListArtifacts(context.Context, *ListArtifactsRequest) (*ListArtifactsResponse, error) 3239 // Retrieves artifacts from an invocation, recursively. 3240 // Can retrieve artifacts of test results included in the invocation 3241 // directly or indirectly. 3242 // Supports invocation inclusions. 3243 QueryArtifacts(context.Context, *QueryArtifactsRequest) (*QueryArtifactsResponse, error) 3244 // Retrieves test variants from an invocation, recursively. 3245 // Supports invocation inclusions. 3246 QueryTestVariants(context.Context, *QueryTestVariantsRequest) (*QueryTestVariantsResponse, error) 3247 // Retrieves test variants from a single invocation, matching the specified 3248 // test IDs and hashes. 3249 BatchGetTestVariants(context.Context, *BatchGetTestVariantsRequest) (*BatchGetTestVariantsResponse, error) 3250 // Retrieves test metadata from a LUCI project, matching the predicate. 3251 QueryTestMetadata(context.Context, *QueryTestMetadataRequest) (*QueryTestMetadataResponse, error) 3252 } 3253 3254 // UnimplementedResultDBServer can be embedded to have forward compatible implementations. 3255 type UnimplementedResultDBServer struct { 3256 } 3257 3258 func (*UnimplementedResultDBServer) GetInvocation(context.Context, *GetInvocationRequest) (*Invocation, error) { 3259 return nil, status.Errorf(codes.Unimplemented, "method GetInvocation not implemented") 3260 } 3261 func (*UnimplementedResultDBServer) GetTestResult(context.Context, *GetTestResultRequest) (*TestResult, error) { 3262 return nil, status.Errorf(codes.Unimplemented, "method GetTestResult not implemented") 3263 } 3264 func (*UnimplementedResultDBServer) ListTestResults(context.Context, *ListTestResultsRequest) (*ListTestResultsResponse, error) { 3265 return nil, status.Errorf(codes.Unimplemented, "method ListTestResults not implemented") 3266 } 3267 func (*UnimplementedResultDBServer) GetTestExoneration(context.Context, *GetTestExonerationRequest) (*TestExoneration, error) { 3268 return nil, status.Errorf(codes.Unimplemented, "method GetTestExoneration not implemented") 3269 } 3270 func (*UnimplementedResultDBServer) ListTestExonerations(context.Context, *ListTestExonerationsRequest) (*ListTestExonerationsResponse, error) { 3271 return nil, status.Errorf(codes.Unimplemented, "method ListTestExonerations not implemented") 3272 } 3273 func (*UnimplementedResultDBServer) QueryTestResults(context.Context, *QueryTestResultsRequest) (*QueryTestResultsResponse, error) { 3274 return nil, status.Errorf(codes.Unimplemented, "method QueryTestResults not implemented") 3275 } 3276 func (*UnimplementedResultDBServer) QueryTestExonerations(context.Context, *QueryTestExonerationsRequest) (*QueryTestExonerationsResponse, error) { 3277 return nil, status.Errorf(codes.Unimplemented, "method QueryTestExonerations not implemented") 3278 } 3279 func (*UnimplementedResultDBServer) QueryTestResultStatistics(context.Context, *QueryTestResultStatisticsRequest) (*QueryTestResultStatisticsResponse, error) { 3280 return nil, status.Errorf(codes.Unimplemented, "method QueryTestResultStatistics not implemented") 3281 } 3282 func (*UnimplementedResultDBServer) QueryNewTestVariants(context.Context, *QueryNewTestVariantsRequest) (*QueryNewTestVariantsResponse, error) { 3283 return nil, status.Errorf(codes.Unimplemented, "method QueryNewTestVariants not implemented") 3284 } 3285 func (*UnimplementedResultDBServer) GetArtifact(context.Context, *GetArtifactRequest) (*Artifact, error) { 3286 return nil, status.Errorf(codes.Unimplemented, "method GetArtifact not implemented") 3287 } 3288 func (*UnimplementedResultDBServer) ListArtifacts(context.Context, *ListArtifactsRequest) (*ListArtifactsResponse, error) { 3289 return nil, status.Errorf(codes.Unimplemented, "method ListArtifacts not implemented") 3290 } 3291 func (*UnimplementedResultDBServer) QueryArtifacts(context.Context, *QueryArtifactsRequest) (*QueryArtifactsResponse, error) { 3292 return nil, status.Errorf(codes.Unimplemented, "method QueryArtifacts not implemented") 3293 } 3294 func (*UnimplementedResultDBServer) QueryTestVariants(context.Context, *QueryTestVariantsRequest) (*QueryTestVariantsResponse, error) { 3295 return nil, status.Errorf(codes.Unimplemented, "method QueryTestVariants not implemented") 3296 } 3297 func (*UnimplementedResultDBServer) BatchGetTestVariants(context.Context, *BatchGetTestVariantsRequest) (*BatchGetTestVariantsResponse, error) { 3298 return nil, status.Errorf(codes.Unimplemented, "method BatchGetTestVariants not implemented") 3299 } 3300 func (*UnimplementedResultDBServer) QueryTestMetadata(context.Context, *QueryTestMetadataRequest) (*QueryTestMetadataResponse, error) { 3301 return nil, status.Errorf(codes.Unimplemented, "method QueryTestMetadata not implemented") 3302 } 3303 3304 func RegisterResultDBServer(s prpc.Registrar, srv ResultDBServer) { 3305 s.RegisterService(&_ResultDB_serviceDesc, srv) 3306 } 3307 3308 func _ResultDB_GetInvocation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3309 in := new(GetInvocationRequest) 3310 if err := dec(in); err != nil { 3311 return nil, err 3312 } 3313 if interceptor == nil { 3314 return srv.(ResultDBServer).GetInvocation(ctx, in) 3315 } 3316 info := &grpc.UnaryServerInfo{ 3317 Server: srv, 3318 FullMethod: "/luci.resultdb.v1.ResultDB/GetInvocation", 3319 } 3320 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3321 return srv.(ResultDBServer).GetInvocation(ctx, req.(*GetInvocationRequest)) 3322 } 3323 return interceptor(ctx, in, info, handler) 3324 } 3325 3326 func _ResultDB_GetTestResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3327 in := new(GetTestResultRequest) 3328 if err := dec(in); err != nil { 3329 return nil, err 3330 } 3331 if interceptor == nil { 3332 return srv.(ResultDBServer).GetTestResult(ctx, in) 3333 } 3334 info := &grpc.UnaryServerInfo{ 3335 Server: srv, 3336 FullMethod: "/luci.resultdb.v1.ResultDB/GetTestResult", 3337 } 3338 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3339 return srv.(ResultDBServer).GetTestResult(ctx, req.(*GetTestResultRequest)) 3340 } 3341 return interceptor(ctx, in, info, handler) 3342 } 3343 3344 func _ResultDB_ListTestResults_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3345 in := new(ListTestResultsRequest) 3346 if err := dec(in); err != nil { 3347 return nil, err 3348 } 3349 if interceptor == nil { 3350 return srv.(ResultDBServer).ListTestResults(ctx, in) 3351 } 3352 info := &grpc.UnaryServerInfo{ 3353 Server: srv, 3354 FullMethod: "/luci.resultdb.v1.ResultDB/ListTestResults", 3355 } 3356 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3357 return srv.(ResultDBServer).ListTestResults(ctx, req.(*ListTestResultsRequest)) 3358 } 3359 return interceptor(ctx, in, info, handler) 3360 } 3361 3362 func _ResultDB_GetTestExoneration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3363 in := new(GetTestExonerationRequest) 3364 if err := dec(in); err != nil { 3365 return nil, err 3366 } 3367 if interceptor == nil { 3368 return srv.(ResultDBServer).GetTestExoneration(ctx, in) 3369 } 3370 info := &grpc.UnaryServerInfo{ 3371 Server: srv, 3372 FullMethod: "/luci.resultdb.v1.ResultDB/GetTestExoneration", 3373 } 3374 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3375 return srv.(ResultDBServer).GetTestExoneration(ctx, req.(*GetTestExonerationRequest)) 3376 } 3377 return interceptor(ctx, in, info, handler) 3378 } 3379 3380 func _ResultDB_ListTestExonerations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3381 in := new(ListTestExonerationsRequest) 3382 if err := dec(in); err != nil { 3383 return nil, err 3384 } 3385 if interceptor == nil { 3386 return srv.(ResultDBServer).ListTestExonerations(ctx, in) 3387 } 3388 info := &grpc.UnaryServerInfo{ 3389 Server: srv, 3390 FullMethod: "/luci.resultdb.v1.ResultDB/ListTestExonerations", 3391 } 3392 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3393 return srv.(ResultDBServer).ListTestExonerations(ctx, req.(*ListTestExonerationsRequest)) 3394 } 3395 return interceptor(ctx, in, info, handler) 3396 } 3397 3398 func _ResultDB_QueryTestResults_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3399 in := new(QueryTestResultsRequest) 3400 if err := dec(in); err != nil { 3401 return nil, err 3402 } 3403 if interceptor == nil { 3404 return srv.(ResultDBServer).QueryTestResults(ctx, in) 3405 } 3406 info := &grpc.UnaryServerInfo{ 3407 Server: srv, 3408 FullMethod: "/luci.resultdb.v1.ResultDB/QueryTestResults", 3409 } 3410 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3411 return srv.(ResultDBServer).QueryTestResults(ctx, req.(*QueryTestResultsRequest)) 3412 } 3413 return interceptor(ctx, in, info, handler) 3414 } 3415 3416 func _ResultDB_QueryTestExonerations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3417 in := new(QueryTestExonerationsRequest) 3418 if err := dec(in); err != nil { 3419 return nil, err 3420 } 3421 if interceptor == nil { 3422 return srv.(ResultDBServer).QueryTestExonerations(ctx, in) 3423 } 3424 info := &grpc.UnaryServerInfo{ 3425 Server: srv, 3426 FullMethod: "/luci.resultdb.v1.ResultDB/QueryTestExonerations", 3427 } 3428 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3429 return srv.(ResultDBServer).QueryTestExonerations(ctx, req.(*QueryTestExonerationsRequest)) 3430 } 3431 return interceptor(ctx, in, info, handler) 3432 } 3433 3434 func _ResultDB_QueryTestResultStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3435 in := new(QueryTestResultStatisticsRequest) 3436 if err := dec(in); err != nil { 3437 return nil, err 3438 } 3439 if interceptor == nil { 3440 return srv.(ResultDBServer).QueryTestResultStatistics(ctx, in) 3441 } 3442 info := &grpc.UnaryServerInfo{ 3443 Server: srv, 3444 FullMethod: "/luci.resultdb.v1.ResultDB/QueryTestResultStatistics", 3445 } 3446 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3447 return srv.(ResultDBServer).QueryTestResultStatistics(ctx, req.(*QueryTestResultStatisticsRequest)) 3448 } 3449 return interceptor(ctx, in, info, handler) 3450 } 3451 3452 func _ResultDB_QueryNewTestVariants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3453 in := new(QueryNewTestVariantsRequest) 3454 if err := dec(in); err != nil { 3455 return nil, err 3456 } 3457 if interceptor == nil { 3458 return srv.(ResultDBServer).QueryNewTestVariants(ctx, in) 3459 } 3460 info := &grpc.UnaryServerInfo{ 3461 Server: srv, 3462 FullMethod: "/luci.resultdb.v1.ResultDB/QueryNewTestVariants", 3463 } 3464 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3465 return srv.(ResultDBServer).QueryNewTestVariants(ctx, req.(*QueryNewTestVariantsRequest)) 3466 } 3467 return interceptor(ctx, in, info, handler) 3468 } 3469 3470 func _ResultDB_GetArtifact_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3471 in := new(GetArtifactRequest) 3472 if err := dec(in); err != nil { 3473 return nil, err 3474 } 3475 if interceptor == nil { 3476 return srv.(ResultDBServer).GetArtifact(ctx, in) 3477 } 3478 info := &grpc.UnaryServerInfo{ 3479 Server: srv, 3480 FullMethod: "/luci.resultdb.v1.ResultDB/GetArtifact", 3481 } 3482 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3483 return srv.(ResultDBServer).GetArtifact(ctx, req.(*GetArtifactRequest)) 3484 } 3485 return interceptor(ctx, in, info, handler) 3486 } 3487 3488 func _ResultDB_ListArtifacts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3489 in := new(ListArtifactsRequest) 3490 if err := dec(in); err != nil { 3491 return nil, err 3492 } 3493 if interceptor == nil { 3494 return srv.(ResultDBServer).ListArtifacts(ctx, in) 3495 } 3496 info := &grpc.UnaryServerInfo{ 3497 Server: srv, 3498 FullMethod: "/luci.resultdb.v1.ResultDB/ListArtifacts", 3499 } 3500 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3501 return srv.(ResultDBServer).ListArtifacts(ctx, req.(*ListArtifactsRequest)) 3502 } 3503 return interceptor(ctx, in, info, handler) 3504 } 3505 3506 func _ResultDB_QueryArtifacts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3507 in := new(QueryArtifactsRequest) 3508 if err := dec(in); err != nil { 3509 return nil, err 3510 } 3511 if interceptor == nil { 3512 return srv.(ResultDBServer).QueryArtifacts(ctx, in) 3513 } 3514 info := &grpc.UnaryServerInfo{ 3515 Server: srv, 3516 FullMethod: "/luci.resultdb.v1.ResultDB/QueryArtifacts", 3517 } 3518 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3519 return srv.(ResultDBServer).QueryArtifacts(ctx, req.(*QueryArtifactsRequest)) 3520 } 3521 return interceptor(ctx, in, info, handler) 3522 } 3523 3524 func _ResultDB_QueryTestVariants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3525 in := new(QueryTestVariantsRequest) 3526 if err := dec(in); err != nil { 3527 return nil, err 3528 } 3529 if interceptor == nil { 3530 return srv.(ResultDBServer).QueryTestVariants(ctx, in) 3531 } 3532 info := &grpc.UnaryServerInfo{ 3533 Server: srv, 3534 FullMethod: "/luci.resultdb.v1.ResultDB/QueryTestVariants", 3535 } 3536 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3537 return srv.(ResultDBServer).QueryTestVariants(ctx, req.(*QueryTestVariantsRequest)) 3538 } 3539 return interceptor(ctx, in, info, handler) 3540 } 3541 3542 func _ResultDB_BatchGetTestVariants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3543 in := new(BatchGetTestVariantsRequest) 3544 if err := dec(in); err != nil { 3545 return nil, err 3546 } 3547 if interceptor == nil { 3548 return srv.(ResultDBServer).BatchGetTestVariants(ctx, in) 3549 } 3550 info := &grpc.UnaryServerInfo{ 3551 Server: srv, 3552 FullMethod: "/luci.resultdb.v1.ResultDB/BatchGetTestVariants", 3553 } 3554 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3555 return srv.(ResultDBServer).BatchGetTestVariants(ctx, req.(*BatchGetTestVariantsRequest)) 3556 } 3557 return interceptor(ctx, in, info, handler) 3558 } 3559 3560 func _ResultDB_QueryTestMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { 3561 in := new(QueryTestMetadataRequest) 3562 if err := dec(in); err != nil { 3563 return nil, err 3564 } 3565 if interceptor == nil { 3566 return srv.(ResultDBServer).QueryTestMetadata(ctx, in) 3567 } 3568 info := &grpc.UnaryServerInfo{ 3569 Server: srv, 3570 FullMethod: "/luci.resultdb.v1.ResultDB/QueryTestMetadata", 3571 } 3572 handler := func(ctx context.Context, req interface{}) (interface{}, error) { 3573 return srv.(ResultDBServer).QueryTestMetadata(ctx, req.(*QueryTestMetadataRequest)) 3574 } 3575 return interceptor(ctx, in, info, handler) 3576 } 3577 3578 var _ResultDB_serviceDesc = grpc.ServiceDesc{ 3579 ServiceName: "luci.resultdb.v1.ResultDB", 3580 HandlerType: (*ResultDBServer)(nil), 3581 Methods: []grpc.MethodDesc{ 3582 { 3583 MethodName: "GetInvocation", 3584 Handler: _ResultDB_GetInvocation_Handler, 3585 }, 3586 { 3587 MethodName: "GetTestResult", 3588 Handler: _ResultDB_GetTestResult_Handler, 3589 }, 3590 { 3591 MethodName: "ListTestResults", 3592 Handler: _ResultDB_ListTestResults_Handler, 3593 }, 3594 { 3595 MethodName: "GetTestExoneration", 3596 Handler: _ResultDB_GetTestExoneration_Handler, 3597 }, 3598 { 3599 MethodName: "ListTestExonerations", 3600 Handler: _ResultDB_ListTestExonerations_Handler, 3601 }, 3602 { 3603 MethodName: "QueryTestResults", 3604 Handler: _ResultDB_QueryTestResults_Handler, 3605 }, 3606 { 3607 MethodName: "QueryTestExonerations", 3608 Handler: _ResultDB_QueryTestExonerations_Handler, 3609 }, 3610 { 3611 MethodName: "QueryTestResultStatistics", 3612 Handler: _ResultDB_QueryTestResultStatistics_Handler, 3613 }, 3614 { 3615 MethodName: "QueryNewTestVariants", 3616 Handler: _ResultDB_QueryNewTestVariants_Handler, 3617 }, 3618 { 3619 MethodName: "GetArtifact", 3620 Handler: _ResultDB_GetArtifact_Handler, 3621 }, 3622 { 3623 MethodName: "ListArtifacts", 3624 Handler: _ResultDB_ListArtifacts_Handler, 3625 }, 3626 { 3627 MethodName: "QueryArtifacts", 3628 Handler: _ResultDB_QueryArtifacts_Handler, 3629 }, 3630 { 3631 MethodName: "QueryTestVariants", 3632 Handler: _ResultDB_QueryTestVariants_Handler, 3633 }, 3634 { 3635 MethodName: "BatchGetTestVariants", 3636 Handler: _ResultDB_BatchGetTestVariants_Handler, 3637 }, 3638 { 3639 MethodName: "QueryTestMetadata", 3640 Handler: _ResultDB_QueryTestMetadata_Handler, 3641 }, 3642 }, 3643 Streams: []grpc.StreamDesc{}, 3644 Metadata: "go.chromium.org/luci/resultdb/proto/v1/resultdb.proto", 3645 }