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

com.pulumi.digitalocean.inputs.DatabaseMysqlConfigState Maven / Gradle / Ivy

There is a newer version: 4.35.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.digitalocean.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class DatabaseMysqlConfigState extends com.pulumi.resources.ResourceArgs {

    public static final DatabaseMysqlConfigState Empty = new DatabaseMysqlConfigState();

    /**
     * The hour of day (in UTC) when backup for the service starts. New backup only starts if previous backup has already completed.
     * 
     */
    @Import(name="backupHour")
    private @Nullable Output backupHour;

    /**
     * @return The hour of day (in UTC) when backup for the service starts. New backup only starts if previous backup has already completed.
     * 
     */
    public Optional> backupHour() {
        return Optional.ofNullable(this.backupHour);
    }

    /**
     * The minute of the backup hour when backup for the service starts. New backup only starts if previous backup has already completed.
     * 
     */
    @Import(name="backupMinute")
    private @Nullable Output backupMinute;

    /**
     * @return The minute of the backup hour when backup for the service starts. New backup only starts if previous backup has already completed.
     * 
     */
    public Optional> backupMinute() {
        return Optional.ofNullable(this.backupMinute);
    }

    /**
     * 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.
     * 
     */
    @Import(name="binlogRetentionPeriod")
    private @Nullable Output binlogRetentionPeriod;

    /**
     * @return 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.
     * 
     */
    public Optional> binlogRetentionPeriod() {
        return Optional.ofNullable(this.binlogRetentionPeriod);
    }

    /**
     * The ID of the target MySQL cluster.
     * 
     */
    @Import(name="clusterId")
    private @Nullable Output clusterId;

    /**
     * @return The ID of the target MySQL cluster.
     * 
     */
    public Optional> clusterId() {
        return Optional.ofNullable(this.clusterId);
    }

    /**
     * The number of seconds that the mysqld server waits for a connect packet before responding with bad handshake.
     * 
     */
    @Import(name="connectTimeout")
    private @Nullable Output connectTimeout;

    /**
     * @return The number of seconds that the mysqld server waits for a connect packet before responding with bad handshake.
     * 
     */
    public Optional> connectTimeout() {
        return Optional.ofNullable(this.connectTimeout);
    }

    /**
     * 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.
     * 
     */
    @Import(name="defaultTimeZone")
    private @Nullable Output defaultTimeZone;

    /**
     * @return 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.
     * 
     */
    public Optional> defaultTimeZone() {
        return Optional.ofNullable(this.defaultTimeZone);
    }

    /**
     * The maximum permitted result length, in bytes, for the `GROUP_CONCAT()` function.
     * 
     */
    @Import(name="groupConcatMaxLen")
    private @Nullable Output groupConcatMaxLen;

    /**
     * @return The maximum permitted result length, in bytes, for the `GROUP_CONCAT()` function.
     * 
     */
    public Optional> groupConcatMaxLen() {
        return Optional.ofNullable(this.groupConcatMaxLen);
    }

    /**
     * The time, in seconds, before cached statistics expire.
     * 
     */
    @Import(name="informationSchemaStatsExpiry")
    private @Nullable Output informationSchemaStatsExpiry;

    /**
     * @return The time, in seconds, before cached statistics expire.
     * 
     */
    public Optional> informationSchemaStatsExpiry() {
        return Optional.ofNullable(this.informationSchemaStatsExpiry);
    }

    /**
     * The minimum length of words that an InnoDB FULLTEXT index stores.
     * 
     */
    @Import(name="innodbFtMinTokenSize")
    private @Nullable Output innodbFtMinTokenSize;

    /**
     * @return The minimum length of words that an InnoDB FULLTEXT index stores.
     * 
     */
    public Optional> innodbFtMinTokenSize() {
        return Optional.ofNullable(this.innodbFtMinTokenSize);
    }

    /**
     * The InnoDB FULLTEXT index stopword list for all InnoDB tables.
     * 
     */
    @Import(name="innodbFtServerStopwordTable")
    private @Nullable Output innodbFtServerStopwordTable;

    /**
     * @return The InnoDB FULLTEXT index stopword list for all InnoDB tables.
     * 
     */
    public Optional> innodbFtServerStopwordTable() {
        return Optional.ofNullable(this.innodbFtServerStopwordTable);
    }

    /**
     * The time, in seconds, that an InnoDB transaction waits for a row lock. before giving up.
     * 
     */
    @Import(name="innodbLockWaitTimeout")
    private @Nullable Output innodbLockWaitTimeout;

    /**
     * @return The time, in seconds, that an InnoDB transaction waits for a row lock. before giving up.
     * 
     */
    public Optional> innodbLockWaitTimeout() {
        return Optional.ofNullable(this.innodbLockWaitTimeout);
    }

    /**
     * The size of the buffer, in bytes, that InnoDB uses to write to the log files. on disk.
     * 
     */
    @Import(name="innodbLogBufferSize")
    private @Nullable Output innodbLogBufferSize;

    /**
     * @return The size of the buffer, in bytes, that InnoDB uses to write to the log files. on disk.
     * 
     */
    public Optional> innodbLogBufferSize() {
        return Optional.ofNullable(this.innodbLogBufferSize);
    }

    /**
     * The upper limit, in bytes, of the size of the temporary log files used during online DDL operations for InnoDB tables.
     * 
     */
    @Import(name="innodbOnlineAlterLogMaxSize")
    private @Nullable Output innodbOnlineAlterLogMaxSize;

    /**
     * @return The upper limit, in bytes, of the size of the temporary log files used during online DDL operations for InnoDB tables.
     * 
     */
    public Optional> innodbOnlineAlterLogMaxSize() {
        return Optional.ofNullable(this.innodbOnlineAlterLogMaxSize);
    }

    /**
     * When enabled, records information about all deadlocks in InnoDB user transactions in the error log. Disabled by default.
     * 
     */
    @Import(name="innodbPrintAllDeadlocks")
    private @Nullable Output innodbPrintAllDeadlocks;

    /**
     * @return When enabled, records information about all deadlocks in InnoDB user transactions in the error log. Disabled by default.
     * 
     */
    public Optional> innodbPrintAllDeadlocks() {
        return Optional.ofNullable(this.innodbPrintAllDeadlocks);
    }

    /**
     * When enabled, transaction timeouts cause InnoDB to abort and roll back the entire transaction.
     * 
     */
    @Import(name="innodbRollbackOnTimeout")
    private @Nullable Output innodbRollbackOnTimeout;

    /**
     * @return When enabled, transaction timeouts cause InnoDB to abort and roll back the entire transaction.
     * 
     */
    public Optional> innodbRollbackOnTimeout() {
        return Optional.ofNullable(this.innodbRollbackOnTimeout);
    }

    /**
     * The time, in seconds, the server waits for activity on an interactive. connection before closing it.
     * 
     */
    @Import(name="interactiveTimeout")
    private @Nullable Output interactiveTimeout;

    /**
     * @return The time, in seconds, the server waits for activity on an interactive. connection before closing it.
     * 
     */
    public Optional> interactiveTimeout() {
        return Optional.ofNullable(this.interactiveTimeout);
    }

    /**
     * The storage engine for in-memory internal temporary tables. Supported values are: `TempTable`, `MEMORY`.
     * 
     */
    @Import(name="internalTmpMemStorageEngine")
    private @Nullable Output internalTmpMemStorageEngine;

    /**
     * @return The storage engine for in-memory internal temporary tables. Supported values are: `TempTable`, `MEMORY`.
     * 
     */
    public Optional> internalTmpMemStorageEngine() {
        return Optional.ofNullable(this.internalTmpMemStorageEngine);
    }

    /**
     * The time, in seconds, for a query to take to execute before being captured by `slow_query_logs`. Default is `10` seconds.
     * 
     */
    @Import(name="longQueryTime")
    private @Nullable Output longQueryTime;

    /**
     * @return The time, in seconds, for a query to take to execute before being captured by `slow_query_logs`. Default is `10` seconds.
     * 
     */
    public Optional> longQueryTime() {
        return Optional.ofNullable(this.longQueryTime);
    }

    /**
     * The size of the largest message, in bytes, that can be received by the server. Default is `67108864` (64M).
     * 
     */
    @Import(name="maxAllowedPacket")
    private @Nullable Output maxAllowedPacket;

    /**
     * @return The size of the largest message, in bytes, that can be received by the server. Default is `67108864` (64M).
     * 
     */
    public Optional> maxAllowedPacket() {
        return Optional.ofNullable(this.maxAllowedPacket);
    }

    /**
     * The maximum size, in bytes, of internal in-memory tables. Also set `tmp_table_size`. Default is `16777216` (16M)
     * 
     */
    @Import(name="maxHeapTableSize")
    private @Nullable Output maxHeapTableSize;

    /**
     * @return The maximum size, in bytes, of internal in-memory tables. Also set `tmp_table_size`. Default is `16777216` (16M)
     * 
     */
    public Optional> maxHeapTableSize() {
        return Optional.ofNullable(this.maxHeapTableSize);
    }

    /**
     * The time, in seconds, to wait for more data from an existing connection. aborting the read.
     * 
     */
    @Import(name="netReadTimeout")
    private @Nullable Output netReadTimeout;

    /**
     * @return The time, in seconds, to wait for more data from an existing connection. aborting the read.
     * 
     */
    public Optional> netReadTimeout() {
        return Optional.ofNullable(this.netReadTimeout);
    }

    /**
     * The number of seconds to wait for a block to be written to a connection before aborting the write.
     * 
     */
    @Import(name="netWriteTimeout")
    private @Nullable Output netWriteTimeout;

    /**
     * @return The number of seconds to wait for a block to be written to a connection before aborting the write.
     * 
     */
    public Optional> netWriteTimeout() {
        return Optional.ofNullable(this.netWriteTimeout);
    }

    /**
     * When enabled, captures slow queries. When disabled, also truncates the mysql.slow_log table. Default is false.
     * 
     */
    @Import(name="slowQueryLog")
    private @Nullable Output slowQueryLog;

    /**
     * @return When enabled, captures slow queries. When disabled, also truncates the mysql.slow_log table. Default is false.
     * 
     */
    public Optional> slowQueryLog() {
        return Optional.ofNullable(this.slowQueryLog);
    }

    /**
     * The sort buffer size, in bytes, for `ORDER BY` optimization. Default is `262144`. (256K).
     * 
     */
    @Import(name="sortBufferSize")
    private @Nullable Output sortBufferSize;

    /**
     * @return The sort buffer size, in bytes, for `ORDER BY` optimization. Default is `262144`. (256K).
     * 
     */
    public Optional> sortBufferSize() {
        return Optional.ofNullable(this.sortBufferSize);
    }

    /**
     * Global SQL mode. If empty, uses MySQL server defaults. Must only include uppercase alphabetic characters, underscores, and commas.
     * 
     */
    @Import(name="sqlMode")
    private @Nullable Output sqlMode;

    /**
     * @return Global SQL mode. If empty, uses MySQL server defaults. Must only include uppercase alphabetic characters, underscores, and commas.
     * 
     */
    public Optional> sqlMode() {
        return Optional.ofNullable(this.sqlMode);
    }

    /**
     * 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.
     * 
     */
    @Import(name="sqlRequirePrimaryKey")
    private @Nullable Output sqlRequirePrimaryKey;

    /**
     * @return 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.
     * 
     */
    public Optional> sqlRequirePrimaryKey() {
        return Optional.ofNullable(this.sqlRequirePrimaryKey);
    }

    /**
     * The maximum size, in bytes, of internal in-memory tables. Also set `max_heap_table_size`. Default is `16777216` (16M).
     * 
     */
    @Import(name="tmpTableSize")
    private @Nullable Output tmpTableSize;

    /**
     * @return The maximum size, in bytes, of internal in-memory tables. Also set `max_heap_table_size`. Default is `16777216` (16M).
     * 
     */
    public Optional> tmpTableSize() {
        return Optional.ofNullable(this.tmpTableSize);
    }

    /**
     * The number of seconds the server waits for activity on a noninteractive connection before closing it.
     * 
     */
    @Import(name="waitTimeout")
    private @Nullable Output waitTimeout;

    /**
     * @return The number of seconds the server waits for activity on a noninteractive connection before closing it.
     * 
     */
    public Optional> waitTimeout() {
        return Optional.ofNullable(this.waitTimeout);
    }

    private DatabaseMysqlConfigState() {}

    private DatabaseMysqlConfigState(DatabaseMysqlConfigState $) {
        this.backupHour = $.backupHour;
        this.backupMinute = $.backupMinute;
        this.binlogRetentionPeriod = $.binlogRetentionPeriod;
        this.clusterId = $.clusterId;
        this.connectTimeout = $.connectTimeout;
        this.defaultTimeZone = $.defaultTimeZone;
        this.groupConcatMaxLen = $.groupConcatMaxLen;
        this.informationSchemaStatsExpiry = $.informationSchemaStatsExpiry;
        this.innodbFtMinTokenSize = $.innodbFtMinTokenSize;
        this.innodbFtServerStopwordTable = $.innodbFtServerStopwordTable;
        this.innodbLockWaitTimeout = $.innodbLockWaitTimeout;
        this.innodbLogBufferSize = $.innodbLogBufferSize;
        this.innodbOnlineAlterLogMaxSize = $.innodbOnlineAlterLogMaxSize;
        this.innodbPrintAllDeadlocks = $.innodbPrintAllDeadlocks;
        this.innodbRollbackOnTimeout = $.innodbRollbackOnTimeout;
        this.interactiveTimeout = $.interactiveTimeout;
        this.internalTmpMemStorageEngine = $.internalTmpMemStorageEngine;
        this.longQueryTime = $.longQueryTime;
        this.maxAllowedPacket = $.maxAllowedPacket;
        this.maxHeapTableSize = $.maxHeapTableSize;
        this.netReadTimeout = $.netReadTimeout;
        this.netWriteTimeout = $.netWriteTimeout;
        this.slowQueryLog = $.slowQueryLog;
        this.sortBufferSize = $.sortBufferSize;
        this.sqlMode = $.sqlMode;
        this.sqlRequirePrimaryKey = $.sqlRequirePrimaryKey;
        this.tmpTableSize = $.tmpTableSize;
        this.waitTimeout = $.waitTimeout;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(DatabaseMysqlConfigState defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private DatabaseMysqlConfigState $;

        public Builder() {
            $ = new DatabaseMysqlConfigState();
        }

        public Builder(DatabaseMysqlConfigState defaults) {
            $ = new DatabaseMysqlConfigState(Objects.requireNonNull(defaults));
        }

        /**
         * @param backupHour The hour of day (in UTC) when backup for the service starts. New backup only starts if previous backup has already completed.
         * 
         * @return builder
         * 
         */
        public Builder backupHour(@Nullable Output backupHour) {
            $.backupHour = backupHour;
            return this;
        }

        /**
         * @param backupHour The hour of day (in UTC) when backup for the service starts. New backup only starts if previous backup has already completed.
         * 
         * @return builder
         * 
         */
        public Builder backupHour(Integer backupHour) {
            return backupHour(Output.of(backupHour));
        }

        /**
         * @param backupMinute The minute of the backup hour when backup for the service starts. New backup only starts if previous backup has already completed.
         * 
         * @return builder
         * 
         */
        public Builder backupMinute(@Nullable Output backupMinute) {
            $.backupMinute = backupMinute;
            return this;
        }

        /**
         * @param backupMinute The minute of the backup hour when backup for the service starts. New backup only starts if previous backup has already completed.
         * 
         * @return builder
         * 
         */
        public Builder backupMinute(Integer backupMinute) {
            return backupMinute(Output.of(backupMinute));
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder binlogRetentionPeriod(@Nullable Output binlogRetentionPeriod) {
            $.binlogRetentionPeriod = binlogRetentionPeriod;
            return this;
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder binlogRetentionPeriod(Integer binlogRetentionPeriod) {
            return binlogRetentionPeriod(Output.of(binlogRetentionPeriod));
        }

        /**
         * @param clusterId The ID of the target MySQL cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterId(@Nullable Output clusterId) {
            $.clusterId = clusterId;
            return this;
        }

        /**
         * @param clusterId The ID of the target MySQL cluster.
         * 
         * @return builder
         * 
         */
        public Builder clusterId(String clusterId) {
            return clusterId(Output.of(clusterId));
        }

        /**
         * @param connectTimeout The number of seconds that the mysqld server waits for a connect packet before responding with bad handshake.
         * 
         * @return builder
         * 
         */
        public Builder connectTimeout(@Nullable Output connectTimeout) {
            $.connectTimeout = connectTimeout;
            return this;
        }

        /**
         * @param connectTimeout The number of seconds that the mysqld server waits for a connect packet before responding with bad handshake.
         * 
         * @return builder
         * 
         */
        public Builder connectTimeout(Integer connectTimeout) {
            return connectTimeout(Output.of(connectTimeout));
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder defaultTimeZone(@Nullable Output defaultTimeZone) {
            $.defaultTimeZone = defaultTimeZone;
            return this;
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder defaultTimeZone(String defaultTimeZone) {
            return defaultTimeZone(Output.of(defaultTimeZone));
        }

        /**
         * @param groupConcatMaxLen The maximum permitted result length, in bytes, for the `GROUP_CONCAT()` function.
         * 
         * @return builder
         * 
         */
        public Builder groupConcatMaxLen(@Nullable Output groupConcatMaxLen) {
            $.groupConcatMaxLen = groupConcatMaxLen;
            return this;
        }

        /**
         * @param groupConcatMaxLen The maximum permitted result length, in bytes, for the `GROUP_CONCAT()` function.
         * 
         * @return builder
         * 
         */
        public Builder groupConcatMaxLen(Integer groupConcatMaxLen) {
            return groupConcatMaxLen(Output.of(groupConcatMaxLen));
        }

        /**
         * @param informationSchemaStatsExpiry The time, in seconds, before cached statistics expire.
         * 
         * @return builder
         * 
         */
        public Builder informationSchemaStatsExpiry(@Nullable Output informationSchemaStatsExpiry) {
            $.informationSchemaStatsExpiry = informationSchemaStatsExpiry;
            return this;
        }

        /**
         * @param informationSchemaStatsExpiry The time, in seconds, before cached statistics expire.
         * 
         * @return builder
         * 
         */
        public Builder informationSchemaStatsExpiry(Integer informationSchemaStatsExpiry) {
            return informationSchemaStatsExpiry(Output.of(informationSchemaStatsExpiry));
        }

        /**
         * @param innodbFtMinTokenSize The minimum length of words that an InnoDB FULLTEXT index stores.
         * 
         * @return builder
         * 
         */
        public Builder innodbFtMinTokenSize(@Nullable Output innodbFtMinTokenSize) {
            $.innodbFtMinTokenSize = innodbFtMinTokenSize;
            return this;
        }

        /**
         * @param innodbFtMinTokenSize The minimum length of words that an InnoDB FULLTEXT index stores.
         * 
         * @return builder
         * 
         */
        public Builder innodbFtMinTokenSize(Integer innodbFtMinTokenSize) {
            return innodbFtMinTokenSize(Output.of(innodbFtMinTokenSize));
        }

        /**
         * @param innodbFtServerStopwordTable The InnoDB FULLTEXT index stopword list for all InnoDB tables.
         * 
         * @return builder
         * 
         */
        public Builder innodbFtServerStopwordTable(@Nullable Output innodbFtServerStopwordTable) {
            $.innodbFtServerStopwordTable = innodbFtServerStopwordTable;
            return this;
        }

        /**
         * @param innodbFtServerStopwordTable The InnoDB FULLTEXT index stopword list for all InnoDB tables.
         * 
         * @return builder
         * 
         */
        public Builder innodbFtServerStopwordTable(String innodbFtServerStopwordTable) {
            return innodbFtServerStopwordTable(Output.of(innodbFtServerStopwordTable));
        }

        /**
         * @param innodbLockWaitTimeout The time, in seconds, that an InnoDB transaction waits for a row lock. before giving up.
         * 
         * @return builder
         * 
         */
        public Builder innodbLockWaitTimeout(@Nullable Output innodbLockWaitTimeout) {
            $.innodbLockWaitTimeout = innodbLockWaitTimeout;
            return this;
        }

        /**
         * @param innodbLockWaitTimeout The time, in seconds, that an InnoDB transaction waits for a row lock. before giving up.
         * 
         * @return builder
         * 
         */
        public Builder innodbLockWaitTimeout(Integer innodbLockWaitTimeout) {
            return innodbLockWaitTimeout(Output.of(innodbLockWaitTimeout));
        }

        /**
         * @param innodbLogBufferSize The size of the buffer, in bytes, that InnoDB uses to write to the log files. on disk.
         * 
         * @return builder
         * 
         */
        public Builder innodbLogBufferSize(@Nullable Output innodbLogBufferSize) {
            $.innodbLogBufferSize = innodbLogBufferSize;
            return this;
        }

        /**
         * @param innodbLogBufferSize The size of the buffer, in bytes, that InnoDB uses to write to the log files. on disk.
         * 
         * @return builder
         * 
         */
        public Builder innodbLogBufferSize(Integer innodbLogBufferSize) {
            return innodbLogBufferSize(Output.of(innodbLogBufferSize));
        }

        /**
         * @param innodbOnlineAlterLogMaxSize The upper limit, in bytes, of the size of the temporary log files used during online DDL operations for InnoDB tables.
         * 
         * @return builder
         * 
         */
        public Builder innodbOnlineAlterLogMaxSize(@Nullable Output innodbOnlineAlterLogMaxSize) {
            $.innodbOnlineAlterLogMaxSize = innodbOnlineAlterLogMaxSize;
            return this;
        }

        /**
         * @param innodbOnlineAlterLogMaxSize The upper limit, in bytes, of the size of the temporary log files used during online DDL operations for InnoDB tables.
         * 
         * @return builder
         * 
         */
        public Builder innodbOnlineAlterLogMaxSize(Integer innodbOnlineAlterLogMaxSize) {
            return innodbOnlineAlterLogMaxSize(Output.of(innodbOnlineAlterLogMaxSize));
        }

        /**
         * @param innodbPrintAllDeadlocks When enabled, records information about all deadlocks in InnoDB user transactions in the error log. Disabled by default.
         * 
         * @return builder
         * 
         */
        public Builder innodbPrintAllDeadlocks(@Nullable Output innodbPrintAllDeadlocks) {
            $.innodbPrintAllDeadlocks = innodbPrintAllDeadlocks;
            return this;
        }

        /**
         * @param innodbPrintAllDeadlocks When enabled, records information about all deadlocks in InnoDB user transactions in the error log. Disabled by default.
         * 
         * @return builder
         * 
         */
        public Builder innodbPrintAllDeadlocks(Boolean innodbPrintAllDeadlocks) {
            return innodbPrintAllDeadlocks(Output.of(innodbPrintAllDeadlocks));
        }

        /**
         * @param innodbRollbackOnTimeout When enabled, transaction timeouts cause InnoDB to abort and roll back the entire transaction.
         * 
         * @return builder
         * 
         */
        public Builder innodbRollbackOnTimeout(@Nullable Output innodbRollbackOnTimeout) {
            $.innodbRollbackOnTimeout = innodbRollbackOnTimeout;
            return this;
        }

        /**
         * @param innodbRollbackOnTimeout When enabled, transaction timeouts cause InnoDB to abort and roll back the entire transaction.
         * 
         * @return builder
         * 
         */
        public Builder innodbRollbackOnTimeout(Boolean innodbRollbackOnTimeout) {
            return innodbRollbackOnTimeout(Output.of(innodbRollbackOnTimeout));
        }

        /**
         * @param interactiveTimeout The time, in seconds, the server waits for activity on an interactive. connection before closing it.
         * 
         * @return builder
         * 
         */
        public Builder interactiveTimeout(@Nullable Output interactiveTimeout) {
            $.interactiveTimeout = interactiveTimeout;
            return this;
        }

        /**
         * @param interactiveTimeout The time, in seconds, the server waits for activity on an interactive. connection before closing it.
         * 
         * @return builder
         * 
         */
        public Builder interactiveTimeout(Integer interactiveTimeout) {
            return interactiveTimeout(Output.of(interactiveTimeout));
        }

        /**
         * @param internalTmpMemStorageEngine The storage engine for in-memory internal temporary tables. Supported values are: `TempTable`, `MEMORY`.
         * 
         * @return builder
         * 
         */
        public Builder internalTmpMemStorageEngine(@Nullable Output internalTmpMemStorageEngine) {
            $.internalTmpMemStorageEngine = internalTmpMemStorageEngine;
            return this;
        }

        /**
         * @param internalTmpMemStorageEngine The storage engine for in-memory internal temporary tables. Supported values are: `TempTable`, `MEMORY`.
         * 
         * @return builder
         * 
         */
        public Builder internalTmpMemStorageEngine(String internalTmpMemStorageEngine) {
            return internalTmpMemStorageEngine(Output.of(internalTmpMemStorageEngine));
        }

        /**
         * @param longQueryTime The time, in seconds, for a query to take to execute before being captured by `slow_query_logs`. Default is `10` seconds.
         * 
         * @return builder
         * 
         */
        public Builder longQueryTime(@Nullable Output longQueryTime) {
            $.longQueryTime = longQueryTime;
            return this;
        }

        /**
         * @param longQueryTime The time, in seconds, for a query to take to execute before being captured by `slow_query_logs`. Default is `10` seconds.
         * 
         * @return builder
         * 
         */
        public Builder longQueryTime(Double longQueryTime) {
            return longQueryTime(Output.of(longQueryTime));
        }

        /**
         * @param maxAllowedPacket The size of the largest message, in bytes, that can be received by the server. Default is `67108864` (64M).
         * 
         * @return builder
         * 
         */
        public Builder maxAllowedPacket(@Nullable Output maxAllowedPacket) {
            $.maxAllowedPacket = maxAllowedPacket;
            return this;
        }

        /**
         * @param maxAllowedPacket The size of the largest message, in bytes, that can be received by the server. Default is `67108864` (64M).
         * 
         * @return builder
         * 
         */
        public Builder maxAllowedPacket(Integer maxAllowedPacket) {
            return maxAllowedPacket(Output.of(maxAllowedPacket));
        }

        /**
         * @param maxHeapTableSize The maximum size, in bytes, of internal in-memory tables. Also set `tmp_table_size`. Default is `16777216` (16M)
         * 
         * @return builder
         * 
         */
        public Builder maxHeapTableSize(@Nullable Output maxHeapTableSize) {
            $.maxHeapTableSize = maxHeapTableSize;
            return this;
        }

        /**
         * @param maxHeapTableSize The maximum size, in bytes, of internal in-memory tables. Also set `tmp_table_size`. Default is `16777216` (16M)
         * 
         * @return builder
         * 
         */
        public Builder maxHeapTableSize(Integer maxHeapTableSize) {
            return maxHeapTableSize(Output.of(maxHeapTableSize));
        }

        /**
         * @param netReadTimeout The time, in seconds, to wait for more data from an existing connection. aborting the read.
         * 
         * @return builder
         * 
         */
        public Builder netReadTimeout(@Nullable Output netReadTimeout) {
            $.netReadTimeout = netReadTimeout;
            return this;
        }

        /**
         * @param netReadTimeout The time, in seconds, to wait for more data from an existing connection. aborting the read.
         * 
         * @return builder
         * 
         */
        public Builder netReadTimeout(Integer netReadTimeout) {
            return netReadTimeout(Output.of(netReadTimeout));
        }

        /**
         * @param netWriteTimeout The number of seconds to wait for a block to be written to a connection before aborting the write.
         * 
         * @return builder
         * 
         */
        public Builder netWriteTimeout(@Nullable Output netWriteTimeout) {
            $.netWriteTimeout = netWriteTimeout;
            return this;
        }

        /**
         * @param netWriteTimeout The number of seconds to wait for a block to be written to a connection before aborting the write.
         * 
         * @return builder
         * 
         */
        public Builder netWriteTimeout(Integer netWriteTimeout) {
            return netWriteTimeout(Output.of(netWriteTimeout));
        }

        /**
         * @param slowQueryLog When enabled, captures slow queries. When disabled, also truncates the mysql.slow_log table. Default is false.
         * 
         * @return builder
         * 
         */
        public Builder slowQueryLog(@Nullable Output slowQueryLog) {
            $.slowQueryLog = slowQueryLog;
            return this;
        }

        /**
         * @param slowQueryLog When enabled, captures slow queries. When disabled, also truncates the mysql.slow_log table. Default is false.
         * 
         * @return builder
         * 
         */
        public Builder slowQueryLog(Boolean slowQueryLog) {
            return slowQueryLog(Output.of(slowQueryLog));
        }

        /**
         * @param sortBufferSize The sort buffer size, in bytes, for `ORDER BY` optimization. Default is `262144`. (256K).
         * 
         * @return builder
         * 
         */
        public Builder sortBufferSize(@Nullable Output sortBufferSize) {
            $.sortBufferSize = sortBufferSize;
            return this;
        }

        /**
         * @param sortBufferSize The sort buffer size, in bytes, for `ORDER BY` optimization. Default is `262144`. (256K).
         * 
         * @return builder
         * 
         */
        public Builder sortBufferSize(Integer sortBufferSize) {
            return sortBufferSize(Output.of(sortBufferSize));
        }

        /**
         * @param sqlMode Global SQL mode. If empty, uses MySQL server defaults. Must only include uppercase alphabetic characters, underscores, and commas.
         * 
         * @return builder
         * 
         */
        public Builder sqlMode(@Nullable Output sqlMode) {
            $.sqlMode = sqlMode;
            return this;
        }

        /**
         * @param sqlMode Global SQL mode. If empty, uses MySQL server defaults. Must only include uppercase alphabetic characters, underscores, and commas.
         * 
         * @return builder
         * 
         */
        public Builder sqlMode(String sqlMode) {
            return sqlMode(Output.of(sqlMode));
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder sqlRequirePrimaryKey(@Nullable Output sqlRequirePrimaryKey) {
            $.sqlRequirePrimaryKey = sqlRequirePrimaryKey;
            return this;
        }

        /**
         * @param 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.
         * 
         * @return builder
         * 
         */
        public Builder sqlRequirePrimaryKey(Boolean sqlRequirePrimaryKey) {
            return sqlRequirePrimaryKey(Output.of(sqlRequirePrimaryKey));
        }

        /**
         * @param tmpTableSize The maximum size, in bytes, of internal in-memory tables. Also set `max_heap_table_size`. Default is `16777216` (16M).
         * 
         * @return builder
         * 
         */
        public Builder tmpTableSize(@Nullable Output tmpTableSize) {
            $.tmpTableSize = tmpTableSize;
            return this;
        }

        /**
         * @param tmpTableSize The maximum size, in bytes, of internal in-memory tables. Also set `max_heap_table_size`. Default is `16777216` (16M).
         * 
         * @return builder
         * 
         */
        public Builder tmpTableSize(Integer tmpTableSize) {
            return tmpTableSize(Output.of(tmpTableSize));
        }

        /**
         * @param waitTimeout The number of seconds the server waits for activity on a noninteractive connection before closing it.
         * 
         * @return builder
         * 
         */
        public Builder waitTimeout(@Nullable Output waitTimeout) {
            $.waitTimeout = waitTimeout;
            return this;
        }

        /**
         * @param waitTimeout The number of seconds the server waits for activity on a noninteractive connection before closing it.
         * 
         * @return builder
         * 
         */
        public Builder waitTimeout(Integer waitTimeout) {
            return waitTimeout(Output.of(waitTimeout));
        }

        public DatabaseMysqlConfigState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy