// Code generated by protoc-gen-go. DO NOT EDIT.
// source: chromiumos/dut_tracking.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

// Defines the modes of monitoring to execute on swarming.
type MonitoringMode int32

const (
	MonitoringMode_DEFAULT_TRACKING MonitoringMode = 0
	// Track Task and Bot count.
	MonitoringMode_TASK_BOT_COUNT MonitoringMode = 1
	// Maximum pending time of the tasks.
	MonitoringMode_MAX_PEND_TIME MonitoringMode = 2
	// Success and failure count over a time period.
	MonitoringMode_PASS_FAIL_COUNT MonitoringMode = 3
)

var MonitoringMode_name = map[int32]string{
	0: "DEFAULT_TRACKING",
	1: "TASK_BOT_COUNT",
	2: "MAX_PEND_TIME",
	3: "PASS_FAIL_COUNT",
}

var MonitoringMode_value = map[string]int32{
	"DEFAULT_TRACKING": 0,
	"TASK_BOT_COUNT":   1,
	"MAX_PEND_TIME":    2,
	"PASS_FAIL_COUNT":  3,
}

func (x MonitoringMode) String() string {
	return proto.EnumName(MonitoringMode_name, int32(x))
}

func (MonitoringMode) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_31a1fc16820a6989, []int{0}
}

// Defines a tracking policy for a specific "bot group". This can be used
// to track a DUT, a model, a qs_account or tasks with certain priority.
type TrackingPolicy struct {
	// Bot group being tracked.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Dimensions to query swarming on.
	// DO NOT use values field here. Only value will be used.
	Dimensions []*SwarmingDimension `protobuf:"bytes,2,rep,name=dimensions,proto3" json:"dimensions,omitempty"`
	// What monitorings to apply on the bot group.
	Modes []MonitoringMode `protobuf:"varint,3,rep,packed,name=modes,proto3,enum=chromiumos.MonitoringMode" json:"modes,omitempty"`
	// Number of hours to lookback for Swarming stats.
	LookbackHours int32 `protobuf:"zigzag32,4,opt,name=lookback_hours,json=lookbackHours,proto3" json:"lookback_hours,omitempty"`
	// Dimensions that are only needed to query tasks.
	TaskDimensions []*SwarmingDimension `protobuf:"bytes,5,rep,name=task_dimensions,json=taskDimensions,proto3" json:"task_dimensions,omitempty"`
	// Swarming instance name:  chromeos-swarming.appspot.com
	SwarmingInstance     string   `protobuf:"bytes,6,opt,name=swarming_instance,json=swarmingInstance,proto3" json:"swarming_instance,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TrackingPolicy) Reset()         { *m = TrackingPolicy{} }
func (m *TrackingPolicy) String() string { return proto.CompactTextString(m) }
func (*TrackingPolicy) ProtoMessage()    {}
func (*TrackingPolicy) Descriptor() ([]byte, []int) {
	return fileDescriptor_31a1fc16820a6989, []int{0}
}

func (m *TrackingPolicy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TrackingPolicy.Unmarshal(m, b)
}
func (m *TrackingPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TrackingPolicy.Marshal(b, m, deterministic)
}
func (m *TrackingPolicy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TrackingPolicy.Merge(m, src)
}
func (m *TrackingPolicy) XXX_Size() int {
	return xxx_messageInfo_TrackingPolicy.Size(m)
}
func (m *TrackingPolicy) XXX_DiscardUnknown() {
	xxx_messageInfo_TrackingPolicy.DiscardUnknown(m)
}

var xxx_messageInfo_TrackingPolicy proto.InternalMessageInfo

func (m *TrackingPolicy) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *TrackingPolicy) GetDimensions() []*SwarmingDimension {
	if m != nil {
		return m.Dimensions
	}
	return nil
}

func (m *TrackingPolicy) GetModes() []MonitoringMode {
	if m != nil {
		return m.Modes
	}
	return nil
}

func (m *TrackingPolicy) GetLookbackHours() int32 {
	if m != nil {
		return m.LookbackHours
	}
	return 0
}

func (m *TrackingPolicy) GetTaskDimensions() []*SwarmingDimension {
	if m != nil {
		return m.TaskDimensions
	}
	return nil
}

func (m *TrackingPolicy) GetSwarmingInstance() string {
	if m != nil {
		return m.SwarmingInstance
	}
	return ""
}

// Defines a root message.
type TrackingPolicyCfg struct {
	// All tracking policies.
	Policies             []*TrackingPolicy `protobuf:"bytes,1,rep,name=policies,proto3" json:"policies,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *TrackingPolicyCfg) Reset()         { *m = TrackingPolicyCfg{} }
func (m *TrackingPolicyCfg) String() string { return proto.CompactTextString(m) }
func (*TrackingPolicyCfg) ProtoMessage()    {}
func (*TrackingPolicyCfg) Descriptor() ([]byte, []int) {
	return fileDescriptor_31a1fc16820a6989, []int{1}
}

func (m *TrackingPolicyCfg) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TrackingPolicyCfg.Unmarshal(m, b)
}
func (m *TrackingPolicyCfg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TrackingPolicyCfg.Marshal(b, m, deterministic)
}
func (m *TrackingPolicyCfg) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TrackingPolicyCfg.Merge(m, src)
}
func (m *TrackingPolicyCfg) XXX_Size() int {
	return xxx_messageInfo_TrackingPolicyCfg.Size(m)
}
func (m *TrackingPolicyCfg) XXX_DiscardUnknown() {
	xxx_messageInfo_TrackingPolicyCfg.DiscardUnknown(m)
}

var xxx_messageInfo_TrackingPolicyCfg proto.InternalMessageInfo

func (m *TrackingPolicyCfg) GetPolicies() []*TrackingPolicy {
	if m != nil {
		return m.Policies
	}
	return nil
}

func init() {
	proto.RegisterEnum("chromiumos.MonitoringMode", MonitoringMode_name, MonitoringMode_value)
	proto.RegisterType((*TrackingPolicy)(nil), "chromiumos.TrackingPolicy")
	proto.RegisterType((*TrackingPolicyCfg)(nil), "chromiumos.TrackingPolicyCfg")
}

func init() { proto.RegisterFile("chromiumos/dut_tracking.proto", fileDescriptor_31a1fc16820a6989) }

var fileDescriptor_31a1fc16820a6989 = []byte{
	// 387 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x5f, 0x6b, 0xdb, 0x30,
	0x14, 0xc5, 0xe7, 0xa4, 0x2d, 0xdb, 0x1d, 0x75, 0x1d, 0x6d, 0x0f, 0xa6, 0xac, 0x60, 0x0a, 0x03,
	0xb3, 0x81, 0x3d, 0xba, 0xd1, 0xb7, 0x3d, 0xb8, 0x71, 0xb2, 0x99, 0xd4, 0x69, 0xb0, 0x5d, 0x18,
	0x7b, 0x11, 0xf2, 0x9f, 0xba, 0xc2, 0xb1, 0x6e, 0x90, 0x1c, 0xc6, 0x3e, 0xd6, 0xbe, 0xe1, 0x88,
	0xe7, 0x24, 0xf6, 0xdb, 0xde, 0xa4, 0x73, 0x7f, 0x47, 0x1c, 0x1d, 0x2e, 0x5c, 0x65, 0xcf, 0x12,
	0x6b, 0xbe, 0xad, 0x51, 0xb9, 0xf9, 0xb6, 0xa1, 0x8d, 0x64, 0x59, 0xc5, 0x45, 0xe9, 0x6c, 0x24,
	0x36, 0x48, 0xe0, 0x38, 0xbe, 0x7c, 0xd7, 0x43, 0x53, 0x6c, 0xa8, 0xca, 0xd8, 0xfa, 0x40, 0x5e,
	0xff, 0x19, 0x81, 0x9e, 0x74, 0xe6, 0x15, 0xae, 0x79, 0xf6, 0x9b, 0x10, 0x38, 0x11, 0xac, 0x2e,
	0x4c, 0xcd, 0xd2, 0xec, 0x57, 0x51, 0x7b, 0x26, 0x5f, 0x01, 0x72, 0x5e, 0x17, 0x42, 0x71, 0x14,
	0xca, 0x1c, 0x59, 0x63, 0xfb, 0xf5, 0xcd, 0x95, 0x73, 0x7c, 0xd9, 0x89, 0x7f, 0x31, 0x59, 0x73,
	0x51, 0xfa, 0x7b, 0x2a, 0xea, 0x19, 0xc8, 0x27, 0x38, 0xad, 0x31, 0x2f, 0x94, 0x39, 0xb6, 0xc6,
	0xb6, 0x7e, 0x73, 0xd9, 0x77, 0x86, 0x28, 0x78, 0x83, 0x92, 0x8b, 0x32, 0xc4, 0xbc, 0x88, 0xfe,
	0x81, 0xe4, 0x3d, 0xe8, 0x6b, 0xc4, 0x2a, 0x65, 0x59, 0x45, 0x9f, 0x71, 0x2b, 0x95, 0x79, 0x62,
	0x69, 0xf6, 0x24, 0x3a, 0xdf, 0xab, 0xdf, 0x77, 0x22, 0x99, 0xc3, 0x45, 0xc3, 0x54, 0x45, 0x7b,
	0xe1, 0x4e, 0xff, 0x27, 0x9c, 0xbe, 0x73, 0xf9, 0xc7, 0x80, 0x1f, 0x61, 0xa2, 0x3a, 0x88, 0x72,
	0xa1, 0x1a, 0x26, 0xb2, 0xc2, 0x3c, 0x6b, 0x0b, 0x30, 0xf6, 0x83, 0xa0, 0xd3, 0xaf, 0x17, 0x30,
	0x19, 0x56, 0x36, 0x7d, 0x2a, 0xc9, 0x2d, 0xbc, 0xdc, 0xec, 0x2e, 0xbc, 0x50, 0xa6, 0xd6, 0x46,
	0x18, 0xfc, 0x72, 0x68, 0x88, 0x0e, 0xec, 0x87, 0x14, 0xf4, 0x61, 0x03, 0xe4, 0x2d, 0x18, 0xfe,
	0x6c, 0xee, 0x3d, 0xde, 0x27, 0x34, 0x89, 0xbc, 0xe9, 0x22, 0x58, 0x7e, 0x33, 0x5e, 0x10, 0x02,
	0x7a, 0xe2, 0xc5, 0x0b, 0x7a, 0xf7, 0x90, 0xd0, 0xe9, 0xc3, 0xe3, 0x32, 0x31, 0x34, 0x32, 0x81,
	0xf3, 0xd0, 0xfb, 0x41, 0x57, 0xb3, 0xa5, 0x4f, 0x93, 0x20, 0x9c, 0x19, 0x23, 0xf2, 0x06, 0x2e,
	0x56, 0x5e, 0x1c, 0xd3, 0xb9, 0x17, 0xdc, 0x77, 0xdc, 0xf8, 0xee, 0xf6, 0xe7, 0x97, 0x12, 0x0f,
	0x69, 0x1c, 0x94, 0xa5, 0xdb, 0x5b, 0x0a, 0x2e, 0x9e, 0x24, 0x73, 0xdb, 0x75, 0x70, 0x4b, 0xec,
	0x4d, 0xd2, 0xb3, 0x56, 0xfc, 0xfc, 0x37, 0x00, 0x00, 0xff, 0xff, 0xea, 0x65, 0xaa, 0xfe, 0x6e,
	0x02, 0x00, 0x00,
}
