go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/cv/api/v0/tryjob.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/tryjob.proto
    20  
    21  package cvpb
    22  
    23  import (
    24  	proto "go.chromium.org/luci/buildbucket/proto"
    25  	v2 "go.chromium.org/luci/cv/api/config/v2"
    26  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    27  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    28  	reflect "reflect"
    29  	sync "sync"
    30  )
    31  
    32  const (
    33  	// Verify that this generated code is sufficiently up-to-date.
    34  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    35  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    36  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    37  )
    38  
    39  // TryjobStatus is the status of a tryjob.
    40  type TryjobStatus int32
    41  
    42  const (
    43  	// STATUS_UNSPECIFIED is never used.
    44  	TryjobStatus_TRYJOB_STATUS_UNSPECIFIED TryjobStatus = 0
    45  	// PENDING means tryjob is being triggered by CV.
    46  	TryjobStatus_PENDING TryjobStatus = 1
    47  	// RUNNING means tryjob is currently running.
    48  	//
    49  	// This status is from CV's PoV. As soon as LUCI CV successfully launches
    50  	// the tryjob against the backend, it's considered running. However, it's
    51  	// still possible the tryjob is pending the backend system (for example,
    52  	// waiting for the swarming bot).
    53  	TryjobStatus_RUNNING TryjobStatus = 2
    54  	// SUCCEEDED means that run's CL(s) are considered OK by this tryjob.
    55  	TryjobStatus_SUCCEEDED TryjobStatus = 3
    56  	// FAILED means that run's CL(s) are considered NOT OK by this tryjob.
    57  	TryjobStatus_FAILED TryjobStatus = 4
    58  	// CANCELLED means the tryjob gets cancelled by LUCI CV.
    59  	//
    60  	// Note that, this only counts the cancellation initiated by LUCI CV. If
    61  	// user requested cancelling a build through Buildbucket UI for example, the
    62  	// status would be FAILED instead.
    63  	TryjobStatus_CANCELLED TryjobStatus = 5
    64  	// UNTRIGGERED means the tryjob was not triggered.
    65  	//
    66  	// Possible reasons includes getting permission denied from Buildbucket,
    67  	// Buildbucket is temporarily down.
    68  	TryjobStatus_UNTRIGGERED TryjobStatus = 6
    69  )
    70  
    71  // Enum value maps for TryjobStatus.
    72  var (
    73  	TryjobStatus_name = map[int32]string{
    74  		0: "TRYJOB_STATUS_UNSPECIFIED",
    75  		1: "PENDING",
    76  		2: "RUNNING",
    77  		3: "SUCCEEDED",
    78  		4: "FAILED",
    79  		5: "CANCELLED",
    80  		6: "UNTRIGGERED",
    81  	}
    82  	TryjobStatus_value = map[string]int32{
    83  		"TRYJOB_STATUS_UNSPECIFIED": 0,
    84  		"PENDING":                   1,
    85  		"RUNNING":                   2,
    86  		"SUCCEEDED":                 3,
    87  		"FAILED":                    4,
    88  		"CANCELLED":                 5,
    89  		"UNTRIGGERED":               6,
    90  	}
    91  )
    92  
    93  func (x TryjobStatus) Enum() *TryjobStatus {
    94  	p := new(TryjobStatus)
    95  	*p = x
    96  	return p
    97  }
    98  
    99  func (x TryjobStatus) String() string {
   100  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   101  }
   102  
   103  func (TryjobStatus) Descriptor() protoreflect.EnumDescriptor {
   104  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_enumTypes[0].Descriptor()
   105  }
   106  
   107  func (TryjobStatus) Type() protoreflect.EnumType {
   108  	return &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_enumTypes[0]
   109  }
   110  
   111  func (x TryjobStatus) Number() protoreflect.EnumNumber {
   112  	return protoreflect.EnumNumber(x)
   113  }
   114  
   115  // Deprecated: Use TryjobStatus.Descriptor instead.
   116  func (TryjobStatus) EnumDescriptor() ([]byte, []int) {
   117  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{0}
   118  }
   119  
   120  // Status is a high level status of a Tryjob.
   121  type Tryjob_Status int32
   122  
   123  const (
   124  	// STATUS_UNSPECIFIED is never used.
   125  	Tryjob_STATUS_UNSPECIFIED Tryjob_Status = 0
   126  	// PENDING means Tryjob is being triggered by CV.
   127  	//
   128  	// *must* have no Result.
   129  	Tryjob_PENDING Tryjob_Status = 1
   130  	// TRIGGERED means Tryjob was triggered.
   131  	//
   132  	// *may* have been triggered by not CV but another user, service, etc.
   133  	// *may* have a Result, which *may* still change.
   134  	Tryjob_TRIGGERED Tryjob_Status = 2
   135  	// ENDED is a completed Tryjob. Final status.
   136  	//
   137  	// *must* have a Result, whose Status is not UNKNOWN.
   138  	Tryjob_ENDED Tryjob_Status = 3
   139  	// CANCELLED is Tryjob cancelled by CV. Final status.
   140  	//
   141  	// *must* have no Result.
   142  	Tryjob_CANCELLED Tryjob_Status = 4
   143  	// UNTRIGGERED means Tryjob was not triggered. Final status.
   144  	//
   145  	// *must* have no Result.
   146  	Tryjob_UNTRIGGERED Tryjob_Status = 5
   147  )
   148  
   149  // Enum value maps for Tryjob_Status.
   150  var (
   151  	Tryjob_Status_name = map[int32]string{
   152  		0: "STATUS_UNSPECIFIED",
   153  		1: "PENDING",
   154  		2: "TRIGGERED",
   155  		3: "ENDED",
   156  		4: "CANCELLED",
   157  		5: "UNTRIGGERED",
   158  	}
   159  	Tryjob_Status_value = map[string]int32{
   160  		"STATUS_UNSPECIFIED": 0,
   161  		"PENDING":            1,
   162  		"TRIGGERED":          2,
   163  		"ENDED":              3,
   164  		"CANCELLED":          4,
   165  		"UNTRIGGERED":        5,
   166  	}
   167  )
   168  
   169  func (x Tryjob_Status) Enum() *Tryjob_Status {
   170  	p := new(Tryjob_Status)
   171  	*p = x
   172  	return p
   173  }
   174  
   175  func (x Tryjob_Status) String() string {
   176  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   177  }
   178  
   179  func (Tryjob_Status) Descriptor() protoreflect.EnumDescriptor {
   180  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_enumTypes[1].Descriptor()
   181  }
   182  
   183  func (Tryjob_Status) Type() protoreflect.EnumType {
   184  	return &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_enumTypes[1]
   185  }
   186  
   187  func (x Tryjob_Status) Number() protoreflect.EnumNumber {
   188  	return protoreflect.EnumNumber(x)
   189  }
   190  
   191  // Deprecated: Use Tryjob_Status.Descriptor instead.
   192  func (Tryjob_Status) EnumDescriptor() ([]byte, []int) {
   193  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{0, 0}
   194  }
   195  
   196  type Tryjob_Result_Status int32
   197  
   198  const (
   199  	// RESULT_STATUS_UNSPECIFIED is never used.
   200  	Tryjob_Result_RESULT_STATUS_UNSPECIFIED Tryjob_Result_Status = 0
   201  	// UNKNOWN means Tryjob didn't reach a conclusion.
   202  	Tryjob_Result_UNKNOWN Tryjob_Result_Status = 1
   203  	// SUCCEEDED means that Run's CLs are considered OK by this Tryjob.
   204  	Tryjob_Result_SUCCEEDED Tryjob_Result_Status = 2
   205  	// FAILED_PERMANENTLY means that Run's CLs are most likely not good.
   206  	Tryjob_Result_FAILED_PERMANENTLY Tryjob_Result_Status = 3
   207  	// FAILED_TRANSIENTLY means that Run's CLs are most likely not to blame
   208  	// for the failure.
   209  	// TODO(crbug/1227363): consider removing transiency aspect if possible.
   210  	Tryjob_Result_FAILED_TRANSIENTLY Tryjob_Result_Status = 4
   211  	// TIMEOUT means the Tryjob ran over some deadline and did not make a
   212  	// decision about this Run's CLs.
   213  	Tryjob_Result_TIMEOUT Tryjob_Result_Status = 5
   214  )
   215  
   216  // Enum value maps for Tryjob_Result_Status.
   217  var (
   218  	Tryjob_Result_Status_name = map[int32]string{
   219  		0: "RESULT_STATUS_UNSPECIFIED",
   220  		1: "UNKNOWN",
   221  		2: "SUCCEEDED",
   222  		3: "FAILED_PERMANENTLY",
   223  		4: "FAILED_TRANSIENTLY",
   224  		5: "TIMEOUT",
   225  	}
   226  	Tryjob_Result_Status_value = map[string]int32{
   227  		"RESULT_STATUS_UNSPECIFIED": 0,
   228  		"UNKNOWN":                   1,
   229  		"SUCCEEDED":                 2,
   230  		"FAILED_PERMANENTLY":        3,
   231  		"FAILED_TRANSIENTLY":        4,
   232  		"TIMEOUT":                   5,
   233  	}
   234  )
   235  
   236  func (x Tryjob_Result_Status) Enum() *Tryjob_Result_Status {
   237  	p := new(Tryjob_Result_Status)
   238  	*p = x
   239  	return p
   240  }
   241  
   242  func (x Tryjob_Result_Status) String() string {
   243  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   244  }
   245  
   246  func (Tryjob_Result_Status) Descriptor() protoreflect.EnumDescriptor {
   247  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_enumTypes[2].Descriptor()
   248  }
   249  
   250  func (Tryjob_Result_Status) Type() protoreflect.EnumType {
   251  	return &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_enumTypes[2]
   252  }
   253  
   254  func (x Tryjob_Result_Status) Number() protoreflect.EnumNumber {
   255  	return protoreflect.EnumNumber(x)
   256  }
   257  
   258  // Deprecated: Use Tryjob_Result_Status.Descriptor instead.
   259  func (Tryjob_Result_Status) EnumDescriptor() ([]byte, []int) {
   260  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{0, 0, 0}
   261  }
   262  
   263  // Tryjob represents a Run's view of a Tryjob.
   264  type Tryjob struct {
   265  	state         protoimpl.MessageState
   266  	sizeCache     protoimpl.SizeCache
   267  	unknownFields protoimpl.UnknownFields
   268  
   269  	// Status of the Tryjob.
   270  	Status Tryjob_Status `protobuf:"varint,2,opt,name=status,proto3,enum=cv.v0.Tryjob_Status" json:"status,omitempty"`
   271  	// Result of the Tryjob.
   272  	Result *Tryjob_Result `protobuf:"bytes,3,opt,name=result,proto3" json:"result,omitempty"`
   273  	// Indicates whether this Tryjob is considered critical to a Run's final
   274  	// status. If true, failure of this Tryjob will fail the Run immediately.
   275  	// Run is considered SUCCEEDED iff all critical Tryjobs have passed.
   276  	//
   277  	// As of Mar. 2022, a Tryjob is considered critical if it is not experimental
   278  	// or it is triggered directly by `Cq-Include-Trybots` footer.
   279  	Critical bool `protobuf:"varint,4,opt,name=critical,proto3" json:"critical,omitempty"`
   280  	// Indicates whether a Run is reusing this Tryjob rather than triggering
   281  	// its own Tryjob. A Run may reuse Tryjobs triggered by some previous Runs or
   282  	// maually by users as long as CV sees fit.
   283  	Reuse bool `protobuf:"varint,5,opt,name=reuse,proto3" json:"reuse,omitempty"`
   284  }
   285  
   286  func (x *Tryjob) Reset() {
   287  	*x = Tryjob{}
   288  	if protoimpl.UnsafeEnabled {
   289  		mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[0]
   290  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   291  		ms.StoreMessageInfo(mi)
   292  	}
   293  }
   294  
   295  func (x *Tryjob) String() string {
   296  	return protoimpl.X.MessageStringOf(x)
   297  }
   298  
   299  func (*Tryjob) ProtoMessage() {}
   300  
   301  func (x *Tryjob) ProtoReflect() protoreflect.Message {
   302  	mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[0]
   303  	if protoimpl.UnsafeEnabled && x != nil {
   304  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   305  		if ms.LoadMessageInfo() == nil {
   306  			ms.StoreMessageInfo(mi)
   307  		}
   308  		return ms
   309  	}
   310  	return mi.MessageOf(x)
   311  }
   312  
   313  // Deprecated: Use Tryjob.ProtoReflect.Descriptor instead.
   314  func (*Tryjob) Descriptor() ([]byte, []int) {
   315  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{0}
   316  }
   317  
   318  func (x *Tryjob) GetStatus() Tryjob_Status {
   319  	if x != nil {
   320  		return x.Status
   321  	}
   322  	return Tryjob_STATUS_UNSPECIFIED
   323  }
   324  
   325  func (x *Tryjob) GetResult() *Tryjob_Result {
   326  	if x != nil {
   327  		return x.Result
   328  	}
   329  	return nil
   330  }
   331  
   332  func (x *Tryjob) GetCritical() bool {
   333  	if x != nil {
   334  		return x.Critical
   335  	}
   336  	return false
   337  }
   338  
   339  func (x *Tryjob) GetReuse() bool {
   340  	if x != nil {
   341  		return x.Reuse
   342  	}
   343  	return false
   344  }
   345  
   346  // TryjobResult is the result of a tryjob.
   347  type TryjobResult struct {
   348  	state         protoimpl.MessageState
   349  	sizeCache     protoimpl.SizeCache
   350  	unknownFields protoimpl.UnknownFields
   351  
   352  	// Backend houses backend-specific output.
   353  	//
   354  	// Types that are assignable to Backend:
   355  	//
   356  	//	*TryjobResult_Buildbucket_
   357  	Backend isTryjobResult_Backend `protobuf_oneof:"backend"`
   358  }
   359  
   360  func (x *TryjobResult) Reset() {
   361  	*x = TryjobResult{}
   362  	if protoimpl.UnsafeEnabled {
   363  		mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[1]
   364  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   365  		ms.StoreMessageInfo(mi)
   366  	}
   367  }
   368  
   369  func (x *TryjobResult) String() string {
   370  	return protoimpl.X.MessageStringOf(x)
   371  }
   372  
   373  func (*TryjobResult) ProtoMessage() {}
   374  
   375  func (x *TryjobResult) ProtoReflect() protoreflect.Message {
   376  	mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[1]
   377  	if protoimpl.UnsafeEnabled && x != nil {
   378  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   379  		if ms.LoadMessageInfo() == nil {
   380  			ms.StoreMessageInfo(mi)
   381  		}
   382  		return ms
   383  	}
   384  	return mi.MessageOf(x)
   385  }
   386  
   387  // Deprecated: Use TryjobResult.ProtoReflect.Descriptor instead.
   388  func (*TryjobResult) Descriptor() ([]byte, []int) {
   389  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{1}
   390  }
   391  
   392  func (m *TryjobResult) GetBackend() isTryjobResult_Backend {
   393  	if m != nil {
   394  		return m.Backend
   395  	}
   396  	return nil
   397  }
   398  
   399  func (x *TryjobResult) GetBuildbucket() *TryjobResult_Buildbucket {
   400  	if x, ok := x.GetBackend().(*TryjobResult_Buildbucket_); ok {
   401  		return x.Buildbucket
   402  	}
   403  	return nil
   404  }
   405  
   406  type isTryjobResult_Backend interface {
   407  	isTryjobResult_Backend()
   408  }
   409  
   410  type TryjobResult_Buildbucket_ struct {
   411  	Buildbucket *TryjobResult_Buildbucket `protobuf:"bytes,1,opt,name=buildbucket,proto3,oneof"`
   412  }
   413  
   414  func (*TryjobResult_Buildbucket_) isTryjobResult_Backend() {}
   415  
   416  type TryjobInvocation struct {
   417  	state         protoimpl.MessageState
   418  	sizeCache     protoimpl.SizeCache
   419  	unknownFields protoimpl.UnknownFields
   420  
   421  	// Config is the configuration of the tryjob defined in the project config.
   422  	BuilderConfig *v2.Verifiers_Tryjob_Builder `protobuf:"bytes,1,opt,name=builder_config,json=builderConfig,proto3" json:"builder_config,omitempty"`
   423  	// Final status of this tryjob invocation at the time run ends.
   424  	//
   425  	// This should be the status of the latest attempt (i.e. first element in
   426  	// `attempts` field).
   427  	Status TryjobStatus `protobuf:"varint,2,opt,name=status,proto3,enum=cv.v0.TryjobStatus" json:"status,omitempty"`
   428  	// Indicates whether this tryjob invocation is considered critical to a run's
   429  	// final status. If true, failure of this tryjob invocation will fail the run
   430  	// immediately. Run is considered SUCCEEDED iff all critical tryjobs have
   431  	// passed.
   432  	//
   433  	// As of Dec 2023, a tryjob invocation is considered critical if it is not
   434  	// experimental or it is triggered directly by `Cq-Include-Trybots` footer.
   435  	Critical bool `protobuf:"varint,3,opt,name=critical,proto3" json:"critical,omitempty"`
   436  	// Attempts are all attempts for this tryjob invocation.
   437  	//
   438  	// Sorted from the latest attempt made to the earliest attempt made.
   439  	// Must contain at least one element.
   440  	Attempts []*TryjobInvocation_Attempt `protobuf:"bytes,4,rep,name=attempts,proto3" json:"attempts,omitempty"`
   441  }
   442  
   443  func (x *TryjobInvocation) Reset() {
   444  	*x = TryjobInvocation{}
   445  	if protoimpl.UnsafeEnabled {
   446  		mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[2]
   447  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   448  		ms.StoreMessageInfo(mi)
   449  	}
   450  }
   451  
   452  func (x *TryjobInvocation) String() string {
   453  	return protoimpl.X.MessageStringOf(x)
   454  }
   455  
   456  func (*TryjobInvocation) ProtoMessage() {}
   457  
   458  func (x *TryjobInvocation) ProtoReflect() protoreflect.Message {
   459  	mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[2]
   460  	if protoimpl.UnsafeEnabled && x != nil {
   461  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   462  		if ms.LoadMessageInfo() == nil {
   463  			ms.StoreMessageInfo(mi)
   464  		}
   465  		return ms
   466  	}
   467  	return mi.MessageOf(x)
   468  }
   469  
   470  // Deprecated: Use TryjobInvocation.ProtoReflect.Descriptor instead.
   471  func (*TryjobInvocation) Descriptor() ([]byte, []int) {
   472  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{2}
   473  }
   474  
   475  func (x *TryjobInvocation) GetBuilderConfig() *v2.Verifiers_Tryjob_Builder {
   476  	if x != nil {
   477  		return x.BuilderConfig
   478  	}
   479  	return nil
   480  }
   481  
   482  func (x *TryjobInvocation) GetStatus() TryjobStatus {
   483  	if x != nil {
   484  		return x.Status
   485  	}
   486  	return TryjobStatus_TRYJOB_STATUS_UNSPECIFIED
   487  }
   488  
   489  func (x *TryjobInvocation) GetCritical() bool {
   490  	if x != nil {
   491  		return x.Critical
   492  	}
   493  	return false
   494  }
   495  
   496  func (x *TryjobInvocation) GetAttempts() []*TryjobInvocation_Attempt {
   497  	if x != nil {
   498  		return x.Attempts
   499  	}
   500  	return nil
   501  }
   502  
   503  // Result of a Tryjob.
   504  type Tryjob_Result struct {
   505  	state         protoimpl.MessageState
   506  	sizeCache     protoimpl.SizeCache
   507  	unknownFields protoimpl.UnknownFields
   508  
   509  	// Status of the Result.
   510  	//
   511  	// This is the verdict of verification of Run's CLs by this Tryjob.
   512  	Status Tryjob_Result_Status `protobuf:"varint,1,opt,name=status,proto3,enum=cv.v0.Tryjob_Result_Status" json:"status,omitempty"`
   513  	// Backend houses backend-specific output.
   514  	//
   515  	// Types that are assignable to Backend:
   516  	//
   517  	//	*Tryjob_Result_Buildbucket_
   518  	Backend isTryjob_Result_Backend `protobuf_oneof:"backend"`
   519  }
   520  
   521  func (x *Tryjob_Result) Reset() {
   522  	*x = Tryjob_Result{}
   523  	if protoimpl.UnsafeEnabled {
   524  		mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[3]
   525  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   526  		ms.StoreMessageInfo(mi)
   527  	}
   528  }
   529  
   530  func (x *Tryjob_Result) String() string {
   531  	return protoimpl.X.MessageStringOf(x)
   532  }
   533  
   534  func (*Tryjob_Result) ProtoMessage() {}
   535  
   536  func (x *Tryjob_Result) ProtoReflect() protoreflect.Message {
   537  	mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[3]
   538  	if protoimpl.UnsafeEnabled && x != nil {
   539  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   540  		if ms.LoadMessageInfo() == nil {
   541  			ms.StoreMessageInfo(mi)
   542  		}
   543  		return ms
   544  	}
   545  	return mi.MessageOf(x)
   546  }
   547  
   548  // Deprecated: Use Tryjob_Result.ProtoReflect.Descriptor instead.
   549  func (*Tryjob_Result) Descriptor() ([]byte, []int) {
   550  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{0, 0}
   551  }
   552  
   553  func (x *Tryjob_Result) GetStatus() Tryjob_Result_Status {
   554  	if x != nil {
   555  		return x.Status
   556  	}
   557  	return Tryjob_Result_RESULT_STATUS_UNSPECIFIED
   558  }
   559  
   560  func (m *Tryjob_Result) GetBackend() isTryjob_Result_Backend {
   561  	if m != nil {
   562  		return m.Backend
   563  	}
   564  	return nil
   565  }
   566  
   567  func (x *Tryjob_Result) GetBuildbucket() *Tryjob_Result_Buildbucket {
   568  	if x, ok := x.GetBackend().(*Tryjob_Result_Buildbucket_); ok {
   569  		return x.Buildbucket
   570  	}
   571  	return nil
   572  }
   573  
   574  type isTryjob_Result_Backend interface {
   575  	isTryjob_Result_Backend()
   576  }
   577  
   578  type Tryjob_Result_Buildbucket_ struct {
   579  	Buildbucket *Tryjob_Result_Buildbucket `protobuf:"bytes,5,opt,name=buildbucket,proto3,oneof"`
   580  }
   581  
   582  func (*Tryjob_Result_Buildbucket_) isTryjob_Result_Backend() {}
   583  
   584  type Tryjob_Result_Buildbucket struct {
   585  	state         protoimpl.MessageState
   586  	sizeCache     protoimpl.SizeCache
   587  	unknownFields protoimpl.UnknownFields
   588  
   589  	Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
   590  }
   591  
   592  func (x *Tryjob_Result_Buildbucket) Reset() {
   593  	*x = Tryjob_Result_Buildbucket{}
   594  	if protoimpl.UnsafeEnabled {
   595  		mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[4]
   596  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   597  		ms.StoreMessageInfo(mi)
   598  	}
   599  }
   600  
   601  func (x *Tryjob_Result_Buildbucket) String() string {
   602  	return protoimpl.X.MessageStringOf(x)
   603  }
   604  
   605  func (*Tryjob_Result_Buildbucket) ProtoMessage() {}
   606  
   607  func (x *Tryjob_Result_Buildbucket) ProtoReflect() protoreflect.Message {
   608  	mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[4]
   609  	if protoimpl.UnsafeEnabled && x != nil {
   610  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   611  		if ms.LoadMessageInfo() == nil {
   612  			ms.StoreMessageInfo(mi)
   613  		}
   614  		return ms
   615  	}
   616  	return mi.MessageOf(x)
   617  }
   618  
   619  // Deprecated: Use Tryjob_Result_Buildbucket.ProtoReflect.Descriptor instead.
   620  func (*Tryjob_Result_Buildbucket) Descriptor() ([]byte, []int) {
   621  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{0, 0, 0}
   622  }
   623  
   624  func (x *Tryjob_Result_Buildbucket) GetId() int64 {
   625  	if x != nil {
   626  		return x.Id
   627  	}
   628  	return 0
   629  }
   630  
   631  type TryjobResult_Buildbucket struct {
   632  	state         protoimpl.MessageState
   633  	sizeCache     protoimpl.SizeCache
   634  	unknownFields protoimpl.UnknownFields
   635  
   636  	// Buildbucket host.
   637  	Host string `protobuf:"bytes,1,opt,name=host,proto3" json:"host,omitempty"`
   638  	// ID of the build.
   639  	Id int64 `protobuf:"varint,2,opt,name=id,proto3" json:"id,omitempty"`
   640  	// Buildbucket builder.
   641  	Builder *proto.BuilderID `protobuf:"bytes,3,opt,name=builder,proto3" json:"builder,omitempty"`
   642  }
   643  
   644  func (x *TryjobResult_Buildbucket) Reset() {
   645  	*x = TryjobResult_Buildbucket{}
   646  	if protoimpl.UnsafeEnabled {
   647  		mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[5]
   648  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   649  		ms.StoreMessageInfo(mi)
   650  	}
   651  }
   652  
   653  func (x *TryjobResult_Buildbucket) String() string {
   654  	return protoimpl.X.MessageStringOf(x)
   655  }
   656  
   657  func (*TryjobResult_Buildbucket) ProtoMessage() {}
   658  
   659  func (x *TryjobResult_Buildbucket) ProtoReflect() protoreflect.Message {
   660  	mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[5]
   661  	if protoimpl.UnsafeEnabled && x != nil {
   662  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   663  		if ms.LoadMessageInfo() == nil {
   664  			ms.StoreMessageInfo(mi)
   665  		}
   666  		return ms
   667  	}
   668  	return mi.MessageOf(x)
   669  }
   670  
   671  // Deprecated: Use TryjobResult_Buildbucket.ProtoReflect.Descriptor instead.
   672  func (*TryjobResult_Buildbucket) Descriptor() ([]byte, []int) {
   673  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{1, 0}
   674  }
   675  
   676  func (x *TryjobResult_Buildbucket) GetHost() string {
   677  	if x != nil {
   678  		return x.Host
   679  	}
   680  	return ""
   681  }
   682  
   683  func (x *TryjobResult_Buildbucket) GetId() int64 {
   684  	if x != nil {
   685  		return x.Id
   686  	}
   687  	return 0
   688  }
   689  
   690  func (x *TryjobResult_Buildbucket) GetBuilder() *proto.BuilderID {
   691  	if x != nil {
   692  		return x.Builder
   693  	}
   694  	return nil
   695  }
   696  
   697  // Attempt represents an attempt to invoke the tryjob.
   698  type TryjobInvocation_Attempt struct {
   699  	state         protoimpl.MessageState
   700  	sizeCache     protoimpl.SizeCache
   701  	unknownFields protoimpl.UnknownFields
   702  
   703  	// Status is the status of this tryjob attempt at the time the run ends.
   704  	Status TryjobStatus `protobuf:"varint,1,opt,name=status,proto3,enum=cv.v0.TryjobStatus" json:"status,omitempty"`
   705  	// Result is the result of this tryjob attempt at the time the run ends.
   706  	//
   707  	// It's possible that result is empty. For example, the run ends even before
   708  	// LUCI CV launches any tryjob.
   709  	Result *TryjobResult `protobuf:"bytes,2,opt,name=result,proto3" json:"result,omitempty"`
   710  	// Indicates whether this attempt is a reuse of previously triggered tryjob
   711  	// rather than launching its own tryjob.
   712  	Reuse bool `protobuf:"varint,3,opt,name=reuse,proto3" json:"reuse,omitempty"`
   713  }
   714  
   715  func (x *TryjobInvocation_Attempt) Reset() {
   716  	*x = TryjobInvocation_Attempt{}
   717  	if protoimpl.UnsafeEnabled {
   718  		mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[6]
   719  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   720  		ms.StoreMessageInfo(mi)
   721  	}
   722  }
   723  
   724  func (x *TryjobInvocation_Attempt) String() string {
   725  	return protoimpl.X.MessageStringOf(x)
   726  }
   727  
   728  func (*TryjobInvocation_Attempt) ProtoMessage() {}
   729  
   730  func (x *TryjobInvocation_Attempt) ProtoReflect() protoreflect.Message {
   731  	mi := &file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[6]
   732  	if protoimpl.UnsafeEnabled && x != nil {
   733  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   734  		if ms.LoadMessageInfo() == nil {
   735  			ms.StoreMessageInfo(mi)
   736  		}
   737  		return ms
   738  	}
   739  	return mi.MessageOf(x)
   740  }
   741  
   742  // Deprecated: Use TryjobInvocation_Attempt.ProtoReflect.Descriptor instead.
   743  func (*TryjobInvocation_Attempt) Descriptor() ([]byte, []int) {
   744  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP(), []int{2, 0}
   745  }
   746  
   747  func (x *TryjobInvocation_Attempt) GetStatus() TryjobStatus {
   748  	if x != nil {
   749  		return x.Status
   750  	}
   751  	return TryjobStatus_TRYJOB_STATUS_UNSPECIFIED
   752  }
   753  
   754  func (x *TryjobInvocation_Attempt) GetResult() *TryjobResult {
   755  	if x != nil {
   756  		return x.Result
   757  	}
   758  	return nil
   759  }
   760  
   761  func (x *TryjobInvocation_Attempt) GetReuse() bool {
   762  	if x != nil {
   763  		return x.Reuse
   764  	}
   765  	return false
   766  }
   767  
   768  var File_go_chromium_org_luci_cv_api_v0_tryjob_proto protoreflect.FileDescriptor
   769  
   770  var file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDesc = []byte{
   771  	0x0a, 0x2b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
   772  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30,
   773  	0x2f, 0x74, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x63,
   774  	0x76, 0x2e, 0x76, 0x30, 0x1a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75,
   775  	0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64,
   776  	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x62, 0x75, 0x69,
   777  	0x6c, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
   778  	0x6f, 0x1a, 0x32, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f,
   779  	0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63,
   780  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x32, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
   781  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbe, 0x04, 0x0a, 0x06, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62,
   782  	0x12, 0x2c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
   783  	0x32, 0x14, 0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e,
   784  	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c,
   785  	0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14,
   786  	0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x52, 0x65,
   787  	0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08,
   788  	0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
   789  	0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x75, 0x73,
   790  	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x75, 0x73, 0x65, 0x1a, 0xb6,
   791  	0x02, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x73, 0x74, 0x61,
   792  	0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x76, 0x2e, 0x76,
   793  	0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e,
   794  	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x44,
   795  	0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x05, 0x20,
   796  	0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a,
   797  	0x6f, 0x62, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62,
   798  	0x75, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75,
   799  	0x63, 0x6b, 0x65, 0x74, 0x1a, 0x23, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
   800  	0x6b, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52,
   801  	0x02, 0x69, 0x64, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x80, 0x01, 0x0a, 0x06, 0x53, 0x74,
   802  	0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x53, 0x55, 0x4c, 0x54, 0x5f, 0x53,
   803  	0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
   804  	0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01,
   805  	0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12,
   806  	0x16, 0x0a, 0x12, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x41, 0x4e,
   807  	0x45, 0x4e, 0x54, 0x4c, 0x59, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x41, 0x49, 0x4c, 0x45,
   808  	0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x45, 0x4e, 0x54, 0x4c, 0x59, 0x10, 0x04, 0x12,
   809  	0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07,
   810  	0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x22, 0x67, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75,
   811  	0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50,
   812  	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e,
   813  	0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45,
   814  	0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x03,
   815  	0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12,
   816  	0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x54, 0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x45, 0x44, 0x10, 0x05,
   817  	0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xc6, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x79, 0x6a, 0x6f,
   818  	0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x43, 0x0a, 0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64,
   819  	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63,
   820  	0x76, 0x2e, 0x76, 0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c,
   821  	0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x00, 0x52,
   822  	0x0b, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x66, 0x0a, 0x0b,
   823  	0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68,
   824  	0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12,
   825  	0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12,
   826  	0x33, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
   827  	0x32, 0x19, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76,
   828  	0x32, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x62, 0x75, 0x69,
   829  	0x6c, 0x64, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x22,
   830  	0xdf, 0x02, 0x0a, 0x10, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61,
   831  	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f,
   832  	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63,
   833  	0x76, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65,
   834  	0x72, 0x73, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65,
   835  	0x72, 0x52, 0x0d, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
   836  	0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
   837  	0x32, 0x13, 0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x53,
   838  	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a,
   839  	0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52,
   840  	0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x3b, 0x0a, 0x08, 0x61, 0x74, 0x74,
   841  	0x65, 0x6d, 0x70, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x76,
   842  	0x2e, 0x76, 0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x49, 0x6e, 0x76, 0x6f, 0x63, 0x61,
   843  	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x52, 0x08, 0x61, 0x74,
   844  	0x74, 0x65, 0x6d, 0x70, 0x74, 0x73, 0x1a, 0x79, 0x0a, 0x07, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70,
   845  	0x74, 0x12, 0x2b, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28,
   846  	0x0e, 0x32, 0x13, 0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62,
   847  	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b,
   848  	0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
   849  	0x2e, 0x63, 0x76, 0x2e, 0x76, 0x30, 0x2e, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x73,
   850  	0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72,
   851  	0x65, 0x75, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x72, 0x65, 0x75, 0x73,
   852  	0x65, 0x2a, 0x82, 0x01, 0x0a, 0x0c, 0x54, 0x72, 0x79, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74,
   853  	0x75, 0x73, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x52, 0x59, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41,
   854  	0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
   855  	0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b,
   856  	0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53,
   857  	0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41,
   858  	0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c,
   859  	0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x54, 0x52, 0x49, 0x47, 0x47,
   860  	0x45, 0x52, 0x45, 0x44, 0x10, 0x06, 0x42, 0x25, 0x5a, 0x23, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72,
   861  	0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63,
   862  	0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x30, 0x3b, 0x63, 0x76, 0x70, 0x62, 0x62, 0x06, 0x70,
   863  	0x72, 0x6f, 0x74, 0x6f, 0x33,
   864  }
   865  
   866  var (
   867  	file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescOnce sync.Once
   868  	file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescData = file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDesc
   869  )
   870  
   871  func file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescGZIP() []byte {
   872  	file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescOnce.Do(func() {
   873  		file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescData)
   874  	})
   875  	return file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDescData
   876  }
   877  
   878  var file_go_chromium_org_luci_cv_api_v0_tryjob_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
   879  var file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
   880  var file_go_chromium_org_luci_cv_api_v0_tryjob_proto_goTypes = []interface{}{
   881  	(TryjobStatus)(0),                   // 0: cv.v0.TryjobStatus
   882  	(Tryjob_Status)(0),                  // 1: cv.v0.Tryjob.Status
   883  	(Tryjob_Result_Status)(0),           // 2: cv.v0.Tryjob.Result.Status
   884  	(*Tryjob)(nil),                      // 3: cv.v0.Tryjob
   885  	(*TryjobResult)(nil),                // 4: cv.v0.TryjobResult
   886  	(*TryjobInvocation)(nil),            // 5: cv.v0.TryjobInvocation
   887  	(*Tryjob_Result)(nil),               // 6: cv.v0.Tryjob.Result
   888  	(*Tryjob_Result_Buildbucket)(nil),   // 7: cv.v0.Tryjob.Result.Buildbucket
   889  	(*TryjobResult_Buildbucket)(nil),    // 8: cv.v0.TryjobResult.Buildbucket
   890  	(*TryjobInvocation_Attempt)(nil),    // 9: cv.v0.TryjobInvocation.Attempt
   891  	(*v2.Verifiers_Tryjob_Builder)(nil), // 10: cv.config.Verifiers.Tryjob.Builder
   892  	(*proto.BuilderID)(nil),             // 11: buildbucket.v2.BuilderID
   893  }
   894  var file_go_chromium_org_luci_cv_api_v0_tryjob_proto_depIdxs = []int32{
   895  	1,  // 0: cv.v0.Tryjob.status:type_name -> cv.v0.Tryjob.Status
   896  	6,  // 1: cv.v0.Tryjob.result:type_name -> cv.v0.Tryjob.Result
   897  	8,  // 2: cv.v0.TryjobResult.buildbucket:type_name -> cv.v0.TryjobResult.Buildbucket
   898  	10, // 3: cv.v0.TryjobInvocation.builder_config:type_name -> cv.config.Verifiers.Tryjob.Builder
   899  	0,  // 4: cv.v0.TryjobInvocation.status:type_name -> cv.v0.TryjobStatus
   900  	9,  // 5: cv.v0.TryjobInvocation.attempts:type_name -> cv.v0.TryjobInvocation.Attempt
   901  	2,  // 6: cv.v0.Tryjob.Result.status:type_name -> cv.v0.Tryjob.Result.Status
   902  	7,  // 7: cv.v0.Tryjob.Result.buildbucket:type_name -> cv.v0.Tryjob.Result.Buildbucket
   903  	11, // 8: cv.v0.TryjobResult.Buildbucket.builder:type_name -> buildbucket.v2.BuilderID
   904  	0,  // 9: cv.v0.TryjobInvocation.Attempt.status:type_name -> cv.v0.TryjobStatus
   905  	4,  // 10: cv.v0.TryjobInvocation.Attempt.result:type_name -> cv.v0.TryjobResult
   906  	11, // [11:11] is the sub-list for method output_type
   907  	11, // [11:11] is the sub-list for method input_type
   908  	11, // [11:11] is the sub-list for extension type_name
   909  	11, // [11:11] is the sub-list for extension extendee
   910  	0,  // [0:11] is the sub-list for field type_name
   911  }
   912  
   913  func init() { file_go_chromium_org_luci_cv_api_v0_tryjob_proto_init() }
   914  func file_go_chromium_org_luci_cv_api_v0_tryjob_proto_init() {
   915  	if File_go_chromium_org_luci_cv_api_v0_tryjob_proto != nil {
   916  		return
   917  	}
   918  	if !protoimpl.UnsafeEnabled {
   919  		file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   920  			switch v := v.(*Tryjob); i {
   921  			case 0:
   922  				return &v.state
   923  			case 1:
   924  				return &v.sizeCache
   925  			case 2:
   926  				return &v.unknownFields
   927  			default:
   928  				return nil
   929  			}
   930  		}
   931  		file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   932  			switch v := v.(*TryjobResult); i {
   933  			case 0:
   934  				return &v.state
   935  			case 1:
   936  				return &v.sizeCache
   937  			case 2:
   938  				return &v.unknownFields
   939  			default:
   940  				return nil
   941  			}
   942  		}
   943  		file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   944  			switch v := v.(*TryjobInvocation); i {
   945  			case 0:
   946  				return &v.state
   947  			case 1:
   948  				return &v.sizeCache
   949  			case 2:
   950  				return &v.unknownFields
   951  			default:
   952  				return nil
   953  			}
   954  		}
   955  		file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
   956  			switch v := v.(*Tryjob_Result); i {
   957  			case 0:
   958  				return &v.state
   959  			case 1:
   960  				return &v.sizeCache
   961  			case 2:
   962  				return &v.unknownFields
   963  			default:
   964  				return nil
   965  			}
   966  		}
   967  		file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
   968  			switch v := v.(*Tryjob_Result_Buildbucket); i {
   969  			case 0:
   970  				return &v.state
   971  			case 1:
   972  				return &v.sizeCache
   973  			case 2:
   974  				return &v.unknownFields
   975  			default:
   976  				return nil
   977  			}
   978  		}
   979  		file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
   980  			switch v := v.(*TryjobResult_Buildbucket); i {
   981  			case 0:
   982  				return &v.state
   983  			case 1:
   984  				return &v.sizeCache
   985  			case 2:
   986  				return &v.unknownFields
   987  			default:
   988  				return nil
   989  			}
   990  		}
   991  		file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
   992  			switch v := v.(*TryjobInvocation_Attempt); i {
   993  			case 0:
   994  				return &v.state
   995  			case 1:
   996  				return &v.sizeCache
   997  			case 2:
   998  				return &v.unknownFields
   999  			default:
  1000  				return nil
  1001  			}
  1002  		}
  1003  	}
  1004  	file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[1].OneofWrappers = []interface{}{
  1005  		(*TryjobResult_Buildbucket_)(nil),
  1006  	}
  1007  	file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes[3].OneofWrappers = []interface{}{
  1008  		(*Tryjob_Result_Buildbucket_)(nil),
  1009  	}
  1010  	type x struct{}
  1011  	out := protoimpl.TypeBuilder{
  1012  		File: protoimpl.DescBuilder{
  1013  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  1014  			RawDescriptor: file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDesc,
  1015  			NumEnums:      3,
  1016  			NumMessages:   7,
  1017  			NumExtensions: 0,
  1018  			NumServices:   0,
  1019  		},
  1020  		GoTypes:           file_go_chromium_org_luci_cv_api_v0_tryjob_proto_goTypes,
  1021  		DependencyIndexes: file_go_chromium_org_luci_cv_api_v0_tryjob_proto_depIdxs,
  1022  		EnumInfos:         file_go_chromium_org_luci_cv_api_v0_tryjob_proto_enumTypes,
  1023  		MessageInfos:      file_go_chromium_org_luci_cv_api_v0_tryjob_proto_msgTypes,
  1024  	}.Build()
  1025  	File_go_chromium_org_luci_cv_api_v0_tryjob_proto = out.File
  1026  	file_go_chromium_org_luci_cv_api_v0_tryjob_proto_rawDesc = nil
  1027  	file_go_chromium_org_luci_cv_api_v0_tryjob_proto_goTypes = nil
  1028  	file_go_chromium_org_luci_cv_api_v0_tryjob_proto_depIdxs = nil
  1029  }