mirror of
https://github.com/psviderski/uncloud.git
synced 2026-10-06 13:18:58 +00:00
refactor(proto): move protobuf generated API to the top-level api/pb package
This commit is contained in:
1 parent
7a88865f64
commit
8aedc2bf19
73 files changed
+1487
-1505
No files matched your search
@@ -0,0 +1,266 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package api;
|
||||
|
||||
option go_package = "github.com/psviderski/uncloud/api/pb";
|
||||
|
||||
import "google/protobuf/empty.proto";
|
||||
import "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 ExecContainer(stream ExecContainerRequest) returns (stream ExecContainerResponse);
|
||||
rpc ContainerLogs(LogsRequest) returns (stream LogEntry);
|
||||
|
||||
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 ExecContainerRequest {
|
||||
oneof payload {
|
||||
// Initial configuration for the exec session. Must be sent as the first message.
|
||||
ExecConfig config = 1;
|
||||
// Raw stdin data to be written to the exec process.
|
||||
bytes stdin = 2;
|
||||
// TTY resize event (only used when TTY is enabled).
|
||||
ResizeEvent resize = 3;
|
||||
}
|
||||
}
|
||||
|
||||
message ExecConfig {
|
||||
// Container ID to execute the command in.
|
||||
string container_id = 1;
|
||||
// JSON serialised ExecOptions
|
||||
bytes options = 2;
|
||||
}
|
||||
|
||||
message ResizeEvent {
|
||||
uint32 height = 1;
|
||||
uint32 width = 2;
|
||||
}
|
||||
|
||||
message ExecContainerResponse {
|
||||
oneof payload {
|
||||
// Exec instance ID returned after creating the exec.
|
||||
string exec_id = 1;
|
||||
// Raw stdout data from the exec process.
|
||||
bytes stdout = 2;
|
||||
// Raw stderr data from the exec process (only when TTY is disabled).
|
||||
bytes stderr = 3;
|
||||
// Exit code of the exec process. Sent as the final message.
|
||||
int32 exit_code = 4;
|
||||
}
|
||||
}
|
||||
|
||||
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 image.InspectResponse.
|
||||
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.
|
||||
bytes images = 2;
|
||||
// True if Docker uses the containerd image store, false if it uses its internal image store.
|
||||
bool containerd_store = 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;
|
||||
|
||||
// ContainerType specifies the purpose of the container being created.
|
||||
enum ContainerType {
|
||||
// SERVICE is the default type for long-running service containers.
|
||||
SERVICE = 0;
|
||||
// PRE_DEPLOY is a one-shot container for a pre-deploy hook to run before service deployment.
|
||||
PRE_DEPLOY = 1;
|
||||
}
|
||||
ContainerType container_type = 4;
|
||||
}
|
||||
|
||||
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;
|
||||
// One-shot containers for deployment hooks (e.g. pre-deploy).
|
||||
repeated ServiceContainer hook_containers = 3;
|
||||
}
|
||||
Reference in new issue
Block a user