syntax = "proto3"; package dbplugin; import "google/protobuf/timestamp.proto"; message InitializeRequest { bytes config = 1; bool verify_connection = 2; } message CreateUserRequest { Statements statements = 1; UsernameConfig username_config = 2; google.protobuf.Timestamp expiration = 3; } message RenewUserRequest { Statements statements = 1; string username = 2; google.protobuf.Timestamp expiration = 3; } message RevokeUserRequest { Statements statements = 1; string username = 2; } message Statements { string creation_statements = 1; string revocation_statements = 2; string rollback_statements = 3; string renew_statements = 4; } message UsernameConfig { string DisplayName = 1; string RoleName = 2; } message CreateUserResponse { string username = 1; string password = 2; } message TypeResponse { string type = 1; } message Empty {} service Database { rpc Type(Empty) returns (TypeResponse); rpc CreateUser(CreateUserRequest) returns (CreateUserResponse); rpc RenewUser(RenewUserRequest) returns (Empty); rpc RevokeUser(RevokeUserRequest) returns (Empty); rpc Initialize(InitializeRequest) returns (Empty); rpc Close(Empty) returns (Empty); }