import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface MdbMysqlUserConfig extends cdktf.TerraformMetaArguments { /** * Authentication plugin. Allowed values: `MYSQL_NATIVE_PASSWORD`, `CACHING_SHA2_PASSWORD`, `SHA256_PASSWORD`, `MYSQL_NO_LOGIN`, `MDB_IAMPROXY_AUTH` (for version 5.7 `MYSQL_NATIVE_PASSWORD`, `SHA256_PASSWORD`, `MYSQL_NO_LOGIN`, `MDB_IAMPROXY_AUTH`). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#authentication_plugin MdbMysqlUser#authentication_plugin} */ readonly authenticationPlugin?: string; /** * The ID of the MySQL cluster. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#cluster_id MdbMysqlUser#cluster_id} */ readonly clusterId: string; /** * Generate password using Connection Manager. Allowed values: `true` or `false`. It's used only during user creation and is ignored during updating. * * ~> **Must specify either password or generate_password**. * * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#generate_password MdbMysqlUser#generate_password} */ readonly generatePassword?: boolean | cdktf.IResolvable; /** * List user's global permissions. Allowed permissions: `REPLICATION_CLIENT`, `REPLICATION_SLAVE`, `PROCESS`, `FLUSH_OPTIMIZER_COSTS`, `SHOW_ROUTINE`, `MDB_ADMIN` for clear list use empty list. If the attribute is not specified there will be no changes. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#global_permissions MdbMysqlUser#global_permissions} */ readonly globalPermissions?: string[]; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#id MdbMysqlUser#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * The name of the user. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#name MdbMysqlUser#name} */ readonly name: string; /** * The password of the user. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#password MdbMysqlUser#password} */ readonly password?: string; /** * connection_limits block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#connection_limits MdbMysqlUser#connection_limits} */ readonly connectionLimits?: MdbMysqlUserConnectionLimits; /** * permission block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#permission MdbMysqlUser#permission} */ readonly permission?: MdbMysqlUserPermission[] | cdktf.IResolvable; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#timeouts MdbMysqlUser#timeouts} */ readonly timeouts?: MdbMysqlUserTimeouts; } export interface MdbMysqlUserConnectionLimits { /** * Max connections per hour. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#max_connections_per_hour MdbMysqlUser#max_connections_per_hour} */ readonly maxConnectionsPerHour?: number; /** * Max questions per hour. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#max_questions_per_hour MdbMysqlUser#max_questions_per_hour} */ readonly maxQuestionsPerHour?: number; /** * Max updates per hour. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#max_updates_per_hour MdbMysqlUser#max_updates_per_hour} */ readonly maxUpdatesPerHour?: number; /** * Max user connections. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#max_user_connections MdbMysqlUser#max_user_connections} */ readonly maxUserConnections?: number; } export declare function mdbMysqlUserConnectionLimitsToTerraform(struct?: MdbMysqlUserConnectionLimitsOutputReference | MdbMysqlUserConnectionLimits): any; export declare function mdbMysqlUserConnectionLimitsToHclTerraform(struct?: MdbMysqlUserConnectionLimitsOutputReference | MdbMysqlUserConnectionLimits): any; export declare class MdbMysqlUserConnectionLimitsOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MdbMysqlUserConnectionLimits | undefined; set internalValue(value: MdbMysqlUserConnectionLimits | undefined); private _maxConnectionsPerHour?; get maxConnectionsPerHour(): number; set maxConnectionsPerHour(value: number); resetMaxConnectionsPerHour(): void; get maxConnectionsPerHourInput(): number; private _maxQuestionsPerHour?; get maxQuestionsPerHour(): number; set maxQuestionsPerHour(value: number); resetMaxQuestionsPerHour(): void; get maxQuestionsPerHourInput(): number; private _maxUpdatesPerHour?; get maxUpdatesPerHour(): number; set maxUpdatesPerHour(value: number); resetMaxUpdatesPerHour(): void; get maxUpdatesPerHourInput(): number; private _maxUserConnections?; get maxUserConnections(): number; set maxUserConnections(value: number); resetMaxUserConnections(): void; get maxUserConnectionsInput(): number; } export interface MdbMysqlUserPermission { /** * The name of the database that the permission grants access to. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#database_name MdbMysqlUser#database_name} */ readonly databaseName: string; /** * List user's roles in the database. Allowed roles: `ALL`,`ALTER`,`ALTER_ROUTINE`,`CREATE`,`CREATE_ROUTINE`,`CREATE_TEMPORARY_TABLES`, `CREATE_VIEW`,`DELETE`,`DROP`,`EVENT`,`EXECUTE`,`INDEX`,`INSERT`,`LOCK_TABLES`,`SELECT`,`SHOW_VIEW`,`TRIGGER`,`UPDATE`,`REFERENCES`. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#roles MdbMysqlUser#roles} */ readonly roles?: string[]; } export declare function mdbMysqlUserPermissionToTerraform(struct?: MdbMysqlUserPermission | cdktf.IResolvable): any; export declare function mdbMysqlUserPermissionToHclTerraform(struct?: MdbMysqlUserPermission | cdktf.IResolvable): any; export declare class MdbMysqlUserPermissionOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): MdbMysqlUserPermission | cdktf.IResolvable | undefined; set internalValue(value: MdbMysqlUserPermission | cdktf.IResolvable | undefined); private _databaseName?; get databaseName(): string; set databaseName(value: string); get databaseNameInput(): string; private _roles?; get roles(): string[]; set roles(value: string[]); resetRoles(): void; get rolesInput(): string[]; } export declare class MdbMysqlUserPermissionList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: MdbMysqlUserPermission[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): MdbMysqlUserPermissionOutputReference; } export interface MdbMysqlUserTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#create MdbMysqlUser#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#delete MdbMysqlUser#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#read MdbMysqlUser#read} */ readonly read?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#update MdbMysqlUser#update} */ readonly update?: string; } export declare function mdbMysqlUserTimeoutsToTerraform(struct?: MdbMysqlUserTimeouts | cdktf.IResolvable): any; export declare function mdbMysqlUserTimeoutsToHclTerraform(struct?: MdbMysqlUserTimeouts | cdktf.IResolvable): any; export declare class MdbMysqlUserTimeoutsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): MdbMysqlUserTimeouts | cdktf.IResolvable | undefined; set internalValue(value: MdbMysqlUserTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string; private _read?; get read(): string; set read(value: string); resetRead(): void; get readInput(): string; private _update?; get update(): string; set update(value: string); resetUpdate(): void; get updateInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user yandex_mdb_mysql_user} */ export declare class MdbMysqlUser extends cdktf.TerraformResource { static readonly tfResourceType = "yandex_mdb_mysql_user"; /** * Generates CDKTF code for importing a MdbMysqlUser resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the MdbMysqlUser to import * @param importFromId The id of the existing MdbMysqlUser that should be imported. Refer to the {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the MdbMysqlUser to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/yandex-cloud/yandex/0.177.0/docs/resources/mdb_mysql_user yandex_mdb_mysql_user} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options MdbMysqlUserConfig */ constructor(scope: Construct, id: string, config: MdbMysqlUserConfig); private _authenticationPlugin?; get authenticationPlugin(): string; set authenticationPlugin(value: string); resetAuthenticationPlugin(): void; get authenticationPluginInput(): string; private _clusterId?; get clusterId(): string; set clusterId(value: string); get clusterIdInput(): string; private _connectionManager; get connectionManager(): any; private _generatePassword?; get generatePassword(): boolean | cdktf.IResolvable; set generatePassword(value: boolean | cdktf.IResolvable); resetGeneratePassword(): void; get generatePasswordInput(): any; private _globalPermissions?; get globalPermissions(): string[]; set globalPermissions(value: string[]); resetGlobalPermissions(): void; get globalPermissionsInput(): string[]; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _password?; get password(): string; set password(value: string); resetPassword(): void; get passwordInput(): string; private _connectionLimits; get connectionLimits(): MdbMysqlUserConnectionLimitsOutputReference; putConnectionLimits(value: MdbMysqlUserConnectionLimits): void; resetConnectionLimits(): void; get connectionLimitsInput(): MdbMysqlUserConnectionLimits; private _permission; get permission(): MdbMysqlUserPermissionList; putPermission(value: MdbMysqlUserPermission[] | cdktf.IResolvable): void; resetPermission(): void; get permissionInput(): any; private _timeouts; get timeouts(): MdbMysqlUserTimeoutsOutputReference; putTimeouts(value: MdbMysqlUserTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }