github.com/containerd/Containerd@v1.4.13/runtime/v2/task/shim.proto (about) 1 syntax = "proto3"; 2 3 package containerd.task.v2; 4 5 import "google/protobuf/any.proto"; 6 import "google/protobuf/empty.proto"; 7 import weak "gogoproto/gogo.proto"; 8 import "google/protobuf/timestamp.proto"; 9 import "github.com/containerd/containerd/api/types/mount.proto"; 10 import "github.com/containerd/containerd/api/types/task/task.proto"; 11 12 option go_package = "github.com/containerd/containerd/runtime/v2/task;task"; 13 14 // Shim service is launched for each container and is responsible for owning the IO 15 // for the container and its additional processes. The shim is also the parent of 16 // each container and allows reattaching to the IO and receiving the exit status 17 // for the container processes. 18 service Task { 19 rpc State(StateRequest) returns (StateResponse); 20 rpc Create(CreateTaskRequest) returns (CreateTaskResponse); 21 rpc Start(StartRequest) returns (StartResponse); 22 rpc Delete(DeleteRequest) returns (DeleteResponse); 23 rpc Pids(PidsRequest) returns (PidsResponse); 24 rpc Pause(PauseRequest) returns (google.protobuf.Empty); 25 rpc Resume(ResumeRequest) returns (google.protobuf.Empty); 26 rpc Checkpoint(CheckpointTaskRequest) returns (google.protobuf.Empty); 27 rpc Kill(KillRequest) returns (google.protobuf.Empty); 28 rpc Exec(ExecProcessRequest) returns (google.protobuf.Empty); 29 rpc ResizePty(ResizePtyRequest) returns (google.protobuf.Empty); 30 rpc CloseIO(CloseIORequest) returns (google.protobuf.Empty); 31 rpc Update(UpdateTaskRequest) returns (google.protobuf.Empty); 32 rpc Wait(WaitRequest) returns (WaitResponse); 33 rpc Stats(StatsRequest) returns (StatsResponse); 34 rpc Connect(ConnectRequest) returns (ConnectResponse); 35 rpc Shutdown(ShutdownRequest) returns (google.protobuf.Empty); 36 } 37 38 message CreateTaskRequest { 39 string id = 1; 40 string bundle = 2; 41 repeated containerd.types.Mount rootfs = 3; 42 bool terminal = 4; 43 string stdin = 5; 44 string stdout = 6; 45 string stderr = 7; 46 string checkpoint = 8; 47 string parent_checkpoint = 9; 48 google.protobuf.Any options = 10; 49 } 50 51 message CreateTaskResponse { 52 uint32 pid = 1; 53 } 54 55 message DeleteRequest { 56 string id = 1; 57 string exec_id = 2; 58 } 59 60 message DeleteResponse { 61 uint32 pid = 1; 62 uint32 exit_status = 2; 63 google.protobuf.Timestamp exited_at = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; 64 } 65 66 message ExecProcessRequest { 67 string id = 1; 68 string exec_id = 2; 69 bool terminal = 3; 70 string stdin = 4; 71 string stdout = 5; 72 string stderr = 6; 73 google.protobuf.Any spec = 7; 74 } 75 76 message ExecProcessResponse { 77 } 78 79 message ResizePtyRequest { 80 string id = 1; 81 string exec_id = 2; 82 uint32 width = 3; 83 uint32 height = 4; 84 } 85 86 message StateRequest { 87 string id = 1; 88 string exec_id = 2; 89 } 90 91 message StateResponse { 92 string id = 1; 93 string bundle = 2; 94 uint32 pid = 3; 95 containerd.v1.types.Status status = 4; 96 string stdin = 5; 97 string stdout = 6; 98 string stderr = 7; 99 bool terminal = 8; 100 uint32 exit_status = 9; 101 google.protobuf.Timestamp exited_at = 10 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; 102 string exec_id = 11; 103 } 104 105 message KillRequest { 106 string id = 1; 107 string exec_id = 2; 108 uint32 signal = 3; 109 bool all = 4; 110 } 111 112 message CloseIORequest { 113 string id = 1; 114 string exec_id = 2; 115 bool stdin = 3; 116 } 117 118 message PidsRequest { 119 string id = 1; 120 } 121 122 message PidsResponse { 123 repeated containerd.v1.types.ProcessInfo processes = 1; 124 } 125 126 message CheckpointTaskRequest { 127 string id = 1; 128 string path = 2; 129 google.protobuf.Any options = 3; 130 } 131 132 message UpdateTaskRequest { 133 string id = 1; 134 google.protobuf.Any resources = 2; 135 } 136 137 message StartRequest { 138 string id = 1; 139 string exec_id = 2; 140 } 141 142 message StartResponse { 143 uint32 pid = 1; 144 } 145 146 message WaitRequest { 147 string id = 1; 148 string exec_id = 2; 149 } 150 151 message WaitResponse { 152 uint32 exit_status = 1; 153 google.protobuf.Timestamp exited_at = 2 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; 154 } 155 156 message StatsRequest { 157 string id = 1; 158 } 159 160 message StatsResponse { 161 google.protobuf.Any stats = 1; 162 } 163 164 message ConnectRequest { 165 string id = 1; 166 } 167 168 message ConnectResponse { 169 uint32 shim_pid = 1; 170 uint32 task_pid = 2; 171 string version = 3; 172 } 173 174 message ShutdownRequest { 175 string id = 1; 176 bool now = 2; 177 } 178 179 message PauseRequest { 180 string id = 1; 181 } 182 183 message ResumeRequest { 184 string id = 1; 185 }