package exec.user;

option java_package = "org.apache.drill.exec.proto";
option java_outer_classname = "UserProtos";
option optimize_for = SPEED;

import "SchemaDef.proto";
import "UserBitShared.proto";

////// UserToBit RPC ///////
enum RpcType {
  HANDSHAKE = 0;
  ACK = 1;
  GOODBYE = 2;

  // user to bit
  RUN_QUERY = 3; // user is submitting a new query to the drillbit
  CANCEL_QUERY = 4; // user is sending a query cancellation request to the drillbit
  REQUEST_RESULTS = 5;
  RESUME_PAUSED_QUERY = 11; // user is sending a query resume request to the drillbit

  // bit to user
  QUERY_DATA = 6; // drillbit is sending a query result data batch to the user
  QUERY_HANDLE = 7;

  REQ_META_FUNCTIONS = 8;
  RESP_FUNCTION_LIST = 9;

  QUERY_RESULT = 10; // drillbit is reporting a query status change, most likely a terminal message, to the user
}

message Property {
  required string key = 1;
  required string value = 2;
}

message UserProperties {
  repeated Property properties = 1;
}

message UserToBitHandshake {
  optional exec.shared.RpcChannel channel = 1 [default = USER];
  optional bool support_listening = 2;
  optional int32 rpc_version = 3;
  optional exec.shared.UserCredentials credentials = 4;
  optional UserProperties properties = 5;
  optional bool support_complex_types = 6 [default = false];
  optional bool support_timeout = 7 [default = false];
}

message RequestResults {
  optional exec.shared.QueryId query_id = 1;
  optional int32 maximum_responses = 2;
}

message RunQuery {
  optional QueryResultsMode results_mode = 1;
  optional exec.shared.QueryType type = 2;
  optional string plan = 3;
}

enum QueryResultsMode {
  STREAM_FULL = 1; // Server will inform the client regularly on the status of the query. Once the query is completed, service will inform the client as each query chunk is made available.
  // STREAM_FIRST = 2; // Server will inform the client regularly on the status of the query.  Once the query is completed, server will inform the client of the first query chunk.
  // QUERY_FOR_STATUS = 3; // Client will need to query for status of query.
}

enum HandshakeStatus {
  SUCCESS = 1; // Handshake is successful (including authentication if any)
  RPC_VERSION_MISMATCH = 2; // Client and Server RPC versions are different
  AUTH_FAILED = 3; // User authentication failed
  UNKNOWN_FAILURE = 4; // Unknown failure, refer to the error message for more details
}

message BitToUserHandshake {
  optional int32 rpc_version = 2;
  optional HandshakeStatus status = 3;
  optional string errorId = 4;
  optional string errorMessage = 5;
}
