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

package org.tensorflow.proto.framework;

public interface RemoteTensorHandleOrBuilder extends
    // @@protoc_insertion_point(interface_extends:tensorflow.eager.RemoteTensorHandle)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * The ID of the operation that produced this tensor.
   * </pre>
   *
   * <code>int64 op_id = 1;</code>
   */
  long getOpId();

  /**
   * <pre>
   * The index into the outputs of the operation that produced this tensor.
   * </pre>
   *
   * <code>int32 output_num = 2;</code>
   */
  int getOutputNum();

  /**
   * <pre>
   * Device where the tensor is located. Cannot be empty.
   * For multi-device functions, it's the default device passed to placer.
   * </pre>
   *
   * <code>string device = 3;</code>
   */
  java.lang.String getDevice();
  /**
   * <pre>
   * Device where the tensor is located. Cannot be empty.
   * For multi-device functions, it's the default device passed to placer.
   * </pre>
   *
   * <code>string device = 3;</code>
   */
  com.google.protobuf.ByteString
      getDeviceBytes();

  /**
   * <pre>
   * Device of the operation producing this tensor. Can be empty if the
   * operation producing this tensor is a multi-device function.
   * </pre>
   *
   * <code>string op_device = 4;</code>
   */
  java.lang.String getOpDevice();
  /**
   * <pre>
   * Device of the operation producing this tensor. Can be empty if the
   * operation producing this tensor is a multi-device function.
   * </pre>
   *
   * <code>string op_device = 4;</code>
   */
  com.google.protobuf.ByteString
      getOpDeviceBytes();

  /**
   * <pre>
   * Tensor type.
   * </pre>
   *
   * <code>.tensorflow.DataType dtype = 5;</code>
   */
  int getDtypeValue();
  /**
   * <pre>
   * Tensor type.
   * </pre>
   *
   * <code>.tensorflow.DataType dtype = 5;</code>
   */
  org.tensorflow.proto.framework.DataType getDtype();

  /**
   * <pre>
   * Optional data types and shapes of a remote resource variable.
   * </pre>
   *
   * <code>repeated .tensorflow.eager.ResourceDtypeAndShape resource_dtypes_and_shapes = 6;</code>
   */
  java.util.List<org.tensorflow.proto.framework.ResourceDtypeAndShape> 
      getResourceDtypesAndShapesList();
  /**
   * <pre>
   * Optional data types and shapes of a remote resource variable.
   * </pre>
   *
   * <code>repeated .tensorflow.eager.ResourceDtypeAndShape resource_dtypes_and_shapes = 6;</code>
   */
  org.tensorflow.proto.framework.ResourceDtypeAndShape getResourceDtypesAndShapes(int index);
  /**
   * <pre>
   * Optional data types and shapes of a remote resource variable.
   * </pre>
   *
   * <code>repeated .tensorflow.eager.ResourceDtypeAndShape resource_dtypes_and_shapes = 6;</code>
   */
  int getResourceDtypesAndShapesCount();
  /**
   * <pre>
   * Optional data types and shapes of a remote resource variable.
   * </pre>
   *
   * <code>repeated .tensorflow.eager.ResourceDtypeAndShape resource_dtypes_and_shapes = 6;</code>
   */
  java.util.List<? extends org.tensorflow.proto.framework.ResourceDtypeAndShapeOrBuilder> 
      getResourceDtypesAndShapesOrBuilderList();
  /**
   * <pre>
   * Optional data types and shapes of a remote resource variable.
   * </pre>
   *
   * <code>repeated .tensorflow.eager.ResourceDtypeAndShape resource_dtypes_and_shapes = 6;</code>
   */
  org.tensorflow.proto.framework.ResourceDtypeAndShapeOrBuilder getResourceDtypesAndShapesOrBuilder(
      int index);
}
