containerd/api/container/container.proto
Michael Crosby fc577a1cbb Add protos for initial API
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
2016-11-28 15:28:38 -08:00

123 lines
2.3 KiB
Protocol Buffer

syntax = "proto3";
package containerd.v1;
service Containers {
// container level rpcs
rpc Create(CreateRequest) returns (CreateResponse);
rpc Start(StartRequest) returns (StartResponse);
rpc Delete(DeleteRequest) returns (DeleteResponse);
rpc State(StateRequest) returns (StateResponse);
// container level action rpcs
rpc Update(UpdateRequest) returns (UpdateResponse);
rpc Pause(PauseRequest) returns (PauseResponse);
rpc Resume(ResumeRequest) returns (ResumeResponse);
// process level rpcs
rpc CreateProcess(CreateProcessRequest) returns (CreateProcessResponse);
rpc StartProcess(StartProcessRequest) returns (StartProcessResponse);
rpc ProcessState(ProcessStateRequest) returns (ProcessStateResponse);
rpc SignalProcess(SignalProcessRequest) returns (SignalProcessResponse);
rpc DeleteProcess(DeleteProcessRequest) returns (DeleteProcessResponse);
// agg rpcs
rpc List(ListRequest) returns (ListResponse);
rpc ListProcesses(ListProcessesRequest) returns (ListProcessesResponse);
rpc Events(EventsRequest) returns (stream EventsResponse);
}
message Container {
string id = 1;
repeated Mount mounts = 2;
Process process = 3;
optional string config_path = 4;
}
message Process {
repeated string args = 1;
repeated string env = 2;
User user = 3;
string cwd = 4;
bool terminal = 5;
string stdin = 6;
string stdout = 7;
string stderr = 8;
}
message Mount {
}
message User {
uint32 uid = 1;
uint32 gid = 2;
repeated uint32 additionalGids = 3;
}
message CreateRequest {
Container container = 1;
}
message CreateResponse {
}
message StartRequest {
string id = 1;
}
message StartResponse {
}
message StopRequest {
string id = 1;
uint32 signal = 2;
uint32 timeout = 3;
}
message StopResponse {
}
message DeleteRequest {
string id = 1;
}
message DeleteResponse {
}
message ListRequest {
}
message ListResponse {
repeated Container containers = 1;
}
message StateRequest {
string id = 1;
}
message StateResponse {
Container container = 1;
}
message ExecRequest {
string container_id = 1;
string id = 2;
Process process = 3;
}
message ExecResponse {
}
message UpdateRequest {
string id = 1;
}
message UpdateResponse {
}