syntax = "proto3"; package usersservice; option go_package = "grpc"; service UserService { rpc GetUserByID (GetUserByIDRequest) returns (GetUserByIDResponse); rpc ListUsers (ListUsersRequest) returns (ListUsersResponse); } message GetUserByIDRequest { uint64 userID = 1; } message GetUserByIDResponse { User user = 1; } message ListUsersRequest { UsersFilter filter = 1; uint64 page = 2; uint64 per_page = 3; enum SortCol { ID_ASC = 0; ID_DESC = 1; NAME_ASC = 2; NAME_DESC = 3; } SortCol sort = 4; } message ListUsersResponse { repeated User users = 1; uint64 count = 2; } message Empty {} message User { uint64 userID = 1; string userName = 2; string firstName = 3; string lastName = 4; Company company = 5; repeated Role roles = 6; string reference = 7; } message Company { int64 id = 1; string name = 2; string code = 3; } message Role { string name = 1; repeated string rights = 2; } message UsersFilter { string reference = 1; }