syntax = "proto3"; package gapido.auth.v1; service AuthService { rpc RequestOtp (RequestOtpRequest) returns (RequestOtpResponse); rpc VerifyOtp (VerifyOtpRequest) returns (TokenResponse); rpc RefreshToken (RefreshTokenRequest) returns (TokenResponse); rpc RevokeRefreshToken (RevokeRefreshTokenRequest) returns (RevokeRefreshTokenResponse); rpc PublicPing (PingRequest) returns (PingResponse); rpc UserOnly (ProtectedRequest) returns (ProtectedResponse); rpc AdminOnly (ProtectedRequest) returns (ProtectedResponse); } message RequestOtpRequest { string mobile = 1; string purpose = 2; } message RequestOtpResponse { bool accepted = 1; } message VerifyOtpRequest { string mobile = 1; string code = 2; string purpose = 3; } message RefreshTokenRequest { string refresh_token = 1; } message RevokeRefreshTokenRequest { string refresh_token = 1; } message RevokeRefreshTokenResponse { bool revoked = 1; } message TokenResponse { string access_token = 1; string refresh_token = 2; string token_type = 3; int32 expires_in = 4; string role = 5; } message PingRequest {} message PingResponse { string message = 1; } message ProtectedRequest {} message ProtectedResponse { string user_id = 1; string role = 2; string message = 3; }