blob: 915bb80213d136c1a8c90855eb1328831215f679 [file] [log] [blame]
// Copyright 2017 The LUCI Authors. All rights reserved.
// Use of this source code is governed under the Apache License, Version 2.0
// that can be found in the LICENSE file.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.25.0-devel
// protoc v3.12.1
// source: go.chromium.org/luci/swarming/proto/config/pools.proto
package configpb
import (
_ "go.chromium.org/luci/common/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
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)
)
// Schema for pools.cfg service config file in luci-config.
//
// It defined a set of Pool objects, each one corresponding to a single Swarming
// pool dimension. Each Swarming task resided in some pool, and each Swarming
// bot belongs to at least one pool.
//
// Pools are used to isolate groups of tasks/bots from each other for security
// and capacity reasons. Two different pools should not interfere with each
// other at all (unless explicitly configured to share bots or accounts).
type PoolsCfg struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// List of all defined pools.
Pool []*Pool `protobuf:"bytes,1,rep,name=pool,proto3" json:"pool,omitempty"`
// Configures the default isolate and CIPD services to use for all pools on
// this server.
DefaultExternalServices *ExternalServices `protobuf:"bytes,6,opt,name=default_external_services,json=defaultExternalServices,proto3" json:"default_external_services,omitempty"`
// This is the "shared namespace" of task templates.
//
// Task templates allow pools to specify some property defaults (particularly
// around caches, CIPD packages and Environment variables) for tasks created
// within the pool. These templates can have 'include' statements, and those
// include statements draw from this namespace.
//
// Swarming will do a 2-pass parse of these so order doesn't matter (i.e. If
// A includes B, but is defined B-then-A, it's not an error).
TaskTemplate []*TaskTemplate `protobuf:"bytes,3,rep,name=task_template,json=taskTemplate,proto3" json:"task_template,omitempty"`
// This is the "shared namespace" of deployments.
//
// When pools specify a task_template_deployment, it draws from this
// namespace.
TaskTemplateDeployment []*TaskTemplateDeployment `protobuf:"bytes,4,rep,name=task_template_deployment,json=taskTemplateDeployment,proto3" json:"task_template_deployment,omitempty"`
// Defines about how to monitor bots in a pool. Each pool above may refer to
// one of the BotMonitoring message by name, which permits reusing
// BotMonitoring definitions.
BotMonitoring []*BotMonitoring `protobuf:"bytes,5,rep,name=bot_monitoring,json=botMonitoring,proto3" json:"bot_monitoring,omitempty"`
}
func (x *PoolsCfg) Reset() {
*x = PoolsCfg{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PoolsCfg) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PoolsCfg) ProtoMessage() {}
func (x *PoolsCfg) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 PoolsCfg.ProtoReflect.Descriptor instead.
func (*PoolsCfg) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{0}
}
func (x *PoolsCfg) GetPool() []*Pool {
if x != nil {
return x.Pool
}
return nil
}
func (x *PoolsCfg) GetDefaultExternalServices() *ExternalServices {
if x != nil {
return x.DefaultExternalServices
}
return nil
}
func (x *PoolsCfg) GetTaskTemplate() []*TaskTemplate {
if x != nil {
return x.TaskTemplate
}
return nil
}
func (x *PoolsCfg) GetTaskTemplateDeployment() []*TaskTemplateDeployment {
if x != nil {
return x.TaskTemplateDeployment
}
return nil
}
func (x *PoolsCfg) GetBotMonitoring() []*BotMonitoring {
if x != nil {
return x.BotMonitoring
}
return nil
}
// Properties of a single pool or a bunch of identically configured pools.
//
// In particular contains authorization configuration.
type Pool struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Names of the pools this config applies to.
//
// Tasks target the pool by specifying its name as 'pool' dimension, thus
// names here should be valid dimension value.
Name []string `protobuf:"bytes,1,rep,name=name,proto3" json:"name,omitempty"`
// Contact information for people that own this pool.
//
// Not used in any ACLs, just informational field.
Owners []string `protobuf:"bytes,2,rep,name=owners,proto3" json:"owners,omitempty"`
// Defines who can schedule tasks in this pool.
//
// The checks here act as a second authorization layer, consulted after the
// first server-global one (defined based on groups set in settings.cfg, see
// AuthSettings in config.proto).
Schedulers *Schedulers `protobuf:"bytes,3,opt,name=schedulers,proto3" json:"schedulers,omitempty"`
// List of service account emails allowed to be used for tasks that target
// this pool. Tasks specify the service account via 'service_account' field
// in the tasks.New RPC.
//
// By associating accounts with pools in the config we make it more explicit
// that a bot belonging to a pool eventually can get access to service
// accounts of all tasks running in this pool (just by sitting there, grabbing
// tasks and sniffing service account tokens).
AllowedServiceAccount []string `protobuf:"bytes,4,rep,name=allowed_service_account,json=allowedServiceAccount,proto3" json:"allowed_service_account,omitempty"`
// Same as 'allowed_service_account', but the set of service accounts is
// specified through an auth group.
AllowedServiceAccountGroup []string `protobuf:"bytes,5,rep,name=allowed_service_account_group,json=allowedServiceAccountGroup,proto3" json:"allowed_service_account_group,omitempty"`
// Types that are assignable to TaskDeploymentScheme:
// *Pool_TaskTemplateDeployment
// *Pool_TaskTemplateDeploymentInline
TaskDeploymentScheme isPool_TaskDeploymentScheme `protobuf_oneof:"task_deployment_scheme"`
// Refer to one bot_monitoring at the file level by name.
BotMonitoring string `protobuf:"bytes,8,opt,name=bot_monitoring,json=botMonitoring,proto3" json:"bot_monitoring,omitempty"`
// If specified, this is the description of the external schedulers to be used
// for tasks and bots for this pool that match the dimension set of a scheduler.
// For a given task or bot, the first entry in this list that matches based on
// dimension eligibility will be used.
ExternalSchedulers []*ExternalSchedulerConfig `protobuf:"bytes,9,rep,name=external_schedulers,json=externalSchedulers,proto3" json:"external_schedulers,omitempty"`
// Realm name that the pool is associated with.
//
// e.g.
// 'infra:pool/flex/try' for 'luci.flex.try' pool
//
// See also
// https://chromium.googlesource.com/infra/luci/luci-go/+/HEAD/server/auth/service/protocol/components/auth/proto/realms.proto
Realm string `protobuf:"bytes,10,opt,name=realm,proto3" json:"realm,omitempty"`
// Enforcements of permissions can be controlled by pool during migration
// from legacy ACLs configs to Realms configs.
//
// When scheduling tasks:
// * If a task doesn't have a realm (i.e. it is a legacy task), it will be
// assigned `default_task_realm` and only permissions listed here will be
// enforced. If some permission is not enforced, Swarming will use a
// legacy ACL check for it instead.
// * If a task has a realm (i.e. it is a modern task aware of realms), all
// permissions will always be enforced for it. Legacy ACLs will not be
// used at all.
//
// This field is not used for permissions not related to task scheduling.
//
// This field will be deprecated after migration. All scheduling permissions
// will be enforced at all times.
EnforcedRealmPermissions []RealmPermission `protobuf:"varint,11,rep,packed,name=enforced_realm_permissions,json=enforcedRealmPermissions,proto3,enum=swarming.config.RealmPermission" json:"enforced_realm_permissions,omitempty"`
// Realm name to use for tasks if they don't have a realm associated.
DefaultTaskRealm string `protobuf:"bytes,12,opt,name=default_task_realm,json=defaultTaskRealm,proto3" json:"default_task_realm,omitempty"`
}
func (x *Pool) Reset() {
*x = Pool{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Pool) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Pool) ProtoMessage() {}
func (x *Pool) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 Pool.ProtoReflect.Descriptor instead.
func (*Pool) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{1}
}
func (x *Pool) GetName() []string {
if x != nil {
return x.Name
}
return nil
}
func (x *Pool) GetOwners() []string {
if x != nil {
return x.Owners
}
return nil
}
func (x *Pool) GetSchedulers() *Schedulers {
if x != nil {
return x.Schedulers
}
return nil
}
func (x *Pool) GetAllowedServiceAccount() []string {
if x != nil {
return x.AllowedServiceAccount
}
return nil
}
func (x *Pool) GetAllowedServiceAccountGroup() []string {
if x != nil {
return x.AllowedServiceAccountGroup
}
return nil
}
func (m *Pool) GetTaskDeploymentScheme() isPool_TaskDeploymentScheme {
if m != nil {
return m.TaskDeploymentScheme
}
return nil
}
func (x *Pool) GetTaskTemplateDeployment() string {
if x, ok := x.GetTaskDeploymentScheme().(*Pool_TaskTemplateDeployment); ok {
return x.TaskTemplateDeployment
}
return ""
}
func (x *Pool) GetTaskTemplateDeploymentInline() *TaskTemplateDeployment {
if x, ok := x.GetTaskDeploymentScheme().(*Pool_TaskTemplateDeploymentInline); ok {
return x.TaskTemplateDeploymentInline
}
return nil
}
func (x *Pool) GetBotMonitoring() string {
if x != nil {
return x.BotMonitoring
}
return ""
}
func (x *Pool) GetExternalSchedulers() []*ExternalSchedulerConfig {
if x != nil {
return x.ExternalSchedulers
}
return nil
}
func (x *Pool) GetRealm() string {
if x != nil {
return x.Realm
}
return ""
}
func (x *Pool) GetEnforcedRealmPermissions() []RealmPermission {
if x != nil {
return x.EnforcedRealmPermissions
}
return nil
}
func (x *Pool) GetDefaultTaskRealm() string {
if x != nil {
return x.DefaultTaskRealm
}
return ""
}
type isPool_TaskDeploymentScheme interface {
isPool_TaskDeploymentScheme()
}
type Pool_TaskTemplateDeployment struct {
// Most Pools will include a task_template_deployment by name.
TaskTemplateDeployment string `protobuf:"bytes,6,opt,name=task_template_deployment,json=taskTemplateDeployment,proto3,oneof"`
}
type Pool_TaskTemplateDeploymentInline struct {
// However, pools which substantially differ from other ones can define an
// entire deployment inline without putting it in the shared namespace.
//
// The name fields in this deployment and any embedded task_templates must
// not be specified.
TaskTemplateDeploymentInline *TaskTemplateDeployment `protobuf:"bytes,7,opt,name=task_template_deployment_inline,json=taskTemplateDeploymentInline,proto3,oneof"`
}
func (*Pool_TaskTemplateDeployment) isPool_TaskDeploymentScheme() {}
func (*Pool_TaskTemplateDeploymentInline) isPool_TaskDeploymentScheme() {}
// Defines who can schedule tasks in a pool.
type Schedulers struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Emails of individual end-users.
//
// Useful to avoid creating one-person groups.
User []string `protobuf:"bytes,1,rep,name=user,proto3" json:"user,omitempty"`
// List of groups with end-users.
Group []string `protobuf:"bytes,2,rep,name=group,proto3" json:"group,omitempty"`
// See TrustedDelegation comment.
TrustedDelegation []*TrustedDelegation `protobuf:"bytes,3,rep,name=trusted_delegation,json=trustedDelegation,proto3" json:"trusted_delegation,omitempty"`
}
func (x *Schedulers) Reset() {
*x = Schedulers{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Schedulers) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Schedulers) ProtoMessage() {}
func (x *Schedulers) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 Schedulers.ProtoReflect.Descriptor instead.
func (*Schedulers) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{2}
}
func (x *Schedulers) GetUser() []string {
if x != nil {
return x.User
}
return nil
}
func (x *Schedulers) GetGroup() []string {
if x != nil {
return x.Group
}
return nil
}
func (x *Schedulers) GetTrustedDelegation() []*TrustedDelegation {
if x != nil {
return x.TrustedDelegation
}
return nil
}
// Defines a delegatee trusted to make authorization decisions for who can use
// a pool.
//
// This is based on LUCI delegation protocol. Imagine an end user U calling
// Swarming through an intermediary service X. In this case U is a delegator and
// X is a delegatee. When X calls Swarming, it makes an RPC to the token server
// to make a delegation token that says "<X can call Swarming on behalf of U>".
//
// This token is then sent to the Swarming with the RPC. Swarming sees that
// the direct peer it's talking to is X, but the call should be performed under
// the authority of U.
//
// We extend this to also allow X make authorization decisions about whether U
// can use particular Swarming resource or not. The result of this decision is
// encoded in the delegation token as a set of "key:value" tags. Swarming then
// can treat presence of such tags as a signal that the particular call is
// allowed.
//
// In this scenario we totally trust X to make the correct decision.
type TrustedDelegation struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Email of a trusted delegatee (the one who's minting the delegation token).
PeerId string `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"`
// A list of tags to expected in the delegation token to allow the usage of
// a pool.
//
// Presence of any of the specified tags are enough. The format of these tags
// generally depends on what service is doing the delegation.
RequireAnyOf *TrustedDelegation_TagList `protobuf:"bytes,2,opt,name=require_any_of,json=requireAnyOf,proto3" json:"require_any_of,omitempty"`
}
func (x *TrustedDelegation) Reset() {
*x = TrustedDelegation{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrustedDelegation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrustedDelegation) ProtoMessage() {}
func (x *TrustedDelegation) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 TrustedDelegation.ProtoReflect.Descriptor instead.
func (*TrustedDelegation) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{3}
}
func (x *TrustedDelegation) GetPeerId() string {
if x != nil {
return x.PeerId
}
return ""
}
func (x *TrustedDelegation) GetRequireAnyOf() *TrustedDelegation_TagList {
if x != nil {
return x.RequireAnyOf
}
return nil
}
// A TaskTemplate describes a set of properties (caches, CIPD packages and
// envvars) which apply to tasks created within a swarming pool.
//
// TaskTemplates may either be defined inline inside of
// a TaskTemplateDeployment, or in "shared namespace" of the
// PoolsCfg.task_template field.
//
// TaskTemplates may also include other TaskTemplates by name from the "shared
// namespace" in PoolsCfg. Swarming calculates the final value for a given
// TaskTemplate by applying all of its `include` fields depth-first, and then by
// applying the properties in the body of the TaskTemplate. Includes may never
// be repeated, including transitively. This means that "diamond shaped
// dependencies" are forbidden (i.e. A<-B<-D and A<-C<-D would be forbidden
// because `A` is included in `D` twice (via both C and B)).
type TaskTemplate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// This gives the template a name for the 'include' field below. This only
// applies to templates defined within the PoolsCfg message (i.e. the
// top-level message), not to templates inlined into a TaskTemplateDeployment.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Includes properties from the named other TaskTemplate. This can only
// include templates defined in the top-level PoolsCfg message.
Include []string `protobuf:"bytes,2,rep,name=include,proto3" json:"include,omitempty"`
// CacheEntries are keyed by `name`, and `path` is overridden wholesale.
//
// It is illegal to have any TaskTemplate with multiple cache entries mapping
// to the same path. It is illegal to have any cache paths overlap with cipd
// package paths.
Cache []*TaskTemplate_CacheEntry `protobuf:"bytes,3,rep,name=cache,proto3" json:"cache,omitempty"`
// CipdPackages are keyed by (path, name), and `version` is overridden
// wholesale.
//
// It is illegal to have any cipd paths overlap with cache entry paths.
CipdPackage []*TaskTemplate_CipdPackage `protobuf:"bytes,4,rep,name=cipd_package,json=cipdPackage,proto3" json:"cipd_package,omitempty"`
// Env vars are keyed by the `var` field,
//
// `value` fields overwrite included values.
// `soft` fields overwrite included values.
// `prefix` fields append to included values. For example, Doing:
//
// {name: "1" env { var: "PATH" prefix: "a" }}
// {name: "2" env { var: "PATH" prefix: "b" }}
// {name: "3" include: "1" include: "2" }
//
// Is equivalent to:
//
// {name: "3" env { var: "PATH" prefix: "a" prefix: "b" }}
//
//
// Full Example:
//
// env {
// var: "PATH"
// value: "/disable_system_path"
// prefix: "a"
// prefix: "b"
// prefix: "c"
// soft: true
// }
// env {
// var: "OTHER"
// value: "1"
// }
// env {
// var: "PYTHONPATH"
// prefix: "a"
// }
//
// Results in, essentially:
//
// $PATH=/path/to/a:/path/to/b:/path/to/c:/disable_system_path
// $OTHER=1
// $PYTHONPATH=/path/to/a:$PYTHONPATH
Env []*TaskTemplate_Env `protobuf:"bytes,5,rep,name=env,proto3" json:"env,omitempty"`
}
func (x *TaskTemplate) Reset() {
*x = TaskTemplate{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskTemplate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskTemplate) ProtoMessage() {}
func (x *TaskTemplate) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 TaskTemplate.ProtoReflect.Descriptor instead.
func (*TaskTemplate) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{4}
}
func (x *TaskTemplate) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TaskTemplate) GetInclude() []string {
if x != nil {
return x.Include
}
return nil
}
func (x *TaskTemplate) GetCache() []*TaskTemplate_CacheEntry {
if x != nil {
return x.Cache
}
return nil
}
func (x *TaskTemplate) GetCipdPackage() []*TaskTemplate_CipdPackage {
if x != nil {
return x.CipdPackage
}
return nil
}
func (x *TaskTemplate) GetEnv() []*TaskTemplate_Env {
if x != nil {
return x.Env
}
return nil
}
// This is a tuple of (prod template, canary template, canary_chance), so that it
// can be referenced from multiple pools simultaneously as a single unit.
type TaskTemplateDeployment struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// This gives the deployment a name for the 'task_template_deployment' field
// in PoolCfg.
//
// When this TaskTemplateDeployment is inlined into another message (e.g.
// `TaskTemplate.task_template_deployment_inline`), the name field must not be
// specified.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Most Deployments will have a TaskTemplate with just a single include
// directive.
//
// However, pools which substantially differ from other ones could define an
// entire template inline without being forced to put it in the shared
// namespace.
//
// The name field in this template (and the canary template) must not be
// specified.
Prod *TaskTemplate `protobuf:"bytes,2,opt,name=prod,proto3" json:"prod,omitempty"`
// The canary template can be defined like the `prod` field above. If this is
// defined and `canary_chance` is greater than 0, then this template will be
// selected instead of `prod`.
Canary *TaskTemplate `protobuf:"bytes,3,opt,name=canary,proto3" json:"canary,omitempty"`
// range [0, 9999] where each tick corresponds to %0.01 chance of selecting
// the template. Exactly 0 means 'canary is disabled', meaning that tasks
// in this pool will always get the prod template.
//
// Examples:
// * 1 ".01% chance of picking canary"
// * 10 ".1% chance of picking canary"
// * 100 "1% chance of picking canary"
// * 1000 "10% chance of picking canary"
// * 5000 "50% chance of picking canary"
// * 7500 "75% chance of picking canary"
// * 9999 "99.99% chance of picking canary"
CanaryChance int32 `protobuf:"varint,4,opt,name=canary_chance,json=canaryChance,proto3" json:"canary_chance,omitempty"`
}
func (x *TaskTemplateDeployment) Reset() {
*x = TaskTemplateDeployment{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskTemplateDeployment) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskTemplateDeployment) ProtoMessage() {}
func (x *TaskTemplateDeployment) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 TaskTemplateDeployment.ProtoReflect.Descriptor instead.
func (*TaskTemplateDeployment) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{5}
}
func (x *TaskTemplateDeployment) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TaskTemplateDeployment) GetProd() *TaskTemplate {
if x != nil {
return x.Prod
}
return nil
}
func (x *TaskTemplateDeployment) GetCanary() *TaskTemplate {
if x != nil {
return x.Canary
}
return nil
}
func (x *TaskTemplateDeployment) GetCanaryChance() int32 {
if x != nil {
return x.CanaryChance
}
return 0
}
// Defines about how to monitor bots.
type BotMonitoring struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Name is used by Pool to describe how to monitor bots in this pool.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Dimension keys to be used to bucket the bots.
//
// The algorithm for a key with multiple values is:
// def simplify(values):
// values = sorted(values)
// return '|'.join(
// v for i, v in enumerate(values)
// if not any(v.startswith(value) for v in values[i+1:]))
//
// For example, if 'os' is specified and a bot has the values
// ['Linux', 'Ubuntu', 'Ubuntu-16.04'], the bucket value used for this bot
// will be 'Linux|Ubuntu-16.04'.
//
// Then whole algorithm then works for each key:
// def bucket(keys, bot_dimensions):
// return ';'.join(
// '%s:%s' % (key, simplify(bot_dimensions.get(values, []))
// for key in keys)
//
// so the end result may look like: 'os:Linux|Ubuntu-16.04;pool:Testers'.
//
// More precisely, when this is used, the other bot dimensions are ignored.
// 'pool' is always implicit.
DimensionKey []string `protobuf:"bytes,2,rep,name=dimension_key,json=dimensionKey,proto3" json:"dimension_key,omitempty"`
}
func (x *BotMonitoring) Reset() {
*x = BotMonitoring{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *BotMonitoring) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*BotMonitoring) ProtoMessage() {}
func (x *BotMonitoring) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 BotMonitoring.ProtoReflect.Descriptor instead.
func (*BotMonitoring) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{6}
}
func (x *BotMonitoring) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *BotMonitoring) GetDimensionKey() []string {
if x != nil {
return x.DimensionKey
}
return nil
}
// Describes an external scheduler used by a particular swarming pool and
// dimension set, via the external scheduler API.
type ExternalSchedulerConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Service address of external scheduler.
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// Scheduler id within the external scheduler service to use. This value
// is opaque to swarming.
Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
// Dimensions is a list of dimension strings in "key:value" format (e.g.
// ["os:foo", "featureX:bar"]) that determines eligibility for a bot or task
// to use this external scheduler. In particular:
// - a bot will be eligible if it contains all of these dimensions.
// - a task will be eligible if all its slices contain all these dimensions.
//
// Note of care: if this list is empty, that means all requests in the pool
// are eligible to be forwarded to it.
//
// Note: To be deprecated, in favor of: any_dimensions and all_dimensions.
Dimensions []string `protobuf:"bytes,3,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
// If not enabled, this external scheduler config will be ignored. This
// makes it safer to add new configs (the naive approach of adding a config
// with empty dimentions list would cause all requests to be routed to
// that config).
Enabled bool `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"`
// Deprecated: Do not use.
FallbackWhenEmpty bool `protobuf:"varint,5,opt,name=fallback_when_empty,json=fallbackWhenEmpty,proto3" json:"fallback_when_empty,omitempty"`
// A task or bot must have all of these dimensions in order to match this
// dimension set.
//
// Note: Support not yet implemented.
AllDimensions []string `protobuf:"bytes,6,rep,name=all_dimensions,json=allDimensions,proto3" json:"all_dimensions,omitempty"`
// If any_dimensions is defined, a task or bot must have any of these
// dimensions in order to match this dimension set.
//
// Note: Support not yet implemented.
AnyDimensions []string `protobuf:"bytes,7,rep,name=any_dimensions,json=anyDimensions,proto3" json:"any_dimensions,omitempty"`
// If true, allows the swarming native scheduler to reap tasks that would
// otherwise be owned by this external scheduler, if the external scheduler
// returns no results.
//
// This field should be enabled temporarily when first turning on a new
// external scheduler config, to allow tasks that existing prior to that time
// to still have a chance to run. After prior tasks have aged out of the
// system, this flag should be disabled, to get stricter consistency between
// swarming's state and external scheduler's state.
AllowEsFallback bool `protobuf:"varint,8,opt,name=allow_es_fallback,json=allowEsFallback,proto3" json:"allow_es_fallback,omitempty"`
}
func (x *ExternalSchedulerConfig) Reset() {
*x = ExternalSchedulerConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExternalSchedulerConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExternalSchedulerConfig) ProtoMessage() {}
func (x *ExternalSchedulerConfig) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 ExternalSchedulerConfig.ProtoReflect.Descriptor instead.
func (*ExternalSchedulerConfig) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{7}
}
func (x *ExternalSchedulerConfig) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *ExternalSchedulerConfig) GetId() string {
if x != nil {
return x.Id
}
return ""
}
func (x *ExternalSchedulerConfig) GetDimensions() []string {
if x != nil {
return x.Dimensions
}
return nil
}
func (x *ExternalSchedulerConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
// Deprecated: Do not use.
func (x *ExternalSchedulerConfig) GetFallbackWhenEmpty() bool {
if x != nil {
return x.FallbackWhenEmpty
}
return false
}
func (x *ExternalSchedulerConfig) GetAllDimensions() []string {
if x != nil {
return x.AllDimensions
}
return nil
}
func (x *ExternalSchedulerConfig) GetAnyDimensions() []string {
if x != nil {
return x.AnyDimensions
}
return nil
}
func (x *ExternalSchedulerConfig) GetAllowEsFallback() bool {
if x != nil {
return x.AllowEsFallback
}
return false
}
type ExternalServices struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Isolate *ExternalServices_Isolate `protobuf:"bytes,1,opt,name=isolate,proto3" json:"isolate,omitempty"`
Cipd *ExternalServices_CIPD `protobuf:"bytes,2,opt,name=cipd,proto3" json:"cipd,omitempty"`
}
func (x *ExternalServices) Reset() {
*x = ExternalServices{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExternalServices) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExternalServices) ProtoMessage() {}
func (x *ExternalServices) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 ExternalServices.ProtoReflect.Descriptor instead.
func (*ExternalServices) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{8}
}
func (x *ExternalServices) GetIsolate() *ExternalServices_Isolate {
if x != nil {
return x.Isolate
}
return nil
}
func (x *ExternalServices) GetCipd() *ExternalServices_CIPD {
if x != nil {
return x.Cipd
}
return nil
}
type TrustedDelegation_TagList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Tag []string `protobuf:"bytes,1,rep,name=tag,proto3" json:"tag,omitempty"`
}
func (x *TrustedDelegation_TagList) Reset() {
*x = TrustedDelegation_TagList{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TrustedDelegation_TagList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TrustedDelegation_TagList) ProtoMessage() {}
func (x *TrustedDelegation_TagList) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[9]
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 TrustedDelegation_TagList.ProtoReflect.Descriptor instead.
func (*TrustedDelegation_TagList) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{3, 0}
}
func (x *TrustedDelegation_TagList) GetTag() []string {
if x != nil {
return x.Tag
}
return nil
}
type TaskTemplate_CacheEntry struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The name of the cache (required).
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The path relative to the task root to mount the cache (required).
Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
}
func (x *TaskTemplate_CacheEntry) Reset() {
*x = TaskTemplate_CacheEntry{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskTemplate_CacheEntry) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskTemplate_CacheEntry) ProtoMessage() {}
func (x *TaskTemplate_CacheEntry) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 TaskTemplate_CacheEntry.ProtoReflect.Descriptor instead.
func (*TaskTemplate_CacheEntry) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{4, 0}
}
func (x *TaskTemplate_CacheEntry) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *TaskTemplate_CacheEntry) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
type TaskTemplate_CipdPackage struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The relative to the task root to unpack the CIPD package. A blank value
// is permitted and means 'the root directory of the task'.
Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
// The CIPD package name template to use (required).
Pkg string `protobuf:"bytes,2,opt,name=pkg,proto3" json:"pkg,omitempty"`
// The version of the CIPD package to use (required).
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
}
func (x *TaskTemplate_CipdPackage) Reset() {
*x = TaskTemplate_CipdPackage{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskTemplate_CipdPackage) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskTemplate_CipdPackage) ProtoMessage() {}
func (x *TaskTemplate_CipdPackage) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 TaskTemplate_CipdPackage.ProtoReflect.Descriptor instead.
func (*TaskTemplate_CipdPackage) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{4, 1}
}
func (x *TaskTemplate_CipdPackage) GetPath() string {
if x != nil {
return x.Path
}
return ""
}
func (x *TaskTemplate_CipdPackage) GetPkg() string {
if x != nil {
return x.Pkg
}
return ""
}
func (x *TaskTemplate_CipdPackage) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
type TaskTemplate_Env struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The envvar you want to set (required).
Var string `protobuf:"bytes,1,opt,name=var,proto3" json:"var,omitempty"`
// The envvar value you want to set. Any prefixes are prepended to this
// value. If the value is unset, prefixes will be prepended to the bot's
// current value of this envvar (see examples)
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
// Paths relative to the task root to prepend to this envvar on the bot.
// These will be resolved to absolute paths on the bot.
Prefix []string `protobuf:"bytes,3,rep,name=prefix,proto3" json:"prefix,omitempty"`
// If true, tasks setting this EnvVar can overwrite the value and/or the
// prefix. Otherwise, tasks will not be permitted to to set any env var or
// env_prefix for this var.
//
// This should be True for envvars you expect tasks to extend, like $PATH.
// Note that this only affects envvar manipulation at the Swarming API
// level; once the task is running it can (of course) manipulate the env
// however it wants.
Soft bool `protobuf:"varint,4,opt,name=soft,proto3" json:"soft,omitempty"`
}
func (x *TaskTemplate_Env) Reset() {
*x = TaskTemplate_Env{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TaskTemplate_Env) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TaskTemplate_Env) ProtoMessage() {}
func (x *TaskTemplate_Env) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[12]
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 TaskTemplate_Env.ProtoReflect.Descriptor instead.
func (*TaskTemplate_Env) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{4, 2}
}
func (x *TaskTemplate_Env) GetVar() string {
if x != nil {
return x.Var
}
return ""
}
func (x *TaskTemplate_Env) GetValue() string {
if x != nil {
return x.Value
}
return ""
}
func (x *TaskTemplate_Env) GetPrefix() []string {
if x != nil {
return x.Prefix
}
return nil
}
func (x *TaskTemplate_Env) GetSoft() bool {
if x != nil {
return x.Soft
}
return false
}
type ExternalServices_Isolate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// (required) URL of the default isolate server to use if it is not
// specified in the task.
//
// Must start with "https://" or "http://".
//
// e.g. "https://isolateserver.appspot.com"
Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
// (required) Default namespace to use if it is not specified in a task,
// e.g. "default-gzip"
Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
}
func (x *ExternalServices_Isolate) Reset() {
*x = ExternalServices_Isolate{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExternalServices_Isolate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExternalServices_Isolate) ProtoMessage() {}
func (x *ExternalServices_Isolate) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[13]
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 ExternalServices_Isolate.ProtoReflect.Descriptor instead.
func (*ExternalServices_Isolate) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{8, 0}
}
func (x *ExternalServices_Isolate) GetServer() string {
if x != nil {
return x.Server
}
return ""
}
func (x *ExternalServices_Isolate) GetNamespace() string {
if x != nil {
return x.Namespace
}
return ""
}
type ExternalServices_CIPD struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// (required) URL of the default CIPD server to use, if it is not specified
// in the task.
//
// Must start with "https://" or "http://".
//
// e.g. "https://chrome-infra-packages.appspot.com"
Server string `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"`
// (required) The version of the cipd client to use. This is likely the
// 'infra/tools/cipd/${platform}' package, but because it's part of the
// bootstrap needs special logic to handle its installation.
ClientPackage *CipdPackage `protobuf:"bytes,3,opt,name=client_package,json=clientPackage,proto3" json:"client_package,omitempty"`
}
func (x *ExternalServices_CIPD) Reset() {
*x = ExternalServices_CIPD{}
if protoimpl.UnsafeEnabled {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ExternalServices_CIPD) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ExternalServices_CIPD) ProtoMessage() {}
func (x *ExternalServices_CIPD) ProtoReflect() protoreflect.Message {
mi := &file_go_chromium_org_luci_swarming_proto_config_pools_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 ExternalServices_CIPD.ProtoReflect.Descriptor instead.
func (*ExternalServices_CIPD) Descriptor() ([]byte, []int) {
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP(), []int{8, 1}
}
func (x *ExternalServices_CIPD) GetServer() string {
if x != nil {
return x.Server
}
return ""
}
func (x *ExternalServices_CIPD) GetClientPackage() *CipdPackage {
if x != nil {
return x.ClientPackage
}
return nil
}
var File_go_chromium_org_luci_swarming_proto_config_pools_proto protoreflect.FileDescriptor
var file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDesc = []byte{
0x0a, 0x36, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72,
0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2f,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x70, 0x6f, 0x6f,
0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2f,
0x72, 0x65, 0x61, 0x6c, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x88, 0x03, 0x0a,
0x08, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x43, 0x66, 0x67, 0x12, 0x29, 0x0a, 0x04, 0x70, 0x6f, 0x6f,
0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x04,
0x70, 0x6f, 0x6f, 0x6c, 0x12, 0x5d, 0x0a, 0x19, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f,
0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e,
0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x17, 0x64, 0x65, 0x66, 0x61,
0x75, 0x6c, 0x74, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0d, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x65, 0x6d, 0x70,
0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x73,
0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x54,
0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x18, 0x74, 0x61, 0x73, 0x6b, 0x5f,
0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d,
0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x73, 0x6b,
0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65,
0x6e, 0x74, 0x52, 0x16, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x45, 0x0a, 0x0e, 0x62, 0x6f,
0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x6f, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69,
0x6e, 0x67, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e,
0x67, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0xd8, 0x05, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x02,
0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x3b, 0x0a, 0x0a,
0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1b, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x73,
0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x61, 0x6c, 0x6c,
0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x61, 0x6c, 0x6c, 0x6f,
0x77, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e,
0x74, 0x12, 0x41, 0x0a, 0x1d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72,
0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x67, 0x72, 0x6f,
0x75, 0x70, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65,
0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x47,
0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x18, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x16, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65,
0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74,
0x12, 0x70, 0x0a, 0x1f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x6c,
0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x77, 0x61, 0x72,
0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x73, 0x6b,
0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65,
0x6e, 0x74, 0x48, 0x00, 0x52, 0x1c, 0x74, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
0x74, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x6c, 0x69,
0x6e, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x6f, 0x74, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f,
0x72, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x4d,
0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x59, 0x0a, 0x13, 0x65, 0x78, 0x74,
0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x73,
0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x52, 0x12, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75,
0x6c, 0x65, 0x72, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x18, 0x0a, 0x20,
0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x12, 0x5e, 0x0a, 0x1a, 0x65, 0x6e,
0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x6d, 0x5f, 0x70, 0x65, 0x72,
0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x20,
0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x2e, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e,
0x52, 0x18, 0x65, 0x6e, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x64, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x50,
0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x64, 0x65,
0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x72, 0x65, 0x61, 0x6c, 0x6d,
0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54,
0x61, 0x73, 0x6b, 0x52, 0x65, 0x61, 0x6c, 0x6d, 0x42, 0x18, 0x0a, 0x16, 0x74, 0x61, 0x73, 0x6b,
0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65,
0x6d, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52,
0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02,
0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74,
0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69,
0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65,
0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x74, 0x72, 0x75,
0x73, 0x74, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9b,
0x01, 0x0a, 0x11, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x65, 0x65, 0x72, 0x49, 0x64, 0x12, 0x50, 0x0a,
0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x6f, 0x66, 0x18,
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67,
0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x44,
0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73,
0x74, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x41, 0x6e, 0x79, 0x4f, 0x66, 0x1a,
0x1b, 0x0a, 0x07, 0x54, 0x61, 0x67, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61,
0x67, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x22, 0xdf, 0x03, 0x0a,
0x0c, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x03,
0x28, 0x09, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x12, 0x3e, 0x0a, 0x05, 0x63,
0x61, 0x63, 0x68, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x73,
0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x45,
0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x63, 0x61, 0x63, 0x68, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x63,
0x69, 0x70, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28,
0x0b, 0x32, 0x29, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x63, 0x69,
0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x33, 0x0a, 0x03, 0x65, 0x6e, 0x76,
0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e,
0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d,
0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x76, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x1a, 0x34,
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, 0x1a, 0x4d, 0x0a, 0x0b, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b,
0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x6b, 0x67, 0x18, 0x02,
0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x6b, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72,
0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73,
0x69, 0x6f, 0x6e, 0x1a, 0x59, 0x0a, 0x03, 0x45, 0x6e, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x61,
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x03,
0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x6f,
0x66, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x73, 0x6f, 0x66, 0x74, 0x22, 0xbb,
0x01, 0x0a, 0x16, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x44,
0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a,
0x04, 0x70, 0x72, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x77,
0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x54, 0x61,
0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x70, 0x72, 0x6f, 0x64,
0x12, 0x35, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x1d, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x2e, 0x54, 0x61, 0x73, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52,
0x06, 0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x6e, 0x61, 0x72,
0x79, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c,
0x63, 0x61, 0x6e, 0x61, 0x72, 0x79, 0x43, 0x68, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x0d,
0x42, 0x6f, 0x74, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a,
0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6b,
0x65, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73,
0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x22, 0xab, 0x02, 0x0a, 0x17, 0x45, 0x78, 0x74, 0x65, 0x72,
0x6e, 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x02,
0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 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, 0x18, 0x0a, 0x07,
0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65,
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x13, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61,
0x63, 0x6b, 0x5f, 0x77, 0x68, 0x65, 0x6e, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x05, 0x20,
0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x11, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63,
0x6b, 0x57, 0x68, 0x65, 0x6e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c,
0x6c, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03,
0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6e, 0x79, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69,
0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6e, 0x79, 0x44, 0x69,
0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f,
0x77, 0x5f, 0x65, 0x73, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x08, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x45, 0x73, 0x46, 0x61, 0x6c, 0x6c,
0x62, 0x61, 0x63, 0x6b, 0x22, 0xcf, 0x02, 0x0a, 0x10, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61,
0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x07, 0x69, 0x73, 0x6f,
0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x73, 0x77, 0x61,
0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x78, 0x74,
0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e, 0x49, 0x73,
0x6f, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x07, 0x69, 0x73, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3a,
0x0a, 0x04, 0x63, 0x69, 0x70, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73,
0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45,
0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2e,
0x43, 0x49, 0x50, 0x44, 0x52, 0x04, 0x63, 0x69, 0x70, 0x64, 0x1a, 0x3f, 0x0a, 0x07, 0x49, 0x73,
0x6f, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x0a,
0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x1a, 0x79, 0x0a, 0x04, 0x43,
0x49, 0x50, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x43, 0x0a, 0x0e, 0x63,
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43, 0x69, 0x70, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67,
0x65, 0x52, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65,
0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x52, 0x0e, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x76,
0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x7e, 0x5a, 0x33, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72,
0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2f, 0x73,
0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x70, 0x62, 0xa2, 0xfe, 0x23,
0x45, 0x0a, 0x43, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x6c, 0x75, 0x63, 0x69, 0x2d,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x61, 0x70, 0x70, 0x73, 0x70, 0x6f, 0x74, 0x2e, 0x63,
0x6f, 0x6d, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x73, 0x2f, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x6f, 0x6f,
0x6c, 0x73, 0x2e, 0x63, 0x66, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescOnce sync.Once
file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescData = file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDesc
)
func file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescGZIP() []byte {
file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescOnce.Do(func() {
file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescData)
})
return file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDescData
}
var file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_go_chromium_org_luci_swarming_proto_config_pools_proto_goTypes = []interface{}{
(*PoolsCfg)(nil), // 0: swarming.config.PoolsCfg
(*Pool)(nil), // 1: swarming.config.Pool
(*Schedulers)(nil), // 2: swarming.config.Schedulers
(*TrustedDelegation)(nil), // 3: swarming.config.TrustedDelegation
(*TaskTemplate)(nil), // 4: swarming.config.TaskTemplate
(*TaskTemplateDeployment)(nil), // 5: swarming.config.TaskTemplateDeployment
(*BotMonitoring)(nil), // 6: swarming.config.BotMonitoring
(*ExternalSchedulerConfig)(nil), // 7: swarming.config.ExternalSchedulerConfig
(*ExternalServices)(nil), // 8: swarming.config.ExternalServices
(*TrustedDelegation_TagList)(nil), // 9: swarming.config.TrustedDelegation.TagList
(*TaskTemplate_CacheEntry)(nil), // 10: swarming.config.TaskTemplate.CacheEntry
(*TaskTemplate_CipdPackage)(nil), // 11: swarming.config.TaskTemplate.CipdPackage
(*TaskTemplate_Env)(nil), // 12: swarming.config.TaskTemplate.Env
(*ExternalServices_Isolate)(nil), // 13: swarming.config.ExternalServices.Isolate
(*ExternalServices_CIPD)(nil), // 14: swarming.config.ExternalServices.CIPD
(RealmPermission)(0), // 15: swarming.config.RealmPermission
(*CipdPackage)(nil), // 16: swarming.config.CipdPackage
}
var file_go_chromium_org_luci_swarming_proto_config_pools_proto_depIdxs = []int32{
1, // 0: swarming.config.PoolsCfg.pool:type_name -> swarming.config.Pool
8, // 1: swarming.config.PoolsCfg.default_external_services:type_name -> swarming.config.ExternalServices
4, // 2: swarming.config.PoolsCfg.task_template:type_name -> swarming.config.TaskTemplate
5, // 3: swarming.config.PoolsCfg.task_template_deployment:type_name -> swarming.config.TaskTemplateDeployment
6, // 4: swarming.config.PoolsCfg.bot_monitoring:type_name -> swarming.config.BotMonitoring
2, // 5: swarming.config.Pool.schedulers:type_name -> swarming.config.Schedulers
5, // 6: swarming.config.Pool.task_template_deployment_inline:type_name -> swarming.config.TaskTemplateDeployment
7, // 7: swarming.config.Pool.external_schedulers:type_name -> swarming.config.ExternalSchedulerConfig
15, // 8: swarming.config.Pool.enforced_realm_permissions:type_name -> swarming.config.RealmPermission
3, // 9: swarming.config.Schedulers.trusted_delegation:type_name -> swarming.config.TrustedDelegation
9, // 10: swarming.config.TrustedDelegation.require_any_of:type_name -> swarming.config.TrustedDelegation.TagList
10, // 11: swarming.config.TaskTemplate.cache:type_name -> swarming.config.TaskTemplate.CacheEntry
11, // 12: swarming.config.TaskTemplate.cipd_package:type_name -> swarming.config.TaskTemplate.CipdPackage
12, // 13: swarming.config.TaskTemplate.env:type_name -> swarming.config.TaskTemplate.Env
4, // 14: swarming.config.TaskTemplateDeployment.prod:type_name -> swarming.config.TaskTemplate
4, // 15: swarming.config.TaskTemplateDeployment.canary:type_name -> swarming.config.TaskTemplate
13, // 16: swarming.config.ExternalServices.isolate:type_name -> swarming.config.ExternalServices.Isolate
14, // 17: swarming.config.ExternalServices.cipd:type_name -> swarming.config.ExternalServices.CIPD
16, // 18: swarming.config.ExternalServices.CIPD.client_package:type_name -> swarming.config.CipdPackage
19, // [19:19] is the sub-list for method output_type
19, // [19:19] is the sub-list for method input_type
19, // [19:19] is the sub-list for extension type_name
19, // [19:19] is the sub-list for extension extendee
0, // [0:19] is the sub-list for field type_name
}
func init() { file_go_chromium_org_luci_swarming_proto_config_pools_proto_init() }
func file_go_chromium_org_luci_swarming_proto_config_pools_proto_init() {
if File_go_chromium_org_luci_swarming_proto_config_pools_proto != nil {
return
}
file_go_chromium_org_luci_swarming_proto_config_config_proto_init()
file_go_chromium_org_luci_swarming_proto_config_realms_proto_init()
if !protoimpl.UnsafeEnabled {
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PoolsCfg); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Pool); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Schedulers); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrustedDelegation); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskTemplate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskTemplateDeployment); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*BotMonitoring); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExternalSchedulerConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExternalServices); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TrustedDelegation_TagList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskTemplate_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_swarming_proto_config_pools_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskTemplate_CipdPackage); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TaskTemplate_Env); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExternalServices_Isolate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ExternalServices_CIPD); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes[1].OneofWrappers = []interface{}{
(*Pool_TaskTemplateDeployment)(nil),
(*Pool_TaskTemplateDeploymentInline)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDesc,
NumEnums: 0,
NumMessages: 15,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_go_chromium_org_luci_swarming_proto_config_pools_proto_goTypes,
DependencyIndexes: file_go_chromium_org_luci_swarming_proto_config_pools_proto_depIdxs,
MessageInfos: file_go_chromium_org_luci_swarming_proto_config_pools_proto_msgTypes,
}.Build()
File_go_chromium_org_luci_swarming_proto_config_pools_proto = out.File
file_go_chromium_org_luci_swarming_proto_config_pools_proto_rawDesc = nil
file_go_chromium_org_luci_swarming_proto_config_pools_proto_goTypes = nil
file_go_chromium_org_luci_swarming_proto_config_pools_proto_depIdxs = nil
}