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

com.pulumi.digitalocean.inputs.DatabasePostgresqlConfigState 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 com.pulumi.digitalocean.inputs.DatabasePostgresqlConfigPgbouncerArgs;
import com.pulumi.digitalocean.inputs.DatabasePostgresqlConfigTimescaledbArgs;
import java.lang.Boolean;
import java.lang.Double;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final DatabasePostgresqlConfigState Empty = new DatabasePostgresqlConfigState();

    /**
     * Specifies a fraction, in a decimal value, of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default is 0.2 (20% of table size).
     * 
     */
    @Import(name="autovacuumAnalyzeScaleFactor")
    private @Nullable Output autovacuumAnalyzeScaleFactor;

    /**
     * @return Specifies a fraction, in a decimal value, of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default is 0.2 (20% of table size).
     * 
     */
    public Optional> autovacuumAnalyzeScaleFactor() {
        return Optional.ofNullable(this.autovacuumAnalyzeScaleFactor);
    }

    /**
     * Specifies the minimum number of inserted, updated, or deleted tuples needed to trigger an ANALYZE in any one table. The default is 50 tuples.
     * 
     */
    @Import(name="autovacuumAnalyzeThreshold")
    private @Nullable Output autovacuumAnalyzeThreshold;

    /**
     * @return Specifies the minimum number of inserted, updated, or deleted tuples needed to trigger an ANALYZE in any one table. The default is 50 tuples.
     * 
     */
    public Optional> autovacuumAnalyzeThreshold() {
        return Optional.ofNullable(this.autovacuumAnalyzeThreshold);
    }

    /**
     * Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before a VACUUM operation is forced to prevent transaction ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. This parameter will cause the server to be restarted.
     * 
     */
    @Import(name="autovacuumFreezeMaxAge")
    private @Nullable Output autovacuumFreezeMaxAge;

    /**
     * @return Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before a VACUUM operation is forced to prevent transaction ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. This parameter will cause the server to be restarted.
     * 
     */
    public Optional> autovacuumFreezeMaxAge() {
        return Optional.ofNullable(this.autovacuumFreezeMaxAge);
    }

    /**
     * Specifies the maximum number of autovacuum processes (other than the autovacuum launcher) that may be running at any one time. The default is three. This parameter can only be set at server start.
     * 
     */
    @Import(name="autovacuumMaxWorkers")
    private @Nullable Output autovacuumMaxWorkers;

    /**
     * @return Specifies the maximum number of autovacuum processes (other than the autovacuum launcher) that may be running at any one time. The default is three. This parameter can only be set at server start.
     * 
     */
    public Optional> autovacuumMaxWorkers() {
        return Optional.ofNullable(this.autovacuumMaxWorkers);
    }

    /**
     * Specifies the minimum delay, in seconds, between autovacuum runs on any given database. The default is one minute.
     * 
     */
    @Import(name="autovacuumNaptime")
    private @Nullable Output autovacuumNaptime;

    /**
     * @return Specifies the minimum delay, in seconds, between autovacuum runs on any given database. The default is one minute.
     * 
     */
    public Optional> autovacuumNaptime() {
        return Optional.ofNullable(this.autovacuumNaptime);
    }

    /**
     * Specifies the cost delay value, in milliseconds, that will be used in automatic VACUUM operations. If -1, uses the regular vacuum_cost_delay value, which is 20 milliseconds.
     * 
     */
    @Import(name="autovacuumVacuumCostDelay")
    private @Nullable Output autovacuumVacuumCostDelay;

    /**
     * @return Specifies the cost delay value, in milliseconds, that will be used in automatic VACUUM operations. If -1, uses the regular vacuum_cost_delay value, which is 20 milliseconds.
     * 
     */
    public Optional> autovacuumVacuumCostDelay() {
        return Optional.ofNullable(this.autovacuumVacuumCostDelay);
    }

    /**
     * Specifies the cost limit value that will be used in automatic VACUUM operations. If -1 is specified (which is the default), the regular vacuum_cost_limit value will be used.
     * 
     */
    @Import(name="autovacuumVacuumCostLimit")
    private @Nullable Output autovacuumVacuumCostLimit;

    /**
     * @return Specifies the cost limit value that will be used in automatic VACUUM operations. If -1 is specified (which is the default), the regular vacuum_cost_limit value will be used.
     * 
     */
    public Optional> autovacuumVacuumCostLimit() {
        return Optional.ofNullable(this.autovacuumVacuumCostLimit);
    }

    /**
     * Specifies a fraction, in a decimal value, of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM. The default is 0.2 (20% of table size).
     * 
     */
    @Import(name="autovacuumVacuumScaleFactor")
    private @Nullable Output autovacuumVacuumScaleFactor;

    /**
     * @return Specifies a fraction, in a decimal value, of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM. The default is 0.2 (20% of table size).
     * 
     */
    public Optional> autovacuumVacuumScaleFactor() {
        return Optional.ofNullable(this.autovacuumVacuumScaleFactor);
    }

    /**
     * Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is 50 tuples.
     * 
     */
    @Import(name="autovacuumVacuumThreshold")
    private @Nullable Output autovacuumVacuumThreshold;

    /**
     * @return Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is 50 tuples.
     * 
     */
    public Optional> autovacuumVacuumThreshold() {
        return Optional.ofNullable(this.autovacuumVacuumThreshold);
    }

    /**
     * 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 is only started 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 is only started if previous backup has already completed.
     * 
     */
    public Optional> backupMinute() {
        return Optional.ofNullable(this.backupMinute);
    }

    /**
     * Specifies the delay, in milliseconds, between activity rounds for the background writer. Default is 200 ms.
     * 
     */
    @Import(name="bgwriterDelay")
    private @Nullable Output bgwriterDelay;

    /**
     * @return Specifies the delay, in milliseconds, between activity rounds for the background writer. Default is 200 ms.
     * 
     */
    public Optional> bgwriterDelay() {
        return Optional.ofNullable(this.bgwriterDelay);
    }

    /**
     * The amount of kilobytes that need to be written by the background writer before attempting to force the OS to issue these writes to underlying storage. Specified in kilobytes, default is 512. Setting of 0 disables forced writeback.
     * 
     */
    @Import(name="bgwriterFlushAfter")
    private @Nullable Output bgwriterFlushAfter;

    /**
     * @return The amount of kilobytes that need to be written by the background writer before attempting to force the OS to issue these writes to underlying storage. Specified in kilobytes, default is 512. Setting of 0 disables forced writeback.
     * 
     */
    public Optional> bgwriterFlushAfter() {
        return Optional.ofNullable(this.bgwriterFlushAfter);
    }

    /**
     * The maximum number of buffers that the background writer can write. Setting this to zero disables background writing. Default is 100.
     * 
     */
    @Import(name="bgwriterLruMaxpages")
    private @Nullable Output bgwriterLruMaxpages;

    /**
     * @return The maximum number of buffers that the background writer can write. Setting this to zero disables background writing. Default is 100.
     * 
     */
    public Optional> bgwriterLruMaxpages() {
        return Optional.ofNullable(this.bgwriterLruMaxpages);
    }

    /**
     * The average recent need for new buffers is multiplied by bgwriter_lru_multiplier to arrive at an estimate of the number that will be needed during the next round, (up to bgwriter_lru_maxpages). 1.0 represents a “just in time” policy of writing exactly the number of buffers predicted to be needed. Larger values provide some cushion against spikes in demand, while smaller values intentionally leave writes to be done by server processes. The default is 2.0.
     * 
     */
    @Import(name="bgwriterLruMultiplier")
    private @Nullable Output bgwriterLruMultiplier;

    /**
     * @return The average recent need for new buffers is multiplied by bgwriter_lru_multiplier to arrive at an estimate of the number that will be needed during the next round, (up to bgwriter_lru_maxpages). 1.0 represents a “just in time” policy of writing exactly the number of buffers predicted to be needed. Larger values provide some cushion against spikes in demand, while smaller values intentionally leave writes to be done by server processes. The default is 2.0.
     * 
     */
    public Optional> bgwriterLruMultiplier() {
        return Optional.ofNullable(this.bgwriterLruMultiplier);
    }

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

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

    /**
     * The amount of time, in milliseconds, to wait on a lock before checking to see if there is a deadlock condition.
     * 
     */
    @Import(name="deadlockTimeout")
    private @Nullable Output deadlockTimeout;

    /**
     * @return The amount of time, in milliseconds, to wait on a lock before checking to see if there is a deadlock condition.
     * 
     */
    public Optional> deadlockTimeout() {
        return Optional.ofNullable(this.deadlockTimeout);
    }

    /**
     * Specifies the default TOAST compression method for values of compressible columns (the default is lz4). Supported values are: `lz4`, `pglz`.
     * 
     */
    @Import(name="defaultToastCompression")
    private @Nullable Output defaultToastCompression;

    /**
     * @return Specifies the default TOAST compression method for values of compressible columns (the default is lz4). Supported values are: `lz4`, `pglz`.
     * 
     */
    public Optional> defaultToastCompression() {
        return Optional.ofNullable(this.defaultToastCompression);
    }

    /**
     * Time out sessions with open transactions after this number of milliseconds
     * 
     */
    @Import(name="idleInTransactionSessionTimeout")
    private @Nullable Output idleInTransactionSessionTimeout;

    /**
     * @return Time out sessions with open transactions after this number of milliseconds
     * 
     */
    public Optional> idleInTransactionSessionTimeout() {
        return Optional.ofNullable(this.idleInTransactionSessionTimeout);
    }

    /**
     * Activates, in a boolean, the system-wide use of Just-in-Time Compilation (JIT).
     * 
     */
    @Import(name="jit")
    private @Nullable Output jit;

    /**
     * @return Activates, in a boolean, the system-wide use of Just-in-Time Compilation (JIT).
     * 
     */
    public Optional> jit() {
        return Optional.ofNullable(this.jit);
    }

    /**
     * Causes each action executed by autovacuum to be logged if it ran for at least the specified number of milliseconds. Setting this to zero logs all autovacuum actions. Minus-one (the default) disables logging autovacuum actions.
     * 
     */
    @Import(name="logAutovacuumMinDuration")
    private @Nullable Output logAutovacuumMinDuration;

    /**
     * @return Causes each action executed by autovacuum to be logged if it ran for at least the specified number of milliseconds. Setting this to zero logs all autovacuum actions. Minus-one (the default) disables logging autovacuum actions.
     * 
     */
    public Optional> logAutovacuumMinDuration() {
        return Optional.ofNullable(this.logAutovacuumMinDuration);
    }

    /**
     * Controls the amount of detail written in the server log for each message that is logged. Supported values are: `TERSE`, `DEFAULT`, `VERBOSE`.
     * 
     */
    @Import(name="logErrorVerbosity")
    private @Nullable Output logErrorVerbosity;

    /**
     * @return Controls the amount of detail written in the server log for each message that is logged. Supported values are: `TERSE`, `DEFAULT`, `VERBOSE`.
     * 
     */
    public Optional> logErrorVerbosity() {
        return Optional.ofNullable(this.logErrorVerbosity);
    }

    /**
     * Selects one of the available log-formats. These can support popular log analyzers like pgbadger, pganalyze, etc. Supported values are: `pid=%p,user=%u,db=%d,app=%a,client=%h`, `%m [%p] %q[user=%u,db=%d,app=%a]`, `%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h`.
     * 
     */
    @Import(name="logLinePrefix")
    private @Nullable Output logLinePrefix;

    /**
     * @return Selects one of the available log-formats. These can support popular log analyzers like pgbadger, pganalyze, etc. Supported values are: `pid=%p,user=%u,db=%d,app=%a,client=%h`, `%m [%p] %q[user=%u,db=%d,app=%a]`, `%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h`.
     * 
     */
    public Optional> logLinePrefix() {
        return Optional.ofNullable(this.logLinePrefix);
    }

    /**
     * Log statements that take more than this number of milliseconds to run. If -1, disables.
     * 
     */
    @Import(name="logMinDurationStatement")
    private @Nullable Output logMinDurationStatement;

    /**
     * @return Log statements that take more than this number of milliseconds to run. If -1, disables.
     * 
     */
    public Optional> logMinDurationStatement() {
        return Optional.ofNullable(this.logMinDurationStatement);
    }

    /**
     * PostgreSQL maximum number of files that can be open per process.
     * 
     */
    @Import(name="maxFilesPerProcess")
    private @Nullable Output maxFilesPerProcess;

    /**
     * @return PostgreSQL maximum number of files that can be open per process.
     * 
     */
    public Optional> maxFilesPerProcess() {
        return Optional.ofNullable(this.maxFilesPerProcess);
    }

    /**
     * PostgreSQL maximum locks per transaction. Once increased, this parameter cannot be lowered from its set value.
     * 
     */
    @Import(name="maxLocksPerTransaction")
    private @Nullable Output maxLocksPerTransaction;

    /**
     * @return PostgreSQL maximum locks per transaction. Once increased, this parameter cannot be lowered from its set value.
     * 
     */
    public Optional> maxLocksPerTransaction() {
        return Optional.ofNullable(this.maxLocksPerTransaction);
    }

    /**
     * PostgreSQL maximum logical replication workers (taken from the pool of max_parallel_workers).
     * 
     */
    @Import(name="maxLogicalReplicationWorkers")
    private @Nullable Output maxLogicalReplicationWorkers;

    /**
     * @return PostgreSQL maximum logical replication workers (taken from the pool of max_parallel_workers).
     * 
     */
    public Optional> maxLogicalReplicationWorkers() {
        return Optional.ofNullable(this.maxLogicalReplicationWorkers);
    }

    /**
     * Sets the maximum number of workers that the system can support for parallel queries.
     * 
     */
    @Import(name="maxParallelWorkers")
    private @Nullable Output maxParallelWorkers;

    /**
     * @return Sets the maximum number of workers that the system can support for parallel queries.
     * 
     */
    public Optional> maxParallelWorkers() {
        return Optional.ofNullable(this.maxParallelWorkers);
    }

    /**
     * Sets the maximum number of workers that can be started by a single Gather or Gather Merge node.
     * 
     */
    @Import(name="maxParallelWorkersPerGather")
    private @Nullable Output maxParallelWorkersPerGather;

    /**
     * @return Sets the maximum number of workers that can be started by a single Gather or Gather Merge node.
     * 
     */
    public Optional> maxParallelWorkersPerGather() {
        return Optional.ofNullable(this.maxParallelWorkersPerGather);
    }

    /**
     * PostgreSQL maximum predicate locks per transaction.
     * 
     */
    @Import(name="maxPredLocksPerTransaction")
    private @Nullable Output maxPredLocksPerTransaction;

    /**
     * @return PostgreSQL maximum predicate locks per transaction.
     * 
     */
    public Optional> maxPredLocksPerTransaction() {
        return Optional.ofNullable(this.maxPredLocksPerTransaction);
    }

    /**
     * PostgreSQL maximum prepared transactions. Once increased, this parameter cannot be lowered from its set value.
     * 
     */
    @Import(name="maxPreparedTransactions")
    private @Nullable Output maxPreparedTransactions;

    /**
     * @return PostgreSQL maximum prepared transactions. Once increased, this parameter cannot be lowered from its set value.
     * 
     */
    public Optional> maxPreparedTransactions() {
        return Optional.ofNullable(this.maxPreparedTransactions);
    }

    /**
     * PostgreSQL maximum replication slots.
     * 
     */
    @Import(name="maxReplicationSlots")
    private @Nullable Output maxReplicationSlots;

    /**
     * @return PostgreSQL maximum replication slots.
     * 
     */
    public Optional> maxReplicationSlots() {
        return Optional.ofNullable(this.maxReplicationSlots);
    }

    /**
     * Maximum depth of the stack in bytes.
     * 
     */
    @Import(name="maxStackDepth")
    private @Nullable Output maxStackDepth;

    /**
     * @return Maximum depth of the stack in bytes.
     * 
     */
    public Optional> maxStackDepth() {
        return Optional.ofNullable(this.maxStackDepth);
    }

    /**
     * Max standby archive delay in milliseconds.
     * 
     */
    @Import(name="maxStandbyArchiveDelay")
    private @Nullable Output maxStandbyArchiveDelay;

    /**
     * @return Max standby archive delay in milliseconds.
     * 
     */
    public Optional> maxStandbyArchiveDelay() {
        return Optional.ofNullable(this.maxStandbyArchiveDelay);
    }

    /**
     * Max standby streaming delay in milliseconds.
     * 
     */
    @Import(name="maxStandbyStreamingDelay")
    private @Nullable Output maxStandbyStreamingDelay;

    /**
     * @return Max standby streaming delay in milliseconds.
     * 
     */
    public Optional> maxStandbyStreamingDelay() {
        return Optional.ofNullable(this.maxStandbyStreamingDelay);
    }

    /**
     * PostgreSQL maximum WAL senders. Once increased, this parameter cannot be lowered from its set value.
     * 
     */
    @Import(name="maxWalSenders")
    private @Nullable Output maxWalSenders;

    /**
     * @return PostgreSQL maximum WAL senders. Once increased, this parameter cannot be lowered from its set value.
     * 
     */
    public Optional> maxWalSenders() {
        return Optional.ofNullable(this.maxWalSenders);
    }

    /**
     * Sets the maximum number of background processes that the system can support. Once increased, this parameter cannot be lowered from its set value.
     * 
     */
    @Import(name="maxWorkerProcesses")
    private @Nullable Output maxWorkerProcesses;

    /**
     * @return Sets the maximum number of background processes that the system can support. Once increased, this parameter cannot be lowered from its set value.
     * 
     */
    public Optional> maxWorkerProcesses() {
        return Optional.ofNullable(this.maxWorkerProcesses);
    }

    /**
     * Sets the time interval to run pg_partman's scheduled tasks.
     * 
     */
    @Import(name="pgPartmanBgwInterval")
    private @Nullable Output pgPartmanBgwInterval;

    /**
     * @return Sets the time interval to run pg_partman's scheduled tasks.
     * 
     */
    public Optional> pgPartmanBgwInterval() {
        return Optional.ofNullable(this.pgPartmanBgwInterval);
    }

    /**
     * Controls which role to use for pg_partman's scheduled background tasks. Must consist of alpha-numeric characters, dots, underscores, or dashes. May not start with dash or dot. Maximum of 64 characters.
     * 
     */
    @Import(name="pgPartmanBgwRole")
    private @Nullable Output pgPartmanBgwRole;

    /**
     * @return Controls which role to use for pg_partman's scheduled background tasks. Must consist of alpha-numeric characters, dots, underscores, or dashes. May not start with dash or dot. Maximum of 64 characters.
     * 
     */
    public Optional> pgPartmanBgwRole() {
        return Optional.ofNullable(this.pgPartmanBgwRole);
    }

    /**
     * Controls which statements are counted. Specify 'top' to track top-level statements (those issued directly by clients), 'all' to also track nested statements (such as statements invoked within functions), or 'none' to disable statement statistics collection. The default value is top. Supported values are: `all`, `top`, `none`.
     * 
     */
    @Import(name="pgStatStatementsTrack")
    private @Nullable Output pgStatStatementsTrack;

    /**
     * @return Controls which statements are counted. Specify 'top' to track top-level statements (those issued directly by clients), 'all' to also track nested statements (such as statements invoked within functions), or 'none' to disable statement statistics collection. The default value is top. Supported values are: `all`, `top`, `none`.
     * 
     */
    public Optional> pgStatStatementsTrack() {
        return Optional.ofNullable(this.pgStatStatementsTrack);
    }

    /**
     * PGBouncer connection pooling settings
     * 
     */
    @Import(name="pgbouncers")
    private @Nullable Output> pgbouncers;

    /**
     * @return PGBouncer connection pooling settings
     * 
     */
    public Optional>> pgbouncers() {
        return Optional.ofNullable(this.pgbouncers);
    }

    /**
     * Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.
     * 
     */
    @Import(name="sharedBuffersPercentage")
    private @Nullable Output sharedBuffersPercentage;

    /**
     * @return Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.
     * 
     */
    public Optional> sharedBuffersPercentage() {
        return Optional.ofNullable(this.sharedBuffersPercentage);
    }

    /**
     * PostgreSQL temporary file limit in KiB. If -1, sets to unlimited.
     * 
     */
    @Import(name="tempFileLimit")
    private @Nullable Output tempFileLimit;

    /**
     * @return PostgreSQL temporary file limit in KiB. If -1, sets to unlimited.
     * 
     */
    public Optional> tempFileLimit() {
        return Optional.ofNullable(this.tempFileLimit);
    }

    /**
     * TimescaleDB extension configuration values
     * 
     */
    @Import(name="timescaledbs")
    private @Nullable Output> timescaledbs;

    /**
     * @return TimescaleDB extension configuration values
     * 
     */
    public Optional>> timescaledbs() {
        return Optional.ofNullable(this.timescaledbs);
    }

    /**
     * PostgreSQL service timezone
     * 
     */
    @Import(name="timezone")
    private @Nullable Output timezone;

    /**
     * @return PostgreSQL service timezone
     * 
     */
    public Optional> timezone() {
        return Optional.ofNullable(this.timezone);
    }

    /**
     * Specifies the number of bytes reserved to track the currently executing command for each active session.
     * 
     */
    @Import(name="trackActivityQuerySize")
    private @Nullable Output trackActivityQuerySize;

    /**
     * @return Specifies the number of bytes reserved to track the currently executing command for each active session.
     * 
     */
    public Optional> trackActivityQuerySize() {
        return Optional.ofNullable(this.trackActivityQuerySize);
    }

    /**
     * Record commit time of transactions. The default value is top. Supported values are: `off`, `on`.
     * 
     */
    @Import(name="trackCommitTimestamp")
    private @Nullable Output trackCommitTimestamp;

    /**
     * @return Record commit time of transactions. The default value is top. Supported values are: `off`, `on`.
     * 
     */
    public Optional> trackCommitTimestamp() {
        return Optional.ofNullable(this.trackCommitTimestamp);
    }

    /**
     * Enables tracking of function call counts and time used. The default value is top. Supported values are: `all`, `pl`, `none`.
     * 
     */
    @Import(name="trackFunctions")
    private @Nullable Output trackFunctions;

    /**
     * @return Enables tracking of function call counts and time used. The default value is top. Supported values are: `all`, `pl`, `none`.
     * 
     */
    public Optional> trackFunctions() {
        return Optional.ofNullable(this.trackFunctions);
    }

    /**
     * Enables timing of database I/O calls. This parameter is off by default, because it will repeatedly query the operating system for the current time, which may cause significant overhead on some platforms. The default value is top. Supported values are: `off`, `on`.
     * 
     */
    @Import(name="trackIoTiming")
    private @Nullable Output trackIoTiming;

    /**
     * @return Enables timing of database I/O calls. This parameter is off by default, because it will repeatedly query the operating system for the current time, which may cause significant overhead on some platforms. The default value is top. Supported values are: `off`, `on`.
     * 
     */
    public Optional> trackIoTiming() {
        return Optional.ofNullable(this.trackIoTiming);
    }

    /**
     * Terminate replication connections that are inactive for longer than this amount of time, in milliseconds. Setting this value to zero disables the timeout. Must be either 0 or between 5000 and 10800000.
     * 
     */
    @Import(name="walSenderTimeout")
    private @Nullable Output walSenderTimeout;

    /**
     * @return Terminate replication connections that are inactive for longer than this amount of time, in milliseconds. Setting this value to zero disables the timeout. Must be either 0 or between 5000 and 10800000.
     * 
     */
    public Optional> walSenderTimeout() {
        return Optional.ofNullable(this.walSenderTimeout);
    }

    /**
     * WAL flush interval in milliseconds. Note that setting this value to lower than the default 200ms may negatively impact performance
     * 
     */
    @Import(name="walWriterDelay")
    private @Nullable Output walWriterDelay;

    /**
     * @return WAL flush interval in milliseconds. Note that setting this value to lower than the default 200ms may negatively impact performance
     * 
     */
    public Optional> walWriterDelay() {
        return Optional.ofNullable(this.walWriterDelay);
    }

    /**
     * The maximum amount of memory, in MB, used by a query operation (such as a sort or hash table) before writing to temporary disk files. Default is 1MB + 0.075% of total RAM (up to 32MB).
     * 
     */
    @Import(name="workMem")
    private @Nullable Output workMem;

    /**
     * @return The maximum amount of memory, in MB, used by a query operation (such as a sort or hash table) before writing to temporary disk files. Default is 1MB + 0.075% of total RAM (up to 32MB).
     * 
     */
    public Optional> workMem() {
        return Optional.ofNullable(this.workMem);
    }

    private DatabasePostgresqlConfigState() {}

    private DatabasePostgresqlConfigState(DatabasePostgresqlConfigState $) {
        this.autovacuumAnalyzeScaleFactor = $.autovacuumAnalyzeScaleFactor;
        this.autovacuumAnalyzeThreshold = $.autovacuumAnalyzeThreshold;
        this.autovacuumFreezeMaxAge = $.autovacuumFreezeMaxAge;
        this.autovacuumMaxWorkers = $.autovacuumMaxWorkers;
        this.autovacuumNaptime = $.autovacuumNaptime;
        this.autovacuumVacuumCostDelay = $.autovacuumVacuumCostDelay;
        this.autovacuumVacuumCostLimit = $.autovacuumVacuumCostLimit;
        this.autovacuumVacuumScaleFactor = $.autovacuumVacuumScaleFactor;
        this.autovacuumVacuumThreshold = $.autovacuumVacuumThreshold;
        this.backupHour = $.backupHour;
        this.backupMinute = $.backupMinute;
        this.bgwriterDelay = $.bgwriterDelay;
        this.bgwriterFlushAfter = $.bgwriterFlushAfter;
        this.bgwriterLruMaxpages = $.bgwriterLruMaxpages;
        this.bgwriterLruMultiplier = $.bgwriterLruMultiplier;
        this.clusterId = $.clusterId;
        this.deadlockTimeout = $.deadlockTimeout;
        this.defaultToastCompression = $.defaultToastCompression;
        this.idleInTransactionSessionTimeout = $.idleInTransactionSessionTimeout;
        this.jit = $.jit;
        this.logAutovacuumMinDuration = $.logAutovacuumMinDuration;
        this.logErrorVerbosity = $.logErrorVerbosity;
        this.logLinePrefix = $.logLinePrefix;
        this.logMinDurationStatement = $.logMinDurationStatement;
        this.maxFilesPerProcess = $.maxFilesPerProcess;
        this.maxLocksPerTransaction = $.maxLocksPerTransaction;
        this.maxLogicalReplicationWorkers = $.maxLogicalReplicationWorkers;
        this.maxParallelWorkers = $.maxParallelWorkers;
        this.maxParallelWorkersPerGather = $.maxParallelWorkersPerGather;
        this.maxPredLocksPerTransaction = $.maxPredLocksPerTransaction;
        this.maxPreparedTransactions = $.maxPreparedTransactions;
        this.maxReplicationSlots = $.maxReplicationSlots;
        this.maxStackDepth = $.maxStackDepth;
        this.maxStandbyArchiveDelay = $.maxStandbyArchiveDelay;
        this.maxStandbyStreamingDelay = $.maxStandbyStreamingDelay;
        this.maxWalSenders = $.maxWalSenders;
        this.maxWorkerProcesses = $.maxWorkerProcesses;
        this.pgPartmanBgwInterval = $.pgPartmanBgwInterval;
        this.pgPartmanBgwRole = $.pgPartmanBgwRole;
        this.pgStatStatementsTrack = $.pgStatStatementsTrack;
        this.pgbouncers = $.pgbouncers;
        this.sharedBuffersPercentage = $.sharedBuffersPercentage;
        this.tempFileLimit = $.tempFileLimit;
        this.timescaledbs = $.timescaledbs;
        this.timezone = $.timezone;
        this.trackActivityQuerySize = $.trackActivityQuerySize;
        this.trackCommitTimestamp = $.trackCommitTimestamp;
        this.trackFunctions = $.trackFunctions;
        this.trackIoTiming = $.trackIoTiming;
        this.walSenderTimeout = $.walSenderTimeout;
        this.walWriterDelay = $.walWriterDelay;
        this.workMem = $.workMem;
    }

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

    public static final class Builder {
        private DatabasePostgresqlConfigState $;

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

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

        /**
         * @param autovacuumAnalyzeScaleFactor Specifies a fraction, in a decimal value, of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default is 0.2 (20% of table size).
         * 
         * @return builder
         * 
         */
        public Builder autovacuumAnalyzeScaleFactor(@Nullable Output autovacuumAnalyzeScaleFactor) {
            $.autovacuumAnalyzeScaleFactor = autovacuumAnalyzeScaleFactor;
            return this;
        }

        /**
         * @param autovacuumAnalyzeScaleFactor Specifies a fraction, in a decimal value, of the table size to add to autovacuum_analyze_threshold when deciding whether to trigger an ANALYZE. The default is 0.2 (20% of table size).
         * 
         * @return builder
         * 
         */
        public Builder autovacuumAnalyzeScaleFactor(Double autovacuumAnalyzeScaleFactor) {
            return autovacuumAnalyzeScaleFactor(Output.of(autovacuumAnalyzeScaleFactor));
        }

        /**
         * @param autovacuumAnalyzeThreshold Specifies the minimum number of inserted, updated, or deleted tuples needed to trigger an ANALYZE in any one table. The default is 50 tuples.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumAnalyzeThreshold(@Nullable Output autovacuumAnalyzeThreshold) {
            $.autovacuumAnalyzeThreshold = autovacuumAnalyzeThreshold;
            return this;
        }

        /**
         * @param autovacuumAnalyzeThreshold Specifies the minimum number of inserted, updated, or deleted tuples needed to trigger an ANALYZE in any one table. The default is 50 tuples.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumAnalyzeThreshold(Integer autovacuumAnalyzeThreshold) {
            return autovacuumAnalyzeThreshold(Output.of(autovacuumAnalyzeThreshold));
        }

        /**
         * @param autovacuumFreezeMaxAge Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before a VACUUM operation is forced to prevent transaction ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. This parameter will cause the server to be restarted.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumFreezeMaxAge(@Nullable Output autovacuumFreezeMaxAge) {
            $.autovacuumFreezeMaxAge = autovacuumFreezeMaxAge;
            return this;
        }

        /**
         * @param autovacuumFreezeMaxAge Specifies the maximum age (in transactions) that a table's pg_class.relfrozenxid field can attain before a VACUUM operation is forced to prevent transaction ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled. This parameter will cause the server to be restarted.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumFreezeMaxAge(Integer autovacuumFreezeMaxAge) {
            return autovacuumFreezeMaxAge(Output.of(autovacuumFreezeMaxAge));
        }

        /**
         * @param autovacuumMaxWorkers Specifies the maximum number of autovacuum processes (other than the autovacuum launcher) that may be running at any one time. The default is three. This parameter can only be set at server start.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumMaxWorkers(@Nullable Output autovacuumMaxWorkers) {
            $.autovacuumMaxWorkers = autovacuumMaxWorkers;
            return this;
        }

        /**
         * @param autovacuumMaxWorkers Specifies the maximum number of autovacuum processes (other than the autovacuum launcher) that may be running at any one time. The default is three. This parameter can only be set at server start.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumMaxWorkers(Integer autovacuumMaxWorkers) {
            return autovacuumMaxWorkers(Output.of(autovacuumMaxWorkers));
        }

        /**
         * @param autovacuumNaptime Specifies the minimum delay, in seconds, between autovacuum runs on any given database. The default is one minute.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumNaptime(@Nullable Output autovacuumNaptime) {
            $.autovacuumNaptime = autovacuumNaptime;
            return this;
        }

        /**
         * @param autovacuumNaptime Specifies the minimum delay, in seconds, between autovacuum runs on any given database. The default is one minute.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumNaptime(Integer autovacuumNaptime) {
            return autovacuumNaptime(Output.of(autovacuumNaptime));
        }

        /**
         * @param autovacuumVacuumCostDelay Specifies the cost delay value, in milliseconds, that will be used in automatic VACUUM operations. If -1, uses the regular vacuum_cost_delay value, which is 20 milliseconds.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumVacuumCostDelay(@Nullable Output autovacuumVacuumCostDelay) {
            $.autovacuumVacuumCostDelay = autovacuumVacuumCostDelay;
            return this;
        }

        /**
         * @param autovacuumVacuumCostDelay Specifies the cost delay value, in milliseconds, that will be used in automatic VACUUM operations. If -1, uses the regular vacuum_cost_delay value, which is 20 milliseconds.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumVacuumCostDelay(Integer autovacuumVacuumCostDelay) {
            return autovacuumVacuumCostDelay(Output.of(autovacuumVacuumCostDelay));
        }

        /**
         * @param autovacuumVacuumCostLimit Specifies the cost limit value that will be used in automatic VACUUM operations. If -1 is specified (which is the default), the regular vacuum_cost_limit value will be used.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumVacuumCostLimit(@Nullable Output autovacuumVacuumCostLimit) {
            $.autovacuumVacuumCostLimit = autovacuumVacuumCostLimit;
            return this;
        }

        /**
         * @param autovacuumVacuumCostLimit Specifies the cost limit value that will be used in automatic VACUUM operations. If -1 is specified (which is the default), the regular vacuum_cost_limit value will be used.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumVacuumCostLimit(Integer autovacuumVacuumCostLimit) {
            return autovacuumVacuumCostLimit(Output.of(autovacuumVacuumCostLimit));
        }

        /**
         * @param autovacuumVacuumScaleFactor Specifies a fraction, in a decimal value, of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM. The default is 0.2 (20% of table size).
         * 
         * @return builder
         * 
         */
        public Builder autovacuumVacuumScaleFactor(@Nullable Output autovacuumVacuumScaleFactor) {
            $.autovacuumVacuumScaleFactor = autovacuumVacuumScaleFactor;
            return this;
        }

        /**
         * @param autovacuumVacuumScaleFactor Specifies a fraction, in a decimal value, of the table size to add to autovacuum_vacuum_threshold when deciding whether to trigger a VACUUM. The default is 0.2 (20% of table size).
         * 
         * @return builder
         * 
         */
        public Builder autovacuumVacuumScaleFactor(Double autovacuumVacuumScaleFactor) {
            return autovacuumVacuumScaleFactor(Output.of(autovacuumVacuumScaleFactor));
        }

        /**
         * @param autovacuumVacuumThreshold Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is 50 tuples.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumVacuumThreshold(@Nullable Output autovacuumVacuumThreshold) {
            $.autovacuumVacuumThreshold = autovacuumVacuumThreshold;
            return this;
        }

        /**
         * @param autovacuumVacuumThreshold Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is 50 tuples.
         * 
         * @return builder
         * 
         */
        public Builder autovacuumVacuumThreshold(Integer autovacuumVacuumThreshold) {
            return autovacuumVacuumThreshold(Output.of(autovacuumVacuumThreshold));
        }

        /**
         * @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 is only started 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 is only started if previous backup has already completed.
         * 
         * @return builder
         * 
         */
        public Builder backupMinute(Integer backupMinute) {
            return backupMinute(Output.of(backupMinute));
        }

        /**
         * @param bgwriterDelay Specifies the delay, in milliseconds, between activity rounds for the background writer. Default is 200 ms.
         * 
         * @return builder
         * 
         */
        public Builder bgwriterDelay(@Nullable Output bgwriterDelay) {
            $.bgwriterDelay = bgwriterDelay;
            return this;
        }

        /**
         * @param bgwriterDelay Specifies the delay, in milliseconds, between activity rounds for the background writer. Default is 200 ms.
         * 
         * @return builder
         * 
         */
        public Builder bgwriterDelay(Integer bgwriterDelay) {
            return bgwriterDelay(Output.of(bgwriterDelay));
        }

        /**
         * @param bgwriterFlushAfter The amount of kilobytes that need to be written by the background writer before attempting to force the OS to issue these writes to underlying storage. Specified in kilobytes, default is 512. Setting of 0 disables forced writeback.
         * 
         * @return builder
         * 
         */
        public Builder bgwriterFlushAfter(@Nullable Output bgwriterFlushAfter) {
            $.bgwriterFlushAfter = bgwriterFlushAfter;
            return this;
        }

        /**
         * @param bgwriterFlushAfter The amount of kilobytes that need to be written by the background writer before attempting to force the OS to issue these writes to underlying storage. Specified in kilobytes, default is 512. Setting of 0 disables forced writeback.
         * 
         * @return builder
         * 
         */
        public Builder bgwriterFlushAfter(Integer bgwriterFlushAfter) {
            return bgwriterFlushAfter(Output.of(bgwriterFlushAfter));
        }

        /**
         * @param bgwriterLruMaxpages The maximum number of buffers that the background writer can write. Setting this to zero disables background writing. Default is 100.
         * 
         * @return builder
         * 
         */
        public Builder bgwriterLruMaxpages(@Nullable Output bgwriterLruMaxpages) {
            $.bgwriterLruMaxpages = bgwriterLruMaxpages;
            return this;
        }

        /**
         * @param bgwriterLruMaxpages The maximum number of buffers that the background writer can write. Setting this to zero disables background writing. Default is 100.
         * 
         * @return builder
         * 
         */
        public Builder bgwriterLruMaxpages(Integer bgwriterLruMaxpages) {
            return bgwriterLruMaxpages(Output.of(bgwriterLruMaxpages));
        }

        /**
         * @param bgwriterLruMultiplier The average recent need for new buffers is multiplied by bgwriter_lru_multiplier to arrive at an estimate of the number that will be needed during the next round, (up to bgwriter_lru_maxpages). 1.0 represents a “just in time” policy of writing exactly the number of buffers predicted to be needed. Larger values provide some cushion against spikes in demand, while smaller values intentionally leave writes to be done by server processes. The default is 2.0.
         * 
         * @return builder
         * 
         */
        public Builder bgwriterLruMultiplier(@Nullable Output bgwriterLruMultiplier) {
            $.bgwriterLruMultiplier = bgwriterLruMultiplier;
            return this;
        }

        /**
         * @param bgwriterLruMultiplier The average recent need for new buffers is multiplied by bgwriter_lru_multiplier to arrive at an estimate of the number that will be needed during the next round, (up to bgwriter_lru_maxpages). 1.0 represents a “just in time” policy of writing exactly the number of buffers predicted to be needed. Larger values provide some cushion against spikes in demand, while smaller values intentionally leave writes to be done by server processes. The default is 2.0.
         * 
         * @return builder
         * 
         */
        public Builder bgwriterLruMultiplier(Double bgwriterLruMultiplier) {
            return bgwriterLruMultiplier(Output.of(bgwriterLruMultiplier));
        }

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

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

        /**
         * @param deadlockTimeout The amount of time, in milliseconds, to wait on a lock before checking to see if there is a deadlock condition.
         * 
         * @return builder
         * 
         */
        public Builder deadlockTimeout(@Nullable Output deadlockTimeout) {
            $.deadlockTimeout = deadlockTimeout;
            return this;
        }

        /**
         * @param deadlockTimeout The amount of time, in milliseconds, to wait on a lock before checking to see if there is a deadlock condition.
         * 
         * @return builder
         * 
         */
        public Builder deadlockTimeout(Integer deadlockTimeout) {
            return deadlockTimeout(Output.of(deadlockTimeout));
        }

        /**
         * @param defaultToastCompression Specifies the default TOAST compression method for values of compressible columns (the default is lz4). Supported values are: `lz4`, `pglz`.
         * 
         * @return builder
         * 
         */
        public Builder defaultToastCompression(@Nullable Output defaultToastCompression) {
            $.defaultToastCompression = defaultToastCompression;
            return this;
        }

        /**
         * @param defaultToastCompression Specifies the default TOAST compression method for values of compressible columns (the default is lz4). Supported values are: `lz4`, `pglz`.
         * 
         * @return builder
         * 
         */
        public Builder defaultToastCompression(String defaultToastCompression) {
            return defaultToastCompression(Output.of(defaultToastCompression));
        }

        /**
         * @param idleInTransactionSessionTimeout Time out sessions with open transactions after this number of milliseconds
         * 
         * @return builder
         * 
         */
        public Builder idleInTransactionSessionTimeout(@Nullable Output idleInTransactionSessionTimeout) {
            $.idleInTransactionSessionTimeout = idleInTransactionSessionTimeout;
            return this;
        }

        /**
         * @param idleInTransactionSessionTimeout Time out sessions with open transactions after this number of milliseconds
         * 
         * @return builder
         * 
         */
        public Builder idleInTransactionSessionTimeout(Integer idleInTransactionSessionTimeout) {
            return idleInTransactionSessionTimeout(Output.of(idleInTransactionSessionTimeout));
        }

        /**
         * @param jit Activates, in a boolean, the system-wide use of Just-in-Time Compilation (JIT).
         * 
         * @return builder
         * 
         */
        public Builder jit(@Nullable Output jit) {
            $.jit = jit;
            return this;
        }

        /**
         * @param jit Activates, in a boolean, the system-wide use of Just-in-Time Compilation (JIT).
         * 
         * @return builder
         * 
         */
        public Builder jit(Boolean jit) {
            return jit(Output.of(jit));
        }

        /**
         * @param logAutovacuumMinDuration Causes each action executed by autovacuum to be logged if it ran for at least the specified number of milliseconds. Setting this to zero logs all autovacuum actions. Minus-one (the default) disables logging autovacuum actions.
         * 
         * @return builder
         * 
         */
        public Builder logAutovacuumMinDuration(@Nullable Output logAutovacuumMinDuration) {
            $.logAutovacuumMinDuration = logAutovacuumMinDuration;
            return this;
        }

        /**
         * @param logAutovacuumMinDuration Causes each action executed by autovacuum to be logged if it ran for at least the specified number of milliseconds. Setting this to zero logs all autovacuum actions. Minus-one (the default) disables logging autovacuum actions.
         * 
         * @return builder
         * 
         */
        public Builder logAutovacuumMinDuration(Integer logAutovacuumMinDuration) {
            return logAutovacuumMinDuration(Output.of(logAutovacuumMinDuration));
        }

        /**
         * @param logErrorVerbosity Controls the amount of detail written in the server log for each message that is logged. Supported values are: `TERSE`, `DEFAULT`, `VERBOSE`.
         * 
         * @return builder
         * 
         */
        public Builder logErrorVerbosity(@Nullable Output logErrorVerbosity) {
            $.logErrorVerbosity = logErrorVerbosity;
            return this;
        }

        /**
         * @param logErrorVerbosity Controls the amount of detail written in the server log for each message that is logged. Supported values are: `TERSE`, `DEFAULT`, `VERBOSE`.
         * 
         * @return builder
         * 
         */
        public Builder logErrorVerbosity(String logErrorVerbosity) {
            return logErrorVerbosity(Output.of(logErrorVerbosity));
        }

        /**
         * @param logLinePrefix Selects one of the available log-formats. These can support popular log analyzers like pgbadger, pganalyze, etc. Supported values are: `pid=%p,user=%u,db=%d,app=%a,client=%h`, `%m [%p] %q[user=%u,db=%d,app=%a]`, `%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h`.
         * 
         * @return builder
         * 
         */
        public Builder logLinePrefix(@Nullable Output logLinePrefix) {
            $.logLinePrefix = logLinePrefix;
            return this;
        }

        /**
         * @param logLinePrefix Selects one of the available log-formats. These can support popular log analyzers like pgbadger, pganalyze, etc. Supported values are: `pid=%p,user=%u,db=%d,app=%a,client=%h`, `%m [%p] %q[user=%u,db=%d,app=%a]`, `%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h`.
         * 
         * @return builder
         * 
         */
        public Builder logLinePrefix(String logLinePrefix) {
            return logLinePrefix(Output.of(logLinePrefix));
        }

        /**
         * @param logMinDurationStatement Log statements that take more than this number of milliseconds to run. If -1, disables.
         * 
         * @return builder
         * 
         */
        public Builder logMinDurationStatement(@Nullable Output logMinDurationStatement) {
            $.logMinDurationStatement = logMinDurationStatement;
            return this;
        }

        /**
         * @param logMinDurationStatement Log statements that take more than this number of milliseconds to run. If -1, disables.
         * 
         * @return builder
         * 
         */
        public Builder logMinDurationStatement(Integer logMinDurationStatement) {
            return logMinDurationStatement(Output.of(logMinDurationStatement));
        }

        /**
         * @param maxFilesPerProcess PostgreSQL maximum number of files that can be open per process.
         * 
         * @return builder
         * 
         */
        public Builder maxFilesPerProcess(@Nullable Output maxFilesPerProcess) {
            $.maxFilesPerProcess = maxFilesPerProcess;
            return this;
        }

        /**
         * @param maxFilesPerProcess PostgreSQL maximum number of files that can be open per process.
         * 
         * @return builder
         * 
         */
        public Builder maxFilesPerProcess(Integer maxFilesPerProcess) {
            return maxFilesPerProcess(Output.of(maxFilesPerProcess));
        }

        /**
         * @param maxLocksPerTransaction PostgreSQL maximum locks per transaction. Once increased, this parameter cannot be lowered from its set value.
         * 
         * @return builder
         * 
         */
        public Builder maxLocksPerTransaction(@Nullable Output maxLocksPerTransaction) {
            $.maxLocksPerTransaction = maxLocksPerTransaction;
            return this;
        }

        /**
         * @param maxLocksPerTransaction PostgreSQL maximum locks per transaction. Once increased, this parameter cannot be lowered from its set value.
         * 
         * @return builder
         * 
         */
        public Builder maxLocksPerTransaction(Integer maxLocksPerTransaction) {
            return maxLocksPerTransaction(Output.of(maxLocksPerTransaction));
        }

        /**
         * @param maxLogicalReplicationWorkers PostgreSQL maximum logical replication workers (taken from the pool of max_parallel_workers).
         * 
         * @return builder
         * 
         */
        public Builder maxLogicalReplicationWorkers(@Nullable Output maxLogicalReplicationWorkers) {
            $.maxLogicalReplicationWorkers = maxLogicalReplicationWorkers;
            return this;
        }

        /**
         * @param maxLogicalReplicationWorkers PostgreSQL maximum logical replication workers (taken from the pool of max_parallel_workers).
         * 
         * @return builder
         * 
         */
        public Builder maxLogicalReplicationWorkers(Integer maxLogicalReplicationWorkers) {
            return maxLogicalReplicationWorkers(Output.of(maxLogicalReplicationWorkers));
        }

        /**
         * @param maxParallelWorkers Sets the maximum number of workers that the system can support for parallel queries.
         * 
         * @return builder
         * 
         */
        public Builder maxParallelWorkers(@Nullable Output maxParallelWorkers) {
            $.maxParallelWorkers = maxParallelWorkers;
            return this;
        }

        /**
         * @param maxParallelWorkers Sets the maximum number of workers that the system can support for parallel queries.
         * 
         * @return builder
         * 
         */
        public Builder maxParallelWorkers(Integer maxParallelWorkers) {
            return maxParallelWorkers(Output.of(maxParallelWorkers));
        }

        /**
         * @param maxParallelWorkersPerGather Sets the maximum number of workers that can be started by a single Gather or Gather Merge node.
         * 
         * @return builder
         * 
         */
        public Builder maxParallelWorkersPerGather(@Nullable Output maxParallelWorkersPerGather) {
            $.maxParallelWorkersPerGather = maxParallelWorkersPerGather;
            return this;
        }

        /**
         * @param maxParallelWorkersPerGather Sets the maximum number of workers that can be started by a single Gather or Gather Merge node.
         * 
         * @return builder
         * 
         */
        public Builder maxParallelWorkersPerGather(Integer maxParallelWorkersPerGather) {
            return maxParallelWorkersPerGather(Output.of(maxParallelWorkersPerGather));
        }

        /**
         * @param maxPredLocksPerTransaction PostgreSQL maximum predicate locks per transaction.
         * 
         * @return builder
         * 
         */
        public Builder maxPredLocksPerTransaction(@Nullable Output maxPredLocksPerTransaction) {
            $.maxPredLocksPerTransaction = maxPredLocksPerTransaction;
            return this;
        }

        /**
         * @param maxPredLocksPerTransaction PostgreSQL maximum predicate locks per transaction.
         * 
         * @return builder
         * 
         */
        public Builder maxPredLocksPerTransaction(Integer maxPredLocksPerTransaction) {
            return maxPredLocksPerTransaction(Output.of(maxPredLocksPerTransaction));
        }

        /**
         * @param maxPreparedTransactions PostgreSQL maximum prepared transactions. Once increased, this parameter cannot be lowered from its set value.
         * 
         * @return builder
         * 
         */
        public Builder maxPreparedTransactions(@Nullable Output maxPreparedTransactions) {
            $.maxPreparedTransactions = maxPreparedTransactions;
            return this;
        }

        /**
         * @param maxPreparedTransactions PostgreSQL maximum prepared transactions. Once increased, this parameter cannot be lowered from its set value.
         * 
         * @return builder
         * 
         */
        public Builder maxPreparedTransactions(Integer maxPreparedTransactions) {
            return maxPreparedTransactions(Output.of(maxPreparedTransactions));
        }

        /**
         * @param maxReplicationSlots PostgreSQL maximum replication slots.
         * 
         * @return builder
         * 
         */
        public Builder maxReplicationSlots(@Nullable Output maxReplicationSlots) {
            $.maxReplicationSlots = maxReplicationSlots;
            return this;
        }

        /**
         * @param maxReplicationSlots PostgreSQL maximum replication slots.
         * 
         * @return builder
         * 
         */
        public Builder maxReplicationSlots(Integer maxReplicationSlots) {
            return maxReplicationSlots(Output.of(maxReplicationSlots));
        }

        /**
         * @param maxStackDepth Maximum depth of the stack in bytes.
         * 
         * @return builder
         * 
         */
        public Builder maxStackDepth(@Nullable Output maxStackDepth) {
            $.maxStackDepth = maxStackDepth;
            return this;
        }

        /**
         * @param maxStackDepth Maximum depth of the stack in bytes.
         * 
         * @return builder
         * 
         */
        public Builder maxStackDepth(Integer maxStackDepth) {
            return maxStackDepth(Output.of(maxStackDepth));
        }

        /**
         * @param maxStandbyArchiveDelay Max standby archive delay in milliseconds.
         * 
         * @return builder
         * 
         */
        public Builder maxStandbyArchiveDelay(@Nullable Output maxStandbyArchiveDelay) {
            $.maxStandbyArchiveDelay = maxStandbyArchiveDelay;
            return this;
        }

        /**
         * @param maxStandbyArchiveDelay Max standby archive delay in milliseconds.
         * 
         * @return builder
         * 
         */
        public Builder maxStandbyArchiveDelay(Integer maxStandbyArchiveDelay) {
            return maxStandbyArchiveDelay(Output.of(maxStandbyArchiveDelay));
        }

        /**
         * @param maxStandbyStreamingDelay Max standby streaming delay in milliseconds.
         * 
         * @return builder
         * 
         */
        public Builder maxStandbyStreamingDelay(@Nullable Output maxStandbyStreamingDelay) {
            $.maxStandbyStreamingDelay = maxStandbyStreamingDelay;
            return this;
        }

        /**
         * @param maxStandbyStreamingDelay Max standby streaming delay in milliseconds.
         * 
         * @return builder
         * 
         */
        public Builder maxStandbyStreamingDelay(Integer maxStandbyStreamingDelay) {
            return maxStandbyStreamingDelay(Output.of(maxStandbyStreamingDelay));
        }

        /**
         * @param maxWalSenders PostgreSQL maximum WAL senders. Once increased, this parameter cannot be lowered from its set value.
         * 
         * @return builder
         * 
         */
        public Builder maxWalSenders(@Nullable Output maxWalSenders) {
            $.maxWalSenders = maxWalSenders;
            return this;
        }

        /**
         * @param maxWalSenders PostgreSQL maximum WAL senders. Once increased, this parameter cannot be lowered from its set value.
         * 
         * @return builder
         * 
         */
        public Builder maxWalSenders(Integer maxWalSenders) {
            return maxWalSenders(Output.of(maxWalSenders));
        }

        /**
         * @param maxWorkerProcesses Sets the maximum number of background processes that the system can support. Once increased, this parameter cannot be lowered from its set value.
         * 
         * @return builder
         * 
         */
        public Builder maxWorkerProcesses(@Nullable Output maxWorkerProcesses) {
            $.maxWorkerProcesses = maxWorkerProcesses;
            return this;
        }

        /**
         * @param maxWorkerProcesses Sets the maximum number of background processes that the system can support. Once increased, this parameter cannot be lowered from its set value.
         * 
         * @return builder
         * 
         */
        public Builder maxWorkerProcesses(Integer maxWorkerProcesses) {
            return maxWorkerProcesses(Output.of(maxWorkerProcesses));
        }

        /**
         * @param pgPartmanBgwInterval Sets the time interval to run pg_partman's scheduled tasks.
         * 
         * @return builder
         * 
         */
        public Builder pgPartmanBgwInterval(@Nullable Output pgPartmanBgwInterval) {
            $.pgPartmanBgwInterval = pgPartmanBgwInterval;
            return this;
        }

        /**
         * @param pgPartmanBgwInterval Sets the time interval to run pg_partman's scheduled tasks.
         * 
         * @return builder
         * 
         */
        public Builder pgPartmanBgwInterval(Integer pgPartmanBgwInterval) {
            return pgPartmanBgwInterval(Output.of(pgPartmanBgwInterval));
        }

        /**
         * @param pgPartmanBgwRole Controls which role to use for pg_partman's scheduled background tasks. Must consist of alpha-numeric characters, dots, underscores, or dashes. May not start with dash or dot. Maximum of 64 characters.
         * 
         * @return builder
         * 
         */
        public Builder pgPartmanBgwRole(@Nullable Output pgPartmanBgwRole) {
            $.pgPartmanBgwRole = pgPartmanBgwRole;
            return this;
        }

        /**
         * @param pgPartmanBgwRole Controls which role to use for pg_partman's scheduled background tasks. Must consist of alpha-numeric characters, dots, underscores, or dashes. May not start with dash or dot. Maximum of 64 characters.
         * 
         * @return builder
         * 
         */
        public Builder pgPartmanBgwRole(String pgPartmanBgwRole) {
            return pgPartmanBgwRole(Output.of(pgPartmanBgwRole));
        }

        /**
         * @param pgStatStatementsTrack Controls which statements are counted. Specify 'top' to track top-level statements (those issued directly by clients), 'all' to also track nested statements (such as statements invoked within functions), or 'none' to disable statement statistics collection. The default value is top. Supported values are: `all`, `top`, `none`.
         * 
         * @return builder
         * 
         */
        public Builder pgStatStatementsTrack(@Nullable Output pgStatStatementsTrack) {
            $.pgStatStatementsTrack = pgStatStatementsTrack;
            return this;
        }

        /**
         * @param pgStatStatementsTrack Controls which statements are counted. Specify 'top' to track top-level statements (those issued directly by clients), 'all' to also track nested statements (such as statements invoked within functions), or 'none' to disable statement statistics collection. The default value is top. Supported values are: `all`, `top`, `none`.
         * 
         * @return builder
         * 
         */
        public Builder pgStatStatementsTrack(String pgStatStatementsTrack) {
            return pgStatStatementsTrack(Output.of(pgStatStatementsTrack));
        }

        /**
         * @param pgbouncers PGBouncer connection pooling settings
         * 
         * @return builder
         * 
         */
        public Builder pgbouncers(@Nullable Output> pgbouncers) {
            $.pgbouncers = pgbouncers;
            return this;
        }

        /**
         * @param pgbouncers PGBouncer connection pooling settings
         * 
         * @return builder
         * 
         */
        public Builder pgbouncers(List pgbouncers) {
            return pgbouncers(Output.of(pgbouncers));
        }

        /**
         * @param pgbouncers PGBouncer connection pooling settings
         * 
         * @return builder
         * 
         */
        public Builder pgbouncers(DatabasePostgresqlConfigPgbouncerArgs... pgbouncers) {
            return pgbouncers(List.of(pgbouncers));
        }

        /**
         * @param sharedBuffersPercentage Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.
         * 
         * @return builder
         * 
         */
        public Builder sharedBuffersPercentage(@Nullable Output sharedBuffersPercentage) {
            $.sharedBuffersPercentage = sharedBuffersPercentage;
            return this;
        }

        /**
         * @param sharedBuffersPercentage Percentage of total RAM that the database server uses for shared memory buffers. Valid range is 20-60 (float), which corresponds to 20% - 60%. This setting adjusts the shared_buffers configuration value.
         * 
         * @return builder
         * 
         */
        public Builder sharedBuffersPercentage(Double sharedBuffersPercentage) {
            return sharedBuffersPercentage(Output.of(sharedBuffersPercentage));
        }

        /**
         * @param tempFileLimit PostgreSQL temporary file limit in KiB. If -1, sets to unlimited.
         * 
         * @return builder
         * 
         */
        public Builder tempFileLimit(@Nullable Output tempFileLimit) {
            $.tempFileLimit = tempFileLimit;
            return this;
        }

        /**
         * @param tempFileLimit PostgreSQL temporary file limit in KiB. If -1, sets to unlimited.
         * 
         * @return builder
         * 
         */
        public Builder tempFileLimit(Integer tempFileLimit) {
            return tempFileLimit(Output.of(tempFileLimit));
        }

        /**
         * @param timescaledbs TimescaleDB extension configuration values
         * 
         * @return builder
         * 
         */
        public Builder timescaledbs(@Nullable Output> timescaledbs) {
            $.timescaledbs = timescaledbs;
            return this;
        }

        /**
         * @param timescaledbs TimescaleDB extension configuration values
         * 
         * @return builder
         * 
         */
        public Builder timescaledbs(List timescaledbs) {
            return timescaledbs(Output.of(timescaledbs));
        }

        /**
         * @param timescaledbs TimescaleDB extension configuration values
         * 
         * @return builder
         * 
         */
        public Builder timescaledbs(DatabasePostgresqlConfigTimescaledbArgs... timescaledbs) {
            return timescaledbs(List.of(timescaledbs));
        }

        /**
         * @param timezone PostgreSQL service timezone
         * 
         * @return builder
         * 
         */
        public Builder timezone(@Nullable Output timezone) {
            $.timezone = timezone;
            return this;
        }

        /**
         * @param timezone PostgreSQL service timezone
         * 
         * @return builder
         * 
         */
        public Builder timezone(String timezone) {
            return timezone(Output.of(timezone));
        }

        /**
         * @param trackActivityQuerySize Specifies the number of bytes reserved to track the currently executing command for each active session.
         * 
         * @return builder
         * 
         */
        public Builder trackActivityQuerySize(@Nullable Output trackActivityQuerySize) {
            $.trackActivityQuerySize = trackActivityQuerySize;
            return this;
        }

        /**
         * @param trackActivityQuerySize Specifies the number of bytes reserved to track the currently executing command for each active session.
         * 
         * @return builder
         * 
         */
        public Builder trackActivityQuerySize(Integer trackActivityQuerySize) {
            return trackActivityQuerySize(Output.of(trackActivityQuerySize));
        }

        /**
         * @param trackCommitTimestamp Record commit time of transactions. The default value is top. Supported values are: `off`, `on`.
         * 
         * @return builder
         * 
         */
        public Builder trackCommitTimestamp(@Nullable Output trackCommitTimestamp) {
            $.trackCommitTimestamp = trackCommitTimestamp;
            return this;
        }

        /**
         * @param trackCommitTimestamp Record commit time of transactions. The default value is top. Supported values are: `off`, `on`.
         * 
         * @return builder
         * 
         */
        public Builder trackCommitTimestamp(String trackCommitTimestamp) {
            return trackCommitTimestamp(Output.of(trackCommitTimestamp));
        }

        /**
         * @param trackFunctions Enables tracking of function call counts and time used. The default value is top. Supported values are: `all`, `pl`, `none`.
         * 
         * @return builder
         * 
         */
        public Builder trackFunctions(@Nullable Output trackFunctions) {
            $.trackFunctions = trackFunctions;
            return this;
        }

        /**
         * @param trackFunctions Enables tracking of function call counts and time used. The default value is top. Supported values are: `all`, `pl`, `none`.
         * 
         * @return builder
         * 
         */
        public Builder trackFunctions(String trackFunctions) {
            return trackFunctions(Output.of(trackFunctions));
        }

        /**
         * @param trackIoTiming Enables timing of database I/O calls. This parameter is off by default, because it will repeatedly query the operating system for the current time, which may cause significant overhead on some platforms. The default value is top. Supported values are: `off`, `on`.
         * 
         * @return builder
         * 
         */
        public Builder trackIoTiming(@Nullable Output trackIoTiming) {
            $.trackIoTiming = trackIoTiming;
            return this;
        }

        /**
         * @param trackIoTiming Enables timing of database I/O calls. This parameter is off by default, because it will repeatedly query the operating system for the current time, which may cause significant overhead on some platforms. The default value is top. Supported values are: `off`, `on`.
         * 
         * @return builder
         * 
         */
        public Builder trackIoTiming(String trackIoTiming) {
            return trackIoTiming(Output.of(trackIoTiming));
        }

        /**
         * @param walSenderTimeout Terminate replication connections that are inactive for longer than this amount of time, in milliseconds. Setting this value to zero disables the timeout. Must be either 0 or between 5000 and 10800000.
         * 
         * @return builder
         * 
         */
        public Builder walSenderTimeout(@Nullable Output walSenderTimeout) {
            $.walSenderTimeout = walSenderTimeout;
            return this;
        }

        /**
         * @param walSenderTimeout Terminate replication connections that are inactive for longer than this amount of time, in milliseconds. Setting this value to zero disables the timeout. Must be either 0 or between 5000 and 10800000.
         * 
         * @return builder
         * 
         */
        public Builder walSenderTimeout(Integer walSenderTimeout) {
            return walSenderTimeout(Output.of(walSenderTimeout));
        }

        /**
         * @param walWriterDelay WAL flush interval in milliseconds. Note that setting this value to lower than the default 200ms may negatively impact performance
         * 
         * @return builder
         * 
         */
        public Builder walWriterDelay(@Nullable Output walWriterDelay) {
            $.walWriterDelay = walWriterDelay;
            return this;
        }

        /**
         * @param walWriterDelay WAL flush interval in milliseconds. Note that setting this value to lower than the default 200ms may negatively impact performance
         * 
         * @return builder
         * 
         */
        public Builder walWriterDelay(Integer walWriterDelay) {
            return walWriterDelay(Output.of(walWriterDelay));
        }

        /**
         * @param workMem The maximum amount of memory, in MB, used by a query operation (such as a sort or hash table) before writing to temporary disk files. Default is 1MB + 0.075% of total RAM (up to 32MB).
         * 
         * @return builder
         * 
         */
        public Builder workMem(@Nullable Output workMem) {
            $.workMem = workMem;
            return this;
        }

        /**
         * @param workMem The maximum amount of memory, in MB, used by a query operation (such as a sort or hash table) before writing to temporary disk files. Default is 1MB + 0.075% of total RAM (up to 32MB).
         * 
         * @return builder
         * 
         */
        public Builder workMem(Integer workMem) {
            return workMem(Output.of(workMem));
        }

        public DatabasePostgresqlConfigState build() {
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy