krata/proto/krata/v1/control.proto

68 lines
1.4 KiB
Protocol Buffer

syntax = "proto3";
package krata.v1.control;
option java_multiple_files = true;
option java_package = "dev.krata.proto.v1.control";
option java_outer_classname = "ControlProto";
import "krata/v1/common.proto";
service ControlService {
rpc CreateGuest(CreateGuestRequest) returns (CreateGuestReply);
rpc DestroyGuest(DestroyGuestRequest) returns (DestroyGuestReply);
rpc ResolveGuest(ResolveGuestRequest) returns (ResolveGuestReply);
rpc ListGuests(ListGuestsRequest) returns (ListGuestsReply);
rpc ConsoleData(stream ConsoleDataRequest) returns (stream ConsoleDataReply);
rpc WatchEvents(WatchEventsRequest) returns (stream WatchEventsReply);
}
message CreateGuestRequest {
krata.v1.common.GuestSpec spec = 1;
}
message CreateGuestReply {
string guest_id = 1;
}
message DestroyGuestRequest {
string guest_id = 1;
}
message DestroyGuestReply {}
message ResolveGuestRequest {
string name = 1;
}
message ResolveGuestReply {
krata.v1.common.Guest guest = 1;
}
message ListGuestsRequest {}
message ListGuestsReply {
repeated krata.v1.common.Guest guests = 1;
}
message ConsoleDataRequest {
string guest_id = 1;
bytes data = 2;
}
message ConsoleDataReply {
bytes data = 1;
}
message WatchEventsRequest {}
message WatchEventsReply {
oneof event {
GuestChangedEvent guest_changed = 1;
}
}
message GuestChangedEvent {
krata.v1.common.Guest guest = 1;
}