///
import { ChannelCredentials, ChannelOptions, UntypedServiceImplementation, handleUnaryCall, Client, ClientUnaryCall, Metadata, CallOptions, ServiceError } from '@grpc/grpc-js';
import _m0 from 'protobufjs/minimal';
import { UserSpec, ConnectionLimits, AuthPlugin, Permission, User, GlobalPermission } from '../../../../../yandex/cloud/mdb/mysql/v1/user';
import { FieldMask } from '../../../../../google/protobuf/field_mask';
import { Operation } from '../../../../../yandex/cloud/operation/operation';
export declare const protobufPackage = "yandex.cloud.mdb.mysql.v1";
export interface GetUserRequest {
/**
* ID of the cluster the user belongs to.
*
* To get this ID, make a [ClusterService.List] request.
*/
clusterId: string;
/**
* Name of the user to return information about.
*
* To get this name, make a [UserService.List] request.
*/
userName: string;
}
export interface ListUsersRequest {
/**
* ID of the cluster to list the users in.
*
* To get this ID, make a [ClusterService.List] request.
*/
clusterId: string;
/**
* The maximum number of results per page to return.
*
* If the number of available results is larger than [page_size], the API returns a [ListUsersResponse.next_page_token] that can be used to get the next page of results in the subsequent [UserService.List] requests.
*/
pageSize: number;
/**
* Page token that can be used to iterate through multiple pages of results.
*
* To get the next page of results, set [page_token] to the [ListUsersResponse.next_page_token] returned by the previous [UserService.List] request.
*/
pageToken: string;
}
export interface ListUsersResponse {
/** List of users. */
users: User[];
/**
* The token that can be used to get the next page of results.
*
* If the number of results is larger than [ListUsersRequest.page_size], use the [next_page_token] as the value for the [ListUsersRequest.page_token] in the subsequent [UserService.List] request to iterate through multiple pages of results.
*
* Each of the subsequent [UserService.List] requests should use the [next_page_token] value returned by the previous request to continue paging through the results.
*/
nextPageToken: string;
}
export interface CreateUserRequest {
/**
* ID of the cluster to create the user in.
*
* To get this ID, make a [ClusterService.List] request.
*/
clusterId: string;
/** Configuration of the user. */
userSpec?: UserSpec;
}
export interface CreateUserMetadata {
/** ID of the cluster the user is being created in. */
clusterId: string;
/** Name of the user that is being created. */
userName: string;
}
export interface UpdateUserRequest {
/**
* ID of the cluster to update the user in.
*
* To get this ID, make a [ClusterService.List] request.
*/
clusterId: string;
/**
* Name of the user to update.
*
* To get this name, make a [UserService.List] request.
*/
userName: string;
/** Field mask that specifies which settings of the user should be updated. */
updateMask?: FieldMask;
/** New password for the user. */
password: string;
/** A new set of permissions that should be granted to the user. */
permissions: Permission[];
/** New set of global permissions to grant to the user. */
globalPermissions: GlobalPermission[];
/** Set of changed user connection limits. */
connectionLimits?: ConnectionLimits;
/** New user authentication plugin. */
authenticationPlugin: AuthPlugin;
/** Generate password using Connection Manager. */
generatePassword?: boolean;
}
export interface UpdateUserMetadata {
/** ID of the cluster the user is being updated in. */
clusterId: string;
/** Name of the user that is being updated. */
userName: string;
}
export interface DeleteUserRequest {
/**
* ID of the cluster to delete the user from.
*
* To get this ID, make a [ClusterService.List] request.
*/
clusterId: string;
/**
* Name of the user to delete.
*
* To get this name, make a [UserService.List] request.
*/
userName: string;
}
export interface DeleteUserMetadata {
/** ID of the cluster the user is being deleted from. */
clusterId: string;
/** Name of the user that is being deleted. */
userName: string;
}
export interface GrantUserPermissionRequest {
/**
* ID of the cluster to grant permission to the user in.
*
* To get this ID, make a [ClusterService.List] request.
*/
clusterId: string;
/**
* Name of the user to grant permission to.
*
* To get this name, make a [UserService.List] request.
*/
userName: string;
/** Permission that should be granted to the specified user. */
permission?: Permission;
}
export interface GrantUserPermissionMetadata {
/** ID of the cluster the user is being granted a permission in. */
clusterId: string;
/** Name of the user that is being granted a permission. */
userName: string;
}
export interface RevokeUserPermissionRequest {
/**
* ID of the cluster to revoke permission from the user in.
*
* To get this ID, make a [ClusterService.List] request.
*/
clusterId: string;
/**
* Name of the user to revoke permission from.
*
* To get this name, make a [UserService.List] request.
*/
userName: string;
/** Permission that should be revoked from the user. */
permission?: Permission;
}
export interface RevokeUserPermissionMetadata {
/** ID of the cluster the user is being revoked a permission in. */
clusterId: string;
/** Name of the user whose permission is being revoked. */
userName: string;
}
export declare const GetUserRequest: {
encode(message: GetUserRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GetUserRequest;
fromJSON(object: any): GetUserRequest;
toJSON(message: GetUserRequest): unknown;
fromPartial, never>>(object: I): GetUserRequest;
};
export declare const ListUsersRequest: {
encode(message: ListUsersRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): ListUsersRequest;
fromJSON(object: any): ListUsersRequest;
toJSON(message: ListUsersRequest): unknown;
fromPartial, never>>(object: I): ListUsersRequest;
};
export declare const ListUsersResponse: {
encode(message: ListUsersResponse, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): ListUsersResponse;
fromJSON(object: any): ListUsersResponse;
toJSON(message: ListUsersResponse): unknown;
fromPartial, never>) | undefined;
} & Record, never>)[] & Record, never>) | undefined;
globalPermissions?: (GlobalPermission[] & GlobalPermission[] & Record, never>) | undefined;
connectionLimits?: ({
maxQuestionsPerHour?: number | undefined;
maxUpdatesPerHour?: number | undefined;
maxConnectionsPerHour?: number | undefined;
maxUserConnections?: number | undefined;
} & {
maxQuestionsPerHour?: number | undefined;
maxUpdatesPerHour?: number | undefined;
maxConnectionsPerHour?: number | undefined;
maxUserConnections?: number | undefined;
} & Record, never>) | undefined;
authenticationPlugin?: AuthPlugin | undefined;
connectionManager?: ({
connectionId?: string | undefined;
} & {
connectionId?: string | undefined;
} & Record, never>) | undefined;
} & Record, never>)[] & Record, never>) | undefined;
nextPageToken?: string | undefined;
} & Record, never>>(object: I): ListUsersResponse;
};
export declare const CreateUserRequest: {
encode(message: CreateUserRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): CreateUserRequest;
fromJSON(object: any): CreateUserRequest;
toJSON(message: CreateUserRequest): unknown;
fromPartial, never>) | undefined;
} & Record, never>)[] & Record, never>) | undefined;
globalPermissions?: (GlobalPermission[] & GlobalPermission[] & Record, never>) | undefined;
connectionLimits?: ({
maxQuestionsPerHour?: number | undefined;
maxUpdatesPerHour?: number | undefined;
maxConnectionsPerHour?: number | undefined;
maxUserConnections?: number | undefined;
} & {
maxQuestionsPerHour?: number | undefined;
maxUpdatesPerHour?: number | undefined;
maxConnectionsPerHour?: number | undefined;
maxUserConnections?: number | undefined;
} & Record, never>) | undefined;
authenticationPlugin?: AuthPlugin | undefined;
generatePassword?: boolean | undefined;
} & Record, never>) | undefined;
} & Record, never>>(object: I): CreateUserRequest;
};
export declare const CreateUserMetadata: {
encode(message: CreateUserMetadata, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): CreateUserMetadata;
fromJSON(object: any): CreateUserMetadata;
toJSON(message: CreateUserMetadata): unknown;
fromPartial, never>>(object: I): CreateUserMetadata;
};
export declare const UpdateUserRequest: {
encode(message: UpdateUserRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): UpdateUserRequest;
fromJSON(object: any): UpdateUserRequest;
toJSON(message: UpdateUserRequest): unknown;
fromPartial, never>) | undefined;
} & Record, never>) | undefined;
password?: string | undefined;
permissions?: ({
databaseName?: string | undefined;
roles?: import("../../../../../yandex/cloud/mdb/mysql/v1/user").Permission_Privilege[] | undefined;
}[] & ({
databaseName?: string | undefined;
roles?: import("../../../../../yandex/cloud/mdb/mysql/v1/user").Permission_Privilege[] | undefined;
} & {
databaseName?: string | undefined;
roles?: (import("../../../../../yandex/cloud/mdb/mysql/v1/user").Permission_Privilege[] & import("../../../../../yandex/cloud/mdb/mysql/v1/user").Permission_Privilege[] & Record, never>) | undefined;
} & Record, never>)[] & Record, never>) | undefined;
globalPermissions?: (GlobalPermission[] & GlobalPermission[] & Record, never>) | undefined;
connectionLimits?: ({
maxQuestionsPerHour?: number | undefined;
maxUpdatesPerHour?: number | undefined;
maxConnectionsPerHour?: number | undefined;
maxUserConnections?: number | undefined;
} & {
maxQuestionsPerHour?: number | undefined;
maxUpdatesPerHour?: number | undefined;
maxConnectionsPerHour?: number | undefined;
maxUserConnections?: number | undefined;
} & Record, never>) | undefined;
authenticationPlugin?: AuthPlugin | undefined;
generatePassword?: boolean | undefined;
} & Record, never>>(object: I): UpdateUserRequest;
};
export declare const UpdateUserMetadata: {
encode(message: UpdateUserMetadata, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): UpdateUserMetadata;
fromJSON(object: any): UpdateUserMetadata;
toJSON(message: UpdateUserMetadata): unknown;
fromPartial, never>>(object: I): UpdateUserMetadata;
};
export declare const DeleteUserRequest: {
encode(message: DeleteUserRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): DeleteUserRequest;
fromJSON(object: any): DeleteUserRequest;
toJSON(message: DeleteUserRequest): unknown;
fromPartial, never>>(object: I): DeleteUserRequest;
};
export declare const DeleteUserMetadata: {
encode(message: DeleteUserMetadata, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): DeleteUserMetadata;
fromJSON(object: any): DeleteUserMetadata;
toJSON(message: DeleteUserMetadata): unknown;
fromPartial, never>>(object: I): DeleteUserMetadata;
};
export declare const GrantUserPermissionRequest: {
encode(message: GrantUserPermissionRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GrantUserPermissionRequest;
fromJSON(object: any): GrantUserPermissionRequest;
toJSON(message: GrantUserPermissionRequest): unknown;
fromPartial, never>) | undefined;
} & Record, never>) | undefined;
} & Record, never>>(object: I): GrantUserPermissionRequest;
};
export declare const GrantUserPermissionMetadata: {
encode(message: GrantUserPermissionMetadata, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): GrantUserPermissionMetadata;
fromJSON(object: any): GrantUserPermissionMetadata;
toJSON(message: GrantUserPermissionMetadata): unknown;
fromPartial, never>>(object: I): GrantUserPermissionMetadata;
};
export declare const RevokeUserPermissionRequest: {
encode(message: RevokeUserPermissionRequest, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): RevokeUserPermissionRequest;
fromJSON(object: any): RevokeUserPermissionRequest;
toJSON(message: RevokeUserPermissionRequest): unknown;
fromPartial, never>) | undefined;
} & Record, never>) | undefined;
} & Record, never>>(object: I): RevokeUserPermissionRequest;
};
export declare const RevokeUserPermissionMetadata: {
encode(message: RevokeUserPermissionMetadata, writer?: _m0.Writer): _m0.Writer;
decode(input: _m0.Reader | Uint8Array, length?: number): RevokeUserPermissionMetadata;
fromJSON(object: any): RevokeUserPermissionMetadata;
toJSON(message: RevokeUserPermissionMetadata): unknown;
fromPartial, never>>(object: I): RevokeUserPermissionMetadata;
};
/**
* A set of methods for managing MySQL users.
*
* See [the documentation](/docs/managed-mysql/operations/cluster-users) for details.
*/
export declare const UserServiceService: {
/** Retrieves information about the specified user. */
readonly get: {
readonly path: "/yandex.cloud.mdb.mysql.v1.UserService/Get";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: GetUserRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => GetUserRequest;
readonly responseSerialize: (value: User) => Buffer;
readonly responseDeserialize: (value: Buffer) => User;
};
/** Retrieves the list of users in a cluster. */
readonly list: {
readonly path: "/yandex.cloud.mdb.mysql.v1.UserService/List";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: ListUsersRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => ListUsersRequest;
readonly responseSerialize: (value: ListUsersResponse) => Buffer;
readonly responseDeserialize: (value: Buffer) => ListUsersResponse;
};
/** Creates a user in a cluster. */
readonly create: {
readonly path: "/yandex.cloud.mdb.mysql.v1.UserService/Create";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: CreateUserRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => CreateUserRequest;
readonly responseSerialize: (value: Operation) => Buffer;
readonly responseDeserialize: (value: Buffer) => Operation;
};
/** Updates a user in a cluster. */
readonly update: {
readonly path: "/yandex.cloud.mdb.mysql.v1.UserService/Update";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: UpdateUserRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => UpdateUserRequest;
readonly responseSerialize: (value: Operation) => Buffer;
readonly responseDeserialize: (value: Buffer) => Operation;
};
/** Deletes a user in a cluster. */
readonly delete: {
readonly path: "/yandex.cloud.mdb.mysql.v1.UserService/Delete";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: DeleteUserRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => DeleteUserRequest;
readonly responseSerialize: (value: Operation) => Buffer;
readonly responseDeserialize: (value: Buffer) => Operation;
};
/** Grants permission to access a database to a user in a cluster. */
readonly grantPermission: {
readonly path: "/yandex.cloud.mdb.mysql.v1.UserService/GrantPermission";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: GrantUserPermissionRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => GrantUserPermissionRequest;
readonly responseSerialize: (value: Operation) => Buffer;
readonly responseDeserialize: (value: Buffer) => Operation;
};
/** Revokes permission to access a database from a user in a cluster. */
readonly revokePermission: {
readonly path: "/yandex.cloud.mdb.mysql.v1.UserService/RevokePermission";
readonly requestStream: false;
readonly responseStream: false;
readonly requestSerialize: (value: RevokeUserPermissionRequest) => Buffer;
readonly requestDeserialize: (value: Buffer) => RevokeUserPermissionRequest;
readonly responseSerialize: (value: Operation) => Buffer;
readonly responseDeserialize: (value: Buffer) => Operation;
};
};
export interface UserServiceServer extends UntypedServiceImplementation {
/** Retrieves information about the specified user. */
get: handleUnaryCall;
/** Retrieves the list of users in a cluster. */
list: handleUnaryCall;
/** Creates a user in a cluster. */
create: handleUnaryCall;
/** Updates a user in a cluster. */
update: handleUnaryCall;
/** Deletes a user in a cluster. */
delete: handleUnaryCall;
/** Grants permission to access a database to a user in a cluster. */
grantPermission: handleUnaryCall;
/** Revokes permission to access a database from a user in a cluster. */
revokePermission: handleUnaryCall;
}
export interface UserServiceClient extends Client {
/** Retrieves information about the specified user. */
get(request: GetUserRequest, callback: (error: ServiceError | null, response: User) => void): ClientUnaryCall;
get(request: GetUserRequest, metadata: Metadata, callback: (error: ServiceError | null, response: User) => void): ClientUnaryCall;
get(request: GetUserRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: User) => void): ClientUnaryCall;
/** Retrieves the list of users in a cluster. */
list(request: ListUsersRequest, callback: (error: ServiceError | null, response: ListUsersResponse) => void): ClientUnaryCall;
list(request: ListUsersRequest, metadata: Metadata, callback: (error: ServiceError | null, response: ListUsersResponse) => void): ClientUnaryCall;
list(request: ListUsersRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: ListUsersResponse) => void): ClientUnaryCall;
/** Creates a user in a cluster. */
create(request: CreateUserRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
create(request: CreateUserRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
create(request: CreateUserRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
/** Updates a user in a cluster. */
update(request: UpdateUserRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
update(request: UpdateUserRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
update(request: UpdateUserRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
/** Deletes a user in a cluster. */
delete(request: DeleteUserRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
delete(request: DeleteUserRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
delete(request: DeleteUserRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
/** Grants permission to access a database to a user in a cluster. */
grantPermission(request: GrantUserPermissionRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
grantPermission(request: GrantUserPermissionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
grantPermission(request: GrantUserPermissionRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
/** Revokes permission to access a database from a user in a cluster. */
revokePermission(request: RevokeUserPermissionRequest, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
revokePermission(request: RevokeUserPermissionRequest, metadata: Metadata, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
revokePermission(request: RevokeUserPermissionRequest, metadata: Metadata, options: Partial, callback: (error: ServiceError | null, response: Operation) => void): ClientUnaryCall;
}
export declare const UserServiceClient: {
new (address: string, credentials: ChannelCredentials, options?: Partial): UserServiceClient;
service: typeof UserServiceService;
};
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export type DeepPartial = T extends Builtin ? T : T extends Array ? Array> : T extends ReadonlyArray ? ReadonlyArray> : T extends {} ? {
[K in keyof T]?: DeepPartial;
} : Partial;
type KeysOfUnion = T extends T ? keyof T : never;
export type Exact
= P extends Builtin ? P : P & {
[K in keyof P]: Exact