syntax = "proto3"; package gosuvpb; message NopRequest {} message Response { int32 code = 1; string message = 2; } message Request { string name = 1; } message TailRequest { string name = 1; int32 number = 2; // the location of number lines bool follow = 3; } message ProgramInfo { string name = 1; string command = 2; string dir = 3; } message ProgramStatus { string name = 1; string status = 2; string extra = 3; } message StatusResponse { repeated ProgramStatus programs = 1; } message LogLine { string line = 1; } service GoSuv { rpc Shutdown(NopRequest) returns (Response) {} rpc Version(NopRequest) returns (Response) {} rpc Status(NopRequest) returns (StatusResponse) {} } service Program { rpc Start(Request) returns (Response) {} rpc Stop(Request) returns (Response) {} rpc Tail(TailRequest) returns (stream LogLine) {} }