blob: 77eaa0ff78b9e28a60d17ce43ec0e48141cbcd55 [file] [log] [blame]
// Copyright 2018 The LUCI Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Schemas for project configs.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.33.0
// protoc v3.21.7
// source: go.chromium.org/luci/buildbucket/proto/project_config.proto
package buildbucketpb
import (
_ "go.chromium.org/luci/common/proto"
v1 "go.chromium.org/luci/resultdb/proto/v1"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
durationpb "google.golang.org/protobuf/types/known/durationpb"
wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// Toggle is a boolean with an extra state UNSET.
// When protobuf messages are merged, UNSET does not overwrite an existing
// value.
// TODO(nodir): replace with Trinary in ../common.proto.
type Toggle int32
const (
Toggle_UNSET Toggle = 0
Toggle_YES Toggle = 1
Toggle_NO Toggle = 2
)
// Enum value maps for Toggle.
var (
Toggle_name = map[int32]string{
0: "UNSET",
1: "YES",
2: "NO",
}
Toggle_value = map[string]int32{
"UNSET": 0,
"YES": 1,
"NO": 2,
}
)
func (x Toggle) Enum() *Toggle {
p := new(Toggle)
*p = x
return p
}
func (x Toggle) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Toggle) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes[0].Descriptor()
}
func (Toggle) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes[0]
}
func (x Toggle) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Toggle.Descriptor instead.
func (Toggle) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{0}
}
type Acl_Role int32
const (
Acl_READER Acl_Role = 0
Acl_SCHEDULER Acl_Role = 1
Acl_WRITER Acl_Role = 2
)
// Enum value maps for Acl_Role.
var (
Acl_Role_name = map[int32]string{
0: "READER",
1: "SCHEDULER",
2: "WRITER",
}
Acl_Role_value = map[string]int32{
"READER": 0,
"SCHEDULER": 1,
"WRITER": 2,
}
)
func (x Acl_Role) Enum() *Acl_Role {
p := new(Acl_Role)
*p = x
return p
}
func (x Acl_Role) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Acl_Role) Descriptor() protoreflect.EnumDescriptor {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes[1].Descriptor()
}
func (Acl_Role) Type() protoreflect.EnumType {
return &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes[1]
}
func (x Acl_Role) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Acl_Role.Descriptor instead.
func (Acl_Role) EnumDescriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{0, 0}
}
// Deprecated in favor of LUCI Realms. This proto is totally unused now, exists
// only to not break older configs that still may have deprecated fields
// populated.
type Acl struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
Role Acl_Role `protobuf:"varint,1,opt,name=role,proto3,enum=buildbucket.Acl_Role" json:"role,omitempty"`
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
Group string `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"`
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
Identity string `protobuf:"bytes,3,opt,name=identity,proto3" json:"identity,omitempty"`
}
func (x *Acl) Reset() {
*x = Acl{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Acl) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Acl) ProtoMessage() {}
func (x *Acl) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Acl.ProtoReflect.Descriptor instead.
func (*Acl) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{0}
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
func (x *Acl) GetRole() Acl_Role {
if x != nil {
return x.Role
}
return Acl_READER
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
func (x *Acl) GetGroup() string {
if x != nil {
return x.Group
}
return ""
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
func (x *Acl) GetIdentity() string {
if x != nil {
return x.Identity
}
return ""
}
// Defines a swarmbucket builder. A builder has a name, a category and specifies
// what should happen if a build is scheduled to that builder.
//
// SECURITY WARNING: if adding more fields to this message, keep in mind that
// a user that has permissions to schedule a build to the bucket, can override
// this config.
//
// Next tag: 40.
type BuilderConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the builder.
//
// If a builder name, will be propagated to "builder" build tag and
// "buildername" recipe property.
//
// A builder name must be unique within the bucket, and match regex
// ^[a-zA-Z0-9\-_.\(\) ]{1,128}$.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Backend for this builder.
// If unset, builds are scheduled using the legacy pipeline.
Backend *BuilderConfig_Backend `protobuf:"bytes,32,opt,name=backend,proto3" json:"backend,omitempty"`
// Alternate backend to use for this builder when the
// "luci.buildbucket.backend_alt" experiment is enabled. Works even when
// `backend` is empty. Useful for migrations to new backends.
BackendAlt *BuilderConfig_Backend `protobuf:"bytes,33,opt,name=backend_alt,json=backendAlt,proto3" json:"backend_alt,omitempty"`
// Hostname of the swarming instance, e.g. "chromium-swarm.appspot.com".
// Required, but defaults to deprecated Swarming.hostname.
SwarmingHost string `protobuf:"bytes,21,opt,name=swarming_host,json=swarmingHost,proto3" json:"swarming_host,omitempty"`
// Builder category. Will be used for visual grouping, for example in Code Review.
Category string `protobuf:"bytes,6,opt,name=category,proto3" json:"category,omitempty"`
// DEPRECATED.
// Used only to enable "vpython:native-python-wrapper"
// Does NOT actually propagate to swarming.
SwarmingTags []string `protobuf:"bytes,2,rep,name=swarming_tags,json=swarmingTags,proto3" json:"swarming_tags,omitempty"`
// A requirement for a bot to execute the build.
//
// Supports 2 forms:
// - "<key>:<value>" - require a bot with this dimension.
// This is a shortcut for "0:<key>:<value>", see below.
// - "<expiration_secs>:<key>:<value>" - wait for up to expiration_secs.
// for a bot with the dimension.
// Supports multiple values for different keys and expiration_secs.
// expiration_secs must be a multiple of 60.
//
// If this builder is defined in a bucket, dimension "pool" is defaulted
// to the name of the bucket. See Bucket message below.
Dimensions []string `protobuf:"bytes,3,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
// Specifies that a recipe to run.
// DEPRECATED: use exe.
Recipe *BuilderConfig_Recipe `protobuf:"bytes,4,opt,name=recipe,proto3" json:"recipe,omitempty"`
// What to run when a build is ready to start.
Exe *Executable `protobuf:"bytes,23,opt,name=exe,proto3" json:"exe,omitempty"`
// A JSON object representing Build.input.properties.
// Individual object properties can be overridden with
// ScheduleBuildRequest.properties.
Properties string `protobuf:"bytes,24,opt,name=properties,proto3" json:"properties,omitempty"`
// A list of top-level property names which can be overridden in
// ScheduleBuildRequest.
//
// If this field is the EXACT value `["*"]` then all properties are permitted
// to be overridden.
//
// NOTE: Some executables (such as the recipe engine) can have drastic
// behavior differences based on some properties (for example, the "recipe"
// property). If you allow the "recipe" property to be overridden, then anyone
// with the 'buildbucket.builds.add' permission could create a Build for this
// Builder running a different recipe (from the same recipe repo).
AllowedPropertyOverrides []string `protobuf:"bytes,34,rep,name=allowed_property_overrides,json=allowedPropertyOverrides,proto3" json:"allowed_property_overrides,omitempty"`
// Swarming task priority.
// A value between 20 and 255, inclusive.
// Lower means more important.
//
// The default value is configured in
// https://chrome-internal.googlesource.com/infradata/config/+/master/configs/cr-buildbucket/swarming_task_template.json
//
// See also https://chromium.googlesource.com/infra/luci/luci-py.git/+/master/appengine/swarming/doc/User-Guide.md#request
Priority uint32 `protobuf:"varint,5,opt,name=priority,proto3" json:"priority,omitempty"`
// Maximum build execution time.
//
// Not to be confused with pending time.
//
// If the timeout is reached, the task will be signaled according to the
// `deadline` section of
// https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md
// and status_details.timeout is set.
//
// The task will have `grace_period` amount of time to handle cleanup
// before being forcefully terminated.
//
// NOTE: This corresponds with Build.execution_timeout and
// ScheduleBuildRequest.execution_timeout; The name `execution_timeout_secs` and
// uint32 type are relics of the past.
ExecutionTimeoutSecs uint32 `protobuf:"varint,7,opt,name=execution_timeout_secs,json=executionTimeoutSecs,proto3" json:"execution_timeout_secs,omitempty"`
// Maximum amount of time to wait for the next heartbeat(i.e UpdateBuild).
//
// After a build is started, the client can send heartbeat requests
// periodically. Buildbucket will mark the build as INFRA_FAILURE, if the
// timeout threshold reaches. It’s to fail a build more quickly, rather than
// waiting for `execution_timeout_secs` to expire. Some V1 users, which don't
// have real task backends, can utilize this feature.
//
// By default, the value is 0, which means no timeout threshold is applied.
//
// Note: this field only takes effect for TaskBackendLite builds. For builds
// with full-featured TaskBackend Implementation, `sync_backend_tasks` cron
// job fulfills the similar functionality.
HeartbeatTimeoutSecs uint32 `protobuf:"varint,39,opt,name=heartbeat_timeout_secs,json=heartbeatTimeoutSecs,proto3" json:"heartbeat_timeout_secs,omitempty"`
// Maximum build pending time.
//
// If the timeout is reached, the build is marked as INFRA_FAILURE status
// and both status_details.{timeout, resource_exhaustion} are set.
//
// NOTE: This corresponds with Build.scheduling_timeout and
// ScheduleBuildRequest.scheduling_timeout; The name `expiration_secs` and
// uint32 type are relics of the past.
ExpirationSecs uint32 `protobuf:"varint,20,opt,name=expiration_secs,json=expirationSecs,proto3" json:"expiration_secs,omitempty"`
// Amount of cleanup time after execution_timeout_secs.
//
// After being signaled according to execution_timeout_secs, the task will
// have this many seconds to clean up before being forcefully terminated.
//
// The signalling process is explained in the `deadline` section of
// https://chromium.googlesource.com/infra/luci/luci-py/+/HEAD/client/LUCI_CONTEXT.md.
//
// Defaults to 30s if unspecified or 0.
GracePeriod *durationpb.Duration `protobuf:"bytes,31,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"`
// If YES, will request that swarming wait until it sees at least one bot
// report a superset of the requested dimensions.
//
// If UNSET/NO (the default), swarming will immediately reject a build which
// specifies a dimension set that it's never seen before.
//
// Usually you want this to be UNSET/NO, unless you know that some external
// system is working to add bots to swarming which will match the requested
// dimensions within expiration_secs. Otherwise you'll have to wait for all of
// `expiration_secs` until swarming tells you "Sorry, nothing has dimension
// `os:MadeUpOS`".
WaitForCapacity Trinary `protobuf:"varint,29,opt,name=wait_for_capacity,json=waitForCapacity,proto3,enum=buildbucket.v2.Trinary" json:"wait_for_capacity,omitempty"`
// Caches that should be present on the bot.
Caches []*BuilderConfig_CacheEntry `protobuf:"bytes,9,rep,name=caches,proto3" json:"caches,omitempty"`
// If YES, generate monotonically increasing contiguous numbers for each
// build, unique within the builder.
// Note: this limits the build creation rate in this builder to 5 per second.
BuildNumbers Toggle `protobuf:"varint,16,opt,name=build_numbers,json=buildNumbers,proto3,enum=buildbucket.Toggle" json:"build_numbers,omitempty"`
// Email of a service account to run the build as or literal 'bot' string to
// use Swarming bot's account (if available). Passed directly to Swarming.
// Subject to Swarming's ACLs.
ServiceAccount string `protobuf:"bytes,12,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
// If YES, each builder will get extra dimension "builder:<builder name>"
// added. Default is UNSET.
//
// For example, this config
//
// builder {
// name: "linux-compiler"
// dimension: "builder:linux-compiler"
// }
//
// is equivalent to this:
//
// builders {
// name: "linux-compiler"
// auto_builder_dimension: YES
// }
//
// (see also http://docs.buildbot.net/0.8.9/manual/cfg-properties.html#interpolate)
// but are currently against complicating config with this.
AutoBuilderDimension Toggle `protobuf:"varint,17,opt,name=auto_builder_dimension,json=autoBuilderDimension,proto3,enum=buildbucket.Toggle" json:"auto_builder_dimension,omitempty"`
// DEPRECATED
//
// Set the "luci.non_production" experiment in the 'experiments' field below,
// instead.
//
// If YES, sets the "luci.non_production" experiment to 100% for
// builds on this builder.
//
// See the documentation on `experiments` for more details about the
// "luci.non_production" experiment.
Experimental Toggle `protobuf:"varint,18,opt,name=experimental,proto3,enum=buildbucket.Toggle" json:"experimental,omitempty"`
// DEPRECATED
//
// Set the "luci.buildbucket.canary_software" experiment in the 'experiments'
// field below, instead.
//
// Percentage of builds that should use a canary swarming task template.
// A value from 0 to 100.
// If omitted, a global server-defined default percentage is used.
TaskTemplateCanaryPercentage *wrapperspb.UInt32Value `protobuf:"bytes,22,opt,name=task_template_canary_percentage,json=taskTemplateCanaryPercentage,proto3" json:"task_template_canary_percentage,omitempty"`
// A mapping of experiment name to the percentage chance (0-100) that it will
// apply to builds generated from this builder. Experiments are simply strings
// which various parts of the stack (from LUCI services down to your build
// scripts) may react to in order to enable certain functionality.
//
// You may set any experiments you like, but experiments beginning with
// "luci." are reserved. Experiment names must conform to
//
// [a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*
//
// Any experiments which are selected for a build show up in
// `Build.input.experiments`.
//
// Its recommended that you confine your experiments to smaller, more explicit
// targets. For example, prefer the experiment named
// "my_project.use_mysoftware_v2_crbug_999999" rather than "use_next_gen".
//
// It is NOT recommended to 'piggy-back' on top of existing experiment names
// for a different purpose. However if you want to, you can have your build
// treat the presence of ANY experiment as equivalent to "luci.non_production"
// being set for your build (i.e. "if any experiment is set, don't affect
// production"). This is ulimately up to you, however.
//
// # Well-known experiments
//
// Buildbucket has a number of 'global' experiments which are in various
// states of deployment at any given time. For the current state, see
// go/buildbucket-settings.cfg.
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"`
// This field will set the default value of the "critical" field of
// all the builds of this builder. Please refer to build.proto for
// the meaning of this field.
//
// This value can be overridden by ScheduleBuildRequest.critical
Critical Trinary `protobuf:"varint,25,opt,name=critical,proto3,enum=buildbucket.v2.Trinary" json:"critical,omitempty"`
// Used to enable and configure ResultDB integration.
Resultdb *BuilderConfig_ResultDB `protobuf:"bytes,26,opt,name=resultdb,proto3" json:"resultdb,omitempty"`
// Description that helps users understand the purpose of the builder, in
// HTML.
DescriptionHtml string `protobuf:"bytes,30,opt,name=description_html,json=descriptionHtml,proto3" json:"description_html,omitempty"`
ShadowBuilderAdjustments *BuilderConfig_ShadowBuilderAdjustments `protobuf:"bytes,35,opt,name=shadow_builder_adjustments,json=shadowBuilderAdjustments,proto3" json:"shadow_builder_adjustments,omitempty"`
// This field will set the default value of the "retriable" field of
// all the builds of this builder. Please refer to build.proto for
// the meaning of this field.
//
// This value can be overridden by ScheduleBuildRequest.retriable
Retriable Trinary `protobuf:"varint,36,opt,name=retriable,proto3,enum=buildbucket.v2.Trinary" json:"retriable,omitempty"`
BuilderHealthMetricsLinks *BuilderConfig_BuilderHealthLinks `protobuf:"bytes,37,opt,name=builder_health_metrics_links,json=builderHealthMetricsLinks,proto3" json:"builder_health_metrics_links,omitempty"`
// The owning team's contact email. This team is responsible for fixing
// any builder health issues (see Builder.Metadata.HealthSpec).
// Will be validated as an email address, but nothing else.
// It will display on milo and could be public facing, so please don't put anything sensitive.
ContactTeamEmail string `protobuf:"bytes,38,opt,name=contact_team_email,json=contactTeamEmail,proto3" json:"contact_team_email,omitempty"`
}
func (x *BuilderConfig) Reset() {
*x = BuilderConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuilderConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuilderConfig) ProtoMessage() {}
func (x *BuilderConfig) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuilderConfig.ProtoReflect.Descriptor instead.
func (*BuilderConfig) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1}
}
func (x *BuilderConfig) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *BuilderConfig) GetBackend() *BuilderConfig_Backend {
if x != nil {
return x.Backend
}
return nil
}
func (x *BuilderConfig) GetBackendAlt() *BuilderConfig_Backend {
if x != nil {
return x.BackendAlt
}
return nil
}
func (x *BuilderConfig) GetSwarmingHost() string {
if x != nil {
return x.SwarmingHost
}
return ""
}
func (x *BuilderConfig) GetCategory() string {
if x != nil {
return x.Category
}
return ""
}
func (x *BuilderConfig) GetSwarmingTags() []string {
if x != nil {
return x.SwarmingTags
}
return nil
}
func (x *BuilderConfig) GetDimensions() []string {
if x != nil {
return x.Dimensions
}
return nil
}
func (x *BuilderConfig) GetRecipe() *BuilderConfig_Recipe {
if x != nil {
return x.Recipe
}
return nil
}
func (x *BuilderConfig) GetExe() *Executable {
if x != nil {
return x.Exe
}
return nil
}
func (x *BuilderConfig) GetProperties() string {
if x != nil {
return x.Properties
}
return ""
}
func (x *BuilderConfig) GetAllowedPropertyOverrides() []string {
if x != nil {
return x.AllowedPropertyOverrides
}
return nil
}
func (x *BuilderConfig) GetPriority() uint32 {
if x != nil {
return x.Priority
}
return 0
}
func (x *BuilderConfig) GetExecutionTimeoutSecs() uint32 {
if x != nil {
return x.ExecutionTimeoutSecs
}
return 0
}
func (x *BuilderConfig) GetHeartbeatTimeoutSecs() uint32 {
if x != nil {
return x.HeartbeatTimeoutSecs
}
return 0
}
func (x *BuilderConfig) GetExpirationSecs() uint32 {
if x != nil {
return x.ExpirationSecs
}
return 0
}
func (x *BuilderConfig) GetGracePeriod() *durationpb.Duration {
if x != nil {
return x.GracePeriod
}
return nil
}
func (x *BuilderConfig) GetWaitForCapacity() Trinary {
if x != nil {
return x.WaitForCapacity
}
return Trinary_UNSET
}
func (x *BuilderConfig) GetCaches() []*BuilderConfig_CacheEntry {
if x != nil {
return x.Caches
}
return nil
}
func (x *BuilderConfig) GetBuildNumbers() Toggle {
if x != nil {
return x.BuildNumbers
}
return Toggle_UNSET
}
func (x *BuilderConfig) GetServiceAccount() string {
if x != nil {
return x.ServiceAccount
}
return ""
}
func (x *BuilderConfig) GetAutoBuilderDimension() Toggle {
if x != nil {
return x.AutoBuilderDimension
}
return Toggle_UNSET
}
func (x *BuilderConfig) GetExperimental() Toggle {
if x != nil {
return x.Experimental
}
return Toggle_UNSET
}
func (x *BuilderConfig) GetTaskTemplateCanaryPercentage() *wrapperspb.UInt32Value {
if x != nil {
return x.TaskTemplateCanaryPercentage
}
return nil
}
func (x *BuilderConfig) GetExperiments() map[string]int32 {
if x != nil {
return x.Experiments
}
return nil
}
func (x *BuilderConfig) GetCritical() Trinary {
if x != nil {
return x.Critical
}
return Trinary_UNSET
}
func (x *BuilderConfig) GetResultdb() *BuilderConfig_ResultDB {
if x != nil {
return x.Resultdb
}
return nil
}
func (x *BuilderConfig) GetDescriptionHtml() string {
if x != nil {
return x.DescriptionHtml
}
return ""
}
func (x *BuilderConfig) GetShadowBuilderAdjustments() *BuilderConfig_ShadowBuilderAdjustments {
if x != nil {
return x.ShadowBuilderAdjustments
}
return nil
}
func (x *BuilderConfig) GetRetriable() Trinary {
if x != nil {
return x.Retriable
}
return Trinary_UNSET
}
func (x *BuilderConfig) GetBuilderHealthMetricsLinks() *BuilderConfig_BuilderHealthLinks {
if x != nil {
return x.BuilderHealthMetricsLinks
}
return nil
}
func (x *BuilderConfig) GetContactTeamEmail() string {
if x != nil {
return x.ContactTeamEmail
}
return ""
}
// Configuration of buildbucket-swarming integration for one bucket.
type Swarming struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Configuration for each builder.
// Swarming tasks are created only for builds for builders that are not
// explicitly specified.
Builders []*BuilderConfig `protobuf:"bytes,4,rep,name=builders,proto3" json:"builders,omitempty"`
// DEPRECATED. Use builder_defaults.task_template_canary_percentage instead.
// Setting this field sets builder_defaults.task_template_canary_percentage.
TaskTemplateCanaryPercentage *wrapperspb.UInt32Value `protobuf:"bytes,5,opt,name=task_template_canary_percentage,json=taskTemplateCanaryPercentage,proto3" json:"task_template_canary_percentage,omitempty"`
}
func (x *Swarming) Reset() {
*x = Swarming{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Swarming) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Swarming) ProtoMessage() {}
func (x *Swarming) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Swarming.ProtoReflect.Descriptor instead.
func (*Swarming) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{2}
}
func (x *Swarming) GetBuilders() []*BuilderConfig {
if x != nil {
return x.Builders
}
return nil
}
func (x *Swarming) GetTaskTemplateCanaryPercentage() *wrapperspb.UInt32Value {
if x != nil {
return x.TaskTemplateCanaryPercentage
}
return nil
}
// Defines one bucket in buildbucket.cfg
type Bucket struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the bucket. Names are unique within one instance of buildbucket.
// If another project already uses this name, a config will be rejected.
// Name reservation is first-come first-serve.
// Regex: ^[a-z0-9\-_.]{1,100}$
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Deprecated and ignored. Use Realms ACLs instead.
//
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
Acls []*Acl `protobuf:"bytes,2,rep,name=acls,proto3" json:"acls,omitempty"`
// Buildbucket-swarming integration.
// Mutually exclusive with builder_template.
Swarming *Swarming `protobuf:"bytes,3,opt,name=swarming,proto3" json:"swarming,omitempty"`
// Name of this bucket's shadow bucket for the led builds to use.
//
// If omitted, it implies that led builds of this bucket reuse this bucket.
// This is allowed, but note that it means the led builds will be in
// the same bucket/builder with the real builds, which means Any users with
// led access will be able to do ANYTHING that this bucket's bots and
// service_accounts can do.
//
// It could also be noisy, such as:
// - On the LUCI UI, led builds will show under the same builder as the real builds,
// - Led builds will share the same ResultDB config as the real builds, so
// their test results will be exported to the same BigQuery tables.
// - Subscribers of Buildbucket PubSub need to filter them out.
//
// Note: Don't set it if it's a dynamic bucket. Currently, a dynamic bucket is
// not allowed to have a shadow bucket.
Shadow string `protobuf:"bytes,5,opt,name=shadow,proto3" json:"shadow,omitempty"`
// Security constraints of the bucket.
//
// This field is used by CreateBuild on this bucket to constrain proposed
// Builds. If a build doesn't meet the constraints, it will be rejected.
// For shadow buckets, this is what prevents the bucket from allowing
// totally arbitrary Builds.
//
// `lucicfg` will automatically populate this for the "primary" bucket
// when using `luci.builder`.
//
// Buildbuceket.CreateBuild will validate the incoming requests to make sure
// they meet these constraints.
Constraints *Bucket_Constraints `protobuf:"bytes,6,opt,name=constraints,proto3" json:"constraints,omitempty"`
// Template of builders in a dynamic bucket.
// Mutually exclusive with swarming.
//
// If is not nil, the bucket is a dynamic LUCI bucket.
// If a bucket has both swarming and dynamic_builder_template as nil,
// the bucket is a legacy one.
DynamicBuilderTemplate *Bucket_DynamicBuilderTemplate `protobuf:"bytes,7,opt,name=dynamic_builder_template,json=dynamicBuilderTemplate,proto3" json:"dynamic_builder_template,omitempty"`
}
func (x *Bucket) Reset() {
*x = Bucket{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Bucket) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Bucket) ProtoMessage() {}
func (x *Bucket) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Bucket.ProtoReflect.Descriptor instead.
func (*Bucket) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{3}
}
func (x *Bucket) GetName() string {
if x != nil {
return x.Name
}
return ""
}
// Deprecated: Marked as deprecated in go.chromium.org/luci/buildbucket/proto/project_config.proto.
func (x *Bucket) GetAcls() []*Acl {
if x != nil {
return x.Acls
}
return nil
}
func (x *Bucket) GetSwarming() *Swarming {
if x != nil {
return x.Swarming
}
return nil
}
func (x *Bucket) GetShadow() string {
if x != nil {
return x.Shadow
}
return ""
}
func (x *Bucket) GetConstraints() *Bucket_Constraints {
if x != nil {
return x.Constraints
}
return nil
}
func (x *Bucket) GetDynamicBuilderTemplate() *Bucket_DynamicBuilderTemplate {
if x != nil {
return x.DynamicBuilderTemplate
}
return nil
}
// Schema of buildbucket.cfg file, a project config.
type BuildbucketCfg struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// All buckets defined for this project.
Buckets []*Bucket `protobuf:"bytes,1,rep,name=buckets,proto3" json:"buckets,omitempty"`
// Global configs are shared among all buckets and builders defined inside
// this project.
CommonConfig *BuildbucketCfg_CommonConfig `protobuf:"bytes,5,opt,name=common_config,json=commonConfig,proto3" json:"common_config,omitempty"`
}
func (x *BuildbucketCfg) Reset() {
*x = BuildbucketCfg{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildbucketCfg) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildbucketCfg) ProtoMessage() {}
func (x *BuildbucketCfg) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildbucketCfg.ProtoReflect.Descriptor instead.
func (*BuildbucketCfg) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{4}
}
func (x *BuildbucketCfg) GetBuckets() []*Bucket {
if x != nil {
return x.Buckets
}
return nil
}
func (x *BuildbucketCfg) GetCommonConfig() *BuildbucketCfg_CommonConfig {
if x != nil {
return x.CommonConfig
}
return nil
}
// Describes a cache directory persisted on a bot.
// Prerequisite reading in BuildInfra.Swarming.CacheEntry message in
// build.proto.
//
// To share a builder cache among multiple builders, it can be overridden:
//
// builders {
// name: "a"
// caches {
// path: "builder"
// name: "my_shared_cache"
// }
// }
// builders {
// name: "b"
// caches {
// path: "builder"
// name: "my_shared_cache"
// }
// }
//
// Builders "a" and "b" share their builder cache. If an "a" build ran on a
// bot and left some files in the builder cache and then a "b" build runs on
// the same bot, the same files will be available in the builder cache.
type BuilderConfig_CacheEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Identifier of the cache. Length is limited to 128.
// Defaults to path.
// See also BuildInfra.Swarming.CacheEntry.name in build.proto.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Relative path where the cache in mapped into. Required.
// See also BuildInfra.Swarming.CacheEntry.path in build.proto.
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
// Number of seconds to wait for a bot with a warm cache to pick up the
// task, before falling back to a bot with a cold (non-existent) cache.
// See also BuildInfra.Swarming.CacheEntry.wait_for_warm_cache in build.proto.
// The value must be multiples of 60 seconds.
WaitForWarmCacheSecs int32 `protobuf:"varint,3,opt,name=wait_for_warm_cache_secs,json=waitForWarmCacheSecs,proto3" json:"wait_for_warm_cache_secs,omitempty"`
// Environment variable with this name will be set to the path to the cache
// directory.
EnvVar string `protobuf:"bytes,4,opt,name=env_var,json=envVar,proto3" json:"env_var,omitempty"`
}
func (x *BuilderConfig_CacheEntry) Reset() {
*x = BuilderConfig_CacheEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuilderConfig_CacheEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuilderConfig_CacheEntry) ProtoMessage() {}
func (x *BuilderConfig_CacheEntry) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuilderConfig_CacheEntry.ProtoReflect.Descriptor instead.
func (*BuilderConfig_CacheEntry) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 0}
}
func (x *BuilderConfig_CacheEntry) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *BuilderConfig_CacheEntry) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *BuilderConfig_CacheEntry) GetWaitForWarmCacheSecs() int32 {
if x != nil {
return x.WaitForWarmCacheSecs
}
return 0
}
func (x *BuilderConfig_CacheEntry) GetEnvVar() string {
if x != nil {
return x.EnvVar
}
return ""
}
// DEPRECATED. See BuilderConfig.executable and BuilderConfig.properties
//
// To specify a recipe name, pass "$recipe_engine" property which is a JSON
// object having "recipe" property.
type BuilderConfig_Recipe struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name of the recipe to run.
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
// The CIPD package to fetch the recipes from.
//
// Typically the package will look like:
//
// infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build
//
// Recipes bundled from internal repositories are typically under
// `infra_internal/recipe_bundles/...`.
//
// But if you're building your own recipe bundles, they could be located
// elsewhere.
CipdPackage string `protobuf:"bytes,6,opt,name=cipd_package,json=cipdPackage,proto3" json:"cipd_package,omitempty"`
// The CIPD version to fetch. This can be a lower-cased git ref (like
// `refs/heads/main` or `head`), or it can be a cipd tag (like
// `git_revision:dead...beef`).
//
// The default is `head`, which corresponds to the git repo's HEAD ref. This
// is typically (but not always) a symbolic ref for `refs/heads/master`.
CipdVersion string `protobuf:"bytes,5,opt,name=cipd_version,json=cipdVersion,proto3" json:"cipd_version,omitempty"`
// Colon-separated build properties to set.
// Ignored if BuilderConfig.properties is set.
//
// Use this field for string properties and use properties_j for other
// types.
Properties []string `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty"`
// Same as properties, but the value must valid JSON. For example
//
// properties_j: "a:1"
//
// means property a is a number 1, not string "1".
//
// If null, it means no property must be defined. In particular, it removes
// a default value for the property, if any.
//
// Fields properties and properties_j can be used together, but cannot both
// specify values for same property.
PropertiesJ []string `protobuf:"bytes,4,rep,name=properties_j,json=propertiesJ,proto3" json:"properties_j,omitempty"`
}
func (x *BuilderConfig_Recipe) Reset() {
*x = BuilderConfig_Recipe{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuilderConfig_Recipe) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuilderConfig_Recipe) ProtoMessage() {}
func (x *BuilderConfig_Recipe) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuilderConfig_Recipe.ProtoReflect.Descriptor instead.
func (*BuilderConfig_Recipe) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 1}
}
func (x *BuilderConfig_Recipe) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *BuilderConfig_Recipe) GetCipdPackage() string {
if x != nil {
return x.CipdPackage
}
return ""
}
func (x *BuilderConfig_Recipe) GetCipdVersion() string {
if x != nil {
return x.CipdVersion
}
return ""
}
func (x *BuilderConfig_Recipe) GetProperties() []string {
if x != nil {
return x.Properties
}
return nil
}
func (x *BuilderConfig_Recipe) GetPropertiesJ() []string {
if x != nil {
return x.PropertiesJ
}
return nil
}
// ResultDB-specific information for a builder.
type BuilderConfig_ResultDB struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Whether to enable ResultDB:Buildbucket integration.
Enable bool `protobuf:"varint,1,opt,name=enable,proto3" json:"enable,omitempty"`
// Configuration for exporting test results to BigQuery.
// This can have multiple values to export results to multiple BigQuery
// tables, or to support multiple test result predicates.
BqExports []*v1.BigQueryExport `protobuf:"bytes,2,rep,name=bq_exports,json=bqExports,proto3" json:"bq_exports,omitempty"`
// Deprecated. Any values specified here are ignored.
HistoryOptions *v1.HistoryOptions `protobuf:"bytes,3,opt,name=history_options,json=historyOptions,proto3" json:"history_options,omitempty"`
}
func (x *BuilderConfig_ResultDB) Reset() {
*x = BuilderConfig_ResultDB{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuilderConfig_ResultDB) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuilderConfig_ResultDB) ProtoMessage() {}
func (x *BuilderConfig_ResultDB) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuilderConfig_ResultDB.ProtoReflect.Descriptor instead.
func (*BuilderConfig_ResultDB) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 2}
}
func (x *BuilderConfig_ResultDB) GetEnable() bool {
if x != nil {
return x.Enable
}
return false
}
func (x *BuilderConfig_ResultDB) GetBqExports() []*v1.BigQueryExport {
if x != nil {
return x.BqExports
}
return nil
}
func (x *BuilderConfig_ResultDB) GetHistoryOptions() *v1.HistoryOptions {
if x != nil {
return x.HistoryOptions
}
return nil
}
// Buildbucket backend-specific information for a builder.
type BuilderConfig_Backend struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// URI for this backend, e.g. "swarming://chromium-swarm".
Target string `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
// A string interpreted as JSON encapsulating configuration for this
// backend.
// TODO(crbug.com/1042991): Move priority, wait_for_capacity, etc. here.
ConfigJson string `protobuf:"bytes,2,opt,name=config_json,json=configJson,proto3" json:"config_json,omitempty"`
}
func (x *BuilderConfig_Backend) Reset() {
*x = BuilderConfig_Backend{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuilderConfig_Backend) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuilderConfig_Backend) ProtoMessage() {}
func (x *BuilderConfig_Backend) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuilderConfig_Backend.ProtoReflect.Descriptor instead.
func (*BuilderConfig_Backend) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 3}
}
func (x *BuilderConfig_Backend) GetTarget() string {
if x != nil {
return x.Target
}
return ""
}
func (x *BuilderConfig_Backend) GetConfigJson() string {
if x != nil {
return x.ConfigJson
}
return ""
}
// Configurations that need to be replaced when running a led build for this
// Builder.
//
// Note: Builders in a dynamic bucket cannot have ShadowBuilderAdjustments.
type BuilderConfig_ShadowBuilderAdjustments struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
ServiceAccount string `protobuf:"bytes,1,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
Pool string `protobuf:"bytes,2,opt,name=pool,proto3" json:"pool,omitempty"`
// A JSON object contains properties to override Build.input.properties
// when creating the led build.
// Same as ScheduleBuild, the top-level properties here will override the
// ones in builder config, instead of deep merge.
Properties string `protobuf:"bytes,3,opt,name=properties,proto3" json:"properties,omitempty"`
// Overrides default dimensions defined by builder config.
// Same as ScheduleBuild,
// * dimensions with empty value will be excluded.
// * same key dimensions with both empty and non-empty values are disallowed.
//
// Note: for historical reason, pool can be adjusted individually.
// If pool is adjusted individually, the same change should be reflected in
// dimensions, and vice versa.
Dimensions []string `protobuf:"bytes,4,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
}
func (x *BuilderConfig_ShadowBuilderAdjustments) Reset() {
*x = BuilderConfig_ShadowBuilderAdjustments{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuilderConfig_ShadowBuilderAdjustments) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuilderConfig_ShadowBuilderAdjustments) ProtoMessage() {}
func (x *BuilderConfig_ShadowBuilderAdjustments) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuilderConfig_ShadowBuilderAdjustments.ProtoReflect.Descriptor instead.
func (*BuilderConfig_ShadowBuilderAdjustments) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 5}
}
func (x *BuilderConfig_ShadowBuilderAdjustments) GetServiceAccount() string {
if x != nil {
return x.ServiceAccount
}
return ""
}
func (x *BuilderConfig_ShadowBuilderAdjustments) GetPool() string {
if x != nil {
return x.Pool
}
return ""
}
func (x *BuilderConfig_ShadowBuilderAdjustments) GetProperties() string {
if x != nil {
return x.Properties
}
return ""
}
func (x *BuilderConfig_ShadowBuilderAdjustments) GetDimensions() []string {
if x != nil {
return x.Dimensions
}
return nil
}
type BuilderConfig_BuilderHealthLinks struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Mapping of username domain to clickable link for documentation on the health
// metrics and how they were calculated.
//
// The empty domain value will be used as a fallback for anonymous users, or
// if the user identity domain doesn't have a matching entry in this map.
//
// If linking an internal google link (say g3doc), use a go-link instead of a
// raw url.
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"`
// Mapping of username domain to clickable link for data visualization or
// dashboards for the health metrics.
//
// Similar to doc_links, the empty domain value will be used as a fallback for
// anonymous users, or if the user identity domain doesn't have a matching
// entry in this map.
//
// If linking an internal google link (say g3doc), use a go-link instead of a
// raw url.
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"`
}
func (x *BuilderConfig_BuilderHealthLinks) Reset() {
*x = BuilderConfig_BuilderHealthLinks{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuilderConfig_BuilderHealthLinks) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuilderConfig_BuilderHealthLinks) ProtoMessage() {}
func (x *BuilderConfig_BuilderHealthLinks) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuilderConfig_BuilderHealthLinks.ProtoReflect.Descriptor instead.
func (*BuilderConfig_BuilderHealthLinks) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{1, 6}
}
func (x *BuilderConfig_BuilderHealthLinks) GetDocLinks() map[string]string {
if x != nil {
return x.DocLinks
}
return nil
}
func (x *BuilderConfig_BuilderHealthLinks) GetDataLinks() map[string]string {
if x != nil {
return x.DataLinks
}
return nil
}
// Constraints for a bucket.
//
// Buildbucket.CreateBuild will validate the incoming requests to make sure
// they meet these constraints.
type Bucket_Constraints struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Constraints allowed pools.
// Builds in this bucket must have a "pool" dimension which matches an entry in this list.
Pools []string `protobuf:"bytes,1,rep,name=pools,proto3" json:"pools,omitempty"`
// Only service accounts in this list are allowed.
ServiceAccounts []string `protobuf:"bytes,2,rep,name=service_accounts,json=serviceAccounts,proto3" json:"service_accounts,omitempty"`
}
func (x *Bucket_Constraints) Reset() {
*x = Bucket_Constraints{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Bucket_Constraints) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Bucket_Constraints) ProtoMessage() {}
func (x *Bucket_Constraints) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Bucket_Constraints.ProtoReflect.Descriptor instead.
func (*Bucket_Constraints) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{3, 0}
}
func (x *Bucket_Constraints) GetPools() []string {
if x != nil {
return x.Pools
}
return nil
}
func (x *Bucket_Constraints) GetServiceAccounts() []string {
if x != nil {
return x.ServiceAccounts
}
return nil
}
// Template of builders in a dynamic bucket.
type Bucket_DynamicBuilderTemplate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The Builder template which is shared among all builders in this dynamic
// bucket.
Template *BuilderConfig `protobuf:"bytes,1,opt,name=template,proto3" json:"template,omitempty"`
}
func (x *Bucket_DynamicBuilderTemplate) Reset() {
*x = Bucket_DynamicBuilderTemplate{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Bucket_DynamicBuilderTemplate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Bucket_DynamicBuilderTemplate) ProtoMessage() {}
func (x *Bucket_DynamicBuilderTemplate) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Bucket_DynamicBuilderTemplate.ProtoReflect.Descriptor instead.
func (*Bucket_DynamicBuilderTemplate) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{3, 1}
}
func (x *Bucket_DynamicBuilderTemplate) GetTemplate() *BuilderConfig {
if x != nil {
return x.Template
}
return nil
}
type BuildbucketCfg_Topic struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Topic name format should be like
// "projects/<projid>/topics/<topicid>" and conforms to the guideline:
// https://cloud.google.com/pubsub/docs/admin#resource_names.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The compression method that `build_large_fields` uses in pubsub message
// data. By default, it's ZLIB as this is the most common one and is the
// built-in lib in many programming languages.
Compression Compression `protobuf:"varint,2,opt,name=compression,proto3,enum=buildbucket.v2.Compression" json:"compression,omitempty"`
}
func (x *BuildbucketCfg_Topic) Reset() {
*x = BuildbucketCfg_Topic{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildbucketCfg_Topic) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildbucketCfg_Topic) ProtoMessage() {}
func (x *BuildbucketCfg_Topic) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildbucketCfg_Topic.ProtoReflect.Descriptor instead.
func (*BuildbucketCfg_Topic) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{4, 0}
}
func (x *BuildbucketCfg_Topic) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *BuildbucketCfg_Topic) GetCompression() Compression {
if x != nil {
return x.Compression
}
return Compression_ZLIB
}
type BuildbucketCfg_CommonConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// A list of PubSub topics that Buildbucket will publish notifications for
// build status changes in this project.
// The message data schema can be found in message `BuildsV2PubSub` in
// https://chromium.googlesource.com/infra/luci/luci-go/+/main/buildbucket/proto/notification.proto
// Attributes on the pubsub messages:
// - "project"
// - "bucket"
// - "builder"
// - "is_completed" (The value is either "true" or "false" in string.)
//
// Note: `pubsub.topics.publish` permission must be granted to the
// corresponding luci-project-scoped accounts in the cloud project(s) hosting
// the topics.
BuildsNotificationTopics []*BuildbucketCfg_Topic `protobuf:"bytes,1,rep,name=builds_notification_topics,json=buildsNotificationTopics,proto3" json:"builds_notification_topics,omitempty"`
}
func (x *BuildbucketCfg_CommonConfig) Reset() {
*x = BuildbucketCfg_CommonConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BuildbucketCfg_CommonConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BuildbucketCfg_CommonConfig) ProtoMessage() {}
func (x *BuildbucketCfg_CommonConfig) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use BuildbucketCfg_CommonConfig.ProtoReflect.Descriptor instead.
func (*BuildbucketCfg_CommonConfig) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP(), []int{4, 1}
}
func (x *BuildbucketCfg_CommonConfig) GetBuildsNotificationTopics() []*BuildbucketCfg_Topic {
if x != nil {
return x.BuildsNotificationTopics
}
return nil
}
var File_go_chromium_org_luci_buildbucket_proto_project_config_proto protoreflect.FileDescriptor
var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDesc = []byte{
0x0a, 0x3b, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70,
0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x2e, 0x63,
0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69,
0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a,
0x2f, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67,
0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x1a, 0x37, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9d, 0x01, 0x0a, 0x03, 0x41, 0x63,
0x6c, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x63,
0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65,
0x12, 0x18, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42,
0x02, 0x18, 0x01, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x64,
0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01,
0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x2d, 0x0a, 0x04, 0x52, 0x6f,
0x6c, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x00, 0x12, 0x0d,
0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a,
0x06, 0x57, 0x52, 0x49, 0x54, 0x45, 0x52, 0x10, 0x02, 0x22, 0xf4, 0x16, 0x0a, 0x0d, 0x42, 0x75,
0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x3c, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42,
0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x61, 0x63,
0x6b, 0x65, 0x6e, 0x64, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x43, 0x0a,
0x0b, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x5f, 0x61, 0x6c, 0x74, 0x18, 0x21, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42,
0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x52, 0x0a, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x41,
0x6c, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x68,
0x6f, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x77, 0x61, 0x72, 0x6d,
0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67,
0x6f, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67,
0x6f, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x5f,
0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x6d, 0x65,
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69,
0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x69,
0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x52, 0x06, 0x72, 0x65, 0x63,
0x69, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x78, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76,
0x32, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x03, 0x65, 0x78,
0x65, 0x12, 0x24, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,
0x18, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xa8, 0xfe, 0x23, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6f, 0x76, 0x65, 0x72,
0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x18, 0x61, 0x6c, 0x6c,
0x6f, 0x77, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4f, 0x76, 0x65, 0x72,
0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74,
0x79, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74,
0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x14, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65,
0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x68, 0x65, 0x61, 0x72, 0x74,
0x62, 0x65, 0x61, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63,
0x73, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65,
0x61, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, 0x27, 0x0a,
0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73,
0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f,
0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44,
0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65,
0x72, 0x69, 0x6f, 0x64, 0x12, 0x43, 0x0a, 0x11, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72,
0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32,
0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x0f, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f,
0x72, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x61, 0x63,
0x68, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x06, 0x63, 0x61, 0x63, 0x68, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x0d, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x13, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x54, 0x6f,
0x67, 0x67, 0x6c, 0x65, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65,
0x72, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x16, 0x61,
0x75, 0x74, 0x6f, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x69, 0x6d, 0x65,
0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65,
0x52, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x44, 0x69, 0x6d,
0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69,
0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c,
0x65, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x12,
0x63, 0x0a, 0x1f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
0x5f, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61,
0x67, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33,
0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70,
0x6c, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e,
0x74, 0x61, 0x67, 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65,
0x6e, 0x74, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74,
0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65,
0x6e, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x18,
0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x52, 0x08,
0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x75,
0x6c, 0x74, 0x64, 0x62, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x62, 0x75, 0x69,
0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x52,
0x08, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x65, 0x73,
0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x74, 0x6d, 0x6c, 0x18, 0x1e, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x48, 0x74, 0x6d, 0x6c, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x5f, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e,
0x74, 0x73, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64,
0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x42, 0x75, 0x69, 0x6c, 0x64,
0x65, 0x72, 0x41, 0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x18, 0x73,
0x68, 0x61, 0x64, 0x6f, 0x77, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x41, 0x64, 0x6a, 0x75,
0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x35, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69,
0x61, 0x62, 0x6c, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x62, 0x75, 0x69,
0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x54, 0x72, 0x69, 0x6e,
0x61, 0x72, 0x79, 0x52, 0x09, 0x72, 0x65, 0x74, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x6e,
0x0a, 0x1c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68,
0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x25,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4c, 0x69,
0x6e, 0x6b, 0x73, 0x52, 0x19, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c,
0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x2c,
0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x65,
0x6d, 0x61, 0x69, 0x6c, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x74,
0x61, 0x63, 0x74, 0x54, 0x65, 0x61, 0x6d, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x1a, 0x85, 0x01, 0x0a,
0x0a, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70,
0x61, 0x74, 0x68, 0x12, 0x36, 0x0a, 0x18, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f,
0x77, 0x61, 0x72, 0x6d, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18,
0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x57, 0x61,
0x72, 0x6d, 0x43, 0x61, 0x63, 0x68, 0x65, 0x53, 0x65, 0x63, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x65,
0x6e, 0x76, 0x5f, 0x76, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e,
0x76, 0x56, 0x61, 0x72, 0x1a, 0xab, 0x01, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x69, 0x70, 0x65, 0x12,
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b,
0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x69, 0x70, 0x64, 0x50,
0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x69, 0x70, 0x64, 0x5f, 0x76,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x69,
0x70, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x70,
0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f,
0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x6a, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52,
0x0b, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x4a, 0x4a, 0x04, 0x08, 0x01,
0x10, 0x02, 0x1a, 0xae, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x44, 0x42, 0x12,
0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x62, 0x71, 0x5f, 0x65, 0x78,
0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x75,
0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64, 0x62, 0x2e, 0x76, 0x31, 0x2e, 0x42,
0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x62,
0x71, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x68, 0x69, 0x73, 0x74,
0x6f, 0x72, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x20, 0x2e, 0x6c, 0x75, 0x63, 0x69, 0x2e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x64,
0x62, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x52, 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4f, 0x70, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x1a, 0x48, 0x0a, 0x07, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x12, 0x16,
0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xa8, 0xfe, 0x23,
0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x73, 0x6f, 0x6e, 0x1a, 0x3e, 0x0a,
0x10, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x9d, 0x01,
0x0a, 0x18, 0x53, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x41,
0x64, 0x6a, 0x75, 0x73, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65,
0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f,
0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x24, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65,
0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x04, 0xa8, 0xfe, 0x23,
0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1e, 0x0a,
0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28,
0x09, 0x52, 0x0a, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xc6, 0x02,
0x0a, 0x12, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4c,
0x69, 0x6e, 0x6b, 0x73, 0x12, 0x58, 0x0a, 0x09, 0x64, 0x6f, 0x63, 0x5f, 0x6c, 0x69, 0x6e, 0x6b,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74,
0x68, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x2e, 0x44, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x64, 0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x12, 0x5b,
0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x18, 0x02, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42,
0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x4c, 0x69, 0x6e, 0x6b,
0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x44,
0x6f, 0x63, 0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x44, 0x61, 0x74, 0x61,
0x4c, 0x69, 0x6e, 0x6b, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x0b,
0x10, 0x0c, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x4a, 0x04,
0x08, 0x13, 0x10, 0x14, 0x4a, 0x04, 0x08, 0x1b, 0x10, 0x1c, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b,
0x22, 0xb9, 0x01, 0x0a, 0x08, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a,
0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75,
0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x62, 0x75, 0x69,
0x6c, 0x64, 0x65, 0x72, 0x73, 0x12, 0x63, 0x0a, 0x1f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x65,
0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x70, 0x65,
0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x74, 0x61,
0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6e, 0x61, 0x72, 0x79,
0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02,
0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xe2, 0x03, 0x0a,
0x06, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x04, 0x61,
0x63, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x62, 0x75, 0x69, 0x6c,
0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x41, 0x63, 0x6c, 0x42, 0x02, 0x18, 0x01, 0x52,
0x04, 0x61, 0x63, 0x6c, 0x73, 0x12, 0x31, 0x0a, 0x08, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62,
0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x08,
0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x64,
0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77,
0x12, 0x41, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x18,
0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74,
0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69,
0x6e, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x18, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x62,
0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18,
0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x44, 0x79, 0x6e, 0x61, 0x6d,
0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
0x65, 0x52, 0x16, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65,
0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x4e, 0x0a, 0x0b, 0x43, 0x6f, 0x6e,
0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x6f, 0x6c,
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x29,
0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x50, 0x0a, 0x16, 0x44, 0x79, 0x6e,
0x61, 0x6d, 0x69, 0x63, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c,
0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x52, 0x08, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4a, 0x04, 0x08, 0x04, 0x10,
0x05, 0x22, 0xed, 0x02, 0x0a, 0x0e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65,
0x74, 0x43, 0x66, 0x67, 0x12, 0x2d, 0x0a, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x07, 0x62, 0x75, 0x63, 0x6b,
0x65, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x5f, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x75, 0x69,
0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75,
0x63, 0x6b, 0x65, 0x74, 0x43, 0x66, 0x67, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x1a, 0x5a, 0x0a, 0x05, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e,
0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
0x3d, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b,
0x65, 0x74, 0x2e, 0x76, 0x32, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x6f,
0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f,
0x0a, 0x1a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x21, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74,
0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x66, 0x67, 0x2e,
0x54, 0x6f, 0x70, 0x69, 0x63, 0x52, 0x18, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x4e, 0x6f, 0x74,
0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x70, 0x69, 0x63, 0x73, 0x4a,
0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x04, 0x08, 0x04, 0x10,
0x05, 0x2a, 0x24, 0x0a, 0x06, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55,
0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x59, 0x45, 0x53, 0x10, 0x01, 0x12,
0x06, 0x0a, 0x02, 0x4e, 0x4f, 0x10, 0x02, 0x42, 0x74, 0xa2, 0xfe, 0x23, 0x3a, 0x0a, 0x38, 0x68,
0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, 0x75,
0x63, 0x69, 0x2e, 0x61, 0x70, 0x70, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x70,
0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x3a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63,
0x6b, 0x65, 0x74, 0x2e, 0x63, 0x66, 0x67, 0x5a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f,
0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x62, 0x75,
0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b,
0x62, 0x75, 0x69, 0x6c, 0x64, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescOnce sync.Once
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescData = file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDesc
)
func file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescGZIP() []byte {
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescOnce.Do(func() {
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)
})
return file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDescData
}
var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes = make([]protoimpl.MessageInfo, 18)
var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_goTypes = []interface{}{
(Toggle)(0), // 0: buildbucket.Toggle
(Acl_Role)(0), // 1: buildbucket.Acl.Role
(*Acl)(nil), // 2: buildbucket.Acl
(*BuilderConfig)(nil), // 3: buildbucket.BuilderConfig
(*Swarming)(nil), // 4: buildbucket.Swarming
(*Bucket)(nil), // 5: buildbucket.Bucket
(*BuildbucketCfg)(nil), // 6: buildbucket.BuildbucketCfg
(*BuilderConfig_CacheEntry)(nil), // 7: buildbucket.BuilderConfig.CacheEntry
(*BuilderConfig_Recipe)(nil), // 8: buildbucket.BuilderConfig.Recipe
(*BuilderConfig_ResultDB)(nil), // 9: buildbucket.BuilderConfig.ResultDB
(*BuilderConfig_Backend)(nil), // 10: buildbucket.BuilderConfig.Backend
nil, // 11: buildbucket.BuilderConfig.ExperimentsEntry
(*BuilderConfig_ShadowBuilderAdjustments)(nil), // 12: buildbucket.BuilderConfig.ShadowBuilderAdjustments
(*BuilderConfig_BuilderHealthLinks)(nil), // 13: buildbucket.BuilderConfig.BuilderHealthLinks
nil, // 14: buildbucket.BuilderConfig.BuilderHealthLinks.DocLinksEntry
nil, // 15: buildbucket.BuilderConfig.BuilderHealthLinks.DataLinksEntry
(*Bucket_Constraints)(nil), // 16: buildbucket.Bucket.Constraints
(*Bucket_DynamicBuilderTemplate)(nil), // 17: buildbucket.Bucket.DynamicBuilderTemplate
(*BuildbucketCfg_Topic)(nil), // 18: buildbucket.BuildbucketCfg.Topic
(*BuildbucketCfg_CommonConfig)(nil), // 19: buildbucket.BuildbucketCfg.CommonConfig
(*Executable)(nil), // 20: buildbucket.v2.Executable
(*durationpb.Duration)(nil), // 21: google.protobuf.Duration
(Trinary)(0), // 22: buildbucket.v2.Trinary
(*wrapperspb.UInt32Value)(nil), // 23: google.protobuf.UInt32Value
(*v1.BigQueryExport)(nil), // 24: luci.resultdb.v1.BigQueryExport
(*v1.HistoryOptions)(nil), // 25: luci.resultdb.v1.HistoryOptions
(Compression)(0), // 26: buildbucket.v2.Compression
}
var file_go_chromium_org_luci_buildbucket_proto_project_config_proto_depIdxs = []int32{
1, // 0: buildbucket.Acl.role:type_name -> buildbucket.Acl.Role
10, // 1: buildbucket.BuilderConfig.backend:type_name -> buildbucket.BuilderConfig.Backend
10, // 2: buildbucket.BuilderConfig.backend_alt:type_name -> buildbucket.BuilderConfig.Backend
8, // 3: buildbucket.BuilderConfig.recipe:type_name -> buildbucket.BuilderConfig.Recipe
20, // 4: buildbucket.BuilderConfig.exe:type_name -> buildbucket.v2.Executable
21, // 5: buildbucket.BuilderConfig.grace_period:type_name -> google.protobuf.Duration
22, // 6: buildbucket.BuilderConfig.wait_for_capacity:type_name -> buildbucket.v2.Trinary
7, // 7: buildbucket.BuilderConfig.caches:type_name -> buildbucket.BuilderConfig.CacheEntry
0, // 8: buildbucket.BuilderConfig.build_numbers:type_name -> buildbucket.Toggle
0, // 9: buildbucket.BuilderConfig.auto_builder_dimension:type_name -> buildbucket.Toggle
0, // 10: buildbucket.BuilderConfig.experimental:type_name -> buildbucket.Toggle
23, // 11: buildbucket.BuilderConfig.task_template_canary_percentage:type_name -> google.protobuf.UInt32Value
11, // 12: buildbucket.BuilderConfig.experiments:type_name -> buildbucket.BuilderConfig.ExperimentsEntry
22, // 13: buildbucket.BuilderConfig.critical:type_name -> buildbucket.v2.Trinary
9, // 14: buildbucket.BuilderConfig.resultdb:type_name -> buildbucket.BuilderConfig.ResultDB
12, // 15: buildbucket.BuilderConfig.shadow_builder_adjustments:type_name -> buildbucket.BuilderConfig.ShadowBuilderAdjustments
22, // 16: buildbucket.BuilderConfig.retriable:type_name -> buildbucket.v2.Trinary
13, // 17: buildbucket.BuilderConfig.builder_health_metrics_links:type_name -> buildbucket.BuilderConfig.BuilderHealthLinks
3, // 18: buildbucket.Swarming.builders:type_name -> buildbucket.BuilderConfig
23, // 19: buildbucket.Swarming.task_template_canary_percentage:type_name -> google.protobuf.UInt32Value
2, // 20: buildbucket.Bucket.acls:type_name -> buildbucket.Acl
4, // 21: buildbucket.Bucket.swarming:type_name -> buildbucket.Swarming
16, // 22: buildbucket.Bucket.constraints:type_name -> buildbucket.Bucket.Constraints
17, // 23: buildbucket.Bucket.dynamic_builder_template:type_name -> buildbucket.Bucket.DynamicBuilderTemplate
5, // 24: buildbucket.BuildbucketCfg.buckets:type_name -> buildbucket.Bucket
19, // 25: buildbucket.BuildbucketCfg.common_config:type_name -> buildbucket.BuildbucketCfg.CommonConfig
24, // 26: buildbucket.BuilderConfig.ResultDB.bq_exports:type_name -> luci.resultdb.v1.BigQueryExport
25, // 27: buildbucket.BuilderConfig.ResultDB.history_options:type_name -> luci.resultdb.v1.HistoryOptions
14, // 28: buildbucket.BuilderConfig.BuilderHealthLinks.doc_links:type_name -> buildbucket.BuilderConfig.BuilderHealthLinks.DocLinksEntry
15, // 29: buildbucket.BuilderConfig.BuilderHealthLinks.data_links:type_name -> buildbucket.BuilderConfig.BuilderHealthLinks.DataLinksEntry
3, // 30: buildbucket.Bucket.DynamicBuilderTemplate.template:type_name -> buildbucket.BuilderConfig
26, // 31: buildbucket.BuildbucketCfg.Topic.compression:type_name -> buildbucket.v2.Compression
18, // 32: buildbucket.BuildbucketCfg.CommonConfig.builds_notification_topics:type_name -> buildbucket.BuildbucketCfg.Topic
33, // [33:33] is the sub-list for method output_type
33, // [33:33] is the sub-list for method input_type
33, // [33:33] is the sub-list for extension type_name
33, // [33:33] is the sub-list for extension extendee
0, // [0:33] is the sub-list for field type_name
}
func init() { file_go_chromium_org_luci_buildbucket_proto_project_config_proto_init() }
func file_go_chromium_org_luci_buildbucket_proto_project_config_proto_init() {
if File_go_chromium_org_luci_buildbucket_proto_project_config_proto != nil {
return
}
file_go_chromium_org_luci_buildbucket_proto_common_proto_init()
if !protoimpl.UnsafeEnabled {
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Acl); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuilderConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Swarming); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Bucket); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildbucketCfg); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuilderConfig_CacheEntry); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuilderConfig_Recipe); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuilderConfig_ResultDB); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuilderConfig_Backend); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuilderConfig_ShadowBuilderAdjustments); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuilderConfig_BuilderHealthLinks); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Bucket_Constraints); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Bucket_DynamicBuilderTemplate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildbucketCfg_Topic); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BuildbucketCfg_CommonConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDesc,
NumEnums: 2,
NumMessages: 18,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_go_chromium_org_luci_buildbucket_proto_project_config_proto_goTypes,
DependencyIndexes: file_go_chromium_org_luci_buildbucket_proto_project_config_proto_depIdxs,
EnumInfos: file_go_chromium_org_luci_buildbucket_proto_project_config_proto_enumTypes,
MessageInfos: file_go_chromium_org_luci_buildbucket_proto_project_config_proto_msgTypes,
}.Build()
File_go_chromium_org_luci_buildbucket_proto_project_config_proto = out.File
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_rawDesc = nil
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_goTypes = nil
file_go_chromium_org_luci_buildbucket_proto_project_config_proto_depIdxs = nil
}