syntax = "proto3"; package dbplugin; import "google/protobuf/timestamp.proto"; message InitializeRequest { option deprecated = true; bytes config = 1; bool verify_connection = 2; } message InitRequest { 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 RotateRootCredentialsRequest { repeated string statements = 1; } message Statements { // DEPRECATED, will be removed in 0.12 string creation_statements = 1 [deprecated=true]; // DEPRECATED, will be removed in 0.12 string revocation_statements = 2 [deprecated=true]; // DEPRECATED, will be removed in 0.12 string rollback_statements = 3 [deprecated=true]; // DEPRECATED, will be removed in 0.12 string renew_statements = 4 [deprecated=true]; repeated string creation = 5; repeated string revocation = 6; repeated string rollback = 7; repeated string renewal = 8; } message UsernameConfig { string DisplayName = 1; string RoleName = 2; } message InitResponse { bytes config = 1; } message CreateUserResponse { string username = 1; string password = 2; } message TypeResponse { string type = 1; } message RotateRootCredentialsResponse { bytes config = 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 RotateRootCredentials(RotateRootCredentialsRequest) returns (RotateRootCredentialsResponse); rpc Init(InitRequest) returns (InitResponse); rpc Close(Empty) returns (Empty); rpc Initialize(InitializeRequest) returns (Empty) { option deprecated = true; }; }