// Code generated by protoc-gen-go. DO NOT EDIT.
// source: lab/dut_state.proto

package lab

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

// Next Tag: 5
type PeripheralState int32

const (
	// keep for all unknown states except working & not_connected.
	PeripheralState_UNKNOWN       PeripheralState = 0
	PeripheralState_WORKING       PeripheralState = 1
	PeripheralState_NOT_CONNECTED PeripheralState = 2
	PeripheralState_BROKEN        PeripheralState = 3
	PeripheralState_WRONG_CONFIG  PeripheralState = 4
)

var PeripheralState_name = map[int32]string{
	0: "UNKNOWN",
	1: "WORKING",
	2: "NOT_CONNECTED",
	3: "BROKEN",
	4: "WRONG_CONFIG",
}

var PeripheralState_value = map[string]int32{
	"UNKNOWN":       0,
	"WORKING":       1,
	"NOT_CONNECTED": 2,
	"BROKEN":        3,
	"WRONG_CONFIG":  4,
}

func (x PeripheralState) String() string {
	return proto.EnumName(PeripheralState_name, int32(x))
}

func (PeripheralState) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_bfe5ddd3f74c848d, []int{0}
}

// CR50-related configs by definition shouldn't be a state config, but a build config.
// However, we don't have a way to source it from any external configuration system,
// and it's changed frequently enough to handle cr50 tests, which makes
// it basically impossible for manual updatings: See crbug.com/1057145 for the
// troubles it causes.
//
// So we temporarily set it in state config so that repair job can update it.
// For further changes of it, please see tracking bug crbug.com/1057719.
//
// phases for cr50 module. Next Tag: 3
type DutState_CR50Phase int32

const (
	DutState_CR50_PHASE_INVALID DutState_CR50Phase = 0
	DutState_CR50_PHASE_PREPVT  DutState_CR50Phase = 1
	DutState_CR50_PHASE_PVT     DutState_CR50Phase = 2
)

var DutState_CR50Phase_name = map[int32]string{
	0: "CR50_PHASE_INVALID",
	1: "CR50_PHASE_PREPVT",
	2: "CR50_PHASE_PVT",
}

var DutState_CR50Phase_value = map[string]int32{
	"CR50_PHASE_INVALID": 0,
	"CR50_PHASE_PREPVT":  1,
	"CR50_PHASE_PVT":     2,
}

func (x DutState_CR50Phase) String() string {
	return proto.EnumName(DutState_CR50Phase_name, int32(x))
}

func (DutState_CR50Phase) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_bfe5ddd3f74c848d, []int{0, 0}
}

// key env for cr50 RW version. Next Tag: 3
type DutState_CR50KeyEnv int32

const (
	DutState_CR50_KEYENV_INVALID DutState_CR50KeyEnv = 0
	DutState_CR50_KEYENV_PROD    DutState_CR50KeyEnv = 1
	DutState_CR50_KEYENV_DEV     DutState_CR50KeyEnv = 2
)

var DutState_CR50KeyEnv_name = map[int32]string{
	0: "CR50_KEYENV_INVALID",
	1: "CR50_KEYENV_PROD",
	2: "CR50_KEYENV_DEV",
}

var DutState_CR50KeyEnv_value = map[string]int32{
	"CR50_KEYENV_INVALID": 0,
	"CR50_KEYENV_PROD":    1,
	"CR50_KEYENV_DEV":     2,
}

func (x DutState_CR50KeyEnv) String() string {
	return proto.EnumName(DutState_CR50KeyEnv_name, int32(x))
}

func (DutState_CR50KeyEnv) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_bfe5ddd3f74c848d, []int{0, 1}
}

// Next Tag: 8
type DutState struct {
	Id                  *ChromeOSDeviceID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	Servo               PeripheralState   `protobuf:"varint,2,opt,name=servo,proto3,enum=lab.PeripheralState" json:"servo,omitempty"`
	Chameleon           PeripheralState   `protobuf:"varint,3,opt,name=chameleon,proto3,enum=lab.PeripheralState" json:"chameleon,omitempty"`
	AudioLoopbackDongle PeripheralState   `protobuf:"varint,4,opt,name=audio_loopback_dongle,json=audioLoopbackDongle,proto3,enum=lab.PeripheralState" json:"audio_loopback_dongle,omitempty"`
	// Indicate how many working bluetooth btpeer for a device.
	WorkingBluetoothBtpeer int32              `protobuf:"varint,5,opt,name=working_bluetooth_btpeer,json=workingBluetoothBtpeer,proto3" json:"working_bluetooth_btpeer,omitempty"`
	Cr50Phase              DutState_CR50Phase `protobuf:"varint,6,opt,name=cr50_phase,json=cr50Phase,proto3,enum=lab.DutState_CR50Phase" json:"cr50_phase,omitempty"`
	// Detected based on the cr50 RW version that the DUT is running on.
	Cr50KeyEnv           DutState_CR50KeyEnv `protobuf:"varint,7,opt,name=cr50_key_env,json=cr50KeyEnv,proto3,enum=lab.DutState_CR50KeyEnv" json:"cr50_key_env,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

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

var xxx_messageInfo_DutState proto.InternalMessageInfo

func (m *DutState) GetId() *ChromeOSDeviceID {
	if m != nil {
		return m.Id
	}
	return nil
}

func (m *DutState) GetServo() PeripheralState {
	if m != nil {
		return m.Servo
	}
	return PeripheralState_UNKNOWN
}

func (m *DutState) GetChameleon() PeripheralState {
	if m != nil {
		return m.Chameleon
	}
	return PeripheralState_UNKNOWN
}

func (m *DutState) GetAudioLoopbackDongle() PeripheralState {
	if m != nil {
		return m.AudioLoopbackDongle
	}
	return PeripheralState_UNKNOWN
}

func (m *DutState) GetWorkingBluetoothBtpeer() int32 {
	if m != nil {
		return m.WorkingBluetoothBtpeer
	}
	return 0
}

func (m *DutState) GetCr50Phase() DutState_CR50Phase {
	if m != nil {
		return m.Cr50Phase
	}
	return DutState_CR50_PHASE_INVALID
}

func (m *DutState) GetCr50KeyEnv() DutState_CR50KeyEnv {
	if m != nil {
		return m.Cr50KeyEnv
	}
	return DutState_CR50_KEYENV_INVALID
}

func init() {
	proto.RegisterEnum("lab.PeripheralState", PeripheralState_name, PeripheralState_value)
	proto.RegisterEnum("lab.DutState_CR50Phase", DutState_CR50Phase_name, DutState_CR50Phase_value)
	proto.RegisterEnum("lab.DutState_CR50KeyEnv", DutState_CR50KeyEnv_name, DutState_CR50KeyEnv_value)
	proto.RegisterType((*DutState)(nil), "lab.DutState")
}

func init() { proto.RegisterFile("lab/dut_state.proto", fileDescriptor_bfe5ddd3f74c848d) }

var fileDescriptor_bfe5ddd3f74c848d = []byte{
	// 489 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x92, 0xf1, 0x6b, 0xda, 0x40,
	0x14, 0xc7, 0x9b, 0x54, 0xed, 0x7c, 0xed, 0xda, 0xeb, 0x59, 0xdb, 0x30, 0xf6, 0x83, 0x08, 0x03,
	0x29, 0x2c, 0x29, 0x8e, 0x8e, 0xb1, 0xdf, 0xaa, 0xc9, 0xac, 0x58, 0x2e, 0xe1, 0x74, 0xca, 0xc6,
	0xe0, 0xb8, 0x98, 0x9b, 0x06, 0x63, 0x4e, 0xce, 0xe8, 0xe8, 0xdf, 0xb4, 0x7f, 0x72, 0xe4, 0xac,
	0x6b, 0xd8, 0xa0, 0xbf, 0xdd, 0x7b, 0xdf, 0xcf, 0xe7, 0x3d, 0x38, 0x1e, 0xd4, 0x12, 0x1e, 0x3a,
	0xd1, 0x26, 0x63, 0xeb, 0x8c, 0x67, 0xc2, 0x5e, 0x29, 0x99, 0x49, 0x7c, 0x98, 0xf0, 0xf0, 0xcd,
	0xdb, 0x3c, 0x99, 0xce, 0x95, 0x5c, 0x0a, 0xb9, 0x66, 0x91, 0xd8, 0xc6, 0x53, 0xc1, 0xe2, 0x68,
	0x87, 0x34, 0x7f, 0x97, 0xe0, 0x95, 0xbb, 0xc9, 0x86, 0xb9, 0x85, 0xdf, 0x81, 0x19, 0x47, 0x96,
	0xd1, 0x30, 0x5a, 0xc7, 0xed, 0xba, 0x9d, 0xf0, 0xd0, 0xee, 0x6a, 0xcf, 0x1f, 0xba, 0x5a, 0xeb,
	0xbb, 0xd4, 0x8c, 0x23, 0x7c, 0x0d, 0xe5, 0xb5, 0x50, 0x5b, 0x69, 0x99, 0x0d, 0xa3, 0x75, 0xda,
	0xbe, 0xd0, 0x64, 0x20, 0x54, 0xbc, 0x9a, 0x0b, 0xc5, 0x13, 0x3d, 0x8b, 0xee, 0x10, 0xdc, 0x86,
	0xea, 0x74, 0xce, 0x97, 0x22, 0x11, 0x32, 0xb5, 0x0e, 0x5f, 0xe0, 0x9f, 0x31, 0x7c, 0x0f, 0x75,
	0xbe, 0x89, 0x62, 0xc9, 0x12, 0x29, 0x57, 0x21, 0x9f, 0x2e, 0x58, 0x24, 0xd3, 0x59, 0x22, 0xac,
	0xd2, 0x0b, 0x7e, 0x4d, 0x2b, 0x0f, 0x4f, 0x86, 0xab, 0x05, 0xfc, 0x09, 0xac, 0x5f, 0x52, 0x2d,
	0xe2, 0x74, 0xc6, 0xc2, 0x64, 0x23, 0x32, 0x29, 0xb3, 0x39, 0x0b, 0xb3, 0x95, 0x10, 0xca, 0x2a,
	0x37, 0x8c, 0x56, 0x99, 0x5e, 0x3e, 0xe5, 0x9d, 0x7d, 0xdc, 0xd1, 0x29, 0xfe, 0x08, 0x30, 0x55,
	0xb7, 0x37, 0x6c, 0x35, 0xe7, 0x6b, 0x61, 0x55, 0xf4, 0xe2, 0x2b, 0xbd, 0x78, 0xff, 0x5b, 0x76,
	0x97, 0xde, 0xde, 0x04, 0x79, 0x4c, 0xab, 0x39, 0xaa, 0x9f, 0xf8, 0x33, 0x9c, 0x68, 0x6f, 0x21,
	0x1e, 0x99, 0x48, 0xb7, 0xd6, 0x91, 0x36, 0xad, 0xff, 0xcd, 0x81, 0x78, 0xf4, 0xd2, 0x2d, 0xd5,
	0x5b, 0x76, 0xef, 0x26, 0x81, 0xea, 0xdf, 0x99, 0xf8, 0x12, 0x70, 0x5e, 0xb0, 0xe0, 0xfe, 0x6e,
	0xe8, 0xb1, 0x3e, 0x19, 0xdf, 0x3d, 0xf4, 0x5d, 0x74, 0x80, 0xeb, 0x70, 0x5e, 0xe8, 0x07, 0xd4,
	0x0b, 0xc6, 0x23, 0x64, 0x60, 0x0c, 0xa7, 0xc5, 0xf6, 0x78, 0x84, 0xcc, 0x66, 0x00, 0xf0, 0xbc,
	0x09, 0x5f, 0x41, 0x4d, 0x13, 0x03, 0xef, 0x9b, 0x47, 0xc6, 0x85, 0x89, 0x17, 0x80, 0x8a, 0x41,
	0x40, 0x7d, 0x17, 0x19, 0xb8, 0x06, 0x67, 0xc5, 0xae, 0xeb, 0x8d, 0x91, 0x79, 0xfd, 0x03, 0xce,
	0xfe, 0xf9, 0x77, 0x7c, 0x0c, 0x47, 0x5f, 0xc9, 0x80, 0xf8, 0x13, 0x82, 0x0e, 0xf2, 0x62, 0xe2,
	0xd3, 0x41, 0x9f, 0xf4, 0x90, 0x81, 0xcf, 0xe1, 0x35, 0xf1, 0x47, 0xac, 0xeb, 0x13, 0xe2, 0x75,
	0x47, 0x9e, 0x8b, 0x4c, 0x0c, 0x50, 0xe9, 0x50, 0x7f, 0xe0, 0x11, 0x74, 0x88, 0x11, 0x9c, 0x4c,
	0xa8, 0x4f, 0x7a, 0x39, 0xf0, 0xa5, 0xdf, 0x43, 0xa5, 0x8e, 0xf3, 0xfd, 0xfd, 0x4c, 0xda, 0xfa,
	0x54, 0xe3, 0xcd, 0xd2, 0x96, 0x6a, 0xe6, 0xec, 0x0b, 0xb9, 0x76, 0xe2, 0xf4, 0xa7, 0xe2, 0x8e,
	0xbe, 0x5a, 0x67, 0x26, 0x9d, 0x84, 0x87, 0x61, 0x45, 0x57, 0x1f, 0xfe, 0x04, 0x00, 0x00, 0xff,
	0xff, 0xe1, 0x9a, 0x41, 0x54, 0xfd, 0x02, 0x00, 0x00,
}
