167 lines
3.3 KiB
Protocol Buffer
167 lines
3.3 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package api;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
option go_package = "git.netflux.io/rob/octoplex/internal/generated/grpc";
|
|
|
|
service InternalAPI {
|
|
rpc Communicate(stream Envelope) returns (stream Envelope);
|
|
}
|
|
|
|
message Envelope {
|
|
oneof payload {
|
|
Command command = 1;
|
|
Event event = 2;
|
|
}
|
|
}
|
|
|
|
message Command {
|
|
oneof command_type {
|
|
AddDestinationCommand add_destination = 1;
|
|
RemoveDestinationCommand remove_destination = 2;
|
|
StartDestinationCommand start_destination = 3;
|
|
StopDestinationCommand stop_destination = 4;
|
|
CloseOtherInstancesCommand close_other_instances = 5;
|
|
QuitCommand quit = 6;
|
|
StartHandshakeCommand start_handshake = 7;
|
|
}
|
|
}
|
|
|
|
message AddDestinationCommand {
|
|
string name = 1;
|
|
string url = 2;
|
|
}
|
|
|
|
message RemoveDestinationCommand {
|
|
string url= 1;
|
|
}
|
|
|
|
message StartDestinationCommand {
|
|
string url = 1;
|
|
}
|
|
|
|
message StopDestinationCommand {
|
|
string url = 1;
|
|
}
|
|
|
|
message CloseOtherInstancesCommand {}
|
|
|
|
message QuitCommand {}
|
|
|
|
message StartHandshakeCommand {};
|
|
|
|
message Event {
|
|
oneof event_type {
|
|
AppStateChangedEvent app_state_changed = 1;
|
|
DestinationStreamExitedEvent destination_stream_exited = 2;
|
|
DestinationAddedEvent destination_added = 3;
|
|
AddDestinationFailedEvent add_destination_failed = 4;
|
|
DestinationRemovedEvent destination_removed = 5;
|
|
RemoveDestinationFailedEvent remove_destination_failed = 6;
|
|
StartDestinationFailedEvent start_destination_failed = 7;
|
|
MediaServerStartedEvent media_server_started = 8;
|
|
OtherInstanceDetectedEvent other_instance_detected = 9;
|
|
FatalErrorEvent fatal_error = 10;
|
|
HandshakeCompletedEvent handshake_completed = 11;
|
|
}
|
|
}
|
|
|
|
message Container {
|
|
string id = 1;
|
|
string status = 2;
|
|
string health_state = 3;
|
|
double cpu_percent = 4;
|
|
uint64 memory_usage_bytes = 5;
|
|
int32 rx_rate = 6;
|
|
int32 tx_rate = 7;
|
|
google.protobuf.Timestamp rx_since = 8;
|
|
string image_name = 9;
|
|
string pull_status = 10;
|
|
string pull_progress = 11;
|
|
int32 pull_percent = 12;
|
|
int32 restart_count = 13;
|
|
optional int32 exit_code = 14;
|
|
string err = 15;
|
|
}
|
|
|
|
message Source {
|
|
Container container = 1;
|
|
bool live = 2;
|
|
google.protobuf.Timestamp live_changed_at = 3;
|
|
repeated string tracks = 4;
|
|
string exit_reason = 5;
|
|
}
|
|
|
|
message Destination {
|
|
enum Status {
|
|
STATUS_OFF_AIR = 0;
|
|
STATUS_STARTING = 1;
|
|
STATUS_LIVE = 2;
|
|
}
|
|
|
|
Container container = 1;
|
|
Status status = 2;
|
|
string name = 3;
|
|
string url = 4;
|
|
}
|
|
|
|
message BuildInfo {
|
|
string go_version = 1;
|
|
string version = 2;
|
|
string commit = 3;
|
|
string date = 4;
|
|
}
|
|
|
|
message AppState {
|
|
Source source = 1;
|
|
repeated Destination destinations = 2;
|
|
BuildInfo build_info = 3;
|
|
}
|
|
|
|
message AppStateChangedEvent {
|
|
AppState app_state = 1;
|
|
}
|
|
|
|
message DestinationStreamExitedEvent {
|
|
string name = 1;
|
|
string error = 2;
|
|
}
|
|
|
|
message DestinationAddedEvent {
|
|
string url = 1;
|
|
}
|
|
|
|
message AddDestinationFailedEvent {
|
|
string url = 1;
|
|
string error = 2;
|
|
}
|
|
|
|
message DestinationRemovedEvent {
|
|
string url = 1;
|
|
}
|
|
|
|
message RemoveDestinationFailedEvent {
|
|
string url = 1;
|
|
string error = 2;
|
|
}
|
|
|
|
message StartDestinationFailedEvent {
|
|
string url = 1;
|
|
string message = 2;
|
|
}
|
|
|
|
message MediaServerStartedEvent {
|
|
string rtmp_url = 1;
|
|
string rtmps_url = 2;
|
|
}
|
|
|
|
message OtherInstanceDetectedEvent {}
|
|
|
|
message FatalErrorEvent {
|
|
string message = 1;
|
|
}
|
|
|
|
message HandshakeCompletedEvent {}
|