syntax = "proto3"; package go.micro.runtime; service Runtime { rpc Create(CreateRequest) returns (CreateResponse) {}; rpc Get(GetRequest) returns (GetResponse) {}; rpc Delete(DeleteRequest) returns (DeleteResponse) {}; rpc Update(UpdateRequest) returns (UpdateResponse) {}; rpc List(ListRequest) returns (ListResponse) {}; } message Service { // name of the service string name = 1; // version of the service string version = 2; // git url of the source string source = 3; // local path of the source string path = 4; // command to execute repeated string exec = 5; // service metadata map metadata = 6; } message CreateOptions { // command to pass in repeated string command = 1; // environment to pass in repeated string env = 2; // output to send to string output = 3; } message CreateRequest { Service service = 1; CreateOptions options = 2; } message CreateResponse {} message GetOptions { // version of the service string version = 2; } message GetRequest { string name = 1; GetOptions options = 2; } message GetResponse { repeated Service services = 1; } message DeleteRequest { Service service = 1; } message DeleteResponse {} message UpdateRequest { Service service = 1; } message UpdateResponse {} message ListRequest {} message ListResponse { repeated Service services = 1; }