github.com/GoogleCloudPlatform/testgrid@v0.0.174/pb/custom_evaluator/custom_evaluator.pb.go (about)

     1  /*
     2  Copyright The TestGrid Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  // Code generated by protoc-gen-go. DO NOT EDIT.
    18  // versions:
    19  // 	protoc-gen-go v1.28.0
    20  // 	protoc        v3.21.1
    21  // source: custom_evaluator.proto
    22  
    23  package custom_evaluator
    24  
    25  import (
    26  	test_status "github.com/GoogleCloudPlatform/testgrid/pb/test_status"
    27  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    28  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    29  	reflect "reflect"
    30  	sync "sync"
    31  )
    32  
    33  const (
    34  	// Verify that this generated code is sufficiently up-to-date.
    35  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    36  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    37  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    38  )
    39  
    40  type Comparison_Operator int32
    41  
    42  const (
    43  	// Unknown. May assume OP_EQ for legacy purposes, but should warn.
    44  	Comparison_OP_UNKNOWN Comparison_Operator = 0
    45  	// Equals operator.
    46  	Comparison_OP_EQ Comparison_Operator = 1
    47  	// Not equals operator.
    48  	Comparison_OP_NE Comparison_Operator = 2
    49  	// Comparison value less than TestResult's value
    50  	Comparison_OP_LT Comparison_Operator = 3
    51  	// Comparison value less than or equal TestResult's value
    52  	Comparison_OP_LE Comparison_Operator = 4
    53  	// Comparison value greater than TestResult's value
    54  	Comparison_OP_GT Comparison_Operator = 5
    55  	// Comparison value greater than or equal TestResult's value
    56  	Comparison_OP_GE Comparison_Operator = 6
    57  	// Regex match of Comparison.value string with the TestResult's evaluation
    58  	// value string.
    59  	Comparison_OP_REGEX Comparison_Operator = 7
    60  	// Checks to see if the evaluation value string starts with the
    61  	// Comparison.value string
    62  	Comparison_OP_STARTS_WITH Comparison_Operator = 8
    63  	// Checks to see if the evaluation value string is contained within the
    64  	// Comparison.value string
    65  	Comparison_OP_CONTAINS Comparison_Operator = 9
    66  )
    67  
    68  // Enum value maps for Comparison_Operator.
    69  var (
    70  	Comparison_Operator_name = map[int32]string{
    71  		0: "OP_UNKNOWN",
    72  		1: "OP_EQ",
    73  		2: "OP_NE",
    74  		3: "OP_LT",
    75  		4: "OP_LE",
    76  		5: "OP_GT",
    77  		6: "OP_GE",
    78  		7: "OP_REGEX",
    79  		8: "OP_STARTS_WITH",
    80  		9: "OP_CONTAINS",
    81  	}
    82  	Comparison_Operator_value = map[string]int32{
    83  		"OP_UNKNOWN":     0,
    84  		"OP_EQ":          1,
    85  		"OP_NE":          2,
    86  		"OP_LT":          3,
    87  		"OP_LE":          4,
    88  		"OP_GT":          5,
    89  		"OP_GE":          6,
    90  		"OP_REGEX":       7,
    91  		"OP_STARTS_WITH": 8,
    92  		"OP_CONTAINS":    9,
    93  	}
    94  )
    95  
    96  func (x Comparison_Operator) Enum() *Comparison_Operator {
    97  	p := new(Comparison_Operator)
    98  	*p = x
    99  	return p
   100  }
   101  
   102  func (x Comparison_Operator) String() string {
   103  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   104  }
   105  
   106  func (Comparison_Operator) Descriptor() protoreflect.EnumDescriptor {
   107  	return file_custom_evaluator_proto_enumTypes[0].Descriptor()
   108  }
   109  
   110  func (Comparison_Operator) Type() protoreflect.EnumType {
   111  	return &file_custom_evaluator_proto_enumTypes[0]
   112  }
   113  
   114  func (x Comparison_Operator) Number() protoreflect.EnumNumber {
   115  	return protoreflect.EnumNumber(x)
   116  }
   117  
   118  // Deprecated: Use Comparison_Operator.Descriptor instead.
   119  func (Comparison_Operator) EnumDescriptor() ([]byte, []int) {
   120  	return file_custom_evaluator_proto_rawDescGZIP(), []int{3, 0}
   121  }
   122  
   123  // A collection of Rule objects. Used to define many rules.
   124  type RuleSet struct {
   125  	state         protoimpl.MessageState
   126  	sizeCache     protoimpl.SizeCache
   127  	unknownFields protoimpl.UnknownFields
   128  
   129  	Rules []*Rule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
   130  }
   131  
   132  func (x *RuleSet) Reset() {
   133  	*x = RuleSet{}
   134  	if protoimpl.UnsafeEnabled {
   135  		mi := &file_custom_evaluator_proto_msgTypes[0]
   136  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   137  		ms.StoreMessageInfo(mi)
   138  	}
   139  }
   140  
   141  func (x *RuleSet) String() string {
   142  	return protoimpl.X.MessageStringOf(x)
   143  }
   144  
   145  func (*RuleSet) ProtoMessage() {}
   146  
   147  func (x *RuleSet) ProtoReflect() protoreflect.Message {
   148  	mi := &file_custom_evaluator_proto_msgTypes[0]
   149  	if protoimpl.UnsafeEnabled && x != nil {
   150  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   151  		if ms.LoadMessageInfo() == nil {
   152  			ms.StoreMessageInfo(mi)
   153  		}
   154  		return ms
   155  	}
   156  	return mi.MessageOf(x)
   157  }
   158  
   159  // Deprecated: Use RuleSet.ProtoReflect.Descriptor instead.
   160  func (*RuleSet) Descriptor() ([]byte, []int) {
   161  	return file_custom_evaluator_proto_rawDescGZIP(), []int{0}
   162  }
   163  
   164  func (x *RuleSet) GetRules() []*Rule {
   165  	if x != nil {
   166  		return x.Rules
   167  	}
   168  	return nil
   169  }
   170  
   171  // A single rule that describes how to evaluate a test_cases_pb2.TestResult
   172  type Rule struct {
   173  	state         protoimpl.MessageState
   174  	sizeCache     protoimpl.SizeCache
   175  	unknownFields protoimpl.UnknownFields
   176  
   177  	// Multiple comparisons to run against a result. EVERY TestResultComparison
   178  	// has to succeed for this Rule to succeed.
   179  	TestResultComparisons []*TestResultComparison `protobuf:"bytes,1,rep,name=test_result_comparisons,json=testResultComparisons,proto3" json:"test_result_comparisons,omitempty"`
   180  	// Required: The TestStatus to return if the comparison succeeds.
   181  	ComputedStatus test_status.TestStatus `protobuf:"varint,3,opt,name=computed_status,json=computedStatus,proto3,enum=testgrid.test_status.TestStatus" json:"computed_status,omitempty"`
   182  }
   183  
   184  func (x *Rule) Reset() {
   185  	*x = Rule{}
   186  	if protoimpl.UnsafeEnabled {
   187  		mi := &file_custom_evaluator_proto_msgTypes[1]
   188  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   189  		ms.StoreMessageInfo(mi)
   190  	}
   191  }
   192  
   193  func (x *Rule) String() string {
   194  	return protoimpl.X.MessageStringOf(x)
   195  }
   196  
   197  func (*Rule) ProtoMessage() {}
   198  
   199  func (x *Rule) ProtoReflect() protoreflect.Message {
   200  	mi := &file_custom_evaluator_proto_msgTypes[1]
   201  	if protoimpl.UnsafeEnabled && x != nil {
   202  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   203  		if ms.LoadMessageInfo() == nil {
   204  			ms.StoreMessageInfo(mi)
   205  		}
   206  		return ms
   207  	}
   208  	return mi.MessageOf(x)
   209  }
   210  
   211  // Deprecated: Use Rule.ProtoReflect.Descriptor instead.
   212  func (*Rule) Descriptor() ([]byte, []int) {
   213  	return file_custom_evaluator_proto_rawDescGZIP(), []int{1}
   214  }
   215  
   216  func (x *Rule) GetTestResultComparisons() []*TestResultComparison {
   217  	if x != nil {
   218  		return x.TestResultComparisons
   219  	}
   220  	return nil
   221  }
   222  
   223  func (x *Rule) GetComputedStatus() test_status.TestStatus {
   224  	if x != nil {
   225  		return x.ComputedStatus
   226  	}
   227  	return test_status.TestStatus(0)
   228  }
   229  
   230  // Describes how to get information the TestResult proto and how to compare the
   231  // value against the comparison value.
   232  type TestResultComparison struct {
   233  	state         protoimpl.MessageState
   234  	sizeCache     protoimpl.SizeCache
   235  	unknownFields protoimpl.UnknownFields
   236  
   237  	// Required: This is the comparison that will be used as
   238  	Comparison *Comparison `protobuf:"bytes,1,opt,name=comparison,proto3" json:"comparison,omitempty"`
   239  	// Types that are assignable to TestResultInfo:
   240  	//	*TestResultComparison_PropertyKey
   241  	//	*TestResultComparison_TestResultField
   242  	//	*TestResultComparison_TestResultErrorField
   243  	//	*TestResultComparison_TargetStatus
   244  	TestResultInfo isTestResultComparison_TestResultInfo `protobuf_oneof:"test_result_info"`
   245  }
   246  
   247  func (x *TestResultComparison) Reset() {
   248  	*x = TestResultComparison{}
   249  	if protoimpl.UnsafeEnabled {
   250  		mi := &file_custom_evaluator_proto_msgTypes[2]
   251  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   252  		ms.StoreMessageInfo(mi)
   253  	}
   254  }
   255  
   256  func (x *TestResultComparison) String() string {
   257  	return protoimpl.X.MessageStringOf(x)
   258  }
   259  
   260  func (*TestResultComparison) ProtoMessage() {}
   261  
   262  func (x *TestResultComparison) ProtoReflect() protoreflect.Message {
   263  	mi := &file_custom_evaluator_proto_msgTypes[2]
   264  	if protoimpl.UnsafeEnabled && x != nil {
   265  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   266  		if ms.LoadMessageInfo() == nil {
   267  			ms.StoreMessageInfo(mi)
   268  		}
   269  		return ms
   270  	}
   271  	return mi.MessageOf(x)
   272  }
   273  
   274  // Deprecated: Use TestResultComparison.ProtoReflect.Descriptor instead.
   275  func (*TestResultComparison) Descriptor() ([]byte, []int) {
   276  	return file_custom_evaluator_proto_rawDescGZIP(), []int{2}
   277  }
   278  
   279  func (x *TestResultComparison) GetComparison() *Comparison {
   280  	if x != nil {
   281  		return x.Comparison
   282  	}
   283  	return nil
   284  }
   285  
   286  func (m *TestResultComparison) GetTestResultInfo() isTestResultComparison_TestResultInfo {
   287  	if m != nil {
   288  		return m.TestResultInfo
   289  	}
   290  	return nil
   291  }
   292  
   293  func (x *TestResultComparison) GetPropertyKey() string {
   294  	if x, ok := x.GetTestResultInfo().(*TestResultComparison_PropertyKey); ok {
   295  		return x.PropertyKey
   296  	}
   297  	return ""
   298  }
   299  
   300  func (x *TestResultComparison) GetTestResultField() string {
   301  	if x, ok := x.GetTestResultInfo().(*TestResultComparison_TestResultField); ok {
   302  		return x.TestResultField
   303  	}
   304  	return ""
   305  }
   306  
   307  func (x *TestResultComparison) GetTestResultErrorField() string {
   308  	if x, ok := x.GetTestResultInfo().(*TestResultComparison_TestResultErrorField); ok {
   309  		return x.TestResultErrorField
   310  	}
   311  	return ""
   312  }
   313  
   314  func (x *TestResultComparison) GetTargetStatus() bool {
   315  	if x, ok := x.GetTestResultInfo().(*TestResultComparison_TargetStatus); ok {
   316  		return x.TargetStatus
   317  	}
   318  	return false
   319  }
   320  
   321  type isTestResultComparison_TestResultInfo interface {
   322  	isTestResultComparison_TestResultInfo()
   323  }
   324  
   325  type TestResultComparison_PropertyKey struct {
   326  	// The name of the property to evaluate.
   327  	// Properties are usually strings, so a string comparison is assumed and
   328  	// required.
   329  	PropertyKey string `protobuf:"bytes,2,opt,name=property_key,json=propertyKey,proto3,oneof"`
   330  }
   331  
   332  type TestResultComparison_TestResultField struct {
   333  	// This will find the scalar field with the given name within the TestResult
   334  	// proto. The value of that field will be used to evaluate.
   335  	//
   336  	// Accepted junit values for junit results are:
   337  	//   name: name of the test case
   338  	//   error_count: 1 if the test case has an error message
   339  	//   failure_count: 1 if the test case has a failure message
   340  	//
   341  	// NOTE: Only supported for string and numerical values.
   342  	TestResultField string `protobuf:"bytes,3,opt,name=test_result_field,json=testResultField,proto3,oneof"`
   343  }
   344  
   345  type TestResultComparison_TestResultErrorField struct {
   346  	// This will find the field nested within the first error of the TestResult
   347  	// proto. The value of that field will be used to evaluate.
   348  	//
   349  	// Accepted values for junit results are:
   350  	//   exception_type: the failure and/or error message.
   351  	//
   352  	// NOTE: Only supported for string and numerical values
   353  	TestResultErrorField string `protobuf:"bytes,4,opt,name=test_result_error_field,json=testResultErrorField,proto3,oneof"`
   354  }
   355  
   356  type TestResultComparison_TargetStatus struct {
   357  	// This will enable the target status comparation. The value of the status
   358  	// will be used to evaluate.
   359  	TargetStatus bool `protobuf:"varint,5,opt,name=target_status,json=targetStatus,proto3,oneof"`
   360  }
   361  
   362  func (*TestResultComparison_PropertyKey) isTestResultComparison_TestResultInfo() {}
   363  
   364  func (*TestResultComparison_TestResultField) isTestResultComparison_TestResultInfo() {}
   365  
   366  func (*TestResultComparison_TestResultErrorField) isTestResultComparison_TestResultInfo() {}
   367  
   368  func (*TestResultComparison_TargetStatus) isTestResultComparison_TestResultInfo() {}
   369  
   370  // The method of comparison used for evaluation. Describes how to compare two
   371  // values.
   372  type Comparison struct {
   373  	state         protoimpl.MessageState
   374  	sizeCache     protoimpl.SizeCache
   375  	unknownFields protoimpl.UnknownFields
   376  
   377  	// Required: Defines how to compare two attributes.
   378  	// When the TestResult value is numerical, numerical_value will be used to
   379  	// compare. When the TestResult value is a string, string_value will be used.
   380  	Op Comparison_Operator `protobuf:"varint,1,opt,name=op,proto3,enum=testgrid.custom_evaluator.Comparison_Operator" json:"op,omitempty"`
   381  	// Types that are assignable to ComparisonValue:
   382  	//	*Comparison_StringValue
   383  	//	*Comparison_NumericalValue
   384  	//	*Comparison_TargetStatusValue
   385  	ComparisonValue isComparison_ComparisonValue `protobuf_oneof:"comparison_value"`
   386  }
   387  
   388  func (x *Comparison) Reset() {
   389  	*x = Comparison{}
   390  	if protoimpl.UnsafeEnabled {
   391  		mi := &file_custom_evaluator_proto_msgTypes[3]
   392  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   393  		ms.StoreMessageInfo(mi)
   394  	}
   395  }
   396  
   397  func (x *Comparison) String() string {
   398  	return protoimpl.X.MessageStringOf(x)
   399  }
   400  
   401  func (*Comparison) ProtoMessage() {}
   402  
   403  func (x *Comparison) ProtoReflect() protoreflect.Message {
   404  	mi := &file_custom_evaluator_proto_msgTypes[3]
   405  	if protoimpl.UnsafeEnabled && x != nil {
   406  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   407  		if ms.LoadMessageInfo() == nil {
   408  			ms.StoreMessageInfo(mi)
   409  		}
   410  		return ms
   411  	}
   412  	return mi.MessageOf(x)
   413  }
   414  
   415  // Deprecated: Use Comparison.ProtoReflect.Descriptor instead.
   416  func (*Comparison) Descriptor() ([]byte, []int) {
   417  	return file_custom_evaluator_proto_rawDescGZIP(), []int{3}
   418  }
   419  
   420  func (x *Comparison) GetOp() Comparison_Operator {
   421  	if x != nil {
   422  		return x.Op
   423  	}
   424  	return Comparison_OP_UNKNOWN
   425  }
   426  
   427  func (m *Comparison) GetComparisonValue() isComparison_ComparisonValue {
   428  	if m != nil {
   429  		return m.ComparisonValue
   430  	}
   431  	return nil
   432  }
   433  
   434  func (x *Comparison) GetStringValue() string {
   435  	if x, ok := x.GetComparisonValue().(*Comparison_StringValue); ok {
   436  		return x.StringValue
   437  	}
   438  	return ""
   439  }
   440  
   441  func (x *Comparison) GetNumericalValue() float64 {
   442  	if x, ok := x.GetComparisonValue().(*Comparison_NumericalValue); ok {
   443  		return x.NumericalValue
   444  	}
   445  	return 0
   446  }
   447  
   448  func (x *Comparison) GetTargetStatusValue() test_status.TestStatus {
   449  	if x, ok := x.GetComparisonValue().(*Comparison_TargetStatusValue); ok {
   450  		return x.TargetStatusValue
   451  	}
   452  	return test_status.TestStatus(0)
   453  }
   454  
   455  type isComparison_ComparisonValue interface {
   456  	isComparison_ComparisonValue()
   457  }
   458  
   459  type Comparison_StringValue struct {
   460  	// For operations EQ, NE, REGEX, STARTS_WITH, CONTAINS
   461  	StringValue string `protobuf:"bytes,2,opt,name=string_value,json=stringValue,proto3,oneof"`
   462  }
   463  
   464  type Comparison_NumericalValue struct {
   465  	// For operations EQ, NE, LT, LE, GT, GE
   466  	NumericalValue float64 `protobuf:"fixed64,3,opt,name=numerical_value,json=numericalValue,proto3,oneof"`
   467  }
   468  
   469  type Comparison_TargetStatusValue struct {
   470  	// For operations EQ
   471  	TargetStatusValue test_status.TestStatus `protobuf:"varint,4,opt,name=target_status_value,json=targetStatusValue,proto3,enum=testgrid.test_status.TestStatus,oneof"`
   472  }
   473  
   474  func (*Comparison_StringValue) isComparison_ComparisonValue() {}
   475  
   476  func (*Comparison_NumericalValue) isComparison_ComparisonValue() {}
   477  
   478  func (*Comparison_TargetStatusValue) isComparison_ComparisonValue() {}
   479  
   480  var File_custom_evaluator_proto protoreflect.FileDescriptor
   481  
   482  var file_custom_evaluator_proto_rawDesc = []byte{
   483  	0x0a, 0x16, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
   484  	0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x19, 0x74, 0x65, 0x73, 0x74, 0x67, 0x72,
   485  	0x69, 0x64, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61,
   486  	0x74, 0x6f, 0x72, 0x1a, 0x20, 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61,
   487  	0x74, 0x75, 0x73, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e,
   488  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x40, 0x0a, 0x07, 0x52, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x74,
   489  	0x12, 0x35, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
   490  	0x1f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x67, 0x72, 0x69, 0x64, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f,
   491  	0x6d, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x52, 0x75, 0x6c, 0x65,
   492  	0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65,
   493  	0x12, 0x67, 0x0a, 0x17, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f,
   494  	0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
   495  	0x0b, 0x32, 0x2f, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x67, 0x72, 0x69, 0x64, 0x2e, 0x63, 0x75, 0x73,
   496  	0x74, 0x6f, 0x6d, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x54, 0x65,
   497  	0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73,
   498  	0x6f, 0x6e, 0x52, 0x15, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f,
   499  	0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x0f, 0x63, 0x6f, 0x6d,
   500  	0x70, 0x75, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01,
   501  	0x28, 0x0e, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x67, 0x72, 0x69, 0x64, 0x2e, 0x74, 0x65,
   502  	0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x54, 0x65, 0x73, 0x74, 0x53, 0x74,
   503  	0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x64, 0x53, 0x74,
   504  	0x61, 0x74, 0x75, 0x73, 0x22, 0xa4, 0x02, 0x0a, 0x14, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73,
   505  	0x75, 0x6c, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x45, 0x0a,
   506  	0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
   507  	0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x67, 0x72, 0x69, 0x64, 0x2e, 0x63, 0x75, 0x73,
   508  	0x74, 0x6f, 0x6d, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x6f,
   509  	0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72,
   510  	0x69, 0x73, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
   511  	0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x72,
   512  	0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x65, 0x73,
   513  	0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03,
   514  	0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
   515  	0x6c, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x37, 0x0a, 0x17, 0x74, 0x65, 0x73, 0x74, 0x5f,
   516  	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x66, 0x69, 0x65,
   517  	0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x14, 0x74, 0x65, 0x73, 0x74,
   518  	0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x46, 0x69, 0x65, 0x6c, 0x64,
   519  	0x12, 0x25, 0x0a, 0x0d, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75,
   520  	0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65,
   521  	0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x74, 0x65, 0x73, 0x74, 0x5f,
   522  	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x96, 0x03, 0x0a, 0x0a,
   523  	0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x02, 0x6f, 0x70,
   524  	0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x67, 0x72, 0x69,
   525  	0x64, 0x2e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74,
   526  	0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x4f, 0x70,
   527  	0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x02, 0x6f, 0x70, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74,
   528  	0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
   529  	0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
   530  	0x29, 0x0a, 0x0f, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c,
   531  	0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x65,
   532  	0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x52, 0x0a, 0x13, 0x74, 0x61,
   533  	0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75,
   534  	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x67, 0x72,
   535  	0x69, 0x64, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x54,
   536  	0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x11, 0x74, 0x61, 0x72,
   537  	0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x8f,
   538  	0x01, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x0a, 0x4f,
   539  	0x50, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f,
   540  	0x50, 0x5f, 0x45, 0x51, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x50, 0x5f, 0x4e, 0x45, 0x10,
   541  	0x02, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x50, 0x5f, 0x4c, 0x54, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05,
   542  	0x4f, 0x50, 0x5f, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x50, 0x5f, 0x47, 0x54,
   543  	0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x50, 0x5f, 0x47, 0x45, 0x10, 0x06, 0x12, 0x0c, 0x0a,
   544  	0x08, 0x4f, 0x50, 0x5f, 0x52, 0x45, 0x47, 0x45, 0x58, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x4f,
   545  	0x50, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x53, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x10, 0x08, 0x12,
   546  	0x0f, 0x0a, 0x0b, 0x4f, 0x50, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, 0x53, 0x10, 0x09,
   547  	0x42, 0x12, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x5f, 0x76,
   548  	0x61, 0x6c, 0x75, 0x65, 0x42, 0x3d, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
   549  	0x6f, 0x6d, 0x2f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x6c,
   550  	0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x67, 0x72, 0x69, 0x64, 0x2f,
   551  	0x70, 0x62, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61,
   552  	0x74, 0x6f, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   553  }
   554  
   555  var (
   556  	file_custom_evaluator_proto_rawDescOnce sync.Once
   557  	file_custom_evaluator_proto_rawDescData = file_custom_evaluator_proto_rawDesc
   558  )
   559  
   560  func file_custom_evaluator_proto_rawDescGZIP() []byte {
   561  	file_custom_evaluator_proto_rawDescOnce.Do(func() {
   562  		file_custom_evaluator_proto_rawDescData = protoimpl.X.CompressGZIP(file_custom_evaluator_proto_rawDescData)
   563  	})
   564  	return file_custom_evaluator_proto_rawDescData
   565  }
   566  
   567  var file_custom_evaluator_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
   568  var file_custom_evaluator_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
   569  var file_custom_evaluator_proto_goTypes = []interface{}{
   570  	(Comparison_Operator)(0),     // 0: testgrid.custom_evaluator.Comparison.Operator
   571  	(*RuleSet)(nil),              // 1: testgrid.custom_evaluator.RuleSet
   572  	(*Rule)(nil),                 // 2: testgrid.custom_evaluator.Rule
   573  	(*TestResultComparison)(nil), // 3: testgrid.custom_evaluator.TestResultComparison
   574  	(*Comparison)(nil),           // 4: testgrid.custom_evaluator.Comparison
   575  	(test_status.TestStatus)(0),  // 5: testgrid.test_status.TestStatus
   576  }
   577  var file_custom_evaluator_proto_depIdxs = []int32{
   578  	2, // 0: testgrid.custom_evaluator.RuleSet.rules:type_name -> testgrid.custom_evaluator.Rule
   579  	3, // 1: testgrid.custom_evaluator.Rule.test_result_comparisons:type_name -> testgrid.custom_evaluator.TestResultComparison
   580  	5, // 2: testgrid.custom_evaluator.Rule.computed_status:type_name -> testgrid.test_status.TestStatus
   581  	4, // 3: testgrid.custom_evaluator.TestResultComparison.comparison:type_name -> testgrid.custom_evaluator.Comparison
   582  	0, // 4: testgrid.custom_evaluator.Comparison.op:type_name -> testgrid.custom_evaluator.Comparison.Operator
   583  	5, // 5: testgrid.custom_evaluator.Comparison.target_status_value:type_name -> testgrid.test_status.TestStatus
   584  	6, // [6:6] is the sub-list for method output_type
   585  	6, // [6:6] is the sub-list for method input_type
   586  	6, // [6:6] is the sub-list for extension type_name
   587  	6, // [6:6] is the sub-list for extension extendee
   588  	0, // [0:6] is the sub-list for field type_name
   589  }
   590  
   591  func init() { file_custom_evaluator_proto_init() }
   592  func file_custom_evaluator_proto_init() {
   593  	if File_custom_evaluator_proto != nil {
   594  		return
   595  	}
   596  	if !protoimpl.UnsafeEnabled {
   597  		file_custom_evaluator_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   598  			switch v := v.(*RuleSet); i {
   599  			case 0:
   600  				return &v.state
   601  			case 1:
   602  				return &v.sizeCache
   603  			case 2:
   604  				return &v.unknownFields
   605  			default:
   606  				return nil
   607  			}
   608  		}
   609  		file_custom_evaluator_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   610  			switch v := v.(*Rule); i {
   611  			case 0:
   612  				return &v.state
   613  			case 1:
   614  				return &v.sizeCache
   615  			case 2:
   616  				return &v.unknownFields
   617  			default:
   618  				return nil
   619  			}
   620  		}
   621  		file_custom_evaluator_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   622  			switch v := v.(*TestResultComparison); i {
   623  			case 0:
   624  				return &v.state
   625  			case 1:
   626  				return &v.sizeCache
   627  			case 2:
   628  				return &v.unknownFields
   629  			default:
   630  				return nil
   631  			}
   632  		}
   633  		file_custom_evaluator_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
   634  			switch v := v.(*Comparison); i {
   635  			case 0:
   636  				return &v.state
   637  			case 1:
   638  				return &v.sizeCache
   639  			case 2:
   640  				return &v.unknownFields
   641  			default:
   642  				return nil
   643  			}
   644  		}
   645  	}
   646  	file_custom_evaluator_proto_msgTypes[2].OneofWrappers = []interface{}{
   647  		(*TestResultComparison_PropertyKey)(nil),
   648  		(*TestResultComparison_TestResultField)(nil),
   649  		(*TestResultComparison_TestResultErrorField)(nil),
   650  		(*TestResultComparison_TargetStatus)(nil),
   651  	}
   652  	file_custom_evaluator_proto_msgTypes[3].OneofWrappers = []interface{}{
   653  		(*Comparison_StringValue)(nil),
   654  		(*Comparison_NumericalValue)(nil),
   655  		(*Comparison_TargetStatusValue)(nil),
   656  	}
   657  	type x struct{}
   658  	out := protoimpl.TypeBuilder{
   659  		File: protoimpl.DescBuilder{
   660  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
   661  			RawDescriptor: file_custom_evaluator_proto_rawDesc,
   662  			NumEnums:      1,
   663  			NumMessages:   4,
   664  			NumExtensions: 0,
   665  			NumServices:   0,
   666  		},
   667  		GoTypes:           file_custom_evaluator_proto_goTypes,
   668  		DependencyIndexes: file_custom_evaluator_proto_depIdxs,
   669  		EnumInfos:         file_custom_evaluator_proto_enumTypes,
   670  		MessageInfos:      file_custom_evaluator_proto_msgTypes,
   671  	}.Build()
   672  	File_custom_evaluator_proto = out.File
   673  	file_custom_evaluator_proto_rawDesc = nil
   674  	file_custom_evaluator_proto_goTypes = nil
   675  	file_custom_evaluator_proto_depIdxs = nil
   676  }