// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/cloud/automl/v1beta1/model_evaluation.proto

package automl

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	_ "google.golang.org/genproto/googleapis/api/annotations"
)

// 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

// Evaluation results of a model.
type ModelEvaluation struct {
	// Output only. Problem type specific evaluation metrics.
	//
	// Types that are valid to be assigned to Metrics:
	//	*ModelEvaluation_ClassificationEvaluationMetrics
	//	*ModelEvaluation_RegressionEvaluationMetrics
	//	*ModelEvaluation_TranslationEvaluationMetrics
	//	*ModelEvaluation_ImageObjectDetectionEvaluationMetrics
	//	*ModelEvaluation_VideoObjectTrackingEvaluationMetrics
	//	*ModelEvaluation_TextSentimentEvaluationMetrics
	//	*ModelEvaluation_TextExtractionEvaluationMetrics
	Metrics isModelEvaluation_Metrics `protobuf_oneof:"metrics"`
	// Output only.
	// Resource name of the model evaluation.
	// Format:
	//
	// `projects/{project_id}/locations/{location_id}/models/{model_id}/modelEvaluations/{model_evaluation_id}`
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Output only.
	// The ID of the annotation spec that the model evaluation applies to. The
	// The ID is empty for the overall model evaluation.
	// For Tables annotation specs in the dataset do not exist and this ID is
	// always not set, but for CLASSIFICATION
	//
	// [prediction_type-s][google.cloud.automl.v1beta1.TablesModelMetadata.prediction_type]
	// the
	// [display_name][google.cloud.automl.v1beta1.ModelEvaluation.display_name]
	// field is used.
	AnnotationSpecId string `protobuf:"bytes,2,opt,name=annotation_spec_id,json=annotationSpecId,proto3" json:"annotation_spec_id,omitempty"`
	// Output only. The value of
	// [display_name][google.cloud.automl.v1beta1.AnnotationSpec.dispay_name] at
	// the moment when the model was trained. Because this field returns a value
	// at model training time, for different models trained from the same dataset,
	// the values may differ, since display names could had been changed between
	// the two model's trainings.
	// For Tables CLASSIFICATION
	//
	// [prediction_type-s][google.cloud.automl.v1beta1.TablesModelMetadata.prediction_type]
	// distinct values of the target column at the moment of the model evaluation
	// are populated here.
	// The display_name is empty for the overall model evaluation.
	DisplayName string `protobuf:"bytes,15,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// Output only.
	// Timestamp when this model evaluation was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// Output only.
	// The number of examples used for model evaluation, i.e. for
	// which ground truth from time of model creation is compared against the
	// predicted annotations created by the model.
	// For overall ModelEvaluation (i.e. with annotation_spec_id not set) this is
	// the total number of all examples used for evaluation.
	// Otherwise, this is the count of examples that according to the ground
	// truth were annotated by the
	//
	// [annotation_spec_id][google.cloud.automl.v1beta1.ModelEvaluation.annotation_spec_id].
	EvaluatedExampleCount int32    `protobuf:"varint,6,opt,name=evaluated_example_count,json=evaluatedExampleCount,proto3" json:"evaluated_example_count,omitempty"`
	XXX_NoUnkeyedLiteral  struct{} `json:"-"`
	XXX_unrecognized      []byte   `json:"-"`
	XXX_sizecache         int32    `json:"-"`
}

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

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

var xxx_messageInfo_ModelEvaluation proto.InternalMessageInfo

type isModelEvaluation_Metrics interface {
	isModelEvaluation_Metrics()
}

type ModelEvaluation_ClassificationEvaluationMetrics struct {
	ClassificationEvaluationMetrics *ClassificationEvaluationMetrics `protobuf:"bytes,8,opt,name=classification_evaluation_metrics,json=classificationEvaluationMetrics,proto3,oneof"`
}

type ModelEvaluation_RegressionEvaluationMetrics struct {
	RegressionEvaluationMetrics *RegressionEvaluationMetrics `protobuf:"bytes,24,opt,name=regression_evaluation_metrics,json=regressionEvaluationMetrics,proto3,oneof"`
}

type ModelEvaluation_TranslationEvaluationMetrics struct {
	TranslationEvaluationMetrics *TranslationEvaluationMetrics `protobuf:"bytes,9,opt,name=translation_evaluation_metrics,json=translationEvaluationMetrics,proto3,oneof"`
}

type ModelEvaluation_ImageObjectDetectionEvaluationMetrics struct {
	ImageObjectDetectionEvaluationMetrics *ImageObjectDetectionEvaluationMetrics `protobuf:"bytes,12,opt,name=image_object_detection_evaluation_metrics,json=imageObjectDetectionEvaluationMetrics,proto3,oneof"`
}

type ModelEvaluation_VideoObjectTrackingEvaluationMetrics struct {
	VideoObjectTrackingEvaluationMetrics *VideoObjectTrackingEvaluationMetrics `protobuf:"bytes,14,opt,name=video_object_tracking_evaluation_metrics,json=videoObjectTrackingEvaluationMetrics,proto3,oneof"`
}

type ModelEvaluation_TextSentimentEvaluationMetrics struct {
	TextSentimentEvaluationMetrics *TextSentimentEvaluationMetrics `protobuf:"bytes,11,opt,name=text_sentiment_evaluation_metrics,json=textSentimentEvaluationMetrics,proto3,oneof"`
}

type ModelEvaluation_TextExtractionEvaluationMetrics struct {
	TextExtractionEvaluationMetrics *TextExtractionEvaluationMetrics `protobuf:"bytes,13,opt,name=text_extraction_evaluation_metrics,json=textExtractionEvaluationMetrics,proto3,oneof"`
}

func (*ModelEvaluation_ClassificationEvaluationMetrics) isModelEvaluation_Metrics() {}

func (*ModelEvaluation_RegressionEvaluationMetrics) isModelEvaluation_Metrics() {}

func (*ModelEvaluation_TranslationEvaluationMetrics) isModelEvaluation_Metrics() {}

func (*ModelEvaluation_ImageObjectDetectionEvaluationMetrics) isModelEvaluation_Metrics() {}

func (*ModelEvaluation_VideoObjectTrackingEvaluationMetrics) isModelEvaluation_Metrics() {}

func (*ModelEvaluation_TextSentimentEvaluationMetrics) isModelEvaluation_Metrics() {}

func (*ModelEvaluation_TextExtractionEvaluationMetrics) isModelEvaluation_Metrics() {}

func (m *ModelEvaluation) GetMetrics() isModelEvaluation_Metrics {
	if m != nil {
		return m.Metrics
	}
	return nil
}

func (m *ModelEvaluation) GetClassificationEvaluationMetrics() *ClassificationEvaluationMetrics {
	if x, ok := m.GetMetrics().(*ModelEvaluation_ClassificationEvaluationMetrics); ok {
		return x.ClassificationEvaluationMetrics
	}
	return nil
}

func (m *ModelEvaluation) GetRegressionEvaluationMetrics() *RegressionEvaluationMetrics {
	if x, ok := m.GetMetrics().(*ModelEvaluation_RegressionEvaluationMetrics); ok {
		return x.RegressionEvaluationMetrics
	}
	return nil
}

func (m *ModelEvaluation) GetTranslationEvaluationMetrics() *TranslationEvaluationMetrics {
	if x, ok := m.GetMetrics().(*ModelEvaluation_TranslationEvaluationMetrics); ok {
		return x.TranslationEvaluationMetrics
	}
	return nil
}

func (m *ModelEvaluation) GetImageObjectDetectionEvaluationMetrics() *ImageObjectDetectionEvaluationMetrics {
	if x, ok := m.GetMetrics().(*ModelEvaluation_ImageObjectDetectionEvaluationMetrics); ok {
		return x.ImageObjectDetectionEvaluationMetrics
	}
	return nil
}

func (m *ModelEvaluation) GetVideoObjectTrackingEvaluationMetrics() *VideoObjectTrackingEvaluationMetrics {
	if x, ok := m.GetMetrics().(*ModelEvaluation_VideoObjectTrackingEvaluationMetrics); ok {
		return x.VideoObjectTrackingEvaluationMetrics
	}
	return nil
}

func (m *ModelEvaluation) GetTextSentimentEvaluationMetrics() *TextSentimentEvaluationMetrics {
	if x, ok := m.GetMetrics().(*ModelEvaluation_TextSentimentEvaluationMetrics); ok {
		return x.TextSentimentEvaluationMetrics
	}
	return nil
}

func (m *ModelEvaluation) GetTextExtractionEvaluationMetrics() *TextExtractionEvaluationMetrics {
	if x, ok := m.GetMetrics().(*ModelEvaluation_TextExtractionEvaluationMetrics); ok {
		return x.TextExtractionEvaluationMetrics
	}
	return nil
}

func (m *ModelEvaluation) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *ModelEvaluation) GetAnnotationSpecId() string {
	if m != nil {
		return m.AnnotationSpecId
	}
	return ""
}

func (m *ModelEvaluation) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

func (m *ModelEvaluation) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *ModelEvaluation) GetEvaluatedExampleCount() int32 {
	if m != nil {
		return m.EvaluatedExampleCount
	}
	return 0
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*ModelEvaluation) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*ModelEvaluation_ClassificationEvaluationMetrics)(nil),
		(*ModelEvaluation_RegressionEvaluationMetrics)(nil),
		(*ModelEvaluation_TranslationEvaluationMetrics)(nil),
		(*ModelEvaluation_ImageObjectDetectionEvaluationMetrics)(nil),
		(*ModelEvaluation_VideoObjectTrackingEvaluationMetrics)(nil),
		(*ModelEvaluation_TextSentimentEvaluationMetrics)(nil),
		(*ModelEvaluation_TextExtractionEvaluationMetrics)(nil),
	}
}

func init() {
	proto.RegisterType((*ModelEvaluation)(nil), "google.cloud.automl.v1beta1.ModelEvaluation")
}

func init() {
	proto.RegisterFile("google/cloud/automl/v1beta1/model_evaluation.proto", fileDescriptor_2d3cea51cfd5443a)
}

var fileDescriptor_2d3cea51cfd5443a = []byte{
	// 631 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x94, 0xdf, 0x6a, 0x14, 0x31,
	0x14, 0x87, 0x4d, 0xb1, 0xd5, 0xcd, 0x56, 0x2b, 0x01, 0x71, 0x69, 0x6b, 0xff, 0xa1, 0xb0, 0x62,
	0x9d, 0x69, 0x2b, 0x88, 0x52, 0x6f, 0xda, 0x5a, 0xb4, 0x17, 0x55, 0xd9, 0x96, 0x5e, 0x48, 0x61,
	0xc8, 0x66, 0x4e, 0x87, 0x68, 0x66, 0x32, 0x4c, 0xb2, 0xcb, 0x7a, 0x23, 0x08, 0x5e, 0x88, 0x3e,
	0x82, 0xe0, 0x03, 0xf9, 0x12, 0xbe, 0x8a, 0x4c, 0x26, 0xbb, 0x33, 0x95, 0x18, 0xf7, 0x6e, 0x67,
	0xce, 0x77, 0x7e, 0xf3, 0x25, 0x67, 0x13, 0xbc, 0x93, 0x48, 0x99, 0x08, 0x08, 0x99, 0x90, 0x83,
	0x38, 0xa4, 0x03, 0x2d, 0x53, 0x11, 0x0e, 0xb7, 0xfb, 0xa0, 0xe9, 0x76, 0x98, 0xca, 0x18, 0x44,
	0x04, 0x43, 0x2a, 0x06, 0x54, 0x73, 0x99, 0x05, 0x79, 0x21, 0xb5, 0x24, 0x4b, 0x55, 0x4f, 0x60,
	0x7a, 0x82, 0xaa, 0x27, 0xb0, 0x3d, 0x8b, 0x5b, 0xbe, 0x40, 0x26, 0xa8, 0x52, 0xfc, 0x82, 0xb3,
	0x46, 0xdc, 0xe2, 0x43, 0x5f, 0x47, 0x0c, 0x1a, 0x58, 0x03, 0xde, 0xf4, 0xc1, 0x05, 0x24, 0x05,
	0x28, 0x55, 0xd3, 0x5d, 0x1f, 0xad, 0x69, 0x5f, 0x80, 0xb2, 0xe4, 0xb6, 0x97, 0x84, 0x91, 0x8e,
	0x60, 0xa4, 0x0b, 0xda, 0x54, 0xd9, 0xfa, 0x6f, 0x8b, 0x82, 0x4c, 0xf3, 0x14, 0x32, 0x6d, 0x3b,
	0x1e, 0x79, 0x3b, 0x0a, 0x9a, 0x29, 0xd1, 0xdc, 0x98, 0x55, 0x8b, 0x9b, 0xa7, 0xfe, 0xe0, 0x22,
	0x2c, 0xc3, 0x94, 0xa6, 0x69, 0x6e, 0x81, 0x65, 0x0b, 0xd0, 0x9c, 0x87, 0x34, 0xcb, 0xa4, 0x36,
	0xdd, 0x76, 0x49, 0x1b, 0xbf, 0x5b, 0x78, 0xe1, 0xb8, 0x9c, 0xe0, 0xe1, 0x64, 0x80, 0xe4, 0x1b,
	0xc2, 0xeb, 0x97, 0x87, 0xd0, 0x18, 0x6f, 0x94, 0x82, 0x2e, 0x38, 0x53, 0x9d, 0xeb, 0x6b, 0xa8,
	0xdb, 0xde, 0x79, 0x1e, 0x78, 0xe6, 0x1c, 0x1c, 0x5c, 0x4a, 0xa9, 0x3f, 0x71, 0x5c, 0x65, 0xbc,
	0xba, 0xd2, 0x5b, 0x65, 0x7e, 0x84, 0x7c, 0xc2, 0x77, 0xeb, 0x89, 0xb9, 0x3c, 0x3a, 0xc6, 0xe3,
	0xa9, 0xd7, 0xa3, 0x37, 0x49, 0x70, 0x39, 0x2c, 0x15, 0xff, 0x2e, 0x93, 0xcf, 0x08, 0xaf, 0x34,
	0x76, 0xdd, 0x65, 0xd0, 0x32, 0x06, 0xcf, 0xbc, 0x06, 0xa7, 0x75, 0x84, 0x4b, 0x61, 0x59, 0x7b,
	0xea, 0xe4, 0x27, 0xc2, 0x0f, 0x78, 0x4a, 0x13, 0x88, 0x64, 0xff, 0x3d, 0x30, 0x1d, 0x4d, 0xfe,
	0xf0, 0x2e, 0x9d, 0x79, 0xa3, 0xb3, 0xef, 0xd5, 0x39, 0x2a, 0xd3, 0xde, 0x98, 0xb0, 0x17, 0xe3,
	0x2c, 0x97, 0xd7, 0x7d, 0x3e, 0x0d, 0x48, 0x7e, 0x20, 0xdc, 0x1d, 0xf2, 0x18, 0xe4, 0x58, 0xb0,
	0x3c, 0x05, 0x1f, 0x78, 0x96, 0xb8, 0xfc, 0x6e, 0x1a, 0xbf, 0x3d, 0xaf, 0xdf, 0x59, 0x19, 0x56,
	0x7d, 0xf6, 0xd4, 0x46, 0xb9, 0xf4, 0xee, 0x0d, 0xa7, 0xe0, 0xc8, 0x57, 0x84, 0xd7, 0x2f, 0x1f,
	0x35, 0x97, 0x56, 0xdb, 0x68, 0xed, 0xfa, 0xa7, 0x08, 0x23, 0x7d, 0x32, 0x0e, 0x71, 0x09, 0xad,
	0x68, 0x2f, 0x41, 0xbe, 0x23, 0xbc, 0xf1, 0xd7, 0x45, 0xe1, 0x72, 0xb9, 0x31, 0xc5, 0xd9, 0x2a,
	0x5d, 0x0e, 0x27, 0x29, 0xce, 0xb3, 0xa5, 0xfd, 0x08, 0x21, 0xf8, 0x6a, 0x46, 0x53, 0xe8, 0xa0,
	0x35, 0xd4, 0x6d, 0xf5, 0xcc, 0x6f, 0xb2, 0x89, 0x49, 0x7d, 0x4b, 0x44, 0x2a, 0x07, 0x16, 0xf1,
	0xb8, 0x33, 0x63, 0x88, 0x5b, 0x75, 0xe5, 0x24, 0x07, 0x76, 0x14, 0x93, 0x75, 0x3c, 0x1f, 0x73,
	0x95, 0x0b, 0xfa, 0x31, 0x32, 0x49, 0x0b, 0x86, 0x6b, 0xdb, 0x77, 0xaf, 0xcb, 0xc0, 0x5d, 0xdc,
	0x66, 0x05, 0x50, 0x0d, 0x51, 0xb9, 0x29, 0x9d, 0x59, 0xb3, 0xb4, 0xc5, 0xf1, 0xd2, 0xc6, 0xd7,
	0x56, 0x70, 0x3a, 0xbe, 0xb6, 0x7a, 0xb8, 0xc2, 0xcb, 0x17, 0xe4, 0x09, 0xbe, 0x63, 0xb7, 0x07,
	0xe2, 0x08, 0x46, 0x34, 0xcd, 0x05, 0x44, 0x4c, 0x0e, 0x32, 0xdd, 0x99, 0x5b, 0x43, 0xdd, 0xd9,
	0xde, 0xed, 0x49, 0xf9, 0xb0, 0xaa, 0x1e, 0x94, 0xc5, 0xfd, 0x16, 0xbe, 0x66, 0xf7, 0x72, 0xff,
	0x0b, 0xc2, 0xab, 0x4c, 0xa6, 0xbe, 0xbd, 0x7c, 0x8b, 0xde, 0xed, 0xd9, 0x72, 0x22, 0x05, 0xcd,
	0x92, 0x40, 0x16, 0x49, 0x98, 0x40, 0x66, 0xec, 0xc2, 0xaa, 0x44, 0x73, 0xae, 0x9c, 0x97, 0xf2,
	0x6e, 0xf5, 0xf8, 0x6b, 0x66, 0xe9, 0xa5, 0x01, 0xcf, 0x0f, 0x4a, 0xe8, 0x7c, 0x6f, 0xa0, 0xe5,
	0xb1, 0x38, 0x3f, 0xab, 0xa0, 0xfe, 0x9c, 0xc9, 0x7a, 0xfc, 0x27, 0x00, 0x00, 0xff, 0xff, 0x24,
	0xf2, 0xfe, 0x21, 0x4c, 0x07, 0x00, 0x00,
}
