// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/grappler/costs/op_performance_data.proto

package org.tensorflow.proto.framework;

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

  /**
   * <pre>
   * The operation name.  There may be custom parameters in attrs.
   * </pre>
   *
   * <code>string op = 1;</code>
   */
  java.lang.String getOp();
  /**
   * <pre>
   * The operation name.  There may be custom parameters in attrs.
   * </pre>
   *
   * <code>string op = 1;</code>
   */
  com.google.protobuf.ByteString
      getOpBytes();

  /**
   * <pre>
   * Custom parameters impacting the behavior of the op.
   * </pre>
   *
   * <code>map&lt;string, .tensorflow.AttrValue&gt; attr = 2;</code>
   */
  int getAttrCount();
  /**
   * <pre>
   * Custom parameters impacting the behavior of the op.
   * </pre>
   *
   * <code>map&lt;string, .tensorflow.AttrValue&gt; attr = 2;</code>
   */
  boolean containsAttr(
      java.lang.String key);
  /**
   * Use {@link #getAttrMap()} instead.
   */
  @java.lang.Deprecated
  java.util.Map<java.lang.String, org.tensorflow.proto.framework.AttrValue>
  getAttr();
  /**
   * <pre>
   * Custom parameters impacting the behavior of the op.
   * </pre>
   *
   * <code>map&lt;string, .tensorflow.AttrValue&gt; attr = 2;</code>
   */
  java.util.Map<java.lang.String, org.tensorflow.proto.framework.AttrValue>
  getAttrMap();
  /**
   * <pre>
   * Custom parameters impacting the behavior of the op.
   * </pre>
   *
   * <code>map&lt;string, .tensorflow.AttrValue&gt; attr = 2;</code>
   */

  org.tensorflow.proto.framework.AttrValue getAttrOrDefault(
      java.lang.String key,
      org.tensorflow.proto.framework.AttrValue defaultValue);
  /**
   * <pre>
   * Custom parameters impacting the behavior of the op.
   * </pre>
   *
   * <code>map&lt;string, .tensorflow.AttrValue&gt; attr = 2;</code>
   */

  org.tensorflow.proto.framework.AttrValue getAttrOrThrow(
      java.lang.String key);

  /**
   * <code>repeated .tensorflow.OpInfo.TensorProperties inputs = 3;</code>
   */
  java.util.List<org.tensorflow.proto.framework.OpInfo.TensorProperties> 
      getInputsList();
  /**
   * <code>repeated .tensorflow.OpInfo.TensorProperties inputs = 3;</code>
   */
  org.tensorflow.proto.framework.OpInfo.TensorProperties getInputs(int index);
  /**
   * <code>repeated .tensorflow.OpInfo.TensorProperties inputs = 3;</code>
   */
  int getInputsCount();
  /**
   * <code>repeated .tensorflow.OpInfo.TensorProperties inputs = 3;</code>
   */
  java.util.List<? extends org.tensorflow.proto.framework.OpInfo.TensorPropertiesOrBuilder> 
      getInputsOrBuilderList();
  /**
   * <code>repeated .tensorflow.OpInfo.TensorProperties inputs = 3;</code>
   */
  org.tensorflow.proto.framework.OpInfo.TensorPropertiesOrBuilder getInputsOrBuilder(
      int index);

  /**
   * <pre>
   * Optional description of the op outputs
   * </pre>
   *
   * <code>repeated .tensorflow.OpInfo.TensorProperties outputs = 5;</code>
   */
  java.util.List<org.tensorflow.proto.framework.OpInfo.TensorProperties> 
      getOutputsList();
  /**
   * <pre>
   * Optional description of the op outputs
   * </pre>
   *
   * <code>repeated .tensorflow.OpInfo.TensorProperties outputs = 5;</code>
   */
  org.tensorflow.proto.framework.OpInfo.TensorProperties getOutputs(int index);
  /**
   * <pre>
   * Optional description of the op outputs
   * </pre>
   *
   * <code>repeated .tensorflow.OpInfo.TensorProperties outputs = 5;</code>
   */
  int getOutputsCount();
  /**
   * <pre>
   * Optional description of the op outputs
   * </pre>
   *
   * <code>repeated .tensorflow.OpInfo.TensorProperties outputs = 5;</code>
   */
  java.util.List<? extends org.tensorflow.proto.framework.OpInfo.TensorPropertiesOrBuilder> 
      getOutputsOrBuilderList();
  /**
   * <pre>
   * Optional description of the op outputs
   * </pre>
   *
   * <code>repeated .tensorflow.OpInfo.TensorProperties outputs = 5;</code>
   */
  org.tensorflow.proto.framework.OpInfo.TensorPropertiesOrBuilder getOutputsOrBuilder(
      int index);

  /**
   * <pre>
   * Device on which the operation is run.
   * </pre>
   *
   * <code>.tensorflow.DeviceProperties device = 4;</code>
   */
  boolean hasDevice();
  /**
   * <pre>
   * Device on which the operation is run.
   * </pre>
   *
   * <code>.tensorflow.DeviceProperties device = 4;</code>
   */
  org.tensorflow.proto.framework.DeviceProperties getDevice();
  /**
   * <pre>
   * Device on which the operation is run.
   * </pre>
   *
   * <code>.tensorflow.DeviceProperties device = 4;</code>
   */
  org.tensorflow.proto.framework.DevicePropertiesOrBuilder getDeviceOrBuilder();

  /**
   * <pre>
   * Information about the session configs.
   * </pre>
   *
   * <code>.tensorflow.SessionInfo session_info = 6;</code>
   */
  boolean hasSessionInfo();
  /**
   * <pre>
   * Information about the session configs.
   * </pre>
   *
   * <code>.tensorflow.SessionInfo session_info = 6;</code>
   */
  org.tensorflow.proto.framework.SessionInfo getSessionInfo();
  /**
   * <pre>
   * Information about the session configs.
   * </pre>
   *
   * <code>.tensorflow.SessionInfo session_info = 6;</code>
   */
  org.tensorflow.proto.framework.SessionInfoOrBuilder getSessionInfoOrBuilder();
}
