robocrop: add new proto message for robocrop

We are re introducing some logs to output
properties but in reduced form. This message
outlines the current need for these logs but
can be expanded as needed.

BUG=b:174846648
TEST=presubmit

Change-Id: I183c7d9b1e6334b71e01bbb10dd93318dec2e16d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/infra/proto/+/2577675
Reviewed-by: Dhanya Ganesh <dhanyaganesh@chromium.org>
Commit-Queue: Julio Hurtado <juahurta@google.com>
diff --git a/go/chromiumos/bot_scaling.pb.go b/go/chromiumos/bot_scaling.pb.go
index e2ec1ec..e69ec65 100644
--- a/go/chromiumos/bot_scaling.pb.go
+++ b/go/chromiumos/bot_scaling.pb.go
@@ -88,6 +88,37 @@
 	return fileDescriptor_dbe70eabfd64e7ef, []int{2, 1}
 }
 
+// Specifies mode for a bot policy
+type ReducedBotPolicy_Mode int32
+
+const (
+	ReducedBotPolicy_UNKNOWN_MODE ReducedBotPolicy_Mode = 0
+	// Collect stats only for a bot group.
+	ReducedBotPolicy_MONITORED ReducedBotPolicy_Mode = 1
+	// Generate configuration updates for bot group.
+	ReducedBotPolicy_CONFIGURED ReducedBotPolicy_Mode = 2
+)
+
+var ReducedBotPolicy_Mode_name = map[int32]string{
+	0: "UNKNOWN_MODE",
+	1: "MONITORED",
+	2: "CONFIGURED",
+}
+
+var ReducedBotPolicy_Mode_value = map[string]int32{
+	"UNKNOWN_MODE": 0,
+	"MONITORED":    1,
+	"CONFIGURED":   2,
+}
+
+func (x ReducedBotPolicy_Mode) String() string {
+	return proto.EnumName(ReducedBotPolicy_Mode_name, int32(x))
+}
+
+func (ReducedBotPolicy_Mode) EnumDescriptor() ([]byte, []int) {
+	return fileDescriptor_dbe70eabfd64e7ef, []int{4, 0}
+}
+
 // Specifies if there has been a change since the last iteration.
 type ScalingAction_Actionable int32
 
@@ -116,7 +147,7 @@
 }
 
 func (ScalingAction_Actionable) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_dbe70eabfd64e7ef, []int{4, 0}
+	return fileDescriptor_dbe70eabfd64e7ef, []int{6, 0}
 }
 
 // Defines a type of bot associated with a bot group.
@@ -548,6 +579,106 @@
 	return nil
 }
 
+// Reduced version of BotPolicy meant for output properties
+type ReducedBotPolicy 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"`
+	// Set whether a bot group should be configured or only monitored.
+	PolicyMode           ReducedBotPolicy_Mode `protobuf:"varint,3,opt,name=policy_mode,json=policyMode,proto3,enum=chromiumos.ReducedBotPolicy_Mode" json:"policy_mode,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
+	XXX_unrecognized     []byte                `json:"-"`
+	XXX_sizecache        int32                 `json:"-"`
+}
+
+func (m *ReducedBotPolicy) Reset()         { *m = ReducedBotPolicy{} }
+func (m *ReducedBotPolicy) String() string { return proto.CompactTextString(m) }
+func (*ReducedBotPolicy) ProtoMessage()    {}
+func (*ReducedBotPolicy) Descriptor() ([]byte, []int) {
+	return fileDescriptor_dbe70eabfd64e7ef, []int{4}
+}
+
+func (m *ReducedBotPolicy) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ReducedBotPolicy.Unmarshal(m, b)
+}
+func (m *ReducedBotPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ReducedBotPolicy.Marshal(b, m, deterministic)
+}
+func (m *ReducedBotPolicy) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ReducedBotPolicy.Merge(m, src)
+}
+func (m *ReducedBotPolicy) XXX_Size() int {
+	return xxx_messageInfo_ReducedBotPolicy.Size(m)
+}
+func (m *ReducedBotPolicy) XXX_DiscardUnknown() {
+	xxx_messageInfo_ReducedBotPolicy.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ReducedBotPolicy proto.InternalMessageInfo
+
+func (m *ReducedBotPolicy) GetBotGroup() string {
+	if m != nil {
+		return m.BotGroup
+	}
+	return ""
+}
+
+func (m *ReducedBotPolicy) GetBotType() *BotType {
+	if m != nil {
+		return m.BotType
+	}
+	return nil
+}
+
+func (m *ReducedBotPolicy) GetPolicyMode() ReducedBotPolicy_Mode {
+	if m != nil {
+		return m.PolicyMode
+	}
+	return ReducedBotPolicy_UNKNOWN_MODE
+}
+
+// Configures the root message.
+type ReducedBotPolicyCfg struct {
+	// All bot policies in reduced form.
+	BotPolicies          []*ReducedBotPolicy `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 *ReducedBotPolicyCfg) Reset()         { *m = ReducedBotPolicyCfg{} }
+func (m *ReducedBotPolicyCfg) String() string { return proto.CompactTextString(m) }
+func (*ReducedBotPolicyCfg) ProtoMessage()    {}
+func (*ReducedBotPolicyCfg) Descriptor() ([]byte, []int) {
+	return fileDescriptor_dbe70eabfd64e7ef, []int{5}
+}
+
+func (m *ReducedBotPolicyCfg) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_ReducedBotPolicyCfg.Unmarshal(m, b)
+}
+func (m *ReducedBotPolicyCfg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_ReducedBotPolicyCfg.Marshal(b, m, deterministic)
+}
+func (m *ReducedBotPolicyCfg) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_ReducedBotPolicyCfg.Merge(m, src)
+}
+func (m *ReducedBotPolicyCfg) XXX_Size() int {
+	return xxx_messageInfo_ReducedBotPolicyCfg.Size(m)
+}
+func (m *ReducedBotPolicyCfg) XXX_DiscardUnknown() {
+	xxx_messageInfo_ReducedBotPolicyCfg.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_ReducedBotPolicyCfg proto.InternalMessageInfo
+
+func (m *ReducedBotPolicyCfg) GetBotPolicies() []*ReducedBotPolicy {
+	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.
@@ -580,7 +711,7 @@
 func (m *ScalingAction) String() string { return proto.CompactTextString(m) }
 func (*ScalingAction) ProtoMessage()    {}
 func (*ScalingAction) Descriptor() ([]byte, []int) {
-	return fileDescriptor_dbe70eabfd64e7ef, []int{4}
+	return fileDescriptor_dbe70eabfd64e7ef, []int{6}
 }
 
 func (m *ScalingAction) XXX_Unmarshal(b []byte) error {
@@ -681,7 +812,7 @@
 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}
+	return fileDescriptor_dbe70eabfd64e7ef, []int{6, 0}
 }
 
 func (m *ScalingAction_RegionalAction) XXX_Unmarshal(b []byte) error {
@@ -746,7 +877,7 @@
 func (m *ResourceUtilization) String() string { return proto.CompactTextString(m) }
 func (*ResourceUtilization) ProtoMessage()    {}
 func (*ResourceUtilization) Descriptor() ([]byte, []int) {
-	return fileDescriptor_dbe70eabfd64e7ef, []int{5}
+	return fileDescriptor_dbe70eabfd64e7ef, []int{7}
 }
 
 func (m *ResourceUtilization) XXX_Unmarshal(b []byte) error {
@@ -824,7 +955,7 @@
 func (m *ApplicationUtilization) String() string { return proto.CompactTextString(m) }
 func (*ApplicationUtilization) ProtoMessage()    {}
 func (*ApplicationUtilization) Descriptor() ([]byte, []int) {
-	return fileDescriptor_dbe70eabfd64e7ef, []int{6}
+	return fileDescriptor_dbe70eabfd64e7ef, []int{8}
 }
 
 func (m *ApplicationUtilization) XXX_Unmarshal(b []byte) error {
@@ -874,7 +1005,7 @@
 func (m *RoboCropAction) String() string { return proto.CompactTextString(m) }
 func (*RoboCropAction) ProtoMessage()    {}
 func (*RoboCropAction) Descriptor() ([]byte, []int) {
-	return fileDescriptor_dbe70eabfd64e7ef, []int{7}
+	return fileDescriptor_dbe70eabfd64e7ef, []int{9}
 }
 
 func (m *RoboCropAction) XXX_Unmarshal(b []byte) error {
@@ -919,6 +1050,7 @@
 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.ReducedBotPolicy_Mode", ReducedBotPolicy_Mode_name, ReducedBotPolicy_Mode_value)
 	proto.RegisterEnum("chromiumos.ScalingAction_Actionable", ScalingAction_Actionable_name, ScalingAction_Actionable_value)
 	proto.RegisterType((*BotType)(nil), "chromiumos.BotType")
 	proto.RegisterType((*SwarmingDimension)(nil), "chromiumos.SwarmingDimension")
@@ -926,6 +1058,8 @@
 	proto.RegisterType((*BotPolicy_ScalingRestriction)(nil), "chromiumos.BotPolicy.ScalingRestriction")
 	proto.RegisterType((*BotPolicy_RegionRestriction)(nil), "chromiumos.BotPolicy.RegionRestriction")
 	proto.RegisterType((*BotPolicyCfg)(nil), "chromiumos.BotPolicyCfg")
+	proto.RegisterType((*ReducedBotPolicy)(nil), "chromiumos.ReducedBotPolicy")
+	proto.RegisterType((*ReducedBotPolicyCfg)(nil), "chromiumos.ReducedBotPolicyCfg")
 	proto.RegisterType((*ScalingAction)(nil), "chromiumos.ScalingAction")
 	proto.RegisterType((*ScalingAction_RegionalAction)(nil), "chromiumos.ScalingAction.RegionalAction")
 	proto.RegisterType((*ResourceUtilization)(nil), "chromiumos.ResourceUtilization")
@@ -936,74 +1070,78 @@
 func init() { proto.RegisterFile("chromiumos/bot_scaling.proto", fileDescriptor_dbe70eabfd64e7ef) }
 
 var fileDescriptor_dbe70eabfd64e7ef = []byte{
-	// 1102 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5d, 0x8f, 0xe3, 0x34,
-	0x14, 0xdd, 0xf4, 0x73, 0x7b, 0x3b, 0xd3, 0xcd, 0xb8, 0xc3, 0x6e, 0x76, 0x01, 0x6d, 0x89, 0x40,
-	0x54, 0x42, 0xea, 0x48, 0x03, 0x02, 0x24, 0x9e, 0xfa, 0x35, 0xdd, 0x0a, 0xa6, 0xad, 0xdc, 0x1d,
-	0xc1, 0x82, 0x44, 0x94, 0xa4, 0x9e, 0xac, 0x35, 0x49, 0x1c, 0xec, 0x74, 0x76, 0x66, 0x7e, 0x00,
-	0xe2, 0x89, 0x5f, 0xc1, 0x2b, 0xef, 0xfc, 0x36, 0x9e, 0x90, 0x1d, 0xa7, 0xed, 0xb4, 0xdd, 0x95,
-	0x90, 0xe0, 0xcd, 0xf7, 0x5c, 0xfb, 0xfa, 0xfa, 0xf8, 0x1c, 0x27, 0xf0, 0x81, 0xff, 0x9a, 0xb3,
-	0x88, 0x2e, 0x23, 0x26, 0x4e, 0x3c, 0x96, 0x3a, 0xc2, 0x77, 0x43, 0x1a, 0x07, 0x9d, 0x84, 0xb3,
-	0x94, 0x21, 0x58, 0x67, 0xed, 0x5f, 0x0d, 0xa8, 0xf6, 0x58, 0xfa, 0xf2, 0x36, 0x21, 0xe8, 0x29,
-	0x3c, 0x54, 0x93, 0xe9, 0x1d, 0xb1, 0x8c, 0x96, 0xd1, 0xae, 0xe1, 0xaa, 0xc7, 0xd2, 0x39, 0xbd,
-	0x23, 0xc8, 0x86, 0x43, 0x9f, 0x71, 0x22, 0x9c, 0x84, 0x70, 0xc7, 0x63, 0xa9, 0x55, 0x68, 0x19,
-	0xed, 0x02, 0xae, 0x2b, 0x70, 0x46, 0x78, 0x8f, 0xa5, 0xe8, 0x39, 0xd4, 0x5f, 0xb3, 0x25, 0x0f,
-	0x6f, 0x1d, 0x9f, 0x89, 0xd4, 0x2a, 0xaa, 0x19, 0x90, 0x41, 0x7d, 0x26, 0x52, 0xf4, 0x3e, 0xd4,
-	0x22, 0x12, 0x31, 0x7e, 0xeb, 0x04, 0x9e, 0x55, 0x52, 0xe9, 0x87, 0x19, 0x30, 0xf2, 0xec, 0x0b,
-	0x38, 0x9a, 0xbf, 0x71, 0x79, 0x44, 0xe3, 0x60, 0x40, 0x23, 0x12, 0x0b, 0xca, 0x62, 0x84, 0xa0,
-	0x14, 0xbb, 0x51, 0xde, 0x8d, 0x1a, 0xa3, 0x63, 0x28, 0x5f, 0xbb, 0xe1, 0x92, 0xa8, 0x16, 0x6a,
-	0x38, 0x0b, 0xd0, 0x63, 0xa8, 0xa8, 0x81, 0xb0, 0x8a, 0xad, 0x62, 0xbb, 0x86, 0x75, 0x64, 0xff,
-	0x5d, 0x85, 0x5a, 0x8f, 0xa5, 0x33, 0x16, 0x52, 0xff, 0x56, 0x76, 0x20, 0x4f, 0x18, 0x70, 0xb6,
-	0x4c, 0x74, 0x51, 0x79, 0xe4, 0x91, 0x8c, 0x51, 0x27, 0x3b, 0x7e, 0x7a, 0x9b, 0x64, 0xb5, 0xeb,
-	0xa7, 0xcd, 0xce, 0x9a, 0xa9, 0x8e, 0x66, 0x49, 0x71, 0xa2, 0xe8, 0x7a, 0x05, 0x4d, 0xcd, 0xab,
-	0xc3, 0x89, 0x48, 0x39, 0xf5, 0x53, 0xca, 0x62, 0x75, 0xee, 0xfa, 0x69, 0x7b, 0x6b, 0x69, 0xd6,
-	0x40, 0x67, 0x9e, 0x2d, 0xc0, 0xeb, 0xf9, 0x18, 0x89, 0x1d, 0x0c, 0xfd, 0x00, 0x4d, 0x4e, 0x02,
-	0xca, 0xe2, 0xcd, 0xca, 0xc2, 0x2a, 0xb5, 0x8a, 0xed, 0xfa, 0xe9, 0xa7, 0xfb, 0x4b, 0x63, 0xb5,
-	0xe0, 0x5e, 0x65, 0xbe, 0x0d, 0x09, 0x34, 0x81, 0xa6, 0xd0, 0x34, 0x3b, 0x8b, 0x9c, 0x67, 0x61,
-	0x95, 0x55, 0xe5, 0x0f, 0x37, 0x2b, 0xef, 0xdc, 0x06, 0x46, 0x62, 0x1b, 0x12, 0xe8, 0x1b, 0xa8,
-	0x27, 0x6a, 0x7f, 0x27, 0x62, 0x0b, 0x62, 0x55, 0x5a, 0x46, 0xbb, 0x71, 0xfa, 0x6c, 0x7f, 0x87,
-	0xe7, 0x6c, 0x41, 0x30, 0x64, 0xd3, 0xe5, 0x18, 0x7d, 0x02, 0x8d, 0x90, 0xb1, 0x2b, 0xcf, 0xf5,
-	0xaf, 0x1c, 0xa9, 0x13, 0x61, 0x55, 0x5b, 0x46, 0xfb, 0x08, 0x1f, 0xe6, 0xe8, 0x0b, 0x09, 0xa2,
-	0x11, 0x1c, 0xe4, 0x44, 0xab, 0x4d, 0x1e, 0xaa, 0x4d, 0x3e, 0xde, 0xbf, 0x49, 0x8f, 0xa5, 0x9a,
-	0x64, 0xb5, 0x5d, 0x5d, 0xac, 0x03, 0xf4, 0x19, 0x1c, 0xad, 0x0e, 0x4f, 0x63, 0x91, 0xba, 0xb1,
-	0x4f, 0xac, 0x9a, 0x92, 0x81, 0x99, 0x27, 0xc6, 0x1a, 0x47, 0x2d, 0xa8, 0xbb, 0x49, 0x12, 0x52,
-	0xdf, 0x55, 0xd7, 0x0a, 0x6a, 0xda, 0x26, 0xf4, 0xec, 0x4f, 0x03, 0xd0, 0xee, 0x85, 0x4a, 0x1f,
-	0x48, 0x1d, 0xf9, 0x84, 0xca, 0x8c, 0x92, 0x59, 0x19, 0x83, 0xc7, 0xd2, 0x7e, 0x86, 0xe4, 0x2a,
-	0xbc, 0x0c, 0x19, 0xe3, 0x4a, 0x69, 0x65, 0xa5, 0xc2, 0x33, 0x19, 0x4b, 0x13, 0x46, 0x34, 0x76,
-	0xe8, 0x22, 0x24, 0x4a, 0x4a, 0x65, 0x5c, 0x8d, 0x68, 0x3c, 0x5e, 0x84, 0x44, 0xae, 0x13, 0x29,
-	0x49, 0x32, 0x83, 0x96, 0xb2, 0x75, 0x12, 0x50, 0x0e, 0xfd, 0x08, 0x0e, 0x54, 0x51, 0x37, 0x0c,
-	0x25, 0x73, 0x56, 0x59, 0xe5, 0x65, 0x27, 0x67, 0x1a, 0x7a, 0xf6, 0x13, 0x1c, 0xed, 0x88, 0x44,
-	0x1a, 0x27, 0x93, 0x89, 0xf6, 0x83, 0x8e, 0x24, 0x9e, 0x70, 0x72, 0x49, 0x6f, 0xb4, 0xcf, 0x74,
-	0x24, 0xf1, 0x37, 0x84, 0x06, 0xaf, 0x73, 0x83, 0xeb, 0xc8, 0xfe, 0x0a, 0x4a, 0x8a, 0x63, 0x13,
-	0x0e, 0x2e, 0x26, 0xdf, 0x4e, 0xa6, 0xdf, 0x4f, 0x9c, 0xf3, 0xe9, 0x60, 0x68, 0x3e, 0x40, 0x87,
-	0x50, 0x3b, 0x9f, 0x4e, 0xc6, 0x2f, 0xa7, 0x78, 0x38, 0x30, 0x0d, 0xd4, 0x00, 0xe8, 0x4f, 0x27,
-	0x67, 0xe3, 0xd1, 0x85, 0x8c, 0x0b, 0xf6, 0x2b, 0x68, 0xdc, 0xbf, 0x33, 0x64, 0xc1, 0x71, 0x5e,
-	0x62, 0xde, 0xef, 0x7e, 0x37, 0x9e, 0x8c, 0xf2, 0x52, 0x75, 0xa8, 0xce, 0x5f, 0x0e, 0x67, 0x33,
-	0x55, 0x08, 0xa0, 0x32, 0x18, 0x9e, 0x77, 0x27, 0x03, 0xb3, 0x80, 0x8e, 0xc1, 0xd4, 0x09, 0x67,
-	0x30, 0xec, 0xe3, 0x61, 0x77, 0x3e, 0x34, 0x8b, 0xf6, 0x0b, 0x38, 0x58, 0x09, 0xa3, 0x7f, 0x19,
-	0xa0, 0xaf, 0x33, 0x8e, 0x94, 0x02, 0x29, 0x11, 0x96, 0xa1, 0x54, 0xff, 0xde, 0x5e, 0x21, 0x29,
-	0xea, 0x66, 0x7a, 0xa6, 0xfd, 0x57, 0x09, 0x0e, 0x75, 0x8b, 0xdd, 0x8c, 0xb7, 0xff, 0xf4, 0x29,
-	0x19, 0x00, 0xb8, 0xaa, 0xac, 0xeb, 0xe9, 0x6b, 0xdf, 0xd2, 0xf7, 0xbd, 0xbd, 0x3b, 0xdd, 0xd5,
-	0x5c, 0xbc, 0xb1, 0x4e, 0xda, 0xc9, 0x63, 0xa9, 0x70, 0x38, 0xf9, 0x65, 0x49, 0x44, 0x4a, 0x16,
-	0x5a, 0x24, 0x87, 0x12, 0xc5, 0x39, 0x88, 0xe6, 0x60, 0x66, 0x77, 0xec, 0x86, 0x8e, 0xab, 0x5f,
-	0x96, 0xcc, 0xff, 0xed, 0xb7, 0x6f, 0x89, 0xf5, 0x8a, 0x2c, 0xc4, 0x8f, 0xf8, 0xbd, 0x58, 0x48,
-	0x6b, 0x11, 0x91, 0xd2, 0xc8, 0x4d, 0xc9, 0xc2, 0x11, 0xee, 0x35, 0x8d, 0x03, 0xa1, 0x5e, 0x83,
-	0x02, 0x36, 0x57, 0x89, 0x79, 0x86, 0xa3, 0x27, 0x20, 0x4f, 0xee, 0x44, 0x34, 0x56, 0x86, 0x2f,
-	0xe3, 0x8a, 0xc7, 0xd2, 0x73, 0x1a, 0xaf, 0x12, 0xee, 0x8d, 0x32, 0xb9, 0x4e, 0xb8, 0x37, 0xdb,
-	0x66, 0xac, 0xed, 0x9a, 0x31, 0x80, 0xc6, 0xfd, 0x1e, 0xff, 0xb5, 0xb2, 0x77, 0xe9, 0x2b, 0xee,
-	0xa1, 0xcf, 0xee, 0x00, 0xac, 0xf9, 0x47, 0x8f, 0xa0, 0x7e, 0x31, 0x99, 0xcf, 0x86, 0xfd, 0xf1,
-	0xd9, 0x78, 0x38, 0x30, 0x1f, 0xa0, 0x2a, 0x14, 0x5f, 0x0d, 0xe7, 0xa6, 0x81, 0x2a, 0x50, 0x98,
-	0x4c, 0xcd, 0x82, 0xfd, 0x87, 0x01, 0x4d, 0x4c, 0x04, 0x5b, 0x72, 0x9f, 0x5c, 0xa4, 0x34, 0xa4,
-	0x77, 0xee, 0x3b, 0xdb, 0x33, 0xa1, 0x78, 0x1d, 0x09, 0xfd, 0x2e, 0xc8, 0xa1, 0xfc, 0x0a, 0xfa,
-	0xc9, 0x52, 0x68, 0xc3, 0xa9, 0xf1, 0x3b, 0xbf, 0xa5, 0x92, 0xc6, 0x05, 0x15, 0x57, 0x32, 0x55,
-	0xce, 0x4c, 0x2a, 0xc3, 0x91, 0xa7, 0x1e, 0x17, 0xf7, 0xc6, 0x51, 0xd5, 0xb2, 0xcb, 0xa9, 0x46,
-	0xee, 0x4d, 0x3f, 0x59, 0x0a, 0xfb, 0x77, 0x03, 0x1e, 0x77, 0xd7, 0x7c, 0x6e, 0x76, 0xba, 0x45,
-	0xbe, 0xb1, 0x43, 0x3e, 0xc2, 0x70, 0xcc, 0xf5, 0x11, 0x9d, 0xe5, 0x7a, 0xa5, 0x55, 0x50, 0xb2,
-	0x7a, 0xbe, 0x29, 0xab, 0x3d, 0x54, 0xe0, 0x26, 0xdf, 0x05, 0xed, 0xdf, 0x0a, 0xd0, 0xc0, 0xcc,
-	0x63, 0x7d, 0xce, 0x12, 0x7d, 0xa3, 0x3d, 0x78, 0x94, 0x7f, 0x08, 0x72, 0xe1, 0x66, 0x16, 0x7e,
-	0xfa, 0x56, 0xe1, 0xe2, 0x86, 0xd8, 0x0c, 0xc5, 0xff, 0xd1, 0x2a, 0xfa, 0x19, 0x9e, 0x4a, 0x36,
-	0x9c, 0xbd, 0x85, 0x8b, 0xaa, 0xb0, 0xbd, 0x59, 0x78, 0x3f, 0xcf, 0xf8, 0x89, 0x2c, 0xb2, 0x67,
-	0xd3, 0xde, 0x97, 0x3f, 0x7e, 0x11, 0xb0, 0x55, 0x81, 0x0e, 0xe3, 0xc1, 0xc9, 0xc6, 0x0f, 0x1e,
-	0x8d, 0x2f, 0xb9, 0x7b, 0xa2, 0x7e, 0xed, 0x4e, 0x02, 0xb6, 0x91, 0xf1, 0x2a, 0x0a, 0xfc, 0xfc,
-	0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe0, 0x0e, 0x35, 0x33, 0x0f, 0x0a, 0x00, 0x00,
+	// 1153 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5d, 0x6f, 0xe3, 0x44,
+	0x17, 0x5e, 0xe7, 0x73, 0x73, 0xd2, 0x66, 0xdd, 0x49, 0xdf, 0x5d, 0xef, 0xbe, 0x8b, 0x36, 0x6b,
+	0x81, 0x88, 0x84, 0x94, 0x4a, 0x05, 0x01, 0x12, 0x17, 0x28, 0x5f, 0xcd, 0x46, 0xd0, 0x24, 0x9a,
+	0x6c, 0x81, 0x82, 0x84, 0x65, 0x3b, 0x53, 0x77, 0x54, 0xdb, 0x63, 0x3c, 0x4e, 0xb7, 0xed, 0x0f,
+	0x40, 0x5c, 0xf1, 0x2b, 0xb8, 0xe5, 0x9e, 0x1f, 0xc3, 0x2f, 0xe1, 0x0a, 0xcd, 0x78, 0x9c, 0xef,
+	0xad, 0x04, 0x62, 0xef, 0x7c, 0x9e, 0x33, 0xf3, 0xcc, 0x99, 0x67, 0x9e, 0x73, 0x12, 0x78, 0xee,
+	0x5e, 0xc6, 0x2c, 0xa0, 0xf3, 0x80, 0xf1, 0x23, 0x87, 0x25, 0x16, 0x77, 0x6d, 0x9f, 0x86, 0x5e,
+	0x2b, 0x8a, 0x59, 0xc2, 0x10, 0x2c, 0xb3, 0xe6, 0xcf, 0x1a, 0x94, 0x3b, 0x2c, 0x79, 0x7d, 0x1b,
+	0x11, 0xf4, 0x14, 0x1e, 0xca, 0xc5, 0xf4, 0x8e, 0x18, 0x5a, 0x43, 0x6b, 0x56, 0x70, 0xd9, 0x61,
+	0xc9, 0x94, 0xde, 0x11, 0x64, 0xc2, 0xbe, 0xcb, 0x62, 0xc2, 0xad, 0x88, 0xc4, 0x96, 0xc3, 0x12,
+	0x23, 0xd7, 0xd0, 0x9a, 0x39, 0x5c, 0x95, 0xe0, 0x84, 0xc4, 0x1d, 0x96, 0xa0, 0x17, 0x50, 0xbd,
+	0x64, 0xf3, 0xd8, 0xbf, 0xb5, 0x5c, 0xc6, 0x13, 0x23, 0x2f, 0x57, 0x40, 0x0a, 0x75, 0x19, 0x4f,
+	0xd0, 0xff, 0xa1, 0x12, 0x90, 0x80, 0xc5, 0xb7, 0x96, 0xe7, 0x18, 0x05, 0x99, 0x7e, 0x98, 0x02,
+	0x03, 0xc7, 0x3c, 0x83, 0x83, 0xe9, 0x1b, 0x3b, 0x0e, 0x68, 0xe8, 0xf5, 0x68, 0x40, 0x42, 0x4e,
+	0x59, 0x88, 0x10, 0x14, 0x42, 0x3b, 0xc8, 0xaa, 0x91, 0xdf, 0xe8, 0x10, 0x8a, 0xd7, 0xb6, 0x3f,
+	0x27, 0xb2, 0x84, 0x0a, 0x4e, 0x03, 0xf4, 0x18, 0x4a, 0xf2, 0x83, 0x1b, 0xf9, 0x46, 0xbe, 0x59,
+	0xc1, 0x2a, 0x32, 0xff, 0x2a, 0x43, 0xa5, 0xc3, 0x92, 0x09, 0xf3, 0xa9, 0x7b, 0x2b, 0x2a, 0x10,
+	0x37, 0xf4, 0x62, 0x36, 0x8f, 0x14, 0xa9, 0xb8, 0xf2, 0x40, 0xc4, 0xa8, 0x95, 0x5e, 0x3f, 0xb9,
+	0x8d, 0x52, 0xee, 0xea, 0x71, 0xbd, 0xb5, 0x54, 0xaa, 0xa5, 0x54, 0x92, 0x9a, 0x48, 0xb9, 0xce,
+	0xa1, 0xae, 0x74, 0xb5, 0x62, 0xc2, 0x93, 0x98, 0xba, 0x09, 0x65, 0xa1, 0xbc, 0x77, 0xf5, 0xb8,
+	0xb9, 0xb1, 0x35, 0x2d, 0xa0, 0x35, 0x4d, 0x37, 0xe0, 0xe5, 0x7a, 0x8c, 0xf8, 0x16, 0x86, 0xbe,
+	0x83, 0x7a, 0x4c, 0x3c, 0xca, 0xc2, 0x55, 0x66, 0x6e, 0x14, 0x1a, 0xf9, 0x66, 0xf5, 0xf8, 0xc3,
+	0xdd, 0xd4, 0x58, 0x6e, 0x58, 0x63, 0x8e, 0x37, 0x21, 0x8e, 0x46, 0x50, 0xe7, 0x4a, 0x66, 0x6b,
+	0x96, 0xe9, 0xcc, 0x8d, 0xa2, 0x64, 0x7e, 0x6f, 0x95, 0x79, 0xeb, 0x35, 0x30, 0xe2, 0x9b, 0x10,
+	0x47, 0x5f, 0x40, 0x35, 0x92, 0xe7, 0x5b, 0x01, 0x9b, 0x11, 0xa3, 0xd4, 0xd0, 0x9a, 0xb5, 0xe3,
+	0x67, 0xbb, 0x2b, 0x3c, 0x65, 0x33, 0x82, 0x21, 0x5d, 0x2e, 0xbe, 0xd1, 0x07, 0x50, 0xf3, 0x19,
+	0xbb, 0x72, 0x6c, 0xf7, 0xca, 0x12, 0x3e, 0xe1, 0x46, 0xb9, 0xa1, 0x35, 0x0f, 0xf0, 0x7e, 0x86,
+	0xbe, 0x12, 0x20, 0x1a, 0xc0, 0x5e, 0x26, 0xb4, 0x3c, 0xe4, 0xa1, 0x3c, 0xe4, 0xfd, 0xdd, 0x87,
+	0x74, 0x58, 0xa2, 0x44, 0x96, 0xc7, 0x55, 0xf9, 0x32, 0x40, 0x1f, 0xc1, 0xc1, 0xe2, 0xf2, 0x34,
+	0xe4, 0x89, 0x1d, 0xba, 0xc4, 0xa8, 0x48, 0x1b, 0xe8, 0x59, 0x62, 0xa8, 0x70, 0xd4, 0x80, 0xaa,
+	0x1d, 0x45, 0x3e, 0x75, 0x6d, 0xf9, 0xac, 0x20, 0x97, 0xad, 0x42, 0xcf, 0x7e, 0xd7, 0x00, 0x6d,
+	0x3f, 0xa8, 0xe8, 0x03, 0xe1, 0x23, 0x97, 0x50, 0x91, 0x91, 0x36, 0x2b, 0x62, 0x70, 0x58, 0xd2,
+	0x4d, 0x91, 0xcc, 0x85, 0x17, 0x3e, 0x63, 0xb1, 0x74, 0x5a, 0x51, 0xba, 0xf0, 0x44, 0xc4, 0xa2,
+	0x09, 0x03, 0x1a, 0x5a, 0x74, 0xe6, 0x13, 0x69, 0xa5, 0x22, 0x2e, 0x07, 0x34, 0x1c, 0xce, 0x7c,
+	0x22, 0xf6, 0xf1, 0x84, 0x44, 0x69, 0x83, 0x16, 0xd2, 0x7d, 0x02, 0x90, 0x1d, 0xfa, 0x12, 0xf6,
+	0x24, 0xa9, 0xed, 0xfb, 0x42, 0x39, 0xa3, 0x28, 0xf3, 0xa2, 0x92, 0x13, 0x05, 0x3d, 0xfb, 0x01,
+	0x0e, 0xb6, 0x4c, 0x22, 0x1a, 0x27, 0xb5, 0x89, 0xea, 0x07, 0x15, 0x09, 0x3c, 0x8a, 0xc9, 0x05,
+	0xbd, 0x51, 0x7d, 0xa6, 0x22, 0x81, 0xbf, 0x21, 0xd4, 0xbb, 0xcc, 0x1a, 0x5c, 0x45, 0xe6, 0x67,
+	0x50, 0x90, 0x1a, 0xeb, 0xb0, 0x77, 0x36, 0xfa, 0x6a, 0x34, 0xfe, 0x76, 0x64, 0x9d, 0x8e, 0x7b,
+	0x7d, 0xfd, 0x01, 0xda, 0x87, 0xca, 0xe9, 0x78, 0x34, 0x7c, 0x3d, 0xc6, 0xfd, 0x9e, 0xae, 0xa1,
+	0x1a, 0x40, 0x77, 0x3c, 0x3a, 0x19, 0x0e, 0xce, 0x44, 0x9c, 0x33, 0xcf, 0xa1, 0xb6, 0xfe, 0x66,
+	0xc8, 0x80, 0xc3, 0x8c, 0x62, 0xda, 0x6d, 0x7f, 0x3d, 0x1c, 0x0d, 0x32, 0xaa, 0x2a, 0x94, 0xa7,
+	0xaf, 0xfb, 0x93, 0x89, 0x24, 0x02, 0x28, 0xf5, 0xfa, 0xa7, 0xed, 0x51, 0x4f, 0xcf, 0xa1, 0x43,
+	0xd0, 0x55, 0xc2, 0xea, 0xf5, 0xbb, 0xb8, 0xdf, 0x9e, 0xf6, 0xf5, 0xbc, 0xf9, 0x0a, 0xf6, 0x16,
+	0xc6, 0xe8, 0x5e, 0x78, 0xe8, 0xf3, 0x54, 0x23, 0xe9, 0x40, 0x4a, 0xb8, 0xa1, 0x49, 0xd7, 0xff,
+	0x6f, 0xa7, 0x91, 0xa4, 0x74, 0x13, 0xb5, 0xd2, 0xfc, 0x53, 0x03, 0x1d, 0x93, 0xd9, 0xdc, 0x25,
+	0xb3, 0x77, 0x34, 0x4d, 0x3a, 0xeb, 0x8d, 0x94, 0x97, 0x1e, 0x7f, 0xb9, 0xba, 0x65, 0xf3, 0xfc,
+	0xad, 0x7e, 0xfa, 0xf7, 0x6f, 0xf0, 0x0d, 0xd4, 0x37, 0xd9, 0x85, 0x5e, 0x5f, 0xee, 0xd4, 0xeb,
+	0xf9, 0x7d, 0x45, 0xad, 0xcb, 0xf6, 0x47, 0x01, 0xf6, 0xd5, 0xcb, 0xb6, 0x53, 0xbb, 0xfd, 0xa7,
+	0x9a, 0xf5, 0x00, 0x6c, 0x49, 0x6b, 0x3b, 0x7e, 0x26, 0xd9, 0xda, 0x58, 0x58, 0x3b, 0xbb, 0xd5,
+	0x5e, 0xac, 0xc5, 0x2b, 0xfb, 0xc4, 0x14, 0x72, 0x58, 0xc2, 0xad, 0x98, 0xfc, 0x34, 0x27, 0x3c,
+	0x21, 0x33, 0xd5, 0x5b, 0xfb, 0x02, 0xc5, 0x19, 0x88, 0xa6, 0xa0, 0xa7, 0xad, 0x61, 0xfb, 0x96,
+	0xad, 0x06, 0x72, 0x3a, 0x36, 0x9b, 0x6f, 0x3f, 0x12, 0xab, 0x1d, 0x69, 0x88, 0x1f, 0xc5, 0x6b,
+	0x31, 0x17, 0x13, 0x89, 0xf0, 0x84, 0x06, 0x76, 0x42, 0x66, 0x16, 0xb7, 0xaf, 0x69, 0xe8, 0x71,
+	0x39, 0x44, 0x73, 0x58, 0x5f, 0x24, 0xa6, 0x29, 0x8e, 0x9e, 0x80, 0xb8, 0xb9, 0x15, 0xd0, 0x50,
+	0xce, 0xc9, 0x22, 0x2e, 0x39, 0x2c, 0x39, 0xa5, 0xe1, 0x22, 0x61, 0xdf, 0xc8, 0xd9, 0xa8, 0x12,
+	0xf6, 0xcd, 0xe6, 0x0c, 0xab, 0x6c, 0xcf, 0x30, 0x0f, 0x6a, 0xeb, 0x35, 0xfe, 0xe3, 0x81, 0xb0,
+	0x2d, 0x5f, 0x7e, 0x87, 0x7c, 0x66, 0x0b, 0x60, 0xa9, 0x3f, 0x7a, 0x04, 0xd5, 0xb3, 0xd1, 0x74,
+	0xd2, 0xef, 0x0e, 0x4f, 0x86, 0xfd, 0x9e, 0xfe, 0x00, 0x95, 0x21, 0x7f, 0xde, 0x9f, 0xea, 0x1a,
+	0x2a, 0x41, 0x6e, 0x34, 0xd6, 0x73, 0xe6, 0x6f, 0x9a, 0xf0, 0x24, 0x67, 0xf3, 0xd8, 0x25, 0x67,
+	0x09, 0xf5, 0xe9, 0x9d, 0x7d, 0x6f, 0x79, 0x3a, 0xe4, 0xaf, 0x03, 0xae, 0xc6, 0xa9, 0xf8, 0x14,
+	0x7f, 0x1e, 0xdc, 0x68, 0xce, 0xd5, 0x9c, 0x92, 0xdf, 0xf7, 0xfe, 0x05, 0x11, 0x32, 0xce, 0x28,
+	0xbf, 0x12, 0xa9, 0x62, 0x3a, 0xdb, 0x44, 0x38, 0x70, 0xe4, 0x4c, 0xb6, 0x6f, 0x2c, 0xc9, 0x96,
+	0x3e, 0x4e, 0x39, 0xb0, 0x6f, 0xba, 0xd1, 0x9c, 0x9b, 0xbf, 0x6a, 0xf0, 0xb8, 0xbd, 0xd4, 0x73,
+	0xb5, 0xd2, 0x0d, 0xf1, 0xb5, 0x2d, 0xf1, 0x11, 0x86, 0xc3, 0x58, 0x5d, 0xd1, 0x9a, 0x2f, 0x77,
+	0x1a, 0x39, 0x69, 0xab, 0x17, 0xeb, 0x7d, 0xb6, 0x25, 0x05, 0xae, 0xc7, 0xdb, 0xa0, 0xf9, 0x4b,
+	0x0e, 0x6a, 0x98, 0x39, 0xac, 0x1b, 0xb3, 0x48, 0xbd, 0x68, 0x07, 0x1e, 0x65, 0xbf, 0x9f, 0x99,
+	0x71, 0xd3, 0x4e, 0x7e, 0xfa, 0x56, 0xe3, 0xe2, 0x1a, 0x5f, 0x0d, 0xf9, 0xbb, 0x28, 0x15, 0xfd,
+	0x08, 0x4f, 0x85, 0x1a, 0xd6, 0x4e, 0xe2, 0xbc, 0x24, 0x36, 0x57, 0x89, 0x77, 0xeb, 0x8c, 0x9f,
+	0x08, 0x92, 0x1d, 0x87, 0x76, 0x3e, 0xfd, 0xfe, 0x13, 0x8f, 0x2d, 0x08, 0x5a, 0x2c, 0xf6, 0x8e,
+	0x56, 0xfe, 0x17, 0xd3, 0xf0, 0x22, 0xb6, 0x8f, 0xe4, 0x3f, 0xe2, 0x23, 0x8f, 0xad, 0x64, 0x9c,
+	0x92, 0x04, 0x3f, 0xfe, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x07, 0x56, 0x9c, 0x46, 0x0b, 0x00,
+	0x00,
 }
diff --git a/src/chromiumos/bot_scaling.proto b/src/chromiumos/bot_scaling.proto
index 4f4be38..9f5fc7b 100644
--- a/src/chromiumos/bot_scaling.proto
+++ b/src/chromiumos/bot_scaling.proto
@@ -112,6 +112,33 @@
   repeated BotPolicy bot_policies = 1;
 }
 
+// Reduced version of BotPolicy meant for output properties
+message ReducedBotPolicy {
+  // Bot group controlled by this policy, like, 'cq', 'postsubmit',...
+  string bot_group = 1;
+
+  // The type of bot to be requested.
+  BotType bot_type = 2;
+
+  // Specifies mode for a bot policy
+  enum Mode {
+    UNKNOWN_MODE = 0;
+    // Collect stats only for a bot group.
+    MONITORED = 1;
+    // Generate configuration updates for bot group.
+    CONFIGURED = 2;
+  }
+
+  // Set whether a bot group should be configured or only monitored.
+  Mode policy_mode = 3;
+}
+
+// Configures the root message.
+message ReducedBotPolicyCfg {
+  // All bot policies in reduced form.
+  repeated ReducedBotPolicy bot_policies = 1;
+}
+
 // Scaling Action that resulted because of bot demand.
 message ScalingAction {
   // Bot group modified by the action. Should be the same as BotPolicy.