// Code generated by protoc-gen-go. DO NOT EDIT.
// source: testplans/test_retry.proto

package testplans

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	test_platform "go.chromium.org/chromiumos/infra/proto/go/test_platform"
	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 a config for tests to be retried automatically.
type SuiteRetryCfg struct {
	// Tag defines which suite this config set should apply.
	TestSuite string `protobuf:"bytes,1,opt,name=test_suite,json=testSuite,proto3" json:"test_suite,omitempty"`
	// Scenarios to retry for each build_target.
	SuiteScenarios       []*SuiteRetryCfg_Scenario        `protobuf:"bytes,3,rep,name=suite_scenarios,json=suiteScenarios,proto3" json:"suite_scenarios,omitempty"`
	BuilderScenarios     []*SuiteRetryCfg_BuilderScenario `protobuf:"bytes,4,rep,name=builder_scenarios,json=builderScenarios,proto3" json:"builder_scenarios,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                         `json:"-"`
	XXX_unrecognized     []byte                           `json:"-"`
	XXX_sizecache        int32                            `json:"-"`
}

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

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

var xxx_messageInfo_SuiteRetryCfg proto.InternalMessageInfo

func (m *SuiteRetryCfg) GetTestSuite() string {
	if m != nil {
		return m.TestSuite
	}
	return ""
}

func (m *SuiteRetryCfg) GetSuiteScenarios() []*SuiteRetryCfg_Scenario {
	if m != nil {
		return m.SuiteScenarios
	}
	return nil
}

func (m *SuiteRetryCfg) GetBuilderScenarios() []*SuiteRetryCfg_BuilderScenario {
	if m != nil {
		return m.BuilderScenarios
	}
	return nil
}

// Scenario defines the test failure conditions that trigger retry.
type SuiteRetryCfg_Scenario struct {
	// Name of the test.
	TestName string `protobuf:"bytes,1,opt,name=test_name,json=testName,proto3" json:"test_name,omitempty"`
	// Failure reason/summary. This field is a substring of the actual error
	// message. Ex: 'SSH connection failed' or 'DUT rebooted'.
	Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
	// Verdict of the test run.
	Verdict test_platform.TaskState_Verdict `protobuf:"varint,3,opt,name=verdict,proto3,enum=test_platform.TaskState_Verdict" json:"verdict,omitempty"`
	// Should the DUT/VM restart before retry?
	RequiresRestart      bool     `protobuf:"varint,4,opt,name=requires_restart,json=requiresRestart,proto3" json:"requires_restart,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_SuiteRetryCfg_Scenario proto.InternalMessageInfo

func (m *SuiteRetryCfg_Scenario) GetTestName() string {
	if m != nil {
		return m.TestName
	}
	return ""
}

func (m *SuiteRetryCfg_Scenario) GetReason() string {
	if m != nil {
		return m.Reason
	}
	return ""
}

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

func (m *SuiteRetryCfg_Scenario) GetRequiresRestart() bool {
	if m != nil {
		return m.RequiresRestart
	}
	return false
}

type SuiteRetryCfg_BuilderScenario struct {
	// Tag defines which builders this config set should apply.
	Builders             []string                  `protobuf:"bytes,1,rep,name=builders,proto3" json:"builders,omitempty"`
	Scenarios            []*SuiteRetryCfg_Scenario `protobuf:"bytes,2,rep,name=scenarios,proto3" json:"scenarios,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

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

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

var xxx_messageInfo_SuiteRetryCfg_BuilderScenario proto.InternalMessageInfo

func (m *SuiteRetryCfg_BuilderScenario) GetBuilders() []string {
	if m != nil {
		return m.Builders
	}
	return nil
}

func (m *SuiteRetryCfg_BuilderScenario) GetScenarios() []*SuiteRetryCfg_Scenario {
	if m != nil {
		return m.Scenarios
	}
	return nil
}

func init() {
	proto.RegisterType((*SuiteRetryCfg)(nil), "testplans.SuiteRetryCfg")
	proto.RegisterType((*SuiteRetryCfg_Scenario)(nil), "testplans.SuiteRetryCfg.Scenario")
	proto.RegisterType((*SuiteRetryCfg_BuilderScenario)(nil), "testplans.SuiteRetryCfg.BuilderScenario")
}

func init() { proto.RegisterFile("testplans/test_retry.proto", fileDescriptor_5e1b8044c4eb67ff) }

var fileDescriptor_5e1b8044c4eb67ff = []byte{
	// 351 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0xc1, 0x4a, 0xeb, 0x40,
	0x14, 0x25, 0x4d, 0xe9, 0x4b, 0xef, 0xe3, 0xb5, 0x7d, 0xb3, 0x90, 0x10, 0x29, 0x44, 0x57, 0x71,
	0x33, 0x81, 0x16, 0x37, 0x6e, 0x84, 0xba, 0x73, 0xe1, 0x22, 0x55, 0x17, 0x6e, 0xc2, 0xb4, 0x9d,
	0xc6, 0xd0, 0x26, 0x53, 0xef, 0x9d, 0x08, 0xfe, 0x90, 0x1f, 0xe7, 0x57, 0x48, 0x26, 0x9d, 0xd4,
	0x0a, 0x82, 0xbb, 0x9c, 0x73, 0xcf, 0x39, 0xb9, 0xf7, 0x30, 0x10, 0x68, 0x49, 0x7a, 0xb7, 0x15,
	0x25, 0xc5, 0xf5, 0x57, 0x8a, 0x52, 0xe3, 0x1b, 0xdf, 0xa1, 0xd2, 0x8a, 0xf5, 0xdb, 0x59, 0x30,
	0x36, 0xc3, 0xdd, 0x56, 0xe8, 0xb5, 0xc2, 0x22, 0xd6, 0x82, 0x36, 0xa4, 0x85, 0x96, 0x8d, 0xf2,
	0xfc, 0xc3, 0x85, 0x7f, 0xf3, 0x2a, 0xd7, 0x32, 0xa9, 0xed, 0x37, 0xeb, 0x8c, 0x8d, 0x01, 0x8c,
	0x85, 0x6a, 0xd6, 0x77, 0x42, 0x27, 0xea, 0x27, 0x26, 0xcf, 0xc8, 0xd8, 0x2d, 0x0c, 0xcd, 0x24,
	0xa5, 0xa5, 0x2c, 0x05, 0xe6, 0x8a, 0x7c, 0x37, 0x74, 0xa3, 0xbf, 0x93, 0x33, 0xde, 0xfe, 0x94,
	0x1f, 0x25, 0xf2, 0xf9, 0x5e, 0x99, 0x0c, 0x8c, 0xd3, 0x42, 0x62, 0x0f, 0xf0, 0x7f, 0x51, 0xe5,
	0xdb, 0x95, 0xc4, 0x2f, 0x69, 0x5d, 0x93, 0x16, 0xfd, 0x98, 0x36, 0x6b, 0x1c, 0x6d, 0xe8, 0x68,
	0x71, 0x4c, 0x50, 0xf0, 0xee, 0x80, 0x67, 0x11, 0x3b, 0x05, 0xb3, 0x7c, 0x5a, 0x8a, 0xc2, 0x5e,
	0xe3, 0xd5, 0xc4, 0x9d, 0x28, 0x24, 0x3b, 0x81, 0x1e, 0x4a, 0x41, 0xaa, 0xf4, 0x3b, 0x66, 0xb2,
	0x47, 0xec, 0x0a, 0xfe, 0xbc, 0x4a, 0x5c, 0xe5, 0x4b, 0xed, 0xbb, 0xa1, 0x13, 0x0d, 0x26, 0x21,
	0x3f, 0xaa, 0x91, 0xdf, 0x0b, 0xda, 0xcc, 0x4d, 0x8d, 0x8f, 0x8d, 0x2e, 0xb1, 0x06, 0x76, 0x01,
	0x23, 0x94, 0x2f, 0x55, 0x8e, 0x92, 0x52, 0x94, 0xa4, 0x05, 0x6a, 0xbf, 0x1b, 0x3a, 0x91, 0x97,
	0x0c, 0x2d, 0x9f, 0x34, 0x74, 0x50, 0xc2, 0xf0, 0xdb, 0x35, 0x2c, 0x00, 0x6f, 0x7f, 0x0f, 0xf9,
	0x4e, 0xe8, 0xd6, 0xdb, 0x5a, 0xcc, 0xae, 0xa1, 0x7f, 0xa8, 0xa9, 0xf3, 0xdb, 0xd2, 0x0f, 0x9e,
	0xd9, 0xe5, 0xd3, 0x34, 0x53, 0x7c, 0xf9, 0x8c, 0xaa, 0xc8, 0xab, 0x82, 0x2b, 0xcc, 0x62, 0x0b,
	0x14, 0xc5, 0x79, 0xb9, 0x46, 0x11, 0x9b, 0x67, 0x11, 0x67, 0x2a, 0x6e, 0x83, 0x17, 0x3d, 0xc3,
	0x4d, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x3e, 0x43, 0x14, 0xd3, 0x72, 0x02, 0x00, 0x00,
}
