github.com/GoogleCloudPlatform/testgrid@v0.0.174/web/src/gen/pb/summary/summary.ts (about) 1 // @generated by protobuf-ts 2.8.3 with parameter long_type_string 2 // @generated from protobuf file "pb/summary/summary.proto" (package "testgrid.summary", syntax proto3) 3 // tslint:disable 4 // 5 // Summary info for TestGrid tests, dashboard tabs, and dashboards. 6 // Stored in GCS as "dashboard-<normalized dashboard name>". 7 // 8 import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; 9 import type { IBinaryWriter } from "@protobuf-ts/runtime"; 10 import { WireType } from "@protobuf-ts/runtime"; 11 import type { BinaryReadOptions } from "@protobuf-ts/runtime"; 12 import type { IBinaryReader } from "@protobuf-ts/runtime"; 13 import { UnknownFieldHandler } from "@protobuf-ts/runtime"; 14 import type { PartialMessage } from "@protobuf-ts/runtime"; 15 import { reflectionMergePartial } from "@protobuf-ts/runtime"; 16 import { MESSAGE_TYPE } from "@protobuf-ts/runtime"; 17 import { MessageType } from "@protobuf-ts/runtime"; 18 import { Timestamp } from "../../google/protobuf/timestamp"; 19 /** 20 * Summary of a failing test. 21 * 22 * @generated from protobuf message testgrid.summary.FailingTestSummary 23 */ 24 export interface FailingTestSummary { 25 /** 26 * Display name of the test. 27 * 28 * @generated from protobuf field: string display_name = 1; 29 */ 30 displayName: string; 31 /** 32 * Name of the test. E.g., the target for tests in Sponge. 33 * 34 * @generated from protobuf field: string test_name = 2; 35 */ 36 testName: string; 37 /** 38 * First build ID at which the test failed. 39 * 40 * @generated from protobuf field: string fail_build_id = 3; 41 */ 42 failBuildId: string; 43 /** 44 * Timestamp for the first cycle in which the test failed. 45 * 46 * @generated from protobuf field: double fail_timestamp = 4; 47 */ 48 failTimestamp: number; 49 /** 50 * Last build ID at which the test passed. 51 * 52 * @generated from protobuf field: string pass_build_id = 5; 53 */ 54 passBuildId: string; 55 /** 56 * Timestamp for the last cycle in which the test passed. 57 * 58 * @generated from protobuf field: double pass_timestamp = 6; 59 */ 60 passTimestamp: number; 61 /** 62 * Number of times the test has failed. 63 * 64 * @generated from protobuf field: int32 fail_count = 7; 65 */ 66 failCount: number; 67 /** 68 * Link to search for build changes. 69 * 70 * @generated from protobuf field: string build_link = 8; 71 */ 72 buildLink: string; 73 /** 74 * Text for option to search for build changes. 75 * 76 * @generated from protobuf field: string build_link_text = 9; 77 */ 78 buildLinkText: string; 79 /** 80 * Text to display for link to search for build changes. 81 * 82 * @generated from protobuf field: string build_url_text = 10; 83 */ 84 buildUrlText: string; 85 /** 86 * Text for failure statuses associated with this test. 87 * 88 * @generated from protobuf field: string failure_message = 11; 89 */ 90 failureMessage: string; 91 /** 92 * List of bug IDs for bugs associated with this test. 93 * 94 * @generated from protobuf field: repeated string linked_bugs = 12; 95 */ 96 linkedBugs: string[]; 97 /** 98 * A link to the first build in which the test failed. 99 * 100 * @generated from protobuf field: string fail_test_link = 13; 101 */ 102 failTestLink: string; 103 /** 104 * A link to the latest build in which the test failed. 105 * 106 * @generated from protobuf field: string latest_fail_test_link = 17; 107 */ 108 latestFailTestLink: string; 109 /** 110 * The test ID for the latest test failure. (Does not indicate the failure is 111 * 'over', just the latest test failure we found.) 112 * 113 * @generated from protobuf field: string latest_fail_build_id = 14; 114 */ 115 latestFailBuildId: string; 116 /** 117 * Maps (property name):(property value) for arbitrary alert properties. 118 * 119 * @generated from protobuf field: map<string, string> properties = 15; 120 */ 121 properties: { 122 [key: string]: string; 123 }; 124 /** 125 * A list of IDs for issue hotlists related to this failure. 126 * 127 * @generated from protobuf field: repeated string hotlist_ids = 16; 128 */ 129 hotlistIds: string[]; 130 /** 131 * Dynamic email list, route email alerts to these instead of the configured 132 * defaults. 133 * 134 * @generated from protobuf field: repeated string email_addresses = 18; 135 */ 136 emailAddresses: string[]; 137 } 138 /** 139 * Metrics about a specific test, i.e. passes, fails, total runs, etc. 140 * Next ID: 12 141 * 142 * @generated from protobuf message testgrid.summary.TestInfo 143 */ 144 export interface TestInfo { 145 /** 146 * The display name of the test, typically what is shown for each row in 147 * TestGrid 148 * 149 * @generated from protobuf field: string display_name = 1; 150 */ 151 displayName: string; 152 /** 153 * The total number of test runs not including runs failed due to 154 * infrastructure failures. 155 * 156 * @generated from protobuf field: int32 total_non_infra_runs = 2; 157 */ 158 totalNonInfraRuns: number; 159 /** 160 * The number of passed test runs not including runs failed due to 161 * infrastructure failures. 162 * 163 * @generated from protobuf field: int32 passed_non_infra_runs = 3; 164 */ 165 passedNonInfraRuns: number; 166 /** 167 * The number of failed test runs not including runs failed due to 168 * infrastructure failures. 169 * 170 * @generated from protobuf field: int32 failed_non_infra_runs = 4; 171 */ 172 failedNonInfraRuns: number; 173 /** 174 * The number of failed test runs specifically due to infrastructure 175 * failures. 176 * 177 * @generated from protobuf field: int32 failed_infra_runs = 5; 178 */ 179 failedInfraRuns: number; 180 /** 181 * The total number of all runs, including failures due to infrastructure 182 * 183 * @generated from protobuf field: int32 total_runs_with_infra = 6; 184 */ 185 totalRunsWithInfra: number; 186 /** 187 * Any other type of runs not included above. 188 * 189 * @generated from protobuf field: int32 other_runs = 7; 190 */ 191 otherRuns: number; 192 /** 193 * The flakiness of the test, measured out of 100 194 * 195 * @generated from protobuf field: float flakiness = 8; 196 */ 197 flakiness: number; 198 /** 199 * The flakiness of the test from previous intervals 200 * 201 * @generated from protobuf field: repeated float previous_flakiness = 10; 202 */ 203 previousFlakiness: number[]; 204 /** 205 * The change of flakiness based on the last interval's flakiness 206 * e.g. if last interval the flakiness was 50, and now it's 75, the 207 * trend is UP. A trend of NO_CHANGE means last week and this week were 208 * exactly the same. The interval is set by each tab's config, with 209 * a default of 7 days. 210 * 211 * @generated from protobuf field: testgrid.summary.TestInfo.Trend change_from_last_interval = 9; 212 */ 213 changeFromLastInterval: TestInfo_Trend; 214 /** 215 * A map of infra failure name to the count of that failure for the interval. 216 * 217 * @generated from protobuf field: map<string, int32> infra_failures = 11; 218 */ 219 infraFailures: { 220 [key: string]: number; 221 }; 222 } 223 /** 224 * @generated from protobuf enum testgrid.summary.TestInfo.Trend 225 */ 226 export enum TestInfo_Trend { 227 /** 228 * @generated from protobuf enum value: UNKNOWN = 0; 229 */ 230 UNKNOWN = 0, 231 /** 232 * @generated from protobuf enum value: NO_CHANGE = 1; 233 */ 234 NO_CHANGE = 1, 235 /** 236 * @generated from protobuf enum value: UP = 2; 237 */ 238 UP = 2, 239 /** 240 * @generated from protobuf enum value: DOWN = 3; 241 */ 242 DOWN = 3 243 } 244 /** 245 * Summary of the flakiness and overall healthiness of a dashboard tab 246 * 247 * @generated from protobuf message testgrid.summary.HealthinessInfo 248 */ 249 export interface HealthinessInfo { 250 /** 251 * The start of the time frame that the analysis was run for. 252 * Represents the lower bound but does not guarantee that the earliest 253 * test occurred at start 254 * 255 * @generated from protobuf field: google.protobuf.Timestamp start = 1; 256 */ 257 start?: Timestamp; 258 /** 259 * The end of the time frame that the analysis was run for. 260 * Same caveat as above but for upper bound. 261 * 262 * @generated from protobuf field: google.protobuf.Timestamp end = 2; 263 */ 264 end?: Timestamp; 265 /** 266 * A list of test entries associated with this tab + timeframe. 267 * 268 * @generated from protobuf field: repeated testgrid.summary.TestInfo tests = 3; 269 */ 270 tests: TestInfo[]; 271 /** 272 * The flakiness out of 100 (think percentage but drop the sign) 273 * 274 * @generated from protobuf field: float average_flakiness = 4; 275 */ 276 averageFlakiness: number; 277 /** 278 * The average flakiness for previous intervals 279 * 280 * @generated from protobuf field: repeated float previous_flakiness = 5; 281 */ 282 previousFlakiness: number[]; 283 } 284 /** 285 * Information about alerts that have been sent 286 * 287 * @generated from protobuf message testgrid.summary.AlertingData 288 */ 289 export interface AlertingData { 290 /** 291 * Seconds since epoch at which an email was last sent 292 * 293 * @generated from protobuf field: google.protobuf.Timestamp last_email_time = 1; 294 */ 295 lastEmailTime?: Timestamp; 296 } 297 /** 298 * Summary of a dashboard tab. 299 * 300 * @generated from protobuf message testgrid.summary.DashboardTabSummary 301 */ 302 export interface DashboardTabSummary { 303 /** 304 * The name of the dashboard. 305 * 306 * @generated from protobuf field: string dashboard_name = 1; 307 */ 308 dashboardName: string; 309 /** 310 * The name of the dashboard tab. 311 * 312 * @generated from protobuf field: string dashboard_tab_name = 2; 313 */ 314 dashboardTabName: string; 315 /** 316 * Any top-level alert on this dashboard tab. 317 * 318 * @generated from protobuf field: string alert = 3; 319 */ 320 alert: string; 321 /** 322 * List of failing test summary information. 323 * 324 * @generated from protobuf field: repeated testgrid.summary.FailingTestSummary failing_test_summaries = 4; 325 */ 326 failingTestSummaries: FailingTestSummary[]; 327 /** 328 * Seconds since epoch at which the test group was last updated. 329 * 330 * @generated from protobuf field: double last_update_timestamp = 5; 331 */ 332 lastUpdateTimestamp: number; 333 /** 334 * A summary of the status of this dashboard tab. 335 * 336 * @generated from protobuf field: string status = 6; 337 */ 338 status: string; 339 /** 340 * The overall status for this dashboard tab. 341 * 342 * @generated from protobuf field: testgrid.summary.DashboardTabSummary.TabStatus overall_status = 7; 343 */ 344 overallStatus: DashboardTabSummary_TabStatus; 345 /** 346 * The ID for the latest passing build. 347 * 348 * @generated from protobuf field: string latest_green = 8; 349 */ 350 latestGreen: string; 351 /** 352 * Seconds since epoch at which tests last ran. 353 * 354 * @generated from protobuf field: double last_run_timestamp = 9; 355 */ 356 lastRunTimestamp: number; 357 /** 358 * String indicating the URL for linking to a bug. 359 * 360 * @generated from protobuf field: string bug_url = 10; 361 */ 362 bugUrl: string; 363 /** 364 * Metrics for the recent healthiness of a tab 365 * 366 * @generated from protobuf field: testgrid.summary.HealthinessInfo healthiness = 12; 367 */ 368 healthiness?: HealthinessInfo; 369 /** 370 * All the issue IDs linked to this tab. 371 * 372 * @generated from protobuf field: repeated string linked_issues = 13; 373 */ 374 linkedIssues: string[]; 375 /** 376 * Metrics about alerts sent with respect to this summary 377 * Maintained by alerter; does not need to be populated by summarizer 378 * 379 * @generated from protobuf field: testgrid.summary.AlertingData alerting_data = 14; 380 */ 381 alertingData?: AlertingData; 382 /** 383 * DEPRECATED: now part of the TabStatus. 384 * 385 * @deprecated 386 * @generated from protobuf field: bool acceptably_flaky = 15 [deprecated = true]; 387 */ 388 acceptablyFlaky: boolean; 389 /** 390 * Additional metrics provided for the dashboard tab 391 * 392 * @generated from protobuf field: testgrid.summary.DashboardTabSummaryMetrics summary_metrics = 16; 393 */ 394 summaryMetrics?: DashboardTabSummaryMetrics; 395 } 396 /** 397 * @generated from protobuf enum testgrid.summary.DashboardTabSummary.TabStatus 398 */ 399 export enum DashboardTabSummary_TabStatus { 400 /** 401 * @generated from protobuf enum value: NOT_SET = 0; 402 */ 403 NOT_SET = 0, 404 /** 405 * @generated from protobuf enum value: UNKNOWN = 1; 406 */ 407 UNKNOWN = 1, 408 /** 409 * @generated from protobuf enum value: PASS = 2; 410 */ 411 PASS = 2, 412 /** 413 * @generated from protobuf enum value: FAIL = 3; 414 */ 415 FAIL = 3, 416 /** 417 * @generated from protobuf enum value: FLAKY = 4; 418 */ 419 FLAKY = 4, 420 /** 421 * @generated from protobuf enum value: STALE = 5; 422 */ 423 STALE = 5, 424 /** 425 * @generated from protobuf enum value: BROKEN = 6; 426 */ 427 BROKEN = 6, 428 /** 429 * @generated from protobuf enum value: PENDING = 7; 430 */ 431 PENDING = 7, 432 /** 433 * @generated from protobuf enum value: ACCEPTABLE = 8; 434 */ 435 ACCEPTABLE = 8 436 } 437 /** 438 * Most recent summary metrics for the tab calculated over columns (not individual tests) 439 * 440 * @generated from protobuf message testgrid.summary.DashboardTabSummaryMetrics 441 */ 442 export interface DashboardTabSummaryMetrics { 443 /** 444 * Number of total columns analyzed by summarizer 445 * 446 * @generated from protobuf field: int32 completed_columns = 1; 447 */ 448 completedColumns: number; 449 /** 450 * Number of columns with all tests passing 451 * 452 * @generated from protobuf field: int32 passing_columns = 2; 453 */ 454 passingColumns: number; 455 /** 456 * Number of ignored columns 457 * 458 * @generated from protobuf field: int32 ignored_columns = 3; 459 */ 460 ignoredColumns: number; 461 } 462 /** 463 * Summary state of a dashboard. 464 * 465 * @generated from protobuf message testgrid.summary.DashboardSummary 466 */ 467 export interface DashboardSummary { 468 /** 469 * Summary of a dashboard tab; see config.proto. 470 * 471 * @generated from protobuf field: repeated testgrid.summary.DashboardTabSummary tab_summaries = 1; 472 */ 473 tabSummaries: DashboardTabSummary[]; 474 } 475 // @generated message type with reflection information, may provide speed optimized methods 476 class FailingTestSummary$Type extends MessageType<FailingTestSummary> { 477 constructor() { 478 super("testgrid.summary.FailingTestSummary", [ 479 { no: 1, name: "display_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 480 { no: 2, name: "test_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 481 { no: 3, name: "fail_build_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 482 { no: 4, name: "fail_timestamp", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }, 483 { no: 5, name: "pass_build_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 484 { no: 6, name: "pass_timestamp", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }, 485 { no: 7, name: "fail_count", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, 486 { no: 8, name: "build_link", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 487 { no: 9, name: "build_link_text", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 488 { no: 10, name: "build_url_text", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 489 { no: 11, name: "failure_message", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 490 { no: 12, name: "linked_bugs", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }, 491 { no: 13, name: "fail_test_link", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 492 { no: 17, name: "latest_fail_test_link", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 493 { no: 14, name: "latest_fail_build_id", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 494 { no: 15, name: "properties", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "scalar", T: 9 /*ScalarType.STRING*/ } }, 495 { no: 16, name: "hotlist_ids", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }, 496 { no: 18, name: "email_addresses", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ } 497 ]); 498 } 499 create(value?: PartialMessage<FailingTestSummary>): FailingTestSummary { 500 const message = { displayName: "", testName: "", failBuildId: "", failTimestamp: 0, passBuildId: "", passTimestamp: 0, failCount: 0, buildLink: "", buildLinkText: "", buildUrlText: "", failureMessage: "", linkedBugs: [], failTestLink: "", latestFailTestLink: "", latestFailBuildId: "", properties: {}, hotlistIds: [], emailAddresses: [] }; 501 globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); 502 if (value !== undefined) 503 reflectionMergePartial<FailingTestSummary>(this, message, value); 504 return message; 505 } 506 internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: FailingTestSummary): FailingTestSummary { 507 let message = target ?? this.create(), end = reader.pos + length; 508 while (reader.pos < end) { 509 let [fieldNo, wireType] = reader.tag(); 510 switch (fieldNo) { 511 case /* string display_name */ 1: 512 message.displayName = reader.string(); 513 break; 514 case /* string test_name */ 2: 515 message.testName = reader.string(); 516 break; 517 case /* string fail_build_id */ 3: 518 message.failBuildId = reader.string(); 519 break; 520 case /* double fail_timestamp */ 4: 521 message.failTimestamp = reader.double(); 522 break; 523 case /* string pass_build_id */ 5: 524 message.passBuildId = reader.string(); 525 break; 526 case /* double pass_timestamp */ 6: 527 message.passTimestamp = reader.double(); 528 break; 529 case /* int32 fail_count */ 7: 530 message.failCount = reader.int32(); 531 break; 532 case /* string build_link */ 8: 533 message.buildLink = reader.string(); 534 break; 535 case /* string build_link_text */ 9: 536 message.buildLinkText = reader.string(); 537 break; 538 case /* string build_url_text */ 10: 539 message.buildUrlText = reader.string(); 540 break; 541 case /* string failure_message */ 11: 542 message.failureMessage = reader.string(); 543 break; 544 case /* repeated string linked_bugs */ 12: 545 message.linkedBugs.push(reader.string()); 546 break; 547 case /* string fail_test_link */ 13: 548 message.failTestLink = reader.string(); 549 break; 550 case /* string latest_fail_test_link */ 17: 551 message.latestFailTestLink = reader.string(); 552 break; 553 case /* string latest_fail_build_id */ 14: 554 message.latestFailBuildId = reader.string(); 555 break; 556 case /* map<string, string> properties */ 15: 557 this.binaryReadMap15(message.properties, reader, options); 558 break; 559 case /* repeated string hotlist_ids */ 16: 560 message.hotlistIds.push(reader.string()); 561 break; 562 case /* repeated string email_addresses */ 18: 563 message.emailAddresses.push(reader.string()); 564 break; 565 default: 566 let u = options.readUnknownField; 567 if (u === "throw") 568 throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 569 let d = reader.skip(wireType); 570 if (u !== false) 571 (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 572 } 573 } 574 return message; 575 } 576 private binaryReadMap15(map: FailingTestSummary["properties"], reader: IBinaryReader, options: BinaryReadOptions): void { 577 let len = reader.uint32(), end = reader.pos + len, key: keyof FailingTestSummary["properties"] | undefined, val: FailingTestSummary["properties"][any] | undefined; 578 while (reader.pos < end) { 579 let [fieldNo, wireType] = reader.tag(); 580 switch (fieldNo) { 581 case 1: 582 key = reader.string(); 583 break; 584 case 2: 585 val = reader.string(); 586 break; 587 default: throw new globalThis.Error("unknown map entry field for field testgrid.summary.FailingTestSummary.properties"); 588 } 589 } 590 map[key ?? ""] = val ?? ""; 591 } 592 internalBinaryWrite(message: FailingTestSummary, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 593 /* string display_name = 1; */ 594 if (message.displayName !== "") 595 writer.tag(1, WireType.LengthDelimited).string(message.displayName); 596 /* string test_name = 2; */ 597 if (message.testName !== "") 598 writer.tag(2, WireType.LengthDelimited).string(message.testName); 599 /* string fail_build_id = 3; */ 600 if (message.failBuildId !== "") 601 writer.tag(3, WireType.LengthDelimited).string(message.failBuildId); 602 /* double fail_timestamp = 4; */ 603 if (message.failTimestamp !== 0) 604 writer.tag(4, WireType.Bit64).double(message.failTimestamp); 605 /* string pass_build_id = 5; */ 606 if (message.passBuildId !== "") 607 writer.tag(5, WireType.LengthDelimited).string(message.passBuildId); 608 /* double pass_timestamp = 6; */ 609 if (message.passTimestamp !== 0) 610 writer.tag(6, WireType.Bit64).double(message.passTimestamp); 611 /* int32 fail_count = 7; */ 612 if (message.failCount !== 0) 613 writer.tag(7, WireType.Varint).int32(message.failCount); 614 /* string build_link = 8; */ 615 if (message.buildLink !== "") 616 writer.tag(8, WireType.LengthDelimited).string(message.buildLink); 617 /* string build_link_text = 9; */ 618 if (message.buildLinkText !== "") 619 writer.tag(9, WireType.LengthDelimited).string(message.buildLinkText); 620 /* string build_url_text = 10; */ 621 if (message.buildUrlText !== "") 622 writer.tag(10, WireType.LengthDelimited).string(message.buildUrlText); 623 /* string failure_message = 11; */ 624 if (message.failureMessage !== "") 625 writer.tag(11, WireType.LengthDelimited).string(message.failureMessage); 626 /* repeated string linked_bugs = 12; */ 627 for (let i = 0; i < message.linkedBugs.length; i++) 628 writer.tag(12, WireType.LengthDelimited).string(message.linkedBugs[i]); 629 /* string fail_test_link = 13; */ 630 if (message.failTestLink !== "") 631 writer.tag(13, WireType.LengthDelimited).string(message.failTestLink); 632 /* string latest_fail_test_link = 17; */ 633 if (message.latestFailTestLink !== "") 634 writer.tag(17, WireType.LengthDelimited).string(message.latestFailTestLink); 635 /* string latest_fail_build_id = 14; */ 636 if (message.latestFailBuildId !== "") 637 writer.tag(14, WireType.LengthDelimited).string(message.latestFailBuildId); 638 /* map<string, string> properties = 15; */ 639 for (let k of Object.keys(message.properties)) 640 writer.tag(15, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.LengthDelimited).string(message.properties[k]).join(); 641 /* repeated string hotlist_ids = 16; */ 642 for (let i = 0; i < message.hotlistIds.length; i++) 643 writer.tag(16, WireType.LengthDelimited).string(message.hotlistIds[i]); 644 /* repeated string email_addresses = 18; */ 645 for (let i = 0; i < message.emailAddresses.length; i++) 646 writer.tag(18, WireType.LengthDelimited).string(message.emailAddresses[i]); 647 let u = options.writeUnknownFields; 648 if (u !== false) 649 (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 650 return writer; 651 } 652 } 653 /** 654 * @generated MessageType for protobuf message testgrid.summary.FailingTestSummary 655 */ 656 export const FailingTestSummary = new FailingTestSummary$Type(); 657 // @generated message type with reflection information, may provide speed optimized methods 658 class TestInfo$Type extends MessageType<TestInfo> { 659 constructor() { 660 super("testgrid.summary.TestInfo", [ 661 { no: 1, name: "display_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 662 { no: 2, name: "total_non_infra_runs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, 663 { no: 3, name: "passed_non_infra_runs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, 664 { no: 4, name: "failed_non_infra_runs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, 665 { no: 5, name: "failed_infra_runs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, 666 { no: 6, name: "total_runs_with_infra", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, 667 { no: 7, name: "other_runs", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, 668 { no: 8, name: "flakiness", kind: "scalar", T: 2 /*ScalarType.FLOAT*/ }, 669 { no: 10, name: "previous_flakiness", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 2 /*ScalarType.FLOAT*/ }, 670 { no: 9, name: "change_from_last_interval", kind: "enum", T: () => ["testgrid.summary.TestInfo.Trend", TestInfo_Trend] }, 671 { no: 11, name: "infra_failures", kind: "map", K: 9 /*ScalarType.STRING*/, V: { kind: "scalar", T: 5 /*ScalarType.INT32*/ } } 672 ]); 673 } 674 create(value?: PartialMessage<TestInfo>): TestInfo { 675 const message = { displayName: "", totalNonInfraRuns: 0, passedNonInfraRuns: 0, failedNonInfraRuns: 0, failedInfraRuns: 0, totalRunsWithInfra: 0, otherRuns: 0, flakiness: 0, previousFlakiness: [], changeFromLastInterval: 0, infraFailures: {} }; 676 globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); 677 if (value !== undefined) 678 reflectionMergePartial<TestInfo>(this, message, value); 679 return message; 680 } 681 internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: TestInfo): TestInfo { 682 let message = target ?? this.create(), end = reader.pos + length; 683 while (reader.pos < end) { 684 let [fieldNo, wireType] = reader.tag(); 685 switch (fieldNo) { 686 case /* string display_name */ 1: 687 message.displayName = reader.string(); 688 break; 689 case /* int32 total_non_infra_runs */ 2: 690 message.totalNonInfraRuns = reader.int32(); 691 break; 692 case /* int32 passed_non_infra_runs */ 3: 693 message.passedNonInfraRuns = reader.int32(); 694 break; 695 case /* int32 failed_non_infra_runs */ 4: 696 message.failedNonInfraRuns = reader.int32(); 697 break; 698 case /* int32 failed_infra_runs */ 5: 699 message.failedInfraRuns = reader.int32(); 700 break; 701 case /* int32 total_runs_with_infra */ 6: 702 message.totalRunsWithInfra = reader.int32(); 703 break; 704 case /* int32 other_runs */ 7: 705 message.otherRuns = reader.int32(); 706 break; 707 case /* float flakiness */ 8: 708 message.flakiness = reader.float(); 709 break; 710 case /* repeated float previous_flakiness */ 10: 711 if (wireType === WireType.LengthDelimited) 712 for (let e = reader.int32() + reader.pos; reader.pos < e;) 713 message.previousFlakiness.push(reader.float()); 714 else 715 message.previousFlakiness.push(reader.float()); 716 break; 717 case /* testgrid.summary.TestInfo.Trend change_from_last_interval */ 9: 718 message.changeFromLastInterval = reader.int32(); 719 break; 720 case /* map<string, int32> infra_failures */ 11: 721 this.binaryReadMap11(message.infraFailures, reader, options); 722 break; 723 default: 724 let u = options.readUnknownField; 725 if (u === "throw") 726 throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 727 let d = reader.skip(wireType); 728 if (u !== false) 729 (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 730 } 731 } 732 return message; 733 } 734 private binaryReadMap11(map: TestInfo["infraFailures"], reader: IBinaryReader, options: BinaryReadOptions): void { 735 let len = reader.uint32(), end = reader.pos + len, key: keyof TestInfo["infraFailures"] | undefined, val: TestInfo["infraFailures"][any] | undefined; 736 while (reader.pos < end) { 737 let [fieldNo, wireType] = reader.tag(); 738 switch (fieldNo) { 739 case 1: 740 key = reader.string(); 741 break; 742 case 2: 743 val = reader.int32(); 744 break; 745 default: throw new globalThis.Error("unknown map entry field for field testgrid.summary.TestInfo.infra_failures"); 746 } 747 } 748 map[key ?? ""] = val ?? 0; 749 } 750 internalBinaryWrite(message: TestInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 751 /* string display_name = 1; */ 752 if (message.displayName !== "") 753 writer.tag(1, WireType.LengthDelimited).string(message.displayName); 754 /* int32 total_non_infra_runs = 2; */ 755 if (message.totalNonInfraRuns !== 0) 756 writer.tag(2, WireType.Varint).int32(message.totalNonInfraRuns); 757 /* int32 passed_non_infra_runs = 3; */ 758 if (message.passedNonInfraRuns !== 0) 759 writer.tag(3, WireType.Varint).int32(message.passedNonInfraRuns); 760 /* int32 failed_non_infra_runs = 4; */ 761 if (message.failedNonInfraRuns !== 0) 762 writer.tag(4, WireType.Varint).int32(message.failedNonInfraRuns); 763 /* int32 failed_infra_runs = 5; */ 764 if (message.failedInfraRuns !== 0) 765 writer.tag(5, WireType.Varint).int32(message.failedInfraRuns); 766 /* int32 total_runs_with_infra = 6; */ 767 if (message.totalRunsWithInfra !== 0) 768 writer.tag(6, WireType.Varint).int32(message.totalRunsWithInfra); 769 /* int32 other_runs = 7; */ 770 if (message.otherRuns !== 0) 771 writer.tag(7, WireType.Varint).int32(message.otherRuns); 772 /* float flakiness = 8; */ 773 if (message.flakiness !== 0) 774 writer.tag(8, WireType.Bit32).float(message.flakiness); 775 /* repeated float previous_flakiness = 10; */ 776 if (message.previousFlakiness.length) { 777 writer.tag(10, WireType.LengthDelimited).fork(); 778 for (let i = 0; i < message.previousFlakiness.length; i++) 779 writer.float(message.previousFlakiness[i]); 780 writer.join(); 781 } 782 /* testgrid.summary.TestInfo.Trend change_from_last_interval = 9; */ 783 if (message.changeFromLastInterval !== 0) 784 writer.tag(9, WireType.Varint).int32(message.changeFromLastInterval); 785 /* map<string, int32> infra_failures = 11; */ 786 for (let k of Object.keys(message.infraFailures)) 787 writer.tag(11, WireType.LengthDelimited).fork().tag(1, WireType.LengthDelimited).string(k).tag(2, WireType.Varint).int32(message.infraFailures[k]).join(); 788 let u = options.writeUnknownFields; 789 if (u !== false) 790 (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 791 return writer; 792 } 793 } 794 /** 795 * @generated MessageType for protobuf message testgrid.summary.TestInfo 796 */ 797 export const TestInfo = new TestInfo$Type(); 798 // @generated message type with reflection information, may provide speed optimized methods 799 class HealthinessInfo$Type extends MessageType<HealthinessInfo> { 800 constructor() { 801 super("testgrid.summary.HealthinessInfo", [ 802 { no: 1, name: "start", kind: "message", T: () => Timestamp }, 803 { no: 2, name: "end", kind: "message", T: () => Timestamp }, 804 { no: 3, name: "tests", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => TestInfo }, 805 { no: 4, name: "average_flakiness", kind: "scalar", T: 2 /*ScalarType.FLOAT*/ }, 806 { no: 5, name: "previous_flakiness", kind: "scalar", repeat: 1 /*RepeatType.PACKED*/, T: 2 /*ScalarType.FLOAT*/ } 807 ]); 808 } 809 create(value?: PartialMessage<HealthinessInfo>): HealthinessInfo { 810 const message = { tests: [], averageFlakiness: 0, previousFlakiness: [] }; 811 globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); 812 if (value !== undefined) 813 reflectionMergePartial<HealthinessInfo>(this, message, value); 814 return message; 815 } 816 internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: HealthinessInfo): HealthinessInfo { 817 let message = target ?? this.create(), end = reader.pos + length; 818 while (reader.pos < end) { 819 let [fieldNo, wireType] = reader.tag(); 820 switch (fieldNo) { 821 case /* google.protobuf.Timestamp start */ 1: 822 message.start = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.start); 823 break; 824 case /* google.protobuf.Timestamp end */ 2: 825 message.end = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.end); 826 break; 827 case /* repeated testgrid.summary.TestInfo tests */ 3: 828 message.tests.push(TestInfo.internalBinaryRead(reader, reader.uint32(), options)); 829 break; 830 case /* float average_flakiness */ 4: 831 message.averageFlakiness = reader.float(); 832 break; 833 case /* repeated float previous_flakiness */ 5: 834 if (wireType === WireType.LengthDelimited) 835 for (let e = reader.int32() + reader.pos; reader.pos < e;) 836 message.previousFlakiness.push(reader.float()); 837 else 838 message.previousFlakiness.push(reader.float()); 839 break; 840 default: 841 let u = options.readUnknownField; 842 if (u === "throw") 843 throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 844 let d = reader.skip(wireType); 845 if (u !== false) 846 (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 847 } 848 } 849 return message; 850 } 851 internalBinaryWrite(message: HealthinessInfo, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 852 /* google.protobuf.Timestamp start = 1; */ 853 if (message.start) 854 Timestamp.internalBinaryWrite(message.start, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); 855 /* google.protobuf.Timestamp end = 2; */ 856 if (message.end) 857 Timestamp.internalBinaryWrite(message.end, writer.tag(2, WireType.LengthDelimited).fork(), options).join(); 858 /* repeated testgrid.summary.TestInfo tests = 3; */ 859 for (let i = 0; i < message.tests.length; i++) 860 TestInfo.internalBinaryWrite(message.tests[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join(); 861 /* float average_flakiness = 4; */ 862 if (message.averageFlakiness !== 0) 863 writer.tag(4, WireType.Bit32).float(message.averageFlakiness); 864 /* repeated float previous_flakiness = 5; */ 865 if (message.previousFlakiness.length) { 866 writer.tag(5, WireType.LengthDelimited).fork(); 867 for (let i = 0; i < message.previousFlakiness.length; i++) 868 writer.float(message.previousFlakiness[i]); 869 writer.join(); 870 } 871 let u = options.writeUnknownFields; 872 if (u !== false) 873 (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 874 return writer; 875 } 876 } 877 /** 878 * @generated MessageType for protobuf message testgrid.summary.HealthinessInfo 879 */ 880 export const HealthinessInfo = new HealthinessInfo$Type(); 881 // @generated message type with reflection information, may provide speed optimized methods 882 class AlertingData$Type extends MessageType<AlertingData> { 883 constructor() { 884 super("testgrid.summary.AlertingData", [ 885 { no: 1, name: "last_email_time", kind: "message", T: () => Timestamp } 886 ]); 887 } 888 create(value?: PartialMessage<AlertingData>): AlertingData { 889 const message = {}; 890 globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); 891 if (value !== undefined) 892 reflectionMergePartial<AlertingData>(this, message, value); 893 return message; 894 } 895 internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: AlertingData): AlertingData { 896 let message = target ?? this.create(), end = reader.pos + length; 897 while (reader.pos < end) { 898 let [fieldNo, wireType] = reader.tag(); 899 switch (fieldNo) { 900 case /* google.protobuf.Timestamp last_email_time */ 1: 901 message.lastEmailTime = Timestamp.internalBinaryRead(reader, reader.uint32(), options, message.lastEmailTime); 902 break; 903 default: 904 let u = options.readUnknownField; 905 if (u === "throw") 906 throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 907 let d = reader.skip(wireType); 908 if (u !== false) 909 (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 910 } 911 } 912 return message; 913 } 914 internalBinaryWrite(message: AlertingData, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 915 /* google.protobuf.Timestamp last_email_time = 1; */ 916 if (message.lastEmailTime) 917 Timestamp.internalBinaryWrite(message.lastEmailTime, writer.tag(1, WireType.LengthDelimited).fork(), options).join(); 918 let u = options.writeUnknownFields; 919 if (u !== false) 920 (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 921 return writer; 922 } 923 } 924 /** 925 * @generated MessageType for protobuf message testgrid.summary.AlertingData 926 */ 927 export const AlertingData = new AlertingData$Type(); 928 // @generated message type with reflection information, may provide speed optimized methods 929 class DashboardTabSummary$Type extends MessageType<DashboardTabSummary> { 930 constructor() { 931 super("testgrid.summary.DashboardTabSummary", [ 932 { no: 1, name: "dashboard_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 933 { no: 2, name: "dashboard_tab_name", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 934 { no: 3, name: "alert", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 935 { no: 4, name: "failing_test_summaries", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => FailingTestSummary }, 936 { no: 5, name: "last_update_timestamp", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }, 937 { no: 6, name: "status", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 938 { no: 7, name: "overall_status", kind: "enum", T: () => ["testgrid.summary.DashboardTabSummary.TabStatus", DashboardTabSummary_TabStatus] }, 939 { no: 8, name: "latest_green", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 940 { no: 9, name: "last_run_timestamp", kind: "scalar", T: 1 /*ScalarType.DOUBLE*/ }, 941 { no: 10, name: "bug_url", kind: "scalar", T: 9 /*ScalarType.STRING*/ }, 942 { no: 12, name: "healthiness", kind: "message", T: () => HealthinessInfo }, 943 { no: 13, name: "linked_issues", kind: "scalar", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ }, 944 { no: 14, name: "alerting_data", kind: "message", T: () => AlertingData }, 945 { no: 15, name: "acceptably_flaky", kind: "scalar", T: 8 /*ScalarType.BOOL*/ }, 946 { no: 16, name: "summary_metrics", kind: "message", T: () => DashboardTabSummaryMetrics } 947 ]); 948 } 949 create(value?: PartialMessage<DashboardTabSummary>): DashboardTabSummary { 950 const message = { dashboardName: "", dashboardTabName: "", alert: "", failingTestSummaries: [], lastUpdateTimestamp: 0, status: "", overallStatus: 0, latestGreen: "", lastRunTimestamp: 0, bugUrl: "", linkedIssues: [], acceptablyFlaky: false }; 951 globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); 952 if (value !== undefined) 953 reflectionMergePartial<DashboardTabSummary>(this, message, value); 954 return message; 955 } 956 internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DashboardTabSummary): DashboardTabSummary { 957 let message = target ?? this.create(), end = reader.pos + length; 958 while (reader.pos < end) { 959 let [fieldNo, wireType] = reader.tag(); 960 switch (fieldNo) { 961 case /* string dashboard_name */ 1: 962 message.dashboardName = reader.string(); 963 break; 964 case /* string dashboard_tab_name */ 2: 965 message.dashboardTabName = reader.string(); 966 break; 967 case /* string alert */ 3: 968 message.alert = reader.string(); 969 break; 970 case /* repeated testgrid.summary.FailingTestSummary failing_test_summaries */ 4: 971 message.failingTestSummaries.push(FailingTestSummary.internalBinaryRead(reader, reader.uint32(), options)); 972 break; 973 case /* double last_update_timestamp */ 5: 974 message.lastUpdateTimestamp = reader.double(); 975 break; 976 case /* string status */ 6: 977 message.status = reader.string(); 978 break; 979 case /* testgrid.summary.DashboardTabSummary.TabStatus overall_status */ 7: 980 message.overallStatus = reader.int32(); 981 break; 982 case /* string latest_green */ 8: 983 message.latestGreen = reader.string(); 984 break; 985 case /* double last_run_timestamp */ 9: 986 message.lastRunTimestamp = reader.double(); 987 break; 988 case /* string bug_url */ 10: 989 message.bugUrl = reader.string(); 990 break; 991 case /* testgrid.summary.HealthinessInfo healthiness */ 12: 992 message.healthiness = HealthinessInfo.internalBinaryRead(reader, reader.uint32(), options, message.healthiness); 993 break; 994 case /* repeated string linked_issues */ 13: 995 message.linkedIssues.push(reader.string()); 996 break; 997 case /* testgrid.summary.AlertingData alerting_data */ 14: 998 message.alertingData = AlertingData.internalBinaryRead(reader, reader.uint32(), options, message.alertingData); 999 break; 1000 case /* bool acceptably_flaky = 15 [deprecated = true];*/ 15: 1001 message.acceptablyFlaky = reader.bool(); 1002 break; 1003 case /* testgrid.summary.DashboardTabSummaryMetrics summary_metrics */ 16: 1004 message.summaryMetrics = DashboardTabSummaryMetrics.internalBinaryRead(reader, reader.uint32(), options, message.summaryMetrics); 1005 break; 1006 default: 1007 let u = options.readUnknownField; 1008 if (u === "throw") 1009 throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 1010 let d = reader.skip(wireType); 1011 if (u !== false) 1012 (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 1013 } 1014 } 1015 return message; 1016 } 1017 internalBinaryWrite(message: DashboardTabSummary, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 1018 /* string dashboard_name = 1; */ 1019 if (message.dashboardName !== "") 1020 writer.tag(1, WireType.LengthDelimited).string(message.dashboardName); 1021 /* string dashboard_tab_name = 2; */ 1022 if (message.dashboardTabName !== "") 1023 writer.tag(2, WireType.LengthDelimited).string(message.dashboardTabName); 1024 /* string alert = 3; */ 1025 if (message.alert !== "") 1026 writer.tag(3, WireType.LengthDelimited).string(message.alert); 1027 /* repeated testgrid.summary.FailingTestSummary failing_test_summaries = 4; */ 1028 for (let i = 0; i < message.failingTestSummaries.length; i++) 1029 FailingTestSummary.internalBinaryWrite(message.failingTestSummaries[i], writer.tag(4, WireType.LengthDelimited).fork(), options).join(); 1030 /* double last_update_timestamp = 5; */ 1031 if (message.lastUpdateTimestamp !== 0) 1032 writer.tag(5, WireType.Bit64).double(message.lastUpdateTimestamp); 1033 /* string status = 6; */ 1034 if (message.status !== "") 1035 writer.tag(6, WireType.LengthDelimited).string(message.status); 1036 /* testgrid.summary.DashboardTabSummary.TabStatus overall_status = 7; */ 1037 if (message.overallStatus !== 0) 1038 writer.tag(7, WireType.Varint).int32(message.overallStatus); 1039 /* string latest_green = 8; */ 1040 if (message.latestGreen !== "") 1041 writer.tag(8, WireType.LengthDelimited).string(message.latestGreen); 1042 /* double last_run_timestamp = 9; */ 1043 if (message.lastRunTimestamp !== 0) 1044 writer.tag(9, WireType.Bit64).double(message.lastRunTimestamp); 1045 /* string bug_url = 10; */ 1046 if (message.bugUrl !== "") 1047 writer.tag(10, WireType.LengthDelimited).string(message.bugUrl); 1048 /* testgrid.summary.HealthinessInfo healthiness = 12; */ 1049 if (message.healthiness) 1050 HealthinessInfo.internalBinaryWrite(message.healthiness, writer.tag(12, WireType.LengthDelimited).fork(), options).join(); 1051 /* repeated string linked_issues = 13; */ 1052 for (let i = 0; i < message.linkedIssues.length; i++) 1053 writer.tag(13, WireType.LengthDelimited).string(message.linkedIssues[i]); 1054 /* testgrid.summary.AlertingData alerting_data = 14; */ 1055 if (message.alertingData) 1056 AlertingData.internalBinaryWrite(message.alertingData, writer.tag(14, WireType.LengthDelimited).fork(), options).join(); 1057 /* bool acceptably_flaky = 15 [deprecated = true]; */ 1058 if (message.acceptablyFlaky !== false) 1059 writer.tag(15, WireType.Varint).bool(message.acceptablyFlaky); 1060 /* testgrid.summary.DashboardTabSummaryMetrics summary_metrics = 16; */ 1061 if (message.summaryMetrics) 1062 DashboardTabSummaryMetrics.internalBinaryWrite(message.summaryMetrics, writer.tag(16, WireType.LengthDelimited).fork(), options).join(); 1063 let u = options.writeUnknownFields; 1064 if (u !== false) 1065 (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 1066 return writer; 1067 } 1068 } 1069 /** 1070 * @generated MessageType for protobuf message testgrid.summary.DashboardTabSummary 1071 */ 1072 export const DashboardTabSummary = new DashboardTabSummary$Type(); 1073 // @generated message type with reflection information, may provide speed optimized methods 1074 class DashboardTabSummaryMetrics$Type extends MessageType<DashboardTabSummaryMetrics> { 1075 constructor() { 1076 super("testgrid.summary.DashboardTabSummaryMetrics", [ 1077 { no: 1, name: "completed_columns", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, 1078 { no: 2, name: "passing_columns", kind: "scalar", T: 5 /*ScalarType.INT32*/ }, 1079 { no: 3, name: "ignored_columns", kind: "scalar", T: 5 /*ScalarType.INT32*/ } 1080 ]); 1081 } 1082 create(value?: PartialMessage<DashboardTabSummaryMetrics>): DashboardTabSummaryMetrics { 1083 const message = { completedColumns: 0, passingColumns: 0, ignoredColumns: 0 }; 1084 globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); 1085 if (value !== undefined) 1086 reflectionMergePartial<DashboardTabSummaryMetrics>(this, message, value); 1087 return message; 1088 } 1089 internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DashboardTabSummaryMetrics): DashboardTabSummaryMetrics { 1090 let message = target ?? this.create(), end = reader.pos + length; 1091 while (reader.pos < end) { 1092 let [fieldNo, wireType] = reader.tag(); 1093 switch (fieldNo) { 1094 case /* int32 completed_columns */ 1: 1095 message.completedColumns = reader.int32(); 1096 break; 1097 case /* int32 passing_columns */ 2: 1098 message.passingColumns = reader.int32(); 1099 break; 1100 case /* int32 ignored_columns */ 3: 1101 message.ignoredColumns = reader.int32(); 1102 break; 1103 default: 1104 let u = options.readUnknownField; 1105 if (u === "throw") 1106 throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 1107 let d = reader.skip(wireType); 1108 if (u !== false) 1109 (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 1110 } 1111 } 1112 return message; 1113 } 1114 internalBinaryWrite(message: DashboardTabSummaryMetrics, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 1115 /* int32 completed_columns = 1; */ 1116 if (message.completedColumns !== 0) 1117 writer.tag(1, WireType.Varint).int32(message.completedColumns); 1118 /* int32 passing_columns = 2; */ 1119 if (message.passingColumns !== 0) 1120 writer.tag(2, WireType.Varint).int32(message.passingColumns); 1121 /* int32 ignored_columns = 3; */ 1122 if (message.ignoredColumns !== 0) 1123 writer.tag(3, WireType.Varint).int32(message.ignoredColumns); 1124 let u = options.writeUnknownFields; 1125 if (u !== false) 1126 (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 1127 return writer; 1128 } 1129 } 1130 /** 1131 * @generated MessageType for protobuf message testgrid.summary.DashboardTabSummaryMetrics 1132 */ 1133 export const DashboardTabSummaryMetrics = new DashboardTabSummaryMetrics$Type(); 1134 // @generated message type with reflection information, may provide speed optimized methods 1135 class DashboardSummary$Type extends MessageType<DashboardSummary> { 1136 constructor() { 1137 super("testgrid.summary.DashboardSummary", [ 1138 { no: 1, name: "tab_summaries", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => DashboardTabSummary } 1139 ]); 1140 } 1141 create(value?: PartialMessage<DashboardSummary>): DashboardSummary { 1142 const message = { tabSummaries: [] }; 1143 globalThis.Object.defineProperty(message, MESSAGE_TYPE, { enumerable: false, value: this }); 1144 if (value !== undefined) 1145 reflectionMergePartial<DashboardSummary>(this, message, value); 1146 return message; 1147 } 1148 internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: DashboardSummary): DashboardSummary { 1149 let message = target ?? this.create(), end = reader.pos + length; 1150 while (reader.pos < end) { 1151 let [fieldNo, wireType] = reader.tag(); 1152 switch (fieldNo) { 1153 case /* repeated testgrid.summary.DashboardTabSummary tab_summaries */ 1: 1154 message.tabSummaries.push(DashboardTabSummary.internalBinaryRead(reader, reader.uint32(), options)); 1155 break; 1156 default: 1157 let u = options.readUnknownField; 1158 if (u === "throw") 1159 throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); 1160 let d = reader.skip(wireType); 1161 if (u !== false) 1162 (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); 1163 } 1164 } 1165 return message; 1166 } 1167 internalBinaryWrite(message: DashboardSummary, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { 1168 /* repeated testgrid.summary.DashboardTabSummary tab_summaries = 1; */ 1169 for (let i = 0; i < message.tabSummaries.length; i++) 1170 DashboardTabSummary.internalBinaryWrite(message.tabSummaries[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); 1171 let u = options.writeUnknownFields; 1172 if (u !== false) 1173 (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); 1174 return writer; 1175 } 1176 } 1177 /** 1178 * @generated MessageType for protobuf message testgrid.summary.DashboardSummary 1179 */ 1180 export const DashboardSummary = new DashboardSummary$Type();