| // Copyright 2020 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license 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.6.1 |
| // source: chromiumos/bot_scaling.proto |
| |
| package chromiumos |
| |
| import ( |
| 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) |
| ) |
| |
| // Specifies mode for a bot policy |
| type BotPolicy_Mode int32 |
| |
| const ( |
| BotPolicy_UNKNOWN_MODE BotPolicy_Mode = 0 |
| // Collect stats only for a bot group. |
| BotPolicy_MONITORED BotPolicy_Mode = 1 |
| // Generate configuration updates for bot group. |
| BotPolicy_CONFIGURED BotPolicy_Mode = 2 |
| ) |
| |
| // Enum value maps for BotPolicy_Mode. |
| var ( |
| BotPolicy_Mode_name = map[int32]string{ |
| 0: "UNKNOWN_MODE", |
| 1: "MONITORED", |
| 2: "CONFIGURED", |
| } |
| BotPolicy_Mode_value = map[string]int32{ |
| "UNKNOWN_MODE": 0, |
| "MONITORED": 1, |
| "CONFIGURED": 2, |
| } |
| ) |
| |
| func (x BotPolicy_Mode) Enum() *BotPolicy_Mode { |
| p := new(BotPolicy_Mode) |
| *p = x |
| return p |
| } |
| |
| func (x BotPolicy_Mode) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (BotPolicy_Mode) Descriptor() protoreflect.EnumDescriptor { |
| return file_chromiumos_bot_scaling_proto_enumTypes[0].Descriptor() |
| } |
| |
| func (BotPolicy_Mode) Type() protoreflect.EnumType { |
| return &file_chromiumos_bot_scaling_proto_enumTypes[0] |
| } |
| |
| func (x BotPolicy_Mode) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use BotPolicy_Mode.Descriptor instead. |
| func (BotPolicy_Mode) EnumDescriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{2, 0} |
| } |
| |
| // Specifies mode for a bot scaling |
| type BotPolicy_BotScalingMode int32 |
| |
| const ( |
| BotPolicy_UNKNOWN_SCALING_MODE BotPolicy_BotScalingMode = 0 |
| // Scale up or down bots by the step size associated with bot group.. |
| BotPolicy_STEPPED BotPolicy_BotScalingMode = 1 |
| // Scale up or down bots by the demand on the bot group. |
| // For use on smaller bot groups that are susceptible to smaller increases. |
| BotPolicy_DEMAND BotPolicy_BotScalingMode = 2 |
| // Scale down bots by the step size associated with bot group. |
| // Scale up bots by the demand on the bot group. |
| BotPolicy_STEPPED_DECREASE BotPolicy_BotScalingMode = 3 |
| ) |
| |
| // Enum value maps for BotPolicy_BotScalingMode. |
| var ( |
| BotPolicy_BotScalingMode_name = map[int32]string{ |
| 0: "UNKNOWN_SCALING_MODE", |
| 1: "STEPPED", |
| 2: "DEMAND", |
| 3: "STEPPED_DECREASE", |
| } |
| BotPolicy_BotScalingMode_value = map[string]int32{ |
| "UNKNOWN_SCALING_MODE": 0, |
| "STEPPED": 1, |
| "DEMAND": 2, |
| "STEPPED_DECREASE": 3, |
| } |
| ) |
| |
| func (x BotPolicy_BotScalingMode) Enum() *BotPolicy_BotScalingMode { |
| p := new(BotPolicy_BotScalingMode) |
| *p = x |
| return p |
| } |
| |
| func (x BotPolicy_BotScalingMode) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (BotPolicy_BotScalingMode) Descriptor() protoreflect.EnumDescriptor { |
| return file_chromiumos_bot_scaling_proto_enumTypes[1].Descriptor() |
| } |
| |
| func (BotPolicy_BotScalingMode) Type() protoreflect.EnumType { |
| return &file_chromiumos_bot_scaling_proto_enumTypes[1] |
| } |
| |
| func (x BotPolicy_BotScalingMode) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use BotPolicy_BotScalingMode.Descriptor instead. |
| func (BotPolicy_BotScalingMode) EnumDescriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{2, 1} |
| } |
| |
| // Specifies if there has been a change since the last iteration. |
| type ScalingAction_Actionable int32 |
| |
| const ( |
| ScalingAction_UNSPECIFIED ScalingAction_Actionable = 0 |
| // There is a change since last time. |
| ScalingAction_YES ScalingAction_Actionable = 1 |
| // There is no change since last time. |
| ScalingAction_NO ScalingAction_Actionable = 2 |
| ) |
| |
| // Enum value maps for ScalingAction_Actionable. |
| var ( |
| ScalingAction_Actionable_name = map[int32]string{ |
| 0: "UNSPECIFIED", |
| 1: "YES", |
| 2: "NO", |
| } |
| ScalingAction_Actionable_value = map[string]int32{ |
| "UNSPECIFIED": 0, |
| "YES": 1, |
| "NO": 2, |
| } |
| ) |
| |
| func (x ScalingAction_Actionable) Enum() *ScalingAction_Actionable { |
| p := new(ScalingAction_Actionable) |
| *p = x |
| return p |
| } |
| |
| func (x ScalingAction_Actionable) String() string { |
| return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) |
| } |
| |
| func (ScalingAction_Actionable) Descriptor() protoreflect.EnumDescriptor { |
| return file_chromiumos_bot_scaling_proto_enumTypes[2].Descriptor() |
| } |
| |
| func (ScalingAction_Actionable) Type() protoreflect.EnumType { |
| return &file_chromiumos_bot_scaling_proto_enumTypes[2] |
| } |
| |
| func (x ScalingAction_Actionable) Number() protoreflect.EnumNumber { |
| return protoreflect.EnumNumber(x) |
| } |
| |
| // Deprecated: Use ScalingAction_Actionable.Descriptor instead. |
| func (ScalingAction_Actionable) EnumDescriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{6, 0} |
| } |
| |
| // Defines a type of bot associated with a bot group. |
| type BotType struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // The string bot "shirt size" to be requested for the group. |
| BotSize string `protobuf:"bytes,1,opt,name=bot_size,json=botSize,proto3" json:"bot_size,omitempty"` |
| // The number of cores per bot. Will be used to limit quota usage. |
| CoresPerBot float32 `protobuf:"fixed32,2,opt,name=cores_per_bot,json=coresPerBot,proto3" json:"cores_per_bot,omitempty"` |
| // Estimated hourly cost. |
| HourlyCost float32 `protobuf:"fixed32,3,opt,name=hourly_cost,json=hourlyCost,proto3" json:"hourly_cost,omitempty"` |
| // Amount of memory in GB allocated to bot. |
| MemoryGb float32 `protobuf:"fixed32,4,opt,name=memory_gb,json=memoryGb,proto3" json:"memory_gb,omitempty"` |
| } |
| |
| func (x *BotType) Reset() { |
| *x = BotType{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[0] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotType) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotType) ProtoMessage() {} |
| |
| func (x *BotType) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 BotType.ProtoReflect.Descriptor instead. |
| func (*BotType) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{0} |
| } |
| |
| func (x *BotType) GetBotSize() string { |
| if x != nil { |
| return x.BotSize |
| } |
| return "" |
| } |
| |
| func (x *BotType) GetCoresPerBot() float32 { |
| if x != nil { |
| return x.CoresPerBot |
| } |
| return 0 |
| } |
| |
| func (x *BotType) GetHourlyCost() float32 { |
| if x != nil { |
| return x.HourlyCost |
| } |
| return 0 |
| } |
| |
| func (x *BotType) GetMemoryGb() float32 { |
| if x != nil { |
| return x.MemoryGb |
| } |
| return 0 |
| } |
| |
| // Defines Swarming dimensions associated with a bot group. |
| type SwarmingDimension struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Dimesion name |
| Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` |
| // Dimension value |
| Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` |
| // Dimension multiple values |
| Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` |
| } |
| |
| func (x *SwarmingDimension) Reset() { |
| *x = SwarmingDimension{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[1] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *SwarmingDimension) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*SwarmingDimension) ProtoMessage() {} |
| |
| func (x *SwarmingDimension) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 SwarmingDimension.ProtoReflect.Descriptor instead. |
| func (*SwarmingDimension) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{1} |
| } |
| |
| func (x *SwarmingDimension) GetName() string { |
| if x != nil { |
| return x.Name |
| } |
| return "" |
| } |
| |
| func (x *SwarmingDimension) GetValue() string { |
| if x != nil { |
| return x.Value |
| } |
| return "" |
| } |
| |
| func (x *SwarmingDimension) GetValues() []string { |
| if x != nil { |
| return x.Values |
| } |
| return nil |
| } |
| |
| // Bot Policy to apply to a bot group. |
| type BotPolicy struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Bot group controlled by this policy, like, 'cq', 'postsubmit',... |
| BotGroup string `protobuf:"bytes,1,opt,name=bot_group,json=botGroup,proto3" json:"bot_group,omitempty"` |
| // The type of bot to be requested. |
| BotType *BotType `protobuf:"bytes,2,opt,name=bot_type,json=botType,proto3" json:"bot_type,omitempty"` |
| ScalingRestriction *BotPolicy_ScalingRestriction `protobuf:"bytes,3,opt,name=scaling_restriction,json=scalingRestriction,proto3" json:"scaling_restriction,omitempty"` |
| RegionRestrictions []*BotPolicy_RegionRestriction `protobuf:"bytes,4,rep,name=region_restrictions,json=regionRestrictions,proto3" json:"region_restrictions,omitempty"` |
| // A set of dimensions used to validate current Swarming allocations. |
| SwarmingDimensions []*SwarmingDimension `protobuf:"bytes,5,rep,name=swarming_dimensions,json=swarmingDimensions,proto3" json:"swarming_dimensions,omitempty"` |
| // Set whether a bot group should be configured or only monitored. |
| PolicyMode BotPolicy_Mode `protobuf:"varint,6,opt,name=policy_mode,json=policyMode,proto3,enum=chromiumos.BotPolicy_Mode" json:"policy_mode,omitempty"` |
| // Number of hours to lookback for Swarming stats. |
| LookbackHours int32 `protobuf:"zigzag32,7,opt,name=lookback_hours,json=lookbackHours,proto3" json:"lookback_hours,omitempty"` |
| // Set the scaling approach for the bot group being monitored. |
| ScalingMode BotPolicy_BotScalingMode `protobuf:"varint,8,opt,name=scaling_mode,json=scalingMode,proto3,enum=chromiumos.BotPolicy_BotScalingMode" json:"scaling_mode,omitempty"` |
| // Swarming instance name: chromeos-swarming.appspot.com |
| SwarmingInstance string `protobuf:"bytes,9,opt,name=swarming_instance,json=swarmingInstance,proto3" json:"swarming_instance,omitempty"` |
| // Application namespace within Swarming instance. |
| Application string `protobuf:"bytes,10,opt,name=application,proto3" json:"application,omitempty"` |
| } |
| |
| func (x *BotPolicy) Reset() { |
| *x = BotPolicy{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[2] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotPolicy) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotPolicy) ProtoMessage() {} |
| |
| func (x *BotPolicy) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 BotPolicy.ProtoReflect.Descriptor instead. |
| func (*BotPolicy) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{2} |
| } |
| |
| func (x *BotPolicy) GetBotGroup() string { |
| if x != nil { |
| return x.BotGroup |
| } |
| return "" |
| } |
| |
| func (x *BotPolicy) GetBotType() *BotType { |
| if x != nil { |
| return x.BotType |
| } |
| return nil |
| } |
| |
| func (x *BotPolicy) GetScalingRestriction() *BotPolicy_ScalingRestriction { |
| if x != nil { |
| return x.ScalingRestriction |
| } |
| return nil |
| } |
| |
| func (x *BotPolicy) GetRegionRestrictions() []*BotPolicy_RegionRestriction { |
| if x != nil { |
| return x.RegionRestrictions |
| } |
| return nil |
| } |
| |
| func (x *BotPolicy) GetSwarmingDimensions() []*SwarmingDimension { |
| if x != nil { |
| return x.SwarmingDimensions |
| } |
| return nil |
| } |
| |
| func (x *BotPolicy) GetPolicyMode() BotPolicy_Mode { |
| if x != nil { |
| return x.PolicyMode |
| } |
| return BotPolicy_UNKNOWN_MODE |
| } |
| |
| func (x *BotPolicy) GetLookbackHours() int32 { |
| if x != nil { |
| return x.LookbackHours |
| } |
| return 0 |
| } |
| |
| func (x *BotPolicy) GetScalingMode() BotPolicy_BotScalingMode { |
| if x != nil { |
| return x.ScalingMode |
| } |
| return BotPolicy_UNKNOWN_SCALING_MODE |
| } |
| |
| func (x *BotPolicy) GetSwarmingInstance() string { |
| if x != nil { |
| return x.SwarmingInstance |
| } |
| return "" |
| } |
| |
| func (x *BotPolicy) GetApplication() string { |
| if x != nil { |
| return x.Application |
| } |
| return "" |
| } |
| |
| // Configures the root message. |
| type BotPolicyCfg struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // All bot policies. |
| BotPolicies []*BotPolicy `protobuf:"bytes,1,rep,name=bot_policies,json=botPolicies,proto3" json:"bot_policies,omitempty"` |
| } |
| |
| func (x *BotPolicyCfg) Reset() { |
| *x = BotPolicyCfg{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[3] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotPolicyCfg) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotPolicyCfg) ProtoMessage() {} |
| |
| func (x *BotPolicyCfg) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 BotPolicyCfg.ProtoReflect.Descriptor instead. |
| func (*BotPolicyCfg) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{3} |
| } |
| |
| func (x *BotPolicyCfg) GetBotPolicies() []*BotPolicy { |
| if x != nil { |
| return x.BotPolicies |
| } |
| return nil |
| } |
| |
| // Reduced version of BotPolicy meant for output properties |
| type ReducedBotPolicy struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Bot group controlled by this policy, like, 'cq', 'postsubmit',... |
| BotGroup string `protobuf:"bytes,1,opt,name=bot_group,json=botGroup,proto3" json:"bot_group,omitempty"` |
| // The type of bot to be requested. |
| BotType *BotType `protobuf:"bytes,2,opt,name=bot_type,json=botType,proto3" json:"bot_type,omitempty"` |
| // Set whether a bot group should be configured or only monitored. |
| PolicyMode BotPolicy_Mode `protobuf:"varint,3,opt,name=policy_mode,json=policyMode,proto3,enum=chromiumos.BotPolicy_Mode" json:"policy_mode,omitempty"` |
| } |
| |
| func (x *ReducedBotPolicy) Reset() { |
| *x = ReducedBotPolicy{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[4] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ReducedBotPolicy) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ReducedBotPolicy) ProtoMessage() {} |
| |
| func (x *ReducedBotPolicy) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 ReducedBotPolicy.ProtoReflect.Descriptor instead. |
| func (*ReducedBotPolicy) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{4} |
| } |
| |
| func (x *ReducedBotPolicy) GetBotGroup() string { |
| if x != nil { |
| return x.BotGroup |
| } |
| return "" |
| } |
| |
| func (x *ReducedBotPolicy) GetBotType() *BotType { |
| if x != nil { |
| return x.BotType |
| } |
| return nil |
| } |
| |
| func (x *ReducedBotPolicy) GetPolicyMode() BotPolicy_Mode { |
| if x != nil { |
| return x.PolicyMode |
| } |
| return BotPolicy_UNKNOWN_MODE |
| } |
| |
| // Configures the root message. |
| type ReducedBotPolicyCfg struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // All bot policies in reduced form. |
| BotPolicies []*ReducedBotPolicy `protobuf:"bytes,1,rep,name=bot_policies,json=botPolicies,proto3" json:"bot_policies,omitempty"` |
| } |
| |
| func (x *ReducedBotPolicyCfg) Reset() { |
| *x = ReducedBotPolicyCfg{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[5] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ReducedBotPolicyCfg) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ReducedBotPolicyCfg) ProtoMessage() {} |
| |
| func (x *ReducedBotPolicyCfg) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 ReducedBotPolicyCfg.ProtoReflect.Descriptor instead. |
| func (*ReducedBotPolicyCfg) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{5} |
| } |
| |
| func (x *ReducedBotPolicyCfg) GetBotPolicies() []*ReducedBotPolicy { |
| if x != nil { |
| return x.BotPolicies |
| } |
| return nil |
| } |
| |
| // Scaling Action that resulted because of bot demand. |
| type ScalingAction struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Bot group modified by the action. Should be the same as BotPolicy. |
| BotGroup string `protobuf:"bytes,1,opt,name=bot_group,json=botGroup,proto3" json:"bot_group,omitempty"` |
| // The type of bot requested. Should be the same as BotPolicy. |
| BotType *BotType `protobuf:"bytes,2,opt,name=bot_type,json=botType,proto3" json:"bot_type,omitempty"` |
| // Whether there has been a change in the number of bots requested |
| // for this bot group. See step_size for more info. |
| Actionable ScalingAction_Actionable `protobuf:"varint,3,opt,name=actionable,proto3,enum=chromiumos.ScalingAction_Actionable" json:"actionable,omitempty"` |
| // Total number of bots requested for the group. |
| BotsRequested int32 `protobuf:"varint,4,opt,name=bots_requested,json=botsRequested,proto3" json:"bots_requested,omitempty"` |
| RegionalActions []*ScalingAction_RegionalAction `protobuf:"bytes,5,rep,name=regional_actions,json=regionalActions,proto3" json:"regional_actions,omitempty"` |
| // Estimated savings based on current run. |
| // Based on current number of bots compared against the max. |
| EstimatedSavings float32 `protobuf:"fixed32,6,opt,name=estimated_savings,json=estimatedSavings,proto3" json:"estimated_savings,omitempty"` |
| // Minimum number of bots to keep alive for bot group. |
| // Repeated for display/reporting purposes |
| BotMin int32 `protobuf:"varint,7,opt,name=bot_min,json=botMin,proto3" json:"bot_min,omitempty"` |
| // Hard limit on the maximum number of bots that can be requested. |
| // Repeated for display/reporting purposes |
| BotMax int32 `protobuf:"varint,8,opt,name=bot_max,json=botMax,proto3" json:"bot_max,omitempty"` |
| // Application namespace within Swarming instance. |
| Application string `protobuf:"bytes,9,opt,name=application,proto3" json:"application,omitempty"` |
| } |
| |
| func (x *ScalingAction) Reset() { |
| *x = ScalingAction{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[6] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ScalingAction) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ScalingAction) ProtoMessage() {} |
| |
| func (x *ScalingAction) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 ScalingAction.ProtoReflect.Descriptor instead. |
| func (*ScalingAction) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{6} |
| } |
| |
| func (x *ScalingAction) GetBotGroup() string { |
| if x != nil { |
| return x.BotGroup |
| } |
| return "" |
| } |
| |
| func (x *ScalingAction) GetBotType() *BotType { |
| if x != nil { |
| return x.BotType |
| } |
| return nil |
| } |
| |
| func (x *ScalingAction) GetActionable() ScalingAction_Actionable { |
| if x != nil { |
| return x.Actionable |
| } |
| return ScalingAction_UNSPECIFIED |
| } |
| |
| func (x *ScalingAction) GetBotsRequested() int32 { |
| if x != nil { |
| return x.BotsRequested |
| } |
| return 0 |
| } |
| |
| func (x *ScalingAction) GetRegionalActions() []*ScalingAction_RegionalAction { |
| if x != nil { |
| return x.RegionalActions |
| } |
| return nil |
| } |
| |
| func (x *ScalingAction) GetEstimatedSavings() float32 { |
| if x != nil { |
| return x.EstimatedSavings |
| } |
| return 0 |
| } |
| |
| func (x *ScalingAction) GetBotMin() int32 { |
| if x != nil { |
| return x.BotMin |
| } |
| return 0 |
| } |
| |
| func (x *ScalingAction) GetBotMax() int32 { |
| if x != nil { |
| return x.BotMax |
| } |
| return 0 |
| } |
| |
| func (x *ScalingAction) GetApplication() string { |
| if x != nil { |
| return x.Application |
| } |
| return "" |
| } |
| |
| // Resource utilization based on regional assignment. |
| type ResourceUtilization struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Region of the bot sub-group. |
| Region string `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"` |
| // Number of VMs allocated across all bot groups. |
| Vms int32 `protobuf:"varint,2,opt,name=vms,proto3" json:"vms,omitempty"` |
| // Number of CPUs allocated across all bot groups. |
| Cpus float32 `protobuf:"fixed32,3,opt,name=cpus,proto3" json:"cpus,omitempty"` |
| // Amount of memory in GB allocated across all bot groups. |
| MemoryGb float32 `protobuf:"fixed32,4,opt,name=memory_gb,json=memoryGb,proto3" json:"memory_gb,omitempty"` |
| // Amount of disk in GB allocated across all bot groups. |
| DiskGb float32 `protobuf:"fixed32,5,opt,name=disk_gb,json=diskGb,proto3" json:"disk_gb,omitempty"` |
| // NUmber of CPUs that could be allocated based on max values. |
| MaxCpus float32 `protobuf:"fixed32,6,opt,name=max_cpus,json=maxCpus,proto3" json:"max_cpus,omitempty"` |
| } |
| |
| func (x *ResourceUtilization) Reset() { |
| *x = ResourceUtilization{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[7] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ResourceUtilization) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ResourceUtilization) ProtoMessage() {} |
| |
| func (x *ResourceUtilization) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 ResourceUtilization.ProtoReflect.Descriptor instead. |
| func (*ResourceUtilization) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{7} |
| } |
| |
| func (x *ResourceUtilization) GetRegion() string { |
| if x != nil { |
| return x.Region |
| } |
| return "" |
| } |
| |
| func (x *ResourceUtilization) GetVms() int32 { |
| if x != nil { |
| return x.Vms |
| } |
| return 0 |
| } |
| |
| func (x *ResourceUtilization) GetCpus() float32 { |
| if x != nil { |
| return x.Cpus |
| } |
| return 0 |
| } |
| |
| func (x *ResourceUtilization) GetMemoryGb() float32 { |
| if x != nil { |
| return x.MemoryGb |
| } |
| return 0 |
| } |
| |
| func (x *ResourceUtilization) GetDiskGb() float32 { |
| if x != nil { |
| return x.DiskGb |
| } |
| return 0 |
| } |
| |
| func (x *ResourceUtilization) GetMaxCpus() float32 { |
| if x != nil { |
| return x.MaxCpus |
| } |
| return 0 |
| } |
| |
| // Application utilization, per application at a |
| // regional assignment. |
| type ApplicationUtilization struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Application namespace to associate resources. |
| Application string `protobuf:"bytes,1,opt,name=application,proto3" json:"application,omitempty"` |
| ResourceUtilization []*ResourceUtilization `protobuf:"bytes,2,rep,name=resource_utilization,json=resourceUtilization,proto3" json:"resource_utilization,omitempty"` |
| } |
| |
| func (x *ApplicationUtilization) Reset() { |
| *x = ApplicationUtilization{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[8] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ApplicationUtilization) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ApplicationUtilization) ProtoMessage() {} |
| |
| func (x *ApplicationUtilization) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 ApplicationUtilization.ProtoReflect.Descriptor instead. |
| func (*ApplicationUtilization) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{8} |
| } |
| |
| func (x *ApplicationUtilization) GetApplication() string { |
| if x != nil { |
| return x.Application |
| } |
| return "" |
| } |
| |
| func (x *ApplicationUtilization) GetResourceUtilization() []*ResourceUtilization { |
| if x != nil { |
| return x.ResourceUtilization |
| } |
| return nil |
| } |
| |
| // All the actions that will be executed by RoboCrop. |
| type RoboCropAction struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // List of an action per bot group scaled by RoboCrop. |
| ScalingActions []*ScalingAction `protobuf:"bytes,1,rep,name=scaling_actions,json=scalingActions,proto3" json:"scaling_actions,omitempty"` |
| ResourceUtilization []*ResourceUtilization `protobuf:"bytes,2,rep,name=resource_utilization,json=resourceUtilization,proto3" json:"resource_utilization,omitempty"` |
| ApplResourceUtilization []*ApplicationUtilization `protobuf:"bytes,3,rep,name=appl_resource_utilization,json=applResourceUtilization,proto3" json:"appl_resource_utilization,omitempty"` |
| } |
| |
| func (x *RoboCropAction) Reset() { |
| *x = RoboCropAction{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[9] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *RoboCropAction) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*RoboCropAction) ProtoMessage() {} |
| |
| func (x *RoboCropAction) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 RoboCropAction.ProtoReflect.Descriptor instead. |
| func (*RoboCropAction) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{9} |
| } |
| |
| func (x *RoboCropAction) GetScalingActions() []*ScalingAction { |
| if x != nil { |
| return x.ScalingActions |
| } |
| return nil |
| } |
| |
| func (x *RoboCropAction) GetResourceUtilization() []*ResourceUtilization { |
| if x != nil { |
| return x.ResourceUtilization |
| } |
| return nil |
| } |
| |
| func (x *RoboCropAction) GetApplResourceUtilization() []*ApplicationUtilization { |
| if x != nil { |
| return x.ApplResourceUtilization |
| } |
| return nil |
| } |
| |
| // Scaling restriction specifies the limits on how the group can be |
| // expanded or reduced. |
| type BotPolicy_ScalingRestriction struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Hard limit on the maximum number of bots to request. |
| BotCeiling int32 `protobuf:"varint,1,opt,name=bot_ceiling,json=botCeiling,proto3" json:"bot_ceiling,omitempty"` |
| // Hard limit on the minimum number of bots to request. |
| BotFloor int32 `protobuf:"varint,2,opt,name=bot_floor,json=botFloor,proto3" json:"bot_floor,omitempty"` |
| // Soft limit on the number of idle bots to maintain. |
| MinIdle int32 `protobuf:"varint,3,opt,name=min_idle,json=minIdle,proto3" json:"min_idle,omitempty"` |
| // Hard minimum limit on the absolute delta between request amount and |
| // existing bot count. |
| StepSize int32 `protobuf:"varint,4,opt,name=step_size,json=stepSize,proto3" json:"step_size,omitempty"` |
| // Static number to request when demand is not accessible. |
| BotFallback int32 `protobuf:"varint,5,opt,name=bot_fallback,json=botFallback,proto3" json:"bot_fallback,omitempty"` |
| } |
| |
| func (x *BotPolicy_ScalingRestriction) Reset() { |
| *x = BotPolicy_ScalingRestriction{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[10] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotPolicy_ScalingRestriction) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotPolicy_ScalingRestriction) ProtoMessage() {} |
| |
| func (x *BotPolicy_ScalingRestriction) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 BotPolicy_ScalingRestriction.ProtoReflect.Descriptor instead. |
| func (*BotPolicy_ScalingRestriction) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{2, 0} |
| } |
| |
| func (x *BotPolicy_ScalingRestriction) GetBotCeiling() int32 { |
| if x != nil { |
| return x.BotCeiling |
| } |
| return 0 |
| } |
| |
| func (x *BotPolicy_ScalingRestriction) GetBotFloor() int32 { |
| if x != nil { |
| return x.BotFloor |
| } |
| return 0 |
| } |
| |
| func (x *BotPolicy_ScalingRestriction) GetMinIdle() int32 { |
| if x != nil { |
| return x.MinIdle |
| } |
| return 0 |
| } |
| |
| func (x *BotPolicy_ScalingRestriction) GetStepSize() int32 { |
| if x != nil { |
| return x.StepSize |
| } |
| return 0 |
| } |
| |
| func (x *BotPolicy_ScalingRestriction) GetBotFallback() int32 { |
| if x != nil { |
| return x.BotFallback |
| } |
| return 0 |
| } |
| |
| // A set of restrictions on the regions and how to distribute bots |
| // between them. |
| type BotPolicy_RegionRestriction struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Region of the bot sub-group. |
| Region string `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"` |
| // Specific prefix of the bot sub-group. |
| Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"` |
| // Weight to be applied to this sub-group. The number of bots requested |
| // from each region will be proportional to the weight unless a |
| // quota limit is violated. |
| Weight float32 `protobuf:"fixed32,3,opt,name=weight,proto3" json:"weight,omitempty"` |
| } |
| |
| func (x *BotPolicy_RegionRestriction) Reset() { |
| *x = BotPolicy_RegionRestriction{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[11] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *BotPolicy_RegionRestriction) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*BotPolicy_RegionRestriction) ProtoMessage() {} |
| |
| func (x *BotPolicy_RegionRestriction) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 BotPolicy_RegionRestriction.ProtoReflect.Descriptor instead. |
| func (*BotPolicy_RegionRestriction) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{2, 1} |
| } |
| |
| func (x *BotPolicy_RegionRestriction) GetRegion() string { |
| if x != nil { |
| return x.Region |
| } |
| return "" |
| } |
| |
| func (x *BotPolicy_RegionRestriction) GetPrefix() string { |
| if x != nil { |
| return x.Prefix |
| } |
| return "" |
| } |
| |
| func (x *BotPolicy_RegionRestriction) GetWeight() float32 { |
| if x != nil { |
| return x.Weight |
| } |
| return 0 |
| } |
| |
| // How the bot requests are distributed between regions & prefixes. |
| type ScalingAction_RegionalAction struct { |
| state protoimpl.MessageState |
| sizeCache protoimpl.SizeCache |
| unknownFields protoimpl.UnknownFields |
| |
| // Region of the bot sub-group. |
| Region string `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"` |
| // Specific prefix of the bot sub-group. |
| Prefix string `protobuf:"bytes,2,opt,name=prefix,proto3" json:"prefix,omitempty"` |
| // Number of bots requested from the sub-group. |
| BotsRequested int32 `protobuf:"varint,3,opt,name=bots_requested,json=botsRequested,proto3" json:"bots_requested,omitempty"` |
| } |
| |
| func (x *ScalingAction_RegionalAction) Reset() { |
| *x = ScalingAction_RegionalAction{} |
| if protoimpl.UnsafeEnabled { |
| mi := &file_chromiumos_bot_scaling_proto_msgTypes[12] |
| ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) |
| ms.StoreMessageInfo(mi) |
| } |
| } |
| |
| func (x *ScalingAction_RegionalAction) String() string { |
| return protoimpl.X.MessageStringOf(x) |
| } |
| |
| func (*ScalingAction_RegionalAction) ProtoMessage() {} |
| |
| func (x *ScalingAction_RegionalAction) ProtoReflect() protoreflect.Message { |
| mi := &file_chromiumos_bot_scaling_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 ScalingAction_RegionalAction.ProtoReflect.Descriptor instead. |
| func (*ScalingAction_RegionalAction) Descriptor() ([]byte, []int) { |
| return file_chromiumos_bot_scaling_proto_rawDescGZIP(), []int{6, 0} |
| } |
| |
| func (x *ScalingAction_RegionalAction) GetRegion() string { |
| if x != nil { |
| return x.Region |
| } |
| return "" |
| } |
| |
| func (x *ScalingAction_RegionalAction) GetPrefix() string { |
| if x != nil { |
| return x.Prefix |
| } |
| return "" |
| } |
| |
| func (x *ScalingAction_RegionalAction) GetBotsRequested() int32 { |
| if x != nil { |
| return x.BotsRequested |
| } |
| return 0 |
| } |
| |
| var File_chromiumos_bot_scaling_proto protoreflect.FileDescriptor |
| |
| var file_chromiumos_bot_scaling_proto_rawDesc = []byte{ |
| 0x0a, 0x1c, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x6f, 0x74, |
| 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, |
| 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x22, 0x86, 0x01, 0x0a, 0x07, 0x42, |
| 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x6f, 0x74, 0x5f, 0x73, 0x69, |
| 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x6f, 0x74, 0x53, 0x69, 0x7a, |
| 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, |
| 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x63, 0x6f, 0x72, 0x65, 0x73, 0x50, |
| 0x65, 0x72, 0x42, 0x6f, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x6f, 0x75, 0x72, 0x6c, 0x79, 0x5f, |
| 0x63, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x68, 0x6f, 0x75, 0x72, |
| 0x6c, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, |
| 0x5f, 0x67, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x6d, 0x6f, 0x72, |
| 0x79, 0x47, 0x62, 0x22, 0x55, 0x0a, 0x11, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x44, |
| 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, |
| 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 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, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, |
| 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xfa, 0x07, 0x0a, 0x09, 0x42, |
| 0x6f, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6f, 0x74, 0x5f, |
| 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x6f, 0x74, |
| 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x6f, 0x74, 0x5f, 0x74, 0x79, 0x70, |
| 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, |
| 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x62, 0x6f, |
| 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x13, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, |
| 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, |
| 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, |
| 0x42, 0x6f, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, |
| 0x67, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x73, 0x63, |
| 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, |
| 0x12, 0x58, 0x0a, 0x13, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, |
| 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, |
| 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x6f, 0x74, 0x50, 0x6f, |
| 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x74, 0x72, |
| 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x65, |
| 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x73, 0x77, |
| 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, |
| 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, |
| 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x6d, |
| 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, |
| 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x70, 0x6f, |
| 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, |
| 0x1a, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x6f, 0x74, |
| 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x70, 0x6f, 0x6c, |
| 0x69, 0x63, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x62, |
| 0x61, 0x63, 0x6b, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x11, 0x52, |
| 0x0d, 0x6c, 0x6f, 0x6f, 0x6b, 0x62, 0x61, 0x63, 0x6b, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x47, |
| 0x0a, 0x0c, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, |
| 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, |
| 0x73, 0x2e, 0x42, 0x6f, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x42, 0x6f, 0x74, 0x53, |
| 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x73, 0x63, 0x61, 0x6c, |
| 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x77, 0x61, 0x72, 0x6d, |
| 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, |
| 0x28, 0x09, 0x52, 0x10, 0x73, 0x77, 0x61, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x73, 0x74, |
| 0x61, 0x6e, 0x63, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, |
| 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xad, 0x01, 0x0a, 0x12, 0x53, 0x63, 0x61, 0x6c, 0x69, |
| 0x6e, 0x67, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, |
| 0x0b, 0x62, 0x6f, 0x74, 0x5f, 0x63, 0x65, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, |
| 0x28, 0x05, 0x52, 0x0a, 0x62, 0x6f, 0x74, 0x43, 0x65, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x1b, |
| 0x0a, 0x09, 0x62, 0x6f, 0x74, 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, |
| 0x05, 0x52, 0x08, 0x62, 0x6f, 0x74, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6d, |
| 0x69, 0x6e, 0x5f, 0x69, 0x64, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, |
| 0x69, 0x6e, 0x49, 0x64, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x73, |
| 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x74, 0x65, 0x70, 0x53, |
| 0x69, 0x7a, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6f, 0x74, 0x5f, 0x66, 0x61, 0x6c, 0x6c, 0x62, |
| 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x62, 0x6f, 0x74, 0x46, 0x61, |
| 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x1a, 0x5b, 0x0a, 0x11, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, |
| 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, |
| 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, |
| 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, 0x20, |
| 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x77, |
| 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x77, 0x65, 0x69, |
| 0x67, 0x68, 0x74, 0x22, 0x37, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x55, |
| 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x0d, 0x0a, |
| 0x09, 0x4d, 0x4f, 0x4e, 0x49, 0x54, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, |
| 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x10, 0x02, 0x22, 0x59, 0x0a, 0x0e, |
| 0x42, 0x6f, 0x74, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x18, |
| 0x0a, 0x14, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x49, 0x4e, |
| 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x45, 0x50, |
| 0x50, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4d, 0x41, 0x4e, 0x44, 0x10, |
| 0x02, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x45, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x44, 0x45, 0x43, |
| 0x52, 0x45, 0x41, 0x53, 0x45, 0x10, 0x03, 0x22, 0x48, 0x0a, 0x0c, 0x42, 0x6f, 0x74, 0x50, 0x6f, |
| 0x6c, 0x69, 0x63, 0x79, 0x43, 0x66, 0x67, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x6f, 0x74, 0x5f, 0x70, |
| 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, |
| 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x6f, 0x74, 0x50, 0x6f, |
| 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0b, 0x62, 0x6f, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, |
| 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x42, 0x6f, 0x74, |
| 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6f, 0x74, 0x5f, 0x67, 0x72, |
| 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x6f, 0x74, 0x47, 0x72, |
| 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x6f, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, |
| 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, |
| 0x6f, 0x73, 0x2e, 0x42, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x62, 0x6f, 0x74, 0x54, |
| 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x6d, 0x6f, |
| 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, |
| 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x6f, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, |
| 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x6f, 0x64, 0x65, |
| 0x22, 0x56, 0x0a, 0x13, 0x52, 0x65, 0x64, 0x75, 0x63, 0x65, 0x64, 0x42, 0x6f, 0x74, 0x50, 0x6f, |
| 0x6c, 0x69, 0x63, 0x79, 0x43, 0x66, 0x67, 0x12, 0x3f, 0x0a, 0x0c, 0x62, 0x6f, 0x74, 0x5f, 0x70, |
| 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, |
| 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x52, 0x65, 0x64, 0x75, 0x63, |
| 0x65, 0x64, 0x42, 0x6f, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0b, 0x62, 0x6f, 0x74, |
| 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x22, 0xb8, 0x04, 0x0a, 0x0d, 0x53, 0x63, 0x61, |
| 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x6f, |
| 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, |
| 0x6f, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2e, 0x0a, 0x08, 0x62, 0x6f, 0x74, 0x5f, 0x74, |
| 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x63, 0x68, 0x72, 0x6f, |
| 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, |
| 0x62, 0x6f, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, |
| 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x63, 0x68, |
| 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, |
| 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x62, 0x6c, |
| 0x65, 0x52, 0x0a, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x0a, |
| 0x0e, 0x62, 0x6f, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, |
| 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, |
| 0x73, 0x74, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x61, 0x6c, |
| 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, |
| 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x63, 0x61, 0x6c, |
| 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, |
| 0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, |
| 0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x65, 0x73, 0x74, |
| 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, |
| 0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, |
| 0x61, 0x76, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x62, 0x6f, 0x74, 0x5f, 0x6d, 0x69, |
| 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x62, 0x6f, 0x74, 0x4d, 0x69, 0x6e, 0x12, |
| 0x17, 0x0a, 0x07, 0x62, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, |
| 0x52, 0x06, 0x62, 0x6f, 0x74, 0x4d, 0x61, 0x78, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, |
| 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, |
| 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x67, 0x0a, 0x0e, 0x52, 0x65, |
| 0x67, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, |
| 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, |
| 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x02, |
| 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x25, 0x0a, 0x0e, |
| 0x62, 0x6f, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x03, |
| 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, |
| 0x74, 0x65, 0x64, 0x22, 0x2e, 0x0a, 0x0a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x62, 0x6c, |
| 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, |
| 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x59, 0x45, 0x53, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4e, |
| 0x4f, 0x10, 0x02, 0x22, 0xa4, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, |
| 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, |
| 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, |
| 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x76, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, |
| 0x52, 0x03, 0x76, 0x6d, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x70, 0x75, 0x73, 0x18, 0x03, 0x20, |
| 0x01, 0x28, 0x02, 0x52, 0x04, 0x63, 0x70, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x65, 0x6d, |
| 0x6f, 0x72, 0x79, 0x5f, 0x67, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x65, |
| 0x6d, 0x6f, 0x72, 0x79, 0x47, 0x62, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x67, |
| 0x62, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x64, 0x69, 0x73, 0x6b, 0x47, 0x62, 0x12, |
| 0x19, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, |
| 0x02, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x16, 0x41, |
| 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, |
| 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, |
| 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, |
| 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, |
| 0x72, 0x63, 0x65, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, |
| 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, |
| 0x6f, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x74, 0x69, 0x6c, 0x69, |
| 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, |
| 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x88, 0x02, 0x0a, 0x0e, |
| 0x52, 0x6f, 0x62, 0x6f, 0x43, 0x72, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, |
| 0x0a, 0x0f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, |
| 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, |
| 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, |
| 0x6f, 0x6e, 0x52, 0x0e, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x74, 0x69, 0x6f, |
| 0x6e, 0x73, 0x12, 0x52, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, |
| 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, |
| 0x32, 0x1f, 0x2e, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x52, 0x65, |
| 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, |
| 0x6e, 0x52, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x74, 0x69, 0x6c, 0x69, |
| 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5e, 0x0a, 0x19, 0x61, 0x70, 0x70, 0x6c, 0x5f, 0x72, |
| 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, |
| 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x68, 0x72, 0x6f, |
| 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, |
| 0x6f, 0x6e, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x61, |
| 0x70, 0x70, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x74, 0x69, 0x6c, 0x69, |
| 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x6f, 0x2e, 0x63, 0x68, 0x72, |
| 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, |
| 0x75, 0x6d, 0x6f, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, |
| 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x68, 0x72, 0x6f, 0x6d, 0x69, 0x75, 0x6d, 0x6f, 0x73, 0x62, 0x06, |
| 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, |
| } |
| |
| var ( |
| file_chromiumos_bot_scaling_proto_rawDescOnce sync.Once |
| file_chromiumos_bot_scaling_proto_rawDescData = file_chromiumos_bot_scaling_proto_rawDesc |
| ) |
| |
| func file_chromiumos_bot_scaling_proto_rawDescGZIP() []byte { |
| file_chromiumos_bot_scaling_proto_rawDescOnce.Do(func() { |
| file_chromiumos_bot_scaling_proto_rawDescData = protoimpl.X.CompressGZIP(file_chromiumos_bot_scaling_proto_rawDescData) |
| }) |
| return file_chromiumos_bot_scaling_proto_rawDescData |
| } |
| |
| var file_chromiumos_bot_scaling_proto_enumTypes = make([]protoimpl.EnumInfo, 3) |
| var file_chromiumos_bot_scaling_proto_msgTypes = make([]protoimpl.MessageInfo, 13) |
| var file_chromiumos_bot_scaling_proto_goTypes = []interface{}{ |
| (BotPolicy_Mode)(0), // 0: chromiumos.BotPolicy.Mode |
| (BotPolicy_BotScalingMode)(0), // 1: chromiumos.BotPolicy.BotScalingMode |
| (ScalingAction_Actionable)(0), // 2: chromiumos.ScalingAction.Actionable |
| (*BotType)(nil), // 3: chromiumos.BotType |
| (*SwarmingDimension)(nil), // 4: chromiumos.SwarmingDimension |
| (*BotPolicy)(nil), // 5: chromiumos.BotPolicy |
| (*BotPolicyCfg)(nil), // 6: chromiumos.BotPolicyCfg |
| (*ReducedBotPolicy)(nil), // 7: chromiumos.ReducedBotPolicy |
| (*ReducedBotPolicyCfg)(nil), // 8: chromiumos.ReducedBotPolicyCfg |
| (*ScalingAction)(nil), // 9: chromiumos.ScalingAction |
| (*ResourceUtilization)(nil), // 10: chromiumos.ResourceUtilization |
| (*ApplicationUtilization)(nil), // 11: chromiumos.ApplicationUtilization |
| (*RoboCropAction)(nil), // 12: chromiumos.RoboCropAction |
| (*BotPolicy_ScalingRestriction)(nil), // 13: chromiumos.BotPolicy.ScalingRestriction |
| (*BotPolicy_RegionRestriction)(nil), // 14: chromiumos.BotPolicy.RegionRestriction |
| (*ScalingAction_RegionalAction)(nil), // 15: chromiumos.ScalingAction.RegionalAction |
| } |
| var file_chromiumos_bot_scaling_proto_depIdxs = []int32{ |
| 3, // 0: chromiumos.BotPolicy.bot_type:type_name -> chromiumos.BotType |
| 13, // 1: chromiumos.BotPolicy.scaling_restriction:type_name -> chromiumos.BotPolicy.ScalingRestriction |
| 14, // 2: chromiumos.BotPolicy.region_restrictions:type_name -> chromiumos.BotPolicy.RegionRestriction |
| 4, // 3: chromiumos.BotPolicy.swarming_dimensions:type_name -> chromiumos.SwarmingDimension |
| 0, // 4: chromiumos.BotPolicy.policy_mode:type_name -> chromiumos.BotPolicy.Mode |
| 1, // 5: chromiumos.BotPolicy.scaling_mode:type_name -> chromiumos.BotPolicy.BotScalingMode |
| 5, // 6: chromiumos.BotPolicyCfg.bot_policies:type_name -> chromiumos.BotPolicy |
| 3, // 7: chromiumos.ReducedBotPolicy.bot_type:type_name -> chromiumos.BotType |
| 0, // 8: chromiumos.ReducedBotPolicy.policy_mode:type_name -> chromiumos.BotPolicy.Mode |
| 7, // 9: chromiumos.ReducedBotPolicyCfg.bot_policies:type_name -> chromiumos.ReducedBotPolicy |
| 3, // 10: chromiumos.ScalingAction.bot_type:type_name -> chromiumos.BotType |
| 2, // 11: chromiumos.ScalingAction.actionable:type_name -> chromiumos.ScalingAction.Actionable |
| 15, // 12: chromiumos.ScalingAction.regional_actions:type_name -> chromiumos.ScalingAction.RegionalAction |
| 10, // 13: chromiumos.ApplicationUtilization.resource_utilization:type_name -> chromiumos.ResourceUtilization |
| 9, // 14: chromiumos.RoboCropAction.scaling_actions:type_name -> chromiumos.ScalingAction |
| 10, // 15: chromiumos.RoboCropAction.resource_utilization:type_name -> chromiumos.ResourceUtilization |
| 11, // 16: chromiumos.RoboCropAction.appl_resource_utilization:type_name -> chromiumos.ApplicationUtilization |
| 17, // [17:17] is the sub-list for method output_type |
| 17, // [17:17] is the sub-list for method input_type |
| 17, // [17:17] is the sub-list for extension type_name |
| 17, // [17:17] is the sub-list for extension extendee |
| 0, // [0:17] is the sub-list for field type_name |
| } |
| |
| func init() { file_chromiumos_bot_scaling_proto_init() } |
| func file_chromiumos_bot_scaling_proto_init() { |
| if File_chromiumos_bot_scaling_proto != nil { |
| return |
| } |
| if !protoimpl.UnsafeEnabled { |
| file_chromiumos_bot_scaling_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotType); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*SwarmingDimension); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotPolicy); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotPolicyCfg); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ReducedBotPolicy); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ReducedBotPolicyCfg); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ScalingAction); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ResourceUtilization); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ApplicationUtilization); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*RoboCropAction); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotPolicy_ScalingRestriction); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*BotPolicy_RegionRestriction); i { |
| case 0: |
| return &v.state |
| case 1: |
| return &v.sizeCache |
| case 2: |
| return &v.unknownFields |
| default: |
| return nil |
| } |
| } |
| file_chromiumos_bot_scaling_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { |
| switch v := v.(*ScalingAction_RegionalAction); 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_chromiumos_bot_scaling_proto_rawDesc, |
| NumEnums: 3, |
| NumMessages: 13, |
| NumExtensions: 0, |
| NumServices: 0, |
| }, |
| GoTypes: file_chromiumos_bot_scaling_proto_goTypes, |
| DependencyIndexes: file_chromiumos_bot_scaling_proto_depIdxs, |
| EnumInfos: file_chromiumos_bot_scaling_proto_enumTypes, |
| MessageInfos: file_chromiumos_bot_scaling_proto_msgTypes, |
| }.Build() |
| File_chromiumos_bot_scaling_proto = out.File |
| file_chromiumos_bot_scaling_proto_rawDesc = nil |
| file_chromiumos_bot_scaling_proto_goTypes = nil |
| file_chromiumos_bot_scaling_proto_depIdxs = nil |
| } |