---
title: "PUT /public/v1/clusters/{clusterName}"
method: PUT
path: "/public/v1/clusters/{clusterName}"
tags: ["clusters"]
---

# PUT /public/v1/clusters/{clusterName}

`PUT /public/v1/clusters/{clusterName}`

## Request

- Base URL: `https://developers.conduktor.io` (the document declares no server; this is the origin it was published from)
- URL: `https://developers.conduktor.io/public/v1/clusters/{clusterName}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/conduktor/apis/conduktor-console-api/docs/public/v1/clusters/:clusterName/put.ts> (a function with typed inputs; its response is checked against the schema)

Create or update a cluster inside the organization
The technical is mandatory. if it matches an existing cluster, it will be updated, otherwise it will be created.
The slugs of the kafka connects must be unique within the cluster.

## Path parameters

- `clusterName` string, required

## Request body

- UpsertKafkaClusterRequest
  - `name` string, required
  - `bootstrapServers` string, required
  - `properties` string
  - `color` string
  - `icon` string
  - `schemaRegistry` union
    - ConfluentLikeSchemaRegistryRequest
      - `url` string, required
      - `security` union
        - BasicAuth
          - `username` string, required
          - `password` string, required
          - `type` 'BasicAuth', required
        - BearerToken
          - `token` string, required
          - `type` 'BearerToken', required
        - NoSecurity
          - `type` 'NoSecurity', required
        - SSLAuth
          - `key` string, required
          - `certificateChain` string, required
          - `type` 'SSLAuth', required
      - `properties` string
      - `ignoreUntrustedCertificate` boolean
      - `schemaRegistryProxyClusterName` string
      - `type` 'ConfluentLikeSchemaRegistryRequest', required
    - GlueSchemaRegistryRequest
      - `registryName` string
      - `region` string, required
      - `security` union, required
        - Credentials
          - `accessKeyId` string, required
          - `secretKey` string, required
          - `type` 'Credentials', required
        - FromContext
          - `profile` string
          - `type` 'FromContext', required
        - FromRole
          - `role` string, required
          - `type` 'FromRole', required
        - IAMAnywhere
          - `trustAnchorArn` string, required
          - `profileArn` string, required
          - `roleArn` string, required
          - `certificate` string, required
          - `privateKey` string, required
          - `type` 'IAMAnywhere', required
      - `type` 'GlueSchemaRegistryRequest', required
  - `kafkaConnects` KafkaConnectUpsert[]
    - `url` string, required
    - `slug` string
    - `name` string, required
    - `security` union
      - KafkaConnectBasicAuth
        - `username` string, required
        - `password` string, required
        - `type` 'KafkaConnectBasicAuth', required
      - KafkaConnectBearerToken
        - `token` string, required
        - `type` 'KafkaConnectBearerToken', required
      - KafkaConnectNoSecurity
        - `type` 'KafkaConnectNoSecurity', required
      - KafkaConnectSSLAuth
        - `key` string, required
        - `certificateChain` string, required
        - `type` 'KafkaConnectSSLAuth', required
    - `headers` string
    - `ignoreUntrustedCertificate` boolean
    - `policiesRef` string[]
  - `ignoreUntrustedCertificate` boolean
  - `amazonSecurity` union
    - Credentials
      - `accessKeyId` string, required
      - `secretKey` string, required
      - `type` 'Credentials', required
    - FromContext
      - `profile` string
      - `type` 'FromContext', required
    - FromRole
      - `role` string, required
      - `type` 'FromRole', required
    - IAMAnywhere
      - `trustAnchorArn` string, required
      - `profileArn` string, required
      - `roleArn` string, required
      - `certificate` string, required
      - `privateKey` string, required
      - `type` 'IAMAnywhere', required
  - `kafkaFlavor` union
    - AivenCreate
      - `apiToken` string, required
      - `project` string, required
      - `serviceName` string, required
      - `type` 'Aiven', required
    - ConfluentCreate
      - `key` string, required
      - `secret` string, required
      - `confluentEnvironmentId` string, required
      - `confluentClusterId` string, required
      - `organizationId` string
      - `schemaRegistryId` string
      - `enableRbacRoleBindings` boolean
      - `type` 'Confluent', required
    - ConfluentPlatformCreate
      - `kafkaClusterId` string, required
      - `mdsUrl` string
      - `authentication` ConfluentPlatformAuthenticationCreateRequest
        - `username` string, required
        - `password` string, required
        - `type` 'LDAP', required
      - `mtls` ConfluentPlatformMTLSCreateRequest
        - `clientCertificateId` string, required
        - `clientKeyId` string, required
        - `caCertificateIds` string[]
      - `schemaRegistryClusterId` string
      - `enableRbacRoleBindings` boolean
      - `ignoreUntrustedCertificate` boolean
      - `type` 'ConfluentPlatform', required
    - GatewayCreate
      - `url` string, required
      - `user` string, required
      - `password` string, required
      - `virtualCluster` string, required
      - `ignoreUntrustedCertificate` boolean
      - `type` 'Gateway', required
  - `ksqlDBs` KsqlDBUpsert[]
    - `url` string, required
    - `slug` string
    - `name` string, required
    - `security` union
      - KsqlDBBasicAuth
        - `username` string, required
        - `password` string, required
        - `type` 'KsqlDBBasicAuth', required
      - KsqlDBBearerToken
        - `token` string, required
        - `type` 'KsqlDBBearerToken', required
      - KsqlDBNoSecurity
        - `type` 'KsqlDBNoSecurity', required
      - KsqlDBSSLAuth
        - `key` string, required
        - `certificateChain` string, required
        - `type` 'KsqlDBSSLAuth', required
    - `headers` string
    - `ignoreUntrustedCertificate` boolean
  - `policiesRef` string[]

## Response `200`

The created or updated cluster

- PublicKafkaClusterResponse
  - `clusterSlug` string, required
  - `name` string, required
  - `bootstrapServers` string, required
  - `properties` string
  - `color` string
  - `icon` string
  - `schemaRegistry` union
    - ConfluentLikeSchemaRegistryResponse
      - `id` string, uuid, required
      - `url` string, required
      - `security` union, required
        - BasicAuth
          - `username` string, required
          - `password` string, required
          - `type` 'BasicAuth', required
        - BearerToken
          - `token` string, required
          - `type` 'BearerToken', required
        - NoSecurity
          - `type` 'NoSecurity', required
        - SSLAuth
          - `key` string, required
          - `certificateChain` string, required
          - `type` 'SSLAuth', required
      - `properties` string
      - `ignoreUntrustedCertificate` boolean, required
      - `schemaRegistryProxyClusterName` string
      - `schemaRegistryProxyId` string
      - `type` 'ConfluentLikeSchemaRegistryResponse', required
    - GlueSchemaRegistryResponse
      - `id` string, uuid, required
      - `registryName` string
      - `region` string, required
      - `security` union, required
        - Credentials
          - `accessKeyId` string, required
          - `secretKey` string, required
          - `type` 'Credentials', required
        - FromContext
          - `profile` string
          - `type` 'FromContext', required
        - FromRole
          - `role` string, required
          - `type` 'FromRole', required
        - IAMAnywhere
          - `trustAnchorArn` string, required
          - `profileArn` string, required
          - `roleArn` string, required
          - `certificate` string, required
          - `privateKey` string, required
          - `type` 'IAMAnywhere', required
      - `type` 'GlueSchemaRegistryResponse', required
  - `kafkaConnects` KafkaConnectWithId[]
    - `id` string, uuid, required
    - `slug` string, required
    - `url` string, required
    - `name` string, required
    - `security` union, required
      - KafkaConnectBasicAuth
        - `username` string, required
        - `password` string, required
        - `type` 'KafkaConnectBasicAuth', required
      - KafkaConnectBearerToken
        - `token` string, required
        - `type` 'KafkaConnectBearerToken', required
      - KafkaConnectNoSecurity
        - `type` 'KafkaConnectNoSecurity', required
      - KafkaConnectSSLAuth
        - `key` string, required
        - `certificateChain` string, required
        - `type` 'KafkaConnectSSLAuth', required
    - `headers` string
    - `ignoreUntrustedCertificate` boolean, required
    - `labels` MapLabelKeyString, required
    - `policiesRef` string[]
  - `ignoreUntrustedCertificate` boolean, required
  - `accessCert` string: set it directly in kafka property, a call to API v2 will erase them
  - `accessKey` string: set it directly in kafka property, a call to API v2 will erase them
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `amazonSecurity` union
    - Credentials
      - `accessKeyId` string, required
      - `secretKey` string, required
      - `type` 'Credentials', required
    - FromContext
      - `profile` string
      - `type` 'FromContext', required
    - FromRole
      - `role` string, required
      - `type` 'FromRole', required
    - IAMAnywhere
      - `trustAnchorArn` string, required
      - `profileArn` string, required
      - `roleArn` string, required
      - `certificate` string, required
      - `privateKey` string, required
      - `type` 'IAMAnywhere', required
  - `kafkaFlavor` union
    - AivenResponse
      - `project` string, required
      - `serviceName` string, required
      - `type` 'Aiven', required
    - ConfluentPlatformResponse
      - `kafkaClusterId` string, required
      - `mdsUrl` string
      - `authentication` ConfluentPlatformAuthenticationResponse
        - `username` string, required
        - `type` 'LDAP', required
      - `mtls` ConfluentPlatformMTLSResponse
        - `clientCertificateId` string, required
        - `clientKeyId` string, required
        - `caCertificateIds` string[]
      - `schemaRegistryClusterId` string
      - `enableRbacRoleBindings` boolean
      - `ignoreUntrustedCertificate` boolean
      - `type` 'ConfluentPlatform', required
    - ConfluentResponse
      - `key` string, required
      - `confluentEnvironmentId` string, required
      - `confluentClusterId` string, required
      - `organizationId` string
      - `schemaRegistryId` string
      - `enableRbacRoleBindings` boolean
      - `type` 'Confluent', required
    - GatewayResponse
      - `url` string, required
      - `user` string, required
      - `virtualCluster` string, required
      - `ignoreUntrustedCertificate` boolean
      - `type` 'Gateway', required
  - `ksqlDBs` KsqlDBWithId[]
    - `id` string, uuid, required
    - `slug` string, required
    - `url` string, required
    - `name` string, required
    - `security` union, required
      - KsqlDBBasicAuth
        - `username` string, required
        - `password` string, required
        - `type` 'KsqlDBBasicAuth', required
      - KsqlDBBearerToken
        - `token` string, required
        - `type` 'KsqlDBBearerToken', required
      - KsqlDBNoSecurity
        - `type` 'KsqlDBNoSecurity', required
      - KsqlDBSSLAuth
        - `key` string, required
        - `certificateChain` string, required
        - `type` 'KsqlDBSSLAuth', required
    - `headers` string
    - `ignoreUntrustedCertificate` boolean, required

## Other responses

- `400`: The request is not valid
- `401`: The user is not authenticated
- `500`: An unexpected error occurred in the server

---

[API](https://skmtc.dev/conduktor/apis/conduktor-console-api.md) - [All operations](https://skmtc.dev/conduktor/apis/conduktor-console-api/llms.txt) - [OpenAPI document](https://skmtc.dev/conduktor/apis/conduktor-console-api/revisions/24750c294805?raw)
