---
description: Update the configuration of a specific Virtual Cluster by ID.
---

# UpdateConfiguration

## Configuration Options

<table><thead><tr><th width="352">Configuration Name</th><th>Description</th></tr></thead><tbody><tr><td><code>are_acls_enabled</code> </td><td>Whether the cluster will enforce Kafka ACLs. Enabling this will block <strong>all</strong> traffic in the cluster if no specific ACLs are configured first.</td></tr><tr><td><code>default_num_partitions</code></td><td>Default number of partitions for topics that are created automatically using Kafka's topic auto-creation feature.</td></tr><tr><td><code>default_retention_millis</code></td><td>Default retention for topics that are created automatically using Kafka's topic auto-creation feature.</td></tr><tr><td><code>is_auto_create_topic_enabled</code></td><td>Whether Kafka's topic auto-creation feature is enabled.</td></tr><tr><td><code>enable_deletion_protection</code></td><td>If <code>true</code>, you will not be able to delete this virtual cluster, the API will refuse it.</td></tr></tbody></table>

## Payload Example

`virtual_cluster_id` is always required, but every field in `virtual_cluster_configuration` is optional.  The JSON below shows all possible values that can be modified:

{% code overflow="wrap" %}
```json
{
    "virtual_cluster_id": "vci_1d4980d7_8e6d_4ad9_b27a_656ed4aca3ee",
    "virtual_cluster_configuration": {
        "are_acls_enabled": true,
        "default_num_partitions": 10,
        "is_auto_create_topic_enabled": false,
        "default_retention_millis": 86400000,
        "enable_deletion_protection": true,
    }
}
```
{% endcode %}

However, if you only wanted to change a single value like `default_retention_millis`, then you could construct the request like this:

```json
{
    "virtual_cluster_id": "vci_1d4980d7_8e6d_4ad9_b27a_656ed4aca3ee",
    "virtual_cluster_configuration": {
        "default_retention_millis": 86400000
    }
}
```

Which would modify the value of `default_retention_millis`, but leave all other configuration unchanged.

## Example Request

{% code overflow="wrap" fullWidth="false" %}
```bash
 curl https://api.warpstream.com/api/v1/update_virtual_cluster_configuration \
 -H 'warpstream-api-key: XXXXXXXXXX' \
 -H 'Content-Type: application/json' \
 -d '{"virtual_cluster_id": "vci_1d4980d7_8e6d_4ad9_b27a_656ed4aca3ee", "virtual_cluster_configuration": {"are_acls_enabled": true, "default_num_partitions": 10, "is_auto_create_topic_enabled": false, "default_retention_millis": 86400000}}'
```
{% endcode %}

{% hint style="info" %}
When you select specific configuration fields for updating, only those chosen will be altered. All other fields will remain unchanged.
{% endhint %}

## Response

```json
{}
```
