heimdall/api/v1/heimdall.proto
Evan Hazlett 48d43ee2ee enable redis over wireguard
Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
2019-10-07 23:44:09 -04:00

125 lines
3.6 KiB
Protocol Buffer

syntax = "proto3";
package io.stellarproject.heimdall.api.v1;
import "gogoproto/gogo.proto";
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
option go_package = "github.com/stellarproject/heimdall/api/v1;v1";
service Heimdall {
rpc Connect(ConnectRequest) returns (ConnectResponse);
rpc AuthorizePeer(AuthorizePeerRequest) returns (google.protobuf.Empty);
rpc DeauthorizePeer(DeauthorizePeerRequest) returns (google.protobuf.Empty);
rpc AuthorizedPeers(AuthorizedPeersRequest) returns (AuthorizedPeersResponse);
rpc Join(JoinRequest) returns (JoinResponse);
rpc Routes(RoutesRequest) returns (RoutesResponse);
rpc CreateRoute(CreateRouteRequest) returns (google.protobuf.Empty);
rpc DeleteRoute(DeleteRouteRequest) returns (google.protobuf.Empty);
rpc Nodes(NodesRequest) returns (NodesResponse);
rpc Peers(PeersRequest) returns (PeersResponse);
}
message Master {
string id = 1 [(gogoproto.customname) = "ID"];
string grpc_address = 2 [(gogoproto.customname) = "GRPCAddress"];
string redis_url = 3 [(gogoproto.customname) = "RedisURL"];
string gateway_ip = 4 [(gogoproto.customname) = "GatewayIP"];
repeated Peer peers = 5;
}
message JoinRequest {
string id = 1 [(gogoproto.customname) = "ID"];
string cluster_key = 2;
string grpc_address = 3 [(gogoproto.customname) = "GRPCAddress"];
string endpoint_ip = 4 [(gogoproto.customname) = "EndpointIP"];
uint64 endpoint_port = 5;
string interface_name = 6;
}
message JoinResponse {
Master master = 1;
Node node = 2;
repeated Peer peers = 3;
}
message ConnectRequest {
string id = 1 [(gogoproto.customname) = "ID"];
}
message ConnectResponse {
KeyPair keypair = 1 [(gogoproto.customname) = "KeyPair"];
string address = 2;
repeated Peer peers = 3;
repeated string dns = 4 [(gogoproto.customname) = "DNS"];
}
message AuthorizePeerRequest {
string id = 1 [(gogoproto.customname) = "ID"];
}
message DeauthorizePeerRequest {
string id = 1 [(gogoproto.customname) = "ID"];
}
message AuthorizedPeersRequest {}
message AuthorizedPeersResponse {
repeated string ids = 1 [(gogoproto.customname) = "IDs"];
}
message KeyPair {
string private_key = 1;
string public_key = 2;
}
message Node {
string id = 1 [(gogoproto.customname) = "ID"];
string addr = 2;
KeyPair keypair = 3 [(gogoproto.customname) = "KeyPair"];
string endpoint_ip = 4 [(gogoproto.customname) = "EndpointIP"];
uint64 endpoint_port = 5;
string gateway_ip = 6 [(gogoproto.customname) = "GatewayIP"];
google.protobuf.Timestamp updated = 7 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false];
string interface_name = 8;
}
message NodesRequest {}
message NodesResponse {
repeated Node nodes = 1;
}
message Peer {
string id = 1 [(gogoproto.customname) = "ID"];
KeyPair keypair = 2 [(gogoproto.customname) = "KeyPair"];
repeated string allowed_ips = 3 [(gogoproto.customname) = "AllowedIPs"];
string endpoint = 4;
}
message PeersRequest {}
message PeersResponse {
repeated Peer peers = 1;
}
message Route {
string node_id = 1 [(gogoproto.customname) = "NodeID"];
string network = 2;
}
message CreateRouteRequest {
string node_id = 1 [(gogoproto.customname) = "NodeID"];
string network = 2;
}
message DeleteRouteRequest {
string network = 1;
}
message RoutesRequest {}
message RoutesResponse {
repeated Route routes = 1;
}