/*
 * 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/api/servicecontrol/v1/log_entry.proto

package com.google.api.servicecontrol.v1;

public interface LogEntryOrBuilder
    extends
    // @@protoc_insertion_point(interface_extends:google.api.servicecontrol.v1.LogEntry)
    com.google.protobuf.MessageOrBuilder {

  /**
   *
   *
   * <pre>
   * Required. The log to which this log entry belongs. Examples: `"syslog"`,
   * `"book_log"`.
   * </pre>
   *
   * <code>string name = 10;</code>
   *
   * @return The name.
   */
  java.lang.String getName();
  /**
   *
   *
   * <pre>
   * Required. The log to which this log entry belongs. Examples: `"syslog"`,
   * `"book_log"`.
   * </pre>
   *
   * <code>string name = 10;</code>
   *
   * @return The bytes for name.
   */
  com.google.protobuf.ByteString getNameBytes();

  /**
   *
   *
   * <pre>
   * The time the event described by the log entry occurred. If
   * omitted, defaults to operation start time.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp timestamp = 11;</code>
   *
   * @return Whether the timestamp field is set.
   */
  boolean hasTimestamp();
  /**
   *
   *
   * <pre>
   * The time the event described by the log entry occurred. If
   * omitted, defaults to operation start time.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp timestamp = 11;</code>
   *
   * @return The timestamp.
   */
  com.google.protobuf.Timestamp getTimestamp();
  /**
   *
   *
   * <pre>
   * The time the event described by the log entry occurred. If
   * omitted, defaults to operation start time.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp timestamp = 11;</code>
   */
  com.google.protobuf.TimestampOrBuilder getTimestampOrBuilder();

  /**
   *
   *
   * <pre>
   * The severity of the log entry. The default value is
   * `LogSeverity.DEFAULT`.
   * </pre>
   *
   * <code>.google.logging.type.LogSeverity severity = 12;</code>
   *
   * @return The enum numeric value on the wire for severity.
   */
  int getSeverityValue();
  /**
   *
   *
   * <pre>
   * The severity of the log entry. The default value is
   * `LogSeverity.DEFAULT`.
   * </pre>
   *
   * <code>.google.logging.type.LogSeverity severity = 12;</code>
   *
   * @return The severity.
   */
  com.google.logging.type.LogSeverity getSeverity();

  /**
   *
   *
   * <pre>
   * Optional. Information about the HTTP request associated with this
   * log entry, if applicable.
   * </pre>
   *
   * <code>.google.api.servicecontrol.v1.HttpRequest http_request = 14;</code>
   *
   * @return Whether the httpRequest field is set.
   */
  boolean hasHttpRequest();
  /**
   *
   *
   * <pre>
   * Optional. Information about the HTTP request associated with this
   * log entry, if applicable.
   * </pre>
   *
   * <code>.google.api.servicecontrol.v1.HttpRequest http_request = 14;</code>
   *
   * @return The httpRequest.
   */
  com.google.api.servicecontrol.v1.HttpRequest getHttpRequest();
  /**
   *
   *
   * <pre>
   * Optional. Information about the HTTP request associated with this
   * log entry, if applicable.
   * </pre>
   *
   * <code>.google.api.servicecontrol.v1.HttpRequest http_request = 14;</code>
   */
  com.google.api.servicecontrol.v1.HttpRequestOrBuilder getHttpRequestOrBuilder();

  /**
   *
   *
   * <pre>
   * Optional. Resource name of the trace associated with the log entry, if any.
   * If this field contains a relative resource name, you can assume the name is
   * relative to `//tracing.googleapis.com`. Example:
   * `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824`
   * </pre>
   *
   * <code>string trace = 15;</code>
   *
   * @return The trace.
   */
  java.lang.String getTrace();
  /**
   *
   *
   * <pre>
   * Optional. Resource name of the trace associated with the log entry, if any.
   * If this field contains a relative resource name, you can assume the name is
   * relative to `//tracing.googleapis.com`. Example:
   * `projects/my-projectid/traces/06796866738c859f2f19b7cfb3214824`
   * </pre>
   *
   * <code>string trace = 15;</code>
   *
   * @return The bytes for trace.
   */
  com.google.protobuf.ByteString getTraceBytes();

  /**
   *
   *
   * <pre>
   * A unique ID for the log entry used for deduplication. If omitted,
   * the implementation will generate one based on operation_id.
   * </pre>
   *
   * <code>string insert_id = 4;</code>
   *
   * @return The insertId.
   */
  java.lang.String getInsertId();
  /**
   *
   *
   * <pre>
   * A unique ID for the log entry used for deduplication. If omitted,
   * the implementation will generate one based on operation_id.
   * </pre>
   *
   * <code>string insert_id = 4;</code>
   *
   * @return The bytes for insertId.
   */
  com.google.protobuf.ByteString getInsertIdBytes();

  /**
   *
   *
   * <pre>
   * A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 13;</code>
   */
  int getLabelsCount();
  /**
   *
   *
   * <pre>
   * A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 13;</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>
   * A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 13;</code>
   */
  java.util.Map<java.lang.String, java.lang.String> getLabelsMap();
  /**
   *
   *
   * <pre>
   * A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 13;</code>
   */
  /* nullable */
  java.lang.String getLabelsOrDefault(
      java.lang.String key,
      /* nullable */
      java.lang.String defaultValue);
  /**
   *
   *
   * <pre>
   * A set of user-defined (key, value) data that provides additional
   * information about the log entry.
   * </pre>
   *
   * <code>map&lt;string, string&gt; labels = 13;</code>
   */
  java.lang.String getLabelsOrThrow(java.lang.String key);

  /**
   *
   *
   * <pre>
   * The log entry payload, represented as a protocol buffer that is
   * expressed as a JSON object. The only accepted type currently is
   * [AuditLog][google.cloud.audit.AuditLog].
   * </pre>
   *
   * <code>.google.protobuf.Any proto_payload = 2;</code>
   *
   * @return Whether the protoPayload field is set.
   */
  boolean hasProtoPayload();
  /**
   *
   *
   * <pre>
   * The log entry payload, represented as a protocol buffer that is
   * expressed as a JSON object. The only accepted type currently is
   * [AuditLog][google.cloud.audit.AuditLog].
   * </pre>
   *
   * <code>.google.protobuf.Any proto_payload = 2;</code>
   *
   * @return The protoPayload.
   */
  com.google.protobuf.Any getProtoPayload();
  /**
   *
   *
   * <pre>
   * The log entry payload, represented as a protocol buffer that is
   * expressed as a JSON object. The only accepted type currently is
   * [AuditLog][google.cloud.audit.AuditLog].
   * </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>
   *
   * @return Whether the textPayload field is set.
   */
  boolean hasTextPayload();
  /**
   *
   *
   * <pre>
   * The log entry payload, represented as a Unicode string (UTF-8).
   * </pre>
   *
   * <code>string text_payload = 3;</code>
   *
   * @return The textPayload.
   */
  java.lang.String getTextPayload();
  /**
   *
   *
   * <pre>
   * The log entry payload, represented as a Unicode string (UTF-8).
   * </pre>
   *
   * <code>string text_payload = 3;</code>
   *
   * @return The bytes for textPayload.
   */
  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 struct_payload = 6;</code>
   *
   * @return Whether the structPayload field is set.
   */
  boolean hasStructPayload();
  /**
   *
   *
   * <pre>
   * The log entry payload, represented as a structure that
   * is expressed as a JSON object.
   * </pre>
   *
   * <code>.google.protobuf.Struct struct_payload = 6;</code>
   *
   * @return The structPayload.
   */
  com.google.protobuf.Struct getStructPayload();
  /**
   *
   *
   * <pre>
   * The log entry payload, represented as a structure that
   * is expressed as a JSON object.
   * </pre>
   *
   * <code>.google.protobuf.Struct struct_payload = 6;</code>
   */
  com.google.protobuf.StructOrBuilder getStructPayloadOrBuilder();

  /**
   *
   *
   * <pre>
   * Optional. Information about an operation associated with the log entry, if
   * applicable.
   * </pre>
   *
   * <code>.google.api.servicecontrol.v1.LogEntryOperation operation = 16;</code>
   *
   * @return Whether the operation field is set.
   */
  boolean hasOperation();
  /**
   *
   *
   * <pre>
   * Optional. Information about an operation associated with the log entry, if
   * applicable.
   * </pre>
   *
   * <code>.google.api.servicecontrol.v1.LogEntryOperation operation = 16;</code>
   *
   * @return The operation.
   */
  com.google.api.servicecontrol.v1.LogEntryOperation getOperation();
  /**
   *
   *
   * <pre>
   * Optional. Information about an operation associated with the log entry, if
   * applicable.
   * </pre>
   *
   * <code>.google.api.servicecontrol.v1.LogEntryOperation operation = 16;</code>
   */
  com.google.api.servicecontrol.v1.LogEntryOperationOrBuilder getOperationOrBuilder();

  /**
   *
   *
   * <pre>
   * Optional. Source code location information associated with the log entry,
   * if any.
   * </pre>
   *
   * <code>.google.api.servicecontrol.v1.LogEntrySourceLocation source_location = 17;</code>
   *
   * @return Whether the sourceLocation field is set.
   */
  boolean hasSourceLocation();
  /**
   *
   *
   * <pre>
   * Optional. Source code location information associated with the log entry,
   * if any.
   * </pre>
   *
   * <code>.google.api.servicecontrol.v1.LogEntrySourceLocation source_location = 17;</code>
   *
   * @return The sourceLocation.
   */
  com.google.api.servicecontrol.v1.LogEntrySourceLocation getSourceLocation();
  /**
   *
   *
   * <pre>
   * Optional. Source code location information associated with the log entry,
   * if any.
   * </pre>
   *
   * <code>.google.api.servicecontrol.v1.LogEntrySourceLocation source_location = 17;</code>
   */
  com.google.api.servicecontrol.v1.LogEntrySourceLocationOrBuilder getSourceLocationOrBuilder();

  public com.google.api.servicecontrol.v1.LogEntry.PayloadCase getPayloadCase();
}
