/*
 * 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/v1/prediction_service.proto

package com.google.cloud.automl.v1;

public interface PredictResponseOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.cloud.automl.v1.PredictResponse)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Prediction result.
   * AutoML Translation and AutoML Natural Language Sentiment Analysis
   * return precisely one payload.
   * </pre>
   *
   * <code>repeated .google.cloud.automl.v1.AnnotationPayload payload = 1;</code>
   */
  java.util.List<com.google.cloud.automl.v1.AnnotationPayload> getPayloadList();
  /**
   *
   *
   * <pre>
   * Prediction result.
   * AutoML Translation and AutoML Natural Language Sentiment Analysis
   * return precisely one payload.
   * </pre>
   *
   * <code>repeated .google.cloud.automl.v1.AnnotationPayload payload = 1;</code>
   */
  com.google.cloud.automl.v1.AnnotationPayload getPayload(int index);
  /**
   *
   *
   * <pre>
   * Prediction result.
   * AutoML Translation and AutoML Natural Language Sentiment Analysis
   * return precisely one payload.
   * </pre>
   *
   * <code>repeated .google.cloud.automl.v1.AnnotationPayload payload = 1;</code>
   */
  int getPayloadCount();
  /**
   *
   *
   * <pre>
   * Prediction result.
   * AutoML Translation and AutoML Natural Language Sentiment Analysis
   * return precisely one payload.
   * </pre>
   *
   * <code>repeated .google.cloud.automl.v1.AnnotationPayload payload = 1;</code>
   */
  java.util.List<? extends com.google.cloud.automl.v1.AnnotationPayloadOrBuilder>
      getPayloadOrBuilderList();
  /**
   *
   *
   * <pre>
   * Prediction result.
   * AutoML Translation and AutoML Natural Language Sentiment Analysis
   * return precisely one payload.
   * </pre>
   *
   * <code>repeated .google.cloud.automl.v1.AnnotationPayload payload = 1;</code>
   */
  com.google.cloud.automl.v1.AnnotationPayloadOrBuilder getPayloadOrBuilder(int index);

  /**
   *
   *
   * <pre>
   * The preprocessed example that AutoML actually makes prediction on.
   * Empty if AutoML does not preprocess the input example.
   * For AutoML Natural Language (Classification, Entity Extraction, and
   * Sentiment Analysis), if the input is a document, the recognized text is
   * returned in the
   * [document_text][google.cloud.automl.v1.Document.document_text]
   * property.
   * </pre>
   *
   * <code>.google.cloud.automl.v1.ExamplePayload preprocessed_input = 3;</code>
   *
   * @return Whether the preprocessedInput field is set.
   */
  boolean hasPreprocessedInput();
  /**
   *
   *
   * <pre>
   * The preprocessed example that AutoML actually makes prediction on.
   * Empty if AutoML does not preprocess the input example.
   * For AutoML Natural Language (Classification, Entity Extraction, and
   * Sentiment Analysis), if the input is a document, the recognized text is
   * returned in the
   * [document_text][google.cloud.automl.v1.Document.document_text]
   * property.
   * </pre>
   *
   * <code>.google.cloud.automl.v1.ExamplePayload preprocessed_input = 3;</code>
   *
   * @return The preprocessedInput.
   */
  com.google.cloud.automl.v1.ExamplePayload getPreprocessedInput();
  /**
   *
   *
   * <pre>
   * The preprocessed example that AutoML actually makes prediction on.
   * Empty if AutoML does not preprocess the input example.
   * For AutoML Natural Language (Classification, Entity Extraction, and
   * Sentiment Analysis), if the input is a document, the recognized text is
   * returned in the
   * [document_text][google.cloud.automl.v1.Document.document_text]
   * property.
   * </pre>
   *
   * <code>.google.cloud.automl.v1.ExamplePayload preprocessed_input = 3;</code>
   */
  com.google.cloud.automl.v1.ExamplePayloadOrBuilder getPreprocessedInputOrBuilder();

  /**
   *
   *
   * <pre>
   * Additional domain-specific prediction response metadata.
   * AutoML Vision Object Detection
   * `max_bounding_box_count`
   * : (int64) The maximum number of bounding boxes to return per image.
   * AutoML Natural Language Sentiment Analysis
   * `sentiment_score`
   * : (float, deprecated) A value between -1 and 1,
   *   -1 maps to least positive sentiment, while 1 maps to the most positive
   *   one and the higher the score, the more positive the sentiment in the
   *   document is. Yet these values are relative to the training data, so
   *   e.g. if all data was positive then -1 is also positive (though
   *   the least).
   *   `sentiment_score` is not the same as "score" and "magnitude"
   *   from Sentiment Analysis in the Natural Language API.
   * </pre>
   *
   * <code>map&lt;string, string&gt; metadata = 2;</code>
   */
  int getMetadataCount();
  /**
   *
   *
   * <pre>
   * Additional domain-specific prediction response metadata.
   * AutoML Vision Object Detection
   * `max_bounding_box_count`
   * : (int64) The maximum number of bounding boxes to return per image.
   * AutoML Natural Language Sentiment Analysis
   * `sentiment_score`
   * : (float, deprecated) A value between -1 and 1,
   *   -1 maps to least positive sentiment, while 1 maps to the most positive
   *   one and the higher the score, the more positive the sentiment in the
   *   document is. Yet these values are relative to the training data, so
   *   e.g. if all data was positive then -1 is also positive (though
   *   the least).
   *   `sentiment_score` is not the same as "score" and "magnitude"
   *   from Sentiment Analysis in the Natural Language API.
   * </pre>
   *
   * <code>map&lt;string, string&gt; metadata = 2;</code>
   */
  boolean containsMetadata(java.lang.String key);
  /** Use {@link #getMetadataMap()} instead. */
  @java.lang.Deprecated
  java.util.Map<java.lang.String, java.lang.String> getMetadata();
  /**
   *
   *
   * <pre>
   * Additional domain-specific prediction response metadata.
   * AutoML Vision Object Detection
   * `max_bounding_box_count`
   * : (int64) The maximum number of bounding boxes to return per image.
   * AutoML Natural Language Sentiment Analysis
   * `sentiment_score`
   * : (float, deprecated) A value between -1 and 1,
   *   -1 maps to least positive sentiment, while 1 maps to the most positive
   *   one and the higher the score, the more positive the sentiment in the
   *   document is. Yet these values are relative to the training data, so
   *   e.g. if all data was positive then -1 is also positive (though
   *   the least).
   *   `sentiment_score` is not the same as "score" and "magnitude"
   *   from Sentiment Analysis in the Natural Language API.
   * </pre>
   *
   * <code>map&lt;string, string&gt; metadata = 2;</code>
   */
  java.util.Map<java.lang.String, java.lang.String> getMetadataMap();
  /**
   *
   *
   * <pre>
   * Additional domain-specific prediction response metadata.
   * AutoML Vision Object Detection
   * `max_bounding_box_count`
   * : (int64) The maximum number of bounding boxes to return per image.
   * AutoML Natural Language Sentiment Analysis
   * `sentiment_score`
   * : (float, deprecated) A value between -1 and 1,
   *   -1 maps to least positive sentiment, while 1 maps to the most positive
   *   one and the higher the score, the more positive the sentiment in the
   *   document is. Yet these values are relative to the training data, so
   *   e.g. if all data was positive then -1 is also positive (though
   *   the least).
   *   `sentiment_score` is not the same as "score" and "magnitude"
   *   from Sentiment Analysis in the Natural Language API.
   * </pre>
   *
   * <code>map&lt;string, string&gt; metadata = 2;</code>
   */
  /* nullable */
  java.lang.String getMetadataOrDefault(
      java.lang.String key,
      /* nullable */
      java.lang.String defaultValue);
  /**
   *
   *
   * <pre>
   * Additional domain-specific prediction response metadata.
   * AutoML Vision Object Detection
   * `max_bounding_box_count`
   * : (int64) The maximum number of bounding boxes to return per image.
   * AutoML Natural Language Sentiment Analysis
   * `sentiment_score`
   * : (float, deprecated) A value between -1 and 1,
   *   -1 maps to least positive sentiment, while 1 maps to the most positive
   *   one and the higher the score, the more positive the sentiment in the
   *   document is. Yet these values are relative to the training data, so
   *   e.g. if all data was positive then -1 is also positive (though
   *   the least).
   *   `sentiment_score` is not the same as "score" and "magnitude"
   *   from Sentiment Analysis in the Natural Language API.
   * </pre>
   *
   * <code>map&lt;string, string&gt; metadata = 2;</code>
   */
  java.lang.String getMetadataOrThrow(java.lang.String key);
}
