blob: 0f7e313a8550f31d7a6c3da7cc700076e724c2be [file] [log] [blame]
syntax = "proto3";
package teaclave_frontend_service_proto;
import "teaclave_common.proto";
message RegisterInputFileRequest {
string url = 1;
string cmac = 2;
teaclave_common_proto.FileCryptoInfo crypto_info = 3;
}
message RegisterInputFileResponse {
string data_id = 1;
}
message UpdateInputFileRequest {
string data_id = 1;
string url = 2;
}
message UpdateInputFileResponse {
string data_id = 1;
}
message RegisterOutputFileRequest {
string url = 1;
teaclave_common_proto.FileCryptoInfo crypto_info = 2;
}
message RegisterOutputFileResponse {
string data_id = 1;
}
message UpdateOutputFileRequest {
string data_id = 1;
string url = 2;
}
message UpdateOutputFileResponse {
string data_id = 1;
}
message RegisterFusionOutputRequest {
repeated string owner_list = 1;
}
message RegisterFusionOutputResponse {
string data_id = 1;
}
message RegisterInputFromOutputRequest {
string data_id = 1;
}
message RegisterInputFromOutputResponse {
string data_id = 1;
}
message GetOutputFileRequest {
string data_id = 1;
}
message GetOutputFileResponse {
repeated string owner = 1;
string cmac = 2;
}
message GetInputFileRequest {
string data_id = 1;
}
message GetInputFileResponse {
repeated string owner = 1;
string cmac = 2;
}
message FunctionInput {
string name = 1;
string description = 2;
}
message FunctionOutput {
string name = 1;
string description = 2;
}
message OwnerList {
string data_name = 1;
repeated string uids = 2;
}
message RegisterFunctionRequest {
string name = 1;
string description = 2;
string executor_type = 3;
bool public = 4;
bytes payload = 5;
repeated string arguments = 6;
repeated FunctionInput inputs = 10;
repeated FunctionOutput outputs = 11;
}
message RegisterFunctionResponse {
string function_id = 1;
}
message GetFunctionRequest {
string function_id = 1;
}
message GetFunctionResponse {
string name = 1;
string description = 2;
string executor_type = 3;
string owner = 4;
bytes payload = 5;
bool public = 6;
repeated string arguments = 7;
repeated FunctionInput inputs = 10;
repeated FunctionOutput outputs = 11;
}
message DataMap {
string data_name = 1;
string data_id = 2;
}
message CreateTaskRequest {
string function_id = 1;
string function_arguments = 2;
string executor = 3;
repeated OwnerList inputs_ownership = 10;
repeated OwnerList outputs_ownership= 11;
}
message CreateTaskResponse {
string task_id = 1;
}
message GetTaskRequest {
string task_id = 1;
}
message GetTaskResponse {
string task_id = 1;
string creator = 2;
string function_id = 3;
string function_owner = 4;
string function_arguments = 5;
repeated OwnerList inputs_ownership = 6;
repeated OwnerList outputs_ownership = 7;
repeated string participants = 8;
repeated string approved_users = 9;
repeated DataMap assigned_inputs = 10;
repeated DataMap assigned_outputs = 11;
teaclave_common_proto.TaskStatus status = 20;
teaclave_common_proto.TaskResult result = 21;
}
message AssignDataRequest {
string task_id = 1;
repeated DataMap inputs = 2;
repeated DataMap outputs = 3;
}
message AssignDataResponse { }
message ApproveTaskRequest {
string task_id = 1;
}
message ApproveTaskResponse { }
message InvokeTaskRequest {
string task_id = 1;
}
message InvokeTaskResponse { }
service TeaclaveFrontend {
rpc RegisterInputFile (RegisterInputFileRequest) returns (RegisterInputFileResponse);
rpc RegisterOutputFile (RegisterOutputFileRequest) returns (RegisterOutputFileResponse);
rpc UpdateInputFile (UpdateInputFileRequest) returns (UpdateInputFileResponse);
rpc UpdateOutputFile (UpdateOutputFileRequest) returns (UpdateOutputFileResponse);
rpc RegisterFusionOutput (RegisterFusionOutputRequest) returns (RegisterFusionOutputResponse);
rpc RegisterInputFromOutput (RegisterInputFromOutputRequest) returns (RegisterInputFromOutputResponse);
rpc GetOutputFile (GetOutputFileRequest) returns (GetOutputFileResponse);
rpc GetInputFile (GetInputFileRequest) returns (GetInputFileResponse);
rpc RegisterFunction (RegisterFunctionRequest) returns (RegisterFunctionResponse);
rpc GetFunction (GetFunctionRequest) returns (GetFunctionResponse);
rpc CreateTask (CreateTaskRequest) returns (CreateTaskResponse);
rpc GetTask (GetTaskRequest) returns (GetTaskResponse);
rpc AssignData (AssignDataRequest) returns (AssignDataResponse);
rpc ApproveTask (ApproveTaskRequest) returns (ApproveTaskResponse);
rpc InvokeTask (InvokeTaskRequest) returns (InvokeTaskResponse);
}