

# Resources


The Amazon Managed Streaming for Apache Kafka REST API includes the following resources.

**Topics**
+ [

# Apache Kafka Versions
](kafka-versions.md)
+ [

# BootstrapBrokers
](clusters-clusterarn-bootstrap-brokers.md)
+ [

# Broker Count
](clusters-clusterarn-nodes-count.md)
+ [

# Broker Storage
](clusters-clusterarn-nodes-storage.md)
+ [

# Broker Type
](clusters-clusterarn-nodes-type.md)
+ [

# Brokers
](clusters-clusterarn-nodes.md)
+ [

# Cluster
](clusters-clusterarn.md)
+ [

# Cluster Apache Kafka Version
](clusters-clusterarn-version.md)
+ [

# Cluster Configuration
](clusters-clusterarn-configuration.md)
+ [

# Cluster Connectivity
](clusters-clusterarn-connectivity.md)
+ [

# Cluster Operation
](operations-clusteroperationarn.md)
+ [

# Cluster Operations
](clusters-clusterarn-operations.md)
+ [

# Cluster Security
](clusters-clusterarn-security.md)
+ [

# Clusters
](clusters.md)
+ [

# Clusters clusterArn Client-vpc-connection
](clusters-clusterarn-client-vpc-connection.md)
+ [

# Clusters clusterArn Client-vpc-connections
](clusters-clusterarn-client-vpc-connections.md)
+ [

# Clusters clusterArn Policy
](clusters-clusterarn-policy.md)
+ [

# Clusters clusterArn Rebalancing
](clusters-clusterarn-rebalancing.md)
+ [

# Compatible Apache Kafka Versions
](compatible-kafka-versions.md)
+ [

# Configuration
](configurations-arn.md)
+ [

# Configuration Revision
](configurations-arn-revisions-revision.md)
+ [

# Configuration Revisions
](configurations-arn-revisions.md)
+ [

# Configurations
](configurations.md)
+ [

# Monitoring Properties
](clusters-clusterarn-monitoring.md)
+ [

# Reboot Broker
](clusters-clusterarn-reboot-broker.md)
+ [

# Scram Secrets
](clusters-clusterarn-scram-secrets.md)
+ [

# Tags
](tags-resourcearn.md)
+ [

# Topic
](clusters-clusterarn-topics-topicname.md)
+ [

# Topic Partitions
](clusters-clusterarn-topics-topicname-partitions.md)
+ [

# Topics
](clusters-clusterarn-topics.md)
+ [

# UpdateStorage
](clusters-clusterarn-storage.md)
+ [

# Vpc-connection
](vpc-connection.md)
+ [

# Vpc-connection arn
](vpc-connection-arn.md)
+ [

# Vpc-connections
](vpc-connections.md)

# Apache Kafka Versions


Objects that represent Apache Kafka versions.

## URI


`/v1/kafka-versions`

## HTTP methods


### GET


**Operation ID:** `ListKafkaVersions`

Returns the Apache Kafka version objects.


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListKafkaVersionsResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### ListKafkaVersionsResponse schema
ListKafkaVersionsResponse

```
{
  "nextToken": "string",
  "kafkaVersions": [
    {
      "version": "string",
      "status": enum
    }
  ]
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### KafkaVersion


Information about an Apache Kafka version.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| status | [KafkaVersionStatus](#kafka-versions-model-kafkaversionstatus) | False | The status of the Apache Kafka version. | 
| version | string | False | The Apache Kafka version. | 

### KafkaVersionStatus


The status of an Apache Kafka version.
+ `ACTIVE`
+ `DEPRECATED`

### ListKafkaVersionsResponse


Response for ListKafkaVersions.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| kafkaVersions | Array of type [KafkaVersion](#kafka-versions-model-kafkaversion) | False | An array of Apache Kafka version objects. | 
| nextToken | string | False | Paginated results marker. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListKafkaVersions

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListKafkaVersions)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListKafkaVersions)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListKafkaVersions)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListKafkaVersions)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListKafkaVersions)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListKafkaVersions)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListKafkaVersions)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListKafkaVersions)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListKafkaVersions)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListKafkaVersions)

# BootstrapBrokers


A list of brokers that a client application can use to bootstrap.

## URI


`/v1/clusters/clusterArn/bootstrap-brokers`

## HTTP methods


### GET


**Operation ID:** `GetBootstrapBrokers`

A list of brokers that a client can use to bootstrap. This list doesn't necessarily include all of the brokers in the cluster. The following Python 3.6 example shows how you can use the Amazon Resource Name (ARN) of a cluster to get its bootstrap brokers. If you don't know the ARN of your cluster, you can use the `ListClusters` operation to get the ARNs of all the clusters in this account and Region.

```
import boto3

client = boto3.client('kafka')

response = client.get_bootstrap_brokers(
    ClusterArn='arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4',
)

print(response['BootstrapBrokerString'])
```


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  GetBootstrapBrokersResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### GetBootstrapBrokersResponse schema
GetBootstrapBrokersResponse

```
{
  "bootstrapBrokerStringPublicSaslIam": "string",
  "bootstrapBrokerStringPublicSaslScram": "string",
  "bootstrapBrokerString": "string",
  "bootstrapBrokerStringTls": "string",
  "bootstrapBrokerStringVpcConnectivitySaslIam": "string",
  "bootstrapBrokerStringPublicTls": "string",
  "bootstrapBrokerStringVpcConnectivityTls": "string",
  "bootstrapBrokerStringVpcConnectivitySaslScram": "string",
  "bootstrapBrokerStringSaslIam": "string",
  "bootstrapBrokerStringSaslScram": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### GetBootstrapBrokersResponse


Returns a string containing one or more hostname:port pairs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| bootstrapBrokerString | string | False | A string containing one or more hostname:port pairs. | 
| bootstrapBrokerStringPublicSaslIam | string | False | A string that is one or more pairs of DNS names (or IP addresses) and SASL IAM ports for public access. | 
| bootstrapBrokerStringPublicSaslScram | string | False | A string that is one or more pairs of DNS names (or IP addresses) and SASL IAM ports for public access. | 
| bootstrapBrokerStringPublicTls | string | False | A string that is one or more pairs of DNS names (or IP addresses) and SASL IAM ports for public access. | 
| bootstrapBrokerStringSaslIam | string | False | A string containing one or more dns name (or IP) and SASL IAM port pairs. | 
| bootstrapBrokerStringSaslScram | string | False | A string containing one or more dns name (or IP) and SASL SCRAM port pairs. | 
| bootstrapBrokerStringTls | string | False | A string containing one or more DNS names (or IP) and TLS port pairs. The following is an example.<pre>{<br />    "BootstrapBrokerStringTls": "b-3.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-1.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094,b-2.exampleClusterName.abcde.c2.kafka.us-east-1.amazonaws.com:9094"<br />}</pre> | 
| bootstrapBrokerStringVpcConnectivitySaslIam | string | False | A string containing one or more dns name (or IP) and SASL IAM port pairs for VPC connectivity. | 
| bootstrapBrokerStringVpcConnectivitySaslScram | string | False | A string containing one or more dns name (or IP) and SASL SCRAM port pairs for VPC connectivity. | 
| bootstrapBrokerStringVpcConnectivityTls | string | False | A string containing one or more dns name (or IP) and Tls port pairs for VPC connectivity. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### GetBootstrapBrokers

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/GetBootstrapBrokers)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/GetBootstrapBrokers)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/GetBootstrapBrokers)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/GetBootstrapBrokers)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/GetBootstrapBrokers)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/GetBootstrapBrokers)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/GetBootstrapBrokers)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/GetBootstrapBrokers)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/GetBootstrapBrokers)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/GetBootstrapBrokers)

# Broker Count


The number of broker nodes in a cluster.

## URI


`/v1/clusters/clusterArn/nodes/count`

## HTTP methods


### PUT


**Operation ID:** `UpdateBrokerCount`

Updates the number of broker nodes in the cluster. You can use this operation to increase or decrease the number of brokers in an existing cluster.

The following Python 3.6 example shows how you can increase the number of brokers in a cluster to 6 brokers. The update operation returns immediately, with a response that includes the Amazon Resource Name (ARN) that Amazon MSK assigns to this cluster operation. You can use that ARN to check the state of the operation. When the state changes from `PENDING` to `UPDATE_COMPLETE`, the operation is complete.

```
import boto3
import time

client = boto3.client('kafka')

update_broker_count_response = client.update_broker_count(
    ClusterArn='arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4',
    CurrentVersion='K12V3IB1VIZHHY',
    TargetNumberOfBrokerNodes=6
)

operation_arn = update_broker_count_response['ClusterOperationArn']

print(operation_arn)

describe_cluster_operation_response = client.describe_cluster_operation(ClusterOperationArn=operation_arn)
operation_state = describe_cluster_operation_response['ClusterOperationInfo']['OperationState']
print(operation_state)

expanded = False

while not expanded:
    print('Sleeping for 15 seconds before checking to see if the cluster update is done...')
    time.sleep(15)
    describe_cluster_operation_response = client.describe_cluster_operation(ClusterOperationArn=operation_arn)
    operation_state = describe_cluster_operation_response['ClusterOperationInfo']['OperationState']
    if 'UPDATE_COMPLETE' == operation_state:
        expanded = True
        print('The cluster has 6 brokers now.')
```


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateBrokerCountResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "targetNumberOfBrokerNodes": integer,
  "currentVersion": "string"
}
```

### Response bodies


#### UpdateBrokerCountResponse schema
UpdateBrokerCountResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### UpdateBrokerCountRequest


Request body for UpdateBrokerCount. Accepts a targetNumberOfBrokerNodes value that is 2 or 3 less than the current broker node count for the cluster (for 2 and 3 AZ clusters respectively).


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | string | True | The current version of the cluster. | 
| targetNumberOfBrokerNodes | integer | True | The number of broker nodes that you want the cluster to have after this operation completes successfully. | 

### UpdateBrokerCountResponse


Response body for UpdateBrokerCount.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateBrokerCount

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateBrokerCount)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateBrokerCount)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateBrokerCount)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateBrokerCount)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateBrokerCount)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateBrokerCount)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateBrokerCount)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateBrokerCount)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateBrokerCount)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateBrokerCount)

# Broker Storage


Represents the EBS storage associated with the brokers.

## URI


`/v1/clusters/clusterArn/nodes/storage`

## HTTP methods


### PUT


**Operation ID:** `UpdateBrokerStorage`

Updates the EBS storage associated with Amazon MSK brokers. You can increase the amount of EBS storage per broker. You can't decrease the storage. To increase storage, wait for the cluster to be in the ACTIVE state. Storage volumes remain available during this scaling-up operation.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateBrokerStorageResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "targetBrokerEBSVolumeInfo": [
    {
      "volumeSizeGB": integer,
      "provisionedThroughput": {
        "volumeThroughput": integer,
        "enabled": boolean
      },
      "kafkaBrokerNodeId": "string"
    }
  ],
  "currentVersion": "string"
}
```

### Response bodies


#### UpdateBrokerStorageResponse schema
UpdateBrokerStorageResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### BrokerEBSVolumeInfo


Specifies the EBS volume upgrade information. The broker identifier must be set to the keyword `ALL`. This means the changes apply to all the brokers in the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| kafkaBrokerNodeId | string | True | The ID of the broker to update. The only allowed value is `ALL`. This means that Amazon MSK applies the same storage update to all broker nodes. | 
| provisionedThroughput | [ProvisionedThroughput](#clusters-clusterarn-nodes-storage-model-provisionedthroughput) | False | EBS volume provisioned throughput information. | 
| volumeSizeGB | integer | False | Size of the EBS volume to update. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ProvisionedThroughput


Contains information about provisioned throughput for EBS storage volumes attached to kafka broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Provisioned throughput is enabled or not. | 
| volumeThroughput | integer | False | Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. | 

### UpdateBrokerStorageRequest


Request object for UpdateBrokerStorage.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | string | True | The version of the MSK cluster to update. Cluster versions aren't simple numbers. You can describe an MSK cluster to find its version. When this update operation is successful, it generates a new cluster version.  | 
| targetBrokerEBSVolumeInfo | Array of type [BrokerEBSVolumeInfo](#clusters-clusterarn-nodes-storage-model-brokerebsvolumeinfo) | True | Describes the target volume size and the ID of the broker to apply the update to.The value you specify for Target-Volume-in-GiB must be a whole number that is greater than 100 GiB.The storage per broker after the update operation can't exceed 16384 GiB. | 

### UpdateBrokerStorageResponse


Response body for UpdateBrokerStorage.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateBrokerStorage

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateBrokerStorage)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateBrokerStorage)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateBrokerStorage)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateBrokerStorage)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateBrokerStorage)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateBrokerStorage)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateBrokerStorage)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateBrokerStorage)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateBrokerStorage)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateBrokerStorage)

# Broker Type


The type of brokers in the cluster. All of the brokers in a cluster are the same type.

## URI


`/v1/clusters/clusterArn/nodes/type`

## HTTP methods


### PUT


**Operation ID:** `UpdateBrokerType`

For information about this operation, see [Updating the broker type](https://docs.aws.amazon.com/msk/latest/developerguide/msk-update-broker-type.html) in the developer guide.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateBrokerTypeResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "targetInstanceType": "string",
  "currentVersion": "string"
}
```

### Response bodies


#### UpdateBrokerTypeResponse schema
UpdateBrokerTypeResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### UpdateBrokerTypeRequest


Request body for UpdateBrokerType.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | string | True | Current cluster version. | 
| targetInstanceType | string | True | The type of Amazon EC2 instances to use for Kafka brokers. | 

### UpdateBrokerTypeResponse


Response body for UpdateBrokerType.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateBrokerType

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateBrokerType)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateBrokerType)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateBrokerType)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateBrokerType)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateBrokerType)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateBrokerType)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateBrokerType)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateBrokerType)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateBrokerType)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateBrokerType)

# Brokers


The broker nodes in the cluster.

## URI


`/v1/clusters/clusterArn/nodes`

## HTTP methods


### GET


**Operation ID:** `ListNodes`

Returns a list of the broker nodes in the cluster. The following Python 3.6 example first lists one node of a cluster. Because the cluster has more nodes, the response contains a token that the script then uses to list the remaining nodes.

```
import boto3

client = boto3.client('kafka')

list_nodes_response = client.list_nodes(
    ClusterArn='arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4',
    MaxResults=1
)

print('\n')
print('Here is the first node in the list:')
print('\n')
print(list_nodes_response['NodeInfoList'])

next_token = list_nodes_response['NextToken']

list_nodes_response = client.list_nodes(
    ClusterArn='arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4',
    NextToken=next_token
)

print('\n')
print('Here are the remaining nodes in the list:')
print('\n')
print(list_nodes_response['NodeInfoList'])
```


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListNodesResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### ListNodesResponse schema
ListNodesResponse

```
{
  "nextToken": "string",
  "nodeInfoList": [
    {
      "zookeeperNodeInfo": {
        "zookeeperId": number,
        "clientVpcIpAddress": "string",
        "attachedENIId": "string",
        "endpoints": [
          "string"
        ],
        "zookeeperVersion": "string"
      },
      "instanceType": "string",
      "controllerNodeInfo": {
        "endpoints": [
          "string"
        ]
      },
      "nodeType": enum,
      "nodeARN": "string",
      "brokerNodeInfo": {
        "clientVpcIpAddress": "string",
        "attachedENIId": "string",
        "brokerId": number,
        "endpoints": [
          "string"
        ],
        "clientSubnet": "string",
        "currentBrokerSoftwareInfo": {
          "configurationRevision": integer,
          "kafkaVersion": "string",
          "configurationArn": "string"
        }
      },
      "addedToClusterTime": "string"
    }
  ]
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### BrokerNodeInfo


BrokerNodeInfo


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| attachedENIId | string | False | The attached elastic network interface of the broker. | 
| brokerId | number | False | The ID of the broker. | 
| clientSubnet | string | False | The client subnet to which this broker node belongs. | 
| clientVpcIpAddress | string | False | The virtual private cloud (VPC) of the client. | 
| currentBrokerSoftwareInfo | [BrokerSoftwareInfo](#clusters-clusterarn-nodes-model-brokersoftwareinfo) | False | Information about the version of software currently deployed on the brokers in the cluster. | 
| endpoints | Array of type string | False | Endpoints for accessing the broker. | 

### BrokerSoftwareInfo


Information about the current software installed on the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| configurationArn | string | False | The Amazon Resource Name (ARN) of the configuration used for the cluster. This field isn't visible in this preview release. | 
| configurationRevision | integerFormat: int64 | False | The revision of the configuration to use. This field isn't visible in this preview release. | 
| kafkaVersion | string | False | The version of Apache Kafka. You can use Amazon MSK to create clusters that use Apache Kafka versions 1.1.1 and 2.2.1. See [Apache Kafka Versions](kafka-versions.md). | 

### ControllerNodeInfo


Controller Node Information.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| endpoints | Array of type string | False | Endpoints for accessing the controller. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ListNodesResponse


Information about nodes in the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | string | False | The paginated results marker. When the result of a `ListNodes` operation is truncated, the call returns `NextToken` in the response. To get another batch of nodes, provide this token in your next request. | 
| nodeInfoList | Array of type [NodeInfo](#clusters-clusterarn-nodes-model-nodeinfo) | False | List containing a `NodeInfo` object. Doesn't contain entries for brokers that have been deleted. | 

### NodeInfo


The node information object.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| addedToClusterTime | string | False | The start time. | 
| brokerNodeInfo | [BrokerNodeInfo](#clusters-clusterarn-nodes-model-brokernodeinfo) | False | The broker node info. | 
| controllerNodeInfo | [ControllerNodeInfo](#clusters-clusterarn-nodes-model-controllernodeinfo) | False | The controller node information. | 
| instanceType | string | False | The instance type. | 
| nodeARN | string | False | The Amazon Resource Name (ARN) of the node. | 
| nodeType | [NodeType](#clusters-clusterarn-nodes-model-nodetype) | False | The node type. | 
| zookeeperNodeInfo | [ZookeeperNodeInfo](#clusters-clusterarn-nodes-model-zookeepernodeinfo) | False | The ZookeeperNodeInfo. | 

### NodeType


The broker or Apache ZooKeeper node.
+ `BROKER`

### ZookeeperNodeInfo


Apache ZooKeeper node information.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| attachedENIId | string | False | The attached elastic network interface of the broker. | 
| clientVpcIpAddress | string | False | The virtual private cloud (VPC) IP address of the client. | 
| endpoints | Array of type string | False | Endpoints for accessing the Apache ZooKeeper nodes. | 
| zookeeperId | number | False | The role-specific ID for Apache ZooKeeper. | 
| zookeeperVersion | string | False | The version of Apache ZooKeeper. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListNodes

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListNodes)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListNodes)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListNodes)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListNodes)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListNodes)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListNodes)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListNodes)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListNodes)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListNodes)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListNodes)

# Cluster


Represents an Amazon MSK cluster.

## URI


`/v1/clusters/clusterArn`

## HTTP methods


### GET


**Operation ID:** `DescribeCluster`

Returns a description of the MSK cluster whose Amazon Resource Name (ARN) is specified in the request. The following is a Python 3.6 example of how to use this operation. Before you run this Python script, replace the example cluster Amazon Resource Name (ARN) with the ARN of the cluster you want to describe. If you don't know the ARN of the cluster, you can use the `ListClusters` operation to list all the clusters and see their ARNs and full descriptions.

```
import boto3

client = boto3.client('kafka')

response = client.describe_cluster(
    ClusterArn='arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4'
)

print(response)
```

Note that the response to this operation only includes the `ZookeeperConnectStringTls` node in clusters created with Apache Kafka version 2.5.1 and later.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DescribeClusterResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### DELETE


**Operation ID:** `DeleteCluster`

Deletes the MSK cluster specified by the Amazon Resource Name (ARN) in the request, and all its revisions.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | String | False | The current version of the MSK cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DeleteClusterResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### DescribeClusterResponse schema
DescribeClusterResponse

```
{
  "clusterInfo": {
    "encryptionInfo": {
      "encryptionInTransit": {
        "inCluster": boolean,
        "clientBroker": enum
      },
      "encryptionAtRest": {
        "dataVolumeKMSKeyId": "string"
      }
    },
    "zookeeperConnectString": "string",
    "customerActionStatus": enum,
    "creationTime": "string",
    "zookeeperConnectStringTls": "string",
    "loggingInfo": {
      "brokerLogs": {
        "s3": {
          "bucket": "string",
          "prefix": "string",
          "enabled": boolean
        },
        "firehose": {
          "deliveryStream": "string",
          "enabled": boolean
        },
        "cloudWatchLogs": {
          "logGroup": "string",
          "enabled": boolean
        }
      }
    },
    "currentVersion": "string",
    "tags": {
    },
    "numberOfBrokerNodes": integer,
    "clusterArn": "string",
    "activeOperationArn": "string",
    "enhancedMonitoring": enum,
    "clusterName": "string",
    "storageMode": enum,
    "stateInfo": {
      "code": "string",
      "message": "string"
    },
    "clientAuthentication": {
      "sasl": {
        "iam": {
          "enabled": boolean
        },
        "scram": {
          "enabled": boolean
        }
      },
      "unauthenticated": {
        "enabled": boolean
      },
      "tls": {
        "certificateAuthorityArnList": [
          "string"
        ],
        "enabled": boolean
      }
    },
    "state": enum,
    "brokerNodeGroupInfo": {
      "clientSubnets": [
        "string"
      ],
      "zoneIds": [
        "string"
      ],
      "instanceType": "string",
      "connectivityInfo": {
        "vpcConnectivity": {
          "clientAuthentication": {
            "sasl": {
              "iam": {
                "enabled": boolean
              },
              "scram": {
                "enabled": boolean
              }
            },
            "tls": {
              "enabled": boolean
            }
          }
        },
        "publicAccess": {
          "type": "string"
        },
        "networkType": "string"
      },
      "securityGroups": [
        "string"
      ],
      "brokerAZDistribution": enum,
      "storageInfo": {
        "ebsStorageInfo": {
          "provisionedThroughput": {
            "volumeThroughput": integer,
            "enabled": boolean
          },
          "volumeSize": integer
        }
      }
    },
    "openMonitoring": {
      "prometheus": {
        "nodeExporter": {
          "enabledInBroker": boolean
        },
        "jmxExporter": {
          "enabledInBroker": boolean
        }
      }
    },
    "rebalancing": {
      "status": enum
    },
    "currentBrokerSoftwareInfo": {
      "configurationRevision": integer,
      "kafkaVersion": "string",
      "configurationArn": "string"
    }
  }
}
```

#### DeleteClusterResponse schema
DeleteClusterResponse

```
{
  "clusterArn": "string",
  "state": enum
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### BrokerAZDistribution


This parameter is currently not in use.
+ `DEFAULT`

### BrokerLogs


The broker logs configuration for this MSK cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| cloudWatchLogs | [CloudWatchLogs](#clusters-clusterarn-model-cloudwatchlogs) | False | Details of the CloudWatch Logs destination for broker logs. | 
| firehose | [Firehose](#clusters-clusterarn-model-firehose) | False | Details of the Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| s3 | [S3](#clusters-clusterarn-model-s3) | False | Details of the Amazon S3 destination for broker logs. | 

### BrokerNodeGroupInfo


Describes the setup to be used for the broker nodes in the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerAZDistribution | [BrokerAZDistribution](#clusters-clusterarn-model-brokerazdistribution) | False | This parameter is currently not in use. | 
| clientSubnets | Array of type string | True | The list of subnets to connect to in the client virtual private cloud (VPC). Amazon creates elastic network interfaces inside these subnets. Client applications use elastic network interfaces to produce and consume data. If you use the US West (N. California) Region, specify exactly two subnets. For other Regions where Amazon MSK is available, you can specify either two or three subnets. The subnets that you specify must be in distinct Availability Zones. When you create a cluster, Amazon MSK distributes the broker nodes evenly across the subnets that you specify.Client subnets can't occupy the Availability Zone with ID `use1-az3`. | 
| connectivityInfo | [ConnectivityInfo](#clusters-clusterarn-model-connectivityinfo) | False | Information about the cluster's connectivity setting. | 
| instanceType | stringMinLength: 5MaxLength: 32 | True | The type of Amazon EC2 instances to use for brokers. The following instance types are allowed: kafka.m5.large, kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.8xlarge, kafka.m5.12xlarge, kafka.m5.16xlarge, and kafka.m5.24xlarge. | 
| securityGroups | Array of type string | False | The security groups to associate with the elastic network interfaces in order to specify who can connect to and communicate with the Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the default security group associated with the VPC. If you specify security groups that were shared with you, you must ensure that you have permissions to them. Specifically, you need the `ec2:DescribeSecurityGroups` permission. | 
| storageInfo | [StorageInfo](#clusters-clusterarn-model-storageinfo) | False | Contains information about storage volumes attached to Amazon MSK broker nodes. | 
| zoneIds | Array of type string | False | The zoneIds for brokers in customer account. | 

### BrokerSoftwareInfo


Information about the current software installed on the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| configurationArn | string | False | The Amazon Resource Name (ARN) of the configuration used for the cluster. This field isn't visible in this preview release. | 
| configurationRevision | integerFormat: int64 | False | The revision of the configuration to use. This field isn't visible in this preview release. | 
| kafkaVersion | string | False | The version of Apache Kafka. You can use Amazon MSK to create clusters that use Apache Kafka versions 1.1.1 and 2.2.1. See [Apache Kafka Versions](kafka-versions.md). | 

### ClientAuthentication


Includes all client authentication information.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [Sasl](#clusters-clusterarn-model-sasl) | False | Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true. | 
| tls | [Tls](#clusters-clusterarn-model-tls) | False | Details for ClientAuthentication using TLS. To turn on TLS access control, you must also turn on `EncryptionInTransit` by setting `inCluster` to true and `clientBroker` to `TLS`. | 
| unauthenticated | [Unauthenticated](#clusters-clusterarn-model-unauthenticated) | False | Details for ClientAuthentication using no authentication. | 

### ClientBroker


Client-broker encryption in transit setting.
+ `TLS`
+ `TLS_PLAINTEXT`
+ `PLAINTEXT`

### CloudWatchLogs


Details of the CloudWatch Logs destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | True | Specifies whether broker logs get sent to the specified CloudWatch Logs destination. | 
| logGroup | string | False | The CloudWatch log group that is the destination for broker logs. | 

### ClusterInfo


Returns information about a cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| activeOperationArn | string | False | Arn of active cluster operation. | 
| brokerNodeGroupInfo | [BrokerNodeGroupInfo](#clusters-clusterarn-model-brokernodegroupinfo) | False | Information about the broker nodes. | 
| clientAuthentication | [ClientAuthentication](#clusters-clusterarn-model-clientauthentication) | False | Includes all client authentication information. | 
| clusterArn | string | False | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 
| clusterName | string | False | The name of the cluster. | 
| creationTime | string | False | The time when the cluster was created. | 
| currentBrokerSoftwareInfo | [BrokerSoftwareInfo](#clusters-clusterarn-model-brokersoftwareinfo) | False | Information about the version of software currently deployed on the brokers in the cluster. | 
| currentVersion | string | False | The current version of the MSK cluster. Cluster versions aren't simple integers. You can obtain the current version by describing the cluster. An example version is `KTVPDKIKX0DER`. | 
| customerActionStatus | [CustomerActionStatus](#clusters-clusterarn-model-customeractionstatus) | False | Determines if there is an action required from the customer. | 
| encryptionInfo | [EncryptionInfo](#clusters-clusterarn-model-encryptioninfo) | False | Includes all encryption-related information. | 
| enhancedMonitoring | [EnhancedMonitoring](#clusters-clusterarn-model-enhancedmonitoring) | False | Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster. This property has three possible values: `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`. For a list of the metrics associated with each of these three levels of monitoring, see [Monitoring](https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html). | 
| loggingInfo | [LoggingInfo](#clusters-clusterarn-model-logginginfo) | False | You can configure your MSK cluster to send broker logs to different destination types. This is a container for the configuration details related to broker logs. | 
| numberOfBrokerNodes | integer | False | The number of broker nodes in the cluster. | 
| openMonitoring | [OpenMonitoring](#clusters-clusterarn-model-openmonitoring) | False | Settings for open monitoring using Prometheus. | 
| rebalancing | [Rebalancing](#clusters-clusterarn-model-rebalancing) | False | Specifies if intelligent rebalancing is turned on for your MSK Provisioned cluster with Express brokers. For all new Express-based clusters that you create, intelligent rebalancing is turned on by default. | 
| state | [ClusterState](#clusters-clusterarn-model-clusterstate) | False | The state of the cluster. Amazon MSK automatically renews certificates on clusters every 13 months. It sets the state of the cluster to `MAINTENANCE` when it starts the certificate-update operation. It sets it back to `ACTIVE` when the update is done. While a cluster is in the `MAINTENANCE` state, you can continue to produce and consume data, but you can't perform any update operations on it. You can perform update operations on a cluster when it is in the `ACTIVE` state. | 
| stateInfo | [StateInfo](#clusters-clusterarn-model-stateinfo) | False | Includes information of the cluster state. | 
| storageMode | [StorageMode](#clusters-clusterarn-model-storagemode) | False | This controls storage mode for supported storage tiers. | 
| tags | object | False | Tags attached to the cluster. | 
| zookeeperConnectString | string | False | The connection string to use to connect to zookeeper cluster on plaintext port. | 
| zookeeperConnectStringTls | string | False | The connection string to use to connect to the Apache ZooKeeper cluster on a TLS port. | 

### ClusterState


The state of the cluster. Amazon MSK automatically renews certificates on clusters every 13 months. It sets the state of the cluster to `MAINTENANCE` when it starts the certificate-update operation. It sets it back to `ACTIVE` when the update is done. While a cluster is in the `MAINTENANCE` state, you can continue to produce and consume data, but you can't perform any update operations on it. You can perform update operations on a cluster when it is in the `ACTIVE` state.
+ `ACTIVE`
+ `CREATING`
+ `UPDATING`
+ `DELETING`
+ `FAILED`
+ `MAINTENANCE`
+ `REBOOTING_BROKER`
+ `HEALING`

### ConnectivityInfo


Broker access controls.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| networkType | stringMinLength: 4MaxLength: 4 | False | The network type of the cluster, which is IPv4 or DUAL. The DUAL network type uses both IPv4 and IPv6 addresses for your cluster and its resources. By default, a cluster uses the IPv4 network type. | 
| publicAccess | [PublicAccess](#clusters-clusterarn-model-publicaccess) | False | Access control settings for the cluster's brokers. | 
| vpcConnectivity | [VpcConnectivity](#clusters-clusterarn-model-vpcconnectivity) | False | VPC connection control settings for brokers | 

### CustomerActionStatus


A type of an action required from the customer.
+ `CRITICAL_ACTION_REQUIRED`
+ `ACTION_RECOMMENDED`
+ `NONE`

### DeleteClusterResponse


Returns information about the deleted cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| state | [ClusterState](#clusters-clusterarn-model-clusterstate) | False | The state of the cluster. Amazon MSK automatically renews certificates on clusters every 13 months. It sets the state of the cluster to `MAINTENANCE` when it starts the certificate-update operation. It sets it back to `ACTIVE` when the update is done. While a cluster is in the `MAINTENANCE` state, you can continue to produce and consume data, but you can't perform any update operations on it. You can perform update operations on a cluster when it is in the `ACTIVE` state. | 

### DescribeClusterResponse


Returns information about a cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterInfo | [ClusterInfo](#clusters-clusterarn-model-clusterinfo) | False | The cluster information. | 

### EBSStorageInfo


Contains information about the EBS storage volumes attached to the broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| provisionedThroughput | [ProvisionedThroughput](#clusters-clusterarn-model-provisionedthroughput) | False | EBS volume provisioned throughput information. | 
| volumeSize | integerMinimum: 1Maximum: 16384 | False | The size in GiB of the EBS volume for the data drive on each broker node. | 

### EncryptionAtRest


The data-volume encryption details. You can't update encryption at rest settings for existing clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| dataVolumeKMSKeyId | string | True | The Amazon Resource Name (ARN) of the Amazon KMS key for encrypting data at rest. If you don't specify a KMS key, MSK creates one for you and uses it. | 

### EncryptionInTransit


The settings for encrypting data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientBroker | [ClientBroker](#clusters-clusterarn-model-clientbroker) | False | Indicates the encryption setting for data in transit between clients and brokers. You must set it to one of the following values. `TLS` means that client-broker communication is enabled with TLS only. `TLS_PLAINTEXT` means that client-broker communication is enabled for both TLS-encrypted, as well as plaintext data. `PLAINTEXT` means that client-broker communication is enabled in plaintext only.The default value is `TLS`. | 
| inCluster | boolean | False | When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.The default value is true. | 

### EncryptionInfo


Includes encryption-related information, such as the Amazon KMS key used for encrypting data at rest and whether you want MSK to encrypt your data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| encryptionAtRest | [EncryptionAtRest](#clusters-clusterarn-model-encryptionatrest) | False | The data-volume encryption details. | 
| encryptionInTransit | [EncryptionInTransit](#clusters-clusterarn-model-encryptionintransit) | False | The details for encryption in transit. | 

### EnhancedMonitoring


Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster. This property has three possible values: `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`. For a list of the metrics associated with each of these three levels of monitoring, see [Monitoring](https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html).
+ `DEFAULT`
+ `PER_BROKER`
+ `PER_TOPIC_PER_BROKER`
+ `PER_TOPIC_PER_PARTITION`

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### Firehose


Firehose details for BrokerLogs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| deliveryStream | string | False | The Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Kinesis Data Firehose delivery stream. | 

### IAM


Details for SASL/IAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### JmxExporter


Indicates whether you want to enable or disable the JMX Exporter.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Indicates whether you want to enable or disable the JMX Exporter. | 

### LoggingInfo


You can configure your MSK cluster to send broker logs to different destination types. This is a container for the configuration details related to broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerLogs | [BrokerLogs](#clusters-clusterarn-model-brokerlogs) | True | You can configure your MSK cluster to send broker logs to different destination types. This configuration specifies the details of these destinations. | 

### NodeExporter


Indicates whether you want to enable or disable the Node Exporter.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Indicates whether you want to enable or disable the Node Exporter. | 

### OpenMonitoring


JMX and Node monitoring for the MSK cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| prometheus | [Prometheus](#clusters-clusterarn-model-prometheus) | True | Prometheus exporter settings. | 

### Prometheus


Prometheus settings for open monitoring.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| jmxExporter | [JmxExporter](#clusters-clusterarn-model-jmxexporter) | False | Indicates whether you want to enable or disable the JMX Exporter. | 
| nodeExporter | [NodeExporter](#clusters-clusterarn-model-nodeexporter) | False | Indicates whether you want to enable or disable the Node Exporter. | 

### ProvisionedThroughput


Contains information about provisioned throughput for EBS storage volumes attached to kafka broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Provisioned throughput is enabled or not. | 
| volumeThroughput | integer | False | Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. | 

### PublicAccess


Broker access controls


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| type | string | False | DISABLED means that public access is turned off. SERVICE\$1PROVIDED\$1EIPS means that public access is turned on. | 

### Rebalancing


Specifies whether or not intelligent rebalancing is turned on for a newly created MSK Provisioned cluster with Express brokers. Intelligent rebalancing performs automatic partition balancing operations when you scale your clusters up or down.

By default, intelligent rebalancing is `ACTIVE` for all new Express-based clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| status | [RebalancingStatus](#clusters-clusterarn-model-rebalancingstatus) | True | Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters. | 

### RebalancingStatus


Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters.
+ `PAUSED`
+ `ACTIVE`

### S3


The details of the Amazon S3 destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| bucket | string | False | The name of the S3 bucket that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Amazon S3 destination. | 
| prefix | string | False | The S3 prefix that is the destination for broker logs. | 

### Sasl


Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [IAM](#clusters-clusterarn-model-iam) | False | Details for ClientAuthentication using IAM. | 
| scram | [Scram](#clusters-clusterarn-model-scram) | False | Details for SASL/SCRAM client authentication. | 

### Scram


Details for SASL/SCRAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### StateInfo


Includes information about the state of the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| code | string | False | If the cluster is in an unusable state, this field contains the code that describes the issue. | 
| message | string | False | If the cluster is in an unusable state, this field contains a message that describes the issue. | 

### StorageInfo


Contains information about storage volumes attached to Amazon MSK broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| ebsStorageInfo | [EBSStorageInfo](#clusters-clusterarn-model-ebsstorageinfo) | False | EBS volume information. | 

### StorageMode


Controls storage mode for various supported storage tiers.
+ `LOCAL`
+ `TIERED`

### Tls


Details for client authentication using TLS.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| certificateAuthorityArnList | Array of type string | False | List of AWS Private CA Amazon Resource Name (ARN)s. | 
| enabled | boolean | False | TLS authentication is enabled or not. | 

### Unauthenticated


Details for allowing no client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Unauthenticated is enabled or not. | 

### VpcConnectivity


VPC connection control settings for brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientAuthentication | [VpcConnectivityClientAuthentication](#clusters-clusterarn-model-vpcconnectivityclientauthentication) | False | VPC connection control settings for brokers. | 

### VpcConnectivityClientAuthentication


Includes all client authentication information for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [VpcConnectivitySasl](#clusters-clusterarn-model-vpcconnectivitysasl) | False | Details for VpcConnectivity ClientAuthentication using SASL. | 
| tls | [VpcConnectivityTls](#clusters-clusterarn-model-vpcconnectivitytls) | False | Details for VpcConnectivity ClientAuthentication using TLS. | 

### VpcConnectivityIAM


Details for SASL/IAM client authentication for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### VpcConnectivitySasl


Details for client authentication using SASL for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [VpcConnectivityIAM](#clusters-clusterarn-model-vpcconnectivityiam) | False | Details for ClientAuthentication using IAM for VpcConnectivity. | 
| scram | [VpcConnectivityScram](#clusters-clusterarn-model-vpcconnectivityscram) | False | Details for SASL/SCRAM client authentication for VpcConnectivity. | 

### VpcConnectivityScram


Details for SASL/SCRAM client authentication for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### VpcConnectivityTls


Details for client authentication using TLS for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | TLS authentication is enabled or not. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### DescribeCluster

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DescribeCluster)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DescribeCluster)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DescribeCluster)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DescribeCluster)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DescribeCluster)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DescribeCluster)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DescribeCluster)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DescribeCluster)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DescribeCluster)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DescribeCluster)

### DeleteCluster

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DeleteCluster)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DeleteCluster)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DeleteCluster)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DeleteCluster)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DeleteCluster)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DeleteCluster)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DeleteCluster)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DeleteCluster)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DeleteCluster)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DeleteCluster)

# Cluster Apache Kafka Version


The Apache Kafka version that is on the cluster.

## URI


`/v1/clusters/clusterArn/version`

## HTTP methods


### PUT


**Operation ID:** `UpdateClusterKafkaVersion`

Updates the cluster to the specified Apache Kafka version. Before you invoke this operation, ensure that the number of partitions per broker on your MSK cluster is under the limits described in [Number of partitions per broker](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html#bestpractices-right-size-cluster). You can't update the Apache Kafka version for an MSK cluster that exceeds these limits.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateClusterKafkaVersionResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "targetKafkaVersion": "string",
  "configurationInfo": {
    "arn": "string",
    "revision": integer
  },
  "currentVersion": "string"
}
```

### Response bodies


#### UpdateClusterKafkaVersionResponse schema
UpdateClusterKafkaVersionResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### ConfigurationInfo


Specifies the configuration to use for the brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | True | ARN of the configuration to use. | 
| revision | integerFormat: int64Minimum: 1 | True | The revision of the configuration to use. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### UpdateClusterKafkaVersionRequest


Request body for UpdateClusterKafkaVersion.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| configurationInfo | [ConfigurationInfo](#clusters-clusterarn-version-model-configurationinfo) | False | The custom configuration that should be applied on the new version of cluster. | 
| currentVersion | string | True | Current cluster version. | 
| targetKafkaVersion | string | True | Target Apache Kafka version. | 

### UpdateClusterKafkaVersionResponse


Response body for UpdateClusterKafkaVersion.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateClusterKafkaVersion

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateClusterKafkaVersion)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateClusterKafkaVersion)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateClusterKafkaVersion)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateClusterKafkaVersion)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateClusterKafkaVersion)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateClusterKafkaVersion)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateClusterKafkaVersion)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateClusterKafkaVersion)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateClusterKafkaVersion)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateClusterKafkaVersion)

# Cluster Configuration


Represents the configuration of a specific cluster.

## URI


`/v1/clusters/clusterArn/configuration`

## HTTP methods


### PUT


**Operation ID:** `UpdateClusterConfiguration`

Updates the cluster with the configuration that is specified in the request body. Before you invoke this operation, ensure that the number of partitions per broker on your MSK cluster is under the limits described in [Number of partitions per broker](https://docs.aws.amazon.com/msk/latest/developerguide/bestpractices.html#bestpractices-right-size-cluster). You can't update the configuration of an MSK cluster that exceeds these limits.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateClusterConfigurationResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "configurationInfo": {
    "arn": "string",
    "revision": integer
  },
  "currentVersion": "string"
}
```

### Response bodies


#### UpdateClusterConfigurationResponse schema
UpdateClusterConfigurationResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### ConfigurationInfo


Specifies the configuration to use for the brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | True | ARN of the configuration to use. | 
| revision | integerFormat: int64Minimum: 1 | True | The revision of the configuration to use. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### UpdateClusterConfigurationRequest


Request body for UpdateClusterConfiguration.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| configurationInfo | [ConfigurationInfo](#clusters-clusterarn-configuration-model-configurationinfo) | True | Represents the configuration that you want MSK to use for the cluster. | 
| currentVersion | string | True | The version of the cluster that you want to update. | 

### UpdateClusterConfigurationResponse


Response body for UpdateClusterConfiguration.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateClusterConfiguration

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateClusterConfiguration)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateClusterConfiguration)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateClusterConfiguration)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateClusterConfiguration)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateClusterConfiguration)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateClusterConfiguration)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateClusterConfiguration)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateClusterConfiguration)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateClusterConfiguration)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateClusterConfiguration)

# Cluster Connectivity


Use this resource to update the connectivity setting for an MSK cluster.

## URI


`/v1/clusters/clusterArn/connectivity`

## HTTP methods


### PUT


**Operation ID:** `UpdateConnectivity`

Updates the connectivity setting for the cluster.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateConnectivityResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "connectivityInfo": {
    "vpcConnectivity": {
      "clientAuthentication": {
        "sasl": {
          "iam": {
            "enabled": boolean
          },
          "scram": {
            "enabled": boolean
          }
        },
        "tls": {
          "enabled": boolean
        }
      }
    },
    "publicAccess": {
      "type": "string"
    },
    "networkType": "string"
  },
  "currentVersion": "string"
}
```

### Response bodies


#### UpdateConnectivityResponse schema
UpdateConnectivityResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### ConnectivityInfo


Broker access controls.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| networkType | stringMinLength: 4MaxLength: 4 | False | The network type of the cluster, which is IPv4 or DUAL. The DUAL network type uses both IPv4 and IPv6 addresses for your cluster and its resources. By default, a cluster uses the IPv4 network type. | 
| publicAccess | [PublicAccess](#clusters-clusterarn-connectivity-model-publicaccess) | False | Access control settings for the cluster's brokers. | 
| vpcConnectivity | [VpcConnectivity](#clusters-clusterarn-connectivity-model-vpcconnectivity) | False | VPC connection control settings for brokers | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### PublicAccess


Broker access controls


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| type | string | False | DISABLED means that public access is turned off. SERVICE\$1PROVIDED\$1EIPS means that public access is turned on. | 

### UpdateConnectivityRequest


Request body for UpdateConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| connectivityInfo | [ConnectivityInfo](#clusters-clusterarn-connectivity-model-connectivityinfo) | True | The target connectivity setting for the cluster. | 
| currentVersion | string | True | The current version of the cluster. | 

### UpdateConnectivityResponse


Response body for UpdateConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

### VpcConnectivity


VPC connection control settings for brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientAuthentication | [VpcConnectivityClientAuthentication](#clusters-clusterarn-connectivity-model-vpcconnectivityclientauthentication) | False | VPC connection control settings for brokers. | 

### VpcConnectivityClientAuthentication


Includes all client authentication information for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [VpcConnectivitySasl](#clusters-clusterarn-connectivity-model-vpcconnectivitysasl) | False | Details for VpcConnectivity ClientAuthentication using SASL. | 
| tls | [VpcConnectivityTls](#clusters-clusterarn-connectivity-model-vpcconnectivitytls) | False | Details for VpcConnectivity ClientAuthentication using TLS. | 

### VpcConnectivityIAM


Details for SASL/IAM client authentication for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### VpcConnectivitySasl


Details for client authentication using SASL for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [VpcConnectivityIAM](#clusters-clusterarn-connectivity-model-vpcconnectivityiam) | False | Details for ClientAuthentication using IAM for VpcConnectivity. | 
| scram | [VpcConnectivityScram](#clusters-clusterarn-connectivity-model-vpcconnectivityscram) | False | Details for SASL/SCRAM client authentication for VpcConnectivity. | 

### VpcConnectivityScram


Details for SASL/SCRAM client authentication for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### VpcConnectivityTls


Details for client authentication using TLS for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | TLS authentication is enabled or not. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateConnectivity

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateConnectivity)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateConnectivity)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateConnectivity)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateConnectivity)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateConnectivity)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateConnectivity)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateConnectivity)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateConnectivity)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateConnectivity)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateConnectivity)

# Cluster Operation


Represents an operation that was performed on an MSK cluster.

## URI


`/v1/operations/clusterOperationArn`

## HTTP methods


### GET


**Operation ID:** `DescribeClusterOperation`

Returns a description of the cluster operation specified by the Amazon Resource Name (ARN).


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterOperationArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the MSK cluster operation. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DescribeClusterOperationResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterOperationArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the MSK cluster operation. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### DescribeClusterOperationResponse schema
DescribeClusterOperationResponse

```
{
  "clusterOperationInfo": {
    "clusterArn": "string",
    "creationTime": "string",
    "clientRequestId": "string",
    "operationState": "string",
    "sourceClusterInfo": {
      "encryptionInfo": {
        "encryptionInTransit": {
          "inCluster": boolean,
          "clientBroker": enum
        },
        "encryptionAtRest": {
          "dataVolumeKMSKeyId": "string"
        }
      },
      "configurationInfo": {
        "arn": "string",
        "revision": integer
      },
      "brokerCountUpdateInfo": {
        "createdBrokerIds": [
          number
        ],
        "deletedBrokerIds": [
          number
        ]
      },
      "instanceType": "string",
      "loggingInfo": {
        "brokerLogs": {
          "s3": {
            "bucket": "string",
            "prefix": "string",
            "enabled": boolean
          },
          "firehose": {
            "deliveryStream": "string",
            "enabled": boolean
          },
          "cloudWatchLogs": {
            "logGroup": "string",
            "enabled": boolean
          }
        }
      },
      "brokerEBSVolumeInfo": [
        {
          "volumeSizeGB": integer,
          "provisionedThroughput": {
            "volumeThroughput": integer,
            "enabled": boolean
          },
          "kafkaBrokerNodeId": "string"
        }
      ],
      "numberOfBrokerNodes": integer,
      "enhancedMonitoring": enum,
      "storageMode": enum,
      "kafkaVersion": "string",
      "connectivityInfo": {
        "vpcConnectivity": {
          "clientAuthentication": {
            "sasl": {
              "iam": {
                "enabled": boolean
              },
              "scram": {
                "enabled": boolean
              }
            },
            "tls": {
              "enabled": boolean
            }
          }
        },
        "publicAccess": {
          "type": "string"
        },
        "networkType": "string"
      },
      "clientAuthentication": {
        "sasl": {
          "iam": {
            "enabled": boolean
          },
          "scram": {
            "enabled": boolean
          }
        },
        "unauthenticated": {
          "enabled": boolean
        },
        "tls": {
          "certificateAuthorityArnList": [
            "string"
          ],
          "enabled": boolean
        }
      },
      "openMonitoring": {
        "prometheus": {
          "nodeExporter": {
            "enabledInBroker": boolean
          },
          "jmxExporter": {
            "enabledInBroker": boolean
          }
        }
      },
      "rebalancing": {
        "status": enum
      }
    },
    "errorInfo": {
      "errorString": "string",
      "errorCode": "string"
    },
    "vpcConnectionInfo": {
      "owner": "string",
      "vpcConnectionArn": "string",
      "creationTime": "string",
      "userIdentity": {
        "principalId": "string",
        "type": enum
      }
    },
    "operationType": "string",
    "endTime": "string",
    "operationSteps": [
      {
        "stepName": "string",
        "stepInfo": {
          "stepStatus": "string"
        }
      }
    ],
    "operationArn": "string",
    "targetClusterInfo": {
      "encryptionInfo": {
        "encryptionInTransit": {
          "inCluster": boolean,
          "clientBroker": enum
        },
        "encryptionAtRest": {
          "dataVolumeKMSKeyId": "string"
        }
      },
      "configurationInfo": {
        "arn": "string",
        "revision": integer
      },
      "brokerCountUpdateInfo": {
        "createdBrokerIds": [
          number
        ],
        "deletedBrokerIds": [
          number
        ]
      },
      "instanceType": "string",
      "loggingInfo": {
        "brokerLogs": {
          "s3": {
            "bucket": "string",
            "prefix": "string",
            "enabled": boolean
          },
          "firehose": {
            "deliveryStream": "string",
            "enabled": boolean
          },
          "cloudWatchLogs": {
            "logGroup": "string",
            "enabled": boolean
          }
        }
      },
      "brokerEBSVolumeInfo": [
        {
          "volumeSizeGB": integer,
          "provisionedThroughput": {
            "volumeThroughput": integer,
            "enabled": boolean
          },
          "kafkaBrokerNodeId": "string"
        }
      ],
      "numberOfBrokerNodes": integer,
      "enhancedMonitoring": enum,
      "storageMode": enum,
      "kafkaVersion": "string",
      "connectivityInfo": {
        "vpcConnectivity": {
          "clientAuthentication": {
            "sasl": {
              "iam": {
                "enabled": boolean
              },
              "scram": {
                "enabled": boolean
              }
            },
            "tls": {
              "enabled": boolean
            }
          }
        },
        "publicAccess": {
          "type": "string"
        },
        "networkType": "string"
      },
      "clientAuthentication": {
        "sasl": {
          "iam": {
            "enabled": boolean
          },
          "scram": {
            "enabled": boolean
          }
        },
        "unauthenticated": {
          "enabled": boolean
        },
        "tls": {
          "certificateAuthorityArnList": [
            "string"
          ],
          "enabled": boolean
        }
      },
      "openMonitoring": {
        "prometheus": {
          "nodeExporter": {
            "enabledInBroker": boolean
          },
          "jmxExporter": {
            "enabledInBroker": boolean
          }
        }
      },
      "rebalancing": {
        "status": enum
      }
    }
  }
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### BrokerCountUpdateInfo


Contains the list of broker ids being changed during a broker count update.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| createdBrokerIds | Array of type number | False | List of Kafka Broker IDs being created. If operation is INCREASE\$1BROKER\$1COUNT, the list contains numeric ids of brokers added by the operation. | 
| deletedBrokerIds | Array of type number | False | List of Kafka Broker IDs being deleted. If operation is DECREASE\$1BROKER\$1COUNT, the list contains numeric ids of brokers removed by the operation. | 

### BrokerEBSVolumeInfo


Specifies the EBS volume upgrade information. The broker identifier must be set to the keyword `ALL`. This means the changes apply to all the brokers in the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| kafkaBrokerNodeId | string | True | The ID of the broker to update. The only allowed value is `ALL`. This means that Amazon MSK applies the same storage update to all broker nodes. | 
| provisionedThroughput | [ProvisionedThroughput](#operations-clusteroperationarn-model-provisionedthroughput) | False | EBS volume provisioned throughput information. | 
| volumeSizeGB | integer | False | Size of the EBS volume to update. | 

### BrokerLogs


The broker logs configuration for this MSK cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| cloudWatchLogs | [CloudWatchLogs](#operations-clusteroperationarn-model-cloudwatchlogs) | False | Details of the CloudWatch Logs destination for broker logs. | 
| firehose | [Firehose](#operations-clusteroperationarn-model-firehose) | False | Details of the Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| s3 | [S3](#operations-clusteroperationarn-model-s3) | False | Details of the Amazon S3 destination for broker logs. | 

### ClientAuthentication


Includes all client authentication information.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [Sasl](#operations-clusteroperationarn-model-sasl) | False | Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true. | 
| tls | [Tls](#operations-clusteroperationarn-model-tls) | False | Details for ClientAuthentication using TLS. To turn on TLS access control, you must also turn on `EncryptionInTransit` by setting `inCluster` to true and `clientBroker` to `TLS`. | 
| unauthenticated | [Unauthenticated](#operations-clusteroperationarn-model-unauthenticated) | False | Details for ClientAuthentication using no authentication. | 

### ClientBroker


Client-broker encryption in transit setting.
+ `TLS`
+ `TLS_PLAINTEXT`
+ `PLAINTEXT`

### CloudWatchLogs


Details of the CloudWatch Logs destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | True | Specifies whether broker logs get sent to the specified CloudWatch Logs destination. | 
| logGroup | string | False | The CloudWatch log group that is the destination for broker logs. | 

### ClusterOperationInfo


Returns information about a cluster operation.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientRequestId | string | False | The ID of the API request that triggered this operation. | 
| clusterArn | string | False | ARN of the cluster. | 
| creationTime | string | False | The time that the operation was created. | 
| endTime | string | False | The time at which the operation finished. | 
| errorInfo | [ErrorInfo](#operations-clusteroperationarn-model-errorinfo) | False | Describes the error if the operation fails. | 
| operationArn | string | False | ARN of the cluster operation. | 
| operationState | string | False | State of the cluster operation. | 
| operationSteps | Array of type [ClusterOperationStep](#operations-clusteroperationarn-model-clusteroperationstep) | False | Steps completed during the operation. | 
| operationType | string | False | Type of the cluster operation. | 
| sourceClusterInfo | [MutableClusterInfo](#operations-clusteroperationarn-model-mutableclusterinfo) | False | Information about cluster attributes before a cluster is updated. | 
| targetClusterInfo | [MutableClusterInfo](#operations-clusteroperationarn-model-mutableclusterinfo) | False | Information about cluster attributes after a cluster is updated. | 
| vpcConnectionInfo | [VpcConnectionInfo](#operations-clusteroperationarn-model-vpcconnectioninfo) | False | Description of the VPC connection for CreateVpcConnection and DeleteVpcConnection operations. | 

### ClusterOperationStep


Step taken during a cluster operation.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| stepInfo | [ClusterOperationStepInfo](#operations-clusteroperationarn-model-clusteroperationstepinfo) | False | Information about the step and its status. | 
| stepName | string | False | The name of the step. | 

### ClusterOperationStepInfo


Information about a step in an operation.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| stepStatus | string | False | The step's current status. | 

### ConfigurationInfo


Specifies the configuration to use for the brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | True | ARN of the configuration to use. | 
| revision | integerFormat: int64Minimum: 1 | True | The revision of the configuration to use. | 

### ConnectivityInfo


Broker access controls.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| networkType | stringMinLength: 4MaxLength: 4 | False | The network type of the cluster, which is IPv4 or DUAL. The DUAL network type uses both IPv4 and IPv6 addresses for your cluster and its resources. By default, a cluster uses the IPv4 network type. | 
| publicAccess | [PublicAccess](#operations-clusteroperationarn-model-publicaccess) | False | Access control settings for the cluster's brokers. | 
| vpcConnectivity | [VpcConnectivity](#operations-clusteroperationarn-model-vpcconnectivity) | False | VPC connection control settings for brokers | 

### DescribeClusterOperationResponse


Information about a cluster operation.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterOperationInfo | [ClusterOperationInfo](#operations-clusteroperationarn-model-clusteroperationinfo) | False | Cluster operation information | 

### EncryptionAtRest


The data-volume encryption details. You can't update encryption at rest settings for existing clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| dataVolumeKMSKeyId | string | True | The Amazon Resource Name (ARN) of the Amazon KMS key for encrypting data at rest. If you don't specify a KMS key, MSK creates one for you and uses it. | 

### EncryptionInTransit


The settings for encrypting data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientBroker | [ClientBroker](#operations-clusteroperationarn-model-clientbroker) | False | Indicates the encryption setting for data in transit between clients and brokers. You must set it to one of the following values. `TLS` means that client-broker communication is enabled with TLS only. `TLS_PLAINTEXT` means that client-broker communication is enabled for both TLS-encrypted, as well as plaintext data. `PLAINTEXT` means that client-broker communication is enabled in plaintext only.The default value is `TLS`. | 
| inCluster | boolean | False | When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.The default value is true. | 

### EncryptionInfo


Includes encryption-related information, such as the Amazon KMS key used for encrypting data at rest and whether you want MSK to encrypt your data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| encryptionAtRest | [EncryptionAtRest](#operations-clusteroperationarn-model-encryptionatrest) | False | The data-volume encryption details. | 
| encryptionInTransit | [EncryptionInTransit](#operations-clusteroperationarn-model-encryptionintransit) | False | The details for encryption in transit. | 

### EnhancedMonitoring


Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster. This property has three possible values: `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`. For a list of the metrics associated with each of these three levels of monitoring, see [Monitoring](https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html).
+ `DEFAULT`
+ `PER_BROKER`
+ `PER_TOPIC_PER_BROKER`
+ `PER_TOPIC_PER_PARTITION`

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ErrorInfo


Returns information about an error state of the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| errorCode | string | False | A number describing the error programmatically. | 
| errorString | string | False | An optional field to provide more details about the error. | 

### Firehose


Firehose details for BrokerLogs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| deliveryStream | string | False | The Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Kinesis Data Firehose delivery stream. | 

### IAM


Details for SASL/IAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### JmxExporter


Indicates whether you want to enable or disable the JMX Exporter.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Indicates whether you want to enable or disable the JMX Exporter. | 

### LoggingInfo


You can configure your MSK cluster to send broker logs to different destination types. This is a container for the configuration details related to broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerLogs | [BrokerLogs](#operations-clusteroperationarn-model-brokerlogs) | True | You can configure your MSK cluster to send broker logs to different destination types. This configuration specifies the details of these destinations. | 

### MutableClusterInfo


Information about cluster attributes that can be updated via update APIs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerCountUpdateInfo | [BrokerCountUpdateInfo](#operations-clusteroperationarn-model-brokercountupdateinfo) | False | Describes brokers being changed during a broker count update. | 
| brokerEBSVolumeInfo | Array of type [BrokerEBSVolumeInfo](#operations-clusteroperationarn-model-brokerebsvolumeinfo) | False | Specifies the size of the EBS volume and the ID of the associated broker. | 
| clientAuthentication | [ClientAuthentication](#operations-clusteroperationarn-model-clientauthentication) | False | Client Authentication details. | 
| configurationInfo | [ConfigurationInfo](#operations-clusteroperationarn-model-configurationinfo) | False | Information about the changes in the configuration of the brokers. | 
| connectivityInfo | [ConnectivityInfo](#operations-clusteroperationarn-model-connectivityinfo) | False | Defines the connectivity setting of the cluster. | 
| encryptionInfo | [EncryptionInfo](#operations-clusteroperationarn-model-encryptioninfo) | False | Encryption details. | 
| enhancedMonitoring | [EnhancedMonitoring](#operations-clusteroperationarn-model-enhancedmonitoring) | False | The monitoring level. | 
| instanceType | string | False | The broker type. | 
| kafkaVersion | string | False | The Apache Kafka version. | 
| loggingInfo | [LoggingInfo](#operations-clusteroperationarn-model-logginginfo) | False | LoggingInfo details. | 
| numberOfBrokerNodes | integer | False | The number of broker nodes in the cluster. | 
| openMonitoring | [OpenMonitoring](#operations-clusteroperationarn-model-openmonitoring) | False | Open monitoring details. | 
| rebalancing | [Rebalancing](#operations-clusteroperationarn-model-rebalancing) | False | Specifies if intelligent rebalancing is turned on for your cluster. The default intelligent rebalancing status is `ACTIVE` for all new MSK Provisioned clusters that you create with Express brokers. | 
| storageMode | [StorageMode](#operations-clusteroperationarn-model-storagemode) | False | This controls storage mode for supported storage tiers. | 

### NodeExporter


Indicates whether you want to enable or disable the Node Exporter.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Indicates whether you want to enable or disable the Node Exporter. | 

### OpenMonitoring


JMX and Node monitoring for the MSK cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| prometheus | [Prometheus](#operations-clusteroperationarn-model-prometheus) | True | Prometheus exporter settings. | 

### Prometheus


Prometheus settings for open monitoring.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| jmxExporter | [JmxExporter](#operations-clusteroperationarn-model-jmxexporter) | False | Indicates whether you want to enable or disable the JMX Exporter. | 
| nodeExporter | [NodeExporter](#operations-clusteroperationarn-model-nodeexporter) | False | Indicates whether you want to enable or disable the Node Exporter. | 

### ProvisionedThroughput


Contains information about provisioned throughput for EBS storage volumes attached to kafka broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Provisioned throughput is enabled or not. | 
| volumeThroughput | integer | False | Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. | 

### PublicAccess


Broker access controls


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| type | string | False | DISABLED means that public access is turned off. SERVICE\$1PROVIDED\$1EIPS means that public access is turned on. | 

### Rebalancing


Specifies whether or not intelligent rebalancing is turned on for a newly created MSK Provisioned cluster with Express brokers. Intelligent rebalancing performs automatic partition balancing operations when you scale your clusters up or down.

By default, intelligent rebalancing is `ACTIVE` for all new Express-based clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| status | [RebalancingStatus](#operations-clusteroperationarn-model-rebalancingstatus) | True | Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters. | 

### RebalancingStatus


Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters.
+ `PAUSED`
+ `ACTIVE`

### S3


The details of the Amazon S3 destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| bucket | string | False | The name of the S3 bucket that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Amazon S3 destination. | 
| prefix | string | False | The S3 prefix that is the destination for broker logs. | 

### Sasl


Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [IAM](#operations-clusteroperationarn-model-iam) | False | Details for ClientAuthentication using IAM. | 
| scram | [Scram](#operations-clusteroperationarn-model-scram) | False | Details for SASL/SCRAM client authentication. | 

### Scram


Details for SASL/SCRAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### StorageMode


Controls storage mode for various supported storage tiers.
+ `LOCAL`
+ `TIERED`

### Tls


Details for client authentication using TLS.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| certificateAuthorityArnList | Array of type string | False | List of AWS Private CA Amazon Resource Name (ARN)s. | 
| enabled | boolean | False | TLS authentication is enabled or not. | 

### Unauthenticated


Details for allowing no client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Unauthenticated is enabled or not. | 

### UserIdentity


Description of the requester that calls the API operation.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| principalId | string | False | A unique identifier for the requester that calls the API operation. | 
| type | [UserIdentityType](#operations-clusteroperationarn-model-useridentitytype) | False | The identity type of the requester that calls the API operation. | 

### UserIdentityType


The identity type of the requester that calls the API operation.
+ `AWSAccount`
+ `AWSService`

### VpcConnectionInfo


Description of the VPC connection.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| creationTime | string | False | The time when Amazon MSK creates the VPC Connnection. | 
| owner | string | False | The owner of the VPC Connection. | 
| userIdentity | [UserIdentity](#operations-clusteroperationarn-model-useridentity) | False | Description of the requester that calls the API operation. | 
| vpcConnectionArn | string | False | The Amazon Resource Name (ARN) of the VPC connection. | 

### VpcConnectivity


VPC connection control settings for brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientAuthentication | [VpcConnectivityClientAuthentication](#operations-clusteroperationarn-model-vpcconnectivityclientauthentication) | False | VPC connection control settings for brokers. | 

### VpcConnectivityClientAuthentication


Includes all client authentication information for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [VpcConnectivitySasl](#operations-clusteroperationarn-model-vpcconnectivitysasl) | False | Details for VpcConnectivity ClientAuthentication using SASL. | 
| tls | [VpcConnectivityTls](#operations-clusteroperationarn-model-vpcconnectivitytls) | False | Details for VpcConnectivity ClientAuthentication using TLS. | 

### VpcConnectivityIAM


Details for SASL/IAM client authentication for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### VpcConnectivitySasl


Details for client authentication using SASL for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [VpcConnectivityIAM](#operations-clusteroperationarn-model-vpcconnectivityiam) | False | Details for ClientAuthentication using IAM for VpcConnectivity. | 
| scram | [VpcConnectivityScram](#operations-clusteroperationarn-model-vpcconnectivityscram) | False | Details for SASL/SCRAM client authentication for VpcConnectivity. | 

### VpcConnectivityScram


Details for SASL/SCRAM client authentication for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### VpcConnectivityTls


Details for client authentication using TLS for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | TLS authentication is enabled or not. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### DescribeClusterOperation

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DescribeClusterOperation)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DescribeClusterOperation)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DescribeClusterOperation)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DescribeClusterOperation)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DescribeClusterOperation)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DescribeClusterOperation)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DescribeClusterOperation)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DescribeClusterOperation)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DescribeClusterOperation)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DescribeClusterOperation)

# Cluster Operations


Represents the operations that have been performed on an MSK cluster.

## URI


`/v1/clusters/clusterArn/operations`

## HTTP methods


### GET


**Operation ID:** `ListClusterOperations`

Returns a list of all the operations that have been performed on the specified MSK cluster.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListClusterOperationsResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### ListClusterOperationsResponse schema
ListClusterOperationsResponse

```
{
  "nextToken": "string",
  "clusterOperationInfoList": [
    {
      "clusterArn": "string",
      "creationTime": "string",
      "clientRequestId": "string",
      "operationState": "string",
      "sourceClusterInfo": {
        "encryptionInfo": {
          "encryptionInTransit": {
            "inCluster": boolean,
            "clientBroker": enum
          },
          "encryptionAtRest": {
            "dataVolumeKMSKeyId": "string"
          }
        },
        "configurationInfo": {
          "arn": "string",
          "revision": integer
        },
        "brokerCountUpdateInfo": {
          "createdBrokerIds": [
            number
          ],
          "deletedBrokerIds": [
            number
          ]
        },
        "instanceType": "string",
        "loggingInfo": {
          "brokerLogs": {
            "s3": {
              "bucket": "string",
              "prefix": "string",
              "enabled": boolean
            },
            "firehose": {
              "deliveryStream": "string",
              "enabled": boolean
            },
            "cloudWatchLogs": {
              "logGroup": "string",
              "enabled": boolean
            }
          }
        },
        "brokerEBSVolumeInfo": [
          {
            "volumeSizeGB": integer,
            "provisionedThroughput": {
              "volumeThroughput": integer,
              "enabled": boolean
            },
            "kafkaBrokerNodeId": "string"
          }
        ],
        "numberOfBrokerNodes": integer,
        "enhancedMonitoring": enum,
        "storageMode": enum,
        "kafkaVersion": "string",
        "connectivityInfo": {
          "vpcConnectivity": {
            "clientAuthentication": {
              "sasl": {
                "iam": {
                  "enabled": boolean
                },
                "scram": {
                  "enabled": boolean
                }
              },
              "tls": {
                "enabled": boolean
              }
            }
          },
          "publicAccess": {
            "type": "string"
          },
          "networkType": "string"
        },
        "clientAuthentication": {
          "sasl": {
            "iam": {
              "enabled": boolean
            },
            "scram": {
              "enabled": boolean
            }
          },
          "unauthenticated": {
            "enabled": boolean
          },
          "tls": {
            "certificateAuthorityArnList": [
              "string"
            ],
            "enabled": boolean
          }
        },
        "openMonitoring": {
          "prometheus": {
            "nodeExporter": {
              "enabledInBroker": boolean
            },
            "jmxExporter": {
              "enabledInBroker": boolean
            }
          }
        },
        "rebalancing": {
          "status": enum
        }
      },
      "errorInfo": {
        "errorString": "string",
        "errorCode": "string"
      },
      "vpcConnectionInfo": {
        "owner": "string",
        "vpcConnectionArn": "string",
        "creationTime": "string",
        "userIdentity": {
          "principalId": "string",
          "type": enum
        }
      },
      "operationType": "string",
      "endTime": "string",
      "operationSteps": [
        {
          "stepName": "string",
          "stepInfo": {
            "stepStatus": "string"
          }
        }
      ],
      "operationArn": "string",
      "targetClusterInfo": {
        "encryptionInfo": {
          "encryptionInTransit": {
            "inCluster": boolean,
            "clientBroker": enum
          },
          "encryptionAtRest": {
            "dataVolumeKMSKeyId": "string"
          }
        },
        "configurationInfo": {
          "arn": "string",
          "revision": integer
        },
        "brokerCountUpdateInfo": {
          "createdBrokerIds": [
            number
          ],
          "deletedBrokerIds": [
            number
          ]
        },
        "instanceType": "string",
        "loggingInfo": {
          "brokerLogs": {
            "s3": {
              "bucket": "string",
              "prefix": "string",
              "enabled": boolean
            },
            "firehose": {
              "deliveryStream": "string",
              "enabled": boolean
            },
            "cloudWatchLogs": {
              "logGroup": "string",
              "enabled": boolean
            }
          }
        },
        "brokerEBSVolumeInfo": [
          {
            "volumeSizeGB": integer,
            "provisionedThroughput": {
              "volumeThroughput": integer,
              "enabled": boolean
            },
            "kafkaBrokerNodeId": "string"
          }
        ],
        "numberOfBrokerNodes": integer,
        "enhancedMonitoring": enum,
        "storageMode": enum,
        "kafkaVersion": "string",
        "connectivityInfo": {
          "vpcConnectivity": {
            "clientAuthentication": {
              "sasl": {
                "iam": {
                  "enabled": boolean
                },
                "scram": {
                  "enabled": boolean
                }
              },
              "tls": {
                "enabled": boolean
              }
            }
          },
          "publicAccess": {
            "type": "string"
          },
          "networkType": "string"
        },
        "clientAuthentication": {
          "sasl": {
            "iam": {
              "enabled": boolean
            },
            "scram": {
              "enabled": boolean
            }
          },
          "unauthenticated": {
            "enabled": boolean
          },
          "tls": {
            "certificateAuthorityArnList": [
              "string"
            ],
            "enabled": boolean
          }
        },
        "openMonitoring": {
          "prometheus": {
            "nodeExporter": {
              "enabledInBroker": boolean
            },
            "jmxExporter": {
              "enabledInBroker": boolean
            }
          }
        },
        "rebalancing": {
          "status": enum
        }
      }
    }
  ]
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### BrokerCountUpdateInfo


Contains the list of broker ids being changed during a broker count update.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| createdBrokerIds | Array of type number | False | List of Kafka Broker IDs being created. If operation is INCREASE\$1BROKER\$1COUNT, the list contains numeric ids of brokers added by the operation. | 
| deletedBrokerIds | Array of type number | False | List of Kafka Broker IDs being deleted. If operation is DECREASE\$1BROKER\$1COUNT, the list contains numeric ids of brokers removed by the operation. | 

### BrokerEBSVolumeInfo


Specifies the EBS volume upgrade information. The broker identifier must be set to the keyword `ALL`. This means the changes apply to all the brokers in the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| kafkaBrokerNodeId | string | True | The ID of the broker to update. The only allowed value is `ALL`. This means that Amazon MSK applies the same storage update to all broker nodes. | 
| provisionedThroughput | [ProvisionedThroughput](#clusters-clusterarn-operations-model-provisionedthroughput) | False | EBS volume provisioned throughput information. | 
| volumeSizeGB | integer | False | Size of the EBS volume to update. | 

### BrokerLogs


The broker logs configuration for this MSK cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| cloudWatchLogs | [CloudWatchLogs](#clusters-clusterarn-operations-model-cloudwatchlogs) | False | Details of the CloudWatch Logs destination for broker logs. | 
| firehose | [Firehose](#clusters-clusterarn-operations-model-firehose) | False | Details of the Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| s3 | [S3](#clusters-clusterarn-operations-model-s3) | False | Details of the Amazon S3 destination for broker logs. | 

### ClientAuthentication


Includes all client authentication information.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [Sasl](#clusters-clusterarn-operations-model-sasl) | False | Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true. | 
| tls | [Tls](#clusters-clusterarn-operations-model-tls) | False | Details for ClientAuthentication using TLS. To turn on TLS access control, you must also turn on `EncryptionInTransit` by setting `inCluster` to true and `clientBroker` to `TLS`. | 
| unauthenticated | [Unauthenticated](#clusters-clusterarn-operations-model-unauthenticated) | False | Details for ClientAuthentication using no authentication. | 

### ClientBroker


Client-broker encryption in transit setting.
+ `TLS`
+ `TLS_PLAINTEXT`
+ `PLAINTEXT`

### CloudWatchLogs


Details of the CloudWatch Logs destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | True | Specifies whether broker logs get sent to the specified CloudWatch Logs destination. | 
| logGroup | string | False | The CloudWatch log group that is the destination for broker logs. | 

### ClusterOperationInfo


Returns information about a cluster operation.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientRequestId | string | False | The ID of the API request that triggered this operation. | 
| clusterArn | string | False | ARN of the cluster. | 
| creationTime | string | False | The time that the operation was created. | 
| endTime | string | False | The time at which the operation finished. | 
| errorInfo | [ErrorInfo](#clusters-clusterarn-operations-model-errorinfo) | False | Describes the error if the operation fails. | 
| operationArn | string | False | ARN of the cluster operation. | 
| operationState | string | False | State of the cluster operation. | 
| operationSteps | Array of type [ClusterOperationStep](#clusters-clusterarn-operations-model-clusteroperationstep) | False | Steps completed during the operation. | 
| operationType | string | False | Type of the cluster operation. | 
| sourceClusterInfo | [MutableClusterInfo](#clusters-clusterarn-operations-model-mutableclusterinfo) | False | Information about cluster attributes before a cluster is updated. | 
| targetClusterInfo | [MutableClusterInfo](#clusters-clusterarn-operations-model-mutableclusterinfo) | False | Information about cluster attributes after a cluster is updated. | 
| vpcConnectionInfo | [VpcConnectionInfo](#clusters-clusterarn-operations-model-vpcconnectioninfo) | False | Description of the VPC connection for CreateVpcConnection and DeleteVpcConnection operations. | 

### ClusterOperationStep


Step taken during a cluster operation.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| stepInfo | [ClusterOperationStepInfo](#clusters-clusterarn-operations-model-clusteroperationstepinfo) | False | Information about the step and its status. | 
| stepName | string | False | The name of the step. | 

### ClusterOperationStepInfo


Information about a step in an operation.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| stepStatus | string | False | The step's current status. | 

### ConfigurationInfo


Specifies the configuration to use for the brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | True | ARN of the configuration to use. | 
| revision | integerFormat: int64Minimum: 1 | True | The revision of the configuration to use. | 

### ConnectivityInfo


Broker access controls.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| networkType | stringMinLength: 4MaxLength: 4 | False | The network type of the cluster, which is IPv4 or DUAL. The DUAL network type uses both IPv4 and IPv6 addresses for your cluster and its resources. By default, a cluster uses the IPv4 network type. | 
| publicAccess | [PublicAccess](#clusters-clusterarn-operations-model-publicaccess) | False | Access control settings for the cluster's brokers. | 
| vpcConnectivity | [VpcConnectivity](#clusters-clusterarn-operations-model-vpcconnectivity) | False | VPC connection control settings for brokers | 

### EncryptionAtRest


The data-volume encryption details. You can't update encryption at rest settings for existing clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| dataVolumeKMSKeyId | string | True | The Amazon Resource Name (ARN) of the Amazon KMS key for encrypting data at rest. If you don't specify a KMS key, MSK creates one for you and uses it. | 

### EncryptionInTransit


The settings for encrypting data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientBroker | [ClientBroker](#clusters-clusterarn-operations-model-clientbroker) | False | Indicates the encryption setting for data in transit between clients and brokers. You must set it to one of the following values. `TLS` means that client-broker communication is enabled with TLS only. `TLS_PLAINTEXT` means that client-broker communication is enabled for both TLS-encrypted, as well as plaintext data. `PLAINTEXT` means that client-broker communication is enabled in plaintext only.The default value is `TLS`. | 
| inCluster | boolean | False | When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.The default value is true. | 

### EncryptionInfo


Includes encryption-related information, such as the Amazon KMS key used for encrypting data at rest and whether you want MSK to encrypt your data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| encryptionAtRest | [EncryptionAtRest](#clusters-clusterarn-operations-model-encryptionatrest) | False | The data-volume encryption details. | 
| encryptionInTransit | [EncryptionInTransit](#clusters-clusterarn-operations-model-encryptionintransit) | False | The details for encryption in transit. | 

### EnhancedMonitoring


Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster. This property has three possible values: `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`. For a list of the metrics associated with each of these three levels of monitoring, see [Monitoring](https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html).
+ `DEFAULT`
+ `PER_BROKER`
+ `PER_TOPIC_PER_BROKER`
+ `PER_TOPIC_PER_PARTITION`

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ErrorInfo


Returns information about an error state of the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| errorCode | string | False | A number describing the error programmatically. | 
| errorString | string | False | An optional field to provide more details about the error. | 

### Firehose


Firehose details for BrokerLogs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| deliveryStream | string | False | The Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Kinesis Data Firehose delivery stream. | 

### IAM


Details for SASL/IAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### JmxExporter


Indicates whether you want to enable or disable the JMX Exporter.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Indicates whether you want to enable or disable the JMX Exporter. | 

### ListClusterOperationsResponse


The response contains an array containing cluster operation information and a next token if the response is truncated. Displays operations of the type DECREASE\$1BROKER\$1COUNT in results list (after a successful broker removal operation). 


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterOperationInfoList | Array of type [ClusterOperationInfo](#clusters-clusterarn-operations-model-clusteroperationinfo) | False | An array of cluster operation information objects. | 
| nextToken | string | False | If the response of ListClusterOperations is truncated, Amazon MSK returns a NextToken in the response. Send this NextToken in your subsequent request to ListClusterOperations. | 

### LoggingInfo


You can configure your MSK cluster to send broker logs to different destination types. This is a container for the configuration details related to broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerLogs | [BrokerLogs](#clusters-clusterarn-operations-model-brokerlogs) | True | You can configure your MSK cluster to send broker logs to different destination types. This configuration specifies the details of these destinations. | 

### MutableClusterInfo


Information about cluster attributes that can be updated via update APIs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerCountUpdateInfo | [BrokerCountUpdateInfo](#clusters-clusterarn-operations-model-brokercountupdateinfo) | False | Describes brokers being changed during a broker count update. | 
| brokerEBSVolumeInfo | Array of type [BrokerEBSVolumeInfo](#clusters-clusterarn-operations-model-brokerebsvolumeinfo) | False | Specifies the size of the EBS volume and the ID of the associated broker. | 
| clientAuthentication | [ClientAuthentication](#clusters-clusterarn-operations-model-clientauthentication) | False | Client Authentication details. | 
| configurationInfo | [ConfigurationInfo](#clusters-clusterarn-operations-model-configurationinfo) | False | Information about the changes in the configuration of the brokers. | 
| connectivityInfo | [ConnectivityInfo](#clusters-clusterarn-operations-model-connectivityinfo) | False | Defines the connectivity setting of the cluster. | 
| encryptionInfo | [EncryptionInfo](#clusters-clusterarn-operations-model-encryptioninfo) | False | Encryption details. | 
| enhancedMonitoring | [EnhancedMonitoring](#clusters-clusterarn-operations-model-enhancedmonitoring) | False | The monitoring level. | 
| instanceType | string | False | The broker type. | 
| kafkaVersion | string | False | The Apache Kafka version. | 
| loggingInfo | [LoggingInfo](#clusters-clusterarn-operations-model-logginginfo) | False | LoggingInfo details. | 
| numberOfBrokerNodes | integer | False | The number of broker nodes in the cluster. | 
| openMonitoring | [OpenMonitoring](#clusters-clusterarn-operations-model-openmonitoring) | False | Open monitoring details. | 
| rebalancing | [Rebalancing](#clusters-clusterarn-operations-model-rebalancing) | False | Specifies if intelligent rebalancing is turned on for your cluster. The default intelligent rebalancing status is `ACTIVE` for all new MSK Provisioned clusters that you create with Express brokers. | 
| storageMode | [StorageMode](#clusters-clusterarn-operations-model-storagemode) | False | This controls storage mode for supported storage tiers. | 

### NodeExporter


Indicates whether you want to enable or disable the Node Exporter.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Indicates whether you want to enable or disable the Node Exporter. | 

### OpenMonitoring


JMX and Node monitoring for the MSK cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| prometheus | [Prometheus](#clusters-clusterarn-operations-model-prometheus) | True | Prometheus exporter settings. | 

### Prometheus


Prometheus settings for open monitoring.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| jmxExporter | [JmxExporter](#clusters-clusterarn-operations-model-jmxexporter) | False | Indicates whether you want to enable or disable the JMX Exporter. | 
| nodeExporter | [NodeExporter](#clusters-clusterarn-operations-model-nodeexporter) | False | Indicates whether you want to enable or disable the Node Exporter. | 

### ProvisionedThroughput


Contains information about provisioned throughput for EBS storage volumes attached to kafka broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Provisioned throughput is enabled or not. | 
| volumeThroughput | integer | False | Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. | 

### PublicAccess


Broker access controls


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| type | string | False | DISABLED means that public access is turned off. SERVICE\$1PROVIDED\$1EIPS means that public access is turned on. | 

### Rebalancing


Specifies whether or not intelligent rebalancing is turned on for a newly created MSK Provisioned cluster with Express brokers. Intelligent rebalancing performs automatic partition balancing operations when you scale your clusters up or down.

By default, intelligent rebalancing is `ACTIVE` for all new Express-based clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| status | [RebalancingStatus](#clusters-clusterarn-operations-model-rebalancingstatus) | True | Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters. | 

### RebalancingStatus


Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters.
+ `PAUSED`
+ `ACTIVE`

### S3


The details of the Amazon S3 destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| bucket | string | False | The name of the S3 bucket that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Amazon S3 destination. | 
| prefix | string | False | The S3 prefix that is the destination for broker logs. | 

### Sasl


Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [IAM](#clusters-clusterarn-operations-model-iam) | False | Details for ClientAuthentication using IAM. | 
| scram | [Scram](#clusters-clusterarn-operations-model-scram) | False | Details for SASL/SCRAM client authentication. | 

### Scram


Details for SASL/SCRAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### StorageMode


Controls storage mode for various supported storage tiers.
+ `LOCAL`
+ `TIERED`

### Tls


Details for client authentication using TLS.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| certificateAuthorityArnList | Array of type string | False | List of AWS Private CA Amazon Resource Name (ARN)s. | 
| enabled | boolean | False | TLS authentication is enabled or not. | 

### Unauthenticated


Details for allowing no client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Unauthenticated is enabled or not. | 

### UserIdentity


Description of the requester that calls the API operation.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| principalId | string | False | A unique identifier for the requester that calls the API operation. | 
| type | [UserIdentityType](#clusters-clusterarn-operations-model-useridentitytype) | False | The identity type of the requester that calls the API operation. | 

### UserIdentityType


The identity type of the requester that calls the API operation.
+ `AWSAccount`
+ `AWSService`

### VpcConnectionInfo


Description of the VPC connection.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| creationTime | string | False | The time when Amazon MSK creates the VPC Connnection. | 
| owner | string | False | The owner of the VPC Connection. | 
| userIdentity | [UserIdentity](#clusters-clusterarn-operations-model-useridentity) | False | Description of the requester that calls the API operation. | 
| vpcConnectionArn | string | False | The Amazon Resource Name (ARN) of the VPC connection. | 

### VpcConnectivity


VPC connection control settings for brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientAuthentication | [VpcConnectivityClientAuthentication](#clusters-clusterarn-operations-model-vpcconnectivityclientauthentication) | False | VPC connection control settings for brokers. | 

### VpcConnectivityClientAuthentication


Includes all client authentication information for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [VpcConnectivitySasl](#clusters-clusterarn-operations-model-vpcconnectivitysasl) | False | Details for VpcConnectivity ClientAuthentication using SASL. | 
| tls | [VpcConnectivityTls](#clusters-clusterarn-operations-model-vpcconnectivitytls) | False | Details for VpcConnectivity ClientAuthentication using TLS. | 

### VpcConnectivityIAM


Details for SASL/IAM client authentication for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### VpcConnectivitySasl


Details for client authentication using SASL for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [VpcConnectivityIAM](#clusters-clusterarn-operations-model-vpcconnectivityiam) | False | Details for ClientAuthentication using IAM for VpcConnectivity. | 
| scram | [VpcConnectivityScram](#clusters-clusterarn-operations-model-vpcconnectivityscram) | False | Details for SASL/SCRAM client authentication for VpcConnectivity. | 

### VpcConnectivityScram


Details for SASL/SCRAM client authentication for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### VpcConnectivityTls


Details for client authentication using TLS for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | TLS authentication is enabled or not. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListClusterOperations

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListClusterOperations)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListClusterOperations)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListClusterOperations)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListClusterOperations)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListClusterOperations)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListClusterOperations)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListClusterOperations)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListClusterOperations)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListClusterOperations)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListClusterOperations)

# Cluster Security


Use this resource to update the security settings of a cluster.

## URI


`/v1/clusters/clusterArn/security`

## HTTP methods


### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

### PATCH


**Operation ID:** `UpdateSecurity`

Updates security settings of the specified cluster.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateSecurityResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

## Schemas


### Request bodies


#### PATCH schema
PATCH

```
{
  "encryptionInfo": {
    "encryptionInTransit": {
      "inCluster": boolean,
      "clientBroker": enum
    },
    "encryptionAtRest": {
      "dataVolumeKMSKeyId": "string"
    }
  },
  "clientAuthentication": {
    "sasl": {
      "iam": {
        "enabled": boolean
      },
      "scram": {
        "enabled": boolean
      }
    },
    "unauthenticated": {
      "enabled": boolean
    },
    "tls": {
      "certificateAuthorityArnList": [
        "string"
      ],
      "enabled": boolean
    }
  },
  "currentVersion": "string"
}
```

### Response bodies


#### UpdateSecurityResponse schema
UpdateSecurityResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### ClientAuthentication


Includes all client authentication information.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [Sasl](#clusters-clusterarn-security-model-sasl) | False | Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true. | 
| tls | [Tls](#clusters-clusterarn-security-model-tls) | False | Details for ClientAuthentication using TLS. To turn on TLS access control, you must also turn on `EncryptionInTransit` by setting `inCluster` to true and `clientBroker` to `TLS`. | 
| unauthenticated | [Unauthenticated](#clusters-clusterarn-security-model-unauthenticated) | False | Details for ClientAuthentication using no authentication. | 

### ClientBroker


Client-broker encryption in transit setting.
+ `TLS`
+ `TLS_PLAINTEXT`
+ `PLAINTEXT`

### EncryptionAtRest


The data-volume encryption details. You can't update encryption at rest settings for existing clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| dataVolumeKMSKeyId | string | True | The Amazon Resource Name (ARN) of the Amazon KMS key for encrypting data at rest. If you don't specify a KMS key, MSK creates one for you and uses it. | 

### EncryptionInTransit


The settings for encrypting data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientBroker | [ClientBroker](#clusters-clusterarn-security-model-clientbroker) | False | Indicates the encryption setting for data in transit between clients and brokers. You must set it to one of the following values. `TLS` means that client-broker communication is enabled with TLS only. `TLS_PLAINTEXT` means that client-broker communication is enabled for both TLS-encrypted, as well as plaintext data. `PLAINTEXT` means that client-broker communication is enabled in plaintext only.The default value is `TLS`. | 
| inCluster | boolean | False | When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.The default value is true. | 

### EncryptionInfo


Includes encryption-related information, such as the Amazon KMS key used for encrypting data at rest and whether you want MSK to encrypt your data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| encryptionAtRest | [EncryptionAtRest](#clusters-clusterarn-security-model-encryptionatrest) | False | The data-volume encryption details. | 
| encryptionInTransit | [EncryptionInTransit](#clusters-clusterarn-security-model-encryptionintransit) | False | The details for encryption in transit. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### IAM


Details for SASL/IAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### Sasl


Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [IAM](#clusters-clusterarn-security-model-iam) | False | Details for ClientAuthentication using IAM. | 
| scram | [Scram](#clusters-clusterarn-security-model-scram) | False | Details for SASL/SCRAM client authentication. | 

### Scram


Details for SASL/SCRAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### Tls


Details for client authentication using TLS.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| certificateAuthorityArnList | Array of type string | False | List of AWS Private CA Amazon Resource Name (ARN)s. | 
| enabled | boolean | False | TLS authentication is enabled or not. | 

### Unauthenticated


Details for allowing no client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Unauthenticated is enabled or not. | 

### UpdateSecurityRequest


Request body for UpdateSecurity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientAuthentication | [ClientAuthentication](#clusters-clusterarn-security-model-clientauthentication) | False | The client authentication info details. | 
| currentVersion | string | True | Current cluster version. | 
| encryptionInfo | [EncryptionInfo](#clusters-clusterarn-security-model-encryptioninfo) | False | The encryption info details. | 

### UpdateSecurityResponse


Response body for UpdateSecurity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateSecurity

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateSecurity)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateSecurity)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateSecurity)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateSecurity)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateSecurity)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateSecurity)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateSecurity)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateSecurity)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateSecurity)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateSecurity)

# Clusters


Use this resource to create an Amazon MSK cluster and to get a list of existing clusters.

## URI


`/v1/clusters`

## HTTP methods


### GET


**Operation ID:** `ListClusters`

Returns a list of all the MSK clusters.


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| clusterNameFilter | String | False | Specify a prefix of the name of the clusters that you want to list. The service lists all the clusters whose names start with this prefix. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListClustersResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### POST


**Operation ID:** `CreateCluster`

Creates a new MSK cluster. The following Python 3.6 examples shows how you can create a cluster that's distributed over two Availability Zones. Before you run this Python script, replace the example subnet and security-group IDs with the IDs of your subnets and security group. When you create an MSK cluster, its brokers get evenly distributed over a number of Availability Zones that's equal to the number of subnets that you specify in the `BrokerNodeGroupInfo` parameter. In this example, you can add a third subnet to get a cluster that's distributed over three Availability Zones.

```
import boto3

client = boto3.client('kafka')

response = client.create_cluster(
    BrokerNodeGroupInfo={
        'BrokerAZDistribution': 'DEFAULT',
        'ClientSubnets': [
            'subnet-012345678901fedcba',
            'subnet-9876543210abcdef01'
        ],
        'InstanceType': 'kafka.m5.large',
        'SecurityGroups': [
            'sg-012345abcdef789789'
        ]
    },
    ClusterName='SalesCluster',
    EncryptionInfo={
        'EncryptionInTransit': {
            'ClientBroker': 'TLS_PLAINTEXT',
            'InCluster': True
        }
    },
    EnhancedMonitoring='PER_TOPIC_PER_BROKER',
    KafkaVersion='2.2.1',
    NumberOfBrokerNodes=2
)

print(response)
```


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  CreateClusterResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 409 | Error | This cluster name already exists. Retry your request using another name. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers.


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | The default response for a CORS method. | 

## Schemas


### Request bodies


#### POST schema
POST

```
{
  "encryptionInfo": {
    "encryptionInTransit": {
      "inCluster": boolean,
      "clientBroker": enum
    },
    "encryptionAtRest": {
      "dataVolumeKMSKeyId": "string"
    }
  },
  "configurationInfo": {
    "arn": "string",
    "revision": integer
  },
  "loggingInfo": {
    "brokerLogs": {
      "s3": {
        "bucket": "string",
        "prefix": "string",
        "enabled": boolean
      },
      "firehose": {
        "deliveryStream": "string",
        "enabled": boolean
      },
      "cloudWatchLogs": {
        "logGroup": "string",
        "enabled": boolean
      }
    }
  },
  "tags": {
  },
  "numberOfBrokerNodes": integer,
  "enhancedMonitoring": enum,
  "storageMode": enum,
  "clusterName": "string",
  "kafkaVersion": "string",
  "clientAuthentication": {
    "sasl": {
      "iam": {
        "enabled": boolean
      },
      "scram": {
        "enabled": boolean
      }
    },
    "unauthenticated": {
      "enabled": boolean
    },
    "tls": {
      "certificateAuthorityArnList": [
        "string"
      ],
      "enabled": boolean
    }
  },
  "brokerNodeGroupInfo": {
    "clientSubnets": [
      "string"
    ],
    "zoneIds": [
      "string"
    ],
    "instanceType": "string",
    "connectivityInfo": {
      "vpcConnectivity": {
        "clientAuthentication": {
          "sasl": {
            "iam": {
              "enabled": boolean
            },
            "scram": {
              "enabled": boolean
            }
          },
          "tls": {
            "enabled": boolean
          }
        }
      },
      "publicAccess": {
        "type": "string"
      },
      "networkType": "string"
    },
    "securityGroups": [
      "string"
    ],
    "brokerAZDistribution": enum,
    "storageInfo": {
      "ebsStorageInfo": {
        "provisionedThroughput": {
          "volumeThroughput": integer,
          "enabled": boolean
        },
        "volumeSize": integer
      }
    }
  },
  "openMonitoring": {
    "prometheus": {
      "nodeExporter": {
        "enabledInBroker": boolean
      },
      "jmxExporter": {
        "enabledInBroker": boolean
      }
    }
  },
  "rebalancing": {
    "status": enum
  }
}
```

### Response bodies


#### ListClustersResponse schema
ListClustersResponse

```
{
  "nextToken": "string",
  "clusterInfoList": [
    {
      "encryptionInfo": {
        "encryptionInTransit": {
          "inCluster": boolean,
          "clientBroker": enum
        },
        "encryptionAtRest": {
          "dataVolumeKMSKeyId": "string"
        }
      },
      "zookeeperConnectString": "string",
      "customerActionStatus": enum,
      "creationTime": "string",
      "zookeeperConnectStringTls": "string",
      "loggingInfo": {
        "brokerLogs": {
          "s3": {
            "bucket": "string",
            "prefix": "string",
            "enabled": boolean
          },
          "firehose": {
            "deliveryStream": "string",
            "enabled": boolean
          },
          "cloudWatchLogs": {
            "logGroup": "string",
            "enabled": boolean
          }
        }
      },
      "currentVersion": "string",
      "tags": {
      },
      "numberOfBrokerNodes": integer,
      "clusterArn": "string",
      "activeOperationArn": "string",
      "enhancedMonitoring": enum,
      "clusterName": "string",
      "storageMode": enum,
      "stateInfo": {
        "code": "string",
        "message": "string"
      },
      "clientAuthentication": {
        "sasl": {
          "iam": {
            "enabled": boolean
          },
          "scram": {
            "enabled": boolean
          }
        },
        "unauthenticated": {
          "enabled": boolean
        },
        "tls": {
          "certificateAuthorityArnList": [
            "string"
          ],
          "enabled": boolean
        }
      },
      "state": enum,
      "brokerNodeGroupInfo": {
        "clientSubnets": [
          "string"
        ],
        "zoneIds": [
          "string"
        ],
        "instanceType": "string",
        "connectivityInfo": {
          "vpcConnectivity": {
            "clientAuthentication": {
              "sasl": {
                "iam": {
                  "enabled": boolean
                },
                "scram": {
                  "enabled": boolean
                }
              },
              "tls": {
                "enabled": boolean
              }
            }
          },
          "publicAccess": {
            "type": "string"
          },
          "networkType": "string"
        },
        "securityGroups": [
          "string"
        ],
        "brokerAZDistribution": enum,
        "storageInfo": {
          "ebsStorageInfo": {
            "provisionedThroughput": {
              "volumeThroughput": integer,
              "enabled": boolean
            },
            "volumeSize": integer
          }
        }
      },
      "openMonitoring": {
        "prometheus": {
          "nodeExporter": {
            "enabledInBroker": boolean
          },
          "jmxExporter": {
            "enabledInBroker": boolean
          }
        }
      },
      "rebalancing": {
        "status": enum
      },
      "currentBrokerSoftwareInfo": {
        "configurationRevision": integer,
        "kafkaVersion": "string",
        "configurationArn": "string"
      }
    }
  ]
}
```

#### CreateClusterResponse schema
CreateClusterResponse

```
{
  "clusterArn": "string",
  "clusterName": "string",
  "state": enum
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### BrokerAZDistribution


This parameter is currently not in use.
+ `DEFAULT`

### BrokerLogs


The broker logs configuration for this MSK cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| cloudWatchLogs | [CloudWatchLogs](#clusters-model-cloudwatchlogs) | False | Details of the CloudWatch Logs destination for broker logs. | 
| firehose | [Firehose](#clusters-model-firehose) | False | Details of the Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| s3 | [S3](#clusters-model-s3) | False | Details of the Amazon S3 destination for broker logs. | 

### BrokerNodeGroupInfo


Describes the setup to be used for the broker nodes in the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerAZDistribution | [BrokerAZDistribution](#clusters-model-brokerazdistribution) | False | This parameter is currently not in use. | 
| clientSubnets | Array of type string | True | The list of subnets to connect to in the client virtual private cloud (VPC). Amazon creates elastic network interfaces inside these subnets. Client applications use elastic network interfaces to produce and consume data. If you use the US West (N. California) Region, specify exactly two subnets. For other Regions where Amazon MSK is available, you can specify either two or three subnets. The subnets that you specify must be in distinct Availability Zones. When you create a cluster, Amazon MSK distributes the broker nodes evenly across the subnets that you specify.Client subnets can't occupy the Availability Zone with ID `use1-az3`. | 
| connectivityInfo | [ConnectivityInfo](#clusters-model-connectivityinfo) | False | Information about the cluster's connectivity setting. | 
| instanceType | stringMinLength: 5MaxLength: 32 | True | The type of Amazon EC2 instances to use for brokers. The following instance types are allowed: kafka.m5.large, kafka.m5.xlarge, kafka.m5.2xlarge, kafka.m5.4xlarge, kafka.m5.8xlarge, kafka.m5.12xlarge, kafka.m5.16xlarge, and kafka.m5.24xlarge. | 
| securityGroups | Array of type string | False | The security groups to associate with the elastic network interfaces in order to specify who can connect to and communicate with the Amazon MSK cluster. If you don't specify a security group, Amazon MSK uses the default security group associated with the VPC. If you specify security groups that were shared with you, you must ensure that you have permissions to them. Specifically, you need the `ec2:DescribeSecurityGroups` permission. | 
| storageInfo | [StorageInfo](#clusters-model-storageinfo) | False | Contains information about storage volumes attached to Amazon MSK broker nodes. | 
| zoneIds | Array of type string | False | The zoneIds for brokers in customer account. | 

### BrokerSoftwareInfo


Information about the current software installed on the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| configurationArn | string | False | The Amazon Resource Name (ARN) of the configuration used for the cluster. This field isn't visible in this preview release. | 
| configurationRevision | integerFormat: int64 | False | The revision of the configuration to use. This field isn't visible in this preview release. | 
| kafkaVersion | string | False | The version of Apache Kafka. You can use Amazon MSK to create clusters that use Apache Kafka versions 1.1.1 and 2.2.1. See [Apache Kafka Versions](kafka-versions.md). | 

### ClientAuthentication


Includes all client authentication information.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [Sasl](#clusters-model-sasl) | False | Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true. | 
| tls | [Tls](#clusters-model-tls) | False | Details for ClientAuthentication using TLS. To turn on TLS access control, you must also turn on `EncryptionInTransit` by setting `inCluster` to true and `clientBroker` to `TLS`. | 
| unauthenticated | [Unauthenticated](#clusters-model-unauthenticated) | False | Details for ClientAuthentication using no authentication. | 

### ClientBroker


Client-broker encryption in transit setting.
+ `TLS`
+ `TLS_PLAINTEXT`
+ `PLAINTEXT`

### CloudWatchLogs


Details of the CloudWatch Logs destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | True | Specifies whether broker logs get sent to the specified CloudWatch Logs destination. | 
| logGroup | string | False | The CloudWatch log group that is the destination for broker logs. | 

### ClusterInfo


Returns information about a cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| activeOperationArn | string | False | Arn of active cluster operation. | 
| brokerNodeGroupInfo | [BrokerNodeGroupInfo](#clusters-model-brokernodegroupinfo) | False | Information about the broker nodes. | 
| clientAuthentication | [ClientAuthentication](#clusters-model-clientauthentication) | False | Includes all client authentication information. | 
| clusterArn | string | False | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 
| clusterName | string | False | The name of the cluster. | 
| creationTime | string | False | The time when the cluster was created. | 
| currentBrokerSoftwareInfo | [BrokerSoftwareInfo](#clusters-model-brokersoftwareinfo) | False | Information about the version of software currently deployed on the brokers in the cluster. | 
| currentVersion | string | False | The current version of the MSK cluster. Cluster versions aren't simple integers. You can obtain the current version by describing the cluster. An example version is `KTVPDKIKX0DER`. | 
| customerActionStatus | [CustomerActionStatus](#clusters-model-customeractionstatus) | False | Determines if there is an action required from the customer. | 
| encryptionInfo | [EncryptionInfo](#clusters-model-encryptioninfo) | False | Includes all encryption-related information. | 
| enhancedMonitoring | [EnhancedMonitoring](#clusters-model-enhancedmonitoring) | False | Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster. This property has three possible values: `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`. For a list of the metrics associated with each of these three levels of monitoring, see [Monitoring](https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html). | 
| loggingInfo | [LoggingInfo](#clusters-model-logginginfo) | False | You can configure your MSK cluster to send broker logs to different destination types. This is a container for the configuration details related to broker logs. | 
| numberOfBrokerNodes | integer | False | The number of broker nodes in the cluster. | 
| openMonitoring | [OpenMonitoring](#clusters-model-openmonitoring) | False | Settings for open monitoring using Prometheus. | 
| rebalancing | [Rebalancing](#clusters-model-rebalancing) | False | Specifies if intelligent rebalancing is turned on for your MSK Provisioned cluster with Express brokers. For all new Express-based clusters that you create, intelligent rebalancing is turned on by default. | 
| state | [ClusterState](#clusters-model-clusterstate) | False | The state of the cluster. Amazon MSK automatically renews certificates on clusters every 13 months. It sets the state of the cluster to `MAINTENANCE` when it starts the certificate-update operation. It sets it back to `ACTIVE` when the update is done. While a cluster is in the `MAINTENANCE` state, you can continue to produce and consume data, but you can't perform any update operations on it. You can perform update operations on a cluster when it is in the `ACTIVE` state. | 
| stateInfo | [StateInfo](#clusters-model-stateinfo) | False | Includes information of the cluster state. | 
| storageMode | [StorageMode](#clusters-model-storagemode) | False | This controls storage mode for supported storage tiers. | 
| tags | object | False | Tags attached to the cluster. | 
| zookeeperConnectString | string | False | The connection string to use to connect to zookeeper cluster on plaintext port. | 
| zookeeperConnectStringTls | string | False | The connection string to use to connect to the Apache ZooKeeper cluster on a TLS port. | 

### ClusterState


The state of the cluster. Amazon MSK automatically renews certificates on clusters every 13 months. It sets the state of the cluster to `MAINTENANCE` when it starts the certificate-update operation. It sets it back to `ACTIVE` when the update is done. While a cluster is in the `MAINTENANCE` state, you can continue to produce and consume data, but you can't perform any update operations on it. You can perform update operations on a cluster when it is in the `ACTIVE` state.
+ `ACTIVE`
+ `CREATING`
+ `UPDATING`
+ `DELETING`
+ `FAILED`
+ `MAINTENANCE`
+ `REBOOTING_BROKER`
+ `HEALING`

### ConfigurationInfo


Specifies the configuration to use for the brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | True | ARN of the configuration to use. | 
| revision | integerFormat: int64Minimum: 1 | True | The revision of the configuration to use. | 

### ConnectivityInfo


Broker access controls.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| networkType | stringMinLength: 4MaxLength: 4 | False | The network type of the cluster, which is IPv4 or DUAL. The DUAL network type uses both IPv4 and IPv6 addresses for your cluster and its resources. By default, a cluster uses the IPv4 network type. | 
| publicAccess | [PublicAccess](#clusters-model-publicaccess) | False | Access control settings for the cluster's brokers. | 
| vpcConnectivity | [VpcConnectivity](#clusters-model-vpcconnectivity) | False | VPC connection control settings for brokers | 

### CreateClusterRequest


Creates a cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerNodeGroupInfo | [BrokerNodeGroupInfo](#clusters-model-brokernodegroupinfo) | True | Information about the broker nodes in the cluster. | 
| clientAuthentication | [ClientAuthentication](#clusters-model-clientauthentication) | False | Includes all client authentication related information. | 
| clusterName | stringMinLength: 1MaxLength: 64 | True | The name of the cluster. | 
| configurationInfo | [ConfigurationInfo](#clusters-model-configurationinfo) | False | Represents the configuration that you want MSK to use for the cluster. | 
| encryptionInfo | [EncryptionInfo](#clusters-model-encryptioninfo) | False | Includes all encryption-related information. | 
| enhancedMonitoring | [EnhancedMonitoring](#clusters-model-enhancedmonitoring) | False | Specifies the level of monitoring for the MSK cluster. The possible values are `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`. | 
| kafkaVersion | stringMinLength: 1MaxLength: 128 | True | The version of Apache Kafka. You can use Amazon MSK to create clusters that use Apache Kafka versions 1.1.1 and 2.2.1. See [Apache Kafka Versions](kafka-versions.md). | 
| loggingInfo | [LoggingInfo](#clusters-model-logginginfo) | False | Logging Info details. | 
| numberOfBrokerNodes | integer | True | The number of broker nodes in the cluster. | 
| openMonitoring | [OpenMonitoringInfo](#clusters-model-openmonitoringinfo) | False | The settings for open monitoring. | 
| rebalancing | [Rebalancing](#clusters-model-rebalancing) | False | Specifies if intelligent rebalancing should be turned on for a new MSK Provisioned cluster with Express brokers. For all new Express-based clusters that you create, intelligent rebalancing is turned on by default. | 
| storageMode | [StorageMode](#clusters-model-storagemode) | False | This controls storage mode for supported storage tiers. | 
| tags | object | False | Create tags when creating the cluster. | 

### CreateClusterResponse


Returns information about the created cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterName | string | False | The name of the MSK cluster. | 
| state | [ClusterState](#clusters-model-clusterstate) | False | The state of the cluster. Amazon MSK automatically renews certificates on clusters every 13 months. It sets the state of the cluster to `MAINTENANCE` when it starts the certificate-update operation. It sets it back to `ACTIVE` when the update is done. While a cluster is in the `MAINTENANCE` state, you can continue to produce and consume data, but you can't perform any update operations on it. You can perform update operations on a cluster when it is in the `ACTIVE` state. | 

### CustomerActionStatus


A type of an action required from the customer.
+ `CRITICAL_ACTION_REQUIRED`
+ `ACTION_RECOMMENDED`
+ `NONE`

### EBSStorageInfo


Contains information about the EBS storage volumes attached to the broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| provisionedThroughput | [ProvisionedThroughput](#clusters-model-provisionedthroughput) | False | EBS volume provisioned throughput information. | 
| volumeSize | integerMinimum: 1Maximum: 16384 | False | The size in GiB of the EBS volume for the data drive on each broker node. | 

### EncryptionAtRest


The data-volume encryption details. You can't update encryption at rest settings for existing clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| dataVolumeKMSKeyId | string | True | The Amazon Resource Name (ARN) of the Amazon KMS key for encrypting data at rest. If you don't specify a KMS key, MSK creates one for you and uses it. | 

### EncryptionInTransit


The settings for encrypting data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientBroker | [ClientBroker](#clusters-model-clientbroker) | False | Indicates the encryption setting for data in transit between clients and brokers. You must set it to one of the following values. `TLS` means that client-broker communication is enabled with TLS only. `TLS_PLAINTEXT` means that client-broker communication is enabled for both TLS-encrypted, as well as plaintext data. `PLAINTEXT` means that client-broker communication is enabled in plaintext only.The default value is `TLS`. | 
| inCluster | boolean | False | When set to true, it indicates that data communication among the broker nodes of the cluster is encrypted. When set to false, the communication happens in plaintext.The default value is true. | 

### EncryptionInfo


Includes encryption-related information, such as the Amazon KMS key used for encrypting data at rest and whether you want MSK to encrypt your data in transit.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| encryptionAtRest | [EncryptionAtRest](#clusters-model-encryptionatrest) | False | The data-volume encryption details. | 
| encryptionInTransit | [EncryptionInTransit](#clusters-model-encryptionintransit) | False | The details for encryption in transit. | 

### EnhancedMonitoring


Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster. This property has three possible values: `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`. For a list of the metrics associated with each of these three levels of monitoring, see [Monitoring](https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html).
+ `DEFAULT`
+ `PER_BROKER`
+ `PER_TOPIC_PER_BROKER`
+ `PER_TOPIC_PER_PARTITION`

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### Firehose


Firehose details for BrokerLogs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| deliveryStream | string | False | The Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Kinesis Data Firehose delivery stream. | 

### IAM


Details for SASL/IAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### JmxExporter


Indicates whether you want to enable or disable the JMX Exporter.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Indicates whether you want to enable or disable the JMX Exporter. | 

### JmxExporterInfo


JMX Exporter details.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | JMX Exporter being enabled in broker. | 

### ListClustersResponse


The response contains an array containing cluster information and a next token if the response is truncated.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterInfoList | Array of type [ClusterInfo](#clusters-model-clusterinfo) | False | Information on each of the MSK clusters in the response. | 
| nextToken | string | False | The paginated results marker. When the result of a `ListClusters` operation is truncated, the call returns `NextToken` in the response. To get another batch of clusters, provide this token in your next request. | 

### LoggingInfo


You can configure your MSK cluster to send broker logs to different destination types. This is a container for the configuration details related to broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerLogs | [BrokerLogs](#clusters-model-brokerlogs) | True | You can configure your MSK cluster to send broker logs to different destination types. This configuration specifies the details of these destinations. | 

### NodeExporter


Indicates whether you want to enable or disable the Node Exporter.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Indicates whether you want to enable or disable the Node Exporter. | 

### NodeExporterInfo


Node Exporter details.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Node Exporter being enabled in broker. | 

### OpenMonitoring


JMX and Node monitoring for the MSK cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| prometheus | [Prometheus](#clusters-model-prometheus) | True | Prometheus exporter settings. | 

### OpenMonitoringInfo


JMX and Node monitoring for cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| prometheus | [PrometheusInfo](#clusters-model-prometheusinfo) | True | Prometheus details. | 

### Prometheus


Prometheus settings for open monitoring.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| jmxExporter | [JmxExporter](#clusters-model-jmxexporter) | False | Indicates whether you want to enable or disable the JMX Exporter. | 
| nodeExporter | [NodeExporter](#clusters-model-nodeexporter) | False | Indicates whether you want to enable or disable the Node Exporter. | 

### PrometheusInfo


Prometheus details.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| jmxExporter | [JmxExporterInfo](#clusters-model-jmxexporterinfo) | False | JMX Exporter details. | 
| nodeExporter | [NodeExporterInfo](#clusters-model-nodeexporterinfo) | False | Node Exporter details. | 

### ProvisionedThroughput


Contains information about provisioned throughput for EBS storage volumes attached to kafka broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Provisioned throughput is enabled or not. | 
| volumeThroughput | integer | False | Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. | 

### PublicAccess


Broker access controls


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| type | string | False | DISABLED means that public access is turned off. SERVICE\$1PROVIDED\$1EIPS means that public access is turned on. | 

### Rebalancing


Specifies whether or not intelligent rebalancing is turned on for a newly created MSK Provisioned cluster with Express brokers. Intelligent rebalancing performs automatic partition balancing operations when you scale your clusters up or down.

By default, intelligent rebalancing is `ACTIVE` for all new Express-based clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| status | [RebalancingStatus](#clusters-model-rebalancingstatus) | True | Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters. | 

### RebalancingStatus


Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters.
+ `PAUSED`
+ `ACTIVE`

### S3


The details of the Amazon S3 destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| bucket | string | False | The name of the S3 bucket that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Amazon S3 destination. | 
| prefix | string | False | The S3 prefix that is the destination for broker logs. | 

### Sasl


Details for client authentication using SASL. To turn on SASL, you must also turn on `EncryptionInTransit` by setting `inCluster` to true. You must set `clientBroker` to either `TLS` or `TLS_PLAINTEXT`. If you choose `TLS_PLAINTEXT`, then you must also set `unauthenticated` to true.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [IAM](#clusters-model-iam) | False | Details for ClientAuthentication using IAM. | 
| scram | [Scram](#clusters-model-scram) | False | Details for SASL/SCRAM client authentication. | 

### Scram


Details for SASL/SCRAM client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### StateInfo


Includes information about the state of the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| code | string | False | If the cluster is in an unusable state, this field contains the code that describes the issue. | 
| message | string | False | If the cluster is in an unusable state, this field contains a message that describes the issue. | 

### StorageInfo


Contains information about storage volumes attached to Amazon MSK broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| ebsStorageInfo | [EBSStorageInfo](#clusters-model-ebsstorageinfo) | False | EBS volume information. | 

### StorageMode


Controls storage mode for various supported storage tiers.
+ `LOCAL`
+ `TIERED`

### Tls


Details for client authentication using TLS.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| certificateAuthorityArnList | Array of type string | False | List of AWS Private CA Amazon Resource Name (ARN)s. | 
| enabled | boolean | False | TLS authentication is enabled or not. | 

### Unauthenticated


Details for allowing no client authentication.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Unauthenticated is enabled or not. | 

### VpcConnectivity


VPC connection control settings for brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientAuthentication | [VpcConnectivityClientAuthentication](#clusters-model-vpcconnectivityclientauthentication) | False | VPC connection control settings for brokers. | 

### VpcConnectivityClientAuthentication


Includes all client authentication information for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sasl | [VpcConnectivitySasl](#clusters-model-vpcconnectivitysasl) | False | Details for VpcConnectivity ClientAuthentication using SASL. | 
| tls | [VpcConnectivityTls](#clusters-model-vpcconnectivitytls) | False | Details for VpcConnectivity ClientAuthentication using TLS. | 

### VpcConnectivityIAM


Details for SASL/IAM client authentication for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/IAM authentication is enabled or not. | 

### VpcConnectivitySasl


Details for client authentication using SASL for VpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| iam | [VpcConnectivityIAM](#clusters-model-vpcconnectivityiam) | False | Details for ClientAuthentication using IAM for VpcConnectivity. | 
| scram | [VpcConnectivityScram](#clusters-model-vpcconnectivityscram) | False | Details for SASL/SCRAM client authentication for VpcConnectivity. | 

### VpcConnectivityScram


Details for SASL/SCRAM client authentication for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | SASL/SCRAM authentication is enabled or not. | 

### VpcConnectivityTls


Details for client authentication using TLS for vpcConnectivity.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | TLS authentication is enabled or not. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListClusters

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListClusters)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListClusters)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListClusters)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListClusters)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListClusters)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListClusters)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListClusters)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListClusters)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListClusters)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListClusters)

### CreateCluster

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/CreateCluster)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/CreateCluster)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/CreateCluster)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/CreateCluster)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/CreateCluster)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/CreateCluster)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/CreateCluster)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/CreateCluster)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/CreateCluster)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/CreateCluster)

# Clusters clusterArn Client-vpc-connection


## URI


`/v1/clusters/clusterArn/client-vpc-connection`

## HTTP methods


### PUT


**Operation ID:** `RejectClientVpcConnection`

Reject client VPC connection.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  RejectClientVpcConnectionResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning correct headers.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "vpcConnectionArn": "string"
}
```

### Response bodies


#### RejectClientVpcConnectionResponse schema
RejectClientVpcConnectionResponse

```
{
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### RejectClientVpcConnectionRequest


Reject VPC Connection


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| vpcConnectionArn | stringMinLength: 1 | True | VPC Connection Amazon Resource Name (ARN). | 

### RejectClientVpcConnectionResponse


Blocks client connections connecting to the cluster

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### RejectClientVpcConnection

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/RejectClientVpcConnection)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/RejectClientVpcConnection)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/RejectClientVpcConnection)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/RejectClientVpcConnection)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/RejectClientVpcConnection)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/RejectClientVpcConnection)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/RejectClientVpcConnection)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/RejectClientVpcConnection)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/RejectClientVpcConnection)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/RejectClientVpcConnection)

# Clusters clusterArn Client-vpc-connections


## URI


`/v1/clusters/clusterArn/client-vpc-connections`

## HTTP methods


### GET


**Operation ID:** `ListClientVpcConnections`

List client VPC connections.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListClientVpcConnectionsResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning correct headers.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### ListClientVpcConnectionsResponse schema
ListClientVpcConnectionsResponse

```
{
  "clientVpcConnections": [
    {
      "owner": "string",
      "vpcConnectionArn": "string",
      "creationTime": "string",
      "state": enum,
      "authentication": "string"
    }
  ],
  "nextToken": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### ClientVpcConnection


VPC Connection description


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| authentication | string | False | The type of private link authentication. | 
| creationTime | string | False | The time which the VPC Connnection is created. | 
| owner | string | False | The Owner of the VPC Connection. | 
| state | [VpcConnectionState](#clusters-clusterarn-client-vpc-connections-model-vpcconnectionstate) | False | State of the Remote VPC Connection. | 
| vpcConnectionArn | string | True | The Amazon Resource Name (ARN) of the Remote VPC. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ListClientVpcConnectionsResponse


The response contains an array vpc connections.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clientVpcConnections | Array of type [ClientVpcConnection](#clusters-clusterarn-client-vpc-connections-model-clientvpcconnection) | False | An array of client vpc connections information objects. | 
| nextToken | string | False | If the response of ListClientVpcConnections is truncated, it returns a NextToken in the response. This Nexttoken should be sent in the subsequent request to ListClientVpcConnections. | 

### VpcConnectionState


State of the vpc connection
+ `CREATING`
+ `AVAILABLE`
+ `INACTIVE`
+ `UPDATING`
+ `DEACTIVATING`
+ `DELETING`
+ `FAILED`
+ `REJECTED`
+ `REJECTING`

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListClientVpcConnections

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListClientVpcConnections)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListClientVpcConnections)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListClientVpcConnections)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListClientVpcConnections)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListClientVpcConnections)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListClientVpcConnections)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListClientVpcConnections)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListClientVpcConnections)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListClientVpcConnections)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListClientVpcConnections)

# Clusters clusterArn Policy


## URI


`/v1/clusters/clusterArn/policy`

## HTTP methods


### GET


**Operation ID:** `GetClusterPolicy`

Get cluster policy.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  GetClusterPolicyResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### PUT


**Operation ID:** `PutClusterPolicy`

Create or update cluster policy.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  PutClusterPolicyResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### DELETE


**Operation ID:** `DeleteClusterPolicy`

Delete cluster policy.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DeleteClusterPolicyResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning correct headers.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "currentVersion": "string",
  "policy": "string"
}
```

### Response bodies


#### GetClusterPolicyResponse schema
GetClusterPolicyResponse

```
{
  "currentVersion": "string",
  "policy": "string"
}
```

#### PutClusterPolicyResponse schema
PutClusterPolicyResponse

```
{
  "currentVersion": "string"
}
```

#### DeleteClusterPolicyResponse schema
DeleteClusterPolicyResponse

```
{
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### DeleteClusterPolicyResponse


Delete resource policy for MSK cluster

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### GetClusterPolicyResponse


Returns resource policy for MSK cluster


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | string | False | Resource policy version | 
| policy | string | False | Resource policy attached to the MSK cluster | 

### PutClusterPolicyRequest


Create or update resource policy for cluster


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | stringMinLength: 1 | False | Current cluster policy version. | 
| policy | stringMinLength: 1MaxLength: 20480 | True | Resource policy for cluster | 

### PutClusterPolicyResponse


Create or update cluster policy


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | string | False | Resource policy version | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### GetClusterPolicy

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/GetClusterPolicy)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/GetClusterPolicy)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/GetClusterPolicy)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/GetClusterPolicy)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/GetClusterPolicy)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/GetClusterPolicy)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/GetClusterPolicy)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/GetClusterPolicy)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/GetClusterPolicy)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/GetClusterPolicy)

### PutClusterPolicy

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/PutClusterPolicy)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/PutClusterPolicy)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/PutClusterPolicy)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/PutClusterPolicy)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/PutClusterPolicy)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/PutClusterPolicy)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/PutClusterPolicy)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/PutClusterPolicy)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/PutClusterPolicy)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/PutClusterPolicy)

### DeleteClusterPolicy

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DeleteClusterPolicy)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DeleteClusterPolicy)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DeleteClusterPolicy)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DeleteClusterPolicy)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DeleteClusterPolicy)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DeleteClusterPolicy)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DeleteClusterPolicy)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DeleteClusterPolicy)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DeleteClusterPolicy)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DeleteClusterPolicy)

# Clusters clusterArn Rebalancing


## URI


`/v1/clusters/clusterArn/rebalancing`

## HTTP methods


### PUT


**Operation ID:** `UpdateRebalancing`

Use this resource to update the intelligent rebalancing status of an Amazon MSK Provisioned cluster with Express brokers.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateRebalancingResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Use this resource to update the intelligent rebalancing status of an Amazon MSK Provisioned cluster with Express brokers.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "currentVersion": "string",
  "rebalancing": {
    "status": enum
  }
}
```

### Response bodies


#### UpdateRebalancingResponse schema
UpdateRebalancingResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### Rebalancing


Specifies whether or not intelligent rebalancing is turned on for a newly created MSK Provisioned cluster with Express brokers. Intelligent rebalancing performs automatic partition balancing operations when you scale your clusters up or down.

By default, intelligent rebalancing is `ACTIVE` for all new Express-based clusters.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| status | [RebalancingStatus](#clusters-clusterarn-rebalancing-model-rebalancingstatus) | True | Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters. | 

### RebalancingStatus


Intelligent rebalancing status. The default intelligent rebalancing status is `ACTIVE` for all new Express-based clusters.
+ `PAUSED`
+ `ACTIVE`

### UpdateRebalancingRequest


Updates the intelligent rebalancing status for a new MSK Provisioned cluster with Express brokers.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | string | True | The current version of the cluster. | 
| rebalancing | [Rebalancing](#clusters-clusterarn-rebalancing-model-rebalancing) | True | Specifies if intelligent rebalancing should be turned on for your cluster. The default intelligent rebalancing status is `ACTIVE` for all new MSK Provisioned clusters that you create with Express brokers. | 

### UpdateRebalancingResponse


Provides information about the intelligent rebalancing update for a cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster whose intelligent rebalancing status you've updated. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateRebalancing

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateRebalancing)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateRebalancing)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateRebalancing)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateRebalancing)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateRebalancing)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateRebalancing)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateRebalancing)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateRebalancing)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateRebalancing)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateRebalancing)

# Compatible Apache Kafka Versions


The Apache Kafka versions to which you can update the cluster.

## URI


`/v1/compatible-kafka-versions`

## HTTP methods


### GET


**Operation ID:** `GetCompatibleKafkaVersions`

Returns a list of the Apache Kafka versions to which you can update this cluster.


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | False | The Amazon Resource Name (ARN) of the cluster check. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  GetCompatibleKafkaVersionsResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### GetCompatibleKafkaVersionsResponse schema
GetCompatibleKafkaVersionsResponse

```
{
  "compatibleKafkaVersions": [
    {
      "sourceVersion": "string",
      "targetVersions": [
        "string"
      ]
    }
  ]
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### CompatibleKafkaVersion


Contains source Apache Kafka versions and compatible target Apache Kafka versions.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| sourceVersion | string | False | An Apache Kafka version. | 
| targetVersions | Array of type string | False | A list of Apache Kafka versions. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### GetCompatibleKafkaVersionsResponse


Response body for GetCompatibleKafkaVersions.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| compatibleKafkaVersions | Array of type [CompatibleKafkaVersion](#compatible-kafka-versions-model-compatiblekafkaversion) | False | A list of CompatibleKafkaVersion objects. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### GetCompatibleKafkaVersions

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/GetCompatibleKafkaVersions)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/GetCompatibleKafkaVersions)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/GetCompatibleKafkaVersions)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/GetCompatibleKafkaVersions)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/GetCompatibleKafkaVersions)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/GetCompatibleKafkaVersions)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/GetCompatibleKafkaVersions)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/GetCompatibleKafkaVersions)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/GetCompatibleKafkaVersions)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/GetCompatibleKafkaVersions)

# Configuration


Represents an MSK configuration. Use this path to describe the configuration.

## URI


`/v1/configurations/arn`

## HTTP methods


### GET


**Operation ID:** `DescribeConfiguration`

Returns a description of this MSK configuration.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DescribeConfigurationResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### PUT


**Operation ID:** `UpdateConfiguration`

Creates a new revision of the cluster configuration. The configuration must be in the `ACTIVE` state.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateConfigurationResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 409 | Error | This cluster name already exists. Retry your request using another name. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### DELETE


**Operation ID:** `DeleteConfiguration`

Deletes a cluster configuration and all its revisions.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DeleteConfigurationResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "description": "string",
  "serverProperties": "string"
}
```

### Response bodies


#### DescribeConfigurationResponse schema
DescribeConfigurationResponse

```
{
  "creationTime": "string",
  "name": "string",
  "description": "string",
  "kafkaVersions": [
    "string"
  ],
  "state": enum,
  "arn": "string",
  "latestRevision": {
    "creationTime": "string",
    "description": "string",
    "revision": integer
  }
}
```

#### UpdateConfigurationResponse schema
UpdateConfigurationResponse

```
{
  "arn": "string",
  "latestRevision": {
    "creationTime": "string",
    "description": "string",
    "revision": integer
  }
}
```

#### DeleteConfigurationResponse schema
DeleteConfigurationResponse

```
{
  "state": enum,
  "Arn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### ConfigurationRevision


Describes a configuration revision.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| creationTime | string | True | The time when the configuration revision was created. | 
| description | string | False | The description of the configuration revision. | 
| revision | integerFormat: int64 | True | The revision number. | 

### ConfigurationState


State of a kafka configuration
+ `ACTIVE`
+ `DELETING`
+ `DELETE_FAILED`

### DeleteConfigurationResponse


Returns information about the deleted configuration.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| Arn | string | False | The Amazon Resource Name (ARN) of the configuration. | 
| state | [ConfigurationState](#configurations-arn-model-configurationstate) | False | State of the configuration. | 

### DescribeConfigurationResponse


Response body for DescribeConfiguration.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | True | The Amazon Resource Name (ARN) of the configuration. | 
| creationTime | string | True | The time when the configuration was created. | 
| description | string | True | The description of the configuration. | 
| kafkaVersions | Array of type string | True | The versions of Apache Kafka with which you can use this MSK configuration. | 
| latestRevision | [ConfigurationRevision](#configurations-arn-model-configurationrevision) | True | Latest revision of the configuration. | 
| name | string | True | The name of the configuration. Configuration names are strings that match the regex "^[0-9A-Za-z][0-9A-Za-z-]\$10,\$1\$1". | 
| state | [ConfigurationState](#configurations-arn-model-configurationstate) | False | State of the configuration. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### UpdateConfigurationRequest


Update an MSK configuration.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| description | string | False | The description of the configuration. | 
| serverProperties | string | True | Contents of the `server.properties` file. When using the API, you must ensure that the contents of the file are base64 encoded. When using the console, the SDK, or the CLI, the contents of `server.properties` can be in plaintext. | 

### UpdateConfigurationResponse


Response body for UpdateConfiguration


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | False | The Amazon Resource Name (ARN) of the configuration. | 
| latestRevision | [ConfigurationRevision](#configurations-arn-model-configurationrevision) | False | Latest revision of the configuration. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### DescribeConfiguration

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DescribeConfiguration)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DescribeConfiguration)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DescribeConfiguration)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DescribeConfiguration)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DescribeConfiguration)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DescribeConfiguration)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DescribeConfiguration)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DescribeConfiguration)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DescribeConfiguration)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DescribeConfiguration)

### UpdateConfiguration

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateConfiguration)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateConfiguration)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateConfiguration)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateConfiguration)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateConfiguration)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateConfiguration)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateConfiguration)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateConfiguration)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateConfiguration)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateConfiguration)

### DeleteConfiguration

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DeleteConfiguration)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DeleteConfiguration)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DeleteConfiguration)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DeleteConfiguration)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DeleteConfiguration)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DeleteConfiguration)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DeleteConfiguration)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DeleteConfiguration)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DeleteConfiguration)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DeleteConfiguration)

# Configuration Revision


Represents a specific revision of an MSK configuration.

## URI


`/v1/configurations/arn/revisions/revision`

## HTTP methods


### GET


**Operation ID:** `DescribeConfigurationRevision`

Returns a description of this revision of the configuration.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| revision | String | True | A string that uniquely identifies a revision of an MSK configuration. | 
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DescribeConfigurationRevisionResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| revision | String | True | A string that uniquely identifies a revision of an MSK configuration. | 
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### DescribeConfigurationRevisionResponse schema
DescribeConfigurationRevisionResponse

```
{
  "creationTime": "string",
  "description": "string",
  "serverProperties": "string",
  "arn": "string",
  "revision": integer
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### DescribeConfigurationRevisionResponse


Response body for DescribeConfigurationRevision.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | True | The Amazon Resource Name (ARN) of the configuration. | 
| creationTime | string | True | The time when the configuration was created. | 
| description | string | True | The description of the configuration. | 
| revision | integerFormat: int64 | True | The revision number. | 
| serverProperties | string | True | Contents of the `server.properties` file. When using the API, you must ensure that the contents of the file are base64 encoded. When using the console, the SDK, or the CLI, the contents of `server.properties` can be in plaintext. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### DescribeConfigurationRevision

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DescribeConfigurationRevision)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DescribeConfigurationRevision)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DescribeConfigurationRevision)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DescribeConfigurationRevision)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DescribeConfigurationRevision)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DescribeConfigurationRevision)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DescribeConfigurationRevision)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DescribeConfigurationRevision)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DescribeConfigurationRevision)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DescribeConfigurationRevision)

# Configuration Revisions


Represents the revisions of an MSK configuration.

## URI


`/v1/configurations/arn/revisions`

## HTTP methods


### GET


**Operation ID:** `ListConfigurationRevisions`

Returns a list of all the revisions of an MSK configuration.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListConfigurationRevisionsResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Response bodies


#### ListConfigurationRevisionsResponse schema
ListConfigurationRevisionsResponse

```
{
  "nextToken": "string",
  "revisions": [
    {
      "creationTime": "string",
      "description": "string",
      "revision": integer
    }
  ]
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### ConfigurationRevision


Describes a configuration revision.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| creationTime | string | True | The time when the configuration revision was created. | 
| description | string | False | The description of the configuration revision. | 
| revision | integerFormat: int64 | True | The revision number. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ListConfigurationRevisionsResponse


Information about revisions of an MSK configuration.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | string | False | Paginated results marker. | 
| revisions | Array of type [ConfigurationRevision](#configurations-arn-revisions-model-configurationrevision) | False | List of ConfigurationRevision objects. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListConfigurationRevisions

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListConfigurationRevisions)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListConfigurationRevisions)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListConfigurationRevisions)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListConfigurationRevisions)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListConfigurationRevisions)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListConfigurationRevisions)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListConfigurationRevisions)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListConfigurationRevisions)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListConfigurationRevisions)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListConfigurationRevisions)

# Configurations


A collection of MSK configurations.

## URI


`/v1/configurations`

## HTTP methods


### GET


**Operation ID:** `ListConfigurations`

Returns a list of all the MSK configurations.


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListConfigurationsResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### POST


**Operation ID:** `CreateConfiguration`

Creates a new MSK configuration. To see an example of how to use this operation, first save the following text to a file and name the file `config-file.txt`.

```
auto.create.topics.enable = true

zookeeper.connection.timeout.ms = 1000

log.roll.ms = 604800000
```

Now run the following Python 3.6 script in the folder where you saved `config-file.txt`. This script uses the properties specified in `config-file.txt` to create a configuration named `SalesClusterConfiguration`. This configuration can work with Apache Kafka versions 1.1.1 and 2.1.0.

```
import boto3

client = boto3.client('kafka')

config_file = open('config-file.txt', 'r')

server_properties = config_file.read()

response = client.create_configuration(
    Name='SalesClusterConfiguration',
    Description='The configuration to use on all sales clusters.',
    KafkaVersions=['1.1.1', '2.1.0'],
    ServerProperties=server_properties
)

print(response)
```


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  CreateConfigurationResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 409 | Error | This cluster name already exists. Retry your request using another name. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### POST schema
POST

```
{
  "name": "string",
  "description": "string",
  "kafkaVersions": [
    "string"
  ],
  "serverProperties": "string"
}
```

### Response bodies


#### ListConfigurationsResponse schema
ListConfigurationsResponse

```
{
  "nextToken": "string",
  "configurations": [
    {
      "creationTime": "string",
      "name": "string",
      "description": "string",
      "kafkaVersions": [
        "string"
      ],
      "state": enum,
      "arn": "string",
      "latestRevision": {
        "creationTime": "string",
        "description": "string",
        "revision": integer
      }
    }
  ]
}
```

#### CreateConfigurationResponse schema
CreateConfigurationResponse

```
{
  "creationTime": "string",
  "name": "string",
  "state": enum,
  "arn": "string",
  "latestRevision": {
    "creationTime": "string",
    "description": "string",
    "revision": integer
  }
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Configuration


Represents an MSK Configuration.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | True | The Amazon Resource Name (ARN) of the configuration. | 
| creationTime | string | True | The time when the configuration was created. | 
| description | string | True | The description of the configuration. | 
| kafkaVersions | Array of type string | False | An array of the versions of Apache Kafka with which you can use this MSK configuration. You can use this configuration for an MSK cluster only if the Apache Kafka version specified for the cluster appears in this array. | 
| latestRevision | [ConfigurationRevision](#configurations-model-configurationrevision) | True | Latest revision of the configuration. | 
| name | string | True | The name of the configuration. Configuration names are strings that match the regex "^[0-9A-Za-z][0-9A-Za-z-]\$10,\$1\$1". | 
| state | [ConfigurationState](#configurations-model-configurationstate) | False | State of the configuration. | 

### ConfigurationRevision


Describes a configuration revision.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| creationTime | string | True | The time when the configuration revision was created. | 
| description | string | False | The description of the configuration revision. | 
| revision | integerFormat: int64 | True | The revision number. | 

### ConfigurationState


State of a kafka configuration
+ `ACTIVE`
+ `DELETING`
+ `DELETE_FAILED`

### CreateConfigurationRequest


Request body for CreateConfiguration.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| description | string | False | The description of the configuration. | 
| kafkaVersions | Array of type string | False | The versions of Apache Kafka with which you can use this MSK configuration. | 
| name | string | True | The name of the configuration. Configuration names are strings that match the regex "^[0-9A-Za-z][0-9A-Za-z-]\$10,\$1\$1". | 
| serverProperties | string | True | Contents of the `server.properties` file. When using the API, you must ensure that the contents of the file are base64 encoded. When using the console, the SDK, or the CLI, the contents of `server.properties` can be in plaintext. | 

### CreateConfigurationResponse


Response body for CreateConfiguration


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | string | False | The Amazon Resource Name (ARN) of the configuration. | 
| creationTime | string | False | The time when the configuration was created. | 
| latestRevision | [ConfigurationRevision](#configurations-model-configurationrevision) | False | Latest revision of the configuration. | 
| name | string | False | The name of the configuration. Configuration names are strings that match the regex "^[0-9A-Za-z][0-9A-Za-z-]\$10,\$1\$1". | 
| state | [ConfigurationState](#configurations-model-configurationstate) | False | State of the configuration. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ListConfigurationsResponse


The response contains an array of Configuration and a next token if the response is truncated.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| configurations | Array of type [Configuration](#configurations-model-configuration) | False | An array of MSK configurations. | 
| nextToken | string | False | The paginated results marker. When the result of a `ListConfigurations` operation is truncated, the call returns `NextToken` in the response. To get another batch of configurations, provide this token in your next request. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListConfigurations

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListConfigurations)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListConfigurations)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListConfigurations)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListConfigurations)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListConfigurations)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListConfigurations)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListConfigurations)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListConfigurations)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListConfigurations)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListConfigurations)

### CreateConfiguration

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/CreateConfiguration)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/CreateConfiguration)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/CreateConfiguration)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/CreateConfiguration)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/CreateConfiguration)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/CreateConfiguration)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/CreateConfiguration)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/CreateConfiguration)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/CreateConfiguration)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/CreateConfiguration)

# Monitoring Properties


The options for monitoring an Amazon MSK cluster. You can specify which Apache Kafka metrics you want Amazon MSK to gather and send to Amazon CloudWatch. You can also configure open monitoring to gather metrics with Prometheus or Prometheus-compatible tools. 

## URI


`/v1/clusters/clusterArn/monitoring`

## HTTP methods


### PUT


**Operation ID:** `UpdateMonitoring`

Updates the monitoring settings for the cluster. You can use this operation to specify which Apache Kafka metrics you want Amazon MSK to send to Amazon CloudWatch. You can also specify settings for open monitoring with Prometheus. The following Python 3.6 example enables open monitoring with the Node Exporter. It also sets enhanced monitoring to `PER_BROKER`. For more information about monitoring, see [Monitoring](https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html).

```
import boto3
import time

client = boto3.client('kafka')

update_monitoring_response = client.update_monitoring(
    ClusterArn='arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4',
    CurrentVersion='K12V3IB1VIZHHY',
    EnhancedMonitoring='PER_BROKER',
    OpenMonitoring={"Prometheus":{"JmxExporter":{"EnabledInBroker":False},"NodeExporter":{"EnabledInBroker":True}}}
)

operation_arn = update_monitoring_response['ClusterOperationArn']
print('The ARN of the update operation is ' + operation_arn)

describe_cluster_operation_response = client.describe_cluster_operation(ClusterOperationArn=operation_arn)

operation_state = describe_cluster_operation_response['ClusterOperationInfo']['OperationState']
print('The status of the update operation is ' + operation_state)

updated = False

while not updated:
    print('Sleeping for 15 seconds before checking to see if the monitoring update is done...')
    time.sleep(15)
    describe_cluster_operation_response = client.describe_cluster_operation(ClusterOperationArn=operation_arn)
    operation_state = describe_cluster_operation_response['ClusterOperationInfo']['OperationState']
    if 'UPDATE_COMPLETE' == operation_state:
        updated = True
        print('You have successfully updated the monitoring settings.')
```


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateMonitoringRequest | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "enhancedMonitoring": enum,
  "loggingInfo": {
    "brokerLogs": {
      "s3": {
        "bucket": "string",
        "prefix": "string",
        "enabled": boolean
      },
      "firehose": {
        "deliveryStream": "string",
        "enabled": boolean
      },
      "cloudWatchLogs": {
        "logGroup": "string",
        "enabled": boolean
      }
    }
  },
  "openMonitoring": {
    "prometheus": {
      "nodeExporter": {
        "enabledInBroker": boolean
      },
      "jmxExporter": {
        "enabledInBroker": boolean
      }
    }
  },
  "currentVersion": "string"
}
```

### Response bodies


#### UpdateMonitoringRequest schema
UpdateMonitoringRequest

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### BrokerLogs


The broker logs configuration for this MSK cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| cloudWatchLogs | [CloudWatchLogs](#clusters-clusterarn-monitoring-model-cloudwatchlogs) | False | Details of the CloudWatch Logs destination for broker logs. | 
| firehose | [Firehose](#clusters-clusterarn-monitoring-model-firehose) | False | Details of the Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| s3 | [S3](#clusters-clusterarn-monitoring-model-s3) | False | Details of the Amazon S3 destination for broker logs. | 

### CloudWatchLogs


Details of the CloudWatch Logs destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | True | Specifies whether broker logs get sent to the specified CloudWatch Logs destination. | 
| logGroup | string | False | The CloudWatch log group that is the destination for broker logs. | 

### EnhancedMonitoring


Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster. This property has three possible values: `DEFAULT`, `PER_BROKER`, and `PER_TOPIC_PER_BROKER`. For a list of the metrics associated with each of these three levels of monitoring, see [Monitoring](https://docs.aws.amazon.com/msk/latest/developerguide/monitoring.html).
+ `DEFAULT`
+ `PER_BROKER`
+ `PER_TOPIC_PER_BROKER`
+ `PER_TOPIC_PER_PARTITION`

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### Firehose


Firehose details for BrokerLogs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| deliveryStream | string | False | The Kinesis Data Firehose delivery stream that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Kinesis Data Firehose delivery stream. | 

### JmxExporterInfo


JMX Exporter details.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | JMX Exporter being enabled in broker. | 

### LoggingInfo


You can configure your MSK cluster to send broker logs to different destination types. This is a container for the configuration details related to broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerLogs | [BrokerLogs](#clusters-clusterarn-monitoring-model-brokerlogs) | True | You can configure your MSK cluster to send broker logs to different destination types. This configuration specifies the details of these destinations. | 

### NodeExporterInfo


Node Exporter details.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabledInBroker | boolean | True | Node Exporter being enabled in broker. | 

### OpenMonitoringInfo


JMX and Node monitoring for cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| prometheus | [PrometheusInfo](#clusters-clusterarn-monitoring-model-prometheusinfo) | True | Prometheus details. | 

### PrometheusInfo


Prometheus details.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| jmxExporter | [JmxExporterInfo](#clusters-clusterarn-monitoring-model-jmxexporterinfo) | False | JMX Exporter details. | 
| nodeExporter | [NodeExporterInfo](#clusters-clusterarn-monitoring-model-nodeexporterinfo) | False | Node Exporter details. | 

### S3


The details of the Amazon S3 destination for broker logs.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| bucket | string | False | The name of the S3 bucket that is the destination for broker logs. | 
| enabled | boolean | True | Specifies whether broker logs get sent to the specified Amazon S3 destination. | 
| prefix | string | False | The S3 prefix that is the destination for broker logs. | 

### UpdateMonitoringRequest


Request body for UpdateMonitoring.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | string | True | The version of the MSK cluster to update. Cluster versions aren't simple numbers. You can describe an MSK cluster to find its version. When this update operation is successful, it generates a new cluster version.  | 
| enhancedMonitoring | [EnhancedMonitoring](#clusters-clusterarn-monitoring-model-enhancedmonitoring) | False | Specifies which Apache Kafka metrics Amazon MSK gathers and sends to Amazon CloudWatch for this cluster. | 
| loggingInfo | [LoggingInfo](#clusters-clusterarn-monitoring-model-logginginfo) | False | LoggingInfo details. | 
| openMonitoring | [OpenMonitoringInfo](#clusters-clusterarn-monitoring-model-openmonitoringinfo) | False | The settings for open monitoring. | 

### UpdateMonitoringResponse


Request body for UpdateMonitoring.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateMonitoring

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateMonitoring)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateMonitoring)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateMonitoring)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateMonitoring)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateMonitoring)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateMonitoring)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateMonitoring)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateMonitoring)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateMonitoring)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateMonitoring)

# Reboot Broker


## URI


`/v1/clusters/clusterArn/reboot-broker`

## HTTP methods


### PUT


**Operation ID:** `RebootBroker`

Reboots a broker. In a given cluster, you can reboot one broker at a time.

 To reboot a broker, wait for the cluster status to be ACTIVE. This operation returns an error if you invoke it while the cluster status is HEALING. You must wait for the status to change from HEALING to ACTIVE before you reboot the broker. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  RebootBrokerResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "brokerIds": [
    "string"
  ]
}
```

### Response bodies


#### RebootBrokerResponse schema
RebootBrokerResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### RebootBrokerRequest


The request body for the RebootBroker action.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| brokerIds | Array of type string | True | The list of broker IDs to be rebooted. Specify only one broker ID. | 

### RebootBrokerResponse


The response body for RebootBroker.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### RebootBroker

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/RebootBroker)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/RebootBroker)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/RebootBroker)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/RebootBroker)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/RebootBroker)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/RebootBroker)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/RebootBroker)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/RebootBroker)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/RebootBroker)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/RebootBroker)

# Scram Secrets


Represents a secret stored in the Amazon Secrets Manager that can be used to authenticate with a cluster using your sign-in credentials.

## URI


`/v1/clusters/clusterArn/scram-secrets`

## HTTP methods


### GET


**Operation ID:** `ListScramSecrets`

Returns a list of SCRAM secrets associated with the cluster. SCRAM secrets are stored in the Amazon Secrets Manager service, and are used to authenticate clients using sign-in credentials.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListScramSecretsResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### POST


**Operation ID:** `BatchAssociateScramSecret`

Associates a list of SCRAM secrets with a cluster. SCRAM secrets are stored in the Amazon Secrets Manager service, and are used to authenticate clients using sign-in credentials. You can associate up to 10 secrets with a cluster at a time.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  BatchAssociateScramSecretResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

### PATCH


**Operation ID:** `BatchDisassociateScramSecret`

Disassociates a list of SCRAM secrets from a cluster. SCRAM secrets are stored in the Amazon Secrets Manager service, and are used to authenticate clients using sign-in credentials. You can disassociate up to 10 secrets from a cluster at a time.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  BatchDisassociateScramSecretResponse | 200 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

## Schemas


### Request bodies


#### POST schema
POST

```
{
  "secretArnList": [
    "string"
  ]
}
```

#### PATCH schema
PATCH

```
{
  "secretArnList": [
    "string"
  ]
}
```

### Response bodies


#### ListScramSecretsResponse schema
ListScramSecretsResponse

```
{
  "secretArnList": [
    "string"
  ],
  "nextToken": "string"
}
```

#### BatchAssociateScramSecretResponse schema
BatchAssociateScramSecretResponse

```
{
  "clusterArn": "string",
  "unprocessedScramSecrets": [
    {
      "secretArn": "string",
      "errorMessage": "string",
      "errorCode": "string"
    }
  ]
}
```

#### BatchDisassociateScramSecretResponse schema
BatchDisassociateScramSecretResponse

```
{
  "clusterArn": "string",
  "unprocessedScramSecrets": [
    {
      "secretArn": "string",
      "errorMessage": "string",
      "errorCode": "string"
    }
  ]
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### BatchAssociateScramSecretRequest


Request body for BatchAssociateScramSecret.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| secretArnList | Array of type string | True | List of Amazon Secrets Manager secret Amazon Resource Name (ARN)s. | 

### BatchAssociateScramSecretResponse


Response body for BatchAssociateScramSecret.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| unprocessedScramSecrets | Array of type [UnprocessedScramSecret](#clusters-clusterarn-scram-secrets-model-unprocessedscramsecret) | False | List of errors when associating secrets to cluster. | 

### BatchDisassociateScramSecretRequest


Request body for BatchDisassociateScramSecret.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| secretArnList | Array of type string | True | List of Amazon Secrets Manager secret Amazon Resource Name (ARN)s. | 

### BatchDisassociateScramSecretResponse


Response body for BatchDisassociateScramSecret.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| unprocessedScramSecrets | Array of type [UnprocessedScramSecret](#clusters-clusterarn-scram-secrets-model-unprocessedscramsecret) | False | List of errors when disassociating secrets to cluster. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ListScramSecretsResponse


Information about scram secrets associated to the cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | string | False | Paginated results marker. | 
| secretArnList | Array of type string | False | The list of scram secrets associated with the cluster. | 

### UnprocessedScramSecret


Error info for scram secret associate/disassociate failure.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| errorCode | string | False | Error code for associate/disassociate failure. | 
| errorMessage | string | False | Error message for associate/disassociate failure. | 
| secretArn | string | False | Amazon Secrets Manager secret Amazon Resource Name (ARN). | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListScramSecrets

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListScramSecrets)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListScramSecrets)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListScramSecrets)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListScramSecrets)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListScramSecrets)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListScramSecrets)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListScramSecrets)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListScramSecrets)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListScramSecrets)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListScramSecrets)

### BatchAssociateScramSecret

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/BatchAssociateScramSecret)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/BatchAssociateScramSecret)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/BatchAssociateScramSecret)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/BatchAssociateScramSecret)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/BatchAssociateScramSecret)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/BatchAssociateScramSecret)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/BatchAssociateScramSecret)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/BatchAssociateScramSecret)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/BatchAssociateScramSecret)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/BatchAssociateScramSecret)

### BatchDisassociateScramSecret

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/BatchDisassociateScramSecret)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/BatchDisassociateScramSecret)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/BatchDisassociateScramSecret)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/BatchDisassociateScramSecret)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/BatchDisassociateScramSecret)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/BatchDisassociateScramSecret)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/BatchDisassociateScramSecret)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/BatchDisassociateScramSecret)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/BatchDisassociateScramSecret)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/BatchDisassociateScramSecret)

# Tags


Represents the set of tags for an MSK resource. A tag is a key-value pair that you define for the cluster. Using tags is a simple yet powerful way to manage Amazon resources and organize data, including billing data. 

## URI


`/v1/tags/resourceArn`

## HTTP methods


### GET


**Operation ID:** `ListTagsForResource`

Returns a list of the tags associated with the specified resource.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| resourceArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the resource that's associated with the tags. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListTagsForResourceResponse | Success response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### POST


**Operation ID:** `TagResource`

Adds tags to the specified MSK resource.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| resourceArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the resource that's associated with the tags. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 204 | None | 204 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### DELETE


**Operation ID:** `UntagResource`

Removes the tags associated with the keys that are provided in the query.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| resourceArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the resource that's associated with the tags. | 


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| tagKeys | String | True | Tag keys must be unique for a given cluster. In addition, the following restrictions apply:  Each tag key must be unique. If you add a tag with a key that's already in use, your new tag overwrites the existing key-value pair.    You can't start a tag key with `aws:` because this prefix is reserved for use by Amazon. Amazon creates tags that begin with this prefix on your behalf, but you can't edit or delete them.   Tag keys must be between 1 and 128 Unicode characters in length.   Tag keys must consist of the following characters: Unicode letters, digits, white space, and the following special characters: `_ . / = + - @`.   | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 204 | None | 204 response | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| resourceArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the resource that's associated with the tags. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### POST schema
POST

```
{
  "tags": {
  }
}
```

### Response bodies


#### ListTagsForResourceResponse schema
ListTagsForResourceResponse

```
{
  "tags": {
  }
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ListTagsForResourceResponse


Response of listing tags for a resource.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| tags | object | True | The key-value pair for the resource tag. | 

### TagResourceRequest


Tag a resource.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| tags | object | True | The key-value pair for the resource tag. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListTagsForResource

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListTagsForResource)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListTagsForResource)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListTagsForResource)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListTagsForResource)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListTagsForResource)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListTagsForResource)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListTagsForResource)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListTagsForResource)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListTagsForResource)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListTagsForResource)

### TagResource

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/TagResource)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/TagResource)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/TagResource)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/TagResource)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/TagResource)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/TagResource)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/TagResource)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/TagResource)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/TagResource)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/TagResource)

### UntagResource

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UntagResource)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UntagResource)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UntagResource)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UntagResource)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UntagResource)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UntagResource)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UntagResource)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UntagResource)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UntagResource)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UntagResource)

# Topic


## URI


`/v1/clusters/clusterArn/topics/topicName`

## HTTP methods


### GET


**Operation ID:** `DescribeTopic`

Returns details for a topic on a cluster.

This API response reflects data that updates approximately every minute. For the most current topic state after making changes, allow approximately one minute before querying.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 
| topicName | String | True | The name of the topic. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DescribeTopicResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### PUT


**Operation ID:** `UpdateTopic`

Updates topic partition or topic configs.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 
| topicName | String | True | The name of the topic. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateTopicResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### DELETE


**Operation ID:** `DeleteTopic`

Deletes the topic specified by the topicName in the request from the cluster specified by the Amazon Resource Name (ARN) in the request.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 
| topicName | String | True | The name of the topic. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DeleteTopicResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning correct headers 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 
| topicName | String | True | The name of the topic. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "partitionCount": integer,
  "configs": "string"
}
```

### Response bodies


#### DescribeTopicResponse schema
DescribeTopicResponse

```
{
  "replicationFactor": number,
  "partitionCount": number,
  "configs": "string",
  "topicName": "string",
  "topicArn": "string",
  "status": enum
}
```

#### UpdateTopicResponse schema
UpdateTopicResponse

```
{
  "topicName": "string",
  "topicArn": "string",
  "status": enum
}
```

#### DeleteTopicResponse schema
DeleteTopicResponse

```
{
  "topicName": "string",
  "topicArn": "string",
  "status": enum
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### DeleteTopicResponse


Returns information about the deleted topic.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| status | [TopicStatus](#clusters-clusterarn-topics-topicname-model-topicstatus) | False | Status of the topic. | 
| topicArn | string | False | ARN of the topic. | 
| topicName | string | False | Name of the topic. | 

### DescribeTopicResponse


The response contains metadata for a topic on a cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| configs | string | False | Kafka configs for a topic. | 
| partitionCount | number | False | Partition count for a topic | 
| replicationFactor | number | False | Replication factor for a topic | 
| status | [TopicStatus](#clusters-clusterarn-topics-topicname-model-topicstatus) | False | Status of the topic.  | 
| topicArn | string | False | ARN of the topic. | 
| topicName | string | False | Name for a topic. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### TopicStatus


Status of a kafka topic
+ `CREATING`
+ `UPDATING`
+ `DELETING`
+ `ACTIVE`

### UpdateTopicRequest


Request body for UpdateTopic.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| configs | string | False | Base64 encoded kafka configs. | 
| partitionCount | integer | False | How many partitions in the topic to be created. | 

### UpdateTopicResponse


Returns information about the updated topic.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| status | [TopicStatus](#clusters-clusterarn-topics-topicname-model-topicstatus) | False | Status of the topic. | 
| topicArn | string | False | ARN of the topic. | 
| topicName | string | False | Name of the topic. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### DescribeTopic

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DescribeTopic)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DescribeTopic)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DescribeTopic)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DescribeTopic)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DescribeTopic)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DescribeTopic)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DescribeTopic)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DescribeTopic)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DescribeTopic)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DescribeTopic)

### UpdateTopic

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateTopic)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateTopic)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateTopic)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateTopic)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateTopic)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateTopic)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateTopic)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateTopic)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateTopic)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateTopic)

### DeleteTopic

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DeleteTopic)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DeleteTopic)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DeleteTopic)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DeleteTopic)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DeleteTopic)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DeleteTopic)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DeleteTopic)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DeleteTopic)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DeleteTopic)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DeleteTopic)

# Topic Partitions


## URI


`/v1/clusters/clusterArn/topics/topicName/partitions`

## HTTP methods


### GET


**Operation ID:** `DescribeTopicPartitions`

Returns all partition information for a topic on a cluster.

This API response reflects data that updates approximately every minute. For the most current topic state after making changes, allow approximately one minute before querying.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 
| topicName | String | True | The name of the topic. | 


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DescribeTopicPartitionsResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

## Schemas


### Response bodies


#### DescribeTopicPartitionsResponse schema
DescribeTopicPartitionsResponse

```
{
  "partitions": [
    {
      "leader": number,
      "partition": number,
      "replicas": [
        number
      ],
      "isr": [
        number
      ]
    }
  ],
  "nextToken": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### DescribeTopicPartitionsResponse


The response contains information about partitions for a topic on a cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | string | False | If the response of DescribeTopicPartitions is truncated, it returns a NextToken in the response. This NextToken should be sent in the subsequent request to DescribeTopicPartitions. | 
| partitions | Array of type [TopicPartitionInfo](#clusters-clusterarn-topics-topicname-partitions-model-topicpartitioninfo) | False | List containing partition info. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### TopicPartitionInfo


Includes information about a partition.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| isr | Array of type number | False | The list of in-sync replica broker IDs for this partition. | 
| leader | number | False | The broker ID of the leader for this partition. | 
| partition | number | False | The partition number. | 
| replicas | Array of type number | False | The list of broker IDs that are replicas for this partition. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### DescribeTopicPartitions

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DescribeTopicPartitions)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DescribeTopicPartitions)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DescribeTopicPartitions)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DescribeTopicPartitions)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DescribeTopicPartitions)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DescribeTopicPartitions)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DescribeTopicPartitions)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DescribeTopicPartitions)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DescribeTopicPartitions)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DescribeTopicPartitions)

# Topics


## URI


`/v1/clusters/clusterArn/topics`

## HTTP methods


### GET


**Operation ID:** `ListTopics`

Returns all topics in a cluster.

This API response reflects data that updates approximately every minute. For the most current topic state after making changes, allow approximately one minute before querying.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| topicNameFilter | String | False | Returns topics starting with given name. | 
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListTopicsResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### POST


**Operation ID:** `CreateTopic`

Creates a topic using the specified properties in the request on the cluster specified by the Amazon Resource Name (ARN) in the request.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  CreateTopicResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 409 | Error | This cluster name already exists. Retry your request using another name. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

## Schemas


### Request bodies


#### POST schema
POST

```
{
  "partitionCount": integer,
  "configs": "string",
  "replicationFactor": integer,
  "topicName": "string"
}
```

### Response bodies


#### ListTopicsResponse schema
ListTopicsResponse

```
{
  "topics": [
    {
      "partitionCount": number,
      "replicationFactor": number,
      "topicName": "string",
      "outOfSyncReplicaCount": number,
      "topicArn": "string"
    }
  ],
  "nextToken": "string"
}
```

#### CreateTopicResponse schema
CreateTopicResponse

```
{
  "topicName": "string",
  "topicArn": "string",
  "status": enum
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### CreateTopicRequest


Request body for CreateTopic.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| configs | string | False | Base64 encoded Kafka configs. | 
| partitionCount | integer | True | How many partitions in the topic to be created. | 
| replicationFactor | integer | True | The replication factor of the topic. | 
| topicName | string | True | Name of the topic. | 

### CreateTopicResponse


Returns information about the created topic.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| status | [TopicStatus](#clusters-clusterarn-topics-model-topicstatus) | False | Status of the topic. | 
| topicArn | string | False | ARN of the topic. | 
| topicName | string | False | Name of the topic. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ListTopicsResponse


The response contains an array of topics in a cluster.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | string | False | If the response of ListTopics is truncated, it returns a NextToken in the response. This NextToken should be sent in the subsequent request to ListTopics. | 
| topics | Array of type [TopicInfo](#clusters-clusterarn-topics-model-topicinfo) | False | List containing topics info. | 

### TopicInfo


Includes identification info about the topic.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| outOfSyncReplicaCount | number | False | Number of out of sync replica for topic | 
| partitionCount | number | False | Partition count for a topic | 
| replicationFactor | number | False | Replication factor for a topic | 
| topicArn | string | False | ARN of the topic. | 
| topicName | string | False | Name for a topic. | 

### TopicStatus


Status of a kafka topic
+ `CREATING`
+ `UPDATING`
+ `DELETING`
+ `ACTIVE`

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListTopics

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListTopics)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListTopics)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListTopics)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListTopics)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListTopics)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListTopics)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListTopics)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListTopics)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListTopics)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListTopics)

### CreateTopic

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/CreateTopic)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/CreateTopic)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/CreateTopic)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/CreateTopic)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/CreateTopic)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/CreateTopic)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/CreateTopic)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/CreateTopic)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/CreateTopic)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/CreateTopic)

# UpdateStorage


Updates cluster broker volume size (or) sets cluster storage mode to TIERED.

## URI


`/v1/clusters/clusterArn/storage`

## HTTP methods


### PUT


**Operation ID:** `UpdateStorage`

Updates cluster broker volume size (or) sets cluster storage mode to TIERED.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  UpdateStorageResponse | Successful response. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning the correct headers. 


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | String | True | The Amazon Resource Name (ARN) that uniquely identifies the cluster. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method | 

## Schemas


### Request bodies


#### PUT schema
PUT

```
{
  "volumeSizeGB": integer,
  "storageMode": enum,
  "provisionedThroughput": {
    "volumeThroughput": integer,
    "enabled": boolean
  },
  "currentVersion": "string"
}
```

### Response bodies


#### UpdateStorageResponse schema
UpdateStorageResponse

```
{
  "clusterArn": "string",
  "clusterOperationArn": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ProvisionedThroughput


Contains information about provisioned throughput for EBS storage volumes attached to kafka broker nodes.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| enabled | boolean | False | Provisioned throughput is enabled or not. | 
| volumeThroughput | integer | False | Throughput value of the EBS volumes for the data drive on each kafka broker node in MiB per second. | 

### StorageMode


Controls storage mode for various supported storage tiers.
+ `LOCAL`
+ `TIERED`

### UpdateStorageRequest


Request object for UpdateStorageApi.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| currentVersion | string | True | The version of cluster to update from. A successful operation will then generate a new version. | 
| provisionedThroughput | [ProvisionedThroughput](#clusters-clusterarn-storage-model-provisionedthroughput) | False | EBS volume provisioned throughput information. | 
| storageMode | [StorageMode](#clusters-clusterarn-storage-model-storagemode) | False | Controls storage mode for supported storage tiers. | 
| volumeSizeGB | integer | False | size of the EBS volume to update. | 

### UpdateStorageResponse


Response body for UpdateStorageResponse Api.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| clusterArn | string | False | The Amazon Resource Name (ARN) of the cluster. | 
| clusterOperationArn | string | False | The Amazon Resource Name (ARN) of the cluster operation. | 

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### UpdateStorage

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/UpdateStorage)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/UpdateStorage)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/UpdateStorage)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/UpdateStorage)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/UpdateStorage)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/UpdateStorage)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/UpdateStorage)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/UpdateStorage)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/UpdateStorage)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/UpdateStorage)

# Vpc-connection


## URI


`/v1/vpc-connection`

## HTTP methods


### POST


**Operation ID:** `CreateVpcConnection`

Create remote VPC connection.


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  CreateVpcConnectionResponse | HTTP Status Code 200: OK. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning correct headers. 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method. | 

## Schemas


### Request bodies


#### POST schema
POST

```
{
  "clientSubnets": [
    "string"
  ],
  "targetClusterArn": "string",
  "vpcId": "string",
  "securityGroups": [
    "string"
  ],
  "tags": {
  },
  "authentication": "string"
}
```

### Response bodies


#### CreateVpcConnectionResponse schema
CreateVpcConnectionResponse

```
{
  "vpcConnectionArn": "string",
  "clientSubnets": [
    "string"
  ],
  "creationTime": "string",
  "vpcId": "string",
  "securityGroups": [
    "string"
  ],
  "state": enum,
  "tags": {
  },
  "authentication": "string"
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### CreateVpcConnectionRequest


Creates a remote VPC connection for account client.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| authentication | stringMinLength: 3MaxLength: 10 | True | The authentication type for the client VPC connection. Specify one of these auth type strings: `SASL_IAM`, `SASL_SCRAM`, or `TLS`. | 
| clientSubnets | Array of type string | True | The list of subnets in the client VPC to connect to. | 
| securityGroups | Array of type string | False | The security groups to attach to the ENIs for the broker nodes. | 
| tags | object | False | Create tags when creating the VPC connection. | 
| targetClusterArn | string | True | The Amazon Resource Name (ARN) of the cluster. | 
| vpcId | string | True | The VPC id of the remote client. | 

### CreateVpcConnectionResponse


Returns information about the created VPC connection.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| authentication | stringMinLength: 3MaxLength: 10 | False | The type of authentication to be uses by remote clients. | 
| clientSubnets | Array of type string | False | The list of subnets in the client VPC to connect to. | 
| creationTime | string | False | The time when the VPC connection was created. | 
| securityGroups | Array of type string | False | The security groups to attach to the ENIs for the broker nodes. | 
| state | [VpcConnectionState](#vpc-connection-model-vpcconnectionstate) | False | State of the VPC connection. | 
| tags | object | False | Tags attached to the VPC connection. | 
| vpcConnectionArn | string | False | The Amazon Resource Name (ARN) of the remote VPC connection. | 
| vpcId | string | False | The VPC id of the remote client. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### VpcConnectionState


State of the vpc connection
+ `CREATING`
+ `AVAILABLE`
+ `INACTIVE`
+ `UPDATING`
+ `DEACTIVATING`
+ `DELETING`
+ `FAILED`
+ `REJECTED`
+ `REJECTING`

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### CreateVpcConnection

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/CreateVpcConnection)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/CreateVpcConnection)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/CreateVpcConnection)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/CreateVpcConnection)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/CreateVpcConnection)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/CreateVpcConnection)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/CreateVpcConnection)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/CreateVpcConnection)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/CreateVpcConnection)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/CreateVpcConnection)

# Vpc-connection arn


## URI


`/v1/vpc-connection/arn`

## HTTP methods


### GET


**Operation ID:** `DescribeVpcConnection`

Describes Remote VPC Connection.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DescribeVpcConnectionResponse | HTTP Status Code 200: OK. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### DELETE


**Operation ID:** `DeleteVpcConnection`

Delete remote VPC connection.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  DeleteVpcConnectionResponse | HTTP Status Code 200: OK. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning correct headers.


**Path parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| arn | String | True | The Amazon Resource Name (ARN) that uniquely identifies an MSK configuration and all of its revisions. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method. | 

## Schemas


### Response bodies


#### DescribeVpcConnectionResponse schema
DescribeVpcConnectionResponse

```
{
  "vpcConnectionArn": "string",
  "creationTime": "string",
  "targetClusterArn": "string",
  "vpcId": "string",
  "subnets": [
    "string"
  ],
  "securityGroups": [
    "string"
  ],
  "state": enum,
  "tags": {
  },
  "authentication": "string"
}
```

#### DeleteVpcConnectionResponse schema
DeleteVpcConnectionResponse

```
{
  "vpcConnectionArn": "string",
  "state": enum
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### DeleteVpcConnectionResponse


Returns information about the deleted VPC connection.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| state | [VpcConnectionState](#vpc-connection-arn-model-vpcconnectionstate) | False | State of the Remote VPC Connection. | 
| vpcConnectionArn | string | False | The Amazon Resource Name (ARN) of the Remote VPC. | 

### DescribeVpcConnectionResponse


Response body for DescribeVpcConnection.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| authentication | string | False | The type of private link authentication. | 
| creationTime | string | True | The time when the configuration was created. | 
| securityGroups | Array of type string | False | The list of security groups in Remote VPC Connection. | 
| state | [VpcConnectionState](#vpc-connection-arn-model-vpcconnectionstate) | False | State of the Remote VPC Connection. | 
| subnets | Array of type string | False | The list of subnets in Remote VPC Connection. | 
| tags | object | False | Tags attached to the vpc connection. | 
| targetClusterArn | string | True | The Amazon Resource Name (ARN) of the target cluster. | 
| vpcConnectionArn | string | True | The Amazon Resource Name (ARN) of the Remote VPC. | 
| vpcId | string | False | The description of the vpcId. | 

### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### VpcConnectionState


State of the vpc connection
+ `CREATING`
+ `AVAILABLE`
+ `INACTIVE`
+ `UPDATING`
+ `DEACTIVATING`
+ `DELETING`
+ `FAILED`
+ `REJECTED`
+ `REJECTING`

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### DescribeVpcConnection

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DescribeVpcConnection)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DescribeVpcConnection)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DescribeVpcConnection)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DescribeVpcConnection)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DescribeVpcConnection)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DescribeVpcConnection)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DescribeVpcConnection)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DescribeVpcConnection)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DescribeVpcConnection)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DescribeVpcConnection)

### DeleteVpcConnection

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/DeleteVpcConnection)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/DeleteVpcConnection)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/DeleteVpcConnection)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/DeleteVpcConnection)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/DeleteVpcConnection)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/DeleteVpcConnection)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/DeleteVpcConnection)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/DeleteVpcConnection)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/DeleteVpcConnection)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/DeleteVpcConnection)

# Vpc-connections


## URI


`/v1/vpc-connections`

## HTTP methods


### GET


**Operation ID:** `ListVpcConnections`

Lists all VPC connections.


**Query parameters**  

| Name | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | String | False | The paginated results marker. When the result of the operation is truncated, the call returns `NextToken` in the response. To get the next batch, provide this token in your next request. | 
| maxResults | String | False | The maximum number of results to return in the response (default maximum 100 results per API call). If there are more results, the response includes a `NextToken` parameter. | 


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 |  ListVpcConnectionsResponse | HTTP Status Code 200: OK. | 
| 400 | Error | The request isn't valid because the input is incorrect. Correct your input and then submit it again. | 
| 401 | Error | The request is not authorized. The provided credentials couldn't be validated. | 
| 403 | Error | Access forbidden. Check your credentials and then retry your request. | 
| 404 | Error | The resource could not be found due to incorrect input. Correct the input, then retry the request. | 
| 429 | Error | 429 response | 
| 500 | Error | There was an unexpected internal server error. Retrying your request might resolve the issue. | 
| 503 | Error | 503 response | 

### OPTIONS


Enable CORS by returning correct headers.


**Responses**  

| Status code | Response model | Description | 
| --- |--- |--- |
| 200 | None | Default response for CORS method. | 

## Schemas


### Response bodies


#### ListVpcConnectionsResponse schema
ListVpcConnectionsResponse

```
{
  "nextToken": "string",
  "vpcConnections": [
    {
      "vpcConnectionArn": "string",
      "creationTime": "string",
      "targetClusterArn": "string",
      "vpcId": "string",
      "state": enum,
      "authentication": "string"
    }
  ]
}
```

#### Error schema
Error

```
{
  "message": "string",
  "invalidParameter": "string"
}
```

## Properties


### Error


Returns information about an error.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| invalidParameter | string | False | The parameter that caused the error. | 
| message | string | False | The description of the error. | 

### ListVpcConnectionsResponse


The response contains an array of vpcConnections and a next token if the response is truncated.


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| nextToken | string | False | If the response of ListVpcConnections is truncated, it returns a NextToken in the response. This NextToken should be sent in the subsequent request to ListVpcConnections. | 
| vpcConnections | Array of type [VpcConnection](#vpc-connections-model-vpcconnection) | False | An array of VPC Connection. | 

### VpcConnection


Vpc Connection description


| Property | Type | Required | Description | 
| --- |--- |--- |--- |
| authentication | string | False | The type of private link authentication. | 
| creationTime | string | False | The time which the VPC Connnection is created. | 
| state | [VpcConnectionState](#vpc-connections-model-vpcconnectionstate) | False | State of the Remote VPC Connection. | 
| targetClusterArn | string | True | The Amazon Resource Name (ARN) of the target cluster. | 
| vpcConnectionArn | string | True | The Amazon Resource Name (ARN) of the Remote Vpc. | 
| vpcId | string | False | The description of the vpcId. | 

### VpcConnectionState


State of the vpc connection
+ `CREATING`
+ `AVAILABLE`
+ `INACTIVE`
+ `UPDATING`
+ `DEACTIVATING`
+ `DELETING`
+ `FAILED`
+ `REJECTED`
+ `REJECTING`

## See also


For more information about using this API in one of the language-specific AWS SDKs and references, see the following:

### ListVpcConnections

+ [AWS Command Line Interface V2](/goto/cli2/kafka-2018-11-14/ListVpcConnections)
+ [AWS SDK for .NET V4](/goto/DotNetSDKV4/kafka-2018-11-14/ListVpcConnections)
+ [AWS SDK for C\$1\$1](/goto/SdkForCpp/kafka-2018-11-14/ListVpcConnections)
+ [AWS SDK for Go v2](/goto/SdkForGoV2/kafka-2018-11-14/ListVpcConnections)
+ [AWS SDK for Java V2](/goto/SdkForJavaV2/kafka-2018-11-14/ListVpcConnections)
+ [AWS SDK for JavaScript V3](/goto/SdkForJavaScriptV3/kafka-2018-11-14/ListVpcConnections)
+ [AWS SDK for Kotlin](/goto/SdkForKotlin/kafka-2018-11-14/ListVpcConnections)
+ [AWS SDK for PHP V3](/goto/SdkForPHPV3/kafka-2018-11-14/ListVpcConnections)
+ [AWS SDK for Python](/goto/boto3/kafka-2018-11-14/ListVpcConnections)
+ [AWS SDK for Ruby V3](/goto/SdkForRubyV3/kafka-2018-11-14/ListVpcConnections)