route/proto/route.proto

139 lines
2.3 KiB
Protocol Buffer
Raw Normal View History

syntax = "proto3";
2017-01-27 02:43:17 +00:00
// option go_package = "git.xeserv.us/xena/route/routerpc/routegrpc;routegrpc";
2017-04-28 21:56:52 +00:00
package route;
2017-09-30 16:47:47 +00:00
// import "google/api/annotations.proto";
2017-04-28 21:56:52 +00:00
message Nil {}
2017-04-28 21:56:52 +00:00
service Routes {
rpc Get(GetRouteRequest) returns (Route) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// get: "/v1/routes/{host}"
// };
}
2017-04-28 21:56:52 +00:00
rpc GetAll(Nil) returns (GetAllRoutesResponse) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// get: "/v1/routes"
// };
}
2017-04-28 21:56:52 +00:00
rpc Put(Route) returns (IDResponse) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// post: "/v1/routes"
// };
}
2017-04-28 21:56:52 +00:00
rpc Delete(Route) returns (IDResponse) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// delete: "/v1/routes/{host}"
// };
2017-04-28 21:56:52 +00:00
}
}
2017-04-28 21:56:52 +00:00
message GetRouteRequest {
string host = 1;
}
2017-04-28 21:56:52 +00:00
message Route {
string id = 1;
2017-04-28 21:56:52 +00:00
string creator = 2;
string host = 3;
}
2017-04-28 21:56:52 +00:00
message GetAllRoutesResponse {
repeated Route routes = 1;
}
2017-04-28 21:56:52 +00:00
message IDResponse {
string id = 1;
}
service Tokens {
2017-04-28 21:56:52 +00:00
rpc Get(GetTokenRequest) returns (Token) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// get: "/v1/tokens/one"
// };
}
2017-04-28 21:56:52 +00:00
rpc GetAll(Nil) returns (TokenSet) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// get: "/v1/tokens"
// };
2017-04-28 21:56:52 +00:00
}
2017-04-29 02:47:24 +00:00
rpc Put(Token) returns (Token) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// post: "/v1/tokens"
// };
2017-04-28 21:56:52 +00:00
}
rpc Delete(Token) returns (Nil) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// delete: "/v1/tokens"
// };
2017-04-28 21:56:52 +00:00
}
2017-04-28 21:56:52 +00:00
rpc Deactivate(Token) returns (Nil) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// post: "/v1/tokens/deactivate"
// };
}
}
2017-04-28 21:56:52 +00:00
message Token {
string id = 1;
string body = 2;
repeated string scopes = 3;
bool active = 4;
}
message TokenSet {
repeated Token tokens = 1;
}
2017-04-28 21:56:52 +00:00
message GetTokenRequest {
string token = 1;
2017-04-28 21:56:52 +00:00
string id = 2;
}
service Backends {
rpc List(BackendSelector) returns (BackendList) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// get: "/v1/backends"
// };
}
rpc Kill(BackendID) returns (Nil) {
2017-09-30 16:47:47 +00:00
// option (google.api.http) = {
// post: "/v1/backends/{id}/kill"
// };
}
}
message Backend {
string id = 1;
string proto = 2;
string user = 3;
string domain = 4;
float phi = 5;
string host = 6;
2017-09-30 17:33:19 +00:00
bool usable = 7;
}
message BackendList {
BackendSelector bs = 1;
repeated Backend backends = 2;
}
message BackendSelector {
string domain = 1;
string user = 2;
}
message BackendID {
string id = 1;
}