go.chromium.org/luci@v0.0.0-20240309015107-7cdc2e660f33/buildbucket/proto/project_config.pb.go (about)

     1  // Copyright 2018 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  // Schemas for project configs.
    16  
    17  // Code generated by protoc-gen-go. DO NOT EDIT.
    18  // versions:
    19  // 	protoc-gen-go v1.32.0
    20  // 	protoc        v3.21.7
    21  // source: go.chromium.org/luci/buildbucket/proto/project_config.proto
    22  
    23  package buildbucketpb
    24  
    25  import (
    26  	_ "go.chromium.org/luci/common/proto"
    27  	v1 "go.chromium.org/luci/resultdb/proto/v1"
    28  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    29  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    30  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    31  	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
    32  	reflect "reflect"
    33  	sync "sync"
    34  )
    35  
    36  const (
    37  	// Verify that this generated code is sufficiently up-to-date.
    38  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    39  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    40  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    41  )
    42  
    43  // Toggle is a boolean with an extra state UNSET.
    44  // When protobuf messages are merged, UNSET does not overwrite an existing
    45  // value.
    46  // TODO(nodir): replace with Trinary in ../common.proto.
    47  type Toggle int32
    48  
    49  const (
    50  	Toggle_UNSET Toggle = 0
    51  	Toggle_YES   Toggle = 1
    52  	Toggle_NO    Toggle = 2
    53  )
    54  
    55  // Enum value maps for Toggle.
    56  var (
    57  	Toggle_name = map[int32]string{
    58  		0: "UNSET",
    59  		1: "YES",
    60  		2: "NO",
    61  	}
    62  	Toggle_value = map[string]int32{
    63  		"UNSET": 0,
    64  		"YES":   1,
    65  		"NO":    2,
    66  	}
    67  )
    68  
    69  func (x Toggle) Enum() *Toggle {
    70  	p := new(Toggle)
    71  	*p = x
    72  	return p
    73  }
    74  
    75  func (x Toggle) String() string {
    76  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    77  }
    78  
    79  func (Toggle) Descriptor() protoreflect.EnumDescriptor {
    80  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes[0].Descriptor()
    81  }
    82  
    83  func (Toggle) Type() protoreflect.EnumType {
    84  	return &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes[0]
    85  }
    86  
    87  func (x Toggle) Number() protoreflect.EnumNumber {
    88  	return protoreflect.EnumNumber(x)
    89  }
    90  
    91  // Deprecated: Use Toggle.Descriptor instead.
    92  func (Toggle) EnumDescriptor() ([]byte, []int) {
    93  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{0}
    94  }
    95  
    96  type Acl_Role int32
    97  
    98  const (
    99  	Acl_READER    Acl_Role = 0
   100  	Acl_SCHEDULER Acl_Role = 1
   101  	Acl_WRITER    Acl_Role = 2
   102  )
   103  
   104  // Enum value maps for Acl_Role.
   105  var (
   106  	Acl_Role_name = map[int32]string{
   107  		0: "READER",
   108  		1: "SCHEDULER",
   109  		2: "WRITER",
   110  	}
   111  	Acl_Role_value = map[string]int32{
   112  		"READER":    0,
   113  		"SCHEDULER": 1,
   114  		"WRITER":    2,
   115  	}
   116  )
   117  
   118  func (x Acl_Role) Enum() *Acl_Role {
   119  	p := new(Acl_Role)
   120  	*p = x
   121  	return p
   122  }
   123  
   124  func (x Acl_Role) String() string {
   125  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   126  }
   127  
   128  func (Acl_Role) Descriptor() protoreflect.EnumDescriptor {
   129  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes[1].Descriptor()
   130  }
   131  
   132  func (Acl_Role) Type() protoreflect.EnumType {
   133  	return &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes[1]
   134  }
   135  
   136  func (x Acl_Role) Number() protoreflect.EnumNumber {
   137  	return protoreflect.EnumNumber(x)
   138  }
   139  
   140  // Deprecated: Use Acl_Role.Descriptor instead.
   141  func (Acl_Role) EnumDescriptor() ([]byte, []int) {
   142  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{0, 0}
   143  }
   144  
   145  // Deprecated in favor of LUCI Realms. This proto is totally unused now, exists
   146  // only to not break older configs that still may have deprecated fields
   147  // populated.
   148  type Acl struct {
   149  	state         protoimpl.MessageState
   150  	sizeCache     protoimpl.SizeCache
   151  	unknownFields protoimpl.UnknownFields
   152  
   153  	// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
   154  	Role Acl_Role `protobuf:"varint,1,opt,name=role,proto3,enum=buildbucket.Acl_Role" json:"role,omitempty"`
   155  	// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
   156  	Group string `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
   157  	// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
   158  	Identity string `protobuf:"bytes,3,opt,name=identity,proto3" json:"identity,omitempty"`
   159  }
   160  
   161  func (x *Acl) Reset() {
   162  	*x = Acl{}
   163  	if protoimpl.UnsafeEnabled {
   164  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[0]
   165  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   166  		ms.StoreMessageInfo(mi)
   167  	}
   168  }
   169  
   170  func (x *Acl) String() string {
   171  	return protoimpl.X.MessageStringOf(x)
   172  }
   173  
   174  func (*Acl) ProtoMessage() {}
   175  
   176  func (x *Acl) ProtoReflect() protoreflect.Message {
   177  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[0]
   178  	if protoimpl.UnsafeEnabled && x != nil {
   179  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   180  		if ms.LoadMessageInfo() == nil {
   181  			ms.StoreMessageInfo(mi)
   182  		}
   183  		return ms
   184  	}
   185  	return mi.MessageOf(x)
   186  }
   187  
   188  // Deprecated: Use Acl.ProtoReflect.Descriptor instead.
   189  func (*Acl) Descriptor() ([]byte, []int) {
   190  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{0}
   191  }
   192  
   193  // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
   194  func (x *Acl) GetRole() Acl_Role {
   195  	if x != nil {
   196  		return x.Role
   197  	}
   198  	return Acl_READER
   199  }
   200  
   201  // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
   202  func (x *Acl) GetGroup() string {
   203  	if x != nil {
   204  		return x.Group
   205  	}
   206  	return ""
   207  }
   208  
   209  // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
   210  func (x *Acl) GetIdentity() string {
   211  	if x != nil {
   212  		return x.Identity
   213  	}
   214  	return ""
   215  }
   216  
   217  // Defines a swarmbucket builder. A builder has a name, a category and specifies
   218  // what should happen if a build is scheduled to that builder.
   219  //
   220  // SECURITY WARNING: if adding more fields to this message, keep in mind that
   221  // a user that has permissions to schedule a build to the bucket, can override
   222  // this config.
   223  //
   224  // Next tag: 40.
   225  type BuilderConfig struct {
   226  	state         protoimpl.MessageState
   227  	sizeCache     protoimpl.SizeCache
   228  	unknownFields protoimpl.UnknownFields
   229  
   230  	// Name of the builder.
   231  	//
   232  	// If a builder name, will be propagated to "builder" build tag and
   233  	// "buildername" recipe property.
   234  	//
   235  	// A builder name must be unique within the bucket, and match regex
   236  	// ^[a-zA-Z0-9\-_.\(\) ]{1,128}$.
   237  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   238  	// Backend for this builder.
   239  	// If unset, builds are scheduled using the legacy pipeline.
   240  	Backend *BuilderConfig_Backend `protobuf:"bytes,32,opt,name=backend,proto3" json:"backend,omitempty"`
   241  	// Alternate backend to use for this builder when the
   242  	// "luci.buildbucket.backend_alt" experiment is enabled. Works even when
   243  	// `backend` is empty. Useful for migrations to new backends.
   244  	BackendAlt *BuilderConfig_Backend `protobuf:"bytes,33,opt,name=backend_alt,json=backendAlt,proto3" json:"backend_alt,omitempty"`
   245  	// Hostname of the swarming instance, e.g. "chromium-swarm.appspot.com".
   246  	// Required, but defaults to deprecated Swarming.hostname.
   247  	SwarmingHost string `protobuf:"bytes,21,opt,name=swarming_host,json=swarmingHost,proto3" json:"swarming_host,omitempty"`
   248  	// Builder category. Will be used for visual grouping, for example in Code Review.
   249  	Category string `protobuf:"bytes,6,opt,name=category,proto3" json:"category,omitempty"`
   250  	// DEPRECATED.
   251  	// Used only to enable "vpython:native-python-wrapper"
   252  	// Does NOT actually propagate to swarming.
   253  	SwarmingTags []string `protobuf:"bytes,2,rep,name=swarming_tags,json=swarmingTags,proto3" json:"swarming_tags,omitempty"`
   254  	// A requirement for a bot to execute the build.
   255  	//
   256  	// Supports 2 forms:
   257  	//   - "<key>:<value>" - require a bot with this dimension.
   258  	//     This is a shortcut for "0:<key>:<value>", see below.
   259  	//   - "<expiration_secs>:<key>:<value>" - wait for up to expiration_secs.
   260  	//     for a bot with the dimension.
   261  	//     Supports multiple values for different keys and expiration_secs.
   262  	//     expiration_secs must be a multiple of 60.
   263  	//
   264  	// If this builder is defined in a bucket, dimension "pool" is defaulted
   265  	// to the name of the bucket. See Bucket message below.
   266  	Dimensions []string `protobuf:"bytes,3,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
   267  	// Specifies that a recipe to run.
   268  	// DEPRECATED: use exe.
   269  	Recipe *BuilderConfig_Recipe `protobuf:"bytes,4,opt,name=recipe,proto3" json:"recipe,omitempty"`
   270  	// What to run when a build is ready to start.
   271  	Exe *Executable `protobuf:"bytes,23,opt,name=exe,proto3" json:"exe,omitempty"`
   272  	// A JSON object representing Build.input.properties.
   273  	// Individual object properties can be overridden with
   274  	// ScheduleBuildRequest.properties.
   275  	Properties string `protobuf:"bytes,24,opt,name=properties,proto3" json:"properties,omitempty"`
   276  	// A list of top-level property names which can be overridden in
   277  	// ScheduleBuildRequest.
   278  	//
   279  	// If this field is the EXACT value `["*"]` then all properties are permitted
   280  	// to be overridden.
   281  	//
   282  	// NOTE: Some executables (such as the recipe engine) can have drastic
   283  	// behavior differences based on some properties (for example, the "recipe"
   284  	// property). If you allow the "recipe" property to be overridden, then anyone
   285  	// with the 'buildbucket.builds.add' permission could create a Build for this
   286  	// Builder running a different recipe (from the same recipe repo).
   287  	AllowedPropertyOverrides []string `protobuf:"bytes,34,rep,name=allowed_property_overrides,json=allowedPropertyOverrides,proto3" json:"allowed_property_overrides,omitempty"`
   288  	// Swarming task priority.
   289  	// A value between 20 and 255, inclusive.
   290  	// Lower means more important.
   291  	//
   292  	// The default value is configured in
   293  	// https://chrome-internal.googlesource.com/infradata/config/+/master/configs/cr-buildbucket/swarming_task_template.json
   294  	//
   295  	// See also https://chromium.googlesource.com/infra/luci/luci-py.git/+/master/appengine/swarming/doc/User-Guide.md#request
   296  	Priority uint32 `protobuf:"varint,5,opt,name=priority,proto3" json:"priority,omitempty"`
   297  	// Maximum build execution time.
   298  	//
   299  	// Not to be confused with pending time.
   300  	//
   301  	// If the timeout is reached, the task will be signaled according to the
   302  	// `deadline` section of
   303  	// https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md
   304  	// and status_details.timeout is set.
   305  	//
   306  	// The task will have `grace_period` amount of time to handle cleanup
   307  	// before being forcefully terminated.
   308  	//
   309  	// NOTE: This corresponds with Build.execution_timeout and
   310  	// ScheduleBuildRequest.execution_timeout; The name `execution_timeout_secs` and
   311  	// uint32 type are relics of the past.
   312  	ExecutionTimeoutSecs uint32 `protobuf:"varint,7,opt,name=execution_timeout_secs,json=executionTimeoutSecs,proto3" json:"execution_timeout_secs,omitempty"`
   313  	// Maximum amount of time to wait for the next heartbeat(i.e UpdateBuild).
   314  	//
   315  	// After a build is started, the client can send heartbeat requests
   316  	// periodically. Buildbucket will mark the build as INFRA_FAILURE, if the
   317  	// timeout threshold reaches. It’s to fail a build more quickly, rather than
   318  	// waiting for `execution_timeout_secs` to expire. Some V1 users, which don't
   319  	// have real task backends, can utilize this feature.
   320  	//
   321  	// By default, the value is 0, which means no timeout threshold is applied.
   322  	//
   323  	// Note: this field only takes effect for TaskBackendLite builds. For builds
   324  	// with full-featured TaskBackend Implementation, `sync_backend_tasks` cron
   325  	// job fulfills the similar functionality.
   326  	HeartbeatTimeoutSecs uint32 `protobuf:"varint,39,opt,name=heartbeat_timeout_secs,json=heartbeatTimeoutSecs,proto3" json:"heartbeat_timeout_secs,omitempty"`
   327  	// Maximum build pending time.
   328  	//
   329  	// If the timeout is reached, the build is marked as INFRA_FAILURE status
   330  	// and both status_details.{timeout, resource_exhaustion} are set.
   331  	//
   332  	// NOTE: This corresponds with Build.scheduling_timeout and
   333  	// ScheduleBuildRequest.scheduling_timeout; The name `expiration_secs` and
   334  	// uint32 type are relics of the past.
   335  	ExpirationSecs uint32 `protobuf:"varint,20,opt,name=expiration_secs,json=expirationSecs,proto3" json:"expiration_secs,omitempty"`
   336  	// Amount of cleanup time after execution_timeout_secs.
   337  	//
   338  	// After being signaled according to execution_timeout_secs, the task will
   339  	// have this many seconds to clean up before being forcefully terminated.
   340  	//
   341  	// The signalling process is explained in the `deadline` section of
   342  	// https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md.
   343  	//
   344  	// Defaults to 30s if unspecified or 0.
   345  	GracePeriod *durationpb.Duration `protobuf:"bytes,31,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"`
   346  	// If YES, will request that swarming wait until it sees at least one bot
   347  	// report a superset of the requested dimensions.
   348  	//
   349  	// If UNSET/NO (the default), swarming will immediately reject a build which
   350  	// specifies a dimension set that it's never seen before.
   351  	//
   352  	// Usually you want this to be UNSET/NO, unless you know that some external
   353  	// system is working to add bots to swarming which will match the requested
   354  	// dimensions within expiration_secs. Otherwise you'll have to wait for all of
   355  	// `expiration_secs` until swarming tells you "Sorry, nothing has dimension
   356  	// `os:MadeUpOS`".
   357  	WaitForCapacity Trinary `protobuf:"varint,29,opt,name=wait_for_capacity,json=waitForCapacity,proto3,enum=buildbucket.v2.Trinary" json:"wait_for_capacity,omitempty"`
   358  	// Caches that should be present on the bot.
   359  	Caches []*BuilderConfig_CacheEntry `protobuf:"bytes,9,rep,name=caches,proto3" json:"caches,omitempty"`
   360  	// If YES, generate monotonically increasing contiguous numbers for each
   361  	// build, unique within the builder.
   362  	// Note: this limits the build creation rate in this builder to 5 per second.
   363  	BuildNumbers Toggle `protobuf:"varint,16,opt,name=build_numbers,json=buildNumbers,proto3,enum=buildbucket.Toggle" json:"build_numbers,omitempty"`
   364  	// Email of a service account to run the build as or literal 'bot' string to
   365  	// use Swarming bot's account (if available). Passed directly to Swarming.
   366  	// Subject to Swarming's ACLs.
   367  	ServiceAccount string `protobuf:"bytes,12,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
   368  	// If YES, each builder will get extra dimension "builder:<builder name>"
   369  	// added. Default is UNSET.
   370  	//
   371  	// For example, this config
   372  	//
   373  	//	builder {
   374  	//	  name: "linux-compiler"
   375  	//	  dimension: "builder:linux-compiler"
   376  	//	}
   377  	//
   378  	// is equivalent to this:
   379  	//
   380  	//	builders {
   381  	//	  name: "linux-compiler"
   382  	//	  auto_builder_dimension: YES
   383  	//	}
   384  	//
   385  	// (see also http://docs.buildbot.net/0.8.9/manual/cfg-properties.html#interpolate)
   386  	// but are currently against complicating config with this.
   387  	AutoBuilderDimension Toggle `protobuf:"varint,17,opt,name=auto_builder_dimension,json=autoBuilderDimension,proto3,enum=buildbucket.Toggle" json:"auto_builder_dimension,omitempty"`
   388  	// DEPRECATED
   389  	//
   390  	// Set the "luci.non_production" experiment in the 'experiments' field below,
   391  	// instead.
   392  	//
   393  	// If YES, sets the "luci.non_production" experiment to 100% for
   394  	// builds on this builder.
   395  	//
   396  	// See the documentation on `experiments` for more details about the
   397  	// "luci.non_production" experiment.
   398  	Experimental Toggle `protobuf:"varint,18,opt,name=experimental,proto3,enum=buildbucket.Toggle" json:"experimental,omitempty"`
   399  	// DEPRECATED
   400  	//
   401  	// Set the "luci.buildbucket.canary_software" experiment in the 'experiments'
   402  	// field below, instead.
   403  	//
   404  	// Percentage of builds that should use a canary swarming task template.
   405  	// A value from 0 to 100.
   406  	// If omitted, a global server-defined default percentage is used.
   407  	TaskTemplateCanaryPercentage *wrapperspb.UInt32Value `protobuf:"bytes,22,opt,name=task_template_canary_percentage,json=taskTemplateCanaryPercentage,proto3" json:"task_template_canary_percentage,omitempty"`
   408  	// A mapping of experiment name to the percentage chance (0-100) that it will
   409  	// apply to builds generated from this builder. Experiments are simply strings
   410  	// which various parts of the stack (from LUCI services down to your build
   411  	// scripts) may react to in order to enable certain functionality.
   412  	//
   413  	// You may set any experiments you like, but experiments beginning with
   414  	// "luci." are reserved. Experiment names must conform to
   415  	//
   416  	//	[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*
   417  	//
   418  	// Any experiments which are selected for a build show up in
   419  	// `Build.input.experiments`.
   420  	//
   421  	// Its recommended that you confine your experiments to smaller, more explicit
   422  	// targets. For example, prefer the experiment named
   423  	// "my_project.use_mysoftware_v2_crbug_999999" rather than "use_next_gen".
   424  	//
   425  	// It is NOT recommended to 'piggy-back' on top of existing experiment names
   426  	// for a different purpose. However if you want to, you can have your build
   427  	// treat the presence of ANY experiment as equivalent to "luci.non_production"
   428  	// being set for your build (i.e. "if any experiment is set, don't affect
   429  	// production"). This is ulimately up to you, however.
   430  	//
   431  	// # Well-known experiments
   432  	//
   433  	// Buildbucket has a number of 'global' experiments which are in various
   434  	// states of deployment at any given time. For the current state, see
   435  	// go/buildbucket-settings.cfg.
   436  	Experiments map[string]int32 `protobuf:"bytes,28,rep,name=experiments,proto3" json:"experiments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
   437  	// This field will set the default value of the "critical" field of
   438  	// all the builds of this builder. Please refer to build.proto for
   439  	// the meaning of this field.
   440  	//
   441  	// This value can be overridden by ScheduleBuildRequest.critical
   442  	Critical Trinary `protobuf:"varint,25,opt,name=critical,proto3,enum=buildbucket.v2.Trinary" json:"critical,omitempty"`
   443  	// Used to enable and configure ResultDB integration.
   444  	Resultdb *BuilderConfig_ResultDB `protobuf:"bytes,26,opt,name=resultdb,proto3" json:"resultdb,omitempty"`
   445  	// Description that helps users understand the purpose of the builder, in
   446  	// HTML.
   447  	DescriptionHtml          string                                  `protobuf:"bytes,30,opt,name=description_html,json=descriptionHtml,proto3" json:"description_html,omitempty"`
   448  	ShadowBuilderAdjustments *BuilderConfig_ShadowBuilderAdjustments `protobuf:"bytes,35,opt,name=shadow_builder_adjustments,json=shadowBuilderAdjustments,proto3" json:"shadow_builder_adjustments,omitempty"`
   449  	// This field will set the default value of the "retriable" field of
   450  	// all the builds of this builder. Please refer to build.proto for
   451  	// the meaning of this field.
   452  	//
   453  	// This value can be overridden by ScheduleBuildRequest.retriable
   454  	Retriable                 Trinary                           `protobuf:"varint,36,opt,name=retriable,proto3,enum=buildbucket.v2.Trinary" json:"retriable,omitempty"`
   455  	BuilderHealthMetricsLinks *BuilderConfig_BuilderHealthLinks `protobuf:"bytes,37,opt,name=builder_health_metrics_links,json=builderHealthMetricsLinks,proto3" json:"builder_health_metrics_links,omitempty"`
   456  	// The owning team's contact email. This team is responsible for fixing
   457  	// any builder health issues (see Builder.Metadata.HealthSpec).
   458  	// Will be validated as an email address, but nothing else.
   459  	// It will display on milo and could be public facing, so please don't put anything sensitive.
   460  	ContactTeamEmail string `protobuf:"bytes,38,opt,name=contact_team_email,json=contactTeamEmail,proto3" json:"contact_team_email,omitempty"`
   461  }
   462  
   463  func (x *BuilderConfig) Reset() {
   464  	*x = BuilderConfig{}
   465  	if protoimpl.UnsafeEnabled {
   466  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[1]
   467  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   468  		ms.StoreMessageInfo(mi)
   469  	}
   470  }
   471  
   472  func (x *BuilderConfig) String() string {
   473  	return protoimpl.X.MessageStringOf(x)
   474  }
   475  
   476  func (*BuilderConfig) ProtoMessage() {}
   477  
   478  func (x *BuilderConfig) ProtoReflect() protoreflect.Message {
   479  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[1]
   480  	if protoimpl.UnsafeEnabled && x != nil {
   481  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   482  		if ms.LoadMessageInfo() == nil {
   483  			ms.StoreMessageInfo(mi)
   484  		}
   485  		return ms
   486  	}
   487  	return mi.MessageOf(x)
   488  }
   489  
   490  // Deprecated: Use BuilderConfig.ProtoReflect.Descriptor instead.
   491  func (*BuilderConfig) Descriptor() ([]byte, []int) {
   492  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1}
   493  }
   494  
   495  func (x *BuilderConfig) GetName() string {
   496  	if x != nil {
   497  		return x.Name
   498  	}
   499  	return ""
   500  }
   501  
   502  func (x *BuilderConfig) GetBackend() *BuilderConfig_Backend {
   503  	if x != nil {
   504  		return x.Backend
   505  	}
   506  	return nil
   507  }
   508  
   509  func (x *BuilderConfig) GetBackendAlt() *BuilderConfig_Backend {
   510  	if x != nil {
   511  		return x.BackendAlt
   512  	}
   513  	return nil
   514  }
   515  
   516  func (x *BuilderConfig) GetSwarmingHost() string {
   517  	if x != nil {
   518  		return x.SwarmingHost
   519  	}
   520  	return ""
   521  }
   522  
   523  func (x *BuilderConfig) GetCategory() string {
   524  	if x != nil {
   525  		return x.Category
   526  	}
   527  	return ""
   528  }
   529  
   530  func (x *BuilderConfig) GetSwarmingTags() []string {
   531  	if x != nil {
   532  		return x.SwarmingTags
   533  	}
   534  	return nil
   535  }
   536  
   537  func (x *BuilderConfig) GetDimensions() []string {
   538  	if x != nil {
   539  		return x.Dimensions
   540  	}
   541  	return nil
   542  }
   543  
   544  func (x *BuilderConfig) GetRecipe() *BuilderConfig_Recipe {
   545  	if x != nil {
   546  		return x.Recipe
   547  	}
   548  	return nil
   549  }
   550  
   551  func (x *BuilderConfig) GetExe() *Executable {
   552  	if x != nil {
   553  		return x.Exe
   554  	}
   555  	return nil
   556  }
   557  
   558  func (x *BuilderConfig) GetProperties() string {
   559  	if x != nil {
   560  		return x.Properties
   561  	}
   562  	return ""
   563  }
   564  
   565  func (x *BuilderConfig) GetAllowedPropertyOverrides() []string {
   566  	if x != nil {
   567  		return x.AllowedPropertyOverrides
   568  	}
   569  	return nil
   570  }
   571  
   572  func (x *BuilderConfig) GetPriority() uint32 {
   573  	if x != nil {
   574  		return x.Priority
   575  	}
   576  	return 0
   577  }
   578  
   579  func (x *BuilderConfig) GetExecutionTimeoutSecs() uint32 {
   580  	if x != nil {
   581  		return x.ExecutionTimeoutSecs
   582  	}
   583  	return 0
   584  }
   585  
   586  func (x *BuilderConfig) GetHeartbeatTimeoutSecs() uint32 {
   587  	if x != nil {
   588  		return x.HeartbeatTimeoutSecs
   589  	}
   590  	return 0
   591  }
   592  
   593  func (x *BuilderConfig) GetExpirationSecs() uint32 {
   594  	if x != nil {
   595  		return x.ExpirationSecs
   596  	}
   597  	return 0
   598  }
   599  
   600  func (x *BuilderConfig) GetGracePeriod() *durationpb.Duration {
   601  	if x != nil {
   602  		return x.GracePeriod
   603  	}
   604  	return nil
   605  }
   606  
   607  func (x *BuilderConfig) GetWaitForCapacity() Trinary {
   608  	if x != nil {
   609  		return x.WaitForCapacity
   610  	}
   611  	return Trinary_UNSET
   612  }
   613  
   614  func (x *BuilderConfig) GetCaches() []*BuilderConfig_CacheEntry {
   615  	if x != nil {
   616  		return x.Caches
   617  	}
   618  	return nil
   619  }
   620  
   621  func (x *BuilderConfig) GetBuildNumbers() Toggle {
   622  	if x != nil {
   623  		return x.BuildNumbers
   624  	}
   625  	return Toggle_UNSET
   626  }
   627  
   628  func (x *BuilderConfig) GetServiceAccount() string {
   629  	if x != nil {
   630  		return x.ServiceAccount
   631  	}
   632  	return ""
   633  }
   634  
   635  func (x *BuilderConfig) GetAutoBuilderDimension() Toggle {
   636  	if x != nil {
   637  		return x.AutoBuilderDimension
   638  	}
   639  	return Toggle_UNSET
   640  }
   641  
   642  func (x *BuilderConfig) GetExperimental() Toggle {
   643  	if x != nil {
   644  		return x.Experimental
   645  	}
   646  	return Toggle_UNSET
   647  }
   648  
   649  func (x *BuilderConfig) GetTaskTemplateCanaryPercentage() *wrapperspb.UInt32Value {
   650  	if x != nil {
   651  		return x.TaskTemplateCanaryPercentage
   652  	}
   653  	return nil
   654  }
   655  
   656  func (x *BuilderConfig) GetExperiments() map[string]int32 {
   657  	if x != nil {
   658  		return x.Experiments
   659  	}
   660  	return nil
   661  }
   662  
   663  func (x *BuilderConfig) GetCritical() Trinary {
   664  	if x != nil {
   665  		return x.Critical
   666  	}
   667  	return Trinary_UNSET
   668  }
   669  
   670  func (x *BuilderConfig) GetResultdb() *BuilderConfig_ResultDB {
   671  	if x != nil {
   672  		return x.Resultdb
   673  	}
   674  	return nil
   675  }
   676  
   677  func (x *BuilderConfig) GetDescriptionHtml() string {
   678  	if x != nil {
   679  		return x.DescriptionHtml
   680  	}
   681  	return ""
   682  }
   683  
   684  func (x *BuilderConfig) GetShadowBuilderAdjustments() *BuilderConfig_ShadowBuilderAdjustments {
   685  	if x != nil {
   686  		return x.ShadowBuilderAdjustments
   687  	}
   688  	return nil
   689  }
   690  
   691  func (x *BuilderConfig) GetRetriable() Trinary {
   692  	if x != nil {
   693  		return x.Retriable
   694  	}
   695  	return Trinary_UNSET
   696  }
   697  
   698  func (x *BuilderConfig) GetBuilderHealthMetricsLinks() *BuilderConfig_BuilderHealthLinks {
   699  	if x != nil {
   700  		return x.BuilderHealthMetricsLinks
   701  	}
   702  	return nil
   703  }
   704  
   705  func (x *BuilderConfig) GetContactTeamEmail() string {
   706  	if x != nil {
   707  		return x.ContactTeamEmail
   708  	}
   709  	return ""
   710  }
   711  
   712  // Configuration of buildbucket-swarming integration for one bucket.
   713  type Swarming struct {
   714  	state         protoimpl.MessageState
   715  	sizeCache     protoimpl.SizeCache
   716  	unknownFields protoimpl.UnknownFields
   717  
   718  	// Configuration for each builder.
   719  	// Swarming tasks are created only for builds for builders that are not
   720  	// explicitly specified.
   721  	Builders []*BuilderConfig `protobuf:"bytes,4,rep,name=builders,proto3" json:"builders,omitempty"`
   722  	// DEPRECATED. Use builder_defaults.task_template_canary_percentage instead.
   723  	// Setting this field sets builder_defaults.task_template_canary_percentage.
   724  	TaskTemplateCanaryPercentage *wrapperspb.UInt32Value `protobuf:"bytes,5,opt,name=task_template_canary_percentage,json=taskTemplateCanaryPercentage,proto3" json:"task_template_canary_percentage,omitempty"`
   725  }
   726  
   727  func (x *Swarming) Reset() {
   728  	*x = Swarming{}
   729  	if protoimpl.UnsafeEnabled {
   730  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[2]
   731  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   732  		ms.StoreMessageInfo(mi)
   733  	}
   734  }
   735  
   736  func (x *Swarming) String() string {
   737  	return protoimpl.X.MessageStringOf(x)
   738  }
   739  
   740  func (*Swarming) ProtoMessage() {}
   741  
   742  func (x *Swarming) ProtoReflect() protoreflect.Message {
   743  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[2]
   744  	if protoimpl.UnsafeEnabled && x != nil {
   745  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   746  		if ms.LoadMessageInfo() == nil {
   747  			ms.StoreMessageInfo(mi)
   748  		}
   749  		return ms
   750  	}
   751  	return mi.MessageOf(x)
   752  }
   753  
   754  // Deprecated: Use Swarming.ProtoReflect.Descriptor instead.
   755  func (*Swarming) Descriptor() ([]byte, []int) {
   756  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{2}
   757  }
   758  
   759  func (x *Swarming) GetBuilders() []*BuilderConfig {
   760  	if x != nil {
   761  		return x.Builders
   762  	}
   763  	return nil
   764  }
   765  
   766  func (x *Swarming) GetTaskTemplateCanaryPercentage() *wrapperspb.UInt32Value {
   767  	if x != nil {
   768  		return x.TaskTemplateCanaryPercentage
   769  	}
   770  	return nil
   771  }
   772  
   773  // Defines one bucket in buildbucket.cfg
   774  type Bucket struct {
   775  	state         protoimpl.MessageState
   776  	sizeCache     protoimpl.SizeCache
   777  	unknownFields protoimpl.UnknownFields
   778  
   779  	// Name of the bucket. Names are unique within one instance of buildbucket.
   780  	// If another project already uses this name, a config will be rejected.
   781  	// Name reservation is first-come first-serve.
   782  	// Regex: ^[a-z0-9\-_.]{1,100}$
   783  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   784  	// Deprecated and ignored. Use Realms ACLs instead.
   785  	//
   786  	// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
   787  	Acls []*Acl `protobuf:"bytes,2,rep,name=acls,proto3" json:"acls,omitempty"`
   788  	// Buildbucket-swarming integration.
   789  	// Mutually exclusive with builder_template.
   790  	Swarming *Swarming `protobuf:"bytes,3,opt,name=swarming,proto3" json:"swarming,omitempty"`
   791  	// Name of this bucket's shadow bucket for the led builds to use.
   792  	//
   793  	// If omitted, it implies that led builds of this bucket reuse this bucket.
   794  	// This is allowed, but note that it means the led builds will be in
   795  	// the same bucket/builder with the real builds, which means Any users with
   796  	// led access will be able to do ANYTHING that this bucket's bots and
   797  	// service_accounts can do.
   798  	//
   799  	// It could also be noisy, such as:
   800  	//   - On the LUCI UI, led builds will show under the same builder as the real builds,
   801  	//   - Led builds will share the same ResultDB config as the real builds, so
   802  	//     their test results will be exported to the same BigQuery tables.
   803  	//   - Subscribers of Buildbucket PubSub need to filter them out.
   804  	//
   805  	// Note: Don't set it if it's a dynamic bucket. Currently, a dynamic bucket is
   806  	// not allowed to have a shadow bucket.
   807  	Shadow string `protobuf:"bytes,5,opt,name=shadow,proto3" json:"shadow,omitempty"`
   808  	// Security constraints of the bucket.
   809  	//
   810  	// This field is used by CreateBuild on this bucket to constrain proposed
   811  	// Builds. If a build doesn't meet the constraints, it will be rejected.
   812  	// For shadow buckets, this is what prevents the bucket from allowing
   813  	// totally arbitrary Builds.
   814  	//
   815  	// `lucicfg` will automatically populate this for the "primary" bucket
   816  	// when using `luci.builder`.
   817  	//
   818  	// Buildbuceket.CreateBuild will validate the incoming requests to make sure
   819  	// they meet these constraints.
   820  	Constraints *Bucket_Constraints `protobuf:"bytes,6,opt,name=constraints,proto3" json:"constraints,omitempty"`
   821  	// Template of builders in a dynamic bucket.
   822  	// Mutually exclusive with swarming.
   823  	//
   824  	// If is not nil, the bucket is a dynamic LUCI bucket.
   825  	// If a bucket has both swarming and dynamic_builder_template as nil,
   826  	// the bucket is a legacy one.
   827  	DynamicBuilderTemplate *Bucket_DynamicBuilderTemplate `protobuf:"bytes,7,opt,name=dynamic_builder_template,json=dynamicBuilderTemplate,proto3" json:"dynamic_builder_template,omitempty"`
   828  }
   829  
   830  func (x *Bucket) Reset() {
   831  	*x = Bucket{}
   832  	if protoimpl.UnsafeEnabled {
   833  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[3]
   834  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   835  		ms.StoreMessageInfo(mi)
   836  	}
   837  }
   838  
   839  func (x *Bucket) String() string {
   840  	return protoimpl.X.MessageStringOf(x)
   841  }
   842  
   843  func (*Bucket) ProtoMessage() {}
   844  
   845  func (x *Bucket) ProtoReflect() protoreflect.Message {
   846  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[3]
   847  	if protoimpl.UnsafeEnabled && x != nil {
   848  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   849  		if ms.LoadMessageInfo() == nil {
   850  			ms.StoreMessageInfo(mi)
   851  		}
   852  		return ms
   853  	}
   854  	return mi.MessageOf(x)
   855  }
   856  
   857  // Deprecated: Use Bucket.ProtoReflect.Descriptor instead.
   858  func (*Bucket) Descriptor() ([]byte, []int) {
   859  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{3}
   860  }
   861  
   862  func (x *Bucket) GetName() string {
   863  	if x != nil {
   864  		return x.Name
   865  	}
   866  	return ""
   867  }
   868  
   869  // Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
   870  func (x *Bucket) GetAcls() []*Acl {
   871  	if x != nil {
   872  		return x.Acls
   873  	}
   874  	return nil
   875  }
   876  
   877  func (x *Bucket) GetSwarming() *Swarming {
   878  	if x != nil {
   879  		return x.Swarming
   880  	}
   881  	return nil
   882  }
   883  
   884  func (x *Bucket) GetShadow() string {
   885  	if x != nil {
   886  		return x.Shadow
   887  	}
   888  	return ""
   889  }
   890  
   891  func (x *Bucket) GetConstraints() *Bucket_Constraints {
   892  	if x != nil {
   893  		return x.Constraints
   894  	}
   895  	return nil
   896  }
   897  
   898  func (x *Bucket) GetDynamicBuilderTemplate() *Bucket_DynamicBuilderTemplate {
   899  	if x != nil {
   900  		return x.DynamicBuilderTemplate
   901  	}
   902  	return nil
   903  }
   904  
   905  // Schema of buildbucket.cfg file, a project config.
   906  type BuildbucketCfg struct {
   907  	state         protoimpl.MessageState
   908  	sizeCache     protoimpl.SizeCache
   909  	unknownFields protoimpl.UnknownFields
   910  
   911  	// All buckets defined for this project.
   912  	Buckets []*Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"`
   913  	// Global configs are shared among all buckets and builders defined inside
   914  	// this project.
   915  	CommonConfig *BuildbucketCfg_CommonConfig `protobuf:"bytes,5,opt,name=common_config,json=commonConfig,proto3" json:"common_config,omitempty"`
   916  }
   917  
   918  func (x *BuildbucketCfg) Reset() {
   919  	*x = BuildbucketCfg{}
   920  	if protoimpl.UnsafeEnabled {
   921  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[4]
   922  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   923  		ms.StoreMessageInfo(mi)
   924  	}
   925  }
   926  
   927  func (x *BuildbucketCfg) String() string {
   928  	return protoimpl.X.MessageStringOf(x)
   929  }
   930  
   931  func (*BuildbucketCfg) ProtoMessage() {}
   932  
   933  func (x *BuildbucketCfg) ProtoReflect() protoreflect.Message {
   934  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[4]
   935  	if protoimpl.UnsafeEnabled && x != nil {
   936  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   937  		if ms.LoadMessageInfo() == nil {
   938  			ms.StoreMessageInfo(mi)
   939  		}
   940  		return ms
   941  	}
   942  	return mi.MessageOf(x)
   943  }
   944  
   945  // Deprecated: Use BuildbucketCfg.ProtoReflect.Descriptor instead.
   946  func (*BuildbucketCfg) Descriptor() ([]byte, []int) {
   947  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{4}
   948  }
   949  
   950  func (x *BuildbucketCfg) GetBuckets() []*Bucket {
   951  	if x != nil {
   952  		return x.Buckets
   953  	}
   954  	return nil
   955  }
   956  
   957  func (x *BuildbucketCfg) GetCommonConfig() *BuildbucketCfg_CommonConfig {
   958  	if x != nil {
   959  		return x.CommonConfig
   960  	}
   961  	return nil
   962  }
   963  
   964  // Describes a cache directory persisted on a bot.
   965  // Prerequisite reading in BuildInfra.Swarming.CacheEntry message in
   966  // build.proto.
   967  //
   968  // To share a builder cache among multiple builders, it can be overridden:
   969  //
   970  //	builders {
   971  //	  name: "a"
   972  //	  caches {
   973  //	    path: "builder"
   974  //	    name: "my_shared_cache"
   975  //	  }
   976  //	}
   977  //	builders {
   978  //	  name: "b"
   979  //	  caches {
   980  //	    path: "builder"
   981  //	    name: "my_shared_cache"
   982  //	  }
   983  //	}
   984  //
   985  // Builders "a" and "b" share their builder cache. If an "a" build ran on a
   986  // bot and left some files in the builder cache and then a "b" build runs on
   987  // the same bot, the same files will be available in the builder cache.
   988  type BuilderConfig_CacheEntry struct {
   989  	state         protoimpl.MessageState
   990  	sizeCache     protoimpl.SizeCache
   991  	unknownFields protoimpl.UnknownFields
   992  
   993  	// Identifier of the cache. Length is limited to 128.
   994  	// Defaults to path.
   995  	// See also BuildInfra.Swarming.CacheEntry.name in build.proto.
   996  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   997  	// Relative path where the cache in mapped into. Required.
   998  	// See also BuildInfra.Swarming.CacheEntry.path in build.proto.
   999  	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
  1000  	// Number of seconds to wait for a bot with a warm cache to pick up the
  1001  	// task, before falling back to a bot with a cold (non-existent) cache.
  1002  	// See also BuildInfra.Swarming.CacheEntry.wait_for_warm_cache in build.proto.
  1003  	// The value must be multiples of 60 seconds.
  1004  	WaitForWarmCacheSecs int32 `protobuf:"varint,3,opt,name=wait_for_warm_cache_secs,json=waitForWarmCacheSecs,proto3" json:"wait_for_warm_cache_secs,omitempty"`
  1005  	// Environment variable with this name will be set to the path to the cache
  1006  	// directory.
  1007  	EnvVar string `protobuf:"bytes,4,opt,name=env_var,json=envVar,proto3" json:"env_var,omitempty"`
  1008  }
  1009  
  1010  func (x *BuilderConfig_CacheEntry) Reset() {
  1011  	*x = BuilderConfig_CacheEntry{}
  1012  	if protoimpl.UnsafeEnabled {
  1013  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[5]
  1014  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1015  		ms.StoreMessageInfo(mi)
  1016  	}
  1017  }
  1018  
  1019  func (x *BuilderConfig_CacheEntry) String() string {
  1020  	return protoimpl.X.MessageStringOf(x)
  1021  }
  1022  
  1023  func (*BuilderConfig_CacheEntry) ProtoMessage() {}
  1024  
  1025  func (x *BuilderConfig_CacheEntry) ProtoReflect() protoreflect.Message {
  1026  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[5]
  1027  	if protoimpl.UnsafeEnabled && x != nil {
  1028  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1029  		if ms.LoadMessageInfo() == nil {
  1030  			ms.StoreMessageInfo(mi)
  1031  		}
  1032  		return ms
  1033  	}
  1034  	return mi.MessageOf(x)
  1035  }
  1036  
  1037  // Deprecated: Use BuilderConfig_CacheEntry.ProtoReflect.Descriptor instead.
  1038  func (*BuilderConfig_CacheEntry) Descriptor() ([]byte, []int) {
  1039  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 0}
  1040  }
  1041  
  1042  func (x *BuilderConfig_CacheEntry) GetName() string {
  1043  	if x != nil {
  1044  		return x.Name
  1045  	}
  1046  	return ""
  1047  }
  1048  
  1049  func (x *BuilderConfig_CacheEntry) GetPath() string {
  1050  	if x != nil {
  1051  		return x.Path
  1052  	}
  1053  	return ""
  1054  }
  1055  
  1056  func (x *BuilderConfig_CacheEntry) GetWaitForWarmCacheSecs() int32 {
  1057  	if x != nil {
  1058  		return x.WaitForWarmCacheSecs
  1059  	}
  1060  	return 0
  1061  }
  1062  
  1063  func (x *BuilderConfig_CacheEntry) GetEnvVar() string {
  1064  	if x != nil {
  1065  		return x.EnvVar
  1066  	}
  1067  	return ""
  1068  }
  1069  
  1070  // DEPRECATED. See BuilderConfig.executable and BuilderConfig.properties
  1071  //
  1072  // To specify a recipe name, pass "$recipe_engine" property which is a JSON
  1073  // object having "recipe" property.
  1074  type BuilderConfig_Recipe struct {
  1075  	state         protoimpl.MessageState
  1076  	sizeCache     protoimpl.SizeCache
  1077  	unknownFields protoimpl.UnknownFields
  1078  
  1079  	// Name of the recipe to run.
  1080  	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
  1081  	// The CIPD package to fetch the recipes from.
  1082  	//
  1083  	// Typically the package will look like:
  1084  	//
  1085  	//	infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build
  1086  	//
  1087  	// Recipes bundled from internal repositories are typically under
  1088  	// `infra_internal/recipe_bundles/...`.
  1089  	//
  1090  	// But if you're building your own recipe bundles, they could be located
  1091  	// elsewhere.
  1092  	CipdPackage string `protobuf:"bytes,6,opt,name=cipd_package,json=cipdPackage,proto3" json:"cipd_package,omitempty"`
  1093  	// The CIPD version to fetch. This can be a lower-cased git ref (like
  1094  	// `refs/heads/main` or `head`), or it can be a cipd tag (like
  1095  	// `git_revision:dead...beef`).
  1096  	//
  1097  	// The default is `head`, which corresponds to the git repo's HEAD ref. This
  1098  	// is typically (but not always) a symbolic ref for `refs/heads/master`.
  1099  	CipdVersion string `protobuf:"bytes,5,opt,name=cipd_version,json=cipdVersion,proto3" json:"cipd_version,omitempty"`
  1100  	// Colon-separated build properties to set.
  1101  	// Ignored if BuilderConfig.properties is set.
  1102  	//
  1103  	// Use this field for string properties and use properties_j for other
  1104  	// types.
  1105  	Properties []string `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"`
  1106  	// Same as properties, but the value must valid JSON. For example
  1107  	//
  1108  	//	properties_j: "a:1"
  1109  	//
  1110  	// means property a is a number 1, not string "1".
  1111  	//
  1112  	// If null, it means no property must be defined. In particular, it removes
  1113  	// a default value for the property, if any.
  1114  	//
  1115  	// Fields properties and properties_j can be used together, but cannot both
  1116  	// specify values for same property.
  1117  	PropertiesJ []string `protobuf:"bytes,4,rep,name=properties_j,json=propertiesJ,proto3" json:"properties_j,omitempty"`
  1118  }
  1119  
  1120  func (x *BuilderConfig_Recipe) Reset() {
  1121  	*x = BuilderConfig_Recipe{}
  1122  	if protoimpl.UnsafeEnabled {
  1123  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[6]
  1124  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1125  		ms.StoreMessageInfo(mi)
  1126  	}
  1127  }
  1128  
  1129  func (x *BuilderConfig_Recipe) String() string {
  1130  	return protoimpl.X.MessageStringOf(x)
  1131  }
  1132  
  1133  func (*BuilderConfig_Recipe) ProtoMessage() {}
  1134  
  1135  func (x *BuilderConfig_Recipe) ProtoReflect() protoreflect.Message {
  1136  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[6]
  1137  	if protoimpl.UnsafeEnabled && x != nil {
  1138  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1139  		if ms.LoadMessageInfo() == nil {
  1140  			ms.StoreMessageInfo(mi)
  1141  		}
  1142  		return ms
  1143  	}
  1144  	return mi.MessageOf(x)
  1145  }
  1146  
  1147  // Deprecated: Use BuilderConfig_Recipe.ProtoReflect.Descriptor instead.
  1148  func (*BuilderConfig_Recipe) Descriptor() ([]byte, []int) {
  1149  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 1}
  1150  }
  1151  
  1152  func (x *BuilderConfig_Recipe) GetName() string {
  1153  	if x != nil {
  1154  		return x.Name
  1155  	}
  1156  	return ""
  1157  }
  1158  
  1159  func (x *BuilderConfig_Recipe) GetCipdPackage() string {
  1160  	if x != nil {
  1161  		return x.CipdPackage
  1162  	}
  1163  	return ""
  1164  }
  1165  
  1166  func (x *BuilderConfig_Recipe) GetCipdVersion() string {
  1167  	if x != nil {
  1168  		return x.CipdVersion
  1169  	}
  1170  	return ""
  1171  }
  1172  
  1173  func (x *BuilderConfig_Recipe) GetProperties() []string {
  1174  	if x != nil {
  1175  		return x.Properties
  1176  	}
  1177  	return nil
  1178  }
  1179  
  1180  func (x *BuilderConfig_Recipe) GetPropertiesJ() []string {
  1181  	if x != nil {
  1182  		return x.PropertiesJ
  1183  	}
  1184  	return nil
  1185  }
  1186  
  1187  // ResultDB-specific information for a builder.
  1188  type BuilderConfig_ResultDB struct {
  1189  	state         protoimpl.MessageState
  1190  	sizeCache     protoimpl.SizeCache
  1191  	unknownFields protoimpl.UnknownFields
  1192  
  1193  	// Whether to enable ResultDB:Buildbucket integration.
  1194  	Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"`
  1195  	// Configuration for exporting test results to BigQuery.
  1196  	// This can have multiple values to export results to multiple BigQuery
  1197  	// tables, or to support multiple test result predicates.
  1198  	BqExports []*v1.BigQueryExport `protobuf:"bytes,2,rep,name=bq_exports,json=bqExports,proto3" json:"bq_exports,omitempty"`
  1199  	// Deprecated. Any values specified here are ignored.
  1200  	HistoryOptions *v1.HistoryOptions `protobuf:"bytes,3,opt,name=history_options,json=historyOptions,proto3" json:"history_options,omitempty"`
  1201  }
  1202  
  1203  func (x *BuilderConfig_ResultDB) Reset() {
  1204  	*x = BuilderConfig_ResultDB{}
  1205  	if protoimpl.UnsafeEnabled {
  1206  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[7]
  1207  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1208  		ms.StoreMessageInfo(mi)
  1209  	}
  1210  }
  1211  
  1212  func (x *BuilderConfig_ResultDB) String() string {
  1213  	return protoimpl.X.MessageStringOf(x)
  1214  }
  1215  
  1216  func (*BuilderConfig_ResultDB) ProtoMessage() {}
  1217  
  1218  func (x *BuilderConfig_ResultDB) ProtoReflect() protoreflect.Message {
  1219  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[7]
  1220  	if protoimpl.UnsafeEnabled && x != nil {
  1221  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1222  		if ms.LoadMessageInfo() == nil {
  1223  			ms.StoreMessageInfo(mi)
  1224  		}
  1225  		return ms
  1226  	}
  1227  	return mi.MessageOf(x)
  1228  }
  1229  
  1230  // Deprecated: Use BuilderConfig_ResultDB.ProtoReflect.Descriptor instead.
  1231  func (*BuilderConfig_ResultDB) Descriptor() ([]byte, []int) {
  1232  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 2}
  1233  }
  1234  
  1235  func (x *BuilderConfig_ResultDB) GetEnable() bool {
  1236  	if x != nil {
  1237  		return x.Enable
  1238  	}
  1239  	return false
  1240  }
  1241  
  1242  func (x *BuilderConfig_ResultDB) GetBqExports() []*v1.BigQueryExport {
  1243  	if x != nil {
  1244  		return x.BqExports
  1245  	}
  1246  	return nil
  1247  }
  1248  
  1249  func (x *BuilderConfig_ResultDB) GetHistoryOptions() *v1.HistoryOptions {
  1250  	if x != nil {
  1251  		return x.HistoryOptions
  1252  	}
  1253  	return nil
  1254  }
  1255  
  1256  // Buildbucket backend-specific information for a builder.
  1257  type BuilderConfig_Backend struct {
  1258  	state         protoimpl.MessageState
  1259  	sizeCache     protoimpl.SizeCache
  1260  	unknownFields protoimpl.UnknownFields
  1261  
  1262  	// URI for this backend, e.g. "swarming://chromium-swarm".
  1263  	Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
  1264  	// A string interpreted as JSON encapsulating configuration for this
  1265  	// backend.
  1266  	// TODO(crbug.com/1042991): Move priority, wait_for_capacity, etc. here.
  1267  	ConfigJson string `protobuf:"bytes,2,opt,name=config_json,json=configJson,proto3" json:"config_json,omitempty"`
  1268  }
  1269  
  1270  func (x *BuilderConfig_Backend) Reset() {
  1271  	*x = BuilderConfig_Backend{}
  1272  	if protoimpl.UnsafeEnabled {
  1273  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[8]
  1274  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1275  		ms.StoreMessageInfo(mi)
  1276  	}
  1277  }
  1278  
  1279  func (x *BuilderConfig_Backend) String() string {
  1280  	return protoimpl.X.MessageStringOf(x)
  1281  }
  1282  
  1283  func (*BuilderConfig_Backend) ProtoMessage() {}
  1284  
  1285  func (x *BuilderConfig_Backend) ProtoReflect() protoreflect.Message {
  1286  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[8]
  1287  	if protoimpl.UnsafeEnabled && x != nil {
  1288  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1289  		if ms.LoadMessageInfo() == nil {
  1290  			ms.StoreMessageInfo(mi)
  1291  		}
  1292  		return ms
  1293  	}
  1294  	return mi.MessageOf(x)
  1295  }
  1296  
  1297  // Deprecated: Use BuilderConfig_Backend.ProtoReflect.Descriptor instead.
  1298  func (*BuilderConfig_Backend) Descriptor() ([]byte, []int) {
  1299  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 3}
  1300  }
  1301  
  1302  func (x *BuilderConfig_Backend) GetTarget() string {
  1303  	if x != nil {
  1304  		return x.Target
  1305  	}
  1306  	return ""
  1307  }
  1308  
  1309  func (x *BuilderConfig_Backend) GetConfigJson() string {
  1310  	if x != nil {
  1311  		return x.ConfigJson
  1312  	}
  1313  	return ""
  1314  }
  1315  
  1316  // Configurations that need to be replaced when running a led build for this
  1317  // Builder.
  1318  //
  1319  // Note: Builders in a dynamic bucket cannot have ShadowBuilderAdjustments.
  1320  type BuilderConfig_ShadowBuilderAdjustments struct {
  1321  	state         protoimpl.MessageState
  1322  	sizeCache     protoimpl.SizeCache
  1323  	unknownFields protoimpl.UnknownFields
  1324  
  1325  	ServiceAccount string `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
  1326  	Pool           string `protobuf:"bytes,2,opt,name=pool,proto3" json:"pool,omitempty"`
  1327  	// A JSON object contains properties to override Build.input.properties
  1328  	// when creating the led build.
  1329  	// Same as ScheduleBuild, the top-level properties here will override the
  1330  	// ones in builder config, instead of deep merge.
  1331  	Properties string `protobuf:"bytes,3,opt,name=properties,proto3" json:"properties,omitempty"`
  1332  	// Overrides default dimensions defined by builder config.
  1333  	// Same as ScheduleBuild,
  1334  	// * dimensions with empty value will be excluded.
  1335  	// * same key dimensions with both empty and non-empty values are disallowed.
  1336  	//
  1337  	// Note: for historical reason, pool can be adjusted individually.
  1338  	// If pool is adjusted individually, the same change should be reflected in
  1339  	// dimensions, and vice versa.
  1340  	Dimensions []string `protobuf:"bytes,4,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
  1341  }
  1342  
  1343  func (x *BuilderConfig_ShadowBuilderAdjustments) Reset() {
  1344  	*x = BuilderConfig_ShadowBuilderAdjustments{}
  1345  	if protoimpl.UnsafeEnabled {
  1346  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[10]
  1347  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1348  		ms.StoreMessageInfo(mi)
  1349  	}
  1350  }
  1351  
  1352  func (x *BuilderConfig_ShadowBuilderAdjustments) String() string {
  1353  	return protoimpl.X.MessageStringOf(x)
  1354  }
  1355  
  1356  func (*BuilderConfig_ShadowBuilderAdjustments) ProtoMessage() {}
  1357  
  1358  func (x *BuilderConfig_ShadowBuilderAdjustments) ProtoReflect() protoreflect.Message {
  1359  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[10]
  1360  	if protoimpl.UnsafeEnabled && x != nil {
  1361  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1362  		if ms.LoadMessageInfo() == nil {
  1363  			ms.StoreMessageInfo(mi)
  1364  		}
  1365  		return ms
  1366  	}
  1367  	return mi.MessageOf(x)
  1368  }
  1369  
  1370  // Deprecated: Use BuilderConfig_ShadowBuilderAdjustments.ProtoReflect.Descriptor instead.
  1371  func (*BuilderConfig_ShadowBuilderAdjustments) Descriptor() ([]byte, []int) {
  1372  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 5}
  1373  }
  1374  
  1375  func (x *BuilderConfig_ShadowBuilderAdjustments) GetServiceAccount() string {
  1376  	if x != nil {
  1377  		return x.ServiceAccount
  1378  	}
  1379  	return ""
  1380  }
  1381  
  1382  func (x *BuilderConfig_ShadowBuilderAdjustments) GetPool() string {
  1383  	if x != nil {
  1384  		return x.Pool
  1385  	}
  1386  	return ""
  1387  }
  1388  
  1389  func (x *BuilderConfig_ShadowBuilderAdjustments) GetProperties() string {
  1390  	if x != nil {
  1391  		return x.Properties
  1392  	}
  1393  	return ""
  1394  }
  1395  
  1396  func (x *BuilderConfig_ShadowBuilderAdjustments) GetDimensions() []string {
  1397  	if x != nil {
  1398  		return x.Dimensions
  1399  	}
  1400  	return nil
  1401  }
  1402  
  1403  type BuilderConfig_BuilderHealthLinks struct {
  1404  	state         protoimpl.MessageState
  1405  	sizeCache     protoimpl.SizeCache
  1406  	unknownFields protoimpl.UnknownFields
  1407  
  1408  	// Mapping of username domain to clickable link for documentation on the health
  1409  	// metrics and how they were calculated.
  1410  	//
  1411  	// The empty domain value will be used as a fallback for anonymous users, or
  1412  	// if the user identity domain doesn't have a matching entry in this map.
  1413  	//
  1414  	// If linking an internal google link (say g3doc), use a go-link instead of a
  1415  	// raw url.
  1416  	DocLinks map[string]string `protobuf:"bytes,1,rep,name=doc_links,json=docLinks,proto3" json:"doc_links,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  1417  	// Mapping of username domain to clickable link for data visualization or
  1418  	// dashboards for the health metrics.
  1419  	//
  1420  	// Similar to doc_links, the empty domain value will be used as a fallback for
  1421  	// anonymous users, or if the user identity domain doesn't have a matching
  1422  	// entry in this map.
  1423  	//
  1424  	// If linking an internal google link (say g3doc), use a go-link instead of a
  1425  	// raw url.
  1426  	DataLinks map[string]string `protobuf:"bytes,2,rep,name=data_links,json=dataLinks,proto3" json:"data_links,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  1427  }
  1428  
  1429  func (x *BuilderConfig_BuilderHealthLinks) Reset() {
  1430  	*x = BuilderConfig_BuilderHealthLinks{}
  1431  	if protoimpl.UnsafeEnabled {
  1432  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[11]
  1433  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1434  		ms.StoreMessageInfo(mi)
  1435  	}
  1436  }
  1437  
  1438  func (x *BuilderConfig_BuilderHealthLinks) String() string {
  1439  	return protoimpl.X.MessageStringOf(x)
  1440  }
  1441  
  1442  func (*BuilderConfig_BuilderHealthLinks) ProtoMessage() {}
  1443  
  1444  func (x *BuilderConfig_BuilderHealthLinks) ProtoReflect() protoreflect.Message {
  1445  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[11]
  1446  	if protoimpl.UnsafeEnabled && x != nil {
  1447  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1448  		if ms.LoadMessageInfo() == nil {
  1449  			ms.StoreMessageInfo(mi)
  1450  		}
  1451  		return ms
  1452  	}
  1453  	return mi.MessageOf(x)
  1454  }
  1455  
  1456  // Deprecated: Use BuilderConfig_BuilderHealthLinks.ProtoReflect.Descriptor instead.
  1457  func (*BuilderConfig_BuilderHealthLinks) Descriptor() ([]byte, []int) {
  1458  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 6}
  1459  }
  1460  
  1461  func (x *BuilderConfig_BuilderHealthLinks) GetDocLinks() map[string]string {
  1462  	if x != nil {
  1463  		return x.DocLinks
  1464  	}
  1465  	return nil
  1466  }
  1467  
  1468  func (x *BuilderConfig_BuilderHealthLinks) GetDataLinks() map[string]string {
  1469  	if x != nil {
  1470  		return x.DataLinks
  1471  	}
  1472  	return nil
  1473  }
  1474  
  1475  // Constraints for a bucket.
  1476  //
  1477  // Buildbucket.CreateBuild will validate the incoming requests to make sure
  1478  // they meet these constraints.
  1479  type Bucket_Constraints struct {
  1480  	state         protoimpl.MessageState
  1481  	sizeCache     protoimpl.SizeCache
  1482  	unknownFields protoimpl.UnknownFields
  1483  
  1484  	// Constraints allowed pools.
  1485  	// Builds in this bucket must have a "pool" dimension which matches an entry in this list.
  1486  	Pools []string `protobuf:"bytes,1,rep,name=pools,proto3" json:"pools,omitempty"`
  1487  	// Only service accounts in this list are allowed.
  1488  	ServiceAccounts []string `protobuf:"bytes,2,rep,name=service_accounts,json=serviceAccounts,proto3" json:"service_accounts,omitempty"`
  1489  }
  1490  
  1491  func (x *Bucket_Constraints) Reset() {
  1492  	*x = Bucket_Constraints{}
  1493  	if protoimpl.UnsafeEnabled {
  1494  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[14]
  1495  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1496  		ms.StoreMessageInfo(mi)
  1497  	}
  1498  }
  1499  
  1500  func (x *Bucket_Constraints) String() string {
  1501  	return protoimpl.X.MessageStringOf(x)
  1502  }
  1503  
  1504  func (*Bucket_Constraints) ProtoMessage() {}
  1505  
  1506  func (x *Bucket_Constraints) ProtoReflect() protoreflect.Message {
  1507  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[14]
  1508  	if protoimpl.UnsafeEnabled && x != nil {
  1509  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1510  		if ms.LoadMessageInfo() == nil {
  1511  			ms.StoreMessageInfo(mi)
  1512  		}
  1513  		return ms
  1514  	}
  1515  	return mi.MessageOf(x)
  1516  }
  1517  
  1518  // Deprecated: Use Bucket_Constraints.ProtoReflect.Descriptor instead.
  1519  func (*Bucket_Constraints) Descriptor() ([]byte, []int) {
  1520  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{3, 0}
  1521  }
  1522  
  1523  func (x *Bucket_Constraints) GetPools() []string {
  1524  	if x != nil {
  1525  		return x.Pools
  1526  	}
  1527  	return nil
  1528  }
  1529  
  1530  func (x *Bucket_Constraints) GetServiceAccounts() []string {
  1531  	if x != nil {
  1532  		return x.ServiceAccounts
  1533  	}
  1534  	return nil
  1535  }
  1536  
  1537  // Template of builders in a dynamic bucket.
  1538  type Bucket_DynamicBuilderTemplate struct {
  1539  	state         protoimpl.MessageState
  1540  	sizeCache     protoimpl.SizeCache
  1541  	unknownFields protoimpl.UnknownFields
  1542  
  1543  	// The Builder template which is shared among all builders in this dynamic
  1544  	// bucket.
  1545  	Template *BuilderConfig `protobuf:"bytes,1,opt,name=template,proto3" json:"template,omitempty"`
  1546  }
  1547  
  1548  func (x *Bucket_DynamicBuilderTemplate) Reset() {
  1549  	*x = Bucket_DynamicBuilderTemplate{}
  1550  	if protoimpl.UnsafeEnabled {
  1551  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[15]
  1552  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1553  		ms.StoreMessageInfo(mi)
  1554  	}
  1555  }
  1556  
  1557  func (x *Bucket_DynamicBuilderTemplate) String() string {
  1558  	return protoimpl.X.MessageStringOf(x)
  1559  }
  1560  
  1561  func (*Bucket_DynamicBuilderTemplate) ProtoMessage() {}
  1562  
  1563  func (x *Bucket_DynamicBuilderTemplate) ProtoReflect() protoreflect.Message {
  1564  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[15]
  1565  	if protoimpl.UnsafeEnabled && x != nil {
  1566  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1567  		if ms.LoadMessageInfo() == nil {
  1568  			ms.StoreMessageInfo(mi)
  1569  		}
  1570  		return ms
  1571  	}
  1572  	return mi.MessageOf(x)
  1573  }
  1574  
  1575  // Deprecated: Use Bucket_DynamicBuilderTemplate.ProtoReflect.Descriptor instead.
  1576  func (*Bucket_DynamicBuilderTemplate) Descriptor() ([]byte, []int) {
  1577  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{3, 1}
  1578  }
  1579  
  1580  func (x *Bucket_DynamicBuilderTemplate) GetTemplate() *BuilderConfig {
  1581  	if x != nil {
  1582  		return x.Template
  1583  	}
  1584  	return nil
  1585  }
  1586  
  1587  type BuildbucketCfg_Topic struct {
  1588  	state         protoimpl.MessageState
  1589  	sizeCache     protoimpl.SizeCache
  1590  	unknownFields protoimpl.UnknownFields
  1591  
  1592  	// Topic name format should be like
  1593  	// "projects/<projid>/topics/<topicid>" and conforms to the guideline:
  1594  	// https://cloud.google.com/pubsub/docs/admin#resource_names.
  1595  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1596  	// The compression method that  `build_large_fields` uses in pubsub message
  1597  	// data. By default, it's ZLIB as this is the most common one and is the
  1598  	// built-in lib in many programming languages.
  1599  	Compression Compression `protobuf:"varint,2,opt,name=compression,proto3,enum=buildbucket.v2.Compression" json:"compression,omitempty"`
  1600  }
  1601  
  1602  func (x *BuildbucketCfg_Topic) Reset() {
  1603  	*x = BuildbucketCfg_Topic{}
  1604  	if protoimpl.UnsafeEnabled {
  1605  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[16]
  1606  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1607  		ms.StoreMessageInfo(mi)
  1608  	}
  1609  }
  1610  
  1611  func (x *BuildbucketCfg_Topic) String() string {
  1612  	return protoimpl.X.MessageStringOf(x)
  1613  }
  1614  
  1615  func (*BuildbucketCfg_Topic) ProtoMessage() {}
  1616  
  1617  func (x *BuildbucketCfg_Topic) ProtoReflect() protoreflect.Message {
  1618  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[16]
  1619  	if protoimpl.UnsafeEnabled && x != nil {
  1620  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1621  		if ms.LoadMessageInfo() == nil {
  1622  			ms.StoreMessageInfo(mi)
  1623  		}
  1624  		return ms
  1625  	}
  1626  	return mi.MessageOf(x)
  1627  }
  1628  
  1629  // Deprecated: Use BuildbucketCfg_Topic.ProtoReflect.Descriptor instead.
  1630  func (*BuildbucketCfg_Topic) Descriptor() ([]byte, []int) {
  1631  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{4, 0}
  1632  }
  1633  
  1634  func (x *BuildbucketCfg_Topic) GetName() string {
  1635  	if x != nil {
  1636  		return x.Name
  1637  	}
  1638  	return ""
  1639  }
  1640  
  1641  func (x *BuildbucketCfg_Topic) GetCompression() Compression {
  1642  	if x != nil {
  1643  		return x.Compression
  1644  	}
  1645  	return Compression_ZLIB
  1646  }
  1647  
  1648  type BuildbucketCfg_CommonConfig struct {
  1649  	state         protoimpl.MessageState
  1650  	sizeCache     protoimpl.SizeCache
  1651  	unknownFields protoimpl.UnknownFields
  1652  
  1653  	// A list of PubSub topics that Buildbucket will publish notifications for
  1654  	// build status changes in this project.
  1655  	// The message data schema can be found in message `BuildsV2PubSub` in
  1656  	// https://chromium.googlesource.com/infra/luci/luci-go/+/main/buildbucket/proto/notification.proto
  1657  	// Attributes on the pubsub messages:
  1658  	// - "project"
  1659  	// - "bucket"
  1660  	// - "builder"
  1661  	// - "is_completed" (The value is either "true" or "false" in string.)
  1662  	//
  1663  	// Note: `pubsub.topics.publish` permission must be granted to the
  1664  	// corresponding luci-project-scoped accounts in the cloud project(s) hosting
  1665  	// the topics.
  1666  	BuildsNotificationTopics []*BuildbucketCfg_Topic `protobuf:"bytes,1,rep,name=builds_notification_topics,json=buildsNotificationTopics,proto3" json:"builds_notification_topics,omitempty"`
  1667  }
  1668  
  1669  func (x *BuildbucketCfg_CommonConfig) Reset() {
  1670  	*x = BuildbucketCfg_CommonConfig{}
  1671  	if protoimpl.UnsafeEnabled {
  1672  		mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[17]
  1673  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1674  		ms.StoreMessageInfo(mi)
  1675  	}
  1676  }
  1677  
  1678  func (x *BuildbucketCfg_CommonConfig) String() string {
  1679  	return protoimpl.X.MessageStringOf(x)
  1680  }
  1681  
  1682  func (*BuildbucketCfg_CommonConfig) ProtoMessage() {}
  1683  
  1684  func (x *BuildbucketCfg_CommonConfig) ProtoReflect() protoreflect.Message {
  1685  	mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[17]
  1686  	if protoimpl.UnsafeEnabled && x != nil {
  1687  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1688  		if ms.LoadMessageInfo() == nil {
  1689  			ms.StoreMessageInfo(mi)
  1690  		}
  1691  		return ms
  1692  	}
  1693  	return mi.MessageOf(x)
  1694  }
  1695  
  1696  // Deprecated: Use BuildbucketCfg_CommonConfig.ProtoReflect.Descriptor instead.
  1697  func (*BuildbucketCfg_CommonConfig) Descriptor() ([]byte, []int) {
  1698  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{4, 1}
  1699  }
  1700  
  1701  func (x *BuildbucketCfg_CommonConfig) GetBuildsNotificationTopics() []*BuildbucketCfg_Topic {
  1702  	if x != nil {
  1703  		return x.BuildsNotificationTopics
  1704  	}
  1705  	return nil
  1706  }
  1707  
  1708  var File_go_chromium_org_luci_buildbucket_proto_project_config_proto protoreflect.FileDescriptor
  1709  
  1710  var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDesc = []byte{
  1711  	0x0a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
  1712  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
  1713  	0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
  1714  	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x62,
  1715  	0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
  1716  	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61,
  1717  	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
  1718  	0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70,
  1719  	0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x2e, 0x63,
  1720  	0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69,
  1721  	0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f,
  1722  	0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
  1723  	0x2f, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67,
  1724  	0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f,
  1725  	0x74, 0x6f, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  1726  	0x1a, 0x37, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
  1727  	0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f,
  1728  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74,
  1729  	0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x01, 0x0a, 0x03, 0x41, 0x63,
  1730  	0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
  1731  	0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x63,
  1732  	0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65,
  1733  	0x12, 0x18, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
  1734  	0x02, 0x18, 0x01, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x64,
  1735  	0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01,
  1736  	0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x2d, 0x0a, 0x04, 0x52, 0x6f,
  1737  	0x6c, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x00, 0x12, 0x0d,
  1738  	0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a,
  1739  	0x06, 0x57, 0x52, 0x49, 0x54, 0x45, 0x52, 0x10, 0x02, 0x22, 0xf4, 0x16, 0x0a, 0x0d, 0x42, 0x75,
  1740  	0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e,
  1741  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
  1742  	0x3c, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b,
  1743  	0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42,
  1744  	0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x63,
  1745  	0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x43, 0x0a,
  1746  	0x0b, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x6c, 0x74, 0x18, 0x21, 0x20, 0x01,
  1747  	0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
  1748  	0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42,
  1749  	0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x41,
  1750  	0x6c, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x68,
  1751  	0x6f, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x77, 0x61, 0x72, 0x6d,
  1752  	0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67,
  1753  	0x6f, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67,
  1754  	0x6f, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x5f,
  1755  	0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x77, 0x61, 0x72,
  1756  	0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65,
  1757  	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69,
  1758  	0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x69,
  1759  	0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
  1760  	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f,
  1761  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x52, 0x06, 0x72, 0x65, 0x63,
  1762  	0x69, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x78, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b,
  1763  	0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76,
  1764  	0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x03, 0x65, 0x78,
  1765  	0x65, 0x12, 0x24, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,
  1766  	0x18, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xa8, 0xfe, 0x23, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f,
  1767  	0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
  1768  	0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6f, 0x76, 0x65, 0x72,
  1769  	0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x61, 0x6c, 0x6c,
  1770  	0x6f, 0x77, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4f, 0x76, 0x65, 0x72,
  1771  	0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
  1772  	0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
  1773  	0x79, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
  1774  	0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
  1775  	0x0d, 0x52, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65,
  1776  	0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x68, 0x65, 0x61, 0x72, 0x74,
  1777  	0x62, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63,
  1778  	0x73, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65,
  1779  	0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x27, 0x0a,
  1780  	0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73,
  1781  	0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69,
  1782  	0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f,
  1783  	0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
  1784  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
  1785  	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65,
  1786  	0x72, 0x69, 0x6f, 0x64, 0x12, 0x43, 0x0a, 0x11, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72,
  1787  	0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32,
  1788  	0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32,
  1789  	0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x0f, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f,
  1790  	0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x61, 0x63,
  1791  	0x68, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x75, 0x69, 0x6c,
  1792  	0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43,
  1793  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79,
  1794  	0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c,
  1795  	0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32,
  1796  	0x13, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x54, 0x6f,
  1797  	0x67, 0x67, 0x6c, 0x65, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65,
  1798  	0x72, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63,
  1799  	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72,
  1800  	0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x16, 0x61,
  1801  	0x75, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x6d, 0x65,
  1802  	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x62, 0x75,
  1803  	0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65,
  1804  	0x52, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x44, 0x69, 0x6d,
  1805  	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69,
  1806  	0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x62,
  1807  	0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c,
  1808  	0x65, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12,
  1809  	0x63, 0x0a, 0x1f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
  1810  	0x5f, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61,
  1811  	0x67, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  1812  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
  1813  	0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70,
  1814  	0x6c, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e,
  1815  	0x74, 0x61, 0x67, 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65,
  1816  	0x6e, 0x74, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x69, 0x6c,
  1817  	0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43,
  1818  	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74,
  1819  	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65,
  1820  	0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18,
  1821  	0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
  1822  	0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x08,
  1823  	0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75,
  1824  	0x6c, 0x74, 0x64, 0x62, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x69,
  1825  	0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72,
  1826  	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x52,
  1827  	0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73,
  1828  	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x74, 0x6d, 0x6c, 0x18, 0x1e, 0x20,
  1829  	0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
  1830  	0x48, 0x74, 0x6d, 0x6c, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x5f, 0x62,
  1831  	0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e,
  1832  	0x74, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
  1833  	0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f,
  1834  	0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x42, 0x75, 0x69, 0x6c, 0x64,
  1835  	0x65, 0x72, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x18, 0x73,
  1836  	0x68, 0x61, 0x64, 0x6f, 0x77, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x41, 0x64, 0x6a, 0x75,
  1837  	0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69,
  1838  	0x61, 0x62, 0x6c, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69,
  1839  	0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e,
  1840  	0x61, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x6e,
  1841  	0x0a, 0x1c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
  1842  	0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x25,
  1843  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
  1844  	0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1845  	0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4c, 0x69,
  1846  	0x6e, 0x6b, 0x73, 0x52, 0x19, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c,
  1847  	0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x2c,
  1848  	0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x65,
  1849  	0x6d, 0x61, 0x69, 0x6c, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74,
  1850  	0x61, 0x63, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x1a, 0x85, 0x01, 0x0a,
  1851  	0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e,
  1852  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
  1853  	0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
  1854  	0x61, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x18, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f,
  1855  	0x77, 0x61, 0x72, 0x6d, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18,
  1856  	0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x57, 0x61,
  1857  	0x72, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x65, 0x63, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x65,
  1858  	0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e,
  1859  	0x76, 0x56, 0x61, 0x72, 0x1a, 0xab, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x12,
  1860  	0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
  1861  	0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b,
  1862  	0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x69, 0x70, 0x64, 0x50,
  1863  	0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x76,
  1864  	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x69,
  1865  	0x70, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f,
  1866  	0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70,
  1867  	0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f,
  1868  	0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x6a, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
  1869  	0x0b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x4a, 0x4a, 0x04, 0x08, 0x01,
  1870  	0x10, 0x02, 0x1a, 0xae, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x12,
  1871  	0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
  1872  	0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x62, 0x71, 0x5f, 0x65, 0x78,
  1873  	0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x75,
  1874  	0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42,
  1875  	0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x62,
  1876  	0x71, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x68, 0x69, 0x73, 0x74,
  1877  	0x6f, 0x72, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
  1878  	0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64,
  1879  	0x62, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69,
  1880  	0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69,
  1881  	0x6f, 0x6e, 0x73, 0x1a, 0x48, 0x0a, 0x07, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16,
  1882  	0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
  1883  	0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
  1884  	0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xa8, 0xfe, 0x23,
  1885  	0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x73, 0x6f, 0x6e, 0x1a, 0x3e, 0x0a,
  1886  	0x10, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72,
  1887  	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
  1888  	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
  1889  	0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x9d, 0x01,
  1890  	0x0a, 0x18, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x41,
  1891  	0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65,
  1892  	0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
  1893  	0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f,
  1894  	0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
  1895  	0x09, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65,
  1896  	0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xa8, 0xfe, 0x23,
  1897  	0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x0a,
  1898  	0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
  1899  	0x09, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xc6, 0x02,
  1900  	0x0a, 0x12, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4c,
  1901  	0x69, 0x6e, 0x6b, 0x73, 0x12, 0x58, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x5f, 0x6c, 0x69, 0x6e, 0x6b,
  1902  	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
  1903  	0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e,
  1904  	0x66, 0x69, 0x67, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74,
  1905  	0x68, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x2e, 0x44, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45,
  1906  	0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x5b,
  1907  	0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03,
  1908  	0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
  1909  	0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42,
  1910  	0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4c, 0x69, 0x6e, 0x6b,
  1911  	0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
  1912  	0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x44,
  1913  	0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
  1914  	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
  1915  	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
  1916  	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61,
  1917  	0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
  1918  	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
  1919  	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
  1920  	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x0b,
  1921  	0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x4a, 0x04,
  1922  	0x08, 0x13, 0x10, 0x14, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b,
  1923  	0x22, 0xb9, 0x01, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a,
  1924  	0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
  1925  	0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75,
  1926  	0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x62, 0x75, 0x69,
  1927  	0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x63, 0x0a, 0x1f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x65,
  1928  	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x65,
  1929  	0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
  1930  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
  1931  	0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x74, 0x61,
  1932  	0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x61, 0x72, 0x79,
  1933  	0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02,
  1934  	0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xe2, 0x03, 0x0a,
  1935  	0x06, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
  1936  	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x61,
  1937  	0x63, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x62, 0x75, 0x69, 0x6c,
  1938  	0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x02, 0x18, 0x01, 0x52,
  1939  	0x04, 0x61, 0x63, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
  1940  	0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
  1941  	0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x08,
  1942  	0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x64,
  1943  	0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77,
  1944  	0x12, 0x41, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18,
  1945  	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
  1946  	0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74,
  1947  	0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69,
  1948  	0x6e, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x18, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x62,
  1949  	0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18,
  1950  	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
  1951  	0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d,
  1952  	0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
  1953  	0x65, 0x52, 0x16, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65,
  1954  	0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x4e, 0x0a, 0x0b, 0x43, 0x6f, 0x6e,
  1955  	0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c,
  1956  	0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x29,
  1957  	0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
  1958  	0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
  1959  	0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x50, 0x0a, 0x16, 0x44, 0x79, 0x6e,
  1960  	0x61, 0x6d, 0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c,
  1961  	0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18,
  1962  	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
  1963  	0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
  1964  	0x67, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x04, 0x10,
  1965  	0x05, 0x22, 0xed, 0x02, 0x0a, 0x0e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
  1966  	0x74, 0x43, 0x66, 0x67, 0x12, 0x2d, 0x0a, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18,
  1967  	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
  1968  	0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x62, 0x75, 0x63, 0x6b,
  1969  	0x65, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x63, 0x6f,
  1970  	0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x75, 0x69,
  1971  	0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75,
  1972  	0x63, 0x6b, 0x65, 0x74, 0x43, 0x66, 0x67, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x6f,
  1973  	0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66,
  1974  	0x69, 0x67, 0x1a, 0x5a, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e,
  1975  	0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
  1976  	0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
  1977  	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
  1978  	0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
  1979  	0x6e, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x6f,
  1980  	0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f,
  1981  	0x0a, 0x1a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
  1982  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03,
  1983  	0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
  1984  	0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x66, 0x67, 0x2e,
  1985  	0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x18, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x4e, 0x6f, 0x74,
  1986  	0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x4a,
  1987  	0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10,
  1988  	0x05, 0x2a, 0x24, 0x0a, 0x06, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55,
  1989  	0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x59, 0x45, 0x53, 0x10, 0x01, 0x12,
  1990  	0x06, 0x0a, 0x02, 0x4e, 0x4f, 0x10, 0x02, 0x42, 0x74, 0xa2, 0xfe, 0x23, 0x3a, 0x0a, 0x38, 0x68,
  1991  	0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x75,
  1992  	0x63, 0x69, 0x2e, 0x61, 0x70, 0x70, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x70,
  1993  	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x3a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
  1994  	0x6b, 0x65, 0x74, 0x2e, 0x63, 0x66, 0x67, 0x5a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f,
  1995  	0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75,
  1996  	0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b,
  1997  	0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70,
  1998  	0x72, 0x6f, 0x74, 0x6f, 0x33,
  1999  }
  2000  
  2001  var (
  2002  	file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescOnce sync.Once
  2003  	file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescData = file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDesc
  2004  )
  2005  
  2006  func file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP() []byte {
  2007  	file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescOnce.Do(func() {
  2008  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescData)
  2009  	})
  2010  	return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescData
  2011  }
  2012  
  2013  var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
  2014  var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
  2015  var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_goTypes = []interface{}{
  2016  	(Toggle)(0),                      // 0: buildbucket.Toggle
  2017  	(Acl_Role)(0),                    // 1: buildbucket.Acl.Role
  2018  	(*Acl)(nil),                      // 2: buildbucket.Acl
  2019  	(*BuilderConfig)(nil),            // 3: buildbucket.BuilderConfig
  2020  	(*Swarming)(nil),                 // 4: buildbucket.Swarming
  2021  	(*Bucket)(nil),                   // 5: buildbucket.Bucket
  2022  	(*BuildbucketCfg)(nil),           // 6: buildbucket.BuildbucketCfg
  2023  	(*BuilderConfig_CacheEntry)(nil), // 7: buildbucket.BuilderConfig.CacheEntry
  2024  	(*BuilderConfig_Recipe)(nil),     // 8: buildbucket.BuilderConfig.Recipe
  2025  	(*BuilderConfig_ResultDB)(nil),   // 9: buildbucket.BuilderConfig.ResultDB
  2026  	(*BuilderConfig_Backend)(nil),    // 10: buildbucket.BuilderConfig.Backend
  2027  	nil,                              // 11: buildbucket.BuilderConfig.ExperimentsEntry
  2028  	(*BuilderConfig_ShadowBuilderAdjustments)(nil), // 12: buildbucket.BuilderConfig.ShadowBuilderAdjustments
  2029  	(*BuilderConfig_BuilderHealthLinks)(nil),       // 13: buildbucket.BuilderConfig.BuilderHealthLinks
  2030  	nil,                                            // 14: buildbucket.BuilderConfig.BuilderHealthLinks.DocLinksEntry
  2031  	nil,                                            // 15: buildbucket.BuilderConfig.BuilderHealthLinks.DataLinksEntry
  2032  	(*Bucket_Constraints)(nil),                     // 16: buildbucket.Bucket.Constraints
  2033  	(*Bucket_DynamicBuilderTemplate)(nil),          // 17: buildbucket.Bucket.DynamicBuilderTemplate
  2034  	(*BuildbucketCfg_Topic)(nil),                   // 18: buildbucket.BuildbucketCfg.Topic
  2035  	(*BuildbucketCfg_CommonConfig)(nil),            // 19: buildbucket.BuildbucketCfg.CommonConfig
  2036  	(*Executable)(nil),                             // 20: buildbucket.v2.Executable
  2037  	(*durationpb.Duration)(nil),                    // 21: google.protobuf.Duration
  2038  	(Trinary)(0),                                   // 22: buildbucket.v2.Trinary
  2039  	(*wrapperspb.UInt32Value)(nil),                 // 23: google.protobuf.UInt32Value
  2040  	(*v1.BigQueryExport)(nil),                      // 24: luci.resultdb.v1.BigQueryExport
  2041  	(*v1.HistoryOptions)(nil),                      // 25: luci.resultdb.v1.HistoryOptions
  2042  	(Compression)(0),                               // 26: buildbucket.v2.Compression
  2043  }
  2044  var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_depIdxs = []int32{
  2045  	1,  // 0: buildbucket.Acl.role:type_name -> buildbucket.Acl.Role
  2046  	10, // 1: buildbucket.BuilderConfig.backend:type_name -> buildbucket.BuilderConfig.Backend
  2047  	10, // 2: buildbucket.BuilderConfig.backend_alt:type_name -> buildbucket.BuilderConfig.Backend
  2048  	8,  // 3: buildbucket.BuilderConfig.recipe:type_name -> buildbucket.BuilderConfig.Recipe
  2049  	20, // 4: buildbucket.BuilderConfig.exe:type_name -> buildbucket.v2.Executable
  2050  	21, // 5: buildbucket.BuilderConfig.grace_period:type_name -> google.protobuf.Duration
  2051  	22, // 6: buildbucket.BuilderConfig.wait_for_capacity:type_name -> buildbucket.v2.Trinary
  2052  	7,  // 7: buildbucket.BuilderConfig.caches:type_name -> buildbucket.BuilderConfig.CacheEntry
  2053  	0,  // 8: buildbucket.BuilderConfig.build_numbers:type_name -> buildbucket.Toggle
  2054  	0,  // 9: buildbucket.BuilderConfig.auto_builder_dimension:type_name -> buildbucket.Toggle
  2055  	0,  // 10: buildbucket.BuilderConfig.experimental:type_name -> buildbucket.Toggle
  2056  	23, // 11: buildbucket.BuilderConfig.task_template_canary_percentage:type_name -> google.protobuf.UInt32Value
  2057  	11, // 12: buildbucket.BuilderConfig.experiments:type_name -> buildbucket.BuilderConfig.ExperimentsEntry
  2058  	22, // 13: buildbucket.BuilderConfig.critical:type_name -> buildbucket.v2.Trinary
  2059  	9,  // 14: buildbucket.BuilderConfig.resultdb:type_name -> buildbucket.BuilderConfig.ResultDB
  2060  	12, // 15: buildbucket.BuilderConfig.shadow_builder_adjustments:type_name -> buildbucket.BuilderConfig.ShadowBuilderAdjustments
  2061  	22, // 16: buildbucket.BuilderConfig.retriable:type_name -> buildbucket.v2.Trinary
  2062  	13, // 17: buildbucket.BuilderConfig.builder_health_metrics_links:type_name -> buildbucket.BuilderConfig.BuilderHealthLinks
  2063  	3,  // 18: buildbucket.Swarming.builders:type_name -> buildbucket.BuilderConfig
  2064  	23, // 19: buildbucket.Swarming.task_template_canary_percentage:type_name -> google.protobuf.UInt32Value
  2065  	2,  // 20: buildbucket.Bucket.acls:type_name -> buildbucket.Acl
  2066  	4,  // 21: buildbucket.Bucket.swarming:type_name -> buildbucket.Swarming
  2067  	16, // 22: buildbucket.Bucket.constraints:type_name -> buildbucket.Bucket.Constraints
  2068  	17, // 23: buildbucket.Bucket.dynamic_builder_template:type_name -> buildbucket.Bucket.DynamicBuilderTemplate
  2069  	5,  // 24: buildbucket.BuildbucketCfg.buckets:type_name -> buildbucket.Bucket
  2070  	19, // 25: buildbucket.BuildbucketCfg.common_config:type_name -> buildbucket.BuildbucketCfg.CommonConfig
  2071  	24, // 26: buildbucket.BuilderConfig.ResultDB.bq_exports:type_name -> luci.resultdb.v1.BigQueryExport
  2072  	25, // 27: buildbucket.BuilderConfig.ResultDB.history_options:type_name -> luci.resultdb.v1.HistoryOptions
  2073  	14, // 28: buildbucket.BuilderConfig.BuilderHealthLinks.doc_links:type_name -> buildbucket.BuilderConfig.BuilderHealthLinks.DocLinksEntry
  2074  	15, // 29: buildbucket.BuilderConfig.BuilderHealthLinks.data_links:type_name -> buildbucket.BuilderConfig.BuilderHealthLinks.DataLinksEntry
  2075  	3,  // 30: buildbucket.Bucket.DynamicBuilderTemplate.template:type_name -> buildbucket.BuilderConfig
  2076  	26, // 31: buildbucket.BuildbucketCfg.Topic.compression:type_name -> buildbucket.v2.Compression
  2077  	18, // 32: buildbucket.BuildbucketCfg.CommonConfig.builds_notification_topics:type_name -> buildbucket.BuildbucketCfg.Topic
  2078  	33, // [33:33] is the sub-list for method output_type
  2079  	33, // [33:33] is the sub-list for method input_type
  2080  	33, // [33:33] is the sub-list for extension type_name
  2081  	33, // [33:33] is the sub-list for extension extendee
  2082  	0,  // [0:33] is the sub-list for field type_name
  2083  }
  2084  
  2085  func init() { file_go_chromium_org_luci_buildbucket_proto_project_config_proto_init() }
  2086  func file_go_chromium_org_luci_buildbucket_proto_project_config_proto_init() {
  2087  	if File_go_chromium_org_luci_buildbucket_proto_project_config_proto != nil {
  2088  		return
  2089  	}
  2090  	file_go_chromium_org_luci_buildbucket_proto_common_proto_init()
  2091  	if !protoimpl.UnsafeEnabled {
  2092  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  2093  			switch v := v.(*Acl); i {
  2094  			case 0:
  2095  				return &v.state
  2096  			case 1:
  2097  				return &v.sizeCache
  2098  			case 2:
  2099  				return &v.unknownFields
  2100  			default:
  2101  				return nil
  2102  			}
  2103  		}
  2104  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  2105  			switch v := v.(*BuilderConfig); i {
  2106  			case 0:
  2107  				return &v.state
  2108  			case 1:
  2109  				return &v.sizeCache
  2110  			case 2:
  2111  				return &v.unknownFields
  2112  			default:
  2113  				return nil
  2114  			}
  2115  		}
  2116  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  2117  			switch v := v.(*Swarming); i {
  2118  			case 0:
  2119  				return &v.state
  2120  			case 1:
  2121  				return &v.sizeCache
  2122  			case 2:
  2123  				return &v.unknownFields
  2124  			default:
  2125  				return nil
  2126  			}
  2127  		}
  2128  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  2129  			switch v := v.(*Bucket); i {
  2130  			case 0:
  2131  				return &v.state
  2132  			case 1:
  2133  				return &v.sizeCache
  2134  			case 2:
  2135  				return &v.unknownFields
  2136  			default:
  2137  				return nil
  2138  			}
  2139  		}
  2140  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  2141  			switch v := v.(*BuildbucketCfg); i {
  2142  			case 0:
  2143  				return &v.state
  2144  			case 1:
  2145  				return &v.sizeCache
  2146  			case 2:
  2147  				return &v.unknownFields
  2148  			default:
  2149  				return nil
  2150  			}
  2151  		}
  2152  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  2153  			switch v := v.(*BuilderConfig_CacheEntry); i {
  2154  			case 0:
  2155  				return &v.state
  2156  			case 1:
  2157  				return &v.sizeCache
  2158  			case 2:
  2159  				return &v.unknownFields
  2160  			default:
  2161  				return nil
  2162  			}
  2163  		}
  2164  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  2165  			switch v := v.(*BuilderConfig_Recipe); i {
  2166  			case 0:
  2167  				return &v.state
  2168  			case 1:
  2169  				return &v.sizeCache
  2170  			case 2:
  2171  				return &v.unknownFields
  2172  			default:
  2173  				return nil
  2174  			}
  2175  		}
  2176  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  2177  			switch v := v.(*BuilderConfig_ResultDB); i {
  2178  			case 0:
  2179  				return &v.state
  2180  			case 1:
  2181  				return &v.sizeCache
  2182  			case 2:
  2183  				return &v.unknownFields
  2184  			default:
  2185  				return nil
  2186  			}
  2187  		}
  2188  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
  2189  			switch v := v.(*BuilderConfig_Backend); i {
  2190  			case 0:
  2191  				return &v.state
  2192  			case 1:
  2193  				return &v.sizeCache
  2194  			case 2:
  2195  				return &v.unknownFields
  2196  			default:
  2197  				return nil
  2198  			}
  2199  		}
  2200  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  2201  			switch v := v.(*BuilderConfig_ShadowBuilderAdjustments); i {
  2202  			case 0:
  2203  				return &v.state
  2204  			case 1:
  2205  				return &v.sizeCache
  2206  			case 2:
  2207  				return &v.unknownFields
  2208  			default:
  2209  				return nil
  2210  			}
  2211  		}
  2212  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
  2213  			switch v := v.(*BuilderConfig_BuilderHealthLinks); i {
  2214  			case 0:
  2215  				return &v.state
  2216  			case 1:
  2217  				return &v.sizeCache
  2218  			case 2:
  2219  				return &v.unknownFields
  2220  			default:
  2221  				return nil
  2222  			}
  2223  		}
  2224  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
  2225  			switch v := v.(*Bucket_Constraints); i {
  2226  			case 0:
  2227  				return &v.state
  2228  			case 1:
  2229  				return &v.sizeCache
  2230  			case 2:
  2231  				return &v.unknownFields
  2232  			default:
  2233  				return nil
  2234  			}
  2235  		}
  2236  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
  2237  			switch v := v.(*Bucket_DynamicBuilderTemplate); i {
  2238  			case 0:
  2239  				return &v.state
  2240  			case 1:
  2241  				return &v.sizeCache
  2242  			case 2:
  2243  				return &v.unknownFields
  2244  			default:
  2245  				return nil
  2246  			}
  2247  		}
  2248  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
  2249  			switch v := v.(*BuildbucketCfg_Topic); i {
  2250  			case 0:
  2251  				return &v.state
  2252  			case 1:
  2253  				return &v.sizeCache
  2254  			case 2:
  2255  				return &v.unknownFields
  2256  			default:
  2257  				return nil
  2258  			}
  2259  		}
  2260  		file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
  2261  			switch v := v.(*BuildbucketCfg_CommonConfig); i {
  2262  			case 0:
  2263  				return &v.state
  2264  			case 1:
  2265  				return &v.sizeCache
  2266  			case 2:
  2267  				return &v.unknownFields
  2268  			default:
  2269  				return nil
  2270  			}
  2271  		}
  2272  	}
  2273  	type x struct{}
  2274  	out := protoimpl.TypeBuilder{
  2275  		File: protoimpl.DescBuilder{
  2276  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  2277  			RawDescriptor: file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDesc,
  2278  			NumEnums:      2,
  2279  			NumMessages:   18,
  2280  			NumExtensions: 0,
  2281  			NumServices:   0,
  2282  		},
  2283  		GoTypes:           file_go_chromium_org_luci_buildbucket_proto_project_config_proto_goTypes,
  2284  		DependencyIndexes: file_go_chromium_org_luci_buildbucket_proto_project_config_proto_depIdxs,
  2285  		EnumInfos:         file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes,
  2286  		MessageInfos:      file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes,
  2287  	}.Build()
  2288  	File_go_chromium_org_luci_buildbucket_proto_project_config_proto = out.File
  2289  	file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDesc = nil
  2290  	file_go_chromium_org_luci_buildbucket_proto_project_config_proto_goTypes = nil
  2291  	file_go_chromium_org_luci_buildbucket_proto_project_config_proto_depIdxs = nil
  2292  }