---
title: "Update the Database Configuration for an Existing Database"
method: PATCH
path: "/v2/databases/{database_cluster_uuid}/config"
tags: ["DigitalOcean-public.v2-new_Databases"]
---

# Update the Database Configuration for an Existing Database

`PATCH /v2/databases/{database_cluster_uuid}/config`

To update the configuration for an existing database cluster, send a PATCH request to
`/v2/databases/$DATABASE_ID/config`.

## Path parameters

- `database_cluster_uuid` string, uuid, required

## Request body

- DatabaseConfig
  - `config` union
    - MysqlAdvancedConfig
      - `backup_hour` integer — The hour of day (in UTC) when backup for the service starts. New backup only starts if previous backup has already completed.
      - `backup_minute` integer — The minute of the backup hour when backup for the service starts. New backup only starts if previous backup has already completed.
      - `sql_mode` string — Global SQL mode. If empty, uses MySQL server defaults. Must only include uppercase alphabetic characters, underscores, and commas.
      - `connect_timeout` integer — The number of seconds that the mysqld server waits for a connect packet before responding with bad handshake.
      - `default_time_zone` string — 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.
      - `group_concat_max_len` integer — The maximum permitted result length, in bytes, for the GROUP_CONCAT() function.
      - `information_schema_stats_expiry` integer — The time, in seconds, before cached statistics expire.
      - `innodb_ft_min_token_size` integer — The minimum length of words that an InnoDB FULLTEXT index stores.
      - `innodb_ft_server_stopword_table` string — The InnoDB FULLTEXT index stopword list for all InnoDB tables.
      - `innodb_lock_wait_timeout` integer — The time, in seconds, that an InnoDB transaction waits for a row lock. before giving up.
      - `innodb_log_buffer_size` integer — The size of the buffer, in bytes, that InnoDB uses to write to the log files. on disk.
      - `innodb_online_alter_log_max_size` integer — The upper limit, in bytes, of the size of the temporary log files used during online DDL operations for InnoDB tables.
      - `innodb_print_all_deadlocks` boolean — When enabled, records information about all deadlocks in InnoDB user transactions in the error log. Disabled by default.
      - `innodb_rollback_on_timeout` boolean — When enabled, transaction timeouts cause InnoDB to abort and roll back the entire transaction.
      - `interactive_timeout` integer — The time, in seconds, the server waits for activity on an interactive. connection before closing it.
      - `internal_tmp_mem_storage_engine` 'TempTable' | 'MEMORY' — The storage engine for in-memory internal temporary tables.
      - `net_read_timeout` integer — The time, in seconds, to wait for more data from an existing connection. aborting the read.
      - `net_write_timeout` integer — The number of seconds to wait for a block to be written to a connection before aborting the write.
      - `sql_require_primary_key` boolean — 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.
      - `wait_timeout` integer — The number of seconds the server waits for activity on a noninteractive connection before closing it.
      - `max_allowed_packet` integer — The size of the largest message, in bytes, that can be received by the server. Default is 67108864 (64M).
      - `max_heap_table_size` integer — The maximum size, in bytes, of internal in-memory tables. Also set tmp_table_size. Default is 16777216 (16M)
      - `sort_buffer_size` integer — The sort buffer size, in bytes, for ORDER BY optimization. Default is 262144. (256K).
      - `tmp_table_size` integer — The maximum size, in bytes, of internal in-memory tables. Also set max_heap_table_size. Default is 16777216 (16M).
      - `slow_query_log` boolean — When enabled, captures slow queries. When disabled, also truncates the mysql.slow_log table. Default is false.
      - `long_query_time` number — The time, in seconds, for a query to take to execute before being captured by slow_query_logs. Default is 10 seconds.
      - `binlog_retention_period` number — 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.
      - `innodb_change_buffer_max_size` integer — Specifies the maximum size of the InnoDB change buffer as a percentage of the buffer pool.
      - `innodb_flush_neighbors` 0 | 1 | 2 — Specifies whether flushing a page from the InnoDB buffer pool also flushes other dirty pages in the same extent. - 0 &mdash; disables this functionality, dirty pages in the same extent are not flushed. - 1 &mdash; flushes contiguous dirty pages in the same extent. - 2 &mdash; flushes dirty pages in the same extent.
      - `innodb_read_io_threads` integer — The number of I/O threads for read operations in InnoDB. Changing this parameter will lead to a restart of the MySQL service.
      - `innodb_write_io_threads` integer — The number of I/O threads for write operations in InnoDB. Changing this parameter will lead to a restart of the MySQL service.
      - `innodb_thread_concurrency` integer — Defines the maximum number of threads permitted inside of InnoDB. A value of 0 (the default) is interpreted as infinite concurrency (no limit). This variable is intended for performance tuning on high concurrency systems.
      - `net_buffer_length` integer — Start sizes of connection buffer and result buffer, must be multiple of 1024. Changing this parameter will lead to a restart of the MySQL service.
      - `log_output` 'INSIGHTS' | 'TABLE' | 'INSIGHTS,TABLE' | 'NONE' — Defines the destination for logs. Can be `INSIGHTS`, `TABLE`, or both (`INSIGHTS,TABLE`), or `NONE` to disable logs. To specify both destinations, use `INSIGHTS,TABLE` (order matters). Default is NONE.
      - `mysql_incremental_backup` MysqlIncrementalBackup — MySQL Incremental Backup configuration settings
        - `enabled` boolean — Enable periodic incremental backups. When enabled, full_backup_week_schedule must be set. Incremental backups only store changes since the last backup, making them faster and more storage-efficient than full backups. This is particularly useful for large databases where daily full backups would be too time-consuming or expensive.
        - `full_backup_week_schedule` string — Comma-separated list of days of the week when full backups should be created. Valid values: mon, tue, wed, thu, fri, sat, sun. Default is null. Example : "mon,fri,sun".
    - PostgresAdvancedConfig
      - `autovacuum_freeze_max_age` integer — 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.
      - `autovacuum_max_workers` integer — 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.
      - `autovacuum_naptime` integer — Specifies the minimum delay, in seconds, between autovacuum runs on any given database. The default is one minute.
      - `autovacuum_vacuum_threshold` integer — Specifies the minimum number of updated or deleted tuples needed to trigger a VACUUM in any one table. The default is 50 tuples.
      - `autovacuum_analyze_threshold` integer — Specifies the minimum number of inserted, updated, or deleted tuples needed to trigger an ANALYZE in any one table. The default is 50 tuples.
      - `autovacuum_vacuum_scale_factor` number — 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).
      - `autovacuum_analyze_scale_factor` number — 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).
      - `autovacuum_vacuum_cost_delay` integer — 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.
      - `autovacuum_vacuum_cost_limit` integer — 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.
      - `backup_hour` integer — The hour of day (in UTC) when backup for the service starts. New backup only starts if previous backup has already completed.
      - `backup_minute` integer — The minute of the backup hour when backup for the service starts. New backup is only started if previous backup has already completed.
      - `bgwriter_delay` integer — Specifies the delay, in milliseconds, between activity rounds for the background writer. Default is 200 ms.
      - `bgwriter_flush_after` integer — 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.
      - `bgwriter_lru_maxpages` integer — The maximum number of buffers that the background writer can write. Setting this to zero disables background writing. Default is 100.
      - `bgwriter_lru_multiplier` number — 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.
      - `deadlock_timeout` integer — The amount of time, in milliseconds, to wait on a lock before checking to see if there is a deadlock condition.
      - `default_toast_compression` 'lz4' | 'pglz' — Specifies the default TOAST compression method for values of compressible columns (the default is lz4).
      - `idle_in_transaction_session_timeout` integer — Time out sessions with open transactions after this number of milliseconds
      - `jit` boolean — Activates, in a boolean, the system-wide use of Just-in-Time Compilation (JIT).
      - `log_autovacuum_min_duration` integer — 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.
      - `log_error_verbosity` 'TERSE' | 'DEFAULT' | 'VERBOSE' — Controls the amount of detail written in the server log for each message that is logged.
      - `log_line_prefix` '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' — Selects one of the available log-formats. These can support popular log analyzers like pgbadger, pganalyze, etc.
      - `log_min_duration_statement` integer — Log statements that take more than this number of milliseconds to run. If -1, disables.
      - `max_files_per_process` integer — PostgreSQL maximum number of files that can be open per process.
      - `max_prepared_transactions` integer — PostgreSQL maximum prepared transactions. Once increased, this parameter cannot be lowered from its set value.
      - `max_pred_locks_per_transaction` integer — PostgreSQL maximum predicate locks per transaction.
      - `max_locks_per_transaction` integer — PostgreSQL maximum locks per transaction. Once increased, this parameter cannot be lowered from its set value.
      - `max_stack_depth` integer — Maximum depth of the stack in bytes.
      - `max_standby_archive_delay` integer — Max standby archive delay in milliseconds.
      - `max_standby_streaming_delay` integer — Max standby streaming delay in milliseconds.
      - `max_replication_slots` integer — PostgreSQL maximum replication slots.
      - `max_logical_replication_workers` integer — PostgreSQL maximum logical replication workers (taken from the pool of max_parallel_workers).
      - `max_parallel_workers` integer — Sets the maximum number of workers that the system can support for parallel queries.
      - `max_parallel_workers_per_gather` integer — Sets the maximum number of workers that can be started by a single Gather or Gather Merge node.
      - `max_worker_processes` integer — Sets the maximum number of background processes that the system can support. Once increased, this parameter cannot be lowered from its set value.
      - `pg_partman_bgw.role` string — 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.
      - `pg_partman_bgw.interval` integer — Sets the time interval to run pg_partman's scheduled tasks.
      - `pg_stat_statements.track` 'all' | 'top' | 'none' — 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.
      - `temp_file_limit` integer — PostgreSQL temporary file limit in KiB. If -1, sets to unlimited.
      - `timezone` string — PostgreSQL service timezone
      - `track_activity_query_size` integer — Specifies the number of bytes reserved to track the currently executing command for each active session.
      - `track_commit_timestamp` 'off' | 'on' — Record commit time of transactions.
      - `track_functions` 'all' | 'pl' | 'none' — Enables tracking of function call counts and time used.
      - `track_io_timing` 'off' | 'on' — 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.
      - `max_wal_senders` integer — PostgreSQL maximum WAL senders. Once increased, this parameter cannot be lowered from its set value.
      - `wal_sender_timeout` integer — 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.
      - `wal_writer_delay` integer — WAL flush interval in milliseconds. Note that setting this value to lower than the default 200ms may negatively impact performance
      - `shared_buffers_percentage` number — 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.
      - `pgbouncer` PgbouncerAdvancedConfig — PGBouncer connection pooling settings
        - `server_reset_query_always` boolean — Run server_reset_query (DISCARD ALL) in all pooling modes.
        - `ignore_startup_parameters` string[] — List of parameters to ignore when given in startup packet.
        - `min_pool_size` integer — If current server connections are below this number, adds more. Improves behavior when usual load comes suddenly back after period of total inactivity. The value is effectively capped at the pool size.
        - `server_lifetime` integer — The pooler closes any unused server connection that has been connected longer than this amount of seconds.
        - `server_idle_timeout` integer — Drops server connections if they have been idle more than this many seconds. If 0, timeout is disabled.
        - `autodb_pool_size` integer — If non-zero, automatically creates a pool of that size per user when a pool doesn't exist.
        - `autodb_pool_mode` 'session' | 'transaction' | 'statement' — PGBouncer pool mode
        - `autodb_max_db_connections` integer — Only allows a maximum this many server connections per database (regardless of user). If 0, allows unlimited connections.
        - `autodb_idle_timeout` integer — If the automatically-created database pools have been unused this many seconds, they are freed. If 0, timeout is disabled.
      - `work_mem` integer — 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).
      - `timescaledb` TimescaledbAdvancedConfig — TimescaleDB extension configuration values
        - `max_background_workers` integer — The number of background workers for timescaledb operations. Set to the sum of your number of databases and the total number of concurrent background workers you want running at any given point in time.
      - `synchronous_replication` 'off' | 'quorum' — Synchronous replication type. Note that the service plan also needs to support synchronous replication.
      - `stat_monitor_enable` boolean — Enable the pg_stat_monitor extension. <b>Enabling this extension will cause the cluster to be restarted.</b> When this extension is enabled, pg_stat_statements results for utility commands are unreliable.
      - `max_failover_replication_time_lag` integer — Number of seconds of master unavailability before triggering database failover to standby. The default value is 60.
      - `max_connections` integer — Sets the PostgreSQL maximum number of concurrent connections to the database server. This is a limited-release parameter. Contact your account team to confirm your eligibility. You cannot decrease this parameter value when set. For services with a read replica, first increase the read replica's value. After the change is applied to the replica, you can increase the primary service's value. Changing this parameter causes a service restart.
      - `max_slot_wal_keep_size` integer — PostgreSQL maximum WAL size (MB) reserved for replication slots. If -1 is specified, replication slots may retain an unlimited amount of WAL files. The default is -1 (upstream default). wal_keep_size minimum WAL size setting takes precedence over this.
    - RedisAdvancedConfig
      - `redis_maxmemory_policy` 'noeviction' | 'allkeys-lru' | 'allkeys-random' | 'volatile-lru' | 'volatile-random' | 'volatile-ttl' — A string specifying the desired eviction policy for the Caching cluster. - `noeviction`: Don't evict any data, returns error when memory limit is reached. - `allkeys-lru:` Evict any key, least recently used (LRU) first. - `allkeys-random`: Evict keys in a random order. - `volatile-lru`: Evict keys with expiration only, least recently used (LRU) first. - `volatile-random`: Evict keys with expiration only in a random order. - `volatile-ttl`: Evict keys with expiration only, shortest time-to-live (TTL) first.
      - `redis_pubsub_client_output_buffer_limit` integer — Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.
      - `redis_number_of_databases` integer — Set number of redis databases. Changing this will cause a restart of redis service.
      - `redis_io_threads` integer — Caching IO thread count
      - `redis_lfu_log_factor` integer — Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies
      - `redis_lfu_decay_time` integer — LFU maxmemory-policy counter decay time in minutes
      - `redis_ssl` boolean — Require SSL to access Caching. - When enabled, Caching accepts only SSL connections on port `25061`. - When disabled, port `25060` is opened for non-SSL connections, while port `25061` remains available for SSL connections.
      - `redis_timeout` integer — Caching idle connection timeout in seconds
      - `redis_notify_keyspace_events` string — Set notify-keyspace-events option. Requires at least `K` or `E` and accepts any combination of the following options. Setting the parameter to `""` disables notifications. - `K` &mdash; Keyspace events - `E` &mdash; Keyevent events - `g` &mdash; Generic commands (e.g. `DEL`, `EXPIRE`, `RENAME`, ...) - `$` &mdash; String commands - `l` &mdash; List commands - `s` &mdash; Set commands - `h` &mdash; Hash commands - `z` &mdash; Sorted set commands - `t` &mdash; Stream commands - `d` &mdash; Module key type events - `x` &mdash; Expired events - `e` &mdash; Evicted events - `m` &mdash; Key miss events - `n` &mdash; New key events - `A` &mdash; Alias for `"g$lshztxed"`
      - `redis_persistence` 'off' | 'rdb' — Creates an RDB dump of the database every 10 minutes that can be used to recover data after a node crash. The database does not create the dump if no keys have changed since the last dump. When set to `off`, the database cannot fork services, and data can be lost if a service is restarted or powered off. DigitalOcean Managed Caching databases do not support the Append Only File (AOF) persistence method.
      - `redis_acl_channels_default` 'allchannels' | 'resetchannels' — Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Caching configuration acl-pubsub-default.
    - ValkeyAdvancedConfig
      - `valkey_maxmemory_policy` 'noeviction' | 'allkeys_lru' | 'allkeys_random' | 'volatile_lru' | 'volatile_random' | 'volatile_ttl' — A string specifying the desired eviction policy for a Caching or Valkey cluster. - `noeviction`: Don't evict any data, returns error when memory limit is reached. - `allkeys_lru:` Evict any key, least recently used (LRU) first. - `allkeys_random`: Evict keys in a random order. - `volatile_lru`: Evict keys with expiration only, least recently used (LRU) first. - `volatile_random`: Evict keys with expiration only in a random order. - `volatile_ttl`: Evict keys with expiration only, shortest time-to-live (TTL) first.
      - `valkey_pubsub_client_output_buffer_limit` integer — Set output buffer limit for pub / sub clients in MB. The value is the hard limit, the soft limit is 1/4 of the hard limit. When setting the limit, be mindful of the available memory in the selected service plan.
      - `valkey_number_of_databases` integer — Set number of valkey databases. Changing this will cause a restart of valkey service.
      - `valkey_io_threads` integer — Valkey IO thread count
      - `valkey_lfu_log_factor` integer — Counter logarithm factor for volatile-lfu and allkeys-lfu maxmemory-policies
      - `valkey_lfu_decay_time` integer — LFU maxmemory-policy counter decay time in minutes
      - `valkey_ssl` boolean — Require SSL to access Valkey
      - `valkey_timeout` integer — Valkey idle connection timeout in seconds
      - `valkey_notify_keyspace_events` string — Set notify-keyspace-events option. Requires at least `K` or `E` and accepts any combination of the following options. Setting the parameter to `""` disables notifications. - `K` &mdash; Keyspace events - `E` &mdash; Keyevent events - `g` &mdash; Generic commands (e.g. `DEL`, `EXPIRE`, `RENAME`, ...) - `$` &mdash; String commands - `l` &mdash; List commands - `s` &mdash; Set commands - `h` &mdash; Hash commands - `z` &mdash; Sorted set commands - `t` &mdash; Stream commands - `d` &mdash; Module key type events - `x` &mdash; Expired events - `e` &mdash; Evicted events - `m` &mdash; Key miss events - `n` &mdash; New key events - `A` &mdash; Alias for `"g$lshztxed"`
      - `valkey_persistence` 'off' | 'rdb' — When persistence is 'rdb', Valkey does RDB dumps each 10 minutes if any key is changed. Also RDB dumps are done according to backup schedule for backup purposes. When persistence is 'off', no RDB dumps and backups are done, so data can be lost at any moment if service is restarted for any reason, or if service is powered off. Also service can't be forked.
      - `valkey_acl_channels_default` 'allchannels' | 'resetchannels' — Determines default pub/sub channels' ACL for new users if ACL is not supplied. When this option is not defined, all_channels is assumed to keep backward compatibility. This option doesn't affect Valkey configuration acl-pubsub-default.
      - `frequent_snapshots` boolean — Frequent RDB snapshots When enabled, Valkey will create frequent local RDB snapshots. When disabled, Valkey will only take RDB snapshots when a backup is created, based on the backup schedule. This setting is ignored when valkey_persistence is set to off.
      - `valkey_active_expire_effort` integer — Active expire effort Valkey reclaims expired keys both when accessed and in the background. The background process scans for expired keys to free memory. Increasing the active-expire-effort setting (default 1, max 10) uses more CPU to reclaim expired keys faster, reducing memory usage but potentially increasing latency.
    - MongoAdvancedConfig
      - `default_read_concern` 'local' | 'available' | 'majority' — Specifies the default consistency behavior of reads from the database. Data that is returned from the query with may or may not have been acknowledged by all nodes in the replicaset depending on this value. Learn more [here](https://www.mongodb.com/docs/manual/reference/read-concern/).
      - `default_write_concern` string — Describes the level of acknowledgment requested from MongoDB for write operations clusters. This field can set to either `majority` or a number `0...n` which will describe the number of nodes that must acknowledge the write operation before it is fully accepted. Setting to `0` will request no acknowledgement of the write operation. Learn more [here](https://www.mongodb.com/docs/manual/reference/write-concern/).
      - `transaction_lifetime_limit_seconds` integer — Specifies the lifetime of multi-document transactions. Transactions that exceed this limit are considered expired and will be aborted by a periodic cleanup process. The cleanup process runs every `transactionLifetimeLimitSeconds/2 seconds` or at least once every 60 seconds. *Changing this parameter will lead to a restart of the MongoDB service.* Learn more [here](https://www.mongodb.com/docs/manual/reference/parameters/#mongodb-parameter-param.transactionLifetimeLimitSeconds).
      - `slow_op_threshold_ms` integer — Operations that run for longer than this threshold are considered slow which are then recorded to the diagnostic logs. Higher log levels (verbosity) will record all operations regardless of this threshold on the primary node. *Changing this parameter will lead to a restart of the MongoDB service.* Learn more [here](https://www.mongodb.com/docs/manual/reference/configuration-options/#mongodb-setting-operationProfiling.slowOpThresholdMs).
      - `verbosity` integer — The log message verbosity level. The verbosity level determines the amount of Informational and Debug messages MongoDB outputs. 0 includes informational messages while 1...5 increases the level to include debug messages. *Changing this parameter will lead to a restart of the MongoDB service.* Learn more [here](https://www.mongodb.com/docs/manual/reference/configuration-options/#mongodb-setting-systemLog.verbosity).
    - KafkaAdvancedConfig
      - `compression_type` 'gzip' | 'snappy' | 'lz4' | 'zstd' | 'uncompressed' | 'producer' — Specify the final compression type for a given topic. This configuration accepts the standard compression codecs ('gzip', 'snappy', 'lz4', 'zstd'). It additionally accepts 'uncompressed' which is equivalent to no compression; and 'producer' which means retain the original compression codec set by the producer.
      - `group_initial_rebalance_delay_ms` integer — The amount of time, in milliseconds, the group coordinator will wait for more consumers to join a new group before performing the first rebalance. A longer delay means potentially fewer rebalances, but increases the time until processing begins. The default value for this is 3 seconds. During development and testing it might be desirable to set this to 0 in order to not delay test execution time.
      - `group_min_session_timeout_ms` integer — The minimum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
      - `group_max_session_timeout_ms` integer — The maximum allowed session timeout for registered consumers. Longer timeouts give consumers more time to process messages in between heartbeats at the cost of a longer time to detect failures.
      - `connections_max_idle_ms` integer — Idle connections timeout: the server socket processor threads close the connections that idle for longer than this.
      - `max_incremental_fetch_session_cache_slots` integer — The maximum number of incremental fetch sessions that the broker will maintain.
      - `message_max_bytes` integer — The maximum size of message that the server can receive.
      - `offsets_retention_minutes` integer — Log retention window in minutes for offsets topic
      - `log_cleaner_delete_retention_ms` integer — How long are delete records retained?
      - `log_cleaner_min_cleanable_ratio` number — Controls log compactor frequency. Larger value means more frequent compactions but also more space wasted for logs. Consider setting log_cleaner_max_compaction_lag_ms to enforce compactions sooner, instead of setting a very high value for this option.
      - `log_cleaner_max_compaction_lag_ms` integer — The maximum amount of time message will remain uncompacted. Only applicable for logs that are being compacted
      - `log_cleaner_min_compaction_lag_ms` integer — The minimum time a message will remain uncompacted in the log. Only applicable for logs that are being compacted.
      - `log_cleanup_policy` 'delete' | 'compact' | 'compact,delete' — The default cleanup policy for segments beyond the retention window
      - `log_flush_interval_messages` integer — The number of messages accumulated on a log partition before messages are flushed to disk
      - `log_flush_interval_ms` integer — The maximum time in ms that a message in any topic is kept in memory before flushed to disk. If not set, the value in log.flush.scheduler.interval.ms is used
      - `log_index_interval_bytes` integer — The interval with which Kafka adds an entry to the offset index
      - `log_index_size_max_bytes` integer — The maximum size in bytes of the offset index
      - `log_message_downconversion_enable` boolean — This configuration controls whether down-conversion of message formats is enabled to satisfy consume requests.
      - `log_message_timestamp_type` 'CreateTime' | 'LogAppendTime' — Define whether the timestamp in the message is message create time or log append time.
      - `log_message_timestamp_difference_max_ms` integer — The maximum difference allowed between the timestamp when a broker receives a message and the timestamp specified in the message
      - `log_preallocate` boolean — Controls whether to preallocate a file when creating a new segment
      - `log_retention_bytes` integer — The maximum size of the log before deleting messages
      - `log_retention_hours` integer — The number of hours to keep a log file before deleting it
      - `log_retention_ms` integer — The number of milliseconds to keep a log file before deleting it (in milliseconds), If not set, the value in log.retention.minutes is used. If set to -1, no time limit is applied.
      - `log_roll_jitter_ms` integer — The maximum jitter to subtract from logRollTimeMillis (in milliseconds). If not set, the value in log.roll.jitter.hours is used
      - `log_roll_ms` integer — The maximum time before a new log segment is rolled out (in milliseconds).
      - `log_segment_bytes` integer — The maximum size of a single log file
      - `log_segment_delete_delay_ms` integer — The amount of time to wait before deleting a file from the filesystem
      - `auto_create_topics_enable` boolean — Enable auto creation of topics
      - `min_insync_replicas` integer — When a producer sets acks to 'all' (or '-1'), min_insync_replicas specifies the minimum number of replicas that must acknowledge a write for the write to be considered successful.
      - `num_partitions` integer — Number of partitions for autocreated topics
      - `default_replication_factor` integer — Replication factor for autocreated topics
      - `replica_fetch_max_bytes` integer — The number of bytes of messages to attempt to fetch for each partition (defaults to 1048576). This is not an absolute maximum, if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that progress can be made.
      - `replica_fetch_response_max_bytes` integer — Maximum bytes expected for the entire fetch response (defaults to 10485760). Records are fetched in batches, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that progress can be made. As such, this is not an absolute maximum.
      - `max_connections_per_ip` integer — The maximum number of connections allowed from each ip address (defaults to 2147483647).
      - `producer_purgatory_purge_interval_requests` integer — The purge interval (in number of requests) of the producer request purgatory (defaults to 1000).
      - `socket_request_max_bytes` integer — The maximum number of bytes in a socket request (defaults to 104857600).
      - `transaction_state_log_segment_bytes` integer — The transaction topic segment bytes should be kept relatively small in order to facilitate faster log compaction and cache loads (defaults to 104857600 (100 mebibytes)).
      - `transaction_remove_expired_transaction_cleanup_interval_ms` integer — The interval at which to remove transactions that have expired due to transactional.id.expiration.ms passing (defaults to 3600000 (1 hour)).
      - `schema_registry` boolean — Enable creation of schema registry for the Kafka cluster. Schema_registry only works with General Purpose - Dedicated CPU plans.
    - OpensearchAdvancedConfig
      - `http_max_content_length_bytes` integer — Maximum content length for HTTP requests to the OpenSearch HTTP API, in bytes.
      - `http_max_header_size_bytes` integer — Maximum size of allowed headers, in bytes.
      - `http_max_initial_line_length_bytes` integer — Maximum length of an HTTP URL, in bytes.
      - `indices_query_bool_max_clause_count` integer — Maximum number of clauses Lucene BooleanQuery can have. Only increase it if necessary, as it may cause performance issues.
      - `indices_fielddata_cache_size_percentage` integer — Maximum amount of heap memory used for field data cache, expressed as a percentage. Decreasing the value too much will increase overhead of loading field data. Increasing the value too much will decrease amount of heap available for other operations.
      - `indices_memory_index_buffer_size_percentage` integer — Total amount of heap used for indexing buffer before writing segments to disk, expressed as a percentage. Too low value will slow down indexing; too high value will increase indexing performance but causes performance issues for query performance.
      - `indices_memory_min_index_buffer_size_mb` integer — Minimum amount of heap used for indexing buffer before writing segments to disk, in mb. Works in conjunction with indices_memory_index_buffer_size_percentage, each being enforced.
      - `indices_memory_max_index_buffer_size_mb` integer — Maximum amount of heap used for indexing buffer before writing segments to disk, in mb. Works in conjunction with indices_memory_index_buffer_size_percentage, each being enforced. The default is unbounded.
      - `indices_queries_cache_size_percentage` integer — Maximum amount of heap used for query cache. Too low value will decrease query performance and increase performance for other operations; too high value will cause issues with other functionality.
      - `indices_recovery_max_mb_per_sec` integer — Limits total inbound and outbound recovery traffic for each node, expressed in mb per second. Applies to both peer recoveries as well as snapshot recoveries (i.e., restores from a snapshot).
      - `indices_recovery_max_concurrent_file_chunks` integer — Maximum number of file chunks sent in parallel for each recovery.
      - `thread_pool_search_size` integer — Number of workers in the search operation thread pool. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
      - `thread_pool_search_throttled_size` integer — Number of workers in the search throttled operation thread pool. This pool is used for searching frozen indices. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
      - `thread_pool_get_size` integer — Number of workers in the get operation thread pool. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
      - `thread_pool_analyze_size` integer — Number of workers in the analyze operation thread pool. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
      - `thread_pool_write_size` integer — Number of workers in the write operation thread pool. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
      - `thread_pool_force_merge_size` integer — Number of workers in the force merge operation thread pool. This pool is used for forcing a merge between shards of one or more indices. Do note this may have maximum value depending on CPU count - value is automatically lowered if set to higher than maximum value.
      - `thread_pool_search_queue_size` integer — Size of queue for operations in the search thread pool.
      - `thread_pool_search_throttled_queue_size` integer — Size of queue for operations in the search throttled thread pool.
      - `thread_pool_get_queue_size` integer — Size of queue for operations in the get thread pool.
      - `thread_pool_analyze_queue_size` integer — Size of queue for operations in the analyze thread pool.
      - `thread_pool_write_queue_size` integer — Size of queue for operations in the write thread pool.
      - `ism_enabled` boolean — Specifies whether ISM is enabled or not.
      - `ism_history_enabled` boolean — Specifies whether audit history is enabled or not. The logs from ISM are automatically indexed to a logs document.
      - `ism_history_max_age_hours` integer — Maximum age before rolling over the audit history index, in hours.
      - `ism_history_max_docs` integer — Maximum number of documents before rolling over the audit history index.
      - `ism_history_rollover_check_period_hours` integer — The time between rollover checks for the audit history index, in hours.
      - `ism_history_rollover_retention_period_days` integer — Length of time long audit history indices are kept, in days.
      - `search_max_buckets` integer — Maximum number of aggregation buckets allowed in a single response.
      - `action_auto_create_index_enabled` boolean — Specifices whether to allow automatic creation of indices.
      - `enable_security_audit` boolean — Specifies whether to allow security audit logging.
      - `action_destructive_requires_name` boolean — Specifies whether to require explicit index names when deleting indices.
      - `cluster_max_shards_per_node` integer — Maximum number of shards allowed per data node.
      - `override_main_response_version` boolean — Compatibility mode sets OpenSearch to report its version as 7.10 so clients continue to work.
      - `script_max_compilations_rate` string — Limits the number of inline script compilations within a period of time. Default is use-context
      - `cluster_routing_allocation_node_concurrent_recoveries` integer — Maximum concurrent incoming/outgoing shard recoveries (normally replicas) are allowed to happen per node .
      - `reindex_remote_whitelist` string[] — Allowlist of remote IP addresses for reindexing. Changing this value will cause all OpenSearch instances to restart.
      - `plugins_alerting_filter_by_backend_roles_enabled` boolean — Enable or disable filtering of alerting by backend roles.
      - `knn_memory_circuit_breaker_enabled` boolean — Enable or disable KNN memory circuit breaker.
      - `knn_memory_circuit_breaker_limit` integer — Maximum amount of memory in percentage that can be used for the KNN index. Defaults to 50% of the JVM heap size. 0 is used to set it to null which can be used to invalidate caches.
      - `keep_index_refresh_interval` boolean — DigitalOcean automatically resets the `index.refresh_interval` to the default value (once per second) to ensure that new documents are quickly available for search queries. If you are setting your own refresh intervals, you can disable this by setting this field to true.

## Response `200`

The action was successful and the response body is empty.

## Other responses

- `401` — Authentication failed due to invalid credentials.
- `404` — The resource was not found.
- `429` — The API rate limit has been exceeded.
- `500` — There was a server error.
- `default` — There was an unexpected error.

---

[API](https://skmtc.net/digitalocean/apis/digitalocean-api.md) · [All operations](https://skmtc.net/digitalocean/apis/digitalocean-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/digitalocean/digitalocean-api/versions/cb3bf9b21459/schema)
