func (x *TestGroup) GetAlertMailToAddresses() string {
	if x != nil {
		return x.AlertMailToAddresses
	}
	return ""
}
Deprecated: Do not use.
package config
import (
	custom_evaluator "github.com/GoogleCloudPlatform/testgrid/pb/custom_evaluator"
	proto "github.com/golang/protobuf/proto"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)
const (
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
const _ = proto.ProtoPackageIsVersion4
type TestGroup_TestsName int32
const (
	TestGroup_TESTS_NAME_UNSPECIFIED TestGroup_TestsName = 0
	TestGroup_TESTS_NAME_IGNORE      TestGroup_TestsName = 1
	TestGroup_TESTS_NAME_REPLACE     TestGroup_TestsName = 2
	TestGroup_TESTS_NAME_APPEND      TestGroup_TestsName = 3
)
var (
	TestGroup_TestsName_name = map[int32]string{
		0: "TESTS_NAME_UNSPECIFIED",
		1: "TESTS_NAME_IGNORE",
		2: "TESTS_NAME_REPLACE",
		3: "TESTS_NAME_APPEND",
	}
	TestGroup_TestsName_value = map[string]int32{
		"TESTS_NAME_UNSPECIFIED": 0,
		"TESTS_NAME_IGNORE":      1,
		"TESTS_NAME_REPLACE":     2,
		"TESTS_NAME_APPEND":      3,
	}
)
func (x TestGroup_TestsName) Enum() *TestGroup_TestsName {
	p := new(TestGroup_TestsName)
	*p = x
	return p
}
func (x TestGroup_TestsName) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TestGroup_TestsName) Descriptor() protoreflect.EnumDescriptor {
	return file_config_proto_enumTypes[0].Descriptor()
}
func (TestGroup_TestsName) Type() protoreflect.EnumType {
	return &file_config_proto_enumTypes[0]
}
func (x TestGroup_TestsName) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}
func (TestGroup_TestsName) EnumDescriptor() ([]byte, []int) {
	return file_config_proto_rawDescGZIP(), []int{2, 0}
}
type TestGroup_FallbackGrouping int32
const (
	TestGroup_FALLBACK_GROUPING_NONE   TestGroup_FallbackGrouping = 0
	TestGroup_FALLBACK_GROUPING_DATE   TestGroup_FallbackGrouping = 1
	TestGroup_FALLBACK_GROUPING_LABELS TestGroup_FallbackGrouping = 2
	TestGroup_FALLBACK_GROUPING_ID     TestGroup_FallbackGrouping = 3
	TestGroup_FALLBACK_GROUPING_BUILD  TestGroup_FallbackGrouping = 4
	TestGroup_FALLBACK_GROUPING_CONFIGURATION_VALUE TestGroup_FallbackGrouping = 5
)
var (
	TestGroup_FallbackGrouping_name = map[int32]string{
		0: "FALLBACK_GROUPING_NONE",
		1: "FALLBACK_GROUPING_DATE",
		2: "FALLBACK_GROUPING_LABELS",
		3: "FALLBACK_GROUPING_ID",
		4: "FALLBACK_GROUPING_BUILD",
		5: "FALLBACK_GROUPING_CONFIGURATION_VALUE",
	}
	TestGroup_FallbackGrouping_value = map[string]int32{
		"FALLBACK_GROUPING_NONE":                0,
		"FALLBACK_GROUPING_DATE":                1,
		"FALLBACK_GROUPING_LABELS":              2,
		"FALLBACK_GROUPING_ID":                  3,
		"FALLBACK_GROUPING_BUILD":               4,
		"FALLBACK_GROUPING_CONFIGURATION_VALUE": 5,
	}
)
func (x TestGroup_FallbackGrouping) Enum() *TestGroup_FallbackGrouping {
	p := new(TestGroup_FallbackGrouping)
	*p = x
	return p
}
func (x TestGroup_FallbackGrouping) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TestGroup_FallbackGrouping) Descriptor() protoreflect.EnumDescriptor {
	return file_config_proto_enumTypes[1].Descriptor()
}
func (TestGroup_FallbackGrouping) Type() protoreflect.EnumType {
	return &file_config_proto_enumTypes[1]
}
func (x TestGroup_FallbackGrouping) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}
func (TestGroup_FallbackGrouping) EnumDescriptor() ([]byte, []int) {
	return file_config_proto_rawDescGZIP(), []int{2, 1}
}
type TestGroup_PrimaryGrouping int32
const (
	TestGroup_PRIMARY_GROUPING_NONE  TestGroup_PrimaryGrouping = 0
	TestGroup_PRIMARY_GROUPING_BUILD TestGroup_PrimaryGrouping = 1
)
var (
	TestGroup_PrimaryGrouping_name = map[int32]string{
		0: "PRIMARY_GROUPING_NONE",
		1: "PRIMARY_GROUPING_BUILD",
	}
	TestGroup_PrimaryGrouping_value = map[string]int32{
		"PRIMARY_GROUPING_NONE":  0,
		"PRIMARY_GROUPING_BUILD": 1,
	}
)
func (x TestGroup_PrimaryGrouping) Enum() *TestGroup_PrimaryGrouping {
	p := new(TestGroup_PrimaryGrouping)
	*p = x
	return p
}
func (x TestGroup_PrimaryGrouping) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TestGroup_PrimaryGrouping) Descriptor() protoreflect.EnumDescriptor {
	return file_config_proto_enumTypes[2].Descriptor()
}
func (TestGroup_PrimaryGrouping) Type() protoreflect.EnumType {
	return &file_config_proto_enumTypes[2]
}
func (x TestGroup_PrimaryGrouping) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}
func (TestGroup_PrimaryGrouping) EnumDescriptor() ([]byte, []int) {
	return file_config_proto_rawDescGZIP(), []int{2, 2}
}
type AutoBugOptions_Priority int32
const (
	AutoBugOptions_PRIORITY_UNSPECIFIED AutoBugOptions_Priority = 0
	AutoBugOptions_P0 AutoBugOptions_Priority = 1
	AutoBugOptions_P1 AutoBugOptions_Priority = 2
	AutoBugOptions_P2 AutoBugOptions_Priority = 3
	AutoBugOptions_P3 AutoBugOptions_Priority = 4
	AutoBugOptions_P4 AutoBugOptions_Priority = 5
)
var (
	AutoBugOptions_Priority_name = map[int32]string{
		0: "PRIORITY_UNSPECIFIED",
		1: "P0",
		2: "P1",
		3: "P2",
		4: "P3",
		5: "P4",
	}
	AutoBugOptions_Priority_value = map[string]int32{
		"PRIORITY_UNSPECIFIED": 0,
		"P0":                   1,
		"P1":                   2,
		"P2":                   3,
		"P3":                   4,
		"P4":                   5,
	}
)
func (x AutoBugOptions_Priority) Enum() *AutoBugOptions_Priority {
	p := new(AutoBugOptions_Priority)
	*p = x
	return p
}
func (x AutoBugOptions_Priority) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (AutoBugOptions_Priority) Descriptor() protoreflect.EnumDescriptor {
	return file_config_proto_enumTypes[3].Descriptor()
}
func (AutoBugOptions_Priority) Type() protoreflect.EnumType {
	return &file_config_proto_enumTypes[3]
}
func (x AutoBugOptions_Priority) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}
func (AutoBugOptions_Priority) EnumDescriptor() ([]byte, []int) {
	return file_config_proto_rawDescGZIP(), []int{5, 0}
}
type TestNameConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
	NameElements []*TestNameConfig_NameElement `protobuf:"bytes,1,rep,name=name_elements,json=nameElements,proto3" json:"name_elements,omitempty"`
	NameFormat string `protobuf:"bytes,2,opt,name=name_format,json=nameFormat,proto3" json:"name_format,omitempty"`
}
func (x *TestNameConfig) Reset() {
	*x = TestNameConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_config_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}
func (x *TestNameConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}
func (*TestNameConfig) ProtoMessage() {}
func (x *TestNameConfig) ProtoReflect() protoreflect.Message {
	mi := &file_config_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}
func (*TestNameConfig) Descriptor() ([]byte, []int) {
	return file_config_proto_rawDescGZIP(), []int{0}
}
func (x *TestNameConfig) GetNameElements() []*TestNameConfig_NameElement {
	if x != nil {
		return x.NameElements
	}
	return nil
}
func (x *TestNameConfig) GetNameFormat() string {
	if x != nil {
		return x.NameFormat
	}
	return ""
}
type Notification struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
	Summary string `protobuf:"bytes,1,opt,name=summary,proto3" json:"summary,omitempty"`
	ContextLink string `protobuf:"bytes,2,opt,name=context_link,json=contextLink,proto3" json:"context_link,omitempty"`
}
func (x *Notification) Reset() {
	*x = Notification{}
	if protoimpl.UnsafeEnabled {
		mi := &file_config_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}
func (x *Notification) String() string {
	return protoimpl.X.MessageStringOf(x)
}
func (*Notification) ProtoMessage() {}
func (x *Notification) ProtoReflect() protoreflect.Message {
	mi := &file_config_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}
func (*Notification) Descriptor() ([]byte, []int) {
	return file_config_proto_rawDescGZIP(), []int{1}
}
func (x *Notification) GetSummary() string {
	if x != nil {
		return x.Summary
	}
	return ""
}
func (x *Notification) GetContextLink() string {
	if x != nil {
		return x.ContextLink
	}
	return ""
}
type TestGroup struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	GcsPrefix string `protobuf:"bytes,2,opt,name=gcs_prefix,json=gcsPrefix,proto3" json:"gcs_prefix,omitempty"`
	DaysOfResults int32 `protobuf:"varint,3,opt,name=days_of_results,json=daysOfResults,proto3" json:"days_of_results,omitempty"`
	IgnorePending bool `protobuf:"varint,4,opt,name=ignore_pending,json=ignorePending,proto3" json:"ignore_pending,omitempty"`
	IgnoreBuilt bool `protobuf:"varint,5,opt,name=ignore_built,json=ignoreBuilt,proto3" json:"ignore_built,omitempty"`
	TestsNamePolicy TestGroup_TestsName `protobuf:"varint,6,opt,name=tests_name_policy,json=testsNamePolicy,proto3,enum=TestGroup_TestsName" json:"tests_name_policy,omitempty"`
	IgnoreTestSubstring []string                  `protobuf:"bytes,8,rep,name=ignore_test_substring,json=ignoreTestSubstring,proto3" json:"ignore_test_substring,omitempty"`
	ColumnHeader        []*TestGroup_ColumnHeader `protobuf:"bytes,9,rep,name=column_header,json=columnHeader,proto3" json:"column_header,omitempty"`
	FallbackGrouping TestGroup_FallbackGrouping `protobuf:"varint,10,opt,name=fallback_grouping,json=fallbackGrouping,proto3,enum=TestGroup_FallbackGrouping" json:"fallback_grouping,omitempty"`
	AlertStaleResultsHours int32 `protobuf:"varint,11,opt,name=alert_stale_results_hours,json=alertStaleResultsHours,proto3" json:"alert_stale_results_hours,omitempty"`
	NumFailuresToAlert int32 `protobuf:"varint,12,opt,name=num_failures_to_alert,json=numFailuresToAlert,proto3" json:"num_failures_to_alert,omitempty"`
	BugComponent int32 `protobuf:"varint,13,opt,name=bug_component,json=bugComponent,proto3" json:"bug_component,omitempty"`
	CodeSearchPath string `protobuf:"bytes,14,opt,name=code_search_path,json=codeSearchPath,proto3" json:"code_search_path,omitempty"`
	NumColumnsRecent int32 `protobuf:"varint,15,opt,name=num_columns_recent,json=numColumnsRecent,proto3" json:"num_columns_recent,omitempty"`
	UseTestMetadata bool `protobuf:"varint,16,opt,name=use_test_metadata,json=useTestMetadata,proto3" json:"use_test_metadata,omitempty"`
	AlertMailToAddresses string `protobuf:"bytes,17,opt,name=alert_mail_to_addresses,json=alertMailToAddresses,proto3" json:"alert_mail_to_addresses,omitempty"`
	AlertMailSubject string `protobuf:"bytes,18,opt,name=alert_mail_subject,json=alertMailSubject,proto3" json:"alert_mail_subject,omitempty"`
	AlertMailFailureMessage string `protobuf:"bytes,19,opt,name=alert_mail_failure_message,json=alertMailFailureMessage,proto3" json:"alert_mail_failure_message,omitempty"`
	AlertMailDebugUrl string `protobuf:"bytes,20,opt,name=alert_mail_debug_url,json=alertMailDebugUrl,proto3" json:"alert_mail_debug_url,omitempty"`
	MinElapsedMinutesBetweenMails int32 `protobuf:"varint,21,opt,name=min_elapsed_minutes_between_mails,json=minElapsedMinutesBetweenMails,proto3" json:"min_elapsed_minutes_between_mails,omitempty"`
	EnableFlakyStatus bool `protobuf:"varint,23,opt,name=enable_flaky_status,json=enableFlakyStatus,proto3" json:"enable_flaky_status,omitempty"`
	DisableMergedStatus bool `protobuf:"varint,60,opt,name=disable_merged_status,json=disableMergedStatus,proto3" json:"disable_merged_status,omitempty"`
	UseKubernetesClient bool `protobuf:"varint,24,opt,name=use_kubernetes_client,json=useKubernetesClient,proto3" json:"use_kubernetes_client,omitempty"`
	DisableProwjobAnalysis bool `protobuf:"varint,62,opt,name=disable_prowjob_analysis,json=disableProwjobAnalysis,proto3" json:"disable_prowjob_analysis,omitempty"`
	IsExternal bool `protobuf:"varint,25,opt,name=is_external,json=isExternal,proto3" json:"is_external,omitempty"`
	TestNameConfig *TestNameConfig `protobuf:"bytes,26,opt,name=test_name_config,json=testNameConfig,proto3" json:"test_name_config,omitempty"`
	Notifications []*Notification `protobuf:"bytes,27,rep,name=notifications,proto3" json:"notifications,omitempty"`
	PrimaryGrouping TestGroup_PrimaryGrouping `protobuf:"varint,29,opt,name=primary_grouping,json=primaryGrouping,proto3,enum=TestGroup_PrimaryGrouping" json:"primary_grouping,omitempty"`
	EnableTestMethods bool `protobuf:"varint,30,opt,name=enable_test_methods,json=enableTestMethods,proto3" json:"enable_test_methods,omitempty"`
	TestAnnotations []*TestGroup_TestAnnotation `protobuf:"bytes,31,rep,name=test_annotations,json=testAnnotations,proto3" json:"test_annotations,omitempty"`
	MaxTestMethodsPerTest int32 `protobuf:"varint,32,opt,name=max_test_methods_per_test,json=maxTestMethodsPerTest,proto3" json:"max_test_methods_per_test,omitempty"`
	TestMetadataOptions []*TestMetadataOptions `protobuf:"bytes,34,rep,name=test_metadata_options,json=testMetadataOptions,proto3" json:"test_metadata_options,omitempty"`
	TestTagPattern string `protobuf:"bytes,35,opt,name=test_tag_pattern,json=testTagPattern,proto3" json:"test_tag_pattern,omitempty"`
	AutoBugOptions *AutoBugOptions `protobuf:"bytes,36,opt,name=auto_bug_options,json=autoBugOptions,proto3" json:"auto_bug_options,omitempty"`
	MaxTestRuntimeHours int32 `protobuf:"varint,37,opt,name=max_test_runtime_hours,json=maxTestRuntimeHours,proto3" json:"max_test_runtime_hours,omitempty"`
	NumPassesToDisableAlert int32 `protobuf:"varint,38,opt,name=num_passes_to_disable_alert,json=numPassesToDisableAlert,proto3" json:"num_passes_to_disable_alert,omitempty"`
	LinkBugsByGroup bool `protobuf:"varint,39,opt,name=link_bugs_by_group,json=linkBugsByGroup,proto3" json:"link_bugs_by_group,omitempty"`
	TestMethodProperties []*TestGroup_KeyValue `protobuf:"bytes,41,rep,name=test_method_properties,json=testMethodProperties,proto3" json:"test_method_properties,omitempty"`
	GatherBugs bool `protobuf:"varint,42,opt,name=gather_bugs,json=gatherBugs,proto3" json:"gather_bugs,omitempty"`
	ShortTextMetric string `protobuf:"bytes,43,opt,name=short_text_metric,json=shortTextMetric,proto3" json:"short_text_metric,omitempty"`
	LinkBugsByTestMethods bool `protobuf:"varint,45,opt,name=link_bugs_by_test_methods,json=linkBugsByTestMethods,proto3" json:"link_bugs_by_test_methods,omitempty"`
	TestMethodMatchRegex string `protobuf:"bytes,46,opt,name=test_method_match_regex,json=testMethodMatchRegex,proto3" json:"test_method_match_regex,omitempty"`
	TestMethodUnmatchRegex string `protobuf:"bytes,61,opt,name=test_method_unmatch_regex,json=testMethodUnmatchRegex,proto3" json:"test_method_unmatch_regex,omitempty"`
	UseFullMethodNames bool `protobuf:"varint,47,opt,name=use_full_method_names,json=useFullMethodNames,proto3" json:"use_full_method_names,omitempty"`
	FallbackGroupingConfigurationValue string `protobuf:"bytes,49,opt,name=fallback_grouping_configuration_value,json=fallbackGroupingConfigurationValue,proto3" json:"fallback_grouping_configuration_value,omitempty"`
	ResultSource *TestGroup_ResultSource `protobuf:"bytes,50,opt,name=result_source,json=resultSource,proto3" json:"result_source,omitempty"`
	CustomEvaluatorRuleSet *custom_evaluator.RuleSet `protobuf:"bytes,51,opt,name=custom_evaluator_rule_set,json=customEvaluatorRuleSet,proto3" json:"custom_evaluator_rule_set,omitempty"`
	ReadStateFromStorage bool `protobuf:"varint,52,opt,name=read_state_from_storage,json=readStateFromStorage,proto3" json:"read_state_from_storage,omitempty"`
	IgnoreOldResults bool `protobuf:"varint,53,opt,name=ignore_old_results,json=ignoreOldResults,proto3" json:"ignore_old_results,omitempty"`
	IgnoreSkip bool `protobuf:"varint,54,opt,name=ignore_skip,json=ignoreSkip,proto3" json:"ignore_skip,omitempty"`
	BuildOverrideStrftime string `protobuf:"bytes,55,opt,name=build_override_strftime,json=buildOverrideStrftime,proto3" json:"build_override_strftime,omitempty"`
	UserProperty string `protobuf:"bytes,56,opt,name=user_property,json=userProperty,proto3" json:"user_property,omitempty"`
}
func (x *TestGroup) Reset() {
	*x = TestGroup{}
	if protoimpl.UnsafeEnabled {
		mi := &file_config_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}
func (x *TestGroup) String() string {
	return protoimpl.X.MessageStringOf(x)
}
func (*TestGroup) ProtoMessage() {}
func (x *TestGroup) ProtoReflect() protoreflect.Message {
	mi := &file_config_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}
func (*TestGroup) Descriptor() ([]byte, []int) {
	return file_config_proto_rawDescGZIP(), []int{2}
}
func (x *TestGroup) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}
func (x *TestGroup) GetGcsPrefix() string {
	if x != nil {
		return x.GcsPrefix
	}
	return ""
}
func (x *TestGroup) GetDaysOfResults() int32 {
	if x != nil {
		return x.DaysOfResults
	}
	return 0
}
func (x *TestGroup) GetIgnorePending() bool {
	if x != nil {
		return x.IgnorePending
	}
	return false
}
func (x *TestGroup) GetIgnoreBuilt() bool {
	if x != nil {
		return x.IgnoreBuilt
	}
	return false
}
func (x *TestGroup) GetTestsNamePolicy() TestGroup_TestsName {
	if x != nil {
		return x.TestsNamePolicy
	}
	return TestGroup_TESTS_NAME_UNSPECIFIED
}
func (x *TestGroup) GetIgnoreTestSubstring() []string {
	if x != nil {
		return x.IgnoreTestSubstring
	}
	return nil
}
func (x *TestGroup) GetColumnHeader() []*TestGroup_ColumnHeader {
	if x != nil {
		return x.ColumnHeader
	}
	return nil
}
func (x *TestGroup) GetFallbackGrouping() TestGroup_FallbackGrouping {
	if x != nil {
		return x.FallbackGrouping
	}
	return TestGroup_FALLBACK_GROUPING_NONE
}
func (x *TestGroup) GetAlertStaleResultsHours() int32 {
	if x != nil {
		return x.AlertStaleResultsHours
	}
	return 0
}
func (x *TestGroup) GetNumFailuresToAlert() int32 {
	if x != nil {
		return x.NumFailuresToAlert
	}
	return 0
}
func (x *TestGroup) GetBugComponent() int32 {
	if x != nil {
		return x.BugComponent
	}
	return 0
}
func (x *TestGroup) GetCodeSearchPath() string {
	if x != nil {
		return x.CodeSearchPath
	}
	return ""
}
func (x *TestGroup) GetNumColumnsRecent() int32 {
	if x != nil {
		return x.NumColumnsRecent
	}
	return 0
}
func (x *TestGroup) GetUseTestMetadata() bool {
	if x != nil {
		return x.UseTestMetadata
	}
	return false
}