202 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			202 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
/*
 | 
						|
	Copyright The containerd Authors.
 | 
						|
 | 
						|
	Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
	you may not use this file except in compliance with the License.
 | 
						|
	You may obtain a copy of the License at
 | 
						|
 | 
						|
		http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
	Unless required by applicable law or agreed to in writing, software
 | 
						|
	distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
	WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
	See the License for the specific language governing permissions and
 | 
						|
	limitations under the License.
 | 
						|
*/
 | 
						|
 | 
						|
syntax = "proto3";
 | 
						|
 | 
						|
package containerd.task.v3;
 | 
						|
 | 
						|
import "google/protobuf/any.proto";
 | 
						|
import "google/protobuf/empty.proto";
 | 
						|
import "google/protobuf/timestamp.proto";
 | 
						|
import "github.com/containerd/containerd/api/types/mount.proto";
 | 
						|
import "github.com/containerd/containerd/api/types/task/task.proto";
 | 
						|
 | 
						|
option go_package = "github.com/containerd/containerd/api/runtime/task/v3;task";
 | 
						|
 | 
						|
// 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 Task {
 | 
						|
	rpc State(StateRequest) returns (StateResponse);
 | 
						|
	rpc Create(CreateTaskRequest) returns (CreateTaskResponse);
 | 
						|
	rpc Start(StartRequest) returns (StartResponse);
 | 
						|
	rpc Delete(DeleteRequest) returns (DeleteResponse);
 | 
						|
	rpc Pids(PidsRequest) returns (PidsResponse);
 | 
						|
	rpc Pause(PauseRequest) returns (google.protobuf.Empty);
 | 
						|
	rpc Resume(ResumeRequest) returns (google.protobuf.Empty);
 | 
						|
	rpc Checkpoint(CheckpointTaskRequest) returns (google.protobuf.Empty);
 | 
						|
	rpc Kill(KillRequest) returns (google.protobuf.Empty);
 | 
						|
	rpc Exec(ExecProcessRequest) returns (google.protobuf.Empty);
 | 
						|
	rpc ResizePty(ResizePtyRequest) returns (google.protobuf.Empty);
 | 
						|
	rpc CloseIO(CloseIORequest) returns (google.protobuf.Empty);
 | 
						|
	rpc Update(UpdateTaskRequest) returns (google.protobuf.Empty);
 | 
						|
	rpc Wait(WaitRequest) returns (WaitResponse);
 | 
						|
	rpc Stats(StatsRequest) returns (StatsResponse);
 | 
						|
	rpc Connect(ConnectRequest) returns (ConnectResponse);
 | 
						|
	rpc Shutdown(ShutdownRequest) returns (google.protobuf.Empty);
 | 
						|
}
 | 
						|
 | 
						|
message CreateTaskRequest {
 | 
						|
	string id = 1;
 | 
						|
	string bundle = 2;
 | 
						|
	repeated containerd.types.Mount rootfs = 3;
 | 
						|
	bool terminal = 4;
 | 
						|
	string stdin = 5;
 | 
						|
	string stdout = 6;
 | 
						|
	string stderr = 7;
 | 
						|
	string checkpoint = 8;
 | 
						|
	string parent_checkpoint = 9;
 | 
						|
	google.protobuf.Any options = 10;
 | 
						|
}
 | 
						|
 | 
						|
message CreateTaskResponse {
 | 
						|
	uint32 pid = 1;
 | 
						|
}
 | 
						|
 | 
						|
message DeleteRequest {
 | 
						|
	string id = 1;
 | 
						|
	string exec_id = 2;
 | 
						|
}
 | 
						|
 | 
						|
message DeleteResponse {
 | 
						|
	uint32 pid = 1;
 | 
						|
	uint32 exit_status = 2;
 | 
						|
	google.protobuf.Timestamp exited_at = 3;
 | 
						|
}
 | 
						|
 | 
						|
message ExecProcessRequest {
 | 
						|
	string id = 1;
 | 
						|
	string exec_id = 2;
 | 
						|
	bool terminal = 3;
 | 
						|
	string stdin = 4;
 | 
						|
	string stdout = 5;
 | 
						|
	string stderr = 6;
 | 
						|
	google.protobuf.Any spec = 7;
 | 
						|
}
 | 
						|
 | 
						|
message ExecProcessResponse {
 | 
						|
}
 | 
						|
 | 
						|
message ResizePtyRequest {
 | 
						|
	string id = 1;
 | 
						|
	string exec_id = 2;
 | 
						|
	uint32 width = 3;
 | 
						|
	uint32 height = 4;
 | 
						|
}
 | 
						|
 | 
						|
message StateRequest {
 | 
						|
	string id = 1;
 | 
						|
	string exec_id = 2;
 | 
						|
}
 | 
						|
 | 
						|
message StateResponse {
 | 
						|
	string id = 1;
 | 
						|
	string bundle = 2;
 | 
						|
	uint32 pid = 3;
 | 
						|
	containerd.v1.types.Status status = 4;
 | 
						|
	string stdin = 5;
 | 
						|
	string stdout = 6;
 | 
						|
	string stderr = 7;
 | 
						|
	bool terminal = 8;
 | 
						|
	uint32 exit_status = 9;
 | 
						|
	google.protobuf.Timestamp exited_at = 10;
 | 
						|
	string exec_id = 11;
 | 
						|
}
 | 
						|
 | 
						|
message KillRequest {
 | 
						|
	string id = 1;
 | 
						|
	string exec_id = 2;
 | 
						|
	uint32 signal = 3;
 | 
						|
	bool all = 4;
 | 
						|
}
 | 
						|
 | 
						|
message CloseIORequest {
 | 
						|
	string id = 1;
 | 
						|
	string exec_id = 2;
 | 
						|
	bool stdin = 3;
 | 
						|
}
 | 
						|
 | 
						|
message PidsRequest {
 | 
						|
	string id = 1;
 | 
						|
}
 | 
						|
 | 
						|
message PidsResponse {
 | 
						|
	repeated containerd.v1.types.ProcessInfo processes = 1;
 | 
						|
}
 | 
						|
 | 
						|
message CheckpointTaskRequest {
 | 
						|
	string id = 1;
 | 
						|
	string path = 2;
 | 
						|
	google.protobuf.Any options = 3;
 | 
						|
}
 | 
						|
 | 
						|
message UpdateTaskRequest {
 | 
						|
	string id = 1;
 | 
						|
	google.protobuf.Any resources = 2;
 | 
						|
	map<string, string> annotations = 3;
 | 
						|
}
 | 
						|
 | 
						|
message StartRequest {
 | 
						|
	string id = 1;
 | 
						|
	string exec_id = 2;
 | 
						|
}
 | 
						|
 | 
						|
message StartResponse {
 | 
						|
	uint32 pid = 1;
 | 
						|
}
 | 
						|
 | 
						|
message WaitRequest {
 | 
						|
	string id = 1;
 | 
						|
	string exec_id = 2;
 | 
						|
}
 | 
						|
 | 
						|
message WaitResponse {
 | 
						|
	uint32 exit_status = 1;
 | 
						|
	google.protobuf.Timestamp exited_at = 2;
 | 
						|
}
 | 
						|
 | 
						|
message StatsRequest {
 | 
						|
	string id = 1;
 | 
						|
}
 | 
						|
 | 
						|
message StatsResponse {
 | 
						|
	google.protobuf.Any stats = 1;
 | 
						|
}
 | 
						|
 | 
						|
message ConnectRequest {
 | 
						|
	string id = 1;
 | 
						|
}
 | 
						|
 | 
						|
message ConnectResponse {
 | 
						|
	uint32 shim_pid = 1;
 | 
						|
	uint32 task_pid = 2;
 | 
						|
	string version = 3;
 | 
						|
}
 | 
						|
 | 
						|
message ShutdownRequest {
 | 
						|
	string id = 1;
 | 
						|
	bool now = 2;
 | 
						|
}
 | 
						|
 | 
						|
message PauseRequest {
 | 
						|
	string id = 1;
 | 
						|
}
 | 
						|
 | 
						|
message ResumeRequest {
 | 
						|
	string id = 1;
 | 
						|
}
 |