141 lines
3.1 KiB
Protocol Buffer
141 lines
3.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package containerd.runtime.linux.shim.v1;
|
|
|
|
import "google/protobuf/any.proto";
|
|
import "google/protobuf/empty.proto";
|
|
import "gogoproto/gogo.proto";
|
|
import "github.com/containerd/containerd/api/types/mount/mount.proto";
|
|
import "github.com/containerd/containerd/api/types/task/task.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
// Shim service is launched for each container and is responsible for owning the IO
|
|
// for the container and its additional processes. The shim is also the parent of
|
|
// each container and allows reattaching to the IO and receiving the exit status
|
|
// for the container processes.
|
|
service Shim {
|
|
rpc Create(CreateRequest) returns (CreateResponse);
|
|
rpc Start(StartRequest) returns (google.protobuf.Empty);
|
|
rpc Delete(DeleteRequest) returns (DeleteResponse);
|
|
rpc DeleteProcess(DeleteProcessRequest) returns (DeleteResponse);
|
|
rpc State(StateRequest) returns (StateResponse);
|
|
rpc Processes(ProcessesRequest) returns (ProcessesResponse);
|
|
rpc Pause(PauseRequest) returns (google.protobuf.Empty);
|
|
rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
|
|
rpc Checkpoint(CheckpointRequest) returns (google.protobuf.Empty);
|
|
|
|
rpc Exit(ExitRequest) returns (google.protobuf.Empty);
|
|
rpc Events(EventsRequest) returns (stream containerd.v1.types.Event);
|
|
rpc Kill(KillRequest) returns (google.protobuf.Empty);
|
|
rpc Exec(ExecRequest) returns (ExecResponse);
|
|
rpc Pty(PtyRequest) returns (google.protobuf.Empty);
|
|
rpc CloseStdin(CloseStdinRequest) returns (google.protobuf.Empty);
|
|
}
|
|
|
|
message CreateRequest {
|
|
string id = 1;
|
|
string bundle = 2;
|
|
string runtime = 3;
|
|
bool no_pivot = 4;
|
|
bool terminal = 5;
|
|
string stdin = 6;
|
|
string stdout = 7;
|
|
string stderr = 8;
|
|
repeated containerd.v1.types.Mount rootfs = 9;
|
|
string checkpoint = 10;
|
|
string parent_checkpoint = 11;
|
|
}
|
|
|
|
message CreateResponse {
|
|
uint32 pid = 1;
|
|
}
|
|
|
|
message StartRequest {
|
|
}
|
|
|
|
message DeleteRequest {
|
|
}
|
|
|
|
message DeleteResponse {
|
|
uint32 exit_status = 1;
|
|
google.protobuf.Timestamp exited_at = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
|
|
}
|
|
|
|
message DeleteProcessRequest {
|
|
uint32 pid = 1;
|
|
}
|
|
|
|
message ExecRequest {
|
|
bool terminal = 1;
|
|
string stdin = 2;
|
|
string stdout = 3;
|
|
string stderr = 4;
|
|
google.protobuf.Any spec = 5;
|
|
}
|
|
|
|
message Rlimit {
|
|
string type = 1;
|
|
uint64 hard = 2;
|
|
uint64 soft = 3;
|
|
}
|
|
|
|
message ExecResponse {
|
|
uint32 pid = 1;
|
|
}
|
|
|
|
message PtyRequest {
|
|
uint32 pid = 1;
|
|
uint32 width = 2;
|
|
uint32 height = 3;
|
|
}
|
|
|
|
message EventsRequest {
|
|
}
|
|
|
|
message StateRequest {
|
|
}
|
|
|
|
message StateResponse {
|
|
string id = 1;
|
|
string bundle = 2;
|
|
uint32 pid = 3;
|
|
containerd.v1.types.Status status = 4;
|
|
repeated containerd.v1.types.Process processes = 5;
|
|
string stdin = 6;
|
|
string stdout = 7;
|
|
string stderr = 8;
|
|
bool terminal = 9;
|
|
}
|
|
|
|
message PauseRequest {
|
|
}
|
|
|
|
message ResumeRequest {
|
|
}
|
|
|
|
message ExitRequest {
|
|
}
|
|
|
|
message KillRequest {
|
|
uint32 signal = 1;
|
|
bool all = 2;
|
|
uint32 pid = 3;
|
|
}
|
|
|
|
message CloseStdinRequest {
|
|
uint32 pid = 1;
|
|
}
|
|
|
|
message ProcessesRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message ProcessesResponse{
|
|
repeated containerd.v1.types.Process processes = 1;
|
|
}
|
|
|
|
message CheckpointRequest {
|
|
string path = 1;
|
|
map<string, string> options = 2;
|
|
}
|