 2ef399b315
			
		
	
	2ef399b315
	
	
	
		
			
			The implementation relies on nats.io Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
		
			
				
	
	
		
			147 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
| 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;
 | |
| 	bool console = 3;
 | |
| 	string stdin = 4;
 | |
| 	string stdout = 5;
 | |
| 	string stderr = 6;
 | |
| }
 | |
| 
 | |
| message CreateContainerResponse {
 | |
| 	Container container = 1;
 | |
| 	Process initProcess = 2;
 | |
| }
 | |
| 
 | |
| 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 [(gogoproto.customname) = "ContainerID"];
 | |
| 	Process process = 2;
 | |
| 	bool console = 3;
 | |
| 	string stdin = 4;
 | |
| 	string stdout = 5;
 | |
| 	string stderr = 6;
 | |
| }
 | |
| 
 | |
| 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 {
 | |
| 	string container_id = 1 [(gogoproto.customname) = "ContainerID"];
 | |
| 	string bundle_path = 2;
 | |
| }
 | |
| 
 | |
| message PauseContainerRequest {
 | |
| 	string id = 1 [(gogoproto.customname) = "ID"];
 | |
| }
 | |
| 
 | |
| message ResumeContainerRequest {
 | |
| 	string id = 1 [(gogoproto.customname) = "ID"];
 | |
| }
 | |
| 
 | |
| message GetProcessRequest {
 | |
| 	string container_id = 1 [(gogoproto.customname) = "ContainerID"];
 | |
| 	string process_id = 2 [(gogoproto.customname) = "ProcessID"];
 | |
| }
 | |
| 
 | |
| message GetProcessResponse {
 | |
| 	Process process = 1;
 | |
| }
 | |
| 
 | |
| message SignalProcessRequest {
 | |
| 	string container_id = 1 [(gogoproto.customname) = "ContainerID"];
 | |
| 	string process_id = 2 [(gogoproto.customname) = "ProcessID"];
 | |
| 	uint32 signal = 3;
 | |
| }
 | |
| 
 | |
| message DeleteProcessRequest {
 | |
| 	string container_id = 1 [(gogoproto.customname) = "ContainerID"];
 | |
| 	string process_id = 2 [(gogoproto.customname) = "ProcessID"];
 | |
| }
 | |
| 
 | |
| message ListProcessesRequest {
 | |
| 	string id = 1 [(gogoproto.customname) = "ID"];
 | |
| }
 | |
| 
 | |
| message ListProcessesResponse {
 | |
| 	repeated Process processes = 1;
 | |
| }
 |