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

package org.tensorflow.proto.framework;

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

  /**
   * <pre>
   * "string"
   * </pre>
   *
   * <code>bytes s = 2;</code>
   */
  com.google.protobuf.ByteString getS();

  /**
   * <pre>
   * "int"
   * </pre>
   *
   * <code>int64 i = 3;</code>
   */
  long getI();

  /**
   * <pre>
   * "float"
   * </pre>
   *
   * <code>float f = 4;</code>
   */
  float getF();

  /**
   * <pre>
   * "bool"
   * </pre>
   *
   * <code>bool b = 5;</code>
   */
  boolean getB();

  /**
   * <pre>
   * "type"
   * </pre>
   *
   * <code>.tensorflow.DataType type = 6;</code>
   */
  int getTypeValue();
  /**
   * <pre>
   * "type"
   * </pre>
   *
   * <code>.tensorflow.DataType type = 6;</code>
   */
  org.tensorflow.proto.framework.DataType getType();

  /**
   * <pre>
   * "shape"
   * </pre>
   *
   * <code>.tensorflow.TensorShapeProto shape = 7;</code>
   */
  boolean hasShape();
  /**
   * <pre>
   * "shape"
   * </pre>
   *
   * <code>.tensorflow.TensorShapeProto shape = 7;</code>
   */
  org.tensorflow.proto.framework.TensorShapeProto getShape();
  /**
   * <pre>
   * "shape"
   * </pre>
   *
   * <code>.tensorflow.TensorShapeProto shape = 7;</code>
   */
  org.tensorflow.proto.framework.TensorShapeProtoOrBuilder getShapeOrBuilder();

  /**
   * <pre>
   * "tensor"
   * </pre>
   *
   * <code>.tensorflow.TensorProto tensor = 8;</code>
   */
  boolean hasTensor();
  /**
   * <pre>
   * "tensor"
   * </pre>
   *
   * <code>.tensorflow.TensorProto tensor = 8;</code>
   */
  org.tensorflow.proto.framework.TensorProto getTensor();
  /**
   * <pre>
   * "tensor"
   * </pre>
   *
   * <code>.tensorflow.TensorProto tensor = 8;</code>
   */
  org.tensorflow.proto.framework.TensorProtoOrBuilder getTensorOrBuilder();

  /**
   * <pre>
   * any "list(...)"
   * </pre>
   *
   * <code>.tensorflow.AttrValue.ListValue list = 1;</code>
   */
  boolean hasList();
  /**
   * <pre>
   * any "list(...)"
   * </pre>
   *
   * <code>.tensorflow.AttrValue.ListValue list = 1;</code>
   */
  org.tensorflow.proto.framework.AttrValue.ListValue getList();
  /**
   * <pre>
   * any "list(...)"
   * </pre>
   *
   * <code>.tensorflow.AttrValue.ListValue list = 1;</code>
   */
  org.tensorflow.proto.framework.AttrValue.ListValueOrBuilder getListOrBuilder();

  /**
   * <pre>
   * "func" represents a function. func.name is a function's name or
   * a primitive op's name. func.attr.first is the name of an attr
   * defined for that function. func.attr.second is the value for
   * that attr in the instantiation.
   * </pre>
   *
   * <code>.tensorflow.NameAttrList func = 10;</code>
   */
  boolean hasFunc();
  /**
   * <pre>
   * "func" represents a function. func.name is a function's name or
   * a primitive op's name. func.attr.first is the name of an attr
   * defined for that function. func.attr.second is the value for
   * that attr in the instantiation.
   * </pre>
   *
   * <code>.tensorflow.NameAttrList func = 10;</code>
   */
  org.tensorflow.proto.framework.NameAttrList getFunc();
  /**
   * <pre>
   * "func" represents a function. func.name is a function's name or
   * a primitive op's name. func.attr.first is the name of an attr
   * defined for that function. func.attr.second is the value for
   * that attr in the instantiation.
   * </pre>
   *
   * <code>.tensorflow.NameAttrList func = 10;</code>
   */
  org.tensorflow.proto.framework.NameAttrListOrBuilder getFuncOrBuilder();

  /**
   * <pre>
   * This is a placeholder only used in nodes defined inside a
   * function.  It indicates the attr value will be supplied when
   * the function is instantiated.  For example, let us suppose a
   * node "N" in function "FN". "N" has an attr "A" with value
   * placeholder = "foo". When FN is instantiated with attr "foo"
   * set to "bar", the instantiated node N's attr A will have been
   * given the value "bar".
   * </pre>
   *
   * <code>string placeholder = 9;</code>
   */
  java.lang.String getPlaceholder();
  /**
   * <pre>
   * This is a placeholder only used in nodes defined inside a
   * function.  It indicates the attr value will be supplied when
   * the function is instantiated.  For example, let us suppose a
   * node "N" in function "FN". "N" has an attr "A" with value
   * placeholder = "foo". When FN is instantiated with attr "foo"
   * set to "bar", the instantiated node N's attr A will have been
   * given the value "bar".
   * </pre>
   *
   * <code>string placeholder = 9;</code>
   */
  com.google.protobuf.ByteString
      getPlaceholderBytes();

  public org.tensorflow.proto.framework.AttrValue.ValueCase getValueCase();
}
