// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/logging/v2/log_entry.proto

package com.google.logging.v2;

public interface LogEntryOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.logging.v2.LogEntry)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * Required. The resource name of the log to which this log entry belongs:
   *     "projects/[PROJECT_ID]/logs/[LOG_ID]"
   *     "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
   *     "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
   *     "folders/[FOLDER_ID]/logs/[LOG_ID]"
   *  A project number may optionally be used in place of PROJECT_ID. The
   *  project number is translated to its corresponding PROJECT_ID internally
   *  and the `log_name` field will contain PROJECT_ID in queries and exports.
   * `[LOG_ID]` must be URL-encoded within `log_name`. Example:
   * `"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity"`.
   * `[LOG_ID]` must be less than 512 characters long and can only include the
   * following characters: upper and lower case alphanumeric characters,
   * forward-slash, underscore, hyphen, and period.
   * For backward compatibility, if `log_name` begins with a forward-slash, such
   * as `/projects/...`, then the log entry is ingested as usual but the
   * forward-slash is removed. Listing the log entry will not show the leading
   * slash and filtering for a log name with a leading slash will never return
   * any results.
   * </pre>
   *
   * <code>string log_name = 12;</code>
   */
  java.lang.String getLogName();
  /**
   * <pre>
   * Required. The resource name of the log to which this log entry belongs:
   *     "projects/[PROJECT_ID]/logs/[LOG_ID]"
   *     "organizations/[ORGANIZATION_ID]/logs/[LOG_ID]"
   *     "billingAccounts/[BILLING_ACCOUNT_ID]/logs/[LOG_ID]"
   *     "folders/[FOLDER_ID]/logs/[LOG_ID]"
   *  A project number may optionally be used in place of PROJECT_ID. The
   *  project number is translated to its corresponding PROJECT_ID internally
   *  and the `log_name` field will contain PROJECT_ID in queries and exports.
   * `[LOG_ID]` must be URL-encoded within `log_name`. Example:
   * `"organizations/1234567890/logs/cloudresourcemanager.googleapis.com%2Factivity"`.
   * `[LOG_ID]` must be less than 512 characters long and can only include the
   * following characters: upper and lower case alphanumeric characters,
   * forward-slash, underscore, hyphen, and period.
   * For backward compatibility, if `log_name` begins with a forward-slash, such
   * as `/projects/...`, then the log entry is ingested as usual but the
   * forward-slash is removed. Listing the log entry will not show the leading
   * slash and filtering for a log name with a leading slash will never return
   * any results.
   * </pre>
   *
   * <code>string log_name = 12;</code>
   */
  com.google.protobuf.ByteString
      getLogNameBytes();

  /**
   * <pre>
   * Required. The monitored resource associated with this log entry.
   * Example: a log entry that reports a database error would be
   * associated with the monitored resource designating the particular
   * database that reported the error.
   * </pre>
   *
   * <code>.google.api.MonitoredResource resource = 8;</code>
   */
  boolean hasResource();
  /**
   * <pre>
   * Required. The monitored resource associated with this log entry.
   * Example: a log entry that reports a database error would be
   * associated with the monitored resource designating the particular
   * database that reported the error.
   * </pre>
   *
   * <code>.google.api.MonitoredResource resource = 8;</code>
   */
  com.google.api.MonitoredResource getResource();
  /**
   * <pre>
   * Required. The monitored resource associated with this log entry.
   * Example: a log entry that reports a database error would be
   * associated with the monitored resource designating the particular
   * database that reported the error.
   * </pre>
   *
   * <code>.google.api.MonitoredResource resource = 8;</code>
   */
  com.google.api.MonitoredResourceOrBuilder getResourceOrBuilder();

  /**
   * <pre>
   * The log entry payload, represented as a protocol buffer.  Some
   * Google Cloud Platform services use this field for their log
   * entry payloads.
   * </pre>
   *
   * <code>.google.protobuf.Any proto_payload = 2;</code>
   */
  boolean hasProtoPayload();
  /**
   * <pre>
   * The log entry payload, represented as a protocol buffer.  Some
   * Google Cloud Platform services use this field for their log
   * entry payloads.
   * </pre>
   *
   * <code>.google.protobuf.Any proto_payload = 2;</code>
   */
  com.google.protobuf.Any getProtoPayload();
  /**
   * <pre>
   * The log entry payload, represented as a protocol buffer.  Some
   * Google Cloud Platform services use this field for their log
   * entry payloads.
   * </pre>
   *
   * <code>.google.protobuf.Any proto_payload = 2;</code>
   */
  com.google.protobuf.AnyOrBuilder getProtoPayloadOrBuilder();

  /**
   * <pre>
   * The log entry payload, represented as a Unicode string (UTF-8).
   * </pre>
   *
   * <code>string text_payload = 3;</code>
   */
  java.lang.String getTextPayload();
  /**
   * <pre>
   * The log entry payload, represented as a Unicode string (UTF-8).
   * </pre>
   *
   * <code>string text_payload = 3;</code>
   */
  com.google.protobuf.ByteString
      getTextPayloadBytes();

  /**
   * <pre>
   * The log entry payload, represented as a structure that is
   * expressed as a JSON object.
   * </pre>
   *
   * <code>.google.protobuf.Struct json_payload = 6;</code>
   */
  boolean hasJsonPayload();
  /**
   * <pre>
   * The log entry payload, represented as a structure that is
   * expressed as a JSON object.
   * </pre>
   *
   * <code>.google.protobuf.Struct json_payload = 6;</code>
   */
  com.google.protobuf.Struct getJsonPayload();
  /**
   * <pre>
   * The log entry payload, represented as a structure that is
   * expressed as a JSON object.
   * </pre>
   *
   * <code>.google.protobuf.Struct json_payload = 6;</code>
   */
  com.google.protobuf.StructOrBuilder getJsonPayloadOrBuilder();

  /**
   * <pre>
   * Optional. The time the event described by the log entry occurred.
   * This time is used to compute the log entry's age and to enforce
   * the logs retention period. If this field is omitted in a new log
   * entry, then Stackdriver Logging assigns it the current time.
   * Incoming log entries should have timestamps that are no more than
   * the [logs retention period](/logging/quota-policy) in the past,
   * and no more than 24 hours in the future.
   * See the `entries.write` API method for more information.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp timestamp = 9;</code>
   */
  boolean hasTimestamp();
  /**
   * <pre>
   * Optional. The time the event described by the log entry occurred.
   * This time is used to compute the log entry's age and to enforce
   * the logs retention period. If this field is omitted in a new log
   * entry, then Stackdriver Logging assigns it the current time.
   * Incoming log entries should have timestamps that are no more than
   * the [logs retention period](/logging/quota-policy) in the past,
   * and no more than 24 hours in the future.
   * See the `entries.write` API method for more information.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp timestamp = 9;</code>
   */
  com.google.protobuf.Timestamp getTimestamp();
  /**
   * <pre>
   * Optional. The time the event described by the log entry occurred.
   * This time is used to compute the log entry's age and to enforce
   * the logs retention period. If this field is omitted in a new log
   * entry, then Stackdriver Logging assigns it the current time.
   * Incoming log entries should have timestamps that are no more than
   * the [logs retention period](/logging/quota-policy) in the past,
   * and no more than 24 hours in the future.
   * See the `entries.write` API method for more information.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp timestamp = 9;</code>
   */
  com.google.protobuf.TimestampOrBuilder getTimestampOrBuilder();

  /**
   * <pre>
   * Output only. The time the log entry was received by Stackdriver Logging.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp receive_timestamp = 24;</code>
   */
  boolean hasReceiveTimestamp();
  /**
   * <pre>
   * Output only. The time the log entry was received by Stackdriver Logging.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp receive_timestamp = 24;</code>
   */
  com.google.protobuf.Timestamp getReceiveTimestamp();
  /**
   * <pre>
   * Output only. The time the log entry was received by Stackdriver Logging.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp receive_timestamp = 24;</code>
   */
  com.google.protobuf.TimestampOrBuilder getReceiveTimestampOrBuilder();

  /**
   * <pre>
   * Optional. The severity of the log entry. The default value is
   * `LogSeverity.DEFAULT`.
   * </pre>
   *
   * <code>.google.logging.type.LogSeverity severity = 10;</code>
   */
  int getSeverityValue();
  /**
   * <pre>
   * Optional. The severity of the log entry. The default value is
   * `LogSeverity.DEFAULT`.
   * </pre>
   *
   * <code>.google.logging.type.LogSeverity severity = 10;</code>
   */
  com.google.logging.type.LogSeverity getSeverity();

  /**
   * <pre>
   * Optional. A unique identifier for the log entry. If you provide a value,
   * then Stackdriver Logging considers other log entries in the same project,
   * with the same `timestamp`, and with the same `insert_id` to be duplicates
   * which can be removed.  If omitted in new log entries, then Stackdriver
   * Logging assigns its own unique identifier. The `insert_id` is also used
   * to order log entries that have the same `timestamp` value.
   * </pre>
   *
   * <code>string insert_id = 4;</code>
   */
  java.lang.String getInsertId();
  /**
   * <pre>
   * Optional. A unique identifier for the log entry. If you provide a value,
   * then Stackdriver Logging considers other log entries in the same project,
   * with the same `timestamp`, and with the same `insert_id` to be duplicates
   * which can be removed.  If omitted in new log entries, then Stackdriver
   * Logging assigns its own unique identifier. The `insert_id` is also used
   * to order log entries that have the same `timestamp` value.
   * </pre>
   *
   * <code>string insert_id = 4;</code>
   */
  com.google.protobuf.ByteString
      getInsertIdBytes();

  /**
   * <pre>
   * Optional. Information about the HTTP request associated with this
   * log entry, if applicable.
   * </pre>
   *
   * <code>.google.logging.type.HttpRequest http_request = 7;</code>
   */
  boolean hasHttpRequest();
  /**
   * <pre>
   * Optional. Information about the HTTP request associated with this
   * log entry, if applicable.
   * </pre>
   *
   * <code>.google.logging.type.HttpRequest http_request = 7;</code>
   */
  com.google.logging.type.HttpRequest getHttpRequest();
  /**
   * <pre>
   * Optional. Information about the HTTP request associated with this
   * log entry, if applicable.
   * </pre>
   *
   * <code>.google.logging.type.HttpRequest http_request = 7;</code>
   */
  com.google.logging.type.HttpRequestOrBuilder getHttpRequestOrBuilder();

  /**
   * <pre>
   * Optional. A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 11;</code>
   */
  int getLabelsCount();
  /**
   * <pre>
   * Optional. A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 11;</code>
   */
  boolean containsLabels(
      java.lang.String key);
  /**
   * Use {@link #getLabelsMap()} instead.
   */
  @java.lang.Deprecated
  java.util.Map<java.lang.String, java.lang.String>
  getLabels();
  /**
   * <pre>
   * Optional. A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 11;</code>
   */
  java.util.Map<java.lang.String, java.lang.String>
  getLabelsMap();
  /**
   * <pre>
   * Optional. A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 11;</code>
   */

  java.lang.String getLabelsOrDefault(
      java.lang.String key,
      java.lang.String defaultValue);
  /**
   * <pre>
   * Optional. A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 11;</code>
   */

  java.lang.String getLabelsOrThrow(
      java.lang.String key);

  /**
   * <pre>
   * Optional. Information about an operation associated with the log entry, if
   * applicable.
   * </pre>
   *
   * <code>.google.logging.v2.LogEntryOperation operation = 15;</code>
   */
  boolean hasOperation();
  /**
   * <pre>
   * Optional. Information about an operation associated with the log entry, if
   * applicable.
   * </pre>
   *
   * <code>.google.logging.v2.LogEntryOperation operation = 15;</code>
   */
  com.google.logging.v2.LogEntryOperation getOperation();
  /**
   * <pre>
   * Optional. Information about an operation associated with the log entry, if
   * applicable.
   * </pre>
   *
   * <code>.google.logging.v2.LogEntryOperation operation = 15;</code>
   */
  com.google.logging.v2.LogEntryOperationOrBuilder getOperationOrBuilder();

  /**
   * <pre>
   * Optional. Resource name of the trace associated with the log entry, if any.
   * If it contains a relative resource name, the name is assumed to be relative
   * to `//tracing.googleapis.com`. Example:
   * `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824`
   * </pre>
   *
   * <code>string trace = 22;</code>
   */
  java.lang.String getTrace();
  /**
   * <pre>
   * Optional. Resource name of the trace associated with the log entry, if any.
   * If it contains a relative resource name, the name is assumed to be relative
   * to `//tracing.googleapis.com`. Example:
   * `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824`
   * </pre>
   *
   * <code>string trace = 22;</code>
   */
  com.google.protobuf.ByteString
      getTraceBytes();

  /**
   * <pre>
   * Optional. Id of the span within the trace associated with the log entry.
   * e.g. "0000000000000042"
   * For Stackdriver trace spans, this is the same format that the Stackdriver
   * trace API uses.
   * The ID is a 16-character hexadecimal encoding of an 8-byte array.
   * </pre>
   *
   * <code>string span_id = 27;</code>
   */
  java.lang.String getSpanId();
  /**
   * <pre>
   * Optional. Id of the span within the trace associated with the log entry.
   * e.g. "0000000000000042"
   * For Stackdriver trace spans, this is the same format that the Stackdriver
   * trace API uses.
   * The ID is a 16-character hexadecimal encoding of an 8-byte array.
   * </pre>
   *
   * <code>string span_id = 27;</code>
   */
  com.google.protobuf.ByteString
      getSpanIdBytes();

  /**
   * <pre>
   * Optional. Source code location information associated with the log entry,
   * if any.
   * </pre>
   *
   * <code>.google.logging.v2.LogEntrySourceLocation source_location = 23;</code>
   */
  boolean hasSourceLocation();
  /**
   * <pre>
   * Optional. Source code location information associated with the log entry,
   * if any.
   * </pre>
   *
   * <code>.google.logging.v2.LogEntrySourceLocation source_location = 23;</code>
   */
  com.google.logging.v2.LogEntrySourceLocation getSourceLocation();
  /**
   * <pre>
   * Optional. Source code location information associated with the log entry,
   * if any.
   * </pre>
   *
   * <code>.google.logging.v2.LogEntrySourceLocation source_location = 23;</code>
   */
  com.google.logging.v2.LogEntrySourceLocationOrBuilder getSourceLocationOrBuilder();

  public com.google.logging.v2.LogEntry.PayloadCase getPayloadCase();
}
