blob: ed29252789898554f00a08e5dbc35bd1fd11582c [file] [log] [blame]
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
syntax = "proto3";
option go_package = "github.com/hashicorp/vault/sdk/database/dbplugin";
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;
repeated string rotation = 9;
}
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 {}
message GenerateCredentialsResponse {
string password = 1;
}
message StaticUserConfig{
string username = 1;
string password = 2;
bool create = 3;
}
message SetCredentialsRequest {
Statements statements = 1;
StaticUserConfig static_user_config = 2;
}
message SetCredentialsResponse {
string username = 1;
string password = 2;
}
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 SetCredentials(SetCredentialsRequest) returns (SetCredentialsResponse);
rpc GenerateCredentials(Empty) returns (GenerateCredentialsResponse);
rpc Initialize(InitializeRequest) returns (Empty) {
option deprecated = true;
};
}