blob: 2265aab77c328f1d7441f6959262fc2713697491 [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: chromiumos/bot_scaling.proto
package chromiumos
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
// 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
)
var BotPolicy_Mode_name = map[int32]string{
0: "UNKNOWN_MODE",
1: "MONITORED",
2: "CONFIGURED",
}
var BotPolicy_Mode_value = map[string]int32{
"UNKNOWN_MODE": 0,
"MONITORED": 1,
"CONFIGURED": 2,
}
func (x BotPolicy_Mode) String() string {
return proto.EnumName(BotPolicy_Mode_name, int32(x))
}
func (BotPolicy_Mode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []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
)
var BotPolicy_BotScalingMode_name = map[int32]string{
0: "UNKNOWN_SCALING_MODE",
1: "STEPPED",
2: "DEMAND",
}
var BotPolicy_BotScalingMode_value = map[string]int32{
"UNKNOWN_SCALING_MODE": 0,
"STEPPED": 1,
"DEMAND": 2,
}
func (x BotPolicy_BotScalingMode) String() string {
return proto.EnumName(BotPolicy_BotScalingMode_name, int32(x))
}
func (BotPolicy_BotScalingMode) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []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
)
var ScalingAction_Actionable_name = map[int32]string{
0: "UNSPECIFIED",
1: "YES",
2: "NO",
}
var ScalingAction_Actionable_value = map[string]int32{
"UNSPECIFIED": 0,
"YES": 1,
"NO": 2,
}
func (x ScalingAction_Actionable) String() string {
return proto.EnumName(ScalingAction_Actionable_name, int32(x))
}
func (ScalingAction_Actionable) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{4, 0}
}
// Defines a type of bot associated with a bot group.
type BotType struct {
// 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 int32 `protobuf:"varint,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"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BotType) Reset() { *m = BotType{} }
func (m *BotType) String() string { return proto.CompactTextString(m) }
func (*BotType) ProtoMessage() {}
func (*BotType) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{0}
}
func (m *BotType) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BotType.Unmarshal(m, b)
}
func (m *BotType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BotType.Marshal(b, m, deterministic)
}
func (m *BotType) XXX_Merge(src proto.Message) {
xxx_messageInfo_BotType.Merge(m, src)
}
func (m *BotType) XXX_Size() int {
return xxx_messageInfo_BotType.Size(m)
}
func (m *BotType) XXX_DiscardUnknown() {
xxx_messageInfo_BotType.DiscardUnknown(m)
}
var xxx_messageInfo_BotType proto.InternalMessageInfo
func (m *BotType) GetBotSize() string {
if m != nil {
return m.BotSize
}
return ""
}
func (m *BotType) GetCoresPerBot() int32 {
if m != nil {
return m.CoresPerBot
}
return 0
}
func (m *BotType) GetHourlyCost() float32 {
if m != nil {
return m.HourlyCost
}
return 0
}
func (m *BotType) GetMemoryGb() float32 {
if m != nil {
return m.MemoryGb
}
return 0
}
// Defines Swarming dimensions associated with a bot group.
type SwarmingDimension struct {
// 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"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SwarmingDimension) Reset() { *m = SwarmingDimension{} }
func (m *SwarmingDimension) String() string { return proto.CompactTextString(m) }
func (*SwarmingDimension) ProtoMessage() {}
func (*SwarmingDimension) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{1}
}
func (m *SwarmingDimension) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SwarmingDimension.Unmarshal(m, b)
}
func (m *SwarmingDimension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SwarmingDimension.Marshal(b, m, deterministic)
}
func (m *SwarmingDimension) XXX_Merge(src proto.Message) {
xxx_messageInfo_SwarmingDimension.Merge(m, src)
}
func (m *SwarmingDimension) XXX_Size() int {
return xxx_messageInfo_SwarmingDimension.Size(m)
}
func (m *SwarmingDimension) XXX_DiscardUnknown() {
xxx_messageInfo_SwarmingDimension.DiscardUnknown(m)
}
var xxx_messageInfo_SwarmingDimension proto.InternalMessageInfo
func (m *SwarmingDimension) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *SwarmingDimension) GetValue() string {
if m != nil {
return m.Value
}
return ""
}
func (m *SwarmingDimension) GetValues() []string {
if m != nil {
return m.Values
}
return nil
}
// Bot Policy to apply to a bot group.
type BotPolicy struct {
// 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"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BotPolicy) Reset() { *m = BotPolicy{} }
func (m *BotPolicy) String() string { return proto.CompactTextString(m) }
func (*BotPolicy) ProtoMessage() {}
func (*BotPolicy) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{2}
}
func (m *BotPolicy) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BotPolicy.Unmarshal(m, b)
}
func (m *BotPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BotPolicy.Marshal(b, m, deterministic)
}
func (m *BotPolicy) XXX_Merge(src proto.Message) {
xxx_messageInfo_BotPolicy.Merge(m, src)
}
func (m *BotPolicy) XXX_Size() int {
return xxx_messageInfo_BotPolicy.Size(m)
}
func (m *BotPolicy) XXX_DiscardUnknown() {
xxx_messageInfo_BotPolicy.DiscardUnknown(m)
}
var xxx_messageInfo_BotPolicy proto.InternalMessageInfo
func (m *BotPolicy) GetBotGroup() string {
if m != nil {
return m.BotGroup
}
return ""
}
func (m *BotPolicy) GetBotType() *BotType {
if m != nil {
return m.BotType
}
return nil
}
func (m *BotPolicy) GetScalingRestriction() *BotPolicy_ScalingRestriction {
if m != nil {
return m.ScalingRestriction
}
return nil
}
func (m *BotPolicy) GetRegionRestrictions() []*BotPolicy_RegionRestriction {
if m != nil {
return m.RegionRestrictions
}
return nil
}
func (m *BotPolicy) GetSwarmingDimensions() []*SwarmingDimension {
if m != nil {
return m.SwarmingDimensions
}
return nil
}
func (m *BotPolicy) GetPolicyMode() BotPolicy_Mode {
if m != nil {
return m.PolicyMode
}
return BotPolicy_UNKNOWN_MODE
}
func (m *BotPolicy) GetLookbackHours() int32 {
if m != nil {
return m.LookbackHours
}
return 0
}
func (m *BotPolicy) GetScalingMode() BotPolicy_BotScalingMode {
if m != nil {
return m.ScalingMode
}
return BotPolicy_UNKNOWN_SCALING_MODE
}
// Scaling restriction specifies the limits on how the group can be
// expanded or reduced.
type BotPolicy_ScalingRestriction struct {
// 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"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BotPolicy_ScalingRestriction) Reset() { *m = BotPolicy_ScalingRestriction{} }
func (m *BotPolicy_ScalingRestriction) String() string { return proto.CompactTextString(m) }
func (*BotPolicy_ScalingRestriction) ProtoMessage() {}
func (*BotPolicy_ScalingRestriction) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{2, 0}
}
func (m *BotPolicy_ScalingRestriction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BotPolicy_ScalingRestriction.Unmarshal(m, b)
}
func (m *BotPolicy_ScalingRestriction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BotPolicy_ScalingRestriction.Marshal(b, m, deterministic)
}
func (m *BotPolicy_ScalingRestriction) XXX_Merge(src proto.Message) {
xxx_messageInfo_BotPolicy_ScalingRestriction.Merge(m, src)
}
func (m *BotPolicy_ScalingRestriction) XXX_Size() int {
return xxx_messageInfo_BotPolicy_ScalingRestriction.Size(m)
}
func (m *BotPolicy_ScalingRestriction) XXX_DiscardUnknown() {
xxx_messageInfo_BotPolicy_ScalingRestriction.DiscardUnknown(m)
}
var xxx_messageInfo_BotPolicy_ScalingRestriction proto.InternalMessageInfo
func (m *BotPolicy_ScalingRestriction) GetBotCeiling() int32 {
if m != nil {
return m.BotCeiling
}
return 0
}
func (m *BotPolicy_ScalingRestriction) GetBotFloor() int32 {
if m != nil {
return m.BotFloor
}
return 0
}
func (m *BotPolicy_ScalingRestriction) GetMinIdle() int32 {
if m != nil {
return m.MinIdle
}
return 0
}
func (m *BotPolicy_ScalingRestriction) GetStepSize() int32 {
if m != nil {
return m.StepSize
}
return 0
}
func (m *BotPolicy_ScalingRestriction) GetBotFallback() int32 {
if m != nil {
return m.BotFallback
}
return 0
}
// A set of restrictions on the regions and how to distribute bots
// between them.
type BotPolicy_RegionRestriction struct {
// 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"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BotPolicy_RegionRestriction) Reset() { *m = BotPolicy_RegionRestriction{} }
func (m *BotPolicy_RegionRestriction) String() string { return proto.CompactTextString(m) }
func (*BotPolicy_RegionRestriction) ProtoMessage() {}
func (*BotPolicy_RegionRestriction) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{2, 1}
}
func (m *BotPolicy_RegionRestriction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BotPolicy_RegionRestriction.Unmarshal(m, b)
}
func (m *BotPolicy_RegionRestriction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BotPolicy_RegionRestriction.Marshal(b, m, deterministic)
}
func (m *BotPolicy_RegionRestriction) XXX_Merge(src proto.Message) {
xxx_messageInfo_BotPolicy_RegionRestriction.Merge(m, src)
}
func (m *BotPolicy_RegionRestriction) XXX_Size() int {
return xxx_messageInfo_BotPolicy_RegionRestriction.Size(m)
}
func (m *BotPolicy_RegionRestriction) XXX_DiscardUnknown() {
xxx_messageInfo_BotPolicy_RegionRestriction.DiscardUnknown(m)
}
var xxx_messageInfo_BotPolicy_RegionRestriction proto.InternalMessageInfo
func (m *BotPolicy_RegionRestriction) GetRegion() string {
if m != nil {
return m.Region
}
return ""
}
func (m *BotPolicy_RegionRestriction) GetPrefix() string {
if m != nil {
return m.Prefix
}
return ""
}
func (m *BotPolicy_RegionRestriction) GetWeight() float32 {
if m != nil {
return m.Weight
}
return 0
}
// Configures the root message.
type BotPolicyCfg struct {
// All bot policies.
BotPolicies []*BotPolicy `protobuf:"bytes,1,rep,name=bot_policies,json=botPolicies,proto3" json:"bot_policies,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *BotPolicyCfg) Reset() { *m = BotPolicyCfg{} }
func (m *BotPolicyCfg) String() string { return proto.CompactTextString(m) }
func (*BotPolicyCfg) ProtoMessage() {}
func (*BotPolicyCfg) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{3}
}
func (m *BotPolicyCfg) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_BotPolicyCfg.Unmarshal(m, b)
}
func (m *BotPolicyCfg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_BotPolicyCfg.Marshal(b, m, deterministic)
}
func (m *BotPolicyCfg) XXX_Merge(src proto.Message) {
xxx_messageInfo_BotPolicyCfg.Merge(m, src)
}
func (m *BotPolicyCfg) XXX_Size() int {
return xxx_messageInfo_BotPolicyCfg.Size(m)
}
func (m *BotPolicyCfg) XXX_DiscardUnknown() {
xxx_messageInfo_BotPolicyCfg.DiscardUnknown(m)
}
var xxx_messageInfo_BotPolicyCfg proto.InternalMessageInfo
func (m *BotPolicyCfg) GetBotPolicies() []*BotPolicy {
if m != nil {
return m.BotPolicies
}
return nil
}
// Scaling Action that resulted because of bot demand.
type ScalingAction struct {
// 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"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ScalingAction) Reset() { *m = ScalingAction{} }
func (m *ScalingAction) String() string { return proto.CompactTextString(m) }
func (*ScalingAction) ProtoMessage() {}
func (*ScalingAction) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{4}
}
func (m *ScalingAction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ScalingAction.Unmarshal(m, b)
}
func (m *ScalingAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ScalingAction.Marshal(b, m, deterministic)
}
func (m *ScalingAction) XXX_Merge(src proto.Message) {
xxx_messageInfo_ScalingAction.Merge(m, src)
}
func (m *ScalingAction) XXX_Size() int {
return xxx_messageInfo_ScalingAction.Size(m)
}
func (m *ScalingAction) XXX_DiscardUnknown() {
xxx_messageInfo_ScalingAction.DiscardUnknown(m)
}
var xxx_messageInfo_ScalingAction proto.InternalMessageInfo
func (m *ScalingAction) GetBotGroup() string {
if m != nil {
return m.BotGroup
}
return ""
}
func (m *ScalingAction) GetBotType() *BotType {
if m != nil {
return m.BotType
}
return nil
}
func (m *ScalingAction) GetActionable() ScalingAction_Actionable {
if m != nil {
return m.Actionable
}
return ScalingAction_UNSPECIFIED
}
func (m *ScalingAction) GetBotsRequested() int32 {
if m != nil {
return m.BotsRequested
}
return 0
}
func (m *ScalingAction) GetRegionalActions() []*ScalingAction_RegionalAction {
if m != nil {
return m.RegionalActions
}
return nil
}
func (m *ScalingAction) GetEstimatedSavings() float32 {
if m != nil {
return m.EstimatedSavings
}
return 0
}
// How the bot requests are distributed between regions & prefixes.
type ScalingAction_RegionalAction struct {
// 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"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ScalingAction_RegionalAction) Reset() { *m = ScalingAction_RegionalAction{} }
func (m *ScalingAction_RegionalAction) String() string { return proto.CompactTextString(m) }
func (*ScalingAction_RegionalAction) ProtoMessage() {}
func (*ScalingAction_RegionalAction) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{4, 0}
}
func (m *ScalingAction_RegionalAction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ScalingAction_RegionalAction.Unmarshal(m, b)
}
func (m *ScalingAction_RegionalAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ScalingAction_RegionalAction.Marshal(b, m, deterministic)
}
func (m *ScalingAction_RegionalAction) XXX_Merge(src proto.Message) {
xxx_messageInfo_ScalingAction_RegionalAction.Merge(m, src)
}
func (m *ScalingAction_RegionalAction) XXX_Size() int {
return xxx_messageInfo_ScalingAction_RegionalAction.Size(m)
}
func (m *ScalingAction_RegionalAction) XXX_DiscardUnknown() {
xxx_messageInfo_ScalingAction_RegionalAction.DiscardUnknown(m)
}
var xxx_messageInfo_ScalingAction_RegionalAction proto.InternalMessageInfo
func (m *ScalingAction_RegionalAction) GetRegion() string {
if m != nil {
return m.Region
}
return ""
}
func (m *ScalingAction_RegionalAction) GetPrefix() string {
if m != nil {
return m.Prefix
}
return ""
}
func (m *ScalingAction_RegionalAction) GetBotsRequested() int32 {
if m != nil {
return m.BotsRequested
}
return 0
}
// ResourceUsage based on the current resources assigned.
type ResourceUsage struct {
// Number of VMs allocated across all bot groups.
Vms int32 `protobuf:"varint,1,opt,name=vms,proto3" json:"vms,omitempty"`
// Number of CPUs allocated across all bot groups.
Cpus float32 `protobuf:"fixed32,2,opt,name=cpus,proto3" json:"cpus,omitempty"`
// Amount of memory in GB allocated across all bot groups.
MemoryGb float32 `protobuf:"fixed32,3,opt,name=memory_gb,json=memoryGb,proto3" json:"memory_gb,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ResourceUsage) Reset() { *m = ResourceUsage{} }
func (m *ResourceUsage) String() string { return proto.CompactTextString(m) }
func (*ResourceUsage) ProtoMessage() {}
func (*ResourceUsage) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{5}
}
func (m *ResourceUsage) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResourceUsage.Unmarshal(m, b)
}
func (m *ResourceUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ResourceUsage.Marshal(b, m, deterministic)
}
func (m *ResourceUsage) XXX_Merge(src proto.Message) {
xxx_messageInfo_ResourceUsage.Merge(m, src)
}
func (m *ResourceUsage) XXX_Size() int {
return xxx_messageInfo_ResourceUsage.Size(m)
}
func (m *ResourceUsage) XXX_DiscardUnknown() {
xxx_messageInfo_ResourceUsage.DiscardUnknown(m)
}
var xxx_messageInfo_ResourceUsage proto.InternalMessageInfo
func (m *ResourceUsage) GetVms() int32 {
if m != nil {
return m.Vms
}
return 0
}
func (m *ResourceUsage) GetCpus() float32 {
if m != nil {
return m.Cpus
}
return 0
}
func (m *ResourceUsage) GetMemoryGb() float32 {
if m != nil {
return m.MemoryGb
}
return 0
}
// Resource utilization based on regional assignment.
type ResourceUtilization struct {
// 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"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ResourceUtilization) Reset() { *m = ResourceUtilization{} }
func (m *ResourceUtilization) String() string { return proto.CompactTextString(m) }
func (*ResourceUtilization) ProtoMessage() {}
func (*ResourceUtilization) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{6}
}
func (m *ResourceUtilization) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResourceUtilization.Unmarshal(m, b)
}
func (m *ResourceUtilization) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ResourceUtilization.Marshal(b, m, deterministic)
}
func (m *ResourceUtilization) XXX_Merge(src proto.Message) {
xxx_messageInfo_ResourceUtilization.Merge(m, src)
}
func (m *ResourceUtilization) XXX_Size() int {
return xxx_messageInfo_ResourceUtilization.Size(m)
}
func (m *ResourceUtilization) XXX_DiscardUnknown() {
xxx_messageInfo_ResourceUtilization.DiscardUnknown(m)
}
var xxx_messageInfo_ResourceUtilization proto.InternalMessageInfo
func (m *ResourceUtilization) GetRegion() string {
if m != nil {
return m.Region
}
return ""
}
func (m *ResourceUtilization) GetVms() int32 {
if m != nil {
return m.Vms
}
return 0
}
func (m *ResourceUtilization) GetCpus() float32 {
if m != nil {
return m.Cpus
}
return 0
}
func (m *ResourceUtilization) GetMemoryGb() float32 {
if m != nil {
return m.MemoryGb
}
return 0
}
func (m *ResourceUtilization) GetDiskGb() float32 {
if m != nil {
return m.DiskGb
}
return 0
}
func (m *ResourceUtilization) GetMaxCpus() float32 {
if m != nil {
return m.MaxCpus
}
return 0
}
// All the actions that will be executed by RoboCrop.
type RoboCropAction struct {
// 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"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RoboCropAction) Reset() { *m = RoboCropAction{} }
func (m *RoboCropAction) String() string { return proto.CompactTextString(m) }
func (*RoboCropAction) ProtoMessage() {}
func (*RoboCropAction) Descriptor() ([]byte, []int) {
return fileDescriptor_dbe70eabfd64e7ef, []int{7}
}
func (m *RoboCropAction) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RoboCropAction.Unmarshal(m, b)
}
func (m *RoboCropAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RoboCropAction.Marshal(b, m, deterministic)
}
func (m *RoboCropAction) XXX_Merge(src proto.Message) {
xxx_messageInfo_RoboCropAction.Merge(m, src)
}
func (m *RoboCropAction) XXX_Size() int {
return xxx_messageInfo_RoboCropAction.Size(m)
}
func (m *RoboCropAction) XXX_DiscardUnknown() {
xxx_messageInfo_RoboCropAction.DiscardUnknown(m)
}
var xxx_messageInfo_RoboCropAction proto.InternalMessageInfo
func (m *RoboCropAction) GetScalingActions() []*ScalingAction {
if m != nil {
return m.ScalingActions
}
return nil
}
func (m *RoboCropAction) GetResourceUtilization() []*ResourceUtilization {
if m != nil {
return m.ResourceUtilization
}
return nil
}
func init() {
proto.RegisterEnum("chromiumos.BotPolicy_Mode", BotPolicy_Mode_name, BotPolicy_Mode_value)
proto.RegisterEnum("chromiumos.BotPolicy_BotScalingMode", BotPolicy_BotScalingMode_name, BotPolicy_BotScalingMode_value)
proto.RegisterEnum("chromiumos.ScalingAction_Actionable", ScalingAction_Actionable_name, ScalingAction_Actionable_value)
proto.RegisterType((*BotType)(nil), "chromiumos.BotType")
proto.RegisterType((*SwarmingDimension)(nil), "chromiumos.SwarmingDimension")
proto.RegisterType((*BotPolicy)(nil), "chromiumos.BotPolicy")
proto.RegisterType((*BotPolicy_ScalingRestriction)(nil), "chromiumos.BotPolicy.ScalingRestriction")
proto.RegisterType((*BotPolicy_RegionRestriction)(nil), "chromiumos.BotPolicy.RegionRestriction")
proto.RegisterType((*BotPolicyCfg)(nil), "chromiumos.BotPolicyCfg")
proto.RegisterType((*ScalingAction)(nil), "chromiumos.ScalingAction")
proto.RegisterType((*ScalingAction_RegionalAction)(nil), "chromiumos.ScalingAction.RegionalAction")
proto.RegisterType((*ResourceUsage)(nil), "chromiumos.ResourceUsage")
proto.RegisterType((*ResourceUtilization)(nil), "chromiumos.ResourceUtilization")
proto.RegisterType((*RoboCropAction)(nil), "chromiumos.RoboCropAction")
}
func init() { proto.RegisterFile("chromiumos/bot_scaling.proto", fileDescriptor_dbe70eabfd64e7ef) }
var fileDescriptor_dbe70eabfd64e7ef = []byte{
// 1004 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdd, 0x6e, 0xeb, 0x44,
0x10, 0x3e, 0x4e, 0x9a, 0xe6, 0x64, 0xd2, 0xa4, 0xe9, 0xa6, 0x80, 0x4f, 0x01, 0x9d, 0x10, 0x81,
0x88, 0x84, 0x94, 0x4a, 0x05, 0x01, 0x12, 0x57, 0xcd, 0x4f, 0x73, 0x22, 0x68, 0x12, 0x6d, 0x5a,
0xc1, 0x81, 0x0b, 0xcb, 0x76, 0xb6, 0xee, 0xaa, 0xb6, 0xd7, 0xec, 0x3a, 0x3d, 0x6d, 0x1f, 0x80,
0x37, 0xe0, 0x0d, 0xb8, 0xe0, 0x86, 0xb7, 0xe2, 0x41, 0xd0, 0xfe, 0x38, 0xff, 0x45, 0x42, 0xe2,
0x6e, 0xe7, 0xdb, 0x9d, 0x6f, 0x76, 0x66, 0xbe, 0xf1, 0x1a, 0x3e, 0xf2, 0x6f, 0x39, 0x8b, 0xe8,
0x3c, 0x62, 0xe2, 0xd4, 0x63, 0xa9, 0x23, 0x7c, 0x37, 0xa4, 0x71, 0xd0, 0x4e, 0x38, 0x4b, 0x19,
0x82, 0xe5, 0x6e, 0xf3, 0x37, 0x0b, 0x8a, 0x1d, 0x96, 0x5e, 0x3d, 0x26, 0x04, 0xbd, 0x82, 0x97,
0xea, 0x30, 0x7d, 0x22, 0xb6, 0xd5, 0xb0, 0x5a, 0x25, 0x5c, 0xf4, 0x58, 0x3a, 0xa5, 0x4f, 0x04,
0x35, 0xa1, 0xe2, 0x33, 0x4e, 0x84, 0x93, 0x10, 0xee, 0x78, 0x2c, 0xb5, 0x73, 0x0d, 0xab, 0x55,
0xc0, 0x65, 0x05, 0x4e, 0x08, 0xef, 0xb0, 0x14, 0xbd, 0x86, 0xf2, 0x2d, 0x9b, 0xf3, 0xf0, 0xd1,
0xf1, 0x99, 0x48, 0xed, 0x7c, 0xc3, 0x6a, 0xe5, 0x30, 0x68, 0xa8, 0xcb, 0x44, 0x8a, 0x3e, 0x84,
0x52, 0x44, 0x22, 0xc6, 0x1f, 0x9d, 0xc0, 0xb3, 0xf7, 0xd4, 0xf6, 0x4b, 0x0d, 0x0c, 0xbc, 0xe6,
0x35, 0x1c, 0x4d, 0xdf, 0xb9, 0x3c, 0xa2, 0x71, 0xd0, 0xa3, 0x11, 0x89, 0x05, 0x65, 0x31, 0x42,
0xb0, 0x17, 0xbb, 0x51, 0x76, 0x1b, 0xb5, 0x46, 0xc7, 0x50, 0xb8, 0x77, 0xc3, 0x39, 0x51, 0x57,
0x28, 0x61, 0x6d, 0xa0, 0xf7, 0x61, 0x5f, 0x2d, 0x84, 0x9d, 0x6f, 0xe4, 0x5b, 0x25, 0x6c, 0xac,
0xe6, 0xef, 0x45, 0x28, 0x75, 0x58, 0x3a, 0x61, 0x21, 0xf5, 0x1f, 0xe5, 0x0d, 0x64, 0x86, 0x01,
0x67, 0xf3, 0xc4, 0x90, 0xca, 0x94, 0x07, 0xd2, 0x46, 0x6d, 0x9d, 0x7e, 0xfa, 0x98, 0x68, 0xee,
0xf2, 0x59, 0xbd, 0xbd, 0xac, 0x54, 0xdb, 0x54, 0x49, 0xd5, 0x44, 0x95, 0xeb, 0x2d, 0xd4, 0x4d,
0x5d, 0x1d, 0x4e, 0x44, 0xca, 0xa9, 0x9f, 0x52, 0x16, 0xab, 0xbc, 0xcb, 0x67, 0xad, 0x0d, 0x57,
0x7d, 0x81, 0xf6, 0x54, 0x3b, 0xe0, 0xe5, 0x79, 0x8c, 0xc4, 0x16, 0x86, 0x7e, 0x82, 0x3a, 0x27,
0x01, 0x65, 0xf1, 0x2a, 0xb3, 0xb0, 0xf7, 0x1a, 0xf9, 0x56, 0xf9, 0xec, 0xf3, 0xdd, 0xd4, 0x58,
0x39, 0xac, 0x31, 0xf3, 0x4d, 0x48, 0xa0, 0x11, 0xd4, 0x85, 0x29, 0xb3, 0x33, 0xcb, 0xea, 0x2c,
0xec, 0x82, 0x62, 0xfe, 0x78, 0x95, 0x79, 0xab, 0x1b, 0x18, 0x89, 0x4d, 0x48, 0xa0, 0xef, 0xa0,
0x9c, 0xa8, 0xf8, 0x4e, 0xc4, 0x66, 0xc4, 0xde, 0x6f, 0x58, 0xad, 0xea, 0xd9, 0xc9, 0xee, 0x1b,
0x5e, 0xb2, 0x19, 0xc1, 0xa0, 0x8f, 0xcb, 0x35, 0xfa, 0x0c, 0xaa, 0x21, 0x63, 0x77, 0x9e, 0xeb,
0xdf, 0x39, 0x52, 0x27, 0xc2, 0x2e, 0x36, 0xac, 0xd6, 0x11, 0xae, 0x64, 0xe8, 0x1b, 0x09, 0xa2,
0x01, 0x1c, 0x64, 0x85, 0x56, 0x41, 0x5e, 0xaa, 0x20, 0x9f, 0xee, 0x0e, 0xd2, 0x61, 0xa9, 0x29,
0xb2, 0x0a, 0x57, 0x16, 0x4b, 0xe3, 0xe4, 0x2f, 0x0b, 0xd0, 0x76, 0x07, 0xa4, 0x70, 0x65, 0xe3,
0x7d, 0x42, 0xe5, 0x8e, 0xd2, 0x45, 0x01, 0x83, 0xc7, 0xd2, 0xae, 0x46, 0x32, 0xd9, 0xdc, 0x84,
0x8c, 0x71, 0xa3, 0x7c, 0x29, 0x95, 0x0b, 0x69, 0xcb, 0xa9, 0x89, 0x68, 0xec, 0xd0, 0x59, 0x48,
0x54, 0xef, 0x0b, 0xb8, 0x18, 0xd1, 0x78, 0x38, 0x0b, 0x89, 0xf4, 0x13, 0x29, 0x49, 0xf4, 0x44,
0xed, 0x69, 0x3f, 0x09, 0xa8, 0x91, 0xfa, 0x04, 0x0e, 0x14, 0xa9, 0x1b, 0x86, 0x32, 0x55, 0xbb,
0xa0, 0x27, 0x4a, 0xf2, 0x1a, 0xe8, 0xe4, 0x17, 0x38, 0xda, 0xea, 0xaa, 0x54, 0xba, 0xee, 0xab,
0x11, 0xb0, 0xb1, 0x24, 0x9e, 0x70, 0x72, 0x43, 0x1f, 0xcc, 0x60, 0x18, 0x4b, 0xe2, 0xef, 0x08,
0x0d, 0x6e, 0xb3, 0x89, 0x34, 0x56, 0xf3, 0x1b, 0xd8, 0x53, 0x4d, 0xa8, 0xc1, 0xc1, 0xf5, 0xe8,
0xfb, 0xd1, 0xf8, 0xc7, 0x91, 0x73, 0x39, 0xee, 0xf5, 0x6b, 0x2f, 0x50, 0x05, 0x4a, 0x97, 0xe3,
0xd1, 0xf0, 0x6a, 0x8c, 0xfb, 0xbd, 0x9a, 0x85, 0xaa, 0x00, 0xdd, 0xf1, 0xe8, 0x62, 0x38, 0xb8,
0x96, 0x76, 0xae, 0xd9, 0x85, 0xea, 0x7a, 0x91, 0x91, 0x0d, 0xc7, 0x19, 0xc5, 0xb4, 0x7b, 0xfe,
0xc3, 0x70, 0x34, 0xc8, 0xa8, 0xca, 0x50, 0x9c, 0x5e, 0xf5, 0x27, 0x13, 0x45, 0x04, 0xb0, 0xdf,
0xeb, 0x5f, 0x9e, 0x8f, 0x24, 0xc9, 0x1b, 0x38, 0x58, 0xf4, 0xac, 0x7b, 0x13, 0xa0, 0x6f, 0x75,
0x35, 0x94, 0x38, 0x28, 0x11, 0xb6, 0xa5, 0x04, 0xf9, 0xde, 0xce, 0x1e, 0xab, 0x22, 0x4d, 0xcc,
0xc9, 0xe6, 0xdf, 0x79, 0xa8, 0x98, 0xcb, 0x9c, 0xeb, 0x0a, 0xfd, 0xaf, 0x53, 0xde, 0x03, 0x70,
0x15, 0xad, 0xeb, 0x99, 0x06, 0x6f, 0x48, 0x6f, 0x2d, 0x76, 0xfb, 0x7c, 0x71, 0x16, 0xaf, 0xf8,
0x49, 0xa5, 0x7b, 0x2c, 0x15, 0x0e, 0x27, 0xbf, 0xce, 0x89, 0x48, 0xc9, 0xcc, 0xc8, 0xa1, 0x22,
0x51, 0x9c, 0x81, 0x68, 0x0a, 0x35, 0xdd, 0x4d, 0x37, 0x74, 0x5c, 0x33, 0xf4, 0x7a, 0x34, 0x5b,
0xcf, 0x87, 0xc4, 0xc6, 0x43, 0x9b, 0xf8, 0x90, 0xaf, 0xd9, 0x02, 0x7d, 0x01, 0x47, 0x44, 0xa4,
0x34, 0x72, 0x53, 0x32, 0x73, 0x84, 0x7b, 0x4f, 0xe3, 0x40, 0xa8, 0x41, 0xcd, 0xe1, 0xda, 0x62,
0x63, 0xaa, 0xf1, 0x93, 0x00, 0xaa, 0xeb, 0x7c, 0xff, 0x59, 0x6f, 0xdb, 0xa9, 0xe6, 0x77, 0xa4,
0xda, 0x6c, 0x03, 0x2c, 0x6b, 0x85, 0x0e, 0xa1, 0x7c, 0x3d, 0x9a, 0x4e, 0xfa, 0xdd, 0xe1, 0xc5,
0xb0, 0xdf, 0xab, 0xbd, 0x40, 0x45, 0xc8, 0xbf, 0xed, 0x4f, 0x6b, 0x16, 0xda, 0x87, 0xdc, 0x68,
0x5c, 0xcb, 0x35, 0x31, 0x54, 0x30, 0x11, 0x6c, 0xce, 0x7d, 0x72, 0x2d, 0xdc, 0x40, 0xea, 0x36,
0x7f, 0x1f, 0x09, 0x33, 0xad, 0x72, 0x29, 0x5f, 0x0b, 0x3f, 0x99, 0x0b, 0x75, 0x9f, 0x1c, 0x56,
0xeb, 0xf5, 0x37, 0x27, 0xbf, 0xf1, 0xe6, 0xfc, 0x61, 0x41, 0x7d, 0x41, 0x9a, 0xd2, 0x90, 0x3e,
0xb9, 0xff, 0x9a, 0xb2, 0x09, 0x99, 0xdb, 0x0e, 0x99, 0x7f, 0x2e, 0xe4, 0xc6, 0x33, 0x87, 0x3e,
0x80, 0xe2, 0x8c, 0x8a, 0x3b, 0xb9, 0x55, 0xd0, 0xe3, 0x28, 0xcd, 0x81, 0xa7, 0x3e, 0x23, 0xee,
0x83, 0xa3, 0xd8, 0x74, 0x73, 0x8a, 0x91, 0xfb, 0xd0, 0x4d, 0xe6, 0xa2, 0xf9, 0xa7, 0x05, 0x55,
0xcc, 0x3c, 0xd6, 0xe5, 0x2c, 0x31, 0x4d, 0xe9, 0xc0, 0x61, 0xf6, 0x49, 0xcc, 0x74, 0xa2, 0x27,
0xe6, 0xd5, 0xb3, 0x3a, 0xc1, 0x55, 0xb1, 0x6a, 0x0a, 0x84, 0xe1, 0x98, 0x9b, 0xe4, 0x9d, 0xf9,
0x32, 0x7b, 0x3b, 0xa7, 0x88, 0x5e, 0xaf, 0x12, 0xed, 0x28, 0x12, 0xae, 0xf3, 0x6d, 0xb0, 0xf3,
0xf5, 0xcf, 0x5f, 0x05, 0x6c, 0xe1, 0xd9, 0x66, 0x3c, 0x38, 0x5d, 0xf9, 0x15, 0xa1, 0xf1, 0x0d,
0x77, 0x4f, 0xd5, 0x4f, 0xc8, 0x69, 0xc0, 0x56, 0x76, 0xbc, 0x7d, 0x05, 0x7e, 0xf9, 0x4f, 0x00,
0x00, 0x00, 0xff, 0xff, 0x2a, 0x51, 0xcd, 0xd4, 0xb9, 0x08, 0x00, 0x00,
}