syntax = "proto3";

import "dag.proto";
import "tensor.proto";

package graphlearn;

message OpRequestPb {
  string name = 1;
  bool shardable = 2;
  bool need_server_ready = 3;
  repeated TensorValue params = 4;
  repeated TensorValue tensors = 5;
  repeated SparseTensorValue sparse_tensors = 6;
}

message OpResponsePb {
  repeated TensorValue params = 1;
  repeated TensorValue tensors = 2;
  repeated SparseTensorValue sparse_tensors = 3;
}

message StopRequestPb {
  int32 client_id = 1;
  int32 client_count = 2;
}

message StateRequestPb {
  int32 state = 1;
  int32 id = 2;
  int32 count = 3;
}

message StatusResponsePb {
  string msg = 1;
}

message DagValuesRequestPb {
  int32 id = 1;
  int32 client_id = 2;
}

message DagValuesResponsePb {
  repeated DagNodeValue dag_node_value = 1;
  int32 epoch = 2;
  int32 index = 3;
}
