90 lines
1.6 KiB
Protocol Buffer
90 lines
1.6 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package events;
|
|
|
|
option go_package = "./gen";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
service EventService {
|
|
rpc Subscribe(stream Node) returns (stream Events);
|
|
}
|
|
|
|
enum EventType {
|
|
AUTHENTICATION = 0;
|
|
SLUG_CHANGE = 1;
|
|
SLUG_CHANGE_RESPONSE = 2;
|
|
GET_SESSIONS = 3;
|
|
TERMINATE_SESSION = 4;
|
|
}
|
|
|
|
message Events {
|
|
EventType type = 1;
|
|
|
|
oneof payload {
|
|
SlugChangeEvent slug_event = 11;
|
|
GetSessionsEvent get_sessions_event = 12;
|
|
TerminateSessionEvent terminate_session_event = 13;
|
|
}
|
|
}
|
|
|
|
message Node {
|
|
EventType type = 1;
|
|
|
|
oneof payload {
|
|
Authentication auth_event = 10;
|
|
SlugChangeEventResponse slug_event_response = 11;
|
|
GetSessionsResponse get_sessions_event = 12;
|
|
TerminateSessionEventResponse terminate_session_event_response = 13;
|
|
}
|
|
}
|
|
|
|
message Authentication {
|
|
string auth_token = 1;
|
|
string identity = 2;
|
|
}
|
|
|
|
message SlugChangeEvent {
|
|
string user = 1;
|
|
string old = 2;
|
|
string new = 3;
|
|
}
|
|
|
|
message SlugChangeEventResponse {
|
|
bool success = 1;
|
|
string message = 2;
|
|
}
|
|
|
|
message GetSessionsEvent {
|
|
string identity = 1;
|
|
}
|
|
|
|
message GetSessionsResponse {
|
|
repeated Detail details = 1;
|
|
}
|
|
|
|
message Detail {
|
|
string node = 1;
|
|
string forwarding_type = 2;
|
|
string slug = 3;
|
|
string user_id = 4;
|
|
bool active = 5;
|
|
google.protobuf.Timestamp started_at = 6;
|
|
}
|
|
|
|
enum TunnelType {
|
|
UNSPECIFIED = 0;
|
|
HTTP = 1;
|
|
TCP = 2;
|
|
}
|
|
|
|
message TerminateSessionEvent {
|
|
string user = 1;
|
|
TunnelType tunnelType = 2;
|
|
string slug = 3;
|
|
}
|
|
|
|
message TerminateSessionEventResponse {
|
|
bool success = 1;
|
|
string message = 2;
|
|
} |