syntax = "proto3"; import "google/protobuf/empty.proto"; package wacker; service Wacker { rpc Run (RunRequest) returns (ProgramResponse); rpc Serve (ServeRequest) returns (ProgramResponse); rpc List (google.protobuf.Empty) returns (ListResponse); rpc Stop (StopRequest) returns (google.protobuf.Empty); rpc Restart (RestartRequest) returns (google.protobuf.Empty); rpc Delete (DeleteRequest) returns (google.protobuf.Empty); rpc Logs(LogRequest) returns (stream LogResponse); } message RunRequest { string path = 1; repeated string args = 2; } message ServeRequest { string path = 1; string addr = 2; } message ProgramResponse { string id = 1; } message Program { string id = 1; string path = 2; uint32 program_type = 3; uint32 status = 4; string addr = 5; } message ListResponse { repeated Program programs = 1; } message StopRequest { repeated string ids = 1; } message RestartRequest { repeated string ids = 1; } message DeleteRequest { repeated string ids = 1; } message LogRequest { string id = 1; bool follow = 2; uint32 tail = 3; } message LogResponse { string content = 1; }