| // 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 |
| } |