// Code generated by protoc-gen-go. DO NOT EDIT.
// source: test_platform/taskstate.proto

package test_platform

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

type TaskState_LifeCycleMask int32

const (
	TaskState_LIFE_CYCLE_MASK_UNSPECIFIED TaskState_LifeCycleMask = 0
	// Mask for LifeCycle values in which a task started running.
	TaskState_LIFE_CYCLE_MASK_STARTED TaskState_LifeCycleMask = 16
	// Mask for LifeCycle values in which a task completed running.
	TaskState_LIFE_CYCLE_MASK_COMPLETED TaskState_LifeCycleMask = 32
	// Mask for LifeCycle values in which a task is in its final state.
	TaskState_LIFE_CYCLE_MASK_FINAL TaskState_LifeCycleMask = 64
)

var TaskState_LifeCycleMask_name = map[int32]string{
	0:  "LIFE_CYCLE_MASK_UNSPECIFIED",
	16: "LIFE_CYCLE_MASK_STARTED",
	32: "LIFE_CYCLE_MASK_COMPLETED",
	64: "LIFE_CYCLE_MASK_FINAL",
}

var TaskState_LifeCycleMask_value = map[string]int32{
	"LIFE_CYCLE_MASK_UNSPECIFIED": 0,
	"LIFE_CYCLE_MASK_STARTED":     16,
	"LIFE_CYCLE_MASK_COMPLETED":   32,
	"LIFE_CYCLE_MASK_FINAL":       64,
}

func (x TaskState_LifeCycleMask) String() string {
	return proto.EnumName(TaskState_LifeCycleMask_name, int32(x))
}

func (TaskState_LifeCycleMask) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_374da6ddfbaa865b, []int{0, 0}
}

type TaskState_LifeCycle int32

const (
	TaskState_LIFE_CYCLE_UNSPECIFIED TaskState_LifeCycle = 0
	// Waiting to start.
	TaskState_LIFE_CYCLE_PENDING TaskState_LifeCycle = 1
	// Running.
	TaskState_LIFE_CYCLE_RUNNING TaskState_LifeCycle = 16
	// Ran to completion without being cancelled externally, regardless
	// of whether it succeeded or failed.
	TaskState_LIFE_CYCLE_COMPLETED TaskState_LifeCycle = 112
	// Never got a chance to run, cancelled externally.
	TaskState_LIFE_CYCLE_CANCELLED TaskState_LifeCycle = 65
	// Never got a chance to run, rejected due to no capacity.
	TaskState_LIFE_CYCLE_REJECTED TaskState_LifeCycle = 66
	// Started running but was cancelled externally while running.
	TaskState_LIFE_CYCLE_ABORTED TaskState_LifeCycle = 80
)

var TaskState_LifeCycle_name = map[int32]string{
	0:   "LIFE_CYCLE_UNSPECIFIED",
	1:   "LIFE_CYCLE_PENDING",
	16:  "LIFE_CYCLE_RUNNING",
	112: "LIFE_CYCLE_COMPLETED",
	65:  "LIFE_CYCLE_CANCELLED",
	66:  "LIFE_CYCLE_REJECTED",
	80:  "LIFE_CYCLE_ABORTED",
}

var TaskState_LifeCycle_value = map[string]int32{
	"LIFE_CYCLE_UNSPECIFIED": 0,
	"LIFE_CYCLE_PENDING":     1,
	"LIFE_CYCLE_RUNNING":     16,
	"LIFE_CYCLE_COMPLETED":   112,
	"LIFE_CYCLE_CANCELLED":   65,
	"LIFE_CYCLE_REJECTED":    66,
	"LIFE_CYCLE_ABORTED":     80,
}

func (x TaskState_LifeCycle) String() string {
	return proto.EnumName(TaskState_LifeCycle_name, int32(x))
}

func (TaskState_LifeCycle) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_374da6ddfbaa865b, []int{0, 1}
}

type TaskState_Verdict int32

const (
	// The task produced no usable verdict (possibly because it never
	// ran, or never finished, or the results were unparseable).
	//
	// Under most circumstances, this should be treated as a failure or
	// an infrastructure failure.
	TaskState_VERDICT_UNSPECIFIED TaskState_Verdict = 0
	// The task produced a definitive verdict: it passed.
	TaskState_VERDICT_PASSED TaskState_Verdict = 1
	// The task produced a definitive verdict: it failed.
	TaskState_VERDICT_FAILED TaskState_Verdict = 2
	// The task definitively produced no verdict (for instance, because
	// the test is irrelevant in the given environment).
	//
	// Under most circumstances, this should be treated as a passing
	// (but uninteresting).
	TaskState_VERDICT_NO_VERDICT TaskState_Verdict = 3
	// The task failed, but passed after one or more retries.
	TaskState_VERDICT_PASSED_ON_RETRY TaskState_Verdict = 4
)

var TaskState_Verdict_name = map[int32]string{
	0: "VERDICT_UNSPECIFIED",
	1: "VERDICT_PASSED",
	2: "VERDICT_FAILED",
	3: "VERDICT_NO_VERDICT",
	4: "VERDICT_PASSED_ON_RETRY",
}

var TaskState_Verdict_value = map[string]int32{
	"VERDICT_UNSPECIFIED":     0,
	"VERDICT_PASSED":          1,
	"VERDICT_FAILED":          2,
	"VERDICT_NO_VERDICT":      3,
	"VERDICT_PASSED_ON_RETRY": 4,
}

func (x TaskState_Verdict) String() string {
	return proto.EnumName(TaskState_Verdict_name, int32(x))
}

func (TaskState_Verdict) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_374da6ddfbaa865b, []int{0, 2}
}

type TaskState struct {
	LifeCycle TaskState_LifeCycle `protobuf:"varint,1,opt,name=life_cycle,json=lifeCycle,proto3,enum=test_platform.TaskState_LifeCycle" json:"life_cycle,omitempty"`
	// Verdict describes whether the task passed, failed, or had some other
	// indefinite verdict.
	Verdict              TaskState_Verdict `protobuf:"varint,2,opt,name=verdict,proto3,enum=test_platform.TaskState_Verdict" json:"verdict,omitempty"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_TaskState proto.InternalMessageInfo

func (m *TaskState) GetLifeCycle() TaskState_LifeCycle {
	if m != nil {
		return m.LifeCycle
	}
	return TaskState_LIFE_CYCLE_UNSPECIFIED
}

func (m *TaskState) GetVerdict() TaskState_Verdict {
	if m != nil {
		return m.Verdict
	}
	return TaskState_VERDICT_UNSPECIFIED
}

func init() {
	proto.RegisterEnum("test_platform.TaskState_LifeCycleMask", TaskState_LifeCycleMask_name, TaskState_LifeCycleMask_value)
	proto.RegisterEnum("test_platform.TaskState_LifeCycle", TaskState_LifeCycle_name, TaskState_LifeCycle_value)
	proto.RegisterEnum("test_platform.TaskState_Verdict", TaskState_Verdict_name, TaskState_Verdict_value)
	proto.RegisterType((*TaskState)(nil), "test_platform.TaskState")
}

func init() { proto.RegisterFile("test_platform/taskstate.proto", fileDescriptor_374da6ddfbaa865b) }

var fileDescriptor_374da6ddfbaa865b = []byte{
	// 397 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x52, 0x4f, 0x8f, 0x93, 0x40,
	0x14, 0x97, 0x75, 0xe3, 0xa6, 0x2f, 0xd9, 0xcd, 0x64, 0xd4, 0xdd, 0xae, 0x9b, 0xc6, 0x86, 0x93,
	0x27, 0x48, 0xf4, 0x60, 0xf4, 0xe4, 0x74, 0x18, 0x0c, 0x4a, 0x07, 0x02, 0xb4, 0x49, 0xbd, 0x4c,
	0x10, 0xa1, 0x92, 0x52, 0xa7, 0x81, 0xd1, 0xc4, 0x93, 0x47, 0xbf, 0x94, 0x1f, 0xc3, 0x0f, 0x64,
	0x06, 0x4b, 0x05, 0x12, 0x6f, 0x6f, 0x7e, 0x7f, 0xde, 0xfb, 0xcd, 0xcb, 0x83, 0x99, 0xca, 0x1b,
	0x25, 0x0e, 0x55, 0xaa, 0x0a, 0x59, 0xef, 0x6d, 0x95, 0x36, 0xbb, 0x46, 0xa5, 0x2a, 0xb7, 0x0e,
	0xb5, 0x54, 0x12, 0x5f, 0x0e, 0x68, 0xf3, 0xf7, 0x39, 0x4c, 0x92, 0xb4, 0xd9, 0xc5, 0x5a, 0x82,
	0x09, 0x40, 0x55, 0x16, 0xb9, 0xc8, 0xbe, 0x67, 0x55, 0x3e, 0x35, 0xe6, 0xc6, 0xb3, 0xab, 0xe7,
	0xa6, 0x35, 0x70, 0x58, 0x27, 0xb5, 0xe5, 0x97, 0x45, 0x4e, 0xb5, 0x32, 0x9a, 0x54, 0x5d, 0x89,
	0x5f, 0xc3, 0xc5, 0xb7, 0xbc, 0xfe, 0x54, 0x66, 0x6a, 0x7a, 0xd6, 0xfa, 0xe7, 0xff, 0xf5, 0xaf,
	0xff, 0xea, 0xa2, 0xce, 0x60, 0xfe, 0x34, 0xe0, 0xf2, 0xd4, 0x74, 0x99, 0x36, 0x3b, 0xfc, 0x14,
	0xee, 0x7c, 0xcf, 0x65, 0x82, 0x6e, 0xa8, 0xcf, 0xc4, 0x92, 0xc4, 0xef, 0xc5, 0x8a, 0xc7, 0x21,
	0xa3, 0x9e, 0xeb, 0x31, 0x07, 0xdd, 0xc3, 0x77, 0x70, 0x33, 0x16, 0xc4, 0x09, 0x89, 0x12, 0xe6,
	0x20, 0x84, 0x67, 0x70, 0x3b, 0x26, 0x69, 0xb0, 0x0c, 0x7d, 0xa6, 0xe9, 0x39, 0xbe, 0x85, 0xc7,
	0x63, 0xda, 0xf5, 0x38, 0xf1, 0xd1, 0x1b, 0xf3, 0x97, 0x01, 0x93, 0x53, 0x12, 0xfc, 0x04, 0xae,
	0x7b, 0xc2, 0x61, 0x80, 0x6b, 0xc0, 0x3d, 0x2e, 0x64, 0xdc, 0xf1, 0xf8, 0x5b, 0x64, 0x8c, 0xf0,
	0x68, 0xc5, 0xb9, 0xc6, 0x11, 0x9e, 0xc2, 0xa3, 0x1e, 0xfe, 0x2f, 0xce, 0x61, 0xcc, 0x10, 0x4e,
	0x99, 0xef, 0x33, 0x07, 0x11, 0x7c, 0x03, 0x0f, 0xfb, 0xbd, 0xd8, 0x3b, 0x46, 0xb5, 0x65, 0x31,
	0x1a, 0x42, 0x16, 0x41, 0xfb, 0xf1, 0xd0, 0xfc, 0x01, 0x17, 0xc7, 0xe5, 0x6a, 0xef, 0x9a, 0x45,
	0x8e, 0x47, 0x93, 0x51, 0x70, 0x0c, 0x57, 0x1d, 0x11, 0x92, 0x38, 0x66, 0x0e, 0x32, 0xfa, 0x98,
	0x4b, 0x3c, 0x3d, 0xfc, 0x4c, 0xcf, 0xe8, 0x30, 0x1e, 0x88, 0x63, 0x89, 0xee, 0xeb, 0xcd, 0x0f,
	0xfd, 0x22, 0xe0, 0x22, 0x62, 0x49, 0xb4, 0x41, 0xe7, 0x8b, 0x57, 0x1f, 0x5e, 0x6e, 0xa5, 0x95,
	0x7d, 0xae, 0xe5, 0xbe, 0xfc, 0xba, 0xb7, 0x64, 0xbd, 0xb5, 0xbb, 0x87, 0x6c, 0xec, 0xf2, 0x4b,
	0x51, 0xa7, 0x76, 0x7b, 0x8f, 0xf6, 0x56, 0xda, 0x83, 0xfb, 0xf8, 0xf8, 0xa0, 0xc5, 0x5f, 0xfc,
	0x09, 0x00, 0x00, 0xff, 0xff, 0x50, 0xa7, 0x60, 0x34, 0xc8, 0x02, 0x00, 0x00,
}
