syntax = "proto3"; package containerd.v1; import "google/protobuf/empty.proto"; import "gogoproto/gogo.proto"; service ExecutionService { rpc Create(CreateContainerRequest) returns (CreateContainerResponse); rpc Start(StartContainerRequest) returns (google.protobuf.Empty); rpc Update(UpdateContainerRequest) returns (google.protobuf.Empty); rpc Pause(PauseContainerRequest) returns (google.protobuf.Empty); rpc Resume(ResumeContainerRequest) returns (google.protobuf.Empty); rpc Delete(DeleteContainerRequest) returns (google.protobuf.Empty); rpc Get(GetContainerRequest) returns (GetContainerResponse); rpc List(ListContainersRequest) returns (ListContainersResponse); rpc StartProcess(StartProcessRequest) returns (StartProcessResponse); rpc GetProcess(GetProcessRequest) returns (GetProcessResponse); rpc SignalProcess(SignalProcessRequest) returns (google.protobuf.Empty); rpc DeleteProcess(DeleteProcessRequest) returns (google.protobuf.Empty); rpc ListProcesses(ListProcessesRequest) returns (ListProcessesResponse); } message StartContainerRequest { string id = 1 [(gogoproto.customname) = "ID"]; } message CreateContainerRequest { string id = 1 [(gogoproto.customname) = "ID"]; string bundle_path = 2; string stdin = 3; string stdout = 4; string stderr = 5; } message CreateContainerResponse { Container container = 1; } message DeleteContainerRequest { string id = 1 [(gogoproto.customname) = "ID"]; } message ListContainersRequest { repeated string owner = 1; } message ListContainersResponse { repeated Container containers = 1; } message StartProcessRequest { string container_id = 1; Process process = 2; string stdin = 3; string stdout = 4; string stderr = 5; } message StartProcessResponse { Process process = 1; } message Container { string id = 1 [(gogoproto.customname) = "ID"]; string bundle_path = 2; Status status = 4; } message Process { string id = 1 [(gogoproto.customname) = "ID"]; int64 pid = 2; repeated string args = 3; repeated string env = 4; User user = 5; string cwd = 6; bool terminal = 7; uint32 exit_status = 8; } enum Status { CREATED = 0; RUNNING = 1; STOPPED = 2; PAUSED = 3; } message User { uint32 uid = 1; uint32 gid = 2; repeated uint32 additionalGids = 3; } message GetContainerRequest { string id = 1 [(gogoproto.customname) = "ID"]; } message GetContainerResponse { Container container = 1; } message UpdateContainerRequest { Container container = 1; string bundle_path = 2; } message PauseContainerRequest { string id = 1 [(gogoproto.customname) = "ID"]; } message ResumeContainerRequest { string id = 1 [(gogoproto.customname) = "ID"]; } message GetProcessRequest { Container container = 1; string process_id = 2; } message GetProcessResponse { Process process = 1; } message SignalProcessRequest { Container container = 1; Process process = 2; uint32 signal = 3; } message DeleteProcessRequest { Container container = 1; Process process = 2; } message ListProcessesRequest { Container container = 1; } message ListProcessesResponse { repeated Process processes = 1; }