Files
uncloud/internal/machine/api/pb/docker.proto
T

90 lines
2.3 KiB
Protocol Buffer

syntax = "proto3";
package api;
option go_package = "github.com/psviderski/uncloud/internal/machine/api/pb";
import "google/protobuf/empty.proto";
import "internal/machine/api/pb/common.proto";
service Docker {
rpc CreateContainer(CreateContainerRequest) returns (CreateContainerResponse);
rpc InspectContainer(InspectContainerRequest) returns (InspectContainerResponse);
rpc StartContainer(StartContainerRequest) returns (google.protobuf.Empty);
rpc StopContainer(StopContainerRequest) returns (google.protobuf.Empty);
rpc ListContainers(ListContainersRequest) returns (ListContainersResponse);
rpc RemoveContainer(RemoveContainerRequest) returns (google.protobuf.Empty);
rpc PullImage(PullImageRequest) returns (stream JSONMessage);
}
message CreateContainerRequest {
// JSON serialized container.Config.
bytes config = 1;
// JSON serialized container.HostConfig.
bytes host_config = 2;
// JSON serialized network.NetworkingConfig.
bytes network_config = 3;
// JSON serialized ocispec.Platform.
bytes platform = 4;
string name = 5;
}
message CreateContainerResponse {
// JSON serialized container.CreateResponse.
bytes response = 1;
}
message InspectContainerRequest {
string id = 1;
}
message InspectContainerResponse {
// JSON serialized container.InspectResponse.
bytes response = 1;
}
message StartContainerRequest {
string id = 1;
// JSON serialized container.StartOptions.
bytes options = 2;
}
message StopContainerRequest {
string id = 1;
// JSON serialized container.StopOptions.
bytes options = 2;
}
message ListContainersRequest {
// JSON serialized container.ListOptions.
bytes options = 1;
}
// ListContainersResponse structure allows broadcasting ListContainers requests to multiple machines.
message ListContainersResponse {
repeated MachineContainers messages = 1;
}
message MachineContainers {
Metadata metadata = 1;
// JSON serialized []container.ContainerJSON.
bytes containers = 2;
}
message RemoveContainerRequest {
string id = 1;
// JSON serialized container.RemoveOptions.
bytes options = 2;
}
message PullImageRequest {
string image = 1;
// JSON serialized image.PullOptions.
bytes options = 2;
}
message JSONMessage {
// JSON serialized jsonmessage.JSONMessage.
bytes message = 1;
}