/*
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/cloud/automl/v1beta1/model_evaluation.proto

package com.google.cloud.automl.v1beta1;

public interface ModelEvaluationOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.cloud.automl.v1beta1.ModelEvaluation)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Model evaluation metrics for image, text, video and tables
   * classification.
   * Tables problem is considered a classification when the target column
   * is CATEGORY DataType.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.ClassificationEvaluationMetrics classification_evaluation_metrics = 8;
   * </code>
   *
   * @return Whether the classificationEvaluationMetrics field is set.
   */
  boolean hasClassificationEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for image, text, video and tables
   * classification.
   * Tables problem is considered a classification when the target column
   * is CATEGORY DataType.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.ClassificationEvaluationMetrics classification_evaluation_metrics = 8;
   * </code>
   *
   * @return The classificationEvaluationMetrics.
   */
  com.google.cloud.automl.v1beta1.ClassificationProto.ClassificationEvaluationMetrics
      getClassificationEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for image, text, video and tables
   * classification.
   * Tables problem is considered a classification when the target column
   * is CATEGORY DataType.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.ClassificationEvaluationMetrics classification_evaluation_metrics = 8;
   * </code>
   */
  com.google.cloud.automl.v1beta1.ClassificationProto.ClassificationEvaluationMetricsOrBuilder
      getClassificationEvaluationMetricsOrBuilder();

  /**
   *
   *
   * <pre>
   * Model evaluation metrics for Tables regression.
   * Tables problem is considered a regression when the target column
   * has FLOAT64 DataType.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.RegressionEvaluationMetrics regression_evaluation_metrics = 24;
   * </code>
   *
   * @return Whether the regressionEvaluationMetrics field is set.
   */
  boolean hasRegressionEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for Tables regression.
   * Tables problem is considered a regression when the target column
   * has FLOAT64 DataType.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.RegressionEvaluationMetrics regression_evaluation_metrics = 24;
   * </code>
   *
   * @return The regressionEvaluationMetrics.
   */
  com.google.cloud.automl.v1beta1.RegressionProto.RegressionEvaluationMetrics
      getRegressionEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for Tables regression.
   * Tables problem is considered a regression when the target column
   * has FLOAT64 DataType.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.RegressionEvaluationMetrics regression_evaluation_metrics = 24;
   * </code>
   */
  com.google.cloud.automl.v1beta1.RegressionProto.RegressionEvaluationMetricsOrBuilder
      getRegressionEvaluationMetricsOrBuilder();

  /**
   *
   *
   * <pre>
   * Model evaluation metrics for translation.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.TranslationEvaluationMetrics translation_evaluation_metrics = 9;
   * </code>
   *
   * @return Whether the translationEvaluationMetrics field is set.
   */
  boolean hasTranslationEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for translation.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.TranslationEvaluationMetrics translation_evaluation_metrics = 9;
   * </code>
   *
   * @return The translationEvaluationMetrics.
   */
  com.google.cloud.automl.v1beta1.TranslationEvaluationMetrics getTranslationEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for translation.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.TranslationEvaluationMetrics translation_evaluation_metrics = 9;
   * </code>
   */
  com.google.cloud.automl.v1beta1.TranslationEvaluationMetricsOrBuilder
      getTranslationEvaluationMetricsOrBuilder();

  /**
   *
   *
   * <pre>
   * Model evaluation metrics for image object detection.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.ImageObjectDetectionEvaluationMetrics image_object_detection_evaluation_metrics = 12;
   * </code>
   *
   * @return Whether the imageObjectDetectionEvaluationMetrics field is set.
   */
  boolean hasImageObjectDetectionEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for image object detection.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.ImageObjectDetectionEvaluationMetrics image_object_detection_evaluation_metrics = 12;
   * </code>
   *
   * @return The imageObjectDetectionEvaluationMetrics.
   */
  com.google.cloud.automl.v1beta1.ImageObjectDetectionEvaluationMetrics
      getImageObjectDetectionEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for image object detection.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.ImageObjectDetectionEvaluationMetrics image_object_detection_evaluation_metrics = 12;
   * </code>
   */
  com.google.cloud.automl.v1beta1.ImageObjectDetectionEvaluationMetricsOrBuilder
      getImageObjectDetectionEvaluationMetricsOrBuilder();

  /**
   *
   *
   * <pre>
   * Model evaluation metrics for video object tracking.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.VideoObjectTrackingEvaluationMetrics video_object_tracking_evaluation_metrics = 14;
   * </code>
   *
   * @return Whether the videoObjectTrackingEvaluationMetrics field is set.
   */
  boolean hasVideoObjectTrackingEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for video object tracking.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.VideoObjectTrackingEvaluationMetrics video_object_tracking_evaluation_metrics = 14;
   * </code>
   *
   * @return The videoObjectTrackingEvaluationMetrics.
   */
  com.google.cloud.automl.v1beta1.VideoObjectTrackingEvaluationMetrics
      getVideoObjectTrackingEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Model evaluation metrics for video object tracking.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.VideoObjectTrackingEvaluationMetrics video_object_tracking_evaluation_metrics = 14;
   * </code>
   */
  com.google.cloud.automl.v1beta1.VideoObjectTrackingEvaluationMetricsOrBuilder
      getVideoObjectTrackingEvaluationMetricsOrBuilder();

  /**
   *
   *
   * <pre>
   * Evaluation metrics for text sentiment models.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.TextSentimentEvaluationMetrics text_sentiment_evaluation_metrics = 11;
   * </code>
   *
   * @return Whether the textSentimentEvaluationMetrics field is set.
   */
  boolean hasTextSentimentEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Evaluation metrics for text sentiment models.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.TextSentimentEvaluationMetrics text_sentiment_evaluation_metrics = 11;
   * </code>
   *
   * @return The textSentimentEvaluationMetrics.
   */
  com.google.cloud.automl.v1beta1.TextSentimentProto.TextSentimentEvaluationMetrics
      getTextSentimentEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Evaluation metrics for text sentiment models.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.TextSentimentEvaluationMetrics text_sentiment_evaluation_metrics = 11;
   * </code>
   */
  com.google.cloud.automl.v1beta1.TextSentimentProto.TextSentimentEvaluationMetricsOrBuilder
      getTextSentimentEvaluationMetricsOrBuilder();

  /**
   *
   *
   * <pre>
   * Evaluation metrics for text extraction models.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.TextExtractionEvaluationMetrics text_extraction_evaluation_metrics = 13;
   * </code>
   *
   * @return Whether the textExtractionEvaluationMetrics field is set.
   */
  boolean hasTextExtractionEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Evaluation metrics for text extraction models.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.TextExtractionEvaluationMetrics text_extraction_evaluation_metrics = 13;
   * </code>
   *
   * @return The textExtractionEvaluationMetrics.
   */
  com.google.cloud.automl.v1beta1.TextExtractionEvaluationMetrics
      getTextExtractionEvaluationMetrics();
  /**
   *
   *
   * <pre>
   * Evaluation metrics for text extraction models.
   * </pre>
   *
   * <code>
   * .google.cloud.automl.v1beta1.TextExtractionEvaluationMetrics text_extraction_evaluation_metrics = 13;
   * </code>
   */
  com.google.cloud.automl.v1beta1.TextExtractionEvaluationMetricsOrBuilder
      getTextExtractionEvaluationMetricsOrBuilder();

  /**
   *
   *
   * <pre>
   * Output only. Resource name of the model evaluation.
   * Format:
   * `projects/{project_id}/locations/{location_id}/models/{model_id}/modelEvaluations/{model_evaluation_id}`
   * </pre>
   *
   * <code>string name = 1;</code>
   *
   * @return The name.
   */
  java.lang.String getName();
  /**
   *
   *
   * <pre>
   * Output only. Resource name of the model evaluation.
   * Format:
   * `projects/{project_id}/locations/{location_id}/models/{model_id}/modelEvaluations/{model_evaluation_id}`
   * </pre>
   *
   * <code>string name = 1;</code>
   *
   * @return The bytes for name.
   */
  com.google.protobuf.ByteString getNameBytes();

  /**
   *
   *
   * <pre>
   * 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.
   * </pre>
   *
   * <code>string annotation_spec_id = 2;</code>
   *
   * @return The annotationSpecId.
   */
  java.lang.String getAnnotationSpecId();
  /**
   *
   *
   * <pre>
   * 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.
   * </pre>
   *
   * <code>string annotation_spec_id = 2;</code>
   *
   * @return The bytes for annotationSpecId.
   */
  com.google.protobuf.ByteString getAnnotationSpecIdBytes();

  /**
   *
   *
   * <pre>
   * Output only. The value of
   * [display_name][google.cloud.automl.v1beta1.AnnotationSpec.display_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.
   * </pre>
   *
   * <code>string display_name = 15;</code>
   *
   * @return The displayName.
   */
  java.lang.String getDisplayName();
  /**
   *
   *
   * <pre>
   * Output only. The value of
   * [display_name][google.cloud.automl.v1beta1.AnnotationSpec.display_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.
   * </pre>
   *
   * <code>string display_name = 15;</code>
   *
   * @return The bytes for displayName.
   */
  com.google.protobuf.ByteString getDisplayNameBytes();

  /**
   *
   *
   * <pre>
   * Output only. Timestamp when this model evaluation was created.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp create_time = 5;</code>
   *
   * @return Whether the createTime field is set.
   */
  boolean hasCreateTime();
  /**
   *
   *
   * <pre>
   * Output only. Timestamp when this model evaluation was created.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp create_time = 5;</code>
   *
   * @return The createTime.
   */
  com.google.protobuf.Timestamp getCreateTime();
  /**
   *
   *
   * <pre>
   * Output only. Timestamp when this model evaluation was created.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp create_time = 5;</code>
   */
  com.google.protobuf.TimestampOrBuilder getCreateTimeOrBuilder();

  /**
   *
   *
   * <pre>
   * 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].
   * </pre>
   *
   * <code>int32 evaluated_example_count = 6;</code>
   *
   * @return The evaluatedExampleCount.
   */
  int getEvaluatedExampleCount();

  public com.google.cloud.automl.v1beta1.ModelEvaluation.MetricsCase getMetricsCase();
}
