syntax = "proto3"; package event_store.client.users; option java_package = "com.eventstore.dbclient.proto.users"; service Users { rpc Create (CreateReq) returns (CreateResp); rpc Update (UpdateReq) returns (UpdateResp); rpc Delete (DeleteReq) returns (DeleteResp); rpc Disable (DisableReq) returns (DisableResp); rpc Enable (EnableReq) returns (EnableResp); rpc Details (DetailsReq) returns (stream DetailsResp); rpc ChangePassword (ChangePasswordReq) returns (ChangePasswordResp); rpc ResetPassword (ResetPasswordReq) returns (ResetPasswordResp); } message CreateReq { Options options = 1; message Options { string login_name = 1; string password = 2; string full_name = 3; repeated string groups = 4; } } message CreateResp { } message UpdateReq { Options options = 1; message Options { string login_name = 1; string password = 2; string full_name = 3; repeated string groups = 4; } } message UpdateResp { } message DeleteReq { Options options = 1; message Options { string login_name = 1; } } message DeleteResp { } message EnableReq { Options options = 1; message Options { string login_name = 1; } } message EnableResp { } message DisableReq { Options options = 1; message Options { string login_name = 1; } } message DisableResp { } message DetailsReq { Options options = 1; message Options { string login_name = 1; } } message DetailsResp { UserDetails user_details = 1; message UserDetails { string login_name = 1; string full_name = 2; repeated string groups = 3; DateTime last_updated = 4; bool disabled = 5; message DateTime { int64 ticks_since_epoch = 1; } } } message ChangePasswordReq { Options options = 1; message Options { string login_name = 1; string current_password = 2; string new_password = 3; } } message ChangePasswordResp { } message ResetPasswordReq { Options options = 1; message Options { string login_name = 1; string new_password = 2; } } message ResetPasswordResp { }