From 0ea891b2f1fd3d579bcef862288c8222a3424e8d Mon Sep 17 00:00:00 2001 From: Eric Chiang Date: Mon, 3 Oct 2016 22:15:04 -0700 Subject: [PATCH] api: add initial gRPC service definition --- api/api.proto | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 api/api.proto diff --git a/api/api.proto b/api/api.proto new file mode 100644 index 00000000..f563f7a0 --- /dev/null +++ b/api/api.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; + +package api; + +// Client represents an OAuth2 client. +message Client { + string id = 1; + string secret = 2; + repeated string redirect_uris = 3; + repeated string trusted_peers = 4; + bool public = 5; + string name = 6; + string logo_url = 7; +} + +// CreateClientReq is a request to make a client. +message CreateClientReq { + Client client = 1; +} + +// CreateClientResp returns the response from creating a client. +message CreateClientResp { + bool already_exists = 1; + Client client = 2; +} + +// DeleteClientReq is a request to delete a client. +message DeleteClientReq { + // The ID of the client. + string id = 1; +} + +// DeleteClientResp determines if the. +message DeleteClientResp { + bool not_found = 1; +} + +// TODO(ericchiang): expand this. + +// Dex represents the dex gRPC service. +service Dex { + // CreateClient attempts to create the client. + rpc CreateClient(CreateClientReq) returns (CreateClientResp) {}; + // DeleteClient attempts to delete the provided client. + rpc DeleteClient(DeleteClientReq) returns (DeleteClientResp) {}; +}