syntax = "proto3"; // option go_package = "git.xeserv.us/xena/route/routerpc/routegrpc;routegrpc"; package route; import "google/api/annotations.proto"; message Nil {} service Routes { rpc Get(GetRouteRequest) returns (Route) { option (google.api.http) = { get: "/v1/routes/{host}" }; } rpc GetAll(Nil) returns (GetAllRoutesResponse) { option (google.api.http) = { get: "/v1/routes" }; } rpc Put(Route) returns (IDResponse) { option (google.api.http) = { post: "/v1/routes" }; } rpc Delete(Route) returns (IDResponse) { option (google.api.http) = { delete: "/v1/routes/{host}" }; } } message GetRouteRequest { string host = 1; } message Route { string id = 1; string creator = 2; string host = 3; } message GetAllRoutesResponse { repeated Route routes = 1; } message IDResponse { string id = 1; } service Tokens { rpc Get(GetTokenRequest) returns (Token) { option (google.api.http) = { get: "/v1/tokens/one" }; } rpc GetAll(Nil) returns (TokenSet) { option (google.api.http) = { get: "/v1/tokens" }; } rpc Put(Token) returns (Token) { option (google.api.http) = { post: "/v1/tokens" }; } rpc Delete(Token) returns (Nil) { option (google.api.http) = { delete: "/v1/tokens" }; } rpc Deactivate(Token) returns (Nil) { option (google.api.http) = { post: "/v1/tokens/deactivate" }; } } message Token { string id = 1; string body = 2; repeated string scopes = 3; bool active = 4; } message TokenSet { repeated Token tokens = 1; } message GetTokenRequest { string token = 1; string id = 2; }