// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/profiler/profiler_options.proto

package org.tensorflow.proto.profiler;

public interface ProfileOptionsOrBuilder extends
    // @@protoc_insertion_point(interface_extends:tensorflow.ProfileOptions)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * Some default value of option are not proto3 default value. Use this version
   * to determine if we should use default option value instead of proto3
   * default value.
   * </pre>
   *
   * <code>uint32 version = 5;</code>
   */
  int getVersion();

  /**
   * <pre>
   * Device type to profile/trace: (version &gt;= 1)
   * DeviceType::UNSPECIFIED: All registered device profiler will be enabled.
   * DeviceType::CPU: only CPU will be profiled.
   * DeviceType::GPU: only CPU/GPU will be profiled.
   * DeviceType::TPU: only CPU/TPU will be profiled.
   * DeviceType::PLUGGABLE_DEVICE: only CPU/pluggable devices with profilers
   * will be profiled.
   * </pre>
   *
   * <code>.tensorflow.ProfileOptions.DeviceType device_type = 6;</code>
   */
  int getDeviceTypeValue();
  /**
   * <pre>
   * Device type to profile/trace: (version &gt;= 1)
   * DeviceType::UNSPECIFIED: All registered device profiler will be enabled.
   * DeviceType::CPU: only CPU will be profiled.
   * DeviceType::GPU: only CPU/GPU will be profiled.
   * DeviceType::TPU: only CPU/TPU will be profiled.
   * DeviceType::PLUGGABLE_DEVICE: only CPU/pluggable devices with profilers
   * will be profiled.
   * </pre>
   *
   * <code>.tensorflow.ProfileOptions.DeviceType device_type = 6;</code>
   */
  org.tensorflow.proto.profiler.ProfileOptions.DeviceType getDeviceType();

  /**
   * <pre>
   * We don't collect the dataset ops by default for better trace-viewer
   * scalability. The caller can mannually set this field to include the ops.
   * </pre>
   *
   * <code>bool include_dataset_ops = 1;</code>
   */
  boolean getIncludeDatasetOps();

  /**
   * <pre>
   * Levels of host tracing: (version &gt;= 1)
   * - Level 0 is used to disable host traces.
   * - Level 1 enables tracing of only user instrumented (or default) TraceMe.
   * - Level 2 enables tracing of all level 1 TraceMe(s) and instrumented high
   *           level program execution details (expensive TF ops, XLA ops, etc).
   *           This is the default.
   * - Level 3 enables tracing of all level 2 TraceMe(s) and more verbose
   *           (low-level) program execution details (cheap TF ops, etc).
   * </pre>
   *
   * <code>uint32 host_tracer_level = 2;</code>
   */
  int getHostTracerLevel();

  /**
   * <pre>
   * Levels of device tracing: (version &gt;= 1)
   * - Level 0 is used to disable device traces.
   * - Level 1 is used to enable device traces.
   * - More levels might be defined for specific device for controlling the
   *   verbosity of the trace.
   * </pre>
   *
   * <code>uint32 device_tracer_level = 3;</code>
   */
  int getDeviceTracerLevel();

  /**
   * <pre>
   * Whether enable python function calls tracing. Runtime overhead ensues if
   * enabled. Default off. (version &gt;= 1)
   * </pre>
   *
   * <code>uint32 python_tracer_level = 4;</code>
   */
  int getPythonTracerLevel();

  /**
   * <pre>
   * Whether serialize hlo_proto when XLA is used. (version &gt;= 1)
   * </pre>
   *
   * <code>bool enable_hlo_proto = 7;</code>
   */
  boolean getEnableHloProto();

  /**
   * <pre>
   * The local profiler starts profiling at this Unix timestamp in nanoseconds.
   * </pre>
   *
   * <code>uint64 start_timestamp_ns = 8;</code>
   */
  long getStartTimestampNs();

  /**
   * <pre>
   * The local profiler collects `duration_ms` milliseconds of data. If the
   * value is 0, profiling continues until interrupted.
   * </pre>
   *
   * <code>uint64 duration_ms = 9;</code>
   */
  long getDurationMs();

  /**
   * <pre>
   * Directory to save profile data to. No-op when empty.
   * </pre>
   *
   * <code>string repository_path = 10;</code>
   */
  java.lang.String getRepositoryPath();
  /**
   * <pre>
   * Directory to save profile data to. No-op when empty.
   * </pre>
   *
   * <code>string repository_path = 10;</code>
   */
  com.google.protobuf.ByteString
      getRepositoryPathBytes();
}
