All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.digitalocean.kotlin.DatabaseMysqlConfigArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.digitalocean.kotlin

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.digitalocean.DatabaseMysqlConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Double
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * Provides a virtual resource that can be used to change advanced configuration
 * options for a DigitalOcean managed MySQL database cluster.
 * > **Note** MySQL configurations are only removed from state when destroyed. The remote configuration is not unset.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as digitalocean from "@pulumi/digitalocean";
 * const exampleDatabaseCluster = new digitalocean.DatabaseCluster("example", {
 *     name: "example-mysql-cluster",
 *     engine: "mysql",
 *     version: "8",
 *     size: digitalocean.DatabaseSlug.DB_1VPCU1GB,
 *     region: digitalocean.Region.NYC1,
 *     nodeCount: 1,
 * });
 * const example = new digitalocean.DatabaseMysqlConfig("example", {
 *     clusterId: exampleDatabaseCluster.id,
 *     connectTimeout: 10,
 *     defaultTimeZone: "UTC",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_digitalocean as digitalocean
 * example_database_cluster = digitalocean.DatabaseCluster("example",
 *     name="example-mysql-cluster",
 *     engine="mysql",
 *     version="8",
 *     size=digitalocean.DatabaseSlug.D_B_1_VPCU1_GB,
 *     region=digitalocean.Region.NYC1,
 *     node_count=1)
 * example = digitalocean.DatabaseMysqlConfig("example",
 *     cluster_id=example_database_cluster.id,
 *     connect_timeout=10,
 *     default_time_zone="UTC")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using DigitalOcean = Pulumi.DigitalOcean;
 * return await Deployment.RunAsync(() =>
 * {
 *     var exampleDatabaseCluster = new DigitalOcean.DatabaseCluster("example", new()
 *     {
 *         Name = "example-mysql-cluster",
 *         Engine = "mysql",
 *         Version = "8",
 *         Size = DigitalOcean.DatabaseSlug.DB_1VPCU1GB,
 *         Region = DigitalOcean.Region.NYC1,
 *         NodeCount = 1,
 *     });
 *     var example = new DigitalOcean.DatabaseMysqlConfig("example", new()
 *     {
 *         ClusterId = exampleDatabaseCluster.Id,
 *         ConnectTimeout = 10,
 *         DefaultTimeZone = "UTC",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-digitalocean/sdk/v4/go/digitalocean"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		exampleDatabaseCluster, err := digitalocean.NewDatabaseCluster(ctx, "example", &digitalocean.DatabaseClusterArgs{
 * 			Name:      pulumi.String("example-mysql-cluster"),
 * 			Engine:    pulumi.String("mysql"),
 * 			Version:   pulumi.String("8"),
 * 			Size:      pulumi.String(digitalocean.DatabaseSlug_DB_1VPCU1GB),
 * 			Region:    pulumi.String(digitalocean.RegionNYC1),
 * 			NodeCount: pulumi.Int(1),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = digitalocean.NewDatabaseMysqlConfig(ctx, "example", &digitalocean.DatabaseMysqlConfigArgs{
 * 			ClusterId:       exampleDatabaseCluster.ID(),
 * 			ConnectTimeout:  pulumi.Int(10),
 * 			DefaultTimeZone: pulumi.String("UTC"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.digitalocean.DatabaseCluster;
 * import com.pulumi.digitalocean.DatabaseClusterArgs;
 * import com.pulumi.digitalocean.DatabaseMysqlConfig;
 * import com.pulumi.digitalocean.DatabaseMysqlConfigArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var exampleDatabaseCluster = new DatabaseCluster("exampleDatabaseCluster", DatabaseClusterArgs.builder()
 *             .name("example-mysql-cluster")
 *             .engine("mysql")
 *             .version("8")
 *             .size("db-s-1vcpu-1gb")
 *             .region("nyc1")
 *             .nodeCount(1)
 *             .build());
 *         var example = new DatabaseMysqlConfig("example", DatabaseMysqlConfigArgs.builder()
 *             .clusterId(exampleDatabaseCluster.id())
 *             .connectTimeout(10)
 *             .defaultTimeZone("UTC")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   example:
 *     type: digitalocean:DatabaseMysqlConfig
 *     properties:
 *       clusterId: ${exampleDatabaseCluster.id}
 *       connectTimeout: 10
 *       defaultTimeZone: UTC
 *   exampleDatabaseCluster:
 *     type: digitalocean:DatabaseCluster
 *     name: example
 *     properties:
 *       name: example-mysql-cluster
 *       engine: mysql
 *       version: '8'
 *       size: db-s-1vcpu-1gb
 *       region: nyc1
 *       nodeCount: 1
 * ```
 * 
 * ## Import
 * A MySQL database cluster's configuration can be imported using the `id` the parent cluster, e.g.
 * ```sh
 * $ pulumi import digitalocean:index/databaseMysqlConfig:DatabaseMysqlConfig example 4b62829a-9c42-465b-aaa3-84051048e712
 * ```
 * @property backupHour The hour of day (in UTC) when backup for the service starts. New backup only starts if previous backup has already completed.
 * @property backupMinute The minute of the backup hour when backup for the service starts. New backup only starts if previous backup has already completed.
 * @property binlogRetentionPeriod The minimum amount of time, in seconds, to keep binlog entries before deletion. This may be extended for services that require binlog entries for longer than the default, for example if using the MySQL Debezium Kafka connector.
 * @property clusterId The ID of the target MySQL cluster.
 * @property connectTimeout The number of seconds that the mysqld server waits for a connect packet before responding with bad handshake.
 * @property defaultTimeZone Default server time zone, in the form of an offset from UTC (from -12:00 to +12:00), a time zone name (EST), or `SYSTEM` to use the MySQL server default.
 * @property groupConcatMaxLen The maximum permitted result length, in bytes, for the `GROUP_CONCAT()` function.
 * @property informationSchemaStatsExpiry The time, in seconds, before cached statistics expire.
 * @property innodbFtMinTokenSize The minimum length of words that an InnoDB FULLTEXT index stores.
 * @property innodbFtServerStopwordTable The InnoDB FULLTEXT index stopword list for all InnoDB tables.
 * @property innodbLockWaitTimeout The time, in seconds, that an InnoDB transaction waits for a row lock. before giving up.
 * @property innodbLogBufferSize The size of the buffer, in bytes, that InnoDB uses to write to the log files. on disk.
 * @property innodbOnlineAlterLogMaxSize The upper limit, in bytes, of the size of the temporary log files used during online DDL operations for InnoDB tables.
 * @property innodbPrintAllDeadlocks When enabled, records information about all deadlocks in InnoDB user transactions in the error log. Disabled by default.
 * @property innodbRollbackOnTimeout When enabled, transaction timeouts cause InnoDB to abort and roll back the entire transaction.
 * @property interactiveTimeout The time, in seconds, the server waits for activity on an interactive. connection before closing it.
 * @property internalTmpMemStorageEngine The storage engine for in-memory internal temporary tables. Supported values are: `TempTable`, `MEMORY`.
 * @property longQueryTime The time, in seconds, for a query to take to execute before being captured by `slow_query_logs`. Default is `10` seconds.
 * @property maxAllowedPacket The size of the largest message, in bytes, that can be received by the server. Default is `67108864` (64M).
 * @property maxHeapTableSize The maximum size, in bytes, of internal in-memory tables. Also set `tmp_table_size`. Default is `16777216` (16M)
 * @property netReadTimeout The time, in seconds, to wait for more data from an existing connection. aborting the read.
 * @property netWriteTimeout The number of seconds to wait for a block to be written to a connection before aborting the write.
 * @property slowQueryLog When enabled, captures slow queries. When disabled, also truncates the mysql.slow_log table. Default is false.
 * @property sortBufferSize The sort buffer size, in bytes, for `ORDER BY` optimization. Default is `262144`. (256K).
 * @property sqlMode Global SQL mode. If empty, uses MySQL server defaults. Must only include uppercase alphabetic characters, underscores, and commas.
 * @property sqlRequirePrimaryKey Require primary key to be defined for new tables or old tables modified with ALTER TABLE and fail if missing. It is recommended to always have primary keys because various functionality may break if any large table is missing them.
 * @property tmpTableSize The maximum size, in bytes, of internal in-memory tables. Also set `max_heap_table_size`. Default is `16777216` (16M).
 * @property waitTimeout The number of seconds the server waits for activity on a noninteractive connection before closing it.
 */
public data class DatabaseMysqlConfigArgs(
    public val backupHour: Output? = null,
    public val backupMinute: Output? = null,
    public val binlogRetentionPeriod: Output? = null,
    public val clusterId: Output? = null,
    public val connectTimeout: Output? = null,
    public val defaultTimeZone: Output? = null,
    public val groupConcatMaxLen: Output? = null,
    public val informationSchemaStatsExpiry: Output? = null,
    public val innodbFtMinTokenSize: Output? = null,
    public val innodbFtServerStopwordTable: Output? = null,
    public val innodbLockWaitTimeout: Output? = null,
    public val innodbLogBufferSize: Output? = null,
    public val innodbOnlineAlterLogMaxSize: Output? = null,
    public val innodbPrintAllDeadlocks: Output? = null,
    public val innodbRollbackOnTimeout: Output? = null,
    public val interactiveTimeout: Output? = null,
    public val internalTmpMemStorageEngine: Output? = null,
    public val longQueryTime: Output? = null,
    public val maxAllowedPacket: Output? = null,
    public val maxHeapTableSize: Output? = null,
    public val netReadTimeout: Output? = null,
    public val netWriteTimeout: Output? = null,
    public val slowQueryLog: Output? = null,
    public val sortBufferSize: Output? = null,
    public val sqlMode: Output? = null,
    public val sqlRequirePrimaryKey: Output? = null,
    public val tmpTableSize: Output? = null,
    public val waitTimeout: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.digitalocean.DatabaseMysqlConfigArgs =
        com.pulumi.digitalocean.DatabaseMysqlConfigArgs.builder()
            .backupHour(backupHour?.applyValue({ args0 -> args0 }))
            .backupMinute(backupMinute?.applyValue({ args0 -> args0 }))
            .binlogRetentionPeriod(binlogRetentionPeriod?.applyValue({ args0 -> args0 }))
            .clusterId(clusterId?.applyValue({ args0 -> args0 }))
            .connectTimeout(connectTimeout?.applyValue({ args0 -> args0 }))
            .defaultTimeZone(defaultTimeZone?.applyValue({ args0 -> args0 }))
            .groupConcatMaxLen(groupConcatMaxLen?.applyValue({ args0 -> args0 }))
            .informationSchemaStatsExpiry(informationSchemaStatsExpiry?.applyValue({ args0 -> args0 }))
            .innodbFtMinTokenSize(innodbFtMinTokenSize?.applyValue({ args0 -> args0 }))
            .innodbFtServerStopwordTable(innodbFtServerStopwordTable?.applyValue({ args0 -> args0 }))
            .innodbLockWaitTimeout(innodbLockWaitTimeout?.applyValue({ args0 -> args0 }))
            .innodbLogBufferSize(innodbLogBufferSize?.applyValue({ args0 -> args0 }))
            .innodbOnlineAlterLogMaxSize(innodbOnlineAlterLogMaxSize?.applyValue({ args0 -> args0 }))
            .innodbPrintAllDeadlocks(innodbPrintAllDeadlocks?.applyValue({ args0 -> args0 }))
            .innodbRollbackOnTimeout(innodbRollbackOnTimeout?.applyValue({ args0 -> args0 }))
            .interactiveTimeout(interactiveTimeout?.applyValue({ args0 -> args0 }))
            .internalTmpMemStorageEngine(internalTmpMemStorageEngine?.applyValue({ args0 -> args0 }))
            .longQueryTime(longQueryTime?.applyValue({ args0 -> args0 }))
            .maxAllowedPacket(maxAllowedPacket?.applyValue({ args0 -> args0 }))
            .maxHeapTableSize(maxHeapTableSize?.applyValue({ args0 -> args0 }))
            .netReadTimeout(netReadTimeout?.applyValue({ args0 -> args0 }))
            .netWriteTimeout(netWriteTimeout?.applyValue({ args0 -> args0 }))
            .slowQueryLog(slowQueryLog?.applyValue({ args0 -> args0 }))
            .sortBufferSize(sortBufferSize?.applyValue({ args0 -> args0 }))
            .sqlMode(sqlMode?.applyValue({ args0 -> args0 }))
            .sqlRequirePrimaryKey(sqlRequirePrimaryKey?.applyValue({ args0 -> args0 }))
            .tmpTableSize(tmpTableSize?.applyValue({ args0 -> args0 }))
            .waitTimeout(waitTimeout?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [DatabaseMysqlConfigArgs].
 */
@PulumiTagMarker
public class DatabaseMysqlConfigArgsBuilder internal constructor() {
    private var backupHour: Output? = null

    private var backupMinute: Output? = null

    private var binlogRetentionPeriod: Output? = null

    private var clusterId: Output? = null

    private var connectTimeout: Output? = null

    private var defaultTimeZone: Output? = null

    private var groupConcatMaxLen: Output? = null

    private var informationSchemaStatsExpiry: Output? = null

    private var innodbFtMinTokenSize: Output? = null

    private var innodbFtServerStopwordTable: Output? = null

    private var innodbLockWaitTimeout: Output? = null

    private var innodbLogBufferSize: Output? = null

    private var innodbOnlineAlterLogMaxSize: Output? = null

    private var innodbPrintAllDeadlocks: Output? = null

    private var innodbRollbackOnTimeout: Output? = null

    private var interactiveTimeout: Output? = null

    private var internalTmpMemStorageEngine: Output? = null

    private var longQueryTime: Output? = null

    private var maxAllowedPacket: Output? = null

    private var maxHeapTableSize: Output? = null

    private var netReadTimeout: Output? = null

    private var netWriteTimeout: Output? = null

    private var slowQueryLog: Output? = null

    private var sortBufferSize: Output? = null

    private var sqlMode: Output? = null

    private var sqlRequirePrimaryKey: Output? = null

    private var tmpTableSize: Output? = null

    private var waitTimeout: Output? = null

    /**
     * @param value The hour of day (in UTC) when backup for the service starts. New backup only starts if previous backup has already completed.
     */
    @JvmName("cltidgcxrrulholc")
    public suspend fun backupHour(`value`: Output) {
        this.backupHour = value
    }

    /**
     * @param value The minute of the backup hour when backup for the service starts. New backup only starts if previous backup has already completed.
     */
    @JvmName("jucqqfkynedxfxxx")
    public suspend fun backupMinute(`value`: Output) {
        this.backupMinute = value
    }

    /**
     * @param value The minimum amount of time, in seconds, to keep binlog entries before deletion. This may be extended for services that require binlog entries for longer than the default, for example if using the MySQL Debezium Kafka connector.
     */
    @JvmName("rvggubwjjdatbsof")
    public suspend fun binlogRetentionPeriod(`value`: Output) {
        this.binlogRetentionPeriod = value
    }

    /**
     * @param value The ID of the target MySQL cluster.
     */
    @JvmName("pyvjulshrflripvj")
    public suspend fun clusterId(`value`: Output) {
        this.clusterId = value
    }

    /**
     * @param value The number of seconds that the mysqld server waits for a connect packet before responding with bad handshake.
     */
    @JvmName("qfxyuioylowysody")
    public suspend fun connectTimeout(`value`: Output) {
        this.connectTimeout = value
    }

    /**
     * @param value Default server time zone, in the form of an offset from UTC (from -12:00 to +12:00), a time zone name (EST), or `SYSTEM` to use the MySQL server default.
     */
    @JvmName("mnvpforjeibbtbbo")
    public suspend fun defaultTimeZone(`value`: Output) {
        this.defaultTimeZone = value
    }

    /**
     * @param value The maximum permitted result length, in bytes, for the `GROUP_CONCAT()` function.
     */
    @JvmName("ewbffuoktcpsdags")
    public suspend fun groupConcatMaxLen(`value`: Output) {
        this.groupConcatMaxLen = value
    }

    /**
     * @param value The time, in seconds, before cached statistics expire.
     */
    @JvmName("wewmyiyawwalrcjk")
    public suspend fun informationSchemaStatsExpiry(`value`: Output) {
        this.informationSchemaStatsExpiry = value
    }

    /**
     * @param value The minimum length of words that an InnoDB FULLTEXT index stores.
     */
    @JvmName("cicodhwsvaqqwspq")
    public suspend fun innodbFtMinTokenSize(`value`: Output) {
        this.innodbFtMinTokenSize = value
    }

    /**
     * @param value The InnoDB FULLTEXT index stopword list for all InnoDB tables.
     */
    @JvmName("klmoojmniqwikqaj")
    public suspend fun innodbFtServerStopwordTable(`value`: Output) {
        this.innodbFtServerStopwordTable = value
    }

    /**
     * @param value The time, in seconds, that an InnoDB transaction waits for a row lock. before giving up.
     */
    @JvmName("fwkendgehludkqtl")
    public suspend fun innodbLockWaitTimeout(`value`: Output) {
        this.innodbLockWaitTimeout = value
    }

    /**
     * @param value The size of the buffer, in bytes, that InnoDB uses to write to the log files. on disk.
     */
    @JvmName("fkddxbtaqrfwqvla")
    public suspend fun innodbLogBufferSize(`value`: Output) {
        this.innodbLogBufferSize = value
    }

    /**
     * @param value The upper limit, in bytes, of the size of the temporary log files used during online DDL operations for InnoDB tables.
     */
    @JvmName("krpwskmwsjixdaev")
    public suspend fun innodbOnlineAlterLogMaxSize(`value`: Output) {
        this.innodbOnlineAlterLogMaxSize = value
    }

    /**
     * @param value When enabled, records information about all deadlocks in InnoDB user transactions in the error log. Disabled by default.
     */
    @JvmName("wegbmdjgefruyigf")
    public suspend fun innodbPrintAllDeadlocks(`value`: Output) {
        this.innodbPrintAllDeadlocks = value
    }

    /**
     * @param value When enabled, transaction timeouts cause InnoDB to abort and roll back the entire transaction.
     */
    @JvmName("bdeqrmbgecabgray")
    public suspend fun innodbRollbackOnTimeout(`value`: Output) {
        this.innodbRollbackOnTimeout = value
    }

    /**
     * @param value The time, in seconds, the server waits for activity on an interactive. connection before closing it.
     */
    @JvmName("pyniandcanoqcvnb")
    public suspend fun interactiveTimeout(`value`: Output) {
        this.interactiveTimeout = value
    }

    /**
     * @param value The storage engine for in-memory internal temporary tables. Supported values are: `TempTable`, `MEMORY`.
     */
    @JvmName("hueidbpjknvywaxl")
    public suspend fun internalTmpMemStorageEngine(`value`: Output) {
        this.internalTmpMemStorageEngine = value
    }

    /**
     * @param value The time, in seconds, for a query to take to execute before being captured by `slow_query_logs`. Default is `10` seconds.
     */
    @JvmName("jhqpaixafmvhooir")
    public suspend fun longQueryTime(`value`: Output) {
        this.longQueryTime = value
    }

    /**
     * @param value The size of the largest message, in bytes, that can be received by the server. Default is `67108864` (64M).
     */
    @JvmName("dabrvkimojjknlnn")
    public suspend fun maxAllowedPacket(`value`: Output) {
        this.maxAllowedPacket = value
    }

    /**
     * @param value The maximum size, in bytes, of internal in-memory tables. Also set `tmp_table_size`. Default is `16777216` (16M)
     */
    @JvmName("kxcbmjaahdyxwkmc")
    public suspend fun maxHeapTableSize(`value`: Output) {
        this.maxHeapTableSize = value
    }

    /**
     * @param value The time, in seconds, to wait for more data from an existing connection. aborting the read.
     */
    @JvmName("lxyotnasqeynktvh")
    public suspend fun netReadTimeout(`value`: Output) {
        this.netReadTimeout = value
    }

    /**
     * @param value The number of seconds to wait for a block to be written to a connection before aborting the write.
     */
    @JvmName("nishevwjkhndhevn")
    public suspend fun netWriteTimeout(`value`: Output) {
        this.netWriteTimeout = value
    }

    /**
     * @param value When enabled, captures slow queries. When disabled, also truncates the mysql.slow_log table. Default is false.
     */
    @JvmName("xahqyrnbtplwxqnk")
    public suspend fun slowQueryLog(`value`: Output) {
        this.slowQueryLog = value
    }

    /**
     * @param value The sort buffer size, in bytes, for `ORDER BY` optimization. Default is `262144`. (256K).
     */
    @JvmName("obtpgwtupvuyfdxe")
    public suspend fun sortBufferSize(`value`: Output) {
        this.sortBufferSize = value
    }

    /**
     * @param value Global SQL mode. If empty, uses MySQL server defaults. Must only include uppercase alphabetic characters, underscores, and commas.
     */
    @JvmName("wkvxpsmecmwwqtpk")
    public suspend fun sqlMode(`value`: Output) {
        this.sqlMode = value
    }

    /**
     * @param value Require primary key to be defined for new tables or old tables modified with ALTER TABLE and fail if missing. It is recommended to always have primary keys because various functionality may break if any large table is missing them.
     */
    @JvmName("sxteuyftnihwfuwp")
    public suspend fun sqlRequirePrimaryKey(`value`: Output) {
        this.sqlRequirePrimaryKey = value
    }

    /**
     * @param value The maximum size, in bytes, of internal in-memory tables. Also set `max_heap_table_size`. Default is `16777216` (16M).
     */
    @JvmName("bkymnerbcydbpomf")
    public suspend fun tmpTableSize(`value`: Output) {
        this.tmpTableSize = value
    }

    /**
     * @param value The number of seconds the server waits for activity on a noninteractive connection before closing it.
     */
    @JvmName("hrhqxtehmcxkcnyu")
    public suspend fun waitTimeout(`value`: Output) {
        this.waitTimeout = value
    }

    /**
     * @param value The hour of day (in UTC) when backup for the service starts. New backup only starts if previous backup has already completed.
     */
    @JvmName("jkotywdtecsthknd")
    public suspend fun backupHour(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.backupHour = mapped
    }

    /**
     * @param value The minute of the backup hour when backup for the service starts. New backup only starts if previous backup has already completed.
     */
    @JvmName("iorjvxdxrwbasypn")
    public suspend fun backupMinute(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.backupMinute = mapped
    }

    /**
     * @param value The minimum amount of time, in seconds, to keep binlog entries before deletion. This may be extended for services that require binlog entries for longer than the default, for example if using the MySQL Debezium Kafka connector.
     */
    @JvmName("aexqfokdwxiaqrfa")
    public suspend fun binlogRetentionPeriod(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.binlogRetentionPeriod = mapped
    }

    /**
     * @param value The ID of the target MySQL cluster.
     */
    @JvmName("xdehcqprturmtbdv")
    public suspend fun clusterId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.clusterId = mapped
    }

    /**
     * @param value The number of seconds that the mysqld server waits for a connect packet before responding with bad handshake.
     */
    @JvmName("mmykjkgcxbnodfyf")
    public suspend fun connectTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.connectTimeout = mapped
    }

    /**
     * @param value Default server time zone, in the form of an offset from UTC (from -12:00 to +12:00), a time zone name (EST), or `SYSTEM` to use the MySQL server default.
     */
    @JvmName("jdkqpvfohyxcxdyw")
    public suspend fun defaultTimeZone(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultTimeZone = mapped
    }

    /**
     * @param value The maximum permitted result length, in bytes, for the `GROUP_CONCAT()` function.
     */
    @JvmName("kvtcmmaysgxexdjh")
    public suspend fun groupConcatMaxLen(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.groupConcatMaxLen = mapped
    }

    /**
     * @param value The time, in seconds, before cached statistics expire.
     */
    @JvmName("etnsubsitreijumh")
    public suspend fun informationSchemaStatsExpiry(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.informationSchemaStatsExpiry = mapped
    }

    /**
     * @param value The minimum length of words that an InnoDB FULLTEXT index stores.
     */
    @JvmName("vmxousssailjlnas")
    public suspend fun innodbFtMinTokenSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.innodbFtMinTokenSize = mapped
    }

    /**
     * @param value The InnoDB FULLTEXT index stopword list for all InnoDB tables.
     */
    @JvmName("cvckseabkxdcgvqd")
    public suspend fun innodbFtServerStopwordTable(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.innodbFtServerStopwordTable = mapped
    }

    /**
     * @param value The time, in seconds, that an InnoDB transaction waits for a row lock. before giving up.
     */
    @JvmName("tcymnfcxejvufbte")
    public suspend fun innodbLockWaitTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.innodbLockWaitTimeout = mapped
    }

    /**
     * @param value The size of the buffer, in bytes, that InnoDB uses to write to the log files. on disk.
     */
    @JvmName("lobqgctfpbngvsbo")
    public suspend fun innodbLogBufferSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.innodbLogBufferSize = mapped
    }

    /**
     * @param value The upper limit, in bytes, of the size of the temporary log files used during online DDL operations for InnoDB tables.
     */
    @JvmName("vwgijtwgxqweepyn")
    public suspend fun innodbOnlineAlterLogMaxSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.innodbOnlineAlterLogMaxSize = mapped
    }

    /**
     * @param value When enabled, records information about all deadlocks in InnoDB user transactions in the error log. Disabled by default.
     */
    @JvmName("fvlsivmpwfdxndpf")
    public suspend fun innodbPrintAllDeadlocks(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.innodbPrintAllDeadlocks = mapped
    }

    /**
     * @param value When enabled, transaction timeouts cause InnoDB to abort and roll back the entire transaction.
     */
    @JvmName("fcjmkbylhfigahia")
    public suspend fun innodbRollbackOnTimeout(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.innodbRollbackOnTimeout = mapped
    }

    /**
     * @param value The time, in seconds, the server waits for activity on an interactive. connection before closing it.
     */
    @JvmName("caoxqwewhvjgeddw")
    public suspend fun interactiveTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.interactiveTimeout = mapped
    }

    /**
     * @param value The storage engine for in-memory internal temporary tables. Supported values are: `TempTable`, `MEMORY`.
     */
    @JvmName("nqtqlgtmwsgbnegu")
    public suspend fun internalTmpMemStorageEngine(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.internalTmpMemStorageEngine = mapped
    }

    /**
     * @param value The time, in seconds, for a query to take to execute before being captured by `slow_query_logs`. Default is `10` seconds.
     */
    @JvmName("sdjgnuwkliiiswaf")
    public suspend fun longQueryTime(`value`: Double?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.longQueryTime = mapped
    }

    /**
     * @param value The size of the largest message, in bytes, that can be received by the server. Default is `67108864` (64M).
     */
    @JvmName("suudnwjrpmvoilgt")
    public suspend fun maxAllowedPacket(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxAllowedPacket = mapped
    }

    /**
     * @param value The maximum size, in bytes, of internal in-memory tables. Also set `tmp_table_size`. Default is `16777216` (16M)
     */
    @JvmName("kppbhsbxapsijvby")
    public suspend fun maxHeapTableSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxHeapTableSize = mapped
    }

    /**
     * @param value The time, in seconds, to wait for more data from an existing connection. aborting the read.
     */
    @JvmName("kmqfjkouvavlfnji")
    public suspend fun netReadTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.netReadTimeout = mapped
    }

    /**
     * @param value The number of seconds to wait for a block to be written to a connection before aborting the write.
     */
    @JvmName("irbmvadhhhkqhxah")
    public suspend fun netWriteTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.netWriteTimeout = mapped
    }

    /**
     * @param value When enabled, captures slow queries. When disabled, also truncates the mysql.slow_log table. Default is false.
     */
    @JvmName("bliilxmjlgelcqxf")
    public suspend fun slowQueryLog(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.slowQueryLog = mapped
    }

    /**
     * @param value The sort buffer size, in bytes, for `ORDER BY` optimization. Default is `262144`. (256K).
     */
    @JvmName("nqhmxetqylursgge")
    public suspend fun sortBufferSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sortBufferSize = mapped
    }

    /**
     * @param value Global SQL mode. If empty, uses MySQL server defaults. Must only include uppercase alphabetic characters, underscores, and commas.
     */
    @JvmName("btlidxqjwtdvygcd")
    public suspend fun sqlMode(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sqlMode = mapped
    }

    /**
     * @param value Require primary key to be defined for new tables or old tables modified with ALTER TABLE and fail if missing. It is recommended to always have primary keys because various functionality may break if any large table is missing them.
     */
    @JvmName("uxiqmimkjrevxjrf")
    public suspend fun sqlRequirePrimaryKey(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sqlRequirePrimaryKey = mapped
    }

    /**
     * @param value The maximum size, in bytes, of internal in-memory tables. Also set `max_heap_table_size`. Default is `16777216` (16M).
     */
    @JvmName("aoxplqpkmkkbchqa")
    public suspend fun tmpTableSize(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tmpTableSize = mapped
    }

    /**
     * @param value The number of seconds the server waits for activity on a noninteractive connection before closing it.
     */
    @JvmName("ruvyjpepkfbfejqo")
    public suspend fun waitTimeout(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.waitTimeout = mapped
    }

    internal fun build(): DatabaseMysqlConfigArgs = DatabaseMysqlConfigArgs(
        backupHour = backupHour,
        backupMinute = backupMinute,
        binlogRetentionPeriod = binlogRetentionPeriod,
        clusterId = clusterId,
        connectTimeout = connectTimeout,
        defaultTimeZone = defaultTimeZone,
        groupConcatMaxLen = groupConcatMaxLen,
        informationSchemaStatsExpiry = informationSchemaStatsExpiry,
        innodbFtMinTokenSize = innodbFtMinTokenSize,
        innodbFtServerStopwordTable = innodbFtServerStopwordTable,
        innodbLockWaitTimeout = innodbLockWaitTimeout,
        innodbLogBufferSize = innodbLogBufferSize,
        innodbOnlineAlterLogMaxSize = innodbOnlineAlterLogMaxSize,
        innodbPrintAllDeadlocks = innodbPrintAllDeadlocks,
        innodbRollbackOnTimeout = innodbRollbackOnTimeout,
        interactiveTimeout = interactiveTimeout,
        internalTmpMemStorageEngine = internalTmpMemStorageEngine,
        longQueryTime = longQueryTime,
        maxAllowedPacket = maxAllowedPacket,
        maxHeapTableSize = maxHeapTableSize,
        netReadTimeout = netReadTimeout,
        netWriteTimeout = netWriteTimeout,
        slowQueryLog = slowQueryLog,
        sortBufferSize = sortBufferSize,
        sqlMode = sqlMode,
        sqlRequirePrimaryKey = sqlRequirePrimaryKey,
        tmpTableSize = tmpTableSize,
        waitTimeout = waitTimeout,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy