mirror of
https://github.com/psviderski/uncloud.git
synced 2026-08-26 19:13:34 +00:00
218 lines
6.0 KiB
Protocol Buffer
218 lines
6.0 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);
|
|
rpc InspectImage(InspectImageRequest) returns (InspectImageResponse);
|
|
// InspectRemoteImage returns the image metadata for an image in a remote registry using the machine's
|
|
// Docker auth credentials if necessary.
|
|
rpc InspectRemoteImage(InspectRemoteImageRequest) returns (InspectRemoteImageResponse);
|
|
rpc ListImages(ListImagesRequest) returns (ListImagesResponse);
|
|
|
|
rpc CreateVolume(CreateVolumeRequest) returns (CreateVolumeResponse);
|
|
rpc ListVolumes(ListVolumesRequest) returns (ListVolumesResponse);
|
|
rpc RemoveVolume(RemoveVolumeRequest) returns (google.protobuf.Empty);
|
|
|
|
rpc CreateServiceContainer(CreateServiceContainerRequest) returns (CreateContainerResponse);
|
|
rpc InspectServiceContainer(InspectContainerRequest) returns (ServiceContainer);
|
|
rpc ListServiceContainers(ListServiceContainersRequest) returns (ListServiceContainersResponse);
|
|
rpc RemoveServiceContainer(RemoveContainerRequest) returns (google.protobuf.Empty);
|
|
}
|
|
|
|
message CreateContainerRequest {
|
|
// JSON serialised container.Config.
|
|
bytes config = 1;
|
|
// JSON serialised container.HostConfig.
|
|
bytes host_config = 2;
|
|
// JSON serialised network.NetworkingConfig.
|
|
bytes network_config = 3;
|
|
// JSON serialised ocispec.Platform.
|
|
bytes platform = 4;
|
|
string name = 5;
|
|
}
|
|
|
|
message CreateContainerResponse {
|
|
// JSON serialised container.CreateResponse.
|
|
bytes response = 1;
|
|
}
|
|
|
|
message InspectContainerRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message InspectContainerResponse {
|
|
// JSON serialised container.InspectResponse.
|
|
bytes response = 1;
|
|
}
|
|
|
|
message StartContainerRequest {
|
|
string id = 1;
|
|
// JSON serialised container.StartOptions.
|
|
bytes options = 2;
|
|
}
|
|
|
|
message StopContainerRequest {
|
|
string id = 1;
|
|
// JSON serialised container.StopOptions.
|
|
bytes options = 2;
|
|
}
|
|
|
|
message ListContainersRequest {
|
|
// JSON serialised container.ListOptions.
|
|
bytes options = 1;
|
|
}
|
|
|
|
message ListContainersResponse {
|
|
// Must contain only one repeated messages field to allow broadcasting ListContainers requests to multiple machines.
|
|
repeated MachineContainers messages = 1;
|
|
}
|
|
|
|
message MachineContainers {
|
|
Metadata metadata = 1;
|
|
// JSON serialised []container.InspectResponse.
|
|
bytes containers = 2;
|
|
}
|
|
|
|
message RemoveContainerRequest {
|
|
string id = 1;
|
|
// JSON serialised container.RemoveOptions.
|
|
bytes options = 2;
|
|
}
|
|
|
|
message PullImageRequest {
|
|
string image = 1;
|
|
// JSON serialised image.PullOptions.
|
|
bytes options = 2;
|
|
}
|
|
|
|
message JSONMessage {
|
|
// JSON serialised jsonmessage.JSONMessage.
|
|
bytes message = 1;
|
|
}
|
|
|
|
message InspectImageRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message InspectImageResponse {
|
|
// Must contain only one repeated messages field to allow broadcasting InspectImage requests to multiple machines.
|
|
repeated Image messages = 1;
|
|
}
|
|
|
|
message Image {
|
|
Metadata metadata = 1;
|
|
// JSON serialised types.ImageInspect.
|
|
bytes image = 2;
|
|
}
|
|
|
|
message InspectRemoteImageRequest {
|
|
string id = 1;
|
|
}
|
|
|
|
message InspectRemoteImageResponse {
|
|
// Must contain only one repeated messages field to allow broadcasting InspectRemoteImage requests to multiple machines.
|
|
repeated RemoteImage messages = 1;
|
|
}
|
|
|
|
message RemoteImage {
|
|
Metadata metadata = 1;
|
|
// Image reference in the canonical form with the digest.
|
|
string reference = 2;
|
|
// Raw JSON manifest from the registry.
|
|
bytes manifest = 3;
|
|
}
|
|
|
|
message ListImagesRequest {
|
|
// JSON serialised image.ListOptions.
|
|
bytes options = 1;
|
|
}
|
|
|
|
message ListImagesResponse {
|
|
// Must contain only one repeated messages field to allow broadcasting ListImages requests to multiple machines.
|
|
repeated MachineImages messages = 1;
|
|
}
|
|
|
|
message MachineImages {
|
|
Metadata metadata = 1;
|
|
// JSON serialised []image.Summary for images from Docker internal image store.
|
|
// Empty if Docker uses the containerd image store.
|
|
bytes docker_images = 2;
|
|
// JSON serialised []image.Summary for images from containerd image store.
|
|
bytes containerd_images = 3;
|
|
}
|
|
|
|
message CreateVolumeRequest {
|
|
// JSON serialised volume.CreateOptions.
|
|
bytes options = 1;
|
|
}
|
|
|
|
message CreateVolumeResponse {
|
|
// JSON serialised volume.Volume.
|
|
bytes volume = 1;
|
|
}
|
|
|
|
message ListVolumesRequest {
|
|
// JSON serialised volume.ListOptions.
|
|
bytes options = 1;
|
|
}
|
|
|
|
message ListVolumesResponse {
|
|
// Must contain only one repeated messages field to allow broadcasting ListVolumes requests to multiple machines.
|
|
repeated MachineVolumes messages = 1;
|
|
}
|
|
|
|
message MachineVolumes {
|
|
Metadata metadata = 1;
|
|
// JSON serialised volume.ListResponse.
|
|
bytes response = 2;
|
|
}
|
|
|
|
message RemoveVolumeRequest {
|
|
string id = 1;
|
|
bool force = 2;
|
|
}
|
|
|
|
message CreateServiceContainerRequest {
|
|
string service_id = 1;
|
|
// JSON serialised api.ServiceSpec.
|
|
bytes service_spec = 2;
|
|
string container_name = 3;
|
|
}
|
|
|
|
message ServiceContainer {
|
|
// JSON serialised container.InspectResponse.
|
|
bytes container = 1;
|
|
// JSON serialised api.ServiceSpec.
|
|
bytes service_spec = 2;
|
|
}
|
|
|
|
message ListServiceContainersRequest {
|
|
string service_id = 1;
|
|
// JSON serialised container.ListOptions.
|
|
bytes options = 2;
|
|
}
|
|
|
|
message ListServiceContainersResponse {
|
|
// Must contain only one repeated messages field to allow broadcasting ListServiceContainers requests
|
|
// to multiple machines.
|
|
repeated MachineServiceContainers messages = 1;
|
|
}
|
|
|
|
message MachineServiceContainers {
|
|
Metadata metadata = 1;
|
|
repeated ServiceContainer containers = 2;
|
|
}
|