go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/cv/api/bigquery/v1/attempt.pb.go (about)

     1  // Copyright 2020 The LUCI Authors.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //      http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.32.0
    18  // 	protoc        v3.21.7
    19  // source: go.chromium.org/luci/cv/api/bigquery/v1/attempt.proto
    20  
    21  package bigquery
    22  
    23  import (
    24  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    25  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    26  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    27  	reflect "reflect"
    28  	sync "sync"
    29  )
    30  
    31  const (
    32  	// Verify that this generated code is sufficiently up-to-date.
    33  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    34  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    35  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    36  )
    37  
    38  type Mode int32
    39  
    40  const (
    41  	// Default, never set.
    42  	Mode_MODE_UNSPECIFIED Mode = 0
    43  	// Run all tests but do not submit.
    44  	Mode_DRY_RUN Mode = 1
    45  	// Run all tests and potentially submit.
    46  	Mode_FULL_RUN Mode = 2
    47  )
    48  
    49  // Enum value maps for Mode.
    50  var (
    51  	Mode_name = map[int32]string{
    52  		0: "MODE_UNSPECIFIED",
    53  		1: "DRY_RUN",
    54  		2: "FULL_RUN",
    55  	}
    56  	Mode_value = map[string]int32{
    57  		"MODE_UNSPECIFIED": 0,
    58  		"DRY_RUN":          1,
    59  		"FULL_RUN":         2,
    60  	}
    61  )
    62  
    63  func (x Mode) Enum() *Mode {
    64  	p := new(Mode)
    65  	*p = x
    66  	return p
    67  }
    68  
    69  func (x Mode) String() string {
    70  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    71  }
    72  
    73  func (Mode) Descriptor() protoreflect.EnumDescriptor {
    74  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[0].Descriptor()
    75  }
    76  
    77  func (Mode) Type() protoreflect.EnumType {
    78  	return &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[0]
    79  }
    80  
    81  func (x Mode) Number() protoreflect.EnumNumber {
    82  	return protoreflect.EnumNumber(x)
    83  }
    84  
    85  // Deprecated: Use Mode.Descriptor instead.
    86  func (Mode) EnumDescriptor() ([]byte, []int) {
    87  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescGZIP(), []int{0}
    88  }
    89  
    90  type AttemptStatus int32
    91  
    92  const (
    93  	// Default, never set.
    94  	AttemptStatus_ATTEMPT_STATUS_UNSPECIFIED AttemptStatus = 0
    95  	// Started but not completed. Used by CQ API, TBD.
    96  	AttemptStatus_STARTED AttemptStatus = 1
    97  	// Ready to submit, all checks passed.
    98  	AttemptStatus_SUCCESS AttemptStatus = 2
    99  	// Attempt stopped before completion, due to some external event and not
   100  	// a failure of the CLs to pass all tests. For example, this may happen
   101  	// when a new patchset is uploaded, a CL is deleted, etc.
   102  	AttemptStatus_ABORTED AttemptStatus = 3
   103  	// Completed and failed some check. This may happen when a build failed,
   104  	// footer syntax was incorrect, or CL was not approved.
   105  	AttemptStatus_FAILURE AttemptStatus = 4
   106  	// Failure in CQ itself caused the Attempt to be dropped.
   107  	AttemptStatus_INFRA_FAILURE AttemptStatus = 5
   108  )
   109  
   110  // Enum value maps for AttemptStatus.
   111  var (
   112  	AttemptStatus_name = map[int32]string{
   113  		0: "ATTEMPT_STATUS_UNSPECIFIED",
   114  		1: "STARTED",
   115  		2: "SUCCESS",
   116  		3: "ABORTED",
   117  		4: "FAILURE",
   118  		5: "INFRA_FAILURE",
   119  	}
   120  	AttemptStatus_value = map[string]int32{
   121  		"ATTEMPT_STATUS_UNSPECIFIED": 0,
   122  		"STARTED":                    1,
   123  		"SUCCESS":                    2,
   124  		"ABORTED":                    3,
   125  		"FAILURE":                    4,
   126  		"INFRA_FAILURE":              5,
   127  	}
   128  )
   129  
   130  func (x AttemptStatus) Enum() *AttemptStatus {
   131  	p := new(AttemptStatus)
   132  	*p = x
   133  	return p
   134  }
   135  
   136  func (x AttemptStatus) String() string {
   137  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   138  }
   139  
   140  func (AttemptStatus) Descriptor() protoreflect.EnumDescriptor {
   141  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[1].Descriptor()
   142  }
   143  
   144  func (AttemptStatus) Type() protoreflect.EnumType {
   145  	return &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[1]
   146  }
   147  
   148  func (x AttemptStatus) Number() protoreflect.EnumNumber {
   149  	return protoreflect.EnumNumber(x)
   150  }
   151  
   152  // Deprecated: Use AttemptStatus.Descriptor instead.
   153  func (AttemptStatus) EnumDescriptor() ([]byte, []int) {
   154  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescGZIP(), []int{1}
   155  }
   156  
   157  type AttemptSubstatus int32
   158  
   159  const (
   160  	// Default, never set.
   161  	AttemptSubstatus_ATTEMPT_SUBSTATUS_UNSPECIFIED AttemptSubstatus = 0
   162  	// There is no more detailed status set.
   163  	AttemptSubstatus_NO_SUBSTATUS AttemptSubstatus = 1
   164  	// Failed at least one critical tryjob.
   165  	AttemptSubstatus_FAILED_TRYJOBS AttemptSubstatus = 2
   166  	// Failed an initial quick check of CL and CL description state.
   167  	AttemptSubstatus_FAILED_LINT AttemptSubstatus = 3
   168  	// A CL didn't get sufficient approval for submitting via CQ.
   169  	AttemptSubstatus_UNAPPROVED AttemptSubstatus = 4
   170  	// A CQ triggerer doesn't have permission to trigger CQ.
   171  	AttemptSubstatus_PERMISSION_DENIED AttemptSubstatus = 5
   172  	// There was a problem with a dependency CL, e.g. some dependencies
   173  	// were not submitted or not grouped together in this attempt.
   174  	AttemptSubstatus_UNSATISFIED_DEPENDENCY AttemptSubstatus = 6
   175  	// Aborted because of a manual cancelation.
   176  	AttemptSubstatus_MANUAL_CANCEL AttemptSubstatus = 7
   177  	// A request to buildbucket failed because CQ didn't have permission to
   178  	// trigger builds.
   179  	AttemptSubstatus_BUILDBUCKET_MISCONFIGURATION AttemptSubstatus = 8
   180  )
   181  
   182  // Enum value maps for AttemptSubstatus.
   183  var (
   184  	AttemptSubstatus_name = map[int32]string{
   185  		0: "ATTEMPT_SUBSTATUS_UNSPECIFIED",
   186  		1: "NO_SUBSTATUS",
   187  		2: "FAILED_TRYJOBS",
   188  		3: "FAILED_LINT",
   189  		4: "UNAPPROVED",
   190  		5: "PERMISSION_DENIED",
   191  		6: "UNSATISFIED_DEPENDENCY",
   192  		7: "MANUAL_CANCEL",
   193  		8: "BUILDBUCKET_MISCONFIGURATION",
   194  	}
   195  	AttemptSubstatus_value = map[string]int32{
   196  		"ATTEMPT_SUBSTATUS_UNSPECIFIED": 0,
   197  		"NO_SUBSTATUS":                  1,
   198  		"FAILED_TRYJOBS":                2,
   199  		"FAILED_LINT":                   3,
   200  		"UNAPPROVED":                    4,
   201  		"PERMISSION_DENIED":             5,
   202  		"UNSATISFIED_DEPENDENCY":        6,
   203  		"MANUAL_CANCEL":                 7,
   204  		"BUILDBUCKET_MISCONFIGURATION":  8,
   205  	}
   206  )
   207  
   208  func (x AttemptSubstatus) Enum() *AttemptSubstatus {
   209  	p := new(AttemptSubstatus)
   210  	*p = x
   211  	return p
   212  }
   213  
   214  func (x AttemptSubstatus) String() string {
   215  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   216  }
   217  
   218  func (AttemptSubstatus) Descriptor() protoreflect.EnumDescriptor {
   219  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[2].Descriptor()
   220  }
   221  
   222  func (AttemptSubstatus) Type() protoreflect.EnumType {
   223  	return &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[2]
   224  }
   225  
   226  func (x AttemptSubstatus) Number() protoreflect.EnumNumber {
   227  	return protoreflect.EnumNumber(x)
   228  }
   229  
   230  // Deprecated: Use AttemptSubstatus.Descriptor instead.
   231  func (AttemptSubstatus) EnumDescriptor() ([]byte, []int) {
   232  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescGZIP(), []int{2}
   233  }
   234  
   235  type GerritChange_SubmitStatus int32
   236  
   237  const (
   238  	// Default. Never set.
   239  	GerritChange_SUBMIT_STATUS_UNSPECIFIED GerritChange_SubmitStatus = 0
   240  	// CQ didn't try submitting this CL.
   241  	//
   242  	// Includes a case where CQ tried submitting the CL, but submission failed
   243  	// due to transient error leaving CL as is, and CQ didn't try again.
   244  	GerritChange_PENDING GerritChange_SubmitStatus = 1
   245  	// CQ tried to submit, but got presumably transient errors and couldn't
   246  	// ascertain whether submission was successful.
   247  	//
   248  	// It's possible that change was actually submitted, but CQ didn't receive
   249  	// a confirmation from Gerrit and follow up checks of the change status
   250  	// failed, too.
   251  	GerritChange_UNKNOWN GerritChange_SubmitStatus = 2
   252  	// CQ tried to submit, but Gerrit rejected the submission because this
   253  	// Change can't be submitted.
   254  	// Typically, this is because a rebase conflict needs to be resolved,
   255  	// or rarely because the change needs some kind of approval.
   256  	GerritChange_FAILURE GerritChange_SubmitStatus = 3
   257  	// CQ submitted this change (aka "merged" in Gerrit jargon).
   258  	//
   259  	// Submission of Gerrit CLs in an Attempt is not an atomic operation,
   260  	// so it's possible that only some of the GerritChanges are submitted.
   261  	GerritChange_SUCCESS GerritChange_SubmitStatus = 4
   262  )
   263  
   264  // Enum value maps for GerritChange_SubmitStatus.
   265  var (
   266  	GerritChange_SubmitStatus_name = map[int32]string{
   267  		0: "SUBMIT_STATUS_UNSPECIFIED",
   268  		1: "PENDING",
   269  		2: "UNKNOWN",
   270  		3: "FAILURE",
   271  		4: "SUCCESS",
   272  	}
   273  	GerritChange_SubmitStatus_value = map[string]int32{
   274  		"SUBMIT_STATUS_UNSPECIFIED": 0,
   275  		"PENDING":                   1,
   276  		"UNKNOWN":                   2,
   277  		"FAILURE":                   3,
   278  		"SUCCESS":                   4,
   279  	}
   280  )
   281  
   282  func (x GerritChange_SubmitStatus) Enum() *GerritChange_SubmitStatus {
   283  	p := new(GerritChange_SubmitStatus)
   284  	*p = x
   285  	return p
   286  }
   287  
   288  func (x GerritChange_SubmitStatus) String() string {
   289  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   290  }
   291  
   292  func (GerritChange_SubmitStatus) Descriptor() protoreflect.EnumDescriptor {
   293  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[3].Descriptor()
   294  }
   295  
   296  func (GerritChange_SubmitStatus) Type() protoreflect.EnumType {
   297  	return &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[3]
   298  }
   299  
   300  func (x GerritChange_SubmitStatus) Number() protoreflect.EnumNumber {
   301  	return protoreflect.EnumNumber(x)
   302  }
   303  
   304  // Deprecated: Use GerritChange_SubmitStatus.Descriptor instead.
   305  func (GerritChange_SubmitStatus) EnumDescriptor() ([]byte, []int) {
   306  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescGZIP(), []int{1, 0}
   307  }
   308  
   309  type Build_Origin int32
   310  
   311  const (
   312  	// Default. Never set.
   313  	Build_ORIGIN_UNSPECIFIED Build_Origin = 0
   314  	// Build was triggered as part of this attempt
   315  	// because reuse was disabled for its builder.
   316  	Build_NOT_REUSABLE Build_Origin = 1
   317  	// Build was triggered as part of this attempt,
   318  	// but if there was an already existing build it would have been reused.
   319  	Build_NOT_REUSED Build_Origin = 2
   320  	// Build was reused.
   321  	Build_REUSED Build_Origin = 3
   322  )
   323  
   324  // Enum value maps for Build_Origin.
   325  var (
   326  	Build_Origin_name = map[int32]string{
   327  		0: "ORIGIN_UNSPECIFIED",
   328  		1: "NOT_REUSABLE",
   329  		2: "NOT_REUSED",
   330  		3: "REUSED",
   331  	}
   332  	Build_Origin_value = map[string]int32{
   333  		"ORIGIN_UNSPECIFIED": 0,
   334  		"NOT_REUSABLE":       1,
   335  		"NOT_REUSED":         2,
   336  		"REUSED":             3,
   337  	}
   338  )
   339  
   340  func (x Build_Origin) Enum() *Build_Origin {
   341  	p := new(Build_Origin)
   342  	*p = x
   343  	return p
   344  }
   345  
   346  func (x Build_Origin) String() string {
   347  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   348  }
   349  
   350  func (Build_Origin) Descriptor() protoreflect.EnumDescriptor {
   351  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[4].Descriptor()
   352  }
   353  
   354  func (Build_Origin) Type() protoreflect.EnumType {
   355  	return &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes[4]
   356  }
   357  
   358  func (x Build_Origin) Number() protoreflect.EnumNumber {
   359  	return protoreflect.EnumNumber(x)
   360  }
   361  
   362  // Deprecated: Use Build_Origin.Descriptor instead.
   363  func (Build_Origin) EnumDescriptor() ([]byte, []int) {
   364  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescGZIP(), []int{2, 0}
   365  }
   366  
   367  // Attempt includes the state of one CQ attempt.
   368  //
   369  // An attempt involves doing checks for one or more CLs that could
   370  // potentially be submitted together.
   371  //
   372  // Next ID: 14.
   373  type Attempt struct {
   374  	state         protoimpl.MessageState
   375  	sizeCache     protoimpl.SizeCache
   376  	unknownFields protoimpl.UnknownFields
   377  
   378  	// The opaque key unique to this Attempt.
   379  	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
   380  	// The LUCI project that this Attempt belongs to.
   381  	LuciProject string `protobuf:"bytes,2,opt,name=luci_project,json=luciProject,proto3" json:"luci_project,omitempty"`
   382  	// The name of the config group that this Attempt belongs to.
   383  	ConfigGroup string `protobuf:"bytes,11,opt,name=config_group,json=configGroup,proto3" json:"config_group,omitempty"`
   384  	// An opaque key that is unique for a given set of Gerrit change patchsets.
   385  	// (or, equivalently, buildsets). The same cl_group_key will be used if
   386  	// another Attempt is made for the same set of changes at a different time.
   387  	ClGroupKey string `protobuf:"bytes,3,opt,name=cl_group_key,json=clGroupKey,proto3" json:"cl_group_key,omitempty"`
   388  	// Similar to cl_group_key, except the key will be the same when the
   389  	// earliest_equivalent_patchset values are the same, even if the patchset
   390  	// values are different.
   391  	//
   392  	// For example, when a new "trivial" patchset is uploaded, then the
   393  	// cl_group_key will change but the equivalent_cl_group_key will stay the
   394  	// same.
   395  	EquivalentClGroupKey string `protobuf:"bytes,4,opt,name=equivalent_cl_group_key,json=equivalentClGroupKey,proto3" json:"equivalent_cl_group_key,omitempty"`
   396  	// The time when the Attempt started.
   397  	//
   398  	// Note: this is the trigger time of the last CL triggered (i.e. the time
   399  	// user votes CQ+1 or +2) not the time LUCI CV started the run. Ideally, this
   400  	// should be named `create_time` and `actual_start_time` should be named
   401  	// `start_time`.
   402  	StartTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
   403  	// The time when the Attempt actually started in LUCI CV.
   404  	//
   405  	// In most cases, this should be very close to `start_time` as it only
   406  	// involves the overhead of LUCI CV getting data from Gerrit. However, if the
   407  	// run can not be started immediately due to user running out of quota, then
   408  	// there could be a gap between `actual_start_time` and `start_time`.
   409  	//
   410  	// The `actual_start_time` could be absent if the Attempt is not able to
   411  	// start (e.g. CL footer contains invalid tryjob directives)
   412  	ActualStartTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=actual_start_time,json=actualStartTime,proto3" json:"actual_start_time,omitempty"`
   413  	// The time when the Attempt ended (released by CQ).
   414  	EndTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
   415  	// Gerrit changes, with specific patchsets, in this Attempt.
   416  	// There should be one or more.
   417  	GerritChanges []*GerritChange `protobuf:"bytes,7,rep,name=gerrit_changes,json=gerritChanges,proto3" json:"gerrit_changes,omitempty"`
   418  	// Relevant builds as of this Attempt's end time.
   419  	//
   420  	// While Attempt is processed, CQ may consider more builds than included here.
   421  	//
   422  	// For example, the following builds will be not be included:
   423  	//   - builds triggered before this Attempt started, considered temporarily by
   424  	//     CQ, but then ignored because they ultimately failed such that CQ had to
   425  	//     trigger new builds instead.
   426  	//   - successful builds which were fresh enough at the Attempt start time,
   427  	//     but which were ignored after they became too old for consideration such
   428  	//     that CQ had to trigger new builds instead.
   429  	//   - builds triggered as part of this Attempt, which were later removed from
   430  	//     project CQ config and hence were no longer required by CQ by Attempt
   431  	//     end time.
   432  	Builds []*Build `protobuf:"bytes,8,rep,name=builds,proto3" json:"builds,omitempty"`
   433  	// Final status of the Attempt.
   434  	Status AttemptStatus `protobuf:"varint,9,opt,name=status,proto3,enum=bigquery.AttemptStatus" json:"status,omitempty"`
   435  	// A more fine-grained status the explains more details about the status.
   436  	Substatus AttemptSubstatus `protobuf:"varint,10,opt,name=substatus,proto3,enum=bigquery.AttemptSubstatus" json:"substatus,omitempty"`
   437  	// Whether or not the required builds for this attempt include additional
   438  	// "opted-in" builders by the user via the `Cq-Include-Trybots` footer.
   439  	HasCustomRequirement bool `protobuf:"varint,12,opt,name=has_custom_requirement,json=hasCustomRequirement,proto3" json:"has_custom_requirement,omitempty"`
   440  }
   441  
   442  func (x *Attempt) Reset() {
   443  	*x = Attempt{}
   444  	if protoimpl.UnsafeEnabled {
   445  		mi := &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes[0]
   446  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   447  		ms.StoreMessageInfo(mi)
   448  	}
   449  }
   450  
   451  func (x *Attempt) String() string {
   452  	return protoimpl.X.MessageStringOf(x)
   453  }
   454  
   455  func (*Attempt) ProtoMessage() {}
   456  
   457  func (x *Attempt) ProtoReflect() protoreflect.Message {
   458  	mi := &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes[0]
   459  	if protoimpl.UnsafeEnabled && x != nil {
   460  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   461  		if ms.LoadMessageInfo() == nil {
   462  			ms.StoreMessageInfo(mi)
   463  		}
   464  		return ms
   465  	}
   466  	return mi.MessageOf(x)
   467  }
   468  
   469  // Deprecated: Use Attempt.ProtoReflect.Descriptor instead.
   470  func (*Attempt) Descriptor() ([]byte, []int) {
   471  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescGZIP(), []int{0}
   472  }
   473  
   474  func (x *Attempt) GetKey() string {
   475  	if x != nil {
   476  		return x.Key
   477  	}
   478  	return ""
   479  }
   480  
   481  func (x *Attempt) GetLuciProject() string {
   482  	if x != nil {
   483  		return x.LuciProject
   484  	}
   485  	return ""
   486  }
   487  
   488  func (x *Attempt) GetConfigGroup() string {
   489  	if x != nil {
   490  		return x.ConfigGroup
   491  	}
   492  	return ""
   493  }
   494  
   495  func (x *Attempt) GetClGroupKey() string {
   496  	if x != nil {
   497  		return x.ClGroupKey
   498  	}
   499  	return ""
   500  }
   501  
   502  func (x *Attempt) GetEquivalentClGroupKey() string {
   503  	if x != nil {
   504  		return x.EquivalentClGroupKey
   505  	}
   506  	return ""
   507  }
   508  
   509  func (x *Attempt) GetStartTime() *timestamppb.Timestamp {
   510  	if x != nil {
   511  		return x.StartTime
   512  	}
   513  	return nil
   514  }
   515  
   516  func (x *Attempt) GetActualStartTime() *timestamppb.Timestamp {
   517  	if x != nil {
   518  		return x.ActualStartTime
   519  	}
   520  	return nil
   521  }
   522  
   523  func (x *Attempt) GetEndTime() *timestamppb.Timestamp {
   524  	if x != nil {
   525  		return x.EndTime
   526  	}
   527  	return nil
   528  }
   529  
   530  func (x *Attempt) GetGerritChanges() []*GerritChange {
   531  	if x != nil {
   532  		return x.GerritChanges
   533  	}
   534  	return nil
   535  }
   536  
   537  func (x *Attempt) GetBuilds() []*Build {
   538  	if x != nil {
   539  		return x.Builds
   540  	}
   541  	return nil
   542  }
   543  
   544  func (x *Attempt) GetStatus() AttemptStatus {
   545  	if x != nil {
   546  		return x.Status
   547  	}
   548  	return AttemptStatus_ATTEMPT_STATUS_UNSPECIFIED
   549  }
   550  
   551  func (x *Attempt) GetSubstatus() AttemptSubstatus {
   552  	if x != nil {
   553  		return x.Substatus
   554  	}
   555  	return AttemptSubstatus_ATTEMPT_SUBSTATUS_UNSPECIFIED
   556  }
   557  
   558  func (x *Attempt) GetHasCustomRequirement() bool {
   559  	if x != nil {
   560  		return x.HasCustomRequirement
   561  	}
   562  	return false
   563  }
   564  
   565  // GerritChange represents one revision (patchset) of one Gerrit change
   566  // in an Attempt.
   567  //
   568  // See also: GerritChange in buildbucket/proto/common.proto.
   569  type GerritChange struct {
   570  	state         protoimpl.MessageState
   571  	sizeCache     protoimpl.SizeCache
   572  	unknownFields protoimpl.UnknownFields
   573  
   574  	// Gerrit hostname, e.g. "chromium-review.googlesource.com".
   575  	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
   576  	// Gerrit project, e.g. "chromium/src".
   577  	Project string `protobuf:"bytes,2,opt,name=project,proto3" json:"project,omitempty"`
   578  	// Change number, e.g. 12345.
   579  	Change int64 `protobuf:"varint,3,opt,name=change,proto3" json:"change,omitempty"`
   580  	// Patch set number, e.g. 1.
   581  	Patchset int64 `protobuf:"varint,4,opt,name=patchset,proto3" json:"patchset,omitempty"`
   582  	// The earliest patchset of the CL that is considered equivalent to the
   583  	// patchset above.
   584  	EarliestEquivalentPatchset int64 `protobuf:"varint,5,opt,name=earliest_equivalent_patchset,json=earliestEquivalentPatchset,proto3" json:"earliest_equivalent_patchset,omitempty"`
   585  	// The time that the CQ was triggered for this CL in this Attempt.
   586  	TriggerTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=trigger_time,json=triggerTime,proto3" json:"trigger_time,omitempty"`
   587  	// CQ Mode for this CL, e.g. dry run or full run.
   588  	Mode Mode `protobuf:"varint,7,opt,name=mode,proto3,enum=bigquery.Mode" json:"mode,omitempty"`
   589  	// Whether CQ tried to submit this change and the result of the operation.
   590  	SubmitStatus GerritChange_SubmitStatus `protobuf:"varint,8,opt,name=submit_status,json=submitStatus,proto3,enum=bigquery.GerritChange_SubmitStatus" json:"submit_status,omitempty"`
   591  	// The owner (email address) of the CL.
   592  	//
   593  	// Deprecated: Marked as deprecated in go.chromium.org/luci/cv/api/bigquery/v1/attempt.proto.
   594  	Owner string `protobuf:"bytes,9,opt,name=owner,proto3" json:"owner,omitempty"`
   595  	// Indicates whether the owner of the CL is bot or not.
   596  	//
   597  	// owner is considered as a bot if any of the following conditions are met:
   598  	//   - owner is in Gerrit Service Users group:
   599  	//     https://gerrit-review.googlesource.com/Documentation/access-control.html#service_users
   600  	//   - owner email ends with "gserviceaccount.com"
   601  	//   - owner email ends with "prod.google.com"
   602  	IsOwnerBot bool `protobuf:"varint,10,opt,name=is_owner_bot,json=isOwnerBot,proto3" json:"is_owner_bot,omitempty"`
   603  }
   604  
   605  func (x *GerritChange) Reset() {
   606  	*x = GerritChange{}
   607  	if protoimpl.UnsafeEnabled {
   608  		mi := &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes[1]
   609  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   610  		ms.StoreMessageInfo(mi)
   611  	}
   612  }
   613  
   614  func (x *GerritChange) String() string {
   615  	return protoimpl.X.MessageStringOf(x)
   616  }
   617  
   618  func (*GerritChange) ProtoMessage() {}
   619  
   620  func (x *GerritChange) ProtoReflect() protoreflect.Message {
   621  	mi := &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes[1]
   622  	if protoimpl.UnsafeEnabled && x != nil {
   623  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   624  		if ms.LoadMessageInfo() == nil {
   625  			ms.StoreMessageInfo(mi)
   626  		}
   627  		return ms
   628  	}
   629  	return mi.MessageOf(x)
   630  }
   631  
   632  // Deprecated: Use GerritChange.ProtoReflect.Descriptor instead.
   633  func (*GerritChange) Descriptor() ([]byte, []int) {
   634  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescGZIP(), []int{1}
   635  }
   636  
   637  func (x *GerritChange) GetHost() string {
   638  	if x != nil {
   639  		return x.Host
   640  	}
   641  	return ""
   642  }
   643  
   644  func (x *GerritChange) GetProject() string {
   645  	if x != nil {
   646  		return x.Project
   647  	}
   648  	return ""
   649  }
   650  
   651  func (x *GerritChange) GetChange() int64 {
   652  	if x != nil {
   653  		return x.Change
   654  	}
   655  	return 0
   656  }
   657  
   658  func (x *GerritChange) GetPatchset() int64 {
   659  	if x != nil {
   660  		return x.Patchset
   661  	}
   662  	return 0
   663  }
   664  
   665  func (x *GerritChange) GetEarliestEquivalentPatchset() int64 {
   666  	if x != nil {
   667  		return x.EarliestEquivalentPatchset
   668  	}
   669  	return 0
   670  }
   671  
   672  func (x *GerritChange) GetTriggerTime() *timestamppb.Timestamp {
   673  	if x != nil {
   674  		return x.TriggerTime
   675  	}
   676  	return nil
   677  }
   678  
   679  func (x *GerritChange) GetMode() Mode {
   680  	if x != nil {
   681  		return x.Mode
   682  	}
   683  	return Mode_MODE_UNSPECIFIED
   684  }
   685  
   686  func (x *GerritChange) GetSubmitStatus() GerritChange_SubmitStatus {
   687  	if x != nil {
   688  		return x.SubmitStatus
   689  	}
   690  	return GerritChange_SUBMIT_STATUS_UNSPECIFIED
   691  }
   692  
   693  // Deprecated: Marked as deprecated in go.chromium.org/luci/cv/api/bigquery/v1/attempt.proto.
   694  func (x *GerritChange) GetOwner() string {
   695  	if x != nil {
   696  		return x.Owner
   697  	}
   698  	return ""
   699  }
   700  
   701  func (x *GerritChange) GetIsOwnerBot() bool {
   702  	if x != nil {
   703  		return x.IsOwnerBot
   704  	}
   705  	return false
   706  }
   707  
   708  // Build represents one tryjob Buildbucket build.
   709  //
   710  // See also: Build in buildbucket/proto/build.proto.
   711  type Build struct {
   712  	state         protoimpl.MessageState
   713  	sizeCache     protoimpl.SizeCache
   714  	unknownFields protoimpl.UnknownFields
   715  
   716  	// Buildbucket build ID, unique per Buildbucket instance.
   717  	Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
   718  	// Buildbucket host, e.g. "cr-buildbucket.appspot.com".
   719  	Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"`
   720  	// Information about whether this build was triggered previously and reused,
   721  	// or triggered because there was no reusable build, or because builds by
   722  	// this builder are all not reusable.
   723  	Origin Build_Origin `protobuf:"varint,3,opt,name=origin,proto3,enum=bigquery.Build_Origin" json:"origin,omitempty"`
   724  	// Whether the CQ must wait for this build to pass in order for the CLs to be
   725  	// considered ready to submit. True means this builder must pass, false means
   726  	// this builder is "optional", and so this build should not be used to assess
   727  	// the correctness of the CLs in the Attempt. For example, builds added
   728  	// because of the Cq-Include-Trybots footer are still critical; experimental
   729  	// builders are not.
   730  	//
   731  	// Tip: join this with the Buildbucket BigQuery table to figure out which
   732  	// builder this build belongs to.
   733  	Critical bool `protobuf:"varint,4,opt,name=critical,proto3" json:"critical,omitempty"`
   734  }
   735  
   736  func (x *Build) Reset() {
   737  	*x = Build{}
   738  	if protoimpl.UnsafeEnabled {
   739  		mi := &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes[2]
   740  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   741  		ms.StoreMessageInfo(mi)
   742  	}
   743  }
   744  
   745  func (x *Build) String() string {
   746  	return protoimpl.X.MessageStringOf(x)
   747  }
   748  
   749  func (*Build) ProtoMessage() {}
   750  
   751  func (x *Build) ProtoReflect() protoreflect.Message {
   752  	mi := &file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes[2]
   753  	if protoimpl.UnsafeEnabled && x != nil {
   754  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   755  		if ms.LoadMessageInfo() == nil {
   756  			ms.StoreMessageInfo(mi)
   757  		}
   758  		return ms
   759  	}
   760  	return mi.MessageOf(x)
   761  }
   762  
   763  // Deprecated: Use Build.ProtoReflect.Descriptor instead.
   764  func (*Build) Descriptor() ([]byte, []int) {
   765  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescGZIP(), []int{2}
   766  }
   767  
   768  func (x *Build) GetId() int64 {
   769  	if x != nil {
   770  		return x.Id
   771  	}
   772  	return 0
   773  }
   774  
   775  func (x *Build) GetHost() string {
   776  	if x != nil {
   777  		return x.Host
   778  	}
   779  	return ""
   780  }
   781  
   782  func (x *Build) GetOrigin() Build_Origin {
   783  	if x != nil {
   784  		return x.Origin
   785  	}
   786  	return Build_ORIGIN_UNSPECIFIED
   787  }
   788  
   789  func (x *Build) GetCritical() bool {
   790  	if x != nil {
   791  		return x.Critical
   792  	}
   793  	return false
   794  }
   795  
   796  var File_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto protoreflect.FileDescriptor
   797  
   798  var file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDesc = []byte{
   799  	0x0a, 0x35, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
   800  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69,
   801  	0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x74, 0x74, 0x65, 0x6d, 0x70,
   802  	0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72,
   803  	0x79, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
   804  	0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
   805  	0x74, 0x6f, 0x22, 0xfd, 0x04, 0x0a, 0x07, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x12, 0x10,
   806  	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
   807  	0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x75, 0x63, 0x69, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
   808  	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x75, 0x63, 0x69, 0x50, 0x72, 0x6f, 0x6a,
   809  	0x65, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x67, 0x72,
   810  	0x6f, 0x75, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69,
   811  	0x67, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x20, 0x0a, 0x0c, 0x63, 0x6c, 0x5f, 0x67, 0x72, 0x6f,
   812  	0x75, 0x70, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c,
   813  	0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x71, 0x75, 0x69,
   814  	0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f,
   815  	0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x65, 0x71, 0x75, 0x69, 0x76,
   816  	0x61, 0x6c, 0x65, 0x6e, 0x74, 0x43, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4b, 0x65, 0x79, 0x12,
   817  	0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
   818  	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
   819  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
   820  	0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x61, 0x63,
   821  	0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
   822  	0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
   823  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
   824  	0x70, 0x52, 0x0f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
   825  	0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06,
   826  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
   827  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
   828  	0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x67, 0x65, 0x72,
   829  	0x72, 0x69, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
   830  	0x0b, 0x32, 0x16, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x47, 0x65, 0x72,
   831  	0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x67, 0x65, 0x72, 0x72, 0x69,
   832  	0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x06, 0x62, 0x75, 0x69, 0x6c,
   833  	0x64, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75,
   834  	0x65, 0x72, 0x79, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, 0x62, 0x75, 0x69, 0x6c, 0x64,
   835  	0x73, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28,
   836  	0x0e, 0x32, 0x17, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x41, 0x74, 0x74,
   837  	0x65, 0x6d, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
   838  	0x75, 0x73, 0x12, 0x38, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
   839  	0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79,
   840  	0x2e, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x53, 0x75, 0x62, 0x73, 0x74, 0x61, 0x74, 0x75,
   841  	0x73, 0x52, 0x09, 0x73, 0x75, 0x62, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x16,
   842  	0x68, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69,
   843  	0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x68, 0x61,
   844  	0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65,
   845  	0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61,
   846  	0x6e, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
   847  	0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65,
   848  	0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
   849  	0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
   850  	0x03, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x74,
   851  	0x63, 0x68, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x61, 0x74,
   852  	0x63, 0x68, 0x73, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x1c, 0x65, 0x61, 0x72, 0x6c, 0x69, 0x65, 0x73,
   853  	0x74, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x74,
   854  	0x63, 0x68, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1a, 0x65, 0x61, 0x72,
   855  	0x6c, 0x69, 0x65, 0x73, 0x74, 0x45, 0x71, 0x75, 0x69, 0x76, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x50,
   856  	0x61, 0x74, 0x63, 0x68, 0x73, 0x65, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x74, 0x72, 0x69, 0x67, 0x67,
   857  	0x65, 0x72, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
   858  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
   859  	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x74, 0x72, 0x69, 0x67, 0x67,
   860  	0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07,
   861  	0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e,
   862  	0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x48, 0x0a, 0x0d, 0x73, 0x75,
   863  	0x62, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28,
   864  	0x0e, 0x32, 0x23, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x47, 0x65, 0x72,
   865  	0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74,
   866  	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74,
   867  	0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20,
   868  	0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x20,
   869  	0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x0a,
   870  	0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x42, 0x6f, 0x74,
   871  	0x22, 0x61, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
   872  	0x12, 0x1d, 0x0a, 0x19, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55,
   873  	0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
   874  	0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
   875  	0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49,
   876  	0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53,
   877  	0x53, 0x10, 0x04, 0x22, 0xc7, 0x01, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x0e, 0x0a,
   878  	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a,
   879  	0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73,
   880  	0x74, 0x12, 0x2e, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28,
   881  	0x0e, 0x32, 0x16, 0x2e, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x42, 0x75, 0x69,
   882  	0x6c, 0x64, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69,
   883  	0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x04, 0x20,
   884  	0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x22, 0x4e, 0x0a,
   885  	0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x52, 0x49, 0x47, 0x49,
   886  	0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
   887  	0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x55, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10,
   888  	0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x55, 0x53, 0x45, 0x44, 0x10,
   889  	0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x55, 0x53, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x3d, 0x0a,
   890  	0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e,
   891  	0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x44,
   892  	0x52, 0x59, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x55, 0x4c, 0x4c,
   893  	0x5f, 0x52, 0x55, 0x4e, 0x10, 0x02, 0x22, 0x04, 0x08, 0x03, 0x10, 0x03, 0x2a, 0x76, 0x0a, 0x0d,
   894  	0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a,
   895  	0x1a, 0x41, 0x54, 0x54, 0x45, 0x4d, 0x50, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
   896  	0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a,
   897  	0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55,
   898  	0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x42, 0x4f, 0x52, 0x54,
   899  	0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10,
   900  	0x04, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55,
   901  	0x52, 0x45, 0x10, 0x05, 0x2a, 0xe4, 0x01, 0x0a, 0x10, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74,
   902  	0x53, 0x75, 0x62, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x54, 0x54,
   903  	0x45, 0x4d, 0x50, 0x54, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55,
   904  	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c,
   905  	0x4e, 0x4f, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x01, 0x12, 0x12,
   906  	0x0a, 0x0e, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x59, 0x4a, 0x4f, 0x42, 0x53,
   907  	0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x4c, 0x49, 0x4e,
   908  	0x54, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x41, 0x50, 0x50, 0x52, 0x4f, 0x56, 0x45,
   909  	0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f,
   910  	0x4e, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e,
   911  	0x53, 0x41, 0x54, 0x49, 0x53, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x44, 0x45, 0x50, 0x45, 0x4e, 0x44,
   912  	0x45, 0x4e, 0x43, 0x59, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x4e, 0x55, 0x41, 0x4c,
   913  	0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x07, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x55, 0x49,
   914  	0x4c, 0x44, 0x42, 0x55, 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x4d, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x46,
   915  	0x49, 0x47, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x08, 0x42, 0x32, 0x5a, 0x30, 0x67,
   916  	0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c,
   917  	0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x62, 0x69, 0x67, 0x71, 0x75,
   918  	0x65, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 0x79, 0x62,
   919  	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   920  }
   921  
   922  var (
   923  	file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescOnce sync.Once
   924  	file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescData = file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDesc
   925  )
   926  
   927  func file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescGZIP() []byte {
   928  	file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescOnce.Do(func() {
   929  		file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescData)
   930  	})
   931  	return file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDescData
   932  }
   933  
   934  var file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
   935  var file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
   936  var file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_goTypes = []interface{}{
   937  	(Mode)(0),                      // 0: bigquery.Mode
   938  	(AttemptStatus)(0),             // 1: bigquery.AttemptStatus
   939  	(AttemptSubstatus)(0),          // 2: bigquery.AttemptSubstatus
   940  	(GerritChange_SubmitStatus)(0), // 3: bigquery.GerritChange.SubmitStatus
   941  	(Build_Origin)(0),              // 4: bigquery.Build.Origin
   942  	(*Attempt)(nil),                // 5: bigquery.Attempt
   943  	(*GerritChange)(nil),           // 6: bigquery.GerritChange
   944  	(*Build)(nil),                  // 7: bigquery.Build
   945  	(*timestamppb.Timestamp)(nil),  // 8: google.protobuf.Timestamp
   946  }
   947  var file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_depIdxs = []int32{
   948  	8,  // 0: bigquery.Attempt.start_time:type_name -> google.protobuf.Timestamp
   949  	8,  // 1: bigquery.Attempt.actual_start_time:type_name -> google.protobuf.Timestamp
   950  	8,  // 2: bigquery.Attempt.end_time:type_name -> google.protobuf.Timestamp
   951  	6,  // 3: bigquery.Attempt.gerrit_changes:type_name -> bigquery.GerritChange
   952  	7,  // 4: bigquery.Attempt.builds:type_name -> bigquery.Build
   953  	1,  // 5: bigquery.Attempt.status:type_name -> bigquery.AttemptStatus
   954  	2,  // 6: bigquery.Attempt.substatus:type_name -> bigquery.AttemptSubstatus
   955  	8,  // 7: bigquery.GerritChange.trigger_time:type_name -> google.protobuf.Timestamp
   956  	0,  // 8: bigquery.GerritChange.mode:type_name -> bigquery.Mode
   957  	3,  // 9: bigquery.GerritChange.submit_status:type_name -> bigquery.GerritChange.SubmitStatus
   958  	4,  // 10: bigquery.Build.origin:type_name -> bigquery.Build.Origin
   959  	11, // [11:11] is the sub-list for method output_type
   960  	11, // [11:11] is the sub-list for method input_type
   961  	11, // [11:11] is the sub-list for extension type_name
   962  	11, // [11:11] is the sub-list for extension extendee
   963  	0,  // [0:11] is the sub-list for field type_name
   964  }
   965  
   966  func init() { file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_init() }
   967  func file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_init() {
   968  	if File_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto != nil {
   969  		return
   970  	}
   971  	if !protoimpl.UnsafeEnabled {
   972  		file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   973  			switch v := v.(*Attempt); i {
   974  			case 0:
   975  				return &v.state
   976  			case 1:
   977  				return &v.sizeCache
   978  			case 2:
   979  				return &v.unknownFields
   980  			default:
   981  				return nil
   982  			}
   983  		}
   984  		file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   985  			switch v := v.(*GerritChange); i {
   986  			case 0:
   987  				return &v.state
   988  			case 1:
   989  				return &v.sizeCache
   990  			case 2:
   991  				return &v.unknownFields
   992  			default:
   993  				return nil
   994  			}
   995  		}
   996  		file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   997  			switch v := v.(*Build); i {
   998  			case 0:
   999  				return &v.state
  1000  			case 1:
  1001  				return &v.sizeCache
  1002  			case 2:
  1003  				return &v.unknownFields
  1004  			default:
  1005  				return nil
  1006  			}
  1007  		}
  1008  	}
  1009  	type x struct{}
  1010  	out := protoimpl.TypeBuilder{
  1011  		File: protoimpl.DescBuilder{
  1012  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1013  			RawDescriptor: file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDesc,
  1014  			NumEnums:      5,
  1015  			NumMessages:   3,
  1016  			NumExtensions: 0,
  1017  			NumServices:   0,
  1018  		},
  1019  		GoTypes:           file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_goTypes,
  1020  		DependencyIndexes: file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_depIdxs,
  1021  		EnumInfos:         file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_enumTypes,
  1022  		MessageInfos:      file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_msgTypes,
  1023  	}.Build()
  1024  	File_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto = out.File
  1025  	file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_rawDesc = nil
  1026  	file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_goTypes = nil
  1027  	file_go_chromium_org_luci_cv_api_bigquery_v1_attempt_proto_depIdxs = nil
  1028  }