Files
tunnel-please-grpc/proto/events.proto

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;
}