| // Copyright 2016 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.31.0 |
| // protoc v3.21.7 |
| // source: go.chromium.org/luci/swarming/proto/config/bots.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 bots.cfg service config file in luci-config. |
| // |
| // It defines a function bot_id => (required credentials, trusted_dimensions, |
| // config), where |
| // - "bot_id" is identifier of a bot as sent by the bot itself (usually |
| // machine hostname, short one, not FQDN) |
| // - "required credentials" describes how server should authenticate calls |
| // from the bot. |
| // - "trusted_dimensions" is a set of dimension set by the server itself. |
| // Such dimensions can't be spoofed by the bot. |
| // - "config" is any additional bot configuration. |
| // |
| // Connections from bots that do not appear in this config are rejected. |
| // |
| // The default config (used if bots.cfg is missing) represents IP-whitelist only |
| // authentication, as was used before bots.cfg was implemented: |
| // |
| // bot_group { |
| // auth { |
| // ip_whitelist: "<swarming-app-id>-bots" |
| // } |
| // } |
| type BotsCfg struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // List of dimension names that are provided by the server. |
| // |
| // If bot attempts to set such dimension, it'll be ignored. Trusted dimensions |
| // are defined through bot_group configs below. Swarming users can trust such |
| // dimensions, since they are set by the server based on validated credentials |
| // (unlike other dimensions that can be arbitrary defined by the bot itself). |
| TrustedDimensions []string `protobuf:"bytes,1,rep,name=trusted_dimensions,json=trustedDimensions,proto3" json:"trusted_dimensions,omitempty"` |
| // A list of groups of bots. Each group defines a bunch of bots that all |
| // have same dimensions and authenticate in the same way. |
| // |
| // The order of entries here is irrelevant. The server uses the following |
| // search algorithm when trying to pick a group for a bot with some bot_id: |
| // 1. First it tries to find a direct match: a group that lists the bot in |
| // bot_id field. |
| // 2. Next it tries to find a group with matching bot_id_prefix. The config |
| // validation process makes sure prefixes do not "intersect", so there |
| // will be at most one matching group. |
| // 3. Finally, if there's a group with no defined bot_id or bot_id_prefix |
| // fields (the "default" group), the bot is categorized to that group. |
| // If there's no such group, the connection from the bot is rejected. |
| // Config validation process ensures there can be only one such group. |
| BotGroup []*BotGroup `protobuf:"bytes,2,rep,name=bot_group,json=botGroup,proto3" json:"bot_group,omitempty"` |
| } |
| |
| func (x *BotsCfg) Reset() { |
| *x = BotsCfg{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotsCfg) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotsCfg) ProtoMessage() {} |
| |
| func (x *BotsCfg) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_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 BotsCfg.ProtoReflect.Descriptor instead. |
| func (*BotsCfg) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *BotsCfg) GetTrustedDimensions() []string { |
| if x != nil { |
| return x.TrustedDimensions |
| } |
| return nil |
| } |
| |
| func (x *BotsCfg) GetBotGroup() []*BotGroup { |
| if x != nil { |
| return x.BotGroup |
| } |
| return nil |
| } |
| |
| // A group of bots that share authentication method, dimensions and owners. |
| // |
| // Union of bot_id and bot_id_prefix define a set of bots that belong to this |
| // group. The rest of the fields define properties of this group. |
| // |
| // If bot_id and bot_id_prefix are both missing, the group defines all bots that |
| // didn't fit into other groups. There can be only one such "default" group. |
| // |
| // NOTE: Swarming allows 'derivative' bots where multiple bots run on the same |
| // host machine in some sort of container (such as Docker containers) and SHARE |
| // A SINGLE CREDENTIAL. These bots have hostnames such as 'hostmachine--001', |
| // where the "--001" suffix indicates which of the contained bots on |
| // 'hostmachine' it is. When Swarming checks the bot affiliation for this |
| // contained machine, it checks ONLY the 'hostmachine' portion. This means that |
| // if your contained bot is 'vm10-vlan2--001', it would match: |
| // |
| // `bot_id: "vm10-vlan2` |
| // `bot_id: "vm{0...100}-vlan2` |
| // `bot_id_prefix: "vm10-vlan` |
| // |
| // but would NOT match: |
| // |
| // `bot_id: "vm10-vlan2--001` |
| // `bot_id_prefix: "vm10-vlan2-` |
| // `bot_id_prefix: "vm10-vlan2--` |
| // |
| // TODO(vadimsh): Introduce explicit field "use_as_default" instead. |
| type BotGroup struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Explicit enumeration of bot IDs belonging to this group. |
| // |
| // It supports subset of bash brace expansion syntax, in particular ranges |
| // and lists. For example: |
| // - vm{1..3}-m1 will expand into vm1-m1, vm2-m1 and vm3-m1. |
| // - vm{100,150,200}-m1 will expand into vm100-m1, vm150-m1 and vm200-m1. |
| // |
| // There can be only one "{...}" section in the string. |
| BotId []string `protobuf:"bytes,1,rep,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"` |
| // A prefix to match against bot ID string. |
| BotIdPrefix []string `protobuf:"bytes,2,rep,name=bot_id_prefix,json=botIdPrefix,proto3" json:"bot_id_prefix,omitempty"` |
| // Defines authentication methods for bots from this group. |
| // |
| // Evaluated sequentially until first match. |
| Auth []*BotAuth `protobuf:"bytes,20,rep,name=auth,proto3" json:"auth,omitempty"` |
| // Emails of owners of these bots. Optional. |
| Owners []string `protobuf:"bytes,21,rep,name=owners,proto3" json:"owners,omitempty"` |
| // List of dimensions to assign to these bots. |
| // |
| // Each dimension is a "<key>:<value>" pair. |
| Dimensions []string `protobuf:"bytes,22,rep,name=dimensions,proto3" json:"dimensions,omitempty"` |
| // Path to an additional config script to inject into the swarming bot upon |
| // handshake. |
| // |
| // The path is relative to 'scripts/' directory in the service config repo. |
| BotConfigScript string `protobuf:"bytes,23,opt,name=bot_config_script,json=botConfigScript,proto3" json:"bot_config_script,omitempty"` |
| // The revision of the config script to inject into the swarming bot upon |
| // handshake. |
| // |
| // The field is filled when the bots.cfg gets loaded. |
| BotConfigScriptRev string `protobuf:"bytes,26,opt,name=bot_config_script_rev,json=botConfigScriptRev,proto3" json:"bot_config_script_rev,omitempty"` |
| // The actual body of the config script to inject into the swarming bot upon |
| // handshake (in whatever encoding it happened to be in the config repo). |
| // |
| // For internal use (unless you fancy writing python scripts as single line |
| // escaped text proto string). If present, overrides 'bot_config_script'. |
| BotConfigScriptContent []byte `protobuf:"bytes,25,opt,name=bot_config_script_content,json=botConfigScriptContent,proto3" json:"bot_config_script_content,omitempty"` |
| // A service account to use on bots when authenticating calls to various |
| // system-level services (like Isolate and CIPD), required for correct |
| // operation of the bot. |
| // |
| // Tasks will be able to access this account too, but it is not recommended |
| // and should be used extremely rare. |
| // |
| // If set to a service account email (*@*.iam.gserviceaccount.com), bots will |
| // use this account, generating access token through Swarming server. For this |
| // to work, the server account (<app-id>@appspot.gserviceaccount.com) must |
| // have "serviceAccountActor" IAM role set on the account. |
| // |
| // If set to a special string "bot", bots will use exact same token they use |
| // when authenticating calls to Swarming server itself. This works only if |
| // bots use OAuth for authentication (see 'require_service_account' in |
| // BotAuth). This mode exists for cases when proliferation of various service |
| // accounts is undesirable. Note that in this mode Swarming processes won't be |
| // able to request a system account token with some new scopes: they get exact |
| // same token as returned by get_authentication_headers bot_config.py hook. |
| // |
| // If not set, bots will not use authentication at all. |
| SystemServiceAccount string `protobuf:"bytes,24,opt,name=system_service_account,json=systemServiceAccount,proto3" json:"system_service_account,omitempty"` |
| // The cloud project id where the bot saves its logs. |
| // For GCE bots, it is the same cloud project where the bots reside. |
| // For non-GCE bots, it is the cloud project where the logs are being sent to. |
| LogsCloudProject string `protobuf:"bytes,27,opt,name=logs_cloud_project,json=logsCloudProject,proto3" json:"logs_cloud_project,omitempty"` |
| RbeMigration *BotGroup_RBEMigration `protobuf:"bytes,28,opt,name=rbe_migration,json=rbeMigration,proto3" json:"rbe_migration,omitempty"` |
| } |
| |
| func (x *BotGroup) Reset() { |
| *x = BotGroup{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotGroup) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotGroup) ProtoMessage() {} |
| |
| func (x *BotGroup) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_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 BotGroup.ProtoReflect.Descriptor instead. |
| func (*BotGroup) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *BotGroup) GetBotId() []string { |
| if x != nil { |
| return x.BotId |
| } |
| return nil |
| } |
| |
| func (x *BotGroup) GetBotIdPrefix() []string { |
| if x != nil { |
| return x.BotIdPrefix |
| } |
| return nil |
| } |
| |
| func (x *BotGroup) GetAuth() []*BotAuth { |
| if x != nil { |
| return x.Auth |
| } |
| return nil |
| } |
| |
| func (x *BotGroup) GetOwners() []string { |
| if x != nil { |
| return x.Owners |
| } |
| return nil |
| } |
| |
| func (x *BotGroup) GetDimensions() []string { |
| if x != nil { |
| return x.Dimensions |
| } |
| return nil |
| } |
| |
| func (x *BotGroup) GetBotConfigScript() string { |
| if x != nil { |
| return x.BotConfigScript |
| } |
| return "" |
| } |
| |
| func (x *BotGroup) GetBotConfigScriptRev() string { |
| if x != nil { |
| return x.BotConfigScriptRev |
| } |
| return "" |
| } |
| |
| func (x *BotGroup) GetBotConfigScriptContent() []byte { |
| if x != nil { |
| return x.BotConfigScriptContent |
| } |
| return nil |
| } |
| |
| func (x *BotGroup) GetSystemServiceAccount() string { |
| if x != nil { |
| return x.SystemServiceAccount |
| } |
| return "" |
| } |
| |
| func (x *BotGroup) GetLogsCloudProject() string { |
| if x != nil { |
| return x.LogsCloudProject |
| } |
| return "" |
| } |
| |
| func (x *BotGroup) GetRbeMigration() *BotGroup_RBEMigration { |
| if x != nil { |
| return x.RbeMigration |
| } |
| return nil |
| } |
| |
| // Defines what kind of authentication to perform when handling requests from |
| // bots belonging to some bot group. |
| // |
| // The following combinations are valid: |
| // - Either one of require_* alone. |
| // - IP whitelist alone. |
| // - IP + require_luci_machine_token: requires both to pass. |
| // - IP + require_service_account: requires both to pass. |
| // - IP + require_gce_vm_token: requires both to pass. |
| // |
| // Next ID: 6. |
| type BotAuth struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // If true, log an error (but proceed) if this method didn't succeed. |
| // |
| // This field is totally optional and makes sense only when there are more |
| // than one auth method. Affects only logging levels. |
| // |
| // Doesn't apply to methods that were skipped because some method before them |
| // succeeded. Thus methods that have 'log_if_failed' should be in front of |
| // BotGroup.auth list. |
| // |
| // This is useful when migrating from one auth method to another to verify |
| // the new method is used in 100% of cases, while still keeping a fallback |
| // to an old method. |
| LogIfFailed bool `protobuf:"varint,5,opt,name=log_if_failed,json=logIfFailed,proto3" json:"log_if_failed,omitempty"` |
| // If true, the bot should provide valid X-Luci-Machine-Token header. |
| // |
| // The machine FQDN embedded in the token should have hostname equal to the |
| // bot_id. |
| RequireLuciMachineToken bool `protobuf:"varint,1,opt,name=require_luci_machine_token,json=requireLuciMachineToken,proto3" json:"require_luci_machine_token,omitempty"` |
| // If set, the bot should use OAuth access token belonging to any of these |
| // service accounts. |
| // |
| // The token should have "https://www.googleapis.com/auth/userinfo.email" |
| // scope. |
| RequireServiceAccount []string `protobuf:"bytes,2,rep,name=require_service_account,json=requireServiceAccount,proto3" json:"require_service_account,omitempty"` |
| // If set, the bot should provide valid X-Luci-Gce-Vm-Token header. |
| // |
| // This header should contain JWT with signed VM metadata with the following |
| // expectations: |
| // - Audience matches https://[*-dot-]<app>.appspot.com |
| // - google.compute_engine.project_id field matches the value of 'project'. |
| // - instance_name matches bot_id reported by the bot (case insensitive). |
| RequireGceVmToken *BotAuth_GCE `protobuf:"bytes,4,opt,name=require_gce_vm_token,json=requireGceVmToken,proto3" json:"require_gce_vm_token,omitempty"` |
| // If set, defines an IP whitelist name (in auth_service database) with a set |
| // of IPs allowed to be used by the bots in this group. |
| // |
| // Works in conjunction with other checks, e.g. if require_luci_machine_token |
| // is true, both valid X-Luci-Machine-Token and a whitelisted IP are needed to |
| // successfully authenticate. |
| // |
| // Can also be used on its own (when all other fields are empty). In that case |
| // the IP whitelist is the primary authentication mechanism. Note that in this |
| // case all bots that share the IP whitelist are effectively in a single trust |
| // domain (any bot can pretend to be some other bot). |
| IpWhitelist string `protobuf:"bytes,3,opt,name=ip_whitelist,json=ipWhitelist,proto3" json:"ip_whitelist,omitempty"` |
| } |
| |
| func (x *BotAuth) Reset() { |
| *x = BotAuth{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotAuth) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotAuth) ProtoMessage() {} |
| |
| func (x *BotAuth) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_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 BotAuth.ProtoReflect.Descriptor instead. |
| func (*BotAuth) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (x *BotAuth) GetLogIfFailed() bool { |
| if x != nil { |
| return x.LogIfFailed |
| } |
| return false |
| } |
| |
| func (x *BotAuth) GetRequireLuciMachineToken() bool { |
| if x != nil { |
| return x.RequireLuciMachineToken |
| } |
| return false |
| } |
| |
| func (x *BotAuth) GetRequireServiceAccount() []string { |
| if x != nil { |
| return x.RequireServiceAccount |
| } |
| return nil |
| } |
| |
| func (x *BotAuth) GetRequireGceVmToken() *BotAuth_GCE { |
| if x != nil { |
| return x.RequireGceVmToken |
| } |
| return nil |
| } |
| |
| func (x *BotAuth) GetIpWhitelist() string { |
| if x != nil { |
| return x.IpWhitelist |
| } |
| return "" |
| } |
| |
| // Settings controlling migration to the RBE Scheduler. |
| // |
| // They are used only if all pools the bot belongs to are associated with an |
| // RBE instance, and it is the same instance for all pools. |
| // |
| // TODO(vadimsh): Remove when no longer used. Replace by BotModeAllocation in |
| // Pool.RBEMigration. |
| type BotGroup_RBEMigration struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Approximate percent of bots in this bot group to switch to the RBE mode. |
| // |
| // A bot is in the RBE mode if `hash(bot_id) % 100 <= rbe_mode_percent`. |
| RbeModePercent int32 `protobuf:"varint,1,opt,name=rbe_mode_percent,json=rbeModePercent,proto3" json:"rbe_mode_percent,omitempty"` |
| // Bots to put into the RBE mode regardless of `rbe_mode_percent`. |
| // |
| // Useful to force the RBE mode on a particular bot. |
| EnableRbeOn []string `protobuf:"bytes,2,rep,name=enable_rbe_on,json=enableRbeOn,proto3" json:"enable_rbe_on,omitempty"` |
| // Bots to exclude from the RBE mode regardless of `rbe_mode_percent`. |
| // |
| // Useful to exclude problematic bots from the RBE mode. |
| DisableRbeOn []string `protobuf:"bytes,3,rep,name=disable_rbe_on,json=disableRbeOn,proto3" json:"disable_rbe_on,omitempty"` |
| // If true consume tasks from both Swarming and RBE schedulers at the same |
| // time (in an interleaved kind of way). |
| // |
| // Useful when migrating small bot pools. In this mode task ordering and |
| // priority may not be respected (if tasks end up in different schedulers) |
| // and there may be higher scheduling delays. |
| HybridMode bool `protobuf:"varint,4,opt,name=hybrid_mode,json=hybridMode,proto3" json:"hybrid_mode,omitempty"` |
| } |
| |
| func (x *BotGroup_RBEMigration) Reset() { |
| *x = BotGroup_RBEMigration{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotGroup_RBEMigration) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotGroup_RBEMigration) ProtoMessage() {} |
| |
| func (x *BotGroup_RBEMigration) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_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 BotGroup_RBEMigration.ProtoReflect.Descriptor instead. |
| func (*BotGroup_RBEMigration) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescGZIP(), []int{1, 0} |
| } |
| |
| func (x *BotGroup_RBEMigration) GetRbeModePercent() int32 { |
| if x != nil { |
| return x.RbeModePercent |
| } |
| return 0 |
| } |
| |
| func (x *BotGroup_RBEMigration) GetEnableRbeOn() []string { |
| if x != nil { |
| return x.EnableRbeOn |
| } |
| return nil |
| } |
| |
| func (x *BotGroup_RBEMigration) GetDisableRbeOn() []string { |
| if x != nil { |
| return x.DisableRbeOn |
| } |
| return nil |
| } |
| |
| func (x *BotGroup_RBEMigration) GetHybridMode() bool { |
| if x != nil { |
| return x.HybridMode |
| } |
| return false |
| } |
| |
| // See require_gce_vm_token below. |
| type BotAuth_GCE struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` |
| } |
| |
| func (x *BotAuth_GCE) Reset() { |
| *x = BotAuth_GCE{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotAuth_GCE) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotAuth_GCE) ProtoMessage() {} |
| |
| func (x *BotAuth_GCE) ProtoReflect() protoreflect.Message { |
| mi := &file_go_chromium_org_luci_swarming_proto_config_bots_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 BotAuth_GCE.ProtoReflect.Descriptor instead. |
| func (*BotAuth_GCE) Descriptor() ([]byte, []int) { |
| return file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescGZIP(), []int{2, 0} |
| } |
| |
| func (x *BotAuth_GCE) GetProject() string { |
| if x != nil { |
| return x.Project |
| } |
| return "" |
| } |
| |
| var File_go_chromium_org_luci_swarming_proto_config_bots_proto protoreflect.FileDescriptor |
| |
| var file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDesc = []byte{ |
| 0x0a, 0x35, 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, 0x62, 0x6f, 0x74, |
| 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, 0x22, 0x70, 0x0a, 0x07, 0x42, 0x6f, 0x74, |
| 0x73, 0x43, 0x66, 0x67, 0x12, 0x2d, 0x0a, 0x12, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, |
| 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, |
| 0x52, 0x11, 0x74, 0x72, 0x75, 0x73, 0x74, 0x65, 0x64, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, |
| 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x62, 0x6f, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, |
| 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, |
| 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x6f, 0x74, 0x47, 0x72, 0x6f, 0x75, |
| 0x70, 0x52, 0x08, 0x62, 0x6f, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xa2, 0x05, 0x0a, 0x08, |
| 0x42, 0x6f, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x74, 0x5f, |
| 0x69, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x12, |
| 0x22, 0x0a, 0x0d, 0x62, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, |
| 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x6f, 0x74, 0x49, 0x64, 0x50, 0x72, 0x65, |
| 0x66, 0x69, 0x78, 0x12, 0x2c, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x68, 0x18, 0x14, 0x20, 0x03, 0x28, |
| 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x2e, 0x42, 0x6f, 0x74, 0x41, 0x75, 0x74, 0x68, 0x52, 0x04, 0x61, 0x75, 0x74, |
| 0x68, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, |
| 0x09, 0x52, 0x06, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x6d, |
| 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, |
| 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x6f, 0x74, |
| 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x17, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, |
| 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x6f, 0x74, 0x5f, 0x63, 0x6f, 0x6e, |
| 0x66, 0x69, 0x67, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x72, 0x65, 0x76, 0x18, 0x1a, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x62, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, |
| 0x63, 0x72, 0x69, 0x70, 0x74, 0x52, 0x65, 0x76, 0x12, 0x39, 0x0a, 0x19, 0x62, 0x6f, 0x74, 0x5f, |
| 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x63, 0x6f, |
| 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x16, 0x62, 0x6f, 0x74, |
| 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x63, 0x72, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x74, |
| 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x73, 0x65, |
| 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x18, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, |
| 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x6f, 0x67, |
| 0x73, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, |
| 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x6f, 0x67, 0x73, 0x43, 0x6c, 0x6f, 0x75, 0x64, |
| 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x0d, 0x72, 0x62, 0x65, 0x5f, 0x6d, |
| 0x69, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, |
| 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, |
| 0x2e, 0x42, 0x6f, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x42, 0x45, 0x4d, 0x69, 0x67, |
| 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x62, 0x65, 0x4d, 0x69, 0x67, 0x72, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xa3, 0x01, 0x0a, 0x0c, 0x52, 0x42, 0x45, 0x4d, 0x69, 0x67, 0x72, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x62, 0x65, 0x5f, 0x6d, 0x6f, 0x64, |
| 0x65, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, |
| 0x0e, 0x72, 0x62, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x12, |
| 0x22, 0x0a, 0x0d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x62, 0x65, 0x5f, 0x6f, 0x6e, |
| 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x62, |
| 0x65, 0x4f, 0x6e, 0x12, 0x24, 0x0a, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, |
| 0x62, 0x65, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, |
| 0x61, 0x62, 0x6c, 0x65, 0x52, 0x62, 0x65, 0x4f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x79, 0x62, |
| 0x72, 0x69, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, |
| 0x68, 0x79, 0x62, 0x72, 0x69, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, |
| 0x22, 0xb5, 0x02, 0x0a, 0x07, 0x42, 0x6f, 0x74, 0x41, 0x75, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0d, |
| 0x6c, 0x6f, 0x67, 0x5f, 0x69, 0x66, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, |
| 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x49, 0x66, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, |
| 0x12, 0x3b, 0x0a, 0x1a, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x6c, 0x75, 0x63, 0x69, |
| 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, |
| 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x4c, 0x75, 0x63, |
| 0x69, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x36, 0x0a, |
| 0x17, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, |
| 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, |
| 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, |
| 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x14, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, |
| 0x5f, 0x67, 0x63, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, |
| 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x2e, 0x63, |
| 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x6f, 0x74, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x47, 0x43, |
| 0x45, 0x52, 0x11, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x47, 0x63, 0x65, 0x56, 0x6d, 0x54, |
| 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, |
| 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x57, 0x68, |
| 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x1a, 0x1f, 0x0a, 0x03, 0x47, 0x43, 0x45, 0x12, 0x18, |
| 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, |
| 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x42, 0x75, 0xa2, 0xfe, 0x23, 0x3c, 0x0a, 0x3a, |
| 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x6c, |
| 0x75, 0x63, 0x69, 0x2e, 0x61, 0x70, 0x70, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, |
| 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, |
| 0x67, 0x3a, 0x62, 0x6f, 0x74, 0x73, 0x2e, 0x63, 0x66, 0x67, 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, 0x62, |
| 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, |
| } |
| |
| var ( |
| file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescOnce sync.Once |
| file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescData = file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDesc |
| ) |
| |
| func file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescGZIP() []byte { |
| file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescOnce.Do(func() { |
| file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescData = protoimpl.X.CompressGZIP(file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescData) |
| }) |
| return file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDescData |
| } |
| |
| var file_go_chromium_org_luci_swarming_proto_config_bots_proto_msgTypes = make([]protoimpl.MessageInfo, 5) |
| var file_go_chromium_org_luci_swarming_proto_config_bots_proto_goTypes = []interface{}{ |
| (*BotsCfg)(nil), // 0: swarming.config.BotsCfg |
| (*BotGroup)(nil), // 1: swarming.config.BotGroup |
| (*BotAuth)(nil), // 2: swarming.config.BotAuth |
| (*BotGroup_RBEMigration)(nil), // 3: swarming.config.BotGroup.RBEMigration |
| (*BotAuth_GCE)(nil), // 4: swarming.config.BotAuth.GCE |
| } |
| var file_go_chromium_org_luci_swarming_proto_config_bots_proto_depIdxs = []int32{ |
| 1, // 0: swarming.config.BotsCfg.bot_group:type_name -> swarming.config.BotGroup |
| 2, // 1: swarming.config.BotGroup.auth:type_name -> swarming.config.BotAuth |
| 3, // 2: swarming.config.BotGroup.rbe_migration:type_name -> swarming.config.BotGroup.RBEMigration |
| 4, // 3: swarming.config.BotAuth.require_gce_vm_token:type_name -> swarming.config.BotAuth.GCE |
| 4, // [4:4] is the sub-list for method output_type |
| 4, // [4:4] is the sub-list for method input_type |
| 4, // [4:4] is the sub-list for extension type_name |
| 4, // [4:4] is the sub-list for extension extendee |
| 0, // [0:4] is the sub-list for field type_name |
| } |
| |
| func init() { file_go_chromium_org_luci_swarming_proto_config_bots_proto_init() } |
| func file_go_chromium_org_luci_swarming_proto_config_bots_proto_init() { |
| if File_go_chromium_org_luci_swarming_proto_config_bots_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_go_chromium_org_luci_swarming_proto_config_bots_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotsCfg); 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_bots_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotGroup); 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_bots_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotAuth); 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_bots_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotGroup_RBEMigration); 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_bots_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotAuth_GCE); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| } |
| type x struct{} |
| out := protoimpl.TypeBuilder{ |
| File: protoimpl.DescBuilder{ |
| GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
| RawDescriptor: file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDesc, |
| NumEnums: 0, |
| NumMessages: 5, |
| NumExtensions: 0, |
| NumServices: 0, |
| }, |
| GoTypes: file_go_chromium_org_luci_swarming_proto_config_bots_proto_goTypes, |
| DependencyIndexes: file_go_chromium_org_luci_swarming_proto_config_bots_proto_depIdxs, |
| MessageInfos: file_go_chromium_org_luci_swarming_proto_config_bots_proto_msgTypes, |
| }.Build() |
| File_go_chromium_org_luci_swarming_proto_config_bots_proto = out.File |
| file_go_chromium_org_luci_swarming_proto_config_bots_proto_rawDesc = nil |
| file_go_chromium_org_luci_swarming_proto_config_bots_proto_goTypes = nil |
| file_go_chromium_org_luci_swarming_proto_config_bots_proto_depIdxs = nil |
| } |