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

     1  // Copyright 2021 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/cv/api/v0/run.proto
    20  
    21  package cvpb
    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  // Status describes the status of a CV Run.
    39  type Run_Status int32
    40  
    41  const (
    42  	// Unspecified status.
    43  	Run_STATUS_UNSPECIFIED Run_Status = 0
    44  	// Run is pending to start.
    45  	//
    46  	// It is either because Run Manager hasn't processed the StartEvent yet or
    47  	// the Run creator has exhausted all the quota and waiting for new quota to
    48  	// be available.
    49  	Run_PENDING Run_Status = 1
    50  	// Run is running.
    51  	Run_RUNNING Run_Status = 2
    52  	// Run is waiting for submission.
    53  	//
    54  	// Run is in this status if one of the following scenario is true:
    55  	//  1. Tree is closed at the time Run attempts to submit.
    56  	//  2. There is another Run in the same LUCI Project that is currently
    57  	//     submitting.
    58  	//  3. The submission is rate limited according to the submit option in
    59  	//     Project Config.
    60  	//
    61  	// This status is cancellable.
    62  	Run_WAITING_FOR_SUBMISSION Run_Status = 4
    63  	// Run is submitting.
    64  	//
    65  	// A Run can't be cancelled while submitting. A Run may transition from
    66  	// this status to either `WAITING_FOR_SUBMISSION` status or a non-cancelled
    67  	// terminal status.
    68  	Run_SUBMITTING Run_Status = 5
    69  	// ENDED_MASK can be used as a bitmask to check if a Run has ended.
    70  	// This MUST NOT be used as the status of a Run.
    71  	Run_ENDED_MASK Run_Status = 64
    72  	// Run ends successfully.
    73  	Run_SUCCEEDED Run_Status = 65
    74  	// Run ends unsuccessfully.
    75  	Run_FAILED Run_Status = 66
    76  	// Run is cancelled.
    77  	Run_CANCELLED Run_Status = 67
    78  )
    79  
    80  // Enum value maps for Run_Status.
    81  var (
    82  	Run_Status_name = map[int32]string{
    83  		0:  "STATUS_UNSPECIFIED",
    84  		1:  "PENDING",
    85  		2:  "RUNNING",
    86  		4:  "WAITING_FOR_SUBMISSION",
    87  		5:  "SUBMITTING",
    88  		64: "ENDED_MASK",
    89  		65: "SUCCEEDED",
    90  		66: "FAILED",
    91  		67: "CANCELLED",
    92  	}
    93  	Run_Status_value = map[string]int32{
    94  		"STATUS_UNSPECIFIED":     0,
    95  		"PENDING":                1,
    96  		"RUNNING":                2,
    97  		"WAITING_FOR_SUBMISSION": 4,
    98  		"SUBMITTING":             5,
    99  		"ENDED_MASK":             64,
   100  		"SUCCEEDED":              65,
   101  		"FAILED":                 66,
   102  		"CANCELLED":              67,
   103  	}
   104  )
   105  
   106  func (x Run_Status) Enum() *Run_Status {
   107  	p := new(Run_Status)
   108  	*p = x
   109  	return p
   110  }
   111  
   112  func (x Run_Status) String() string {
   113  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   114  }
   115  
   116  func (Run_Status) Descriptor() protoreflect.EnumDescriptor {
   117  	return file_go_chromium_org_luci_cv_api_v0_run_proto_enumTypes[0].Descriptor()
   118  }
   119  
   120  func (Run_Status) Type() protoreflect.EnumType {
   121  	return &file_go_chromium_org_luci_cv_api_v0_run_proto_enumTypes[0]
   122  }
   123  
   124  func (x Run_Status) Number() protoreflect.EnumNumber {
   125  	return protoreflect.EnumNumber(x)
   126  }
   127  
   128  // Deprecated: Use Run_Status.Descriptor instead.
   129  func (Run_Status) EnumDescriptor() ([]byte, []int) {
   130  	return file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescGZIP(), []int{0, 0}
   131  }
   132  
   133  // Run includes the high-level information about a CV Run.
   134  //
   135  // WARNING: this message is EXPERIMENTAL
   136  // - The field definitions can change w/o notice.
   137  // - No backward compatibility guaranteed.
   138  // - Please contact CV maintainers at luci-eng@ before using this message.
   139  type Run struct {
   140  	state         protoimpl.MessageState
   141  	sizeCache     protoimpl.SizeCache
   142  	unknownFields protoimpl.UnknownFields
   143  
   144  	// ID of the Run.
   145  	//
   146  	// The format of an ID is "projects/$luci-project/runs/$id", where
   147  	// - luci-project is the name of the LUCI project the Run belongs to
   148  	// - id is an opaque key unique in the LUCI project.
   149  	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
   150  	// Status of the Run.
   151  	Status Run_Status `protobuf:"varint,2,opt,name=status,proto3,enum=cv.v0.Run_Status" json:"status,omitempty"`
   152  	// eversion is the entity version, which is monotonically increasing.
   153  	Eversion int64 `protobuf:"varint,3,opt,name=eversion,proto3" json:"eversion,omitempty"`
   154  	// Mode dictates the behavior of the Run.
   155  	//
   156  	// The possible values include
   157  	// - FULL_RUN
   158  	// - DRY_RUN
   159  	// - NEW_PATCHSET_RUN
   160  	// - Any additional run mode defined in the config
   161  	//
   162  	// If the mode is FULL_RUN, the Run triggers TryJobs and then submits the CL
   163  	// if they succeeded.
   164  	// If the mode is DRY_RUN, the Run trigger TryJobs w/o submission.
   165  	Mode string `protobuf:"bytes,4,opt,name=mode,proto3" json:"mode,omitempty"`
   166  	// Time when the Run was created.
   167  	//
   168  	// This is the timestamp of the vote, on a Gerrit CL, that triggered the Run.
   169  	CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   170  	// The time when the Run was started.
   171  	StartTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
   172  	// The time when the Run was last updated.
   173  	UpdateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
   174  	// The time when the Run was ended.
   175  	EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
   176  	// Owner of the Run.
   177  	//
   178  	// For a single-CL Run, this is the identity string of the owner of
   179  	// the Gerrit CL (whoever authenticated to Gerrit to upload the first
   180  	// patchset of the CL). Note that Gerrit CL owner may differ from author and
   181  	// committer encoded in the Git commit. Also, depending on Gerrit
   182  	// configuration, later patchsets could be uploaded by different accounts to
   183  	// that of the CL owner.
   184  	//
   185  	// For a multi-CL Run, this is the owner of the Gerrit CL which has the latest
   186  	// triggering timestamp (e.g. latest CQ+2 vote).
   187  	Owner string `protobuf:"bytes,9,opt,name=owner,proto3" json:"owner,omitempty"`
   188  	// Creator of the Run.
   189  	//
   190  	// This is the identity string of the user that triggers the run (i.e. first
   191  	// user who votes CQ+1 or CQ+2). For multi-CL Run, the will be the triggerer
   192  	// of the Gerrit CL which has the latest triggering timestamp (e.g. latest
   193  	// CQ+2 vote).
   194  	CreatedBy string `protobuf:"bytes,13,opt,name=created_by,json=createdBy,proto3" json:"created_by,omitempty"`
   195  	// This is the identity string of the user whose run quota is consumed for the
   196  	// run start.
   197  	BilledTo string `protobuf:"bytes,15,opt,name=billed_to,json=billedTo,proto3" json:"billed_to,omitempty"`
   198  	// The Gerrit changes involved in this Run.
   199  	Cls []*GerritChange `protobuf:"bytes,10,rep,name=cls,proto3" json:"cls,omitempty"`
   200  	// The tryjobs of the Run.
   201  	//
   202  	// Note that this data is a snapshot at the time Run has ended. Therefore,
   203  	// some tryjobs may not have ended yet. If you need fresh data, query the
   204  	// corresponding backend system using the returned ID.
   205  	//
   206  	// It may also contain tryjobs that are no longer required.
   207  	// TODO(yiwzhang): Re-evaluate whether the statement above is true after
   208  	// tryjobs are handled by LUCI CV instead of CQDaemon.
   209  	//
   210  	// Deprecated: Marked as deprecated in go.chromium.org/luci/cv/api/v0/run.proto.
   211  	Tryjobs []*Tryjob `protobuf:"bytes,11,rep,name=tryjobs,proto3" json:"tryjobs,omitempty"`
   212  	// TryjobInvocations record all attempts to invoke a tryjob defined in config.
   213  	//
   214  	// Note that this data is a snapshot at the time run has ended. It's possible
   215  	// that the latest attempt in the TryjobInvocation may not be in terminal
   216  	// status even though the run has ended. For example, the run has failed
   217  	// because tryjob A has failed. However, tryjob B is still in RUNNING status
   218  	// at the time run ends and tryjob B will be returned as RUNNING status
   219  	// in this field. If you need fresh data, query the corresponding backend
   220  	// system (i.e. buildbucket) using the returned ID.
   221  	TryjobInvocations []*TryjobInvocation `protobuf:"bytes,14,rep,name=tryjob_invocations,json=tryjobInvocations,proto3" json:"tryjob_invocations,omitempty"`
   222  	// The state of Run Submission.
   223  	//
   224  	// Unset if Submission hasn't started.
   225  	Submission *Run_Submission `protobuf:"bytes,12,opt,name=submission,proto3" json:"submission,omitempty"`
   226  }
   227  
   228  func (x *Run) Reset() {
   229  	*x = Run{}
   230  	if protoimpl.UnsafeEnabled {
   231  		mi := &file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes[0]
   232  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   233  		ms.StoreMessageInfo(mi)
   234  	}
   235  }
   236  
   237  func (x *Run) String() string {
   238  	return protoimpl.X.MessageStringOf(x)
   239  }
   240  
   241  func (*Run) ProtoMessage() {}
   242  
   243  func (x *Run) ProtoReflect() protoreflect.Message {
   244  	mi := &file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes[0]
   245  	if protoimpl.UnsafeEnabled && x != nil {
   246  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   247  		if ms.LoadMessageInfo() == nil {
   248  			ms.StoreMessageInfo(mi)
   249  		}
   250  		return ms
   251  	}
   252  	return mi.MessageOf(x)
   253  }
   254  
   255  // Deprecated: Use Run.ProtoReflect.Descriptor instead.
   256  func (*Run) Descriptor() ([]byte, []int) {
   257  	return file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescGZIP(), []int{0}
   258  }
   259  
   260  func (x *Run) GetId() string {
   261  	if x != nil {
   262  		return x.Id
   263  	}
   264  	return ""
   265  }
   266  
   267  func (x *Run) GetStatus() Run_Status {
   268  	if x != nil {
   269  		return x.Status
   270  	}
   271  	return Run_STATUS_UNSPECIFIED
   272  }
   273  
   274  func (x *Run) GetEversion() int64 {
   275  	if x != nil {
   276  		return x.Eversion
   277  	}
   278  	return 0
   279  }
   280  
   281  func (x *Run) GetMode() string {
   282  	if x != nil {
   283  		return x.Mode
   284  	}
   285  	return ""
   286  }
   287  
   288  func (x *Run) GetCreateTime() *timestamppb.Timestamp {
   289  	if x != nil {
   290  		return x.CreateTime
   291  	}
   292  	return nil
   293  }
   294  
   295  func (x *Run) GetStartTime() *timestamppb.Timestamp {
   296  	if x != nil {
   297  		return x.StartTime
   298  	}
   299  	return nil
   300  }
   301  
   302  func (x *Run) GetUpdateTime() *timestamppb.Timestamp {
   303  	if x != nil {
   304  		return x.UpdateTime
   305  	}
   306  	return nil
   307  }
   308  
   309  func (x *Run) GetEndTime() *timestamppb.Timestamp {
   310  	if x != nil {
   311  		return x.EndTime
   312  	}
   313  	return nil
   314  }
   315  
   316  func (x *Run) GetOwner() string {
   317  	if x != nil {
   318  		return x.Owner
   319  	}
   320  	return ""
   321  }
   322  
   323  func (x *Run) GetCreatedBy() string {
   324  	if x != nil {
   325  		return x.CreatedBy
   326  	}
   327  	return ""
   328  }
   329  
   330  func (x *Run) GetBilledTo() string {
   331  	if x != nil {
   332  		return x.BilledTo
   333  	}
   334  	return ""
   335  }
   336  
   337  func (x *Run) GetCls() []*GerritChange {
   338  	if x != nil {
   339  		return x.Cls
   340  	}
   341  	return nil
   342  }
   343  
   344  // Deprecated: Marked as deprecated in go.chromium.org/luci/cv/api/v0/run.proto.
   345  func (x *Run) GetTryjobs() []*Tryjob {
   346  	if x != nil {
   347  		return x.Tryjobs
   348  	}
   349  	return nil
   350  }
   351  
   352  func (x *Run) GetTryjobInvocations() []*TryjobInvocation {
   353  	if x != nil {
   354  		return x.TryjobInvocations
   355  	}
   356  	return nil
   357  }
   358  
   359  func (x *Run) GetSubmission() *Run_Submission {
   360  	if x != nil {
   361  		return x.Submission
   362  	}
   363  	return nil
   364  }
   365  
   366  // A Gerrit patchset.
   367  type GerritChange struct {
   368  	state         protoimpl.MessageState
   369  	sizeCache     protoimpl.SizeCache
   370  	unknownFields protoimpl.UnknownFields
   371  
   372  	// Gerrit hostname, e.g. "chromium-review.googlesource.com".
   373  	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
   374  	// Change number, e.g. 12345.
   375  	Change int64 `protobuf:"varint,2,opt,name=change,proto3" json:"change,omitempty"`
   376  	// Patch set number, e.g. 1.
   377  	Patchset int32 `protobuf:"varint,3,opt,name=patchset,proto3" json:"patchset,omitempty"`
   378  }
   379  
   380  func (x *GerritChange) Reset() {
   381  	*x = GerritChange{}
   382  	if protoimpl.UnsafeEnabled {
   383  		mi := &file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes[1]
   384  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   385  		ms.StoreMessageInfo(mi)
   386  	}
   387  }
   388  
   389  func (x *GerritChange) String() string {
   390  	return protoimpl.X.MessageStringOf(x)
   391  }
   392  
   393  func (*GerritChange) ProtoMessage() {}
   394  
   395  func (x *GerritChange) ProtoReflect() protoreflect.Message {
   396  	mi := &file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes[1]
   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 GerritChange.ProtoReflect.Descriptor instead.
   408  func (*GerritChange) Descriptor() ([]byte, []int) {
   409  	return file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescGZIP(), []int{1}
   410  }
   411  
   412  func (x *GerritChange) GetHost() string {
   413  	if x != nil {
   414  		return x.Host
   415  	}
   416  	return ""
   417  }
   418  
   419  func (x *GerritChange) GetChange() int64 {
   420  	if x != nil {
   421  		return x.Change
   422  	}
   423  	return 0
   424  }
   425  
   426  func (x *GerritChange) GetPatchset() int32 {
   427  	if x != nil {
   428  		return x.Patchset
   429  	}
   430  	return 0
   431  }
   432  
   433  // Submission represents the state of a Run Submission.
   434  type Run_Submission struct {
   435  	state         protoimpl.MessageState
   436  	sizeCache     protoimpl.SizeCache
   437  	unknownFields protoimpl.UnknownFields
   438  
   439  	// Indexes of CLs in Run.CL IDs that have been submitted successfully.
   440  	SubmittedClIndexes []int32 `protobuf:"varint,2,rep,packed,name=submitted_cl_indexes,json=submittedClIndexes,proto3" json:"submitted_cl_indexes,omitempty"`
   441  	// Indexes of CLs in Run.CL IDs that failed to be submitted.
   442  	//
   443  	// CLs that are neither in this list nor in the `submitted_cl_indexes`
   444  	// should be treated as if CV has never attempted to submit them.
   445  	FailedClIndexes []int32 `protobuf:"varint,3,rep,packed,name=failed_cl_indexes,json=failedClIndexes,proto3" json:"failed_cl_indexes,omitempty"`
   446  }
   447  
   448  func (x *Run_Submission) Reset() {
   449  	*x = Run_Submission{}
   450  	if protoimpl.UnsafeEnabled {
   451  		mi := &file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes[2]
   452  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   453  		ms.StoreMessageInfo(mi)
   454  	}
   455  }
   456  
   457  func (x *Run_Submission) String() string {
   458  	return protoimpl.X.MessageStringOf(x)
   459  }
   460  
   461  func (*Run_Submission) ProtoMessage() {}
   462  
   463  func (x *Run_Submission) ProtoReflect() protoreflect.Message {
   464  	mi := &file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes[2]
   465  	if protoimpl.UnsafeEnabled && x != nil {
   466  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   467  		if ms.LoadMessageInfo() == nil {
   468  			ms.StoreMessageInfo(mi)
   469  		}
   470  		return ms
   471  	}
   472  	return mi.MessageOf(x)
   473  }
   474  
   475  // Deprecated: Use Run_Submission.ProtoReflect.Descriptor instead.
   476  func (*Run_Submission) Descriptor() ([]byte, []int) {
   477  	return file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescGZIP(), []int{0, 0}
   478  }
   479  
   480  func (x *Run_Submission) GetSubmittedClIndexes() []int32 {
   481  	if x != nil {
   482  		return x.SubmittedClIndexes
   483  	}
   484  	return nil
   485  }
   486  
   487  func (x *Run_Submission) GetFailedClIndexes() []int32 {
   488  	if x != nil {
   489  		return x.FailedClIndexes
   490  	}
   491  	return nil
   492  }
   493  
   494  var File_go_chromium_org_luci_cv_api_v0_run_proto protoreflect.FileDescriptor
   495  
   496  var file_go_chromium_org_luci_cv_api_v0_run_proto_rawDesc = []byte{
   497  	0x0a, 0x28, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
   498  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30,
   499  	0x2f, 0x72, 0x75, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x63, 0x76, 0x2e, 0x76,
   500  	0x30, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
   501  	0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f,
   502  	0x74, 0x6f, 0x1a, 0x2b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e,
   503  	0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f,
   504  	0x76, 0x30, 0x2f, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
   505  	0x90, 0x07, 0x0a, 0x03, 0x52, 0x75, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20,
   506  	0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
   507  	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e,
   508  	0x52, 0x75, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74,
   509  	0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03,
   510  	0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x65, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12,
   511  	0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6d, 0x6f,
   512  	0x64, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d,
   513  	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   514  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
   515  	0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
   516  	0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20,
   517  	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
   518  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
   519  	0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70,
   520  	0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
   521  	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
   522  	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64,
   523  	0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74,
   524  	0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
   525  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
   526  	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14,
   527  	0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f,
   528  	0x77, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f,
   529  	0x62, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
   530  	0x64, 0x42, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x74, 0x6f,
   531  	0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x6c, 0x6c, 0x65, 0x64, 0x54, 0x6f,
   532  	0x12, 0x25, 0x0a, 0x03, 0x63, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
   533  	0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e,
   534  	0x67, 0x65, 0x52, 0x03, 0x63, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x07, 0x74, 0x72, 0x79, 0x6a, 0x6f,
   535  	0x62, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30,
   536  	0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x74, 0x72, 0x79,
   537  	0x6a, 0x6f, 0x62, 0x73, 0x12, 0x46, 0x0a, 0x12, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x5f, 0x69,
   538  	0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b,
   539  	0x32, 0x17, 0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x49,
   540  	0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x74, 0x72, 0x79, 0x6a, 0x6f,
   541  	0x62, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x0a,
   542  	0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,
   543  	0x32, 0x15, 0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e, 0x52, 0x75, 0x6e, 0x2e, 0x53, 0x75, 0x62,
   544  	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73,
   545  	0x69, 0x6f, 0x6e, 0x1a, 0x6a, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
   546  	0x6e, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x5f, 0x63,
   547  	0x6c, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x52,
   548  	0x12, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x43, 0x6c, 0x49, 0x6e, 0x64, 0x65,
   549  	0x78, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x6c,
   550  	0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0f,
   551  	0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x43, 0x6c, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22,
   552  	0xa0, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54,
   553  	0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
   554  	0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12,
   555  	0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16,
   556  	0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x4d,
   557  	0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x42, 0x4d,
   558  	0x49, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x4e, 0x44, 0x45,
   559  	0x44, 0x5f, 0x4d, 0x41, 0x53, 0x4b, 0x10, 0x40, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43,
   560  	0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x41, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45,
   561  	0x44, 0x10, 0x42, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44,
   562  	0x10, 0x43, 0x22, 0x56, 0x0a, 0x0c, 0x47, 0x65, 0x72, 0x72, 0x69, 0x74, 0x43, 0x68, 0x61, 0x6e,
   563  	0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
   564  	0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65,
   565  	0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a,
   566  	0x0a, 0x08, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
   567  	0x52, 0x08, 0x70, 0x61, 0x74, 0x63, 0x68, 0x73, 0x65, 0x74, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x6f,
   568  	0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75,
   569  	0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x3b, 0x63, 0x76, 0x70,
   570  	0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   571  }
   572  
   573  var (
   574  	file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescOnce sync.Once
   575  	file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescData = file_go_chromium_org_luci_cv_api_v0_run_proto_rawDesc
   576  )
   577  
   578  func file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescGZIP() []byte {
   579  	file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescOnce.Do(func() {
   580  		file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescData)
   581  	})
   582  	return file_go_chromium_org_luci_cv_api_v0_run_proto_rawDescData
   583  }
   584  
   585  var file_go_chromium_org_luci_cv_api_v0_run_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
   586  var file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
   587  var file_go_chromium_org_luci_cv_api_v0_run_proto_goTypes = []interface{}{
   588  	(Run_Status)(0),               // 0: cv.v0.Run.Status
   589  	(*Run)(nil),                   // 1: cv.v0.Run
   590  	(*GerritChange)(nil),          // 2: cv.v0.GerritChange
   591  	(*Run_Submission)(nil),        // 3: cv.v0.Run.Submission
   592  	(*timestamppb.Timestamp)(nil), // 4: google.protobuf.Timestamp
   593  	(*Tryjob)(nil),                // 5: cv.v0.Tryjob
   594  	(*TryjobInvocation)(nil),      // 6: cv.v0.TryjobInvocation
   595  }
   596  var file_go_chromium_org_luci_cv_api_v0_run_proto_depIdxs = []int32{
   597  	0, // 0: cv.v0.Run.status:type_name -> cv.v0.Run.Status
   598  	4, // 1: cv.v0.Run.create_time:type_name -> google.protobuf.Timestamp
   599  	4, // 2: cv.v0.Run.start_time:type_name -> google.protobuf.Timestamp
   600  	4, // 3: cv.v0.Run.update_time:type_name -> google.protobuf.Timestamp
   601  	4, // 4: cv.v0.Run.end_time:type_name -> google.protobuf.Timestamp
   602  	2, // 5: cv.v0.Run.cls:type_name -> cv.v0.GerritChange
   603  	5, // 6: cv.v0.Run.tryjobs:type_name -> cv.v0.Tryjob
   604  	6, // 7: cv.v0.Run.tryjob_invocations:type_name -> cv.v0.TryjobInvocation
   605  	3, // 8: cv.v0.Run.submission:type_name -> cv.v0.Run.Submission
   606  	9, // [9:9] is the sub-list for method output_type
   607  	9, // [9:9] is the sub-list for method input_type
   608  	9, // [9:9] is the sub-list for extension type_name
   609  	9, // [9:9] is the sub-list for extension extendee
   610  	0, // [0:9] is the sub-list for field type_name
   611  }
   612  
   613  func init() { file_go_chromium_org_luci_cv_api_v0_run_proto_init() }
   614  func file_go_chromium_org_luci_cv_api_v0_run_proto_init() {
   615  	if File_go_chromium_org_luci_cv_api_v0_run_proto != nil {
   616  		return
   617  	}
   618  	file_go_chromium_org_luci_cv_api_v0_tryjob_proto_init()
   619  	if !protoimpl.UnsafeEnabled {
   620  		file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   621  			switch v := v.(*Run); i {
   622  			case 0:
   623  				return &v.state
   624  			case 1:
   625  				return &v.sizeCache
   626  			case 2:
   627  				return &v.unknownFields
   628  			default:
   629  				return nil
   630  			}
   631  		}
   632  		file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   633  			switch v := v.(*GerritChange); i {
   634  			case 0:
   635  				return &v.state
   636  			case 1:
   637  				return &v.sizeCache
   638  			case 2:
   639  				return &v.unknownFields
   640  			default:
   641  				return nil
   642  			}
   643  		}
   644  		file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   645  			switch v := v.(*Run_Submission); i {
   646  			case 0:
   647  				return &v.state
   648  			case 1:
   649  				return &v.sizeCache
   650  			case 2:
   651  				return &v.unknownFields
   652  			default:
   653  				return nil
   654  			}
   655  		}
   656  	}
   657  	type x struct{}
   658  	out := protoimpl.TypeBuilder{
   659  		File: protoimpl.DescBuilder{
   660  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
   661  			RawDescriptor: file_go_chromium_org_luci_cv_api_v0_run_proto_rawDesc,
   662  			NumEnums:      1,
   663  			NumMessages:   3,
   664  			NumExtensions: 0,
   665  			NumServices:   0,
   666  		},
   667  		GoTypes:           file_go_chromium_org_luci_cv_api_v0_run_proto_goTypes,
   668  		DependencyIndexes: file_go_chromium_org_luci_cv_api_v0_run_proto_depIdxs,
   669  		EnumInfos:         file_go_chromium_org_luci_cv_api_v0_run_proto_enumTypes,
   670  		MessageInfos:      file_go_chromium_org_luci_cv_api_v0_run_proto_msgTypes,
   671  	}.Build()
   672  	File_go_chromium_org_luci_cv_api_v0_run_proto = out.File
   673  	file_go_chromium_org_luci_cv_api_v0_run_proto_rawDesc = nil
   674  	file_go_chromium_org_luci_cv_api_v0_run_proto_goTypes = nil
   675  	file_go_chromium_org_luci_cv_api_v0_run_proto_depIdxs = nil
   676  }