syntax = "proto3"; package go.micro.auth; service Auth { rpc Generate(GenerateRequest) returns (GenerateResponse) {}; rpc Validate(ValidateRequest) returns (ValidateResponse) {}; rpc Revoke(RevokeRequest) returns (RevokeResponse) {}; } message Account{ string id = 1; string token = 2; int64 created = 3; int64 expiry = 4; repeated Role roles = 5; map metadata = 6; } message Role { string name = 1; Resource resource = 2; } message Resource{ string name = 1; string type = 2; } message GenerateRequest { Account account = 1; } message GenerateResponse { Account account = 1; } message ValidateRequest { string token = 1; } message ValidateResponse { Account account = 1; } message RevokeRequest { string token = 1; } message RevokeResponse {}