131 lines
2.8 KiB
Protocol Buffer
131 lines
2.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
package burrow;
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
service Tunnel {
|
|
rpc TunnelConfiguration (Empty) returns (stream TunnelConfigurationResponse);
|
|
rpc TunnelStart (Empty) returns (Empty);
|
|
rpc TunnelStop (Empty) returns (Empty);
|
|
rpc TunnelStatus (Empty) returns (stream TunnelStatusResponse);
|
|
}
|
|
|
|
service Networks {
|
|
rpc NetworkAdd (Network) returns (Empty);
|
|
rpc NetworkList (Empty) returns (stream NetworkListResponse);
|
|
rpc NetworkReorder (NetworkReorderRequest) returns (Empty);
|
|
rpc NetworkDelete (NetworkDeleteRequest) returns (Empty);
|
|
}
|
|
|
|
service TailnetControl {
|
|
rpc Discover (TailnetDiscoverRequest) returns (TailnetDiscoverResponse);
|
|
rpc Probe (TailnetProbeRequest) returns (TailnetProbeResponse);
|
|
rpc LoginStart (TailnetLoginStartRequest) returns (TailnetLoginStatusResponse);
|
|
rpc LoginStatus (TailnetLoginStatusRequest) returns (TailnetLoginStatusResponse);
|
|
rpc LoginCancel (TailnetLoginCancelRequest) returns (Empty);
|
|
}
|
|
|
|
message NetworkReorderRequest {
|
|
int32 id = 1;
|
|
int32 index = 2;
|
|
}
|
|
|
|
message WireGuardPeer {
|
|
string endpoint = 1;
|
|
repeated string subnet = 2;
|
|
}
|
|
|
|
message WireGuardNetwork {
|
|
string address = 1;
|
|
string dns = 2;
|
|
repeated WireGuardPeer peer = 3;
|
|
}
|
|
|
|
message NetworkDeleteRequest {
|
|
int32 id = 1;
|
|
}
|
|
|
|
message Network {
|
|
int32 id = 1;
|
|
NetworkType type = 2;
|
|
bytes payload = 3;
|
|
}
|
|
|
|
enum NetworkType {
|
|
WireGuard = 0;
|
|
Tailnet = 1;
|
|
}
|
|
|
|
message NetworkListResponse {
|
|
repeated Network network = 1;
|
|
}
|
|
|
|
message Empty {
|
|
|
|
}
|
|
|
|
message TailnetDiscoverRequest {
|
|
string email = 1;
|
|
}
|
|
|
|
message TailnetDiscoverResponse {
|
|
string domain = 1;
|
|
string authority = 2;
|
|
string oidc_issuer = 3;
|
|
bool managed = 4;
|
|
}
|
|
|
|
message TailnetProbeRequest {
|
|
string authority = 1;
|
|
}
|
|
|
|
message TailnetProbeResponse {
|
|
string authority = 1;
|
|
int32 status_code = 2;
|
|
string summary = 3;
|
|
string detail = 4;
|
|
bool reachable = 5;
|
|
}
|
|
|
|
message TailnetLoginStartRequest {
|
|
string account_name = 1;
|
|
string identity_name = 2;
|
|
string hostname = 3;
|
|
string authority = 4;
|
|
}
|
|
|
|
message TailnetLoginStatusRequest {
|
|
string session_id = 1;
|
|
}
|
|
|
|
message TailnetLoginCancelRequest {
|
|
string session_id = 1;
|
|
}
|
|
|
|
message TailnetLoginStatusResponse {
|
|
string session_id = 1;
|
|
string backend_state = 2;
|
|
string auth_url = 3;
|
|
bool running = 4;
|
|
bool needs_login = 5;
|
|
string tailnet_name = 6;
|
|
string magic_dns_suffix = 7;
|
|
string self_dns_name = 8;
|
|
repeated string tailnet_ips = 9;
|
|
repeated string health = 10;
|
|
}
|
|
|
|
enum State {
|
|
Stopped = 0;
|
|
Running = 1;
|
|
}
|
|
|
|
message TunnelStatusResponse {
|
|
State state = 1;
|
|
optional google.protobuf.Timestamp start = 2;
|
|
}
|
|
|
|
message TunnelConfigurationResponse {
|
|
repeated string addresses = 1;
|
|
int32 mtu = 2;
|
|
}
|