go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/analysis/proto/bq/test_variant_branch_row.pb.go (about) 1 // Copyright 2023 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/analysis/proto/bq/test_variant_branch_row.proto 20 21 package bqpb 22 23 import ( 24 v1 "go.chromium.org/luci/analysis/proto/v1" 25 _ "go.chromium.org/luci/common/bq/pb" 26 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 27 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 28 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 29 reflect "reflect" 30 sync "sync" 31 ) 32 33 const ( 34 // Verify that this generated code is sufficiently up-to-date. 35 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 36 // Verify that runtime/protoimpl is sufficiently up-to-date. 37 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 38 ) 39 40 // Represents analysis for a test variant on a source branch at a point in time. 41 type TestVariantBranchRow struct { 42 state protoimpl.MessageState 43 sizeCache protoimpl.SizeCache 44 unknownFields protoimpl.UnknownFields 45 46 // The LUCI Project. E.g. "chromium". 47 Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` 48 // The identity of the test. 49 TestId string `protobuf:"bytes,2,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"` 50 // Hash of the variant, as 16 lowercase hexadecimal characters. 51 // E.g. "96c68dc946ab4068". 52 VariantHash string `protobuf:"bytes,3,opt,name=variant_hash,json=variantHash,proto3" json:"variant_hash,omitempty"` 53 // Hash of the source branch, as 16 lowercase hexadecimal characters. 54 RefHash string `protobuf:"bytes,4,opt,name=ref_hash,json=refHash,proto3" json:"ref_hash,omitempty"` 55 // Describes one specific way of running the test, e.g. a specific bucket, 56 // builder and a test suite. 57 // 58 // This will be encoded as a JSON object like 59 // {"builder":"linux-rel","os":"Ubuntu-18.04",...} 60 // to take advantage of BigQuery's JSON support, so that the query will only 61 // be billed for the variant keys it reads. 62 // 63 // In the protocol buffer, it must be a string as per 64 // https://cloud.google.com/bigquery/docs/write-api#data_type_conversions 65 Variant string `protobuf:"bytes,5,opt,name=variant,proto3" json:"variant,omitempty"` 66 // The branch in source control. 67 Ref *v1.SourceRef `protobuf:"bytes,6,opt,name=ref,proto3" json:"ref,omitempty"` 68 // The test history represented as a set of [start commit position, 69 // end commit position] segments, where segments have statistically 70 // different failure and/or flake rates. The segments are ordered so that 71 // the most recent segment appears first. 72 // If a client is only interested in the current failure/flake rate, they 73 // can just query the first segment. 74 Segments []*Segment `protobuf:"bytes,7,rep,name=segments,proto3" json:"segments,omitempty"` 75 // This field has value = 1 if the test variant has any unexpected 76 // test results in the last 90 days (excluding presubmit runs that do not 77 // results in CL submission). It has value = 0 otherwise. 78 // It is int value instead of bool because we use it as partitioning key 79 // (BigQuery does not support bool as partitioning key). 80 HasRecentUnexpectedResults int64 `protobuf:"varint,8,opt,name=has_recent_unexpected_results,json=hasRecentUnexpectedResults,proto3" json:"has_recent_unexpected_results,omitempty"` 81 // The Spanner commit timestamp that reflects the version of data that was 82 // exported. Rows with later timestamps are strictly newer. 83 // In the test_variant_segments table, only one version of analysis 84 // will be present for a given (project, test_id, variant_hash, ref_hash). 85 Version *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=version,proto3" json:"version,omitempty"` 86 } 87 88 func (x *TestVariantBranchRow) Reset() { 89 *x = TestVariantBranchRow{} 90 if protoimpl.UnsafeEnabled { 91 mi := &file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes[0] 92 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 93 ms.StoreMessageInfo(mi) 94 } 95 } 96 97 func (x *TestVariantBranchRow) String() string { 98 return protoimpl.X.MessageStringOf(x) 99 } 100 101 func (*TestVariantBranchRow) ProtoMessage() {} 102 103 func (x *TestVariantBranchRow) ProtoReflect() protoreflect.Message { 104 mi := &file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes[0] 105 if protoimpl.UnsafeEnabled && x != nil { 106 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 107 if ms.LoadMessageInfo() == nil { 108 ms.StoreMessageInfo(mi) 109 } 110 return ms 111 } 112 return mi.MessageOf(x) 113 } 114 115 // Deprecated: Use TestVariantBranchRow.ProtoReflect.Descriptor instead. 116 func (*TestVariantBranchRow) Descriptor() ([]byte, []int) { 117 return file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescGZIP(), []int{0} 118 } 119 120 func (x *TestVariantBranchRow) GetProject() string { 121 if x != nil { 122 return x.Project 123 } 124 return "" 125 } 126 127 func (x *TestVariantBranchRow) GetTestId() string { 128 if x != nil { 129 return x.TestId 130 } 131 return "" 132 } 133 134 func (x *TestVariantBranchRow) GetVariantHash() string { 135 if x != nil { 136 return x.VariantHash 137 } 138 return "" 139 } 140 141 func (x *TestVariantBranchRow) GetRefHash() string { 142 if x != nil { 143 return x.RefHash 144 } 145 return "" 146 } 147 148 func (x *TestVariantBranchRow) GetVariant() string { 149 if x != nil { 150 return x.Variant 151 } 152 return "" 153 } 154 155 func (x *TestVariantBranchRow) GetRef() *v1.SourceRef { 156 if x != nil { 157 return x.Ref 158 } 159 return nil 160 } 161 162 func (x *TestVariantBranchRow) GetSegments() []*Segment { 163 if x != nil { 164 return x.Segments 165 } 166 return nil 167 } 168 169 func (x *TestVariantBranchRow) GetHasRecentUnexpectedResults() int64 { 170 if x != nil { 171 return x.HasRecentUnexpectedResults 172 } 173 return 0 174 } 175 176 func (x *TestVariantBranchRow) GetVersion() *timestamppb.Timestamp { 177 if x != nil { 178 return x.Version 179 } 180 return nil 181 } 182 183 // Represents a period in history where the test had a consistent failure and 184 // flake rate. Segments are separated by changepoints. Each segment captures 185 // information about the changepoint which started it. 186 type Segment struct { 187 state protoimpl.MessageState 188 sizeCache protoimpl.SizeCache 189 unknownFields protoimpl.UnknownFields 190 191 // If set, means the segment commenced with a changepoint. 192 // If unset, means the segment began with the beginning of recorded 193 // history for the segment. (All recorded history for a test variant branch 194 // is deleted after 90 days of no results, so this means there were 195 // no results for at least 90 days before the segment.) 196 HasStartChangepoint bool `protobuf:"varint,1,opt,name=has_start_changepoint,json=hasStartChangepoint,proto3" json:"has_start_changepoint,omitempty"` 197 // The nominal commit position at which the segment starts (inclusive). 198 // Guaranteed to be strictly greater than the end_position of the 199 // chronologically previous segment (if any). 200 // If this segment has a starting changepoint, this is the nominal position 201 // of the changepoint (when the new test behaviour started). 202 // If this segment does not have a starting changepoint, this is the 203 // simply the first commit position in the known history of the test. 204 StartPosition int64 `protobuf:"varint,2,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` 205 // The lower bound of the starting changepoint position in a 99% two-tailed 206 // confidence interval. Inclusive. 207 // Only set if has_start_changepoint is set. 208 StartPositionLowerBound_99Th int64 `protobuf:"varint,3,opt,name=start_position_lower_bound_99th,json=startPositionLowerBound99th,proto3" json:"start_position_lower_bound_99th,omitempty"` 209 // The upper bound of the starting changepoint position in a 99% two-tailed 210 // confidence interval. Inclusive. 211 // Only set if has_start_changepoint is set. 212 // When has_start_changepoint is set, the following invariant holds: 213 // previous_segment.start_position <= start_position_lower_bound_99th <= start_position <= start_position_upper_bound_99th 214 // where previous_segment refers to the chronologically previous segment. 215 StartPositionUpperBound_99Th int64 `protobuf:"varint,4,opt,name=start_position_upper_bound_99th,json=startPositionUpperBound99th,proto3" json:"start_position_upper_bound_99th,omitempty"` 216 // The earliest hour a test verdict at the indicated start_position 217 // was recorded. Gives an approximate upper bound on the timestamp the 218 // changepoint occurred, for systems which need to filter by date. 219 StartHour *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=start_hour,json=startHour,proto3" json:"start_hour,omitempty"` 220 // The nominal commit position at which the segment ends (inclusive). 221 // This is either the last recorded commit position in the test history 222 // (for this test variant branch), or the position of the last verdict 223 // seen before the next detected changepoint. 224 EndPosition int64 `protobuf:"varint,6,opt,name=end_position,json=endPosition,proto3" json:"end_position,omitempty"` 225 // The earliest hour a test verdict at the indicated end_position 226 // was recorded. Gives an approximate lower bound on the timestamp 227 // the changepoint occurred, for systems which need to filter by date. 228 EndHour *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=end_hour,json=endHour,proto3" json:"end_hour,omitempty"` 229 // Total number of test results/runs/verdicts in the segment. 230 Counts *Segment_Counts `protobuf:"bytes,8,opt,name=counts,proto3" json:"counts,omitempty"` 231 } 232 233 func (x *Segment) Reset() { 234 *x = Segment{} 235 if protoimpl.UnsafeEnabled { 236 mi := &file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes[1] 237 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 238 ms.StoreMessageInfo(mi) 239 } 240 } 241 242 func (x *Segment) String() string { 243 return protoimpl.X.MessageStringOf(x) 244 } 245 246 func (*Segment) ProtoMessage() {} 247 248 func (x *Segment) ProtoReflect() protoreflect.Message { 249 mi := &file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes[1] 250 if protoimpl.UnsafeEnabled && x != nil { 251 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 252 if ms.LoadMessageInfo() == nil { 253 ms.StoreMessageInfo(mi) 254 } 255 return ms 256 } 257 return mi.MessageOf(x) 258 } 259 260 // Deprecated: Use Segment.ProtoReflect.Descriptor instead. 261 func (*Segment) Descriptor() ([]byte, []int) { 262 return file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescGZIP(), []int{1} 263 } 264 265 func (x *Segment) GetHasStartChangepoint() bool { 266 if x != nil { 267 return x.HasStartChangepoint 268 } 269 return false 270 } 271 272 func (x *Segment) GetStartPosition() int64 { 273 if x != nil { 274 return x.StartPosition 275 } 276 return 0 277 } 278 279 func (x *Segment) GetStartPositionLowerBound_99Th() int64 { 280 if x != nil { 281 return x.StartPositionLowerBound_99Th 282 } 283 return 0 284 } 285 286 func (x *Segment) GetStartPositionUpperBound_99Th() int64 { 287 if x != nil { 288 return x.StartPositionUpperBound_99Th 289 } 290 return 0 291 } 292 293 func (x *Segment) GetStartHour() *timestamppb.Timestamp { 294 if x != nil { 295 return x.StartHour 296 } 297 return nil 298 } 299 300 func (x *Segment) GetEndPosition() int64 { 301 if x != nil { 302 return x.EndPosition 303 } 304 return 0 305 } 306 307 func (x *Segment) GetEndHour() *timestamppb.Timestamp { 308 if x != nil { 309 return x.EndHour 310 } 311 return nil 312 } 313 314 func (x *Segment) GetCounts() *Segment_Counts { 315 if x != nil { 316 return x.Counts 317 } 318 return nil 319 } 320 321 // Counts of test results, runs and verdicts over a time period. Includes only 322 // test results for submitted code changes. This is defined as: 323 // (1) where the code under test was already submitted when the test ran 324 // 325 // (e.g. postsubmit builders) 326 // 327 // (2) where the code under test was not submitted at the time the test ran, 328 // 329 // but was submitted immediately after (e.g. because the tests ran as part 330 // of a tryjob, the presubmit run the tryjob was triggered by succeeded, 331 // and submitted code as a result). 332 // Currently, when test results lead to CL submission via recycled CQ runs, 333 // they are not counted. 334 // 335 // Next ID: 18 336 type Segment_Counts struct { 337 state protoimpl.MessageState 338 sizeCache protoimpl.SizeCache 339 unknownFields protoimpl.UnknownFields 340 341 // The number of unexpected non-skipped test results. 342 UnexpectedResults int64 `protobuf:"varint,1,opt,name=unexpected_results,json=unexpectedResults,proto3" json:"unexpected_results,omitempty"` 343 // The total number of non-skipped test results. 344 TotalResults int64 `protobuf:"varint,2,opt,name=total_results,json=totalResults,proto3" json:"total_results,omitempty"` 345 // The number of expected passed test results. 346 ExpectedPassedResults int64 `protobuf:"varint,10,opt,name=expected_passed_results,json=expectedPassedResults,proto3" json:"expected_passed_results,omitempty"` 347 // The number of expected failed test results. 348 ExpectedFailedResults int64 `protobuf:"varint,11,opt,name=expected_failed_results,json=expectedFailedResults,proto3" json:"expected_failed_results,omitempty"` 349 // The number of expected crashed test results. 350 ExpectedCrashedResults int64 `protobuf:"varint,12,opt,name=expected_crashed_results,json=expectedCrashedResults,proto3" json:"expected_crashed_results,omitempty"` 351 // The number of expected aborted test results. 352 ExpectedAbortedResults int64 `protobuf:"varint,13,opt,name=expected_aborted_results,json=expectedAbortedResults,proto3" json:"expected_aborted_results,omitempty"` 353 // The number of unexpected passed test results. 354 UnexpectedPassedResults int64 `protobuf:"varint,14,opt,name=unexpected_passed_results,json=unexpectedPassedResults,proto3" json:"unexpected_passed_results,omitempty"` 355 // The number of unexpected failed test results. 356 UnexpectedFailedResults int64 `protobuf:"varint,15,opt,name=unexpected_failed_results,json=unexpectedFailedResults,proto3" json:"unexpected_failed_results,omitempty"` 357 // The number of unexpected crashed test results. 358 UnexpectedCrashedResults int64 `protobuf:"varint,16,opt,name=unexpected_crashed_results,json=unexpectedCrashedResults,proto3" json:"unexpected_crashed_results,omitempty"` 359 // The number of unexpected aborted test results. 360 UnexpectedAbortedResults int64 `protobuf:"varint,17,opt,name=unexpected_aborted_results,json=unexpectedAbortedResults,proto3" json:"unexpected_aborted_results,omitempty"` 361 // The number of test runs which had an unexpected test result but were 362 // not retried. 363 UnexpectedUnretriedRuns int64 `protobuf:"varint,3,opt,name=unexpected_unretried_runs,json=unexpectedUnretriedRuns,proto3" json:"unexpected_unretried_runs,omitempty"` 364 // The number of test run which had an unexpected test result, were 365 // retried, and still contained only unexpected test results. 366 UnexpectedAfterRetryRuns int64 `protobuf:"varint,4,opt,name=unexpected_after_retry_runs,json=unexpectedAfterRetryRuns,proto3" json:"unexpected_after_retry_runs,omitempty"` 367 // The number of test runs which had an unexpected test result, were 368 // retried, and eventually recorded an expected test result. 369 FlakyRuns int64 `protobuf:"varint,5,opt,name=flaky_runs,json=flakyRuns,proto3" json:"flaky_runs,omitempty"` 370 // The total number of test runs. 371 TotalRuns int64 `protobuf:"varint,6,opt,name=total_runs,json=totalRuns,proto3" json:"total_runs,omitempty"` 372 // The number of verdicts with only unexpected test results. 373 UnexpectedVerdicts int64 `protobuf:"varint,7,opt,name=unexpected_verdicts,json=unexpectedVerdicts,proto3" json:"unexpected_verdicts,omitempty"` 374 // The number of verdicts with a mix of expected and unexpected test results. 375 FlakyVerdicts int64 `protobuf:"varint,8,opt,name=flaky_verdicts,json=flakyVerdicts,proto3" json:"flaky_verdicts,omitempty"` 376 // The total number of verdicts. 377 TotalVerdicts int64 `protobuf:"varint,9,opt,name=total_verdicts,json=totalVerdicts,proto3" json:"total_verdicts,omitempty"` 378 } 379 380 func (x *Segment_Counts) Reset() { 381 *x = Segment_Counts{} 382 if protoimpl.UnsafeEnabled { 383 mi := &file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes[2] 384 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 385 ms.StoreMessageInfo(mi) 386 } 387 } 388 389 func (x *Segment_Counts) String() string { 390 return protoimpl.X.MessageStringOf(x) 391 } 392 393 func (*Segment_Counts) ProtoMessage() {} 394 395 func (x *Segment_Counts) ProtoReflect() protoreflect.Message { 396 mi := &file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes[2] 397 if protoimpl.UnsafeEnabled && x != nil { 398 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 399 if ms.LoadMessageInfo() == nil { 400 ms.StoreMessageInfo(mi) 401 } 402 return ms 403 } 404 return mi.MessageOf(x) 405 } 406 407 // Deprecated: Use Segment_Counts.ProtoReflect.Descriptor instead. 408 func (*Segment_Counts) Descriptor() ([]byte, []int) { 409 return file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescGZIP(), []int{1, 0} 410 } 411 412 func (x *Segment_Counts) GetUnexpectedResults() int64 { 413 if x != nil { 414 return x.UnexpectedResults 415 } 416 return 0 417 } 418 419 func (x *Segment_Counts) GetTotalResults() int64 { 420 if x != nil { 421 return x.TotalResults 422 } 423 return 0 424 } 425 426 func (x *Segment_Counts) GetExpectedPassedResults() int64 { 427 if x != nil { 428 return x.ExpectedPassedResults 429 } 430 return 0 431 } 432 433 func (x *Segment_Counts) GetExpectedFailedResults() int64 { 434 if x != nil { 435 return x.ExpectedFailedResults 436 } 437 return 0 438 } 439 440 func (x *Segment_Counts) GetExpectedCrashedResults() int64 { 441 if x != nil { 442 return x.ExpectedCrashedResults 443 } 444 return 0 445 } 446 447 func (x *Segment_Counts) GetExpectedAbortedResults() int64 { 448 if x != nil { 449 return x.ExpectedAbortedResults 450 } 451 return 0 452 } 453 454 func (x *Segment_Counts) GetUnexpectedPassedResults() int64 { 455 if x != nil { 456 return x.UnexpectedPassedResults 457 } 458 return 0 459 } 460 461 func (x *Segment_Counts) GetUnexpectedFailedResults() int64 { 462 if x != nil { 463 return x.UnexpectedFailedResults 464 } 465 return 0 466 } 467 468 func (x *Segment_Counts) GetUnexpectedCrashedResults() int64 { 469 if x != nil { 470 return x.UnexpectedCrashedResults 471 } 472 return 0 473 } 474 475 func (x *Segment_Counts) GetUnexpectedAbortedResults() int64 { 476 if x != nil { 477 return x.UnexpectedAbortedResults 478 } 479 return 0 480 } 481 482 func (x *Segment_Counts) GetUnexpectedUnretriedRuns() int64 { 483 if x != nil { 484 return x.UnexpectedUnretriedRuns 485 } 486 return 0 487 } 488 489 func (x *Segment_Counts) GetUnexpectedAfterRetryRuns() int64 { 490 if x != nil { 491 return x.UnexpectedAfterRetryRuns 492 } 493 return 0 494 } 495 496 func (x *Segment_Counts) GetFlakyRuns() int64 { 497 if x != nil { 498 return x.FlakyRuns 499 } 500 return 0 501 } 502 503 func (x *Segment_Counts) GetTotalRuns() int64 { 504 if x != nil { 505 return x.TotalRuns 506 } 507 return 0 508 } 509 510 func (x *Segment_Counts) GetUnexpectedVerdicts() int64 { 511 if x != nil { 512 return x.UnexpectedVerdicts 513 } 514 return 0 515 } 516 517 func (x *Segment_Counts) GetFlakyVerdicts() int64 { 518 if x != nil { 519 return x.FlakyVerdicts 520 } 521 return 0 522 } 523 524 func (x *Segment_Counts) GetTotalVerdicts() int64 { 525 if x != nil { 526 return x.TotalVerdicts 527 } 528 return 0 529 } 530 531 var File_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto protoreflect.FileDescriptor 532 533 var file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDesc = []byte{ 534 0x0a, 0x44, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 535 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 536 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x71, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x76, 0x61, 537 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x72, 0x6f, 0x77, 538 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 539 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x62, 0x71, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 540 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 541 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 542 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 543 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 544 0x31, 0x2f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 545 0x2f, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 546 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x62, 0x71, 0x2f, 547 0x70, 0x62, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 548 0x22, 0x8c, 0x03, 0x0a, 0x14, 0x54, 0x65, 0x73, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 549 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x6f, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 550 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 551 0x65, 0x63, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 552 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 553 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 554 0x28, 0x09, 0x52, 0x0b, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x48, 0x61, 0x73, 0x68, 0x12, 555 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 556 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x48, 0x61, 0x73, 0x68, 0x12, 0x24, 0x0a, 0x07, 0x76, 0x61, 557 0x72, 0x69, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xe2, 0xbc, 0x24, 558 0x06, 0x0a, 0x04, 0x4a, 0x53, 0x4f, 0x4e, 0x52, 0x07, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 559 0x12, 0x2d, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 560 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x76, 0x31, 561 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 562 0x35, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 563 0x0b, 0x32, 0x19, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 564 0x73, 0x2e, 0x62, 0x71, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 565 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x65, 566 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 567 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x68, 568 0x61, 0x73, 0x52, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 569 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x07, 0x76, 0x65, 0x72, 570 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 571 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 572 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 573 0xae, 0x0a, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x68, 574 0x61, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x70, 575 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x68, 0x61, 0x73, 0x53, 576 0x74, 0x61, 0x72, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 577 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 578 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 579 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x1f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 580 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x62, 581 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x39, 0x39, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 582 0x1b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 583 0x77, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x39, 0x39, 0x74, 0x68, 0x12, 0x44, 0x0a, 0x1f, 584 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x75, 585 0x70, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x39, 0x39, 0x74, 0x68, 0x18, 586 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x50, 0x6f, 0x73, 0x69, 587 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x70, 0x65, 0x72, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x39, 0x39, 588 0x74, 0x68, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x72, 589 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 590 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 591 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x21, 0x0a, 592 0x0c, 0x65, 0x6e, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 593 0x01, 0x28, 0x03, 0x52, 0x0b, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 594 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x07, 0x20, 0x01, 595 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 596 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 597 0x65, 0x6e, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x6e, 0x74, 598 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x61, 599 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x62, 0x71, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 600 0x6e, 0x74, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x6e, 0x74, 601 0x73, 0x1a, 0xec, 0x06, 0x0a, 0x06, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x12, 602 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 603 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 604 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x74, 605 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 606 0x28, 0x03, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 607 0x12, 0x36, 0x0a, 0x17, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 608 0x73, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 609 0x03, 0x52, 0x15, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x65, 610 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x78, 0x70, 0x65, 611 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 612 0x6c, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x65, 0x78, 0x70, 0x65, 0x63, 613 0x74, 0x65, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 614 0x12, 0x38, 0x0a, 0x18, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x61, 615 0x73, 0x68, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 616 0x28, 0x03, 0x52, 0x16, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x72, 0x61, 0x73, 617 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x65, 0x78, 618 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x72, 619 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x65, 0x78, 620 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 621 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 622 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 623 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 624 0x74, 0x65, 0x64, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 625 0x12, 0x3a, 0x0a, 0x19, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x66, 626 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x0f, 0x20, 627 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x46, 628 0x61, 0x69, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 629 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x61, 0x73, 0x68, 630 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 631 0x52, 0x18, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x43, 0x72, 0x61, 0x73, 632 0x68, 0x65, 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x75, 0x6e, 633 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 634 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 635 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 636 0x64, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x75, 0x6e, 0x65, 0x78, 637 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x64, 638 0x5f, 0x72, 0x75, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x65, 639 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x55, 0x6e, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x64, 640 0x52, 0x75, 0x6e, 0x73, 0x12, 0x3d, 0x0a, 0x1b, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 641 0x65, 0x64, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x72, 642 0x75, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x18, 0x75, 0x6e, 0x65, 0x78, 0x70, 643 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x74, 0x72, 0x79, 0x52, 644 0x75, 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x5f, 0x72, 0x75, 0x6e, 645 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x52, 0x75, 646 0x6e, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x75, 0x6e, 0x73, 647 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x75, 0x6e, 648 0x73, 0x12, 0x2f, 0x0a, 0x13, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 649 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 650 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 651 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x6c, 0x61, 0x6b, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x64, 652 0x69, 0x63, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x66, 0x6c, 0x61, 0x6b, 653 0x79, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 654 0x61, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 655 0x03, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x56, 0x65, 0x72, 0x64, 0x69, 0x63, 0x74, 0x73, 656 0x42, 0x2d, 0x5a, 0x2b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 657 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 658 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x71, 0x3b, 0x62, 0x71, 0x70, 0x62, 0x62, 659 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 660 } 661 662 var ( 663 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescOnce sync.Once 664 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescData = file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDesc 665 ) 666 667 func file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescGZIP() []byte { 668 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescOnce.Do(func() { 669 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescData) 670 }) 671 return file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDescData 672 } 673 674 var file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes = make([]protoimpl.MessageInfo, 3) 675 var file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_goTypes = []interface{}{ 676 (*TestVariantBranchRow)(nil), // 0: luci.analysis.bq.TestVariantBranchRow 677 (*Segment)(nil), // 1: luci.analysis.bq.Segment 678 (*Segment_Counts)(nil), // 2: luci.analysis.bq.Segment.Counts 679 (*v1.SourceRef)(nil), // 3: luci.analysis.v1.SourceRef 680 (*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp 681 } 682 var file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_depIdxs = []int32{ 683 3, // 0: luci.analysis.bq.TestVariantBranchRow.ref:type_name -> luci.analysis.v1.SourceRef 684 1, // 1: luci.analysis.bq.TestVariantBranchRow.segments:type_name -> luci.analysis.bq.Segment 685 4, // 2: luci.analysis.bq.TestVariantBranchRow.version:type_name -> google.protobuf.Timestamp 686 4, // 3: luci.analysis.bq.Segment.start_hour:type_name -> google.protobuf.Timestamp 687 4, // 4: luci.analysis.bq.Segment.end_hour:type_name -> google.protobuf.Timestamp 688 2, // 5: luci.analysis.bq.Segment.counts:type_name -> luci.analysis.bq.Segment.Counts 689 6, // [6:6] is the sub-list for method output_type 690 6, // [6:6] is the sub-list for method input_type 691 6, // [6:6] is the sub-list for extension type_name 692 6, // [6:6] is the sub-list for extension extendee 693 0, // [0:6] is the sub-list for field type_name 694 } 695 696 func init() { file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_init() } 697 func file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_init() { 698 if File_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto != nil { 699 return 700 } 701 if !protoimpl.UnsafeEnabled { 702 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { 703 switch v := v.(*TestVariantBranchRow); i { 704 case 0: 705 return &v.state 706 case 1: 707 return &v.sizeCache 708 case 2: 709 return &v.unknownFields 710 default: 711 return nil 712 } 713 } 714 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { 715 switch v := v.(*Segment); i { 716 case 0: 717 return &v.state 718 case 1: 719 return &v.sizeCache 720 case 2: 721 return &v.unknownFields 722 default: 723 return nil 724 } 725 } 726 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { 727 switch v := v.(*Segment_Counts); i { 728 case 0: 729 return &v.state 730 case 1: 731 return &v.sizeCache 732 case 2: 733 return &v.unknownFields 734 default: 735 return nil 736 } 737 } 738 } 739 type x struct{} 740 out := protoimpl.TypeBuilder{ 741 File: protoimpl.DescBuilder{ 742 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 743 RawDescriptor: file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDesc, 744 NumEnums: 0, 745 NumMessages: 3, 746 NumExtensions: 0, 747 NumServices: 0, 748 }, 749 GoTypes: file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_goTypes, 750 DependencyIndexes: file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_depIdxs, 751 MessageInfos: file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_msgTypes, 752 }.Build() 753 File_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto = out.File 754 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_rawDesc = nil 755 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_goTypes = nil 756 file_go_chromium_org_luci_analysis_proto_bq_test_variant_branch_row_proto_depIdxs = nil 757 }