// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/devtools/cloudtrace/v2/trace.proto

package com.google.devtools.cloudtrace.v2;

public interface SpanOrBuilder extends
    // @@protoc_insertion_point(interface_extends:google.devtools.cloudtrace.v2.Span)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * The resource name of the span in the following format:
   *     projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/[SPAN_ID]
   * [TRACE_ID] is a unique identifier for a trace within a project;
   * it is a 32-character hexadecimal encoding of a 16-byte array.
   * [SPAN_ID] is a unique identifier for a span within a trace; it
   * is a 16-character hexadecimal encoding of an 8-byte array.
   * </pre>
   *
   * <code>string name = 1;</code>
   */
  java.lang.String getName();
  /**
   * <pre>
   * The resource name of the span in the following format:
   *     projects/[PROJECT_ID]/traces/[TRACE_ID]/spans/[SPAN_ID]
   * [TRACE_ID] is a unique identifier for a trace within a project;
   * it is a 32-character hexadecimal encoding of a 16-byte array.
   * [SPAN_ID] is a unique identifier for a span within a trace; it
   * is a 16-character hexadecimal encoding of an 8-byte array.
   * </pre>
   *
   * <code>string name = 1;</code>
   */
  com.google.protobuf.ByteString
      getNameBytes();

  /**
   * <pre>
   * The [SPAN_ID] portion of the span's resource name.
   * </pre>
   *
   * <code>string span_id = 2;</code>
   */
  java.lang.String getSpanId();
  /**
   * <pre>
   * The [SPAN_ID] portion of the span's resource name.
   * </pre>
   *
   * <code>string span_id = 2;</code>
   */
  com.google.protobuf.ByteString
      getSpanIdBytes();

  /**
   * <pre>
   * The [SPAN_ID] of this span's parent span. If this is a root span,
   * then this field must be empty.
   * </pre>
   *
   * <code>string parent_span_id = 3;</code>
   */
  java.lang.String getParentSpanId();
  /**
   * <pre>
   * The [SPAN_ID] of this span's parent span. If this is a root span,
   * then this field must be empty.
   * </pre>
   *
   * <code>string parent_span_id = 3;</code>
   */
  com.google.protobuf.ByteString
      getParentSpanIdBytes();

  /**
   * <pre>
   * A description of the span's operation (up to 128 bytes).
   * Stackdriver Trace displays the description in the
   * {% dynamic print site_values.console_name %}.
   * For example, the display name can be a qualified method name or a file name
   * and a line number where the operation is called. A best practice is to use
   * the same display name within an application and at the same call point.
   * This makes it easier to correlate spans in different traces.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.TruncatableString display_name = 4;</code>
   */
  boolean hasDisplayName();
  /**
   * <pre>
   * A description of the span's operation (up to 128 bytes).
   * Stackdriver Trace displays the description in the
   * {% dynamic print site_values.console_name %}.
   * For example, the display name can be a qualified method name or a file name
   * and a line number where the operation is called. A best practice is to use
   * the same display name within an application and at the same call point.
   * This makes it easier to correlate spans in different traces.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.TruncatableString display_name = 4;</code>
   */
  com.google.devtools.cloudtrace.v2.TruncatableString getDisplayName();
  /**
   * <pre>
   * A description of the span's operation (up to 128 bytes).
   * Stackdriver Trace displays the description in the
   * {% dynamic print site_values.console_name %}.
   * For example, the display name can be a qualified method name or a file name
   * and a line number where the operation is called. A best practice is to use
   * the same display name within an application and at the same call point.
   * This makes it easier to correlate spans in different traces.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.TruncatableString display_name = 4;</code>
   */
  com.google.devtools.cloudtrace.v2.TruncatableStringOrBuilder getDisplayNameOrBuilder();

  /**
   * <pre>
   * The start time of the span. On the client side, this is the time kept by
   * the local machine where the span execution starts. On the server side, this
   * is the time when the server's application handler starts running.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp start_time = 5;</code>
   */
  boolean hasStartTime();
  /**
   * <pre>
   * The start time of the span. On the client side, this is the time kept by
   * the local machine where the span execution starts. On the server side, this
   * is the time when the server's application handler starts running.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp start_time = 5;</code>
   */
  com.google.protobuf.Timestamp getStartTime();
  /**
   * <pre>
   * The start time of the span. On the client side, this is the time kept by
   * the local machine where the span execution starts. On the server side, this
   * is the time when the server's application handler starts running.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp start_time = 5;</code>
   */
  com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder();

  /**
   * <pre>
   * The end time of the span. On the client side, this is the time kept by
   * the local machine where the span execution ends. On the server side, this
   * is the time when the server application handler stops running.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp end_time = 6;</code>
   */
  boolean hasEndTime();
  /**
   * <pre>
   * The end time of the span. On the client side, this is the time kept by
   * the local machine where the span execution ends. On the server side, this
   * is the time when the server application handler stops running.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp end_time = 6;</code>
   */
  com.google.protobuf.Timestamp getEndTime();
  /**
   * <pre>
   * The end time of the span. On the client side, this is the time kept by
   * the local machine where the span execution ends. On the server side, this
   * is the time when the server application handler stops running.
   * </pre>
   *
   * <code>.google.protobuf.Timestamp end_time = 6;</code>
   */
  com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder();

  /**
   * <pre>
   * A set of attributes on the span. You can have up to 32 attributes per
   * span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.Span.Attributes attributes = 7;</code>
   */
  boolean hasAttributes();
  /**
   * <pre>
   * A set of attributes on the span. You can have up to 32 attributes per
   * span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.Span.Attributes attributes = 7;</code>
   */
  com.google.devtools.cloudtrace.v2.Span.Attributes getAttributes();
  /**
   * <pre>
   * A set of attributes on the span. You can have up to 32 attributes per
   * span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.Span.Attributes attributes = 7;</code>
   */
  com.google.devtools.cloudtrace.v2.Span.AttributesOrBuilder getAttributesOrBuilder();

  /**
   * <pre>
   * Stack trace captured at the start of the span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.StackTrace stack_trace = 8;</code>
   */
  boolean hasStackTrace();
  /**
   * <pre>
   * Stack trace captured at the start of the span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.StackTrace stack_trace = 8;</code>
   */
  com.google.devtools.cloudtrace.v2.StackTrace getStackTrace();
  /**
   * <pre>
   * Stack trace captured at the start of the span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.StackTrace stack_trace = 8;</code>
   */
  com.google.devtools.cloudtrace.v2.StackTraceOrBuilder getStackTraceOrBuilder();

  /**
   * <pre>
   * A set of time events. You can have up to 32 annotations and 128 message
   * events per span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.Span.TimeEvents time_events = 9;</code>
   */
  boolean hasTimeEvents();
  /**
   * <pre>
   * A set of time events. You can have up to 32 annotations and 128 message
   * events per span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.Span.TimeEvents time_events = 9;</code>
   */
  com.google.devtools.cloudtrace.v2.Span.TimeEvents getTimeEvents();
  /**
   * <pre>
   * A set of time events. You can have up to 32 annotations and 128 message
   * events per span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.Span.TimeEvents time_events = 9;</code>
   */
  com.google.devtools.cloudtrace.v2.Span.TimeEventsOrBuilder getTimeEventsOrBuilder();

  /**
   * <pre>
   * Links associated with the span. You can have up to 128 links per Span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.Span.Links links = 10;</code>
   */
  boolean hasLinks();
  /**
   * <pre>
   * Links associated with the span. You can have up to 128 links per Span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.Span.Links links = 10;</code>
   */
  com.google.devtools.cloudtrace.v2.Span.Links getLinks();
  /**
   * <pre>
   * Links associated with the span. You can have up to 128 links per Span.
   * </pre>
   *
   * <code>.google.devtools.cloudtrace.v2.Span.Links links = 10;</code>
   */
  com.google.devtools.cloudtrace.v2.Span.LinksOrBuilder getLinksOrBuilder();

  /**
   * <pre>
   * An optional final status for this span.
   * </pre>
   *
   * <code>.google.rpc.Status status = 11;</code>
   */
  boolean hasStatus();
  /**
   * <pre>
   * An optional final status for this span.
   * </pre>
   *
   * <code>.google.rpc.Status status = 11;</code>
   */
  com.google.rpc.Status getStatus();
  /**
   * <pre>
   * An optional final status for this span.
   * </pre>
   *
   * <code>.google.rpc.Status status = 11;</code>
   */
  com.google.rpc.StatusOrBuilder getStatusOrBuilder();

  /**
   * <pre>
   * (Optional) Set this parameter to indicate whether this span is in
   * the same process as its parent. If you do not set this parameter,
   * Stackdriver Trace is unable to take advantage of this helpful
   * information.
   * </pre>
   *
   * <code>.google.protobuf.BoolValue same_process_as_parent_span = 12;</code>
   */
  boolean hasSameProcessAsParentSpan();
  /**
   * <pre>
   * (Optional) Set this parameter to indicate whether this span is in
   * the same process as its parent. If you do not set this parameter,
   * Stackdriver Trace is unable to take advantage of this helpful
   * information.
   * </pre>
   *
   * <code>.google.protobuf.BoolValue same_process_as_parent_span = 12;</code>
   */
  com.google.protobuf.BoolValue getSameProcessAsParentSpan();
  /**
   * <pre>
   * (Optional) Set this parameter to indicate whether this span is in
   * the same process as its parent. If you do not set this parameter,
   * Stackdriver Trace is unable to take advantage of this helpful
   * information.
   * </pre>
   *
   * <code>.google.protobuf.BoolValue same_process_as_parent_span = 12;</code>
   */
  com.google.protobuf.BoolValueOrBuilder getSameProcessAsParentSpanOrBuilder();

  /**
   * <pre>
   * An optional number of child spans that were generated while this span
   * was active. If set, allows implementation to detect missing child spans.
   * </pre>
   *
   * <code>.google.protobuf.Int32Value child_span_count = 13;</code>
   */
  boolean hasChildSpanCount();
  /**
   * <pre>
   * An optional number of child spans that were generated while this span
   * was active. If set, allows implementation to detect missing child spans.
   * </pre>
   *
   * <code>.google.protobuf.Int32Value child_span_count = 13;</code>
   */
  com.google.protobuf.Int32Value getChildSpanCount();
  /**
   * <pre>
   * An optional number of child spans that were generated while this span
   * was active. If set, allows implementation to detect missing child spans.
   * </pre>
   *
   * <code>.google.protobuf.Int32Value child_span_count = 13;</code>
   */
  com.google.protobuf.Int32ValueOrBuilder getChildSpanCountOrBuilder();
}
