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

     1  // Copyright 2019 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/recipe/v1/cq.proto
    20  
    21  package recipe
    22  
    23  import (
    24  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    25  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    26  	reflect "reflect"
    27  	sync "sync"
    28  )
    29  
    30  const (
    31  	// Verify that this generated code is sufficiently up-to-date.
    32  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    33  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    34  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    35  )
    36  
    37  type Output_Retry int32
    38  
    39  const (
    40  	Output_OUTPUT_RETRY_UNSPECIFIED Output_Retry = 0
    41  	// Default. Allow CQ to retry the build.
    42  	//
    43  	// Does NOT force CQ to retry this build, since it depends on other factors,
    44  	// such as the applicable project's CQ config.
    45  	Output_OUTPUT_RETRY_ALLOWED Output_Retry = 1
    46  	// Denies retries regardless of other factors.
    47  	//
    48  	// This is equivalent to setting legacy top-level `"do_not_retry": true`
    49  	// output property.
    50  	// TODO(tandrii): deprecate and remove the legacy property.
    51  	Output_OUTPUT_RETRY_DENIED Output_Retry = 2
    52  )
    53  
    54  // Enum value maps for Output_Retry.
    55  var (
    56  	Output_Retry_name = map[int32]string{
    57  		0: "OUTPUT_RETRY_UNSPECIFIED",
    58  		1: "OUTPUT_RETRY_ALLOWED",
    59  		2: "OUTPUT_RETRY_DENIED",
    60  	}
    61  	Output_Retry_value = map[string]int32{
    62  		"OUTPUT_RETRY_UNSPECIFIED": 0,
    63  		"OUTPUT_RETRY_ALLOWED":     1,
    64  		"OUTPUT_RETRY_DENIED":      2,
    65  	}
    66  )
    67  
    68  func (x Output_Retry) Enum() *Output_Retry {
    69  	p := new(Output_Retry)
    70  	*p = x
    71  	return p
    72  }
    73  
    74  func (x Output_Retry) String() string {
    75  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    76  }
    77  
    78  func (Output_Retry) Descriptor() protoreflect.EnumDescriptor {
    79  	return file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_enumTypes[0].Descriptor()
    80  }
    81  
    82  func (Output_Retry) Type() protoreflect.EnumType {
    83  	return &file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_enumTypes[0]
    84  }
    85  
    86  func (x Output_Retry) Number() protoreflect.EnumNumber {
    87  	return protoreflect.EnumNumber(x)
    88  }
    89  
    90  // Deprecated: Use Output_Retry.Descriptor instead.
    91  func (Output_Retry) EnumDescriptor() ([]byte, []int) {
    92  	return file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescGZIP(), []int{1, 0}
    93  }
    94  
    95  // Input provides CQ metadata for CQ-triggered tryjob.
    96  type Input struct {
    97  	state         protoimpl.MessageState
    98  	sizeCache     protoimpl.SizeCache
    99  	unknownFields protoimpl.UnknownFields
   100  
   101  	// If true, CQ is active for the current build. CQ is considered "active" for
   102  	// a build if CQ triggered the build, either directly or indirectly.
   103  	Active bool `protobuf:"varint,1,opt,name=active,proto3" json:"active,omitempty"`
   104  	// If false, CQ would try to submit CL(s) if all other checks pass.
   105  	// If true, CQ won't try to submit.
   106  	//
   107  	// DEPRECATED: Use run_mode instead.
   108  	DryRun bool `protobuf:"varint,2,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"`
   109  	// If true, CQ will not take this build into account while deciding whether
   110  	// CL is good or not. See also `experiment_percentage` of CQ's config file.
   111  	Experimental bool `protobuf:"varint,3,opt,name=experimental,proto3" json:"experimental,omitempty"`
   112  	// If true, CQ triggered this build directly, otherwise typically indicates a
   113  	// child build triggered by a CQ triggered one (possibly indirectly).
   114  	//
   115  	// Can be spoofed. *DO NOT USE FOR SECURITY CHECKS.*
   116  	//
   117  	// One possible use is to distinguish which builds must be cancelled manually,
   118  	// and which (top_level=True) CQ would cancel itself.
   119  	TopLevel bool `protobuf:"varint,4,opt,name=top_level,json=topLevel,proto3" json:"top_level,omitempty"`
   120  	// The mode of the CQ Run that triggers this Tryjob.
   121  	RunMode string `protobuf:"bytes,5,opt,name=run_mode,json=runMode,proto3" json:"run_mode,omitempty"`
   122  	// Tells whether the Run owner is a Googler.
   123  	//
   124  	// DO NOT USE: This is a temporary workaround for crbug/1259887 which
   125  	// is supposed to be used by Chromium only.
   126  	// TODO(crbug/1382195): Remove this field after long term solution is
   127  	// ready.
   128  	OwnerIsGoogler bool `protobuf:"varint,20,opt,name=owner_is_googler,json=ownerIsGoogler,proto3" json:"owner_is_googler,omitempty"`
   129  }
   130  
   131  func (x *Input) Reset() {
   132  	*x = Input{}
   133  	if protoimpl.UnsafeEnabled {
   134  		mi := &file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[0]
   135  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   136  		ms.StoreMessageInfo(mi)
   137  	}
   138  }
   139  
   140  func (x *Input) String() string {
   141  	return protoimpl.X.MessageStringOf(x)
   142  }
   143  
   144  func (*Input) ProtoMessage() {}
   145  
   146  func (x *Input) ProtoReflect() protoreflect.Message {
   147  	mi := &file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[0]
   148  	if protoimpl.UnsafeEnabled && x != nil {
   149  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   150  		if ms.LoadMessageInfo() == nil {
   151  			ms.StoreMessageInfo(mi)
   152  		}
   153  		return ms
   154  	}
   155  	return mi.MessageOf(x)
   156  }
   157  
   158  // Deprecated: Use Input.ProtoReflect.Descriptor instead.
   159  func (*Input) Descriptor() ([]byte, []int) {
   160  	return file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescGZIP(), []int{0}
   161  }
   162  
   163  func (x *Input) GetActive() bool {
   164  	if x != nil {
   165  		return x.Active
   166  	}
   167  	return false
   168  }
   169  
   170  func (x *Input) GetDryRun() bool {
   171  	if x != nil {
   172  		return x.DryRun
   173  	}
   174  	return false
   175  }
   176  
   177  func (x *Input) GetExperimental() bool {
   178  	if x != nil {
   179  		return x.Experimental
   180  	}
   181  	return false
   182  }
   183  
   184  func (x *Input) GetTopLevel() bool {
   185  	if x != nil {
   186  		return x.TopLevel
   187  	}
   188  	return false
   189  }
   190  
   191  func (x *Input) GetRunMode() string {
   192  	if x != nil {
   193  		return x.RunMode
   194  	}
   195  	return ""
   196  }
   197  
   198  func (x *Input) GetOwnerIsGoogler() bool {
   199  	if x != nil {
   200  		return x.OwnerIsGoogler
   201  	}
   202  	return false
   203  }
   204  
   205  // Output provides build-specific instructions back to CQ.
   206  //
   207  // Unless stated otherwise, each Output message field can be set even on builds
   208  // not triggered directly or indirectly by CQ itself. For example, `git cl try`
   209  // or Gerrit UI can be used to trigger a build directly, which can then instruct
   210  // CQ not to retry it.
   211  //
   212  // CQ periodically checks the Output of still running builds, too,
   213  // and may act on the Output even before a build is completed.
   214  type Output struct {
   215  	state         protoimpl.MessageState
   216  	sizeCache     protoimpl.SizeCache
   217  	unknownFields protoimpl.UnknownFields
   218  
   219  	// Buildbucket build IDs which this build has triggered for CQ to wait on.
   220  	//
   221  	// Required when using triggered_by builders in project's CQ config.
   222  	// This is useful to allow the triggering builder to finish without waiting
   223  	// for its child builds, which can be efficiently done by CQ.
   224  	//
   225  	// This is equivalent to setting legacy top-level "triggered_build_ids" output
   226  	// property.
   227  	// TODO(tandrii): deprecate and remove the legacy property.
   228  	TriggeredBuildIds []int64 `protobuf:"varint,1,rep,packed,name=triggered_build_ids,json=triggeredBuildIds,proto3" json:"triggered_build_ids,omitempty"`
   229  	// Retry controls whether this build can be retried by CQ.
   230  	Retry Output_Retry `protobuf:"varint,2,opt,name=retry,proto3,enum=cq.recipe.Output_Retry" json:"retry,omitempty"`
   231  	// Reuse restricts potential reuse of this build by a later CQ run.
   232  	//
   233  	// DEPRECATED in favor of `reusability`.
   234  	// TODO(crbug/1225047): Remove this after CQDaemon is decommissioned. For now,
   235  	// CQDaemon will still use this field to decide reusability.
   236  	//
   237  	// NOTE: even if reuse is not restricted here, reuse is still subject to other
   238  	// restrictions in applicable project's CQ config.
   239  	//
   240  	// If empty (default), reuse is *allowed*.
   241  	//
   242  	// If specified, the order matters: the first matching Reuse message wins.
   243  	// If specified and no Reuse match the run, reuse is *not allowed*.
   244  	// If any individual Reuse block is invalid, reuse is *not allowed*.
   245  	//
   246  	// Examples:
   247  	//
   248  	//  1. To prohibit reuse only for Full runs, do:
   249  	//     {mode_regexp: "fullrun" deny: true}
   250  	//     {mode_regexp: ".+"      deny: false}
   251  	//
   252  	//  2. To prohibit reuse for everything except Dry Runs, do:
   253  	//     {mode_regexp: "dryrun"}
   254  	//
   255  	// Deprecated: Marked as deprecated in go.chromium.org/luci/cv/api/recipe/v1/cq.proto.
   256  	Reuse []*Output_Reuse `protobuf:"bytes,3,rep,name=reuse,proto3" json:"reuse,omitempty"`
   257  	// Reusability restricts potential reuse of this build by a later LUCI CV run.
   258  	//
   259  	// NOTE: even if reuse is not restricted here, reuse is still subject to other
   260  	// restrictions in applicable project's CQ config.
   261  	//
   262  	// If not specified, reuse is *allowed*.
   263  	Reusability *Output_Reusability `protobuf:"bytes,4,opt,name=reusability,proto3" json:"reusability,omitempty"`
   264  }
   265  
   266  func (x *Output) Reset() {
   267  	*x = Output{}
   268  	if protoimpl.UnsafeEnabled {
   269  		mi := &file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[1]
   270  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   271  		ms.StoreMessageInfo(mi)
   272  	}
   273  }
   274  
   275  func (x *Output) String() string {
   276  	return protoimpl.X.MessageStringOf(x)
   277  }
   278  
   279  func (*Output) ProtoMessage() {}
   280  
   281  func (x *Output) ProtoReflect() protoreflect.Message {
   282  	mi := &file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[1]
   283  	if protoimpl.UnsafeEnabled && x != nil {
   284  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   285  		if ms.LoadMessageInfo() == nil {
   286  			ms.StoreMessageInfo(mi)
   287  		}
   288  		return ms
   289  	}
   290  	return mi.MessageOf(x)
   291  }
   292  
   293  // Deprecated: Use Output.ProtoReflect.Descriptor instead.
   294  func (*Output) Descriptor() ([]byte, []int) {
   295  	return file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescGZIP(), []int{1}
   296  }
   297  
   298  func (x *Output) GetTriggeredBuildIds() []int64 {
   299  	if x != nil {
   300  		return x.TriggeredBuildIds
   301  	}
   302  	return nil
   303  }
   304  
   305  func (x *Output) GetRetry() Output_Retry {
   306  	if x != nil {
   307  		return x.Retry
   308  	}
   309  	return Output_OUTPUT_RETRY_UNSPECIFIED
   310  }
   311  
   312  // Deprecated: Marked as deprecated in go.chromium.org/luci/cv/api/recipe/v1/cq.proto.
   313  func (x *Output) GetReuse() []*Output_Reuse {
   314  	if x != nil {
   315  		return x.Reuse
   316  	}
   317  	return nil
   318  }
   319  
   320  func (x *Output) GetReusability() *Output_Reusability {
   321  	if x != nil {
   322  		return x.Reusability
   323  	}
   324  	return nil
   325  }
   326  
   327  type Output_Reuse struct {
   328  	state         protoimpl.MessageState
   329  	sizeCache     protoimpl.SizeCache
   330  	unknownFields protoimpl.UnknownFields
   331  
   332  	// Regular expression for modes of Runs for which this Reuse block applies.
   333  	// Required.
   334  	//
   335  	// Implicitly wrapped with (?i)^...$  (= complete case-insensitive match).
   336  	//
   337  	// For example,
   338  	//
   339  	//	".+" will match all modes of Runs,
   340  	//	"dryrun" and "fullrun" will match only Dry and Full runs, respectively.
   341  	ModeRegexp string `protobuf:"bytes,1,opt,name=mode_regexp,json=modeRegexp,proto3" json:"mode_regexp,omitempty"`
   342  	// If deny is true, then reuse of this build in the future Runs of the
   343  	// matched mode is not allowed.
   344  	//
   345  	// If false, then reuse is allowed. It's useful to stop the matching in case
   346  	// of several Reuse messages.
   347  	Deny bool `protobuf:"varint,2,opt,name=deny,proto3" json:"deny,omitempty"`
   348  }
   349  
   350  func (x *Output_Reuse) Reset() {
   351  	*x = Output_Reuse{}
   352  	if protoimpl.UnsafeEnabled {
   353  		mi := &file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[2]
   354  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   355  		ms.StoreMessageInfo(mi)
   356  	}
   357  }
   358  
   359  func (x *Output_Reuse) String() string {
   360  	return protoimpl.X.MessageStringOf(x)
   361  }
   362  
   363  func (*Output_Reuse) ProtoMessage() {}
   364  
   365  func (x *Output_Reuse) ProtoReflect() protoreflect.Message {
   366  	mi := &file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[2]
   367  	if protoimpl.UnsafeEnabled && x != nil {
   368  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   369  		if ms.LoadMessageInfo() == nil {
   370  			ms.StoreMessageInfo(mi)
   371  		}
   372  		return ms
   373  	}
   374  	return mi.MessageOf(x)
   375  }
   376  
   377  // Deprecated: Use Output_Reuse.ProtoReflect.Descriptor instead.
   378  func (*Output_Reuse) Descriptor() ([]byte, []int) {
   379  	return file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescGZIP(), []int{1, 0}
   380  }
   381  
   382  func (x *Output_Reuse) GetModeRegexp() string {
   383  	if x != nil {
   384  		return x.ModeRegexp
   385  	}
   386  	return ""
   387  }
   388  
   389  func (x *Output_Reuse) GetDeny() bool {
   390  	if x != nil {
   391  		return x.Deny
   392  	}
   393  	return false
   394  }
   395  
   396  type Output_Reusability struct {
   397  	state         protoimpl.MessageState
   398  	sizeCache     protoimpl.SizeCache
   399  	unknownFields protoimpl.UnknownFields
   400  
   401  	// mode_allowlist specifies modes of LUCI CV Runs that can reuse this build.
   402  	//
   403  	// If not provided (or empty), all modes are *allowed* for reuse.
   404  	ModeAllowlist []string `protobuf:"bytes,4,rep,name=mode_allowlist,json=modeAllowlist,proto3" json:"mode_allowlist,omitempty"`
   405  }
   406  
   407  func (x *Output_Reusability) Reset() {
   408  	*x = Output_Reusability{}
   409  	if protoimpl.UnsafeEnabled {
   410  		mi := &file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[3]
   411  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   412  		ms.StoreMessageInfo(mi)
   413  	}
   414  }
   415  
   416  func (x *Output_Reusability) String() string {
   417  	return protoimpl.X.MessageStringOf(x)
   418  }
   419  
   420  func (*Output_Reusability) ProtoMessage() {}
   421  
   422  func (x *Output_Reusability) ProtoReflect() protoreflect.Message {
   423  	mi := &file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[3]
   424  	if protoimpl.UnsafeEnabled && x != nil {
   425  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   426  		if ms.LoadMessageInfo() == nil {
   427  			ms.StoreMessageInfo(mi)
   428  		}
   429  		return ms
   430  	}
   431  	return mi.MessageOf(x)
   432  }
   433  
   434  // Deprecated: Use Output_Reusability.ProtoReflect.Descriptor instead.
   435  func (*Output_Reusability) Descriptor() ([]byte, []int) {
   436  	return file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescGZIP(), []int{1, 1}
   437  }
   438  
   439  func (x *Output_Reusability) GetModeAllowlist() []string {
   440  	if x != nil {
   441  		return x.ModeAllowlist
   442  	}
   443  	return nil
   444  }
   445  
   446  var File_go_chromium_org_luci_cv_api_recipe_v1_cq_proto protoreflect.FileDescriptor
   447  
   448  var file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDesc = []byte{
   449  	0x0a, 0x2e, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
   450  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65,
   451  	0x63, 0x69, 0x70, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x71, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
   452  	0x12, 0x09, 0x63, 0x71, 0x2e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x22, 0xbe, 0x01, 0x0a, 0x05,
   453  	0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18,
   454  	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x17, 0x0a,
   455  	0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06,
   456  	0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69,
   457  	0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x65, 0x78,
   458  	0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f,
   459  	0x70, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x74,
   460  	0x6f, 0x70, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x5f, 0x6d,
   461  	0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x4d, 0x6f,
   462  	0x64, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x73, 0x5f, 0x67,
   463  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x72, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6f, 0x77,
   464  	0x6e, 0x65, 0x72, 0x49, 0x73, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x72, 0x22, 0xa9, 0x03, 0x0a,
   465  	0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x74, 0x72, 0x69, 0x67, 0x67,
   466  	0x65, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01,
   467  	0x20, 0x03, 0x28, 0x03, 0x52, 0x11, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x65, 0x64, 0x42,
   468  	0x75, 0x69, 0x6c, 0x64, 0x49, 0x64, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x65, 0x74, 0x72, 0x79,
   469  	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x63, 0x71, 0x2e, 0x72, 0x65, 0x63, 0x69,
   470  	0x70, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x52,
   471  	0x05, 0x72, 0x65, 0x74, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x05, 0x72, 0x65, 0x75, 0x73, 0x65, 0x18,
   472  	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x71, 0x2e, 0x72, 0x65, 0x63, 0x69, 0x70,
   473  	0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x52, 0x65, 0x75, 0x73, 0x65, 0x42, 0x02,
   474  	0x18, 0x01, 0x52, 0x05, 0x72, 0x65, 0x75, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0b, 0x72, 0x65, 0x75,
   475  	0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
   476  	0x2e, 0x63, 0x71, 0x2e, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75,
   477  	0x74, 0x2e, 0x52, 0x65, 0x75, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x72,
   478  	0x65, 0x75, 0x73, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x1a, 0x3c, 0x0a, 0x05, 0x52, 0x65,
   479  	0x75, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x65,
   480  	0x78, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x52, 0x65,
   481  	0x67, 0x65, 0x78, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x6e, 0x79, 0x18, 0x02, 0x20, 0x01,
   482  	0x28, 0x08, 0x52, 0x04, 0x64, 0x65, 0x6e, 0x79, 0x1a, 0x34, 0x0a, 0x0b, 0x52, 0x65, 0x75, 0x73,
   483  	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x6f, 0x64, 0x65, 0x5f,
   484  	0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
   485  	0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x58,
   486  	0x0a, 0x05, 0x52, 0x65, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x55, 0x54, 0x50, 0x55,
   487  	0x54, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
   488  	0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f,
   489  	0x52, 0x45, 0x54, 0x52, 0x59, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x10, 0x01, 0x12,
   490  	0x17, 0x0a, 0x13, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x52, 0x45, 0x54, 0x52, 0x59, 0x5f,
   491  	0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x02, 0x42, 0x2e, 0x5a, 0x2c, 0x67, 0x6f, 0x2e, 0x63,
   492  	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69,
   493  	0x2f, 0x63, 0x76, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x2f, 0x76,
   494  	0x31, 0x3b, 0x72, 0x65, 0x63, 0x69, 0x70, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   495  }
   496  
   497  var (
   498  	file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescOnce sync.Once
   499  	file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescData = file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDesc
   500  )
   501  
   502  func file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescGZIP() []byte {
   503  	file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescOnce.Do(func() {
   504  		file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescData)
   505  	})
   506  	return file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDescData
   507  }
   508  
   509  var file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
   510  var file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
   511  var file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_goTypes = []interface{}{
   512  	(Output_Retry)(0),          // 0: cq.recipe.Output.Retry
   513  	(*Input)(nil),              // 1: cq.recipe.Input
   514  	(*Output)(nil),             // 2: cq.recipe.Output
   515  	(*Output_Reuse)(nil),       // 3: cq.recipe.Output.Reuse
   516  	(*Output_Reusability)(nil), // 4: cq.recipe.Output.Reusability
   517  }
   518  var file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_depIdxs = []int32{
   519  	0, // 0: cq.recipe.Output.retry:type_name -> cq.recipe.Output.Retry
   520  	3, // 1: cq.recipe.Output.reuse:type_name -> cq.recipe.Output.Reuse
   521  	4, // 2: cq.recipe.Output.reusability:type_name -> cq.recipe.Output.Reusability
   522  	3, // [3:3] is the sub-list for method output_type
   523  	3, // [3:3] is the sub-list for method input_type
   524  	3, // [3:3] is the sub-list for extension type_name
   525  	3, // [3:3] is the sub-list for extension extendee
   526  	0, // [0:3] is the sub-list for field type_name
   527  }
   528  
   529  func init() { file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_init() }
   530  func file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_init() {
   531  	if File_go_chromium_org_luci_cv_api_recipe_v1_cq_proto != nil {
   532  		return
   533  	}
   534  	if !protoimpl.UnsafeEnabled {
   535  		file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   536  			switch v := v.(*Input); i {
   537  			case 0:
   538  				return &v.state
   539  			case 1:
   540  				return &v.sizeCache
   541  			case 2:
   542  				return &v.unknownFields
   543  			default:
   544  				return nil
   545  			}
   546  		}
   547  		file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   548  			switch v := v.(*Output); i {
   549  			case 0:
   550  				return &v.state
   551  			case 1:
   552  				return &v.sizeCache
   553  			case 2:
   554  				return &v.unknownFields
   555  			default:
   556  				return nil
   557  			}
   558  		}
   559  		file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   560  			switch v := v.(*Output_Reuse); i {
   561  			case 0:
   562  				return &v.state
   563  			case 1:
   564  				return &v.sizeCache
   565  			case 2:
   566  				return &v.unknownFields
   567  			default:
   568  				return nil
   569  			}
   570  		}
   571  		file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
   572  			switch v := v.(*Output_Reusability); i {
   573  			case 0:
   574  				return &v.state
   575  			case 1:
   576  				return &v.sizeCache
   577  			case 2:
   578  				return &v.unknownFields
   579  			default:
   580  				return nil
   581  			}
   582  		}
   583  	}
   584  	type x struct{}
   585  	out := protoimpl.TypeBuilder{
   586  		File: protoimpl.DescBuilder{
   587  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
   588  			RawDescriptor: file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDesc,
   589  			NumEnums:      1,
   590  			NumMessages:   4,
   591  			NumExtensions: 0,
   592  			NumServices:   0,
   593  		},
   594  		GoTypes:           file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_goTypes,
   595  		DependencyIndexes: file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_depIdxs,
   596  		EnumInfos:         file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_enumTypes,
   597  		MessageInfos:      file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_msgTypes,
   598  	}.Build()
   599  	File_go_chromium_org_luci_cv_api_recipe_v1_cq_proto = out.File
   600  	file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_rawDesc = nil
   601  	file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_goTypes = nil
   602  	file_go_chromium_org_luci_cv_api_recipe_v1_cq_proto_depIdxs = nil
   603  }