// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/firestore/v1beta1/document.proto

package com.google.firestore.v1beta1;

public interface ValueOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.firestore.v1beta1.Value)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * A null value.
   * </pre>
   *
   * <code>.google.protobuf.NullValue null_value = 11;</code>
   */
  int getNullValueValue();
  /**
   * <pre>
   * A null value.
   * </pre>
   *
   * <code>.google.protobuf.NullValue null_value = 11;</code>
   */
  com.google.protobuf.NullValue getNullValue();

  /**
   * <pre>
   * A boolean value.
   * </pre>
   *
   * <code>bool boolean_value = 1;</code>
   */
  boolean getBooleanValue();

  /**
   * <pre>
   * An integer value.
   * </pre>
   *
   * <code>int64 integer_value = 2;</code>
   */
  long getIntegerValue();

  /**
   * <pre>
   * A double value.
   * </pre>
   *
   * <code>double double_value = 3;</code>
   */
  double getDoubleValue();

  /**
   * <pre>
   * A timestamp value.
   * Precise only to microseconds. When stored, any additional precision is
   * rounded down.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp timestamp_value = 10;</code>
   */
  boolean hasTimestampValue();
  /**
   * <pre>
   * A timestamp value.
   * Precise only to microseconds. When stored, any additional precision is
   * rounded down.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp timestamp_value = 10;</code>
   */
  com.google.protobuf.Timestamp getTimestampValue();
  /**
   * <pre>
   * A timestamp value.
   * Precise only to microseconds. When stored, any additional precision is
   * rounded down.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp timestamp_value = 10;</code>
   */
  com.google.protobuf.TimestampOrBuilder getTimestampValueOrBuilder();

  /**
   * <pre>
   * A string value.
   * The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.
   * Only the first 1,500 bytes of the UTF-8 representation are considered by
   * queries.
   * </pre>
   *
   * <code>string string_value = 17;</code>
   */
  java.lang.String getStringValue();
  /**
   * <pre>
   * A string value.
   * The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.
   * Only the first 1,500 bytes of the UTF-8 representation are considered by
   * queries.
   * </pre>
   *
   * <code>string string_value = 17;</code>
   */
  com.google.protobuf.ByteString
      getStringValueBytes();

  /**
   * <pre>
   * A bytes value.
   * Must not exceed 1 MiB - 89 bytes.
   * Only the first 1,500 bytes are considered by queries.
   * </pre>
   *
   * <code>bytes bytes_value = 18;</code>
   */
  com.google.protobuf.ByteString getBytesValue();

  /**
   * <pre>
   * A reference to a document. For example:
   * `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
   * </pre>
   *
   * <code>string reference_value = 5;</code>
   */
  java.lang.String getReferenceValue();
  /**
   * <pre>
   * A reference to a document. For example:
   * `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
   * </pre>
   *
   * <code>string reference_value = 5;</code>
   */
  com.google.protobuf.ByteString
      getReferenceValueBytes();

  /**
   * <pre>
   * A geo point value representing a point on the surface of Earth.
   * </pre>
   *
   * <code>.google.type.LatLng geo_point_value = 8;</code>
   */
  boolean hasGeoPointValue();
  /**
   * <pre>
   * A geo point value representing a point on the surface of Earth.
   * </pre>
   *
   * <code>.google.type.LatLng geo_point_value = 8;</code>
   */
  com.google.type.LatLng getGeoPointValue();
  /**
   * <pre>
   * A geo point value representing a point on the surface of Earth.
   * </pre>
   *
   * <code>.google.type.LatLng geo_point_value = 8;</code>
   */
  com.google.type.LatLngOrBuilder getGeoPointValueOrBuilder();

  /**
   * <pre>
   * An array value.
   * Cannot contain another array value.
   * </pre>
   *
   * <code>.google.firestore.v1beta1.ArrayValue array_value = 9;</code>
   */
  boolean hasArrayValue();
  /**
   * <pre>
   * An array value.
   * Cannot contain another array value.
   * </pre>
   *
   * <code>.google.firestore.v1beta1.ArrayValue array_value = 9;</code>
   */
  com.google.firestore.v1beta1.ArrayValue getArrayValue();
  /**
   * <pre>
   * An array value.
   * Cannot contain another array value.
   * </pre>
   *
   * <code>.google.firestore.v1beta1.ArrayValue array_value = 9;</code>
   */
  com.google.firestore.v1beta1.ArrayValueOrBuilder getArrayValueOrBuilder();

  /**
   * <pre>
   * A map value.
   * </pre>
   *
   * <code>.google.firestore.v1beta1.MapValue map_value = 6;</code>
   */
  boolean hasMapValue();
  /**
   * <pre>
   * A map value.
   * </pre>
   *
   * <code>.google.firestore.v1beta1.MapValue map_value = 6;</code>
   */
  com.google.firestore.v1beta1.MapValue getMapValue();
  /**
   * <pre>
   * A map value.
   * </pre>
   *
   * <code>.google.firestore.v1beta1.MapValue map_value = 6;</code>
   */
  com.google.firestore.v1beta1.MapValueOrBuilder getMapValueOrBuilder();

  public com.google.firestore.v1beta1.Value.ValueTypeCase getValueTypeCase();
}
